diff options
author | Christian Segundo | 2023-10-12 15:29:11 +0200 |
---|---|---|
committer | Christian Segundo | 2023-10-12 15:29:11 +0200 |
commit | 542613a0f58ccb3722c93b4b68677d7b5053fd57 (patch) | |
tree | 04a940df3e75a4b4cbe53cc3392c4e1c63fc8c6f /public/nvim/.nvim/lua/plugins/lsp/config.lua | |
parent | 449a6f57a36862a8ff27b2a3cee0922f4e4d949e (diff) | |
download | dotfiles-542613a0f58ccb3722c93b4b68677d7b5053fd57.tar.gz |
Add nvim
Diffstat (limited to 'public/nvim/.nvim/lua/plugins/lsp/config.lua')
-rw-r--r-- | public/nvim/.nvim/lua/plugins/lsp/config.lua | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/public/nvim/.nvim/lua/plugins/lsp/config.lua b/public/nvim/.nvim/lua/plugins/lsp/config.lua new file mode 100644 index 0000000..b579720 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lsp/config.lua @@ -0,0 +1,40 @@ +return { + + { + "neovim/nvim-lspconfig", + event = { "BufReadPre", "BufNewFile" }, + opts = { servers = {} }, + config = function(_, opts) + local add_hook_after = require("lspconfig.util").add_hook_after + local on_attach = function(client, bufnr) + require("nvim-navic").attach(client, bufnr) + end + + for lsp, lsp_opts in pairs(opts.servers) do + lsp_opts = lsp_opts or {} + if lsp_opts.on_attach ~= nil then + lsp_opts["on_attach"] = add_hook_after(on_attach, lsp_opts.on_attach) + end + lsp_opts["capabilities"] = require("cmp_nvim_lsp").default_capabilities(lsp_opts.capabilities or {}) + require("lspconfig")[lsp].setup(lsp_opts) + end + end, + init = function() + vim.diagnostic.config({ + float = { + source = "always", + format = function(diagnostic) + -- should work for any LSP, see: https://github.com/neovim/neovim/pull/17510 + if diagnostic.code then + return string.format("(%s) %s", diagnostic.code, diagnostic.message) + end + return diagnostic.message + end, + }, + }) + end, + dependencies = { + { "SmiteshP/nvim-navic", opts = { highlight = true } }, + }, + }, +} |