From d70887328ad4e0da3ea026f1abfd3698118897b2 Mon Sep 17 00:00:00 2001 From: Filippo Berto Date: Wed, 25 Oct 2023 15:14:57 +0200 Subject: [PATCH] WIP: vim lsp --- modules/hm/vim.nix | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/modules/hm/vim.nix b/modules/hm/vim.nix index 8bc7136..ecbcef9 100644 --- a/modules/hm/vim.nix +++ b/modules/hm/vim.nix @@ -16,10 +16,11 @@ type = "lua"; config = '' local lspconfig = require('lspconfig') - lspconfig.pylsp.setup {} - lspconfig.nil_ls.setup {} - lspconfig.rust_analyzer.setup {} - lspconfig.texlab.setup {} + local capabilities = require("cmp_nvim_lsp").default_capabilities() + lspconfig.pylsp.setup {capabilities=capabilities} + lspconfig.nil_ls.setup {capabilities=capabilities} + lspconfig.rust_analyzer.setup {capabilities=capabilities} + lspconfig.texlab.setup {capabilities=capabilities} ''; } pkgs.vimPlugins.nvim-treesitter.withAllGrammars @@ -28,6 +29,31 @@ pkgs.vimPlugins.telescope-nvim pkgs.vimPlugins.gitsigns-nvim pkgs.vimPlugins.nvim-tree-lua + + # completion + pkgs.vimPlugins.nvim-cmp + + { + plugin = pkgs.vimPlugins.cmp-nvim-lsp; + type = "lua"; + config = '' + local cmp = require("cmp") + cmp.setup({ + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.abort(), + [""] = cmp.mapping.confirm({ select = true }), + }), + sources = cmp.config.sources({ + { name = "nvim_lsp" }, + { name = "buffer" } + }) + }) + ''; + } + # pkgs.vimPlugins.fugitive # pkgs.vimPlugins.surround # {