aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer/installers/cargo.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/nvim-lsp-installer/installers/cargo.lua')
-rw-r--r--lua/nvim-lsp-installer/installers/cargo.lua11
1 files changed, 9 insertions, 2 deletions
diff --git a/lua/nvim-lsp-installer/installers/cargo.lua b/lua/nvim-lsp-installer/installers/cargo.lua
index c4f11854..1779980b 100644
--- a/lua/nvim-lsp-installer/installers/cargo.lua
+++ b/lua/nvim-lsp-installer/installers/cargo.lua
@@ -4,19 +4,26 @@ local path = require "nvim-lsp-installer.path"
local M = {}
---@param crate string The crate to install.
----@param opts {features:string|nil}
+---@param opts {git:boolean, features:string|nil}
function M.crate(crate, opts)
---@type ServerInstallerFunction
return function(_, callback, ctx)
opts = opts or {}
local args = { "install", "--root", ".", "--locked" }
+
if ctx.requested_server_version then
vim.list_extend(args, { "--version", ctx.requested_server_version })
end
+
if opts.features then
vim.list_extend(args, { "--features", opts.features })
end
- vim.list_extend(args, { crate })
+
+ if opts.git then
+ vim.list_extend(args, { "--git", crate })
+ else
+ vim.list_extend(args, { crate })
+ end
ctx.receipt:with_primary_source(ctx.receipt.cargo(crate))