From b5eb2ad9f89852113df7657cc54071e9028942b1 Mon Sep 17 00:00:00 2001 From: Dan Nixon Date: Mon, 1 Apr 2024 11:57:20 +0100 Subject: [PATCH] nvim: update completion/LSP tooling/config --- .../neovim/config-lua.nix | 34 +++++++++++++++++-- .../terminal_environment/neovim/default.nix | 5 ++- .../terminal_environment/neovim/plugins.nix | 4 ++- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/modules/home-manager/terminal_environment/neovim/config-lua.nix b/modules/home-manager/terminal_environment/neovim/config-lua.nix index 23c7034..df29bed 100644 --- a/modules/home-manager/terminal_environment/neovim/config-lua.nix +++ b/modules/home-manager/terminal_environment/neovim/config-lua.nix @@ -3,9 +3,24 @@ -- Language server config local capabilities = require('cmp_nvim_lsp').default_capabilities() local lspconfig = require('lspconfig') + + lspconfig.marksman.setup { capabilities = capabilities } + lspconfig.nixd.setup { capabilities = capabilities } + lspconfig.rust_analyzer.setup { capabilities = capabilities } + lspconfig.yamlls.setup { + capabilities = capabilities, + settings = { + yaml = { + schemas = { + ["https://json.schemastore.org/github-workflow.json"] = "/.github/workflows/*", + }, + }, + }, + } + vim.keymap.set('n', 'df', vim.diagnostic.open_float) vim.keymap.set('n', 'dl', vim.diagnostic.setloclist) @@ -14,7 +29,7 @@ callback = function(ev) local opts = { buffer = ev.buf } vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) - vim.keymap.set('n', 'R', vim.lsp.buf.rename, opts) + vim.keymap.set('n', 'cr', vim.lsp.buf.rename, opts) end, }) @@ -28,6 +43,19 @@ end cmp.setup({ + formatting = { + format = function(entry, vim_item) + vim_item.kind = string.format('[%s]', vim_item.kind) + vim_item.menu = ({ + nvim_lsp = "[LSP]", + vsnip = "[Snip]", + buffer = "[Buffer]", + path = "[Path]", + calc = "[Calc]", + })[entry.source.name] + return vim_item + end + }, completion = { autocomplete = false, }, @@ -63,9 +91,9 @@ sources = cmp.config.sources({ { name = 'nvim_lsp' }, { name = 'vsnip' }, - { name = 'path' }, - }, { { name = 'buffer' }, + { name = 'path' }, + { name = 'calc' }, }) }) diff --git a/modules/home-manager/terminal_environment/neovim/default.nix b/modules/home-manager/terminal_environment/neovim/default.nix index 200d320..b97ec35 100644 --- a/modules/home-manager/terminal_environment/neovim/default.nix +++ b/modules/home-manager/terminal_environment/neovim/default.nix @@ -11,8 +11,11 @@ extraPackages = with pkgs; [ universal-ctags + + # Language servers + marksman nixd - nodejs-slim + yaml-language-server ]; }; } diff --git a/modules/home-manager/terminal_environment/neovim/plugins.nix b/modules/home-manager/terminal_environment/neovim/plugins.nix index b7b5a4f..3c697e2 100644 --- a/modules/home-manager/terminal_environment/neovim/plugins.nix +++ b/modules/home-manager/terminal_environment/neovim/plugins.nix @@ -23,6 +23,8 @@ vimPlugins.nvim-cmp vimPlugins.vim-vsnip vimPlugins.cmp-vsnip + vimPlugins.cmp-calc + vimPlugins.cmp-buffer vimPlugins.cmp-nvim-lsp vimPlugins.cmp-path @@ -59,7 +61,7 @@ # Query and insert unicode characters vimPlugins.unicode-vim - # Icons (e.g. file types)for other plugins + # Icons (e.g. file types) for other plugins vimPlugins.nvim-web-devicons # Syntax highlighting