diff --git a/lua/navigator.lua b/lua/navigator.lua index b1a8a2f..da5d010 100755 --- a/lua/navigator.lua +++ b/lua/navigator.lua @@ -1,12 +1,13 @@ local M = {} +local api = vim.api local function warn(msg) - vim.api.nvim_echo({ { 'WRN: ' .. msg, 'WarningMsg' } }, true, {}) + api.nvim_echo({ { 'WRN: ' .. msg, 'WarningMsg' } }, true, {}) end local function info(msg) if _NgConfigValues.debug then - vim.api.nvim_echo({ { 'Info: ' .. msg } }, true, {}) + api.nvim_echo({ { 'Info: ' .. msg } }, true, {}) end end @@ -209,7 +210,7 @@ local extend_config = function(opts) else if _NgConfigValues[key][k] == nil then if key == 'lsp' then - local lsp = require('navigator.lspclient.clients').lsp + local lsp = require('navigator.lspclient.servers') if not vim.tbl_contains(lsp or {}, k) and k ~= 'efm' and k ~= 'null-ls' then info(string.format('[] extend LSP support for %s %s ', key, k)) end @@ -244,7 +245,15 @@ M.setup = function(cfg) cfg = cfg or {} extend_config(cfg) - vim.cmd([[autocmd FileType,BufEnter * lua require'navigator.lspclient.clients'.on_filetype()]]) -- BufWinEnter BufNewFile,BufRead ? + local cmd_group = api.nvim_create_augroup('NGFtGroup', {}) + api.nvim_create_autocmd({ 'FileType', 'BufEnter' }, { + group = cmd_group, + pattern = '*', + callback = function() + require('navigator.lspclient.clients').on_filetype() + M.add_highlight() + end, + }) require('navigator.lazyloader').init() require('navigator.lspclient.clients').setup(_NgConfigValues) diff --git a/lua/navigator/lspclient/clients.lua b/lua/navigator/lspclient/clients.lua index 04aa43b..6bed481 100644 --- a/lua/navigator/lspclient/clients.lua +++ b/lua/navigator/lspclient/clients.lua @@ -330,52 +330,7 @@ local setups = { setups.sumneko_lua = vim.tbl_deep_extend('force', luadev, setups.sumneko_lua) -local servers = { - 'angularls', - 'gopls', - 'tsserver', - 'flow', - 'bashls', - 'dockerls', - 'julials', - 'pylsp', - 'pyright', - 'jedi_language_server', - 'jdtls', - 'sumneko_lua', - 'vimls', - 'html', - 'jsonls', - 'solargraph', - 'cssls', - 'yamlls', - 'clangd', - 'ccls', - 'sqls', - 'denols', - 'graphql', - 'dartls', - 'dotls', - 'kotlin_language_server', - 'nimls', - 'intelephense', - 'vuels', - 'phpactor', - 'omnisharp', - 'r_language_server', - 'rust_analyzer', - 'terraformls', - 'svelte', - 'texlab', - 'clojure_lsp', - 'elixirls', - 'sourcekit', - 'fsautocomplete', - 'vls', - 'hls', - 'tflint', - 'terraform_lsp', -} +local servers = require('navigator.lspclient.servers') local lsp_installer_servers = {} local has_lspinst = false @@ -977,7 +932,6 @@ end return { setup = setup, get_cfg = get_cfg, - lsp = servers, add_servers = add_servers, on_filetype = on_filetype, disabled_ft = disabled_ft, diff --git a/lua/navigator/lspclient/servers.lua b/lua/navigator/lspclient/servers.lua new file mode 100644 index 0000000..6899e12 --- /dev/null +++ b/lua/navigator/lspclient/servers.lua @@ -0,0 +1,46 @@ +return { + 'angularls', + 'gopls', + 'tsserver', + 'flow', + 'bashls', + 'dockerls', + 'julials', + 'pylsp', + 'pyright', + 'jedi_language_server', + 'jdtls', + 'sumneko_lua', + 'vimls', + 'html', + 'jsonls', + 'solargraph', + 'cssls', + 'yamlls', + 'clangd', + 'ccls', + 'sqls', + 'denols', + 'graphql', + 'dartls', + 'dotls', + 'kotlin_language_server', + 'nimls', + 'intelephense', + 'vuels', + 'phpactor', + 'omnisharp', + 'r_language_server', + 'rust_analyzer', + 'terraformls', + 'svelte', + 'texlab', + 'clojure_lsp', + 'elixirls', + 'sourcekit', + 'fsautocomplete', + 'vls', + 'hls', + 'tflint', + 'terraform_lsp', +}