diff --git a/nvim/.config/nvim/after/plugin/lspconfig.lua b/nvim/.config/nvim/after/plugin/lspconfig.lua index 1a89f21..1ba885f 100644 --- a/nvim/.config/nvim/after/plugin/lspconfig.lua +++ b/nvim/.config/nvim/after/plugin/lspconfig.lua @@ -43,8 +43,6 @@ local format_augroup = setmetatable({}, { }) local on_attach = function(client, bufnr) - nmap("K", vim.lsp.buf.hover, "LSP hover", bufnr) - nmap("", vim.lsp.buf.definition, "Go to definition", bufnr) nmap("r", vim.lsp.buf.rename, "Rename", bufnr) nmap("cf", vim.lsp.buf.format, "Format document", bufnr) nmap("ca", vim.lsp.buf.code_action, "Code actions", bufnr) @@ -52,7 +50,17 @@ local on_attach = function(client, bufnr) nmap("D", vim.lsp.buf.type_definition, "Go to type definition", bufnr) nmap("gr", "Telescope lsp_references", "View references", bufnr) - vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") + if client.server_capabilities.completionProvider then + vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") + end + + if client.server_capabilities.definitionProvider then + vim.api.nvim_buf_set_option(bufnr, "tagfunc", "v:lua.vim.lsp.tagfunc") + end + + if client.server_capabilities.hoverProvider then + nmap("K", vim.lsp.buf.hover, "LSP hover", bufnr) + end -- Highlight on cursor hold if client.server_capabilities.documentHighlightProvider then @@ -87,20 +95,8 @@ end local servers = { gopls = {}, - intelephense = { - settings = { - intelephense = { - format = { - braces = "k&r", - }, - telemetry = { - enabled = false, - }, - files = { - maxSize = 10000000, - }, - }, - } + psalm = { + cmd = { "./vendor/bin/psalm-language-server" }, }, pylsp = {}, rust_analyzer = {