From fa7cf6ee09782e46394c91a4de1a760ecf5d5726 Mon Sep 17 00:00:00 2001 From: Solomon Laing Date: Sat, 3 Dec 2022 19:46:58 +1030 Subject: [PATCH] changes to lsp regarding deno and tsserver --- .config/nvim/init.lua | 2 +- .config/nvim/lua/user/autocmd.lua | 2 +- .config/nvim/lua/user/lsp/handlers.lua | 55 ++++++++++--------- .config/nvim/lua/user/lsp/mason.lua | 8 +-- .../nvim/lua/user/lsp/settings/pyright.lua | 15 ----- .config/nvim/lua/user/plugins.lua | 6 +- 6 files changed, 35 insertions(+), 53 deletions(-) delete mode 100644 .config/nvim/lua/user/lsp/settings/pyright.lua diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index d927d06..af5d367 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -39,4 +39,4 @@ require "user.zk" require "user.tabout" require "user.cybu" require "user.dap" -require "user.noice" +-- require "user.noice" diff --git a/.config/nvim/lua/user/autocmd.lua b/.config/nvim/lua/user/autocmd.lua index 71adba5..a387a4d 100644 --- a/.config/nvim/lua/user/autocmd.lua +++ b/.config/nvim/lua/user/autocmd.lua @@ -82,5 +82,5 @@ vim.cmd [[autocmd VimLeave *.tex !texclear %]] -- Run install when editing my scripts vim.cmd [[ -autocmd BufWritePost ~/repos/inks-scripts/** !~/repos/inks-scripts/install +autocmd BufWritePost ~/repos/inks-scripts/scripts/** !~/repos/inks-scripts/install ]] diff --git a/.config/nvim/lua/user/lsp/handlers.lua b/.config/nvim/lua/user/lsp/handlers.lua index d1060dd..d8df9ac 100644 --- a/.config/nvim/lua/user/lsp/handlers.lua +++ b/.config/nvim/lua/user/lsp/handlers.lua @@ -79,41 +79,46 @@ M.setup = function() end local function attach_navic(client, bufnr) - vim.g.navic_silence = false - local status_ok, navic = pcall(require, "nvim-navic") - if not status_ok then - print"nvim-navic error!" - return + vim.g.navic_silence = false + local status_ok, navic = pcall(require, "nvim-navic") + if not status_ok then + print("nvim-navic error!") + return end if client.server_capabilities.documentSymbolProvider then navic.attach(client, bufnr) end end -local function lsp_keymaps(bufnr) - local opts = { noremap = true, silent = true } - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", "Telescope lsp_definitions", opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "Telescope lsp_declarations", opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "K", "lua vim.lsp.buf.hover()", opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "gI", "Telescope lsp_implementations", opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "gr", "Telescope lsp_references", opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "gl", "lua vim.diagnostic.open_float()", opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "gs", "lua vim.lsp.buf.signature_help()", opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "", "Format", opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "", "lua vim.lsp.buf.code_action()", opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "", "lua vim.lsp.buf.signature_help()", opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "rn", "lua vim.lsp.buf.rename()", opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "ca", "lua vim.lsp.buf.code_action()", opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "f", "lua vim.diagnostic.open_float()", opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "[d", 'lua vim.diagnostic.goto_prev({ border = "rounded" })', opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "]d", 'lua vim.diagnostic.goto_next({ border = "rounded" })', opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "q", "lua vim.diagnostic.setloclist()", opts) - -- vim.cmd [[ command! Format execute 'lua vim.lsp.buf.format({ async = true })' ]] +local function disable_deno_formatting(client) + if client.name == "denols" then + require("null-ls").disable({ "prettier" }) + end +end + +local function resolve_tsserver_deno(client) + local active_clients = vim.lsp.get_active_clients() + if client.name == "denols" then + for _, client_ in pairs(active_clients) do + -- stop tsserver if denols is already active + if client_.name == "tsserver" then + client_.stop() + end + end + elseif client.name == "tsserver" then + for _, client_ in pairs(active_clients) do + -- prevent tsserver from starting if denols is already active + if client_.name == "denols" then + client.stop() + end + end + end end M.on_attach = function(client, bufnr) - lsp_keymaps(bufnr) attach_navic(client, bufnr) + disable_deno_formatting(client) + resolve_tsserver_deno(client) end function M.enable_format_on_save() diff --git a/.config/nvim/lua/user/lsp/mason.lua b/.config/nvim/lua/user/lsp/mason.lua index acd8b89..ea1d0ce 100644 --- a/.config/nvim/lua/user/lsp/mason.lua +++ b/.config/nvim/lua/user/lsp/mason.lua @@ -18,6 +18,7 @@ local servers = { "sumneko_lua", "omnisharp", "tflint", + "denols", "terraformls", "tsserver", "pyright", @@ -73,7 +74,7 @@ for _, server in pairs(servers) do capabilities = require("user.lsp.handlers").capabilities, } - server = vim.split(server, "@")[1] + server = vim.split(server, "@", {})[1] if server == "yamlls" then local yamlls_opts = require("user.lsp.settings.yamlls") @@ -92,11 +93,6 @@ for _, server in pairs(servers) do opts = vim.tbl_deep_extend("force", tsserver_opts, opts) end - if server == "pyright" then - local pyright_opts = require("user.lsp.settings.pyright") - opts = vim.tbl_deep_extend("force", pyright_opts, opts) - end - if server == "solc" then local solc_opts = require("user.lsp.settings.solc") opts = vim.tbl_deep_extend("force", solc_opts, opts) diff --git a/.config/nvim/lua/user/lsp/settings/pyright.lua b/.config/nvim/lua/user/lsp/settings/pyright.lua deleted file mode 100644 index e567d35..0000000 --- a/.config/nvim/lua/user/lsp/settings/pyright.lua +++ /dev/null @@ -1,15 +0,0 @@ -return { - cmd = { "pyright" }, - settings = { - python = { - analysis = { - typeCheckingMode = "basic", - diagnosticMode = "workspace", - inlayHints = { - variableTypes = true, - functionReturnTypes = true, - }, - }, - }, - }, -} diff --git a/.config/nvim/lua/user/plugins.lua b/.config/nvim/lua/user/plugins.lua index 522f6bf..82eaa55 100644 --- a/.config/nvim/lua/user/plugins.lua +++ b/.config/nvim/lua/user/plugins.lua @@ -46,7 +46,7 @@ return packer.startup(function(use) use("wbthomason/packer.nvim") -- Have packer manage inself -- Noice :D - use("folke/noice.nvim") -- magic by folke. + -- use("folke/noice.nvim") -- magic by folke. -- Lua Development use("nvim-lua/plenary.nvim") -- useful lua functions @@ -66,10 +66,6 @@ return packer.startup(function(use) use({ -- I'm currently just using this for a functional code action menu for omnisharp, I want to look further into its functions though. "glepnir/lspsaga.nvim", branch = "main", - config = function () - local saga = require"lspsaga" - saga.init_lsp_saga({}) - end, }) use("jose-elias-alvarez/null-ls.nvim")