diff options
Diffstat (limited to '.config/nvim/lua/custom/config/lsp.lua')
| -rw-r--r-- | .config/nvim/lua/custom/config/lsp.lua | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/.config/nvim/lua/custom/config/lsp.lua b/.config/nvim/lua/custom/config/lsp.lua deleted file mode 100644 index 02ff31f..0000000 --- a/.config/nvim/lua/custom/config/lsp.lua +++ /dev/null @@ -1,73 +0,0 @@ -local lspconfig = require('lspconfig') -local capabilities = require('cmp_nvim_lsp').default_capabilities() - -local servers = require('custom.config.language-servers') -for name, config in pairs(servers) do - if config == false then - goto continue - end - if config == true then - ---@diagnostic disable-next-line: cast-local-type - config = {} - end - - -- NOTE: there must be a better way to do it, but it will do for now - if name == 'markdown_oxide' then - ---@diagnostic disable-next-line: cast-local-type - config = vim.tbl_deep_extend('force', {}, { - capabilities = vim.tbl_deep_extend('force', capabilities, { - workspace = { - didChangeWatchedFiles = { - dynamicRegistration = true, - }, - }, - }), - }, config) - else - ---@diagnostic disable-next-line: cast-local-type - config = vim.tbl_deep_extend('force', {}, { - capabilities = capabilities, - }, config) - end - - lspconfig[name].setup(config) - ::continue:: -end - -vim.api.nvim_create_autocmd('LspAttach', { - callback = function(args) - local bufnr = args.buf - local client = assert(vim.lsp.get_client_by_id(args.data.client_id), 'must have valid client') - - local settings = servers[client.name] - if type(settings) ~= 'table' then - ---@diagnostic disable-next-line: cast-local-type - settings = {} - end - - -- Override server capabilities - if settings.server_capabilities then - for k, v in pairs(settings.server_capabilities) do - if v == vim.NIL then - v = nil - end - client.server_capabilities[k] = v - end - end - - -- Workaround for semantic tokens apparently? - -- https://www.lazyvim.org/extras/lang/go - -- https://github.com/golang/go/issues/54531#issuecomment-1464982242 - if client.name == 'gopls' and not client.server_capabilities.semanticTokensProvider then - local semantic = client.config.capabilities.textDocument.semanticTokens - client.server_capabilities.semanticTokensProvider = { - full = true, - legend = { tokenModifiers = semantic.tokenModifiers, tokenTypes = semantic.tokenTypes }, - range = true, - } - end - - -- Register buffer local LSP keymaps - require('custom.config.lsp-keymaps').setup(bufnr) - end, -}) |
