aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Kudryavtsev <ko.dmitri@gmail.com>2022-06-01 21:32:59 +0300
committerGitHub <noreply@github.com>2022-06-01 20:32:59 +0200
commitd19ea3cbbda96db3099c2c27f4e070f90e14e1cb (patch)
tree1294c42b43d469ee331cfa5e589c5a96ff13245e
parentrefactor(grammarly): use new official package (#720) (diff)
downloadmason-d19ea3cbbda96db3099c2c27f4e070f90e14e1cb.tar
mason-d19ea3cbbda96db3099c2c27f4e070f90e14e1cb.tar.gz
mason-d19ea3cbbda96db3099c2c27f4e070f90e14e1cb.tar.bz2
mason-d19ea3cbbda96db3099c2c27f4e070f90e14e1cb.tar.lz
mason-d19ea3cbbda96db3099c2c27f4e070f90e14e1cb.tar.xz
mason-d19ea3cbbda96db3099c2c27f4e070f90e14e1cb.tar.zst
mason-d19ea3cbbda96db3099c2c27f4e070f90e14e1cb.zip
added wgsl_analyzer server (#719)
-rw-r--r--lua/nvim-lsp-installer/_generated/filetype_map.lua1
-rw-r--r--lua/nvim-lsp-installer/_generated/metadata.lua3
-rw-r--r--lua/nvim-lsp-installer/core/managers/cargo/init.lua12
-rw-r--r--lua/nvim-lsp-installer/servers/init.lua1
-rw-r--r--lua/nvim-lsp-installer/servers/wgsl_analyzer/init.lua19
-rw-r--r--tests/core/managers/cargo_spec.lua17
6 files changed, 52 insertions, 1 deletions
diff --git a/lua/nvim-lsp-installer/_generated/filetype_map.lua b/lua/nvim-lsp-installer/_generated/filetype_map.lua
index 24057ae7..31470631 100644
--- a/lua/nvim-lsp-installer/_generated/filetype_map.lua
+++ b/lua/nvim-lsp-installer/_generated/filetype_map.lua
@@ -150,6 +150,7 @@ return {
vlang = { "vls" },
vmasm = { "asm_lsp" },
vue = { "eslint", "stylelint_lsp", "tailwindcss", "volar", "vuels" },
+ wgsl = { "wgsl_analyzer" },
wxss = { "stylelint_lsp" },
xml = { "lemminx" },
xsd = { "lemminx" },
diff --git a/lua/nvim-lsp-installer/_generated/metadata.lua b/lua/nvim-lsp-installer/_generated/metadata.lua
index 10cddde2..4de4b005 100644
--- a/lua/nvim-lsp-installer/_generated/metadata.lua
+++ b/lua/nvim-lsp-installer/_generated/metadata.lua
@@ -346,6 +346,9 @@ return {
vuels = {
filetypes = { "vue" }
},
+ wgsl_analyzer = {
+ filetypes = { "wgsl" }
+ },
yamlls = {
filetypes = { "yaml", "yaml.docker-compose" }
},
diff --git a/lua/nvim-lsp-installer/core/managers/cargo/init.lua b/lua/nvim-lsp-installer/core/managers/cargo/init.lua
index 7f9dd0f0..77ec5ae8 100644
--- a/lua/nvim-lsp-installer/core/managers/cargo/init.lua
+++ b/lua/nvim-lsp-installer/core/managers/cargo/init.lua
@@ -35,6 +35,16 @@ function M.install(crate, opts)
assert(not opts.git, "Providing a version when installing a git crate is not allowed.")
end)
+ local final_crate = crate
+
+ if opts.git then
+ final_crate = { "--git" }
+ if type(opts.git) == "string" then
+ table.insert(final_crate, opts.git)
+ end
+ table.insert(final_crate, crate)
+ end
+
ctx.spawn.cargo {
"install",
"--root",
@@ -46,7 +56,7 @@ function M.install(crate, opts)
end)
:or_else(vim.NIL),
opts.features and { "--features", opts.features } or vim.NIL,
- opts.git and { "--git", crate } or crate,
+ final_crate,
}
return {
diff --git a/lua/nvim-lsp-installer/servers/init.lua b/lua/nvim-lsp-installer/servers/init.lua
index 6c385675..fc049589 100644
--- a/lua/nvim-lsp-installer/servers/init.lua
+++ b/lua/nvim-lsp-installer/servers/init.lua
@@ -147,6 +147,7 @@ local CORE_SERVERS = _.set_of {
"vls",
"volar",
"vuels",
+ "wgsl_analyzer",
"yamlls",
"zk",
"zls",
diff --git a/lua/nvim-lsp-installer/servers/wgsl_analyzer/init.lua b/lua/nvim-lsp-installer/servers/wgsl_analyzer/init.lua
new file mode 100644
index 00000000..b7bd9554
--- /dev/null
+++ b/lua/nvim-lsp-installer/servers/wgsl_analyzer/init.lua
@@ -0,0 +1,19 @@
+local server = require "nvim-lsp-installer.server"
+local cargo = require "nvim-lsp-installer.core.managers.cargo"
+
+return function(name, root_dir)
+ local homepage = "https://github.com/wgsl-analyzer/wgsl-analyzer"
+
+ return server.Server:new {
+ name = name,
+ root_dir = root_dir,
+ languages = { "wgsl" },
+ homepage = homepage,
+ installer = cargo.crate("wgsl_analyzer", {
+ git = homepage,
+ }),
+ default_options = {
+ cmd_env = cargo.env(root_dir),
+ },
+ }
+end
diff --git a/tests/core/managers/cargo_spec.lua b/tests/core/managers/cargo_spec.lua
index eb65aead..a473fe75 100644
--- a/tests/core/managers/cargo_spec.lua
+++ b/tests/core/managers/cargo_spec.lua
@@ -54,6 +54,23 @@ describe("cargo manager", function()
)
it(
+ "should call cargo install with git source and a specific crate",
+ async_test(function()
+ installer.run_installer(ctx, cargo.crate("crate-name", { git = "https://my-crate.git" }))
+ assert.spy(ctx.spawn.cargo).was_called(1)
+ assert.spy(ctx.spawn.cargo).was_called_with {
+ "install",
+ "--root",
+ ".",
+ "--locked",
+ vim.NIL,
+ vim.NIL, -- --features
+ { "--git", "https://my-crate.git", "crate-name" },
+ }
+ end)
+ )
+
+ it(
"should respect options",
async_test(function()
ctx.requested_version = Optional.of "42.13.37"