From af7fc7d649d0a0d71e6689702ddb615e906d05fe Mon Sep 17 00:00:00 2001 From: ray-x Date: Sun, 4 Sep 2022 14:34:46 +1000 Subject: [PATCH] some updates for mason --- README.md | 5 ++++- lua/navigator/lspclient/clients.lua | 7 ++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f0a78bd..fd54443 100644 --- a/README.md +++ b/README.md @@ -595,7 +595,9 @@ To start LSP installed by lsp_installer, please use following setups require'navigator'.setup({ -- lsp_installer = false -- default value is false lsp = { - tsserver = { cmd = {'your tsserver installed by lsp_installer'} } + tsserver = { cmd = {'your tsserver installed by lsp_installer or mason'} } + -- e.g. tsserver = { cmd = {'/home/username/.local/share/nvim/mason/packages/typescript-language-server/node_modules/typescript/bin/tsserver'} } + } }) @@ -610,6 +612,7 @@ require'navigator'.setup({ lsp = { tsserver = { cmd = { "/Users/username/.local/share/nvim/lsp_servers/python/node_modules/.bin/pyright-langserver", "--stdio" } + -- or mason: cmd = { "/Users/username/.local/share/nvim/mason/packages/pyright/node_modules/pyright/index.js", "--stdio"} } } } diff --git a/lua/navigator/lspclient/clients.lua b/lua/navigator/lspclient/clients.lua index e0a283e..547dd71 100644 --- a/lua/navigator/lspclient/clients.lua +++ b/lua/navigator/lspclient/clients.lua @@ -141,7 +141,7 @@ local function load_cfg(ft, client, cfg, loaded, starting) trace('lsp for client', client, cfg) if cmd == nil or #cmd == 0 or vfn.executable(cmd[1]) == 0 then - log('lsp not installed for client', client, cmd) + log('lsp not installed for client', client, cmd, "fallback") return end if _NG_Loaded == nil then @@ -437,7 +437,7 @@ local function lsp_startup(ft, retry, user_lsp_opts) local servers = require'mason-lspconfig'.get_installed_servers() if not vim.tbl_contains(servers, lspconfig[lspclient].name) then log('mason server not installed', lspconfig[lspclient].name) - return + -- return end local pkg_name = require "mason-lspconfig.mappings.server".lspconfig_to_package[lspconfig[lspclient].name] local pkg = require "mason-registry".get_package(pkg_name) @@ -455,7 +455,8 @@ local function lsp_startup(ft, retry, user_lsp_opts) cfg.cmd = cfg.cmd or {} cfg.cmd[1] = path .. path_sep .. pkg.name if vfn.executable(cfg.cmd[1]) == 0 then - log('failed to find cmd', cfg.cmd[1]) + log('failed to find cmd', cfg.cmd[1], "fallback") + return load_cfg(ft, lspclient, cfg, loaded) else log('cmd installed', cfg.cmd) end