diff options
| author | William Boman <william@redwill.se> | 2021-10-14 22:52:23 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-14 22:52:23 +0200 |
| commit | a87ea0386110eeeaad47b140b9155abd4c235f64 (patch) | |
| tree | 0c6c389b2d7de39a5609229cba020c03e98e6cf1 /lua/nvim-lsp-installer | |
| parent | update docs (diff) | |
| download | mason-a87ea0386110eeeaad47b140b9155abd4c235f64.tar mason-a87ea0386110eeeaad47b140b9155abd4c235f64.tar.gz mason-a87ea0386110eeeaad47b140b9155abd4c235f64.tar.bz2 mason-a87ea0386110eeeaad47b140b9155abd4c235f64.tar.lz mason-a87ea0386110eeeaad47b140b9155abd4c235f64.tar.xz mason-a87ea0386110eeeaad47b140b9155abd4c235f64.tar.zst mason-a87ea0386110eeeaad47b140b9155abd4c235f64.zip | |
add eslint, deprecate eslintls (#149)
Diffstat (limited to 'lua/nvim-lsp-installer')
| -rw-r--r-- | lua/nvim-lsp-installer/server.lua | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/eslint/README.md (renamed from lua/nvim-lsp-installer/servers/eslintls/README.md) | 10 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/eslint/init.lua | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/eslintls/init.lua | 4 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/init.lua | 2 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/ui/status-win/init.lua | 60 |
6 files changed, 58 insertions, 20 deletions
diff --git a/lua/nvim-lsp-installer/server.lua b/lua/nvim-lsp-installer/server.lua index 1240d349..ba90c5cf 100644 --- a/lua/nvim-lsp-installer/server.lua +++ b/lua/nvim-lsp-installer/server.lua @@ -41,6 +41,7 @@ function M.Server:new(opts) name = opts.name, root_dir = opts.root_dir, homepage = opts.homepage, + deprecated = opts.deprecated, _root_dir = opts.root_dir, -- @deprecated Use the `root_dir` property instead. _installer = type(opts.installer) == "function" and opts.installer or installers.pipe(opts.installer), _default_options = opts.default_options, diff --git a/lua/nvim-lsp-installer/servers/eslintls/README.md b/lua/nvim-lsp-installer/servers/eslint/README.md index 2a5307df..557e986b 100644 --- a/lua/nvim-lsp-installer/servers/eslintls/README.md +++ b/lua/nvim-lsp-installer/servers/eslint/README.md @@ -1,8 +1,8 @@ -# eslintls +# eslint ## Enabling document formatting -To make the `eslintls` server respond to `textDocument/formatting` LSP requests, you need to manually enable this +To make the `eslint` server respond to `textDocument/formatting` LSP requests, you need to manually enable this setting. This is done when setting up the LSP server, like so: ```lua @@ -15,10 +15,10 @@ lsp_installer.on_server_ready(function (server) on_attach = common_on_attach, } - if server.name == "eslintls" then + if server.name == "eslint" then opts.on_attach = function (client, bufnr) -- neovim's LSP client does not currently support dynamic capabilities registration, so we need to set - -- the resolved capabilities of the eslintls server ourselves! + -- the resolved capabilities of the eslint server ourselves! client.resolved_capabilities.document_formatting = true common_on_attach(client, bufnr) end @@ -31,7 +31,7 @@ lsp_installer.on_server_ready(function (server) end) ``` -This will make `eslintls` respond to formatting requests, for example when triggered through: +This will make `eslint` respond to formatting requests, for example when triggered through: - `:lua vim.lsp.buf.formatting()` - `:lua vim.lsp.buf.formatting_seq_sync()` diff --git a/lua/nvim-lsp-installer/servers/eslint/init.lua b/lua/nvim-lsp-installer/servers/eslint/init.lua new file mode 100644 index 00000000..21979405 --- /dev/null +++ b/lua/nvim-lsp-installer/servers/eslint/init.lua @@ -0,0 +1 @@ +return require "nvim-lsp-installer.servers.vscode-langservers-extracted" "vscode-eslint-language-server" diff --git a/lua/nvim-lsp-installer/servers/eslintls/init.lua b/lua/nvim-lsp-installer/servers/eslintls/init.lua index 3e9d3cc3..7ffad30f 100644 --- a/lua/nvim-lsp-installer/servers/eslintls/init.lua +++ b/lua/nvim-lsp-installer/servers/eslintls/init.lua @@ -15,6 +15,10 @@ return function(name, root_dir) return server.Server:new { name = name, root_dir = root_dir, + deprecated = { + message = "eslintls has been replaced with eslint. It's still the same server - just a different name and upstream dependencies.", + replace_with = "eslint", + }, installer = { std.git_clone "https://github.com/microsoft/vscode-eslint", npm.install(), diff --git a/lua/nvim-lsp-installer/servers/init.lua b/lua/nvim-lsp-installer/servers/init.lua index 35c23627..cdef8780 100644 --- a/lua/nvim-lsp-installer/servers/init.lua +++ b/lua/nvim-lsp-installer/servers/init.lua @@ -20,6 +20,7 @@ local INSTALL_DIRS = { ["dockerls"] = "dockerfile", ["elixirls"] = "elixir", ["elmls"] = "elm", + ["eslint"] = "vscode-eslint", ["eslintls"] = "eslint", ["gopls"] = "go", ["hls"] = "haskell", @@ -57,6 +58,7 @@ local CORE_SERVERS = Data.set_of { "ember", "emmet_ls", "erlangls", + "eslint", "eslintls", "fortls", "gopls", diff --git a/lua/nvim-lsp-installer/ui/status-win/init.lua b/lua/nvim-lsp-installer/ui/status-win/init.lua index 56cfbe9d..60454419 100644 --- a/lua/nvim-lsp-installer/ui/status-win/init.lua +++ b/lua/nvim-lsp-installer/ui/status-win/init.lua @@ -138,21 +138,40 @@ local function get_relative_install_time(time) end local function ServerMetadata(server) - return Ui.Table(Data.list_not_nil( - Data.lazy(server.metadata.install_timestamp_seconds, function() - return { - { "last updated", "LspInstallerMuted" }, - { get_relative_install_time(server.metadata.install_timestamp_seconds), "" }, - } + return Ui.Node(Data.list_not_nil( + Data.lazy(server.is_installed and server.deprecated, function() + return Ui.Node(Data.list_not_nil( + Ui.HlTextNode { server.deprecated.message, "Comment" }, + Data.lazy(server.deprecated.replace_with, function() + return Ui.Node { + Ui.HlTextNode { + { + { "Replace with: ", "LspInstallerMuted" }, + { server.deprecated.replace_with, "LspInstallerHighlighted" }, + }, + }, + Ui.Keybind("<CR>", "REPLACE_SERVER", { server.name, server.deprecated.replace_with }), + Ui.EmptyLine(), + } + end) + )) end), - Data.when(server.is_installed, { - { "path", "LspInstallerMuted" }, - { server.metadata.install_dir, "" }, - }), - { - { "homepage", "LspInstallerMuted" }, - { server.metadata.homepage or "-", "" }, - } + Ui.Table(Data.list_not_nil( + Data.lazy(server.metadata.install_timestamp_seconds, function() + return { + { "last updated", "LspInstallerMuted" }, + { get_relative_install_time(server.metadata.install_timestamp_seconds), "" }, + } + end), + Data.when(server.is_installed, { + { "path", "LspInstallerMuted" }, + { server.metadata.install_dir, "" }, + }), + { + { "homepage", "LspInstallerMuted" }, + { server.metadata.homepage or "-", "" }, + } + )) )) end @@ -163,7 +182,8 @@ local function InstalledServers(servers, expanded_server) Ui.HlTextNode { Data.list_not_nil( { settings.current.ui.icons.server_installed, "LspInstallerGreen" }, - { " " .. server.name, "" } + { " " .. server.name, "" }, + Data.when(server.deprecated, { " deprecated", "LspInstallerOrange" }) ), }, Ui.Keybind(settings.current.ui.keymaps.toggle_server_expand, "EXPAND_SERVER", { server.name }), @@ -340,6 +360,7 @@ local function create_initial_server_state(server) return { name = server.name, is_installed = server:is_installed(), + deprecated = server.deprecated, metadata = { homepage = server.homepage, install_timestamp_seconds = nil, -- lazy @@ -571,6 +592,15 @@ local function init(all_servers) uninstall_server(server) end end, + ["REPLACE_SERVER"] = function(e) + local old_server_name, new_server_name = e.payload[1], e.payload[2] + local old_ok, old_server = lsp_servers.get_server(old_server_name) + local new_ok, new_server = lsp_servers.get_server(new_server_name) + if old_ok and new_ok then + uninstall_server(old_server) + install_server(new_server) + end + end, }, } end |
