diff --git a/common/home-manager/nixvim/lsp.nix b/common/home-manager/nixvim/lsp.nix index 6188c69..37a8352 100644 --- a/common/home-manager/nixvim/lsp.nix +++ b/common/home-manager/nixvim/lsp.nix @@ -4,14 +4,17 @@ enable = true; keymaps.lspBuf."ca" = "code_action"; luaConfig.post = '' - vim.diagnostic.config({ - signs = { - Error = "", - Warn = "", - Hint = "", - Info = "" - } - }); + local signs = { + Error = "", + Warn = "", + Hint = "", + Info = "" + } + + for type, icon in pairs(signs) do + local hl = "DiagnosticSign" .. type + vim.fn.sign_define(hl, {text = icon, texthl = hl, numhl = hl}) + end ''; servers = { cssls.enable = true; @@ -19,6 +22,7 @@ jdtls.enable = true; nil_ls.enable = true; pyright.enable = true; + ts_ls.enable = true; rust_analyzer = { enable = true; installCargo = false; @@ -27,44 +31,14 @@ svelte.enable = true; volar = { enable = true; - extraOptions.on_init.__raw = '' - function(client) - client.handlers['tsserver/request'] = function(_, result, context) - local clients = vim.lsp.get_clients({ bufnr = context.bufnr, name = 'vtsls' }) - if #clients == 0 then - vim.notify('Could not found `vtsls` lsp client, vue_lsp would not work without it.', vim.log.levels.ERROR) - return - end - local ts_client = clients[1] - - local param = unpack(result) - local id, command, payload = unpack(param) - ts_client:exec_cmd({ - command = 'typescript.tsserverRequest', - arguments = { - command, - payload, - }, - }, { bufnr = context.bufnr }, function(_, r) - local response_data = { { id, r.body } } - ---@diagnostic disable-next-line: param-type-mismatch - client:notify('tsserver/response', response_data) - end) - end - end, - ''; - }; - }; - }; - typescript-tools = { - enable = true; - settings = { - filetypes = [ "javascript" "typescript" "vue" ]; - settings = { - single_file_support = false; - tsserver_plugins = [ "@vue/typescript-plugin" ]; + tslsIntegration = true; + # extraOptions.init_options.vue.hybridMode = false; }; }; }; + # nvim-jdtls = { + # enable = true; + # data = "~/.cache/jdtls/workspace"; + # }; }; }