require('vim.lsp.log').set_format_func(vim.inspect) -- vim.lsp.set_log_level("debug") require("config.lsp.pyright") require("config.lsp.ruff") -- require("config.lsp.pylsp") -- require("config.lsp.typescript") require("config.lsp.clangd") require("config.lsp.vls") require("config.lsp.rust_analyzer") local api = vim.api local opts = { noremap = true, silent = true } local keymap = vim.keymap.set keymap("n", "[d", "lua vim.diagnostic.jump({count = -1, float = true})", opts) keymap("n", "]d", "lua vim.diagnostic.jump({count = 1, float = true})", opts) keymap("n", "[e", "lua vim.diagnostic.jump({count = -1, severity = vim.diagnostic.severity.ERROR, float = true})", opts) keymap("n", "]e", "lua vim.diagnostic.jump({count = -1, severity = vim.diagnostic.severity.ERROR, float = true})", opts) keymap("n", "gd", "lua vim.lsp.buf.definition()", opts) keymap("n", "gD", "lua vim.lsp.buf.declaration()", opts) keymap("n", "gh", "lua vim.lsp.buf.signature_help()", opts) keymap("n", "gI", "lua vim.lsp.buf.implementation()", opts) keymap("n", "gt", "lua vim.lsp.buf.type_definition()", opts) keymap("n", "ca", "lua require('fzf-lua').lsp_code_actions()", opts) keymap("n", "gl", "lua vim.diagnostic.reset()", opts) -- Automatic completion triggering -- vim.api.nvim_create_autocmd('LspAttach', { -- callback = function(ev) -- local client = vim.lsp.get_client_by_id(ev.data.client_id) -- if client:supports_method('textDocument/completion') then -- vim.lsp.completion.enable(true, client.id, ev.buf, { autotrigger = true }) -- end -- end, -- }) vim.api.nvim_create_autocmd('LspAttach', { callback = function(ev) local client = vim.lsp.get_client_by_id(ev.data.client_id) if client:supports_method('textDocument/completion') then vim.lsp.completion.enable(true, client.id, ev.buf, { autotrigger = false }) end end, }) -- Old on-attach -- vim.api.nvim_create_autocmd('LspAttach', { -- callback = function(ev) -- local client = vim.lsp.get_client_by_id(ev.data.client_id) -- -- if client.server_capabilities.completionProvider then -- vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc" -- vim.bo[ev.buf].completefunc = "v:lua.vim.lsp.omnifunc" -- end -- -- if client.server_capabilities.definitionProvider then -- vim.bo[ev.buf].tagfunc = "v:lua.vim.lsp.tagfunc" -- end -- -- if client.server_capabilities.documentFormattingProvider then -- vim.bo[ev.buf].formatexpr = "v:lua.vim.lsp.formatexpr()" -- end -- end, -- })