aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2021-10-14 22:52:23 +0200
committerGitHub <noreply@github.com>2021-10-14 22:52:23 +0200
commita87ea0386110eeeaad47b140b9155abd4c235f64 (patch)
tree0c6c389b2d7de39a5609229cba020c03e98e6cf1 /lua/nvim-lsp-installer
parentupdate docs (diff)
downloadmason-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.lua1
-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.lua1
-rw-r--r--lua/nvim-lsp-installer/servers/eslintls/init.lua4
-rw-r--r--lua/nvim-lsp-installer/servers/init.lua2
-rw-r--r--lua/nvim-lsp-installer/ui/status-win/init.lua60
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