diff --git a/cfg/nvim/init.lua b/cfg/nvim/init.lua index c184427..bb7dce6 100644 --- a/cfg/nvim/init.lua +++ b/cfg/nvim/init.lua @@ -1,12 +1,43 @@ vim.wo.number = true -local nmap = function(keys, cmd) vim.keymap.set('n', keys, cmd, {noremap = true, silent = true}) end +local nmap = function(keys, cmd) + vim.keymap.set('n', keys, cmd, {noremap = true, silent = true}) +end -nmap('','BufferNext') -nmap('','BufferPrevious') +nmap('', 'BufferNext') +nmap('', 'BufferPrevious') +nmap('', 'NvimTreeToggle') + +-- START LSP + +local cmp = require 'cmp' +local lspconfig = require('lspconfig') +local servers = {tsserver = {}, pylsp = {}, lua_ls = {}, rnix = {}} +local cmp_capabilities = require('cmp_nvim_lsp').default_capabilities() +cmp.setup({ + snippet = { + expand = function(args) require('luasnip').lsp_expand(args.body) end + }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.confirm({select = true}) + }), + sources = cmp.config.sources({{name = 'nvim_lsp'}, {name = 'luasnip'}}, + {{name = 'buffer'}}) +}) + +for server, settings in pairs(servers) do + lspconfig[server].setup { + settings = settings, + capabilities = cmp_capabilities + } +end + +-- END LSP + +require("autoclose").setup() require("nvim-tree").setup() -nmap('', 'NvimTreeToggle') require("catppuccin").setup({flavour = "mocha", transparent_background = true}) vim.cmd.colorscheme "catppuccin" diff --git a/home.nix b/home.nix index 519ff43..7c7ed33 100644 --- a/home.nix +++ b/home.nix @@ -41,20 +41,28 @@ viAlias = true; extraPackages = with pkgs; [ alejandra - lua - luaformatter - lua-language-server libclang + lua + lua-language-server + nodePackages_latest.typescript-language-server + python311Packages.python-lsp-black + python311Packages.python-lsp-server rnix-lsp + stylua ]; plugins = with pkgs.vimPlugins; [ - nvim-cmp - nvim-treesitter.withAllGrammars - nvim-tree-lua - telescope-nvim - catppuccin-nvim - nvim-web-devicons + autoclose-nvim barbar-nvim + catppuccin-nvim + cmp-nvim-lsp + luasnip + nvim-cmp + nvim-cmp + nvim-lspconfig + nvim-tree-lua + nvim-treesitter.withAllGrammars + nvim-web-devicons + telescope-nvim ]; extraLuaConfig = lib.fileContents ./cfg/nvim/init.lua; };