diff options
| -rw-r--r-- | lua/nvim-lsp-installer/_generated/filetype_map.lua | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/_generated/metadata.lua | 3 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/core/managers/cargo/init.lua | 12 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/init.lua | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/wgsl_analyzer/init.lua | 19 | ||||
| -rw-r--r-- | tests/core/managers/cargo_spec.lua | 17 |
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" |
