diff --git a/lua/lazyvim/plugins/extras/lang/typescript.lua b/lua/lazyvim/plugins/extras/lang/typescript.lua index 73da5520..d9d86f30 100644 --- a/lua/lazyvim/plugins/extras/lang/typescript.lua +++ b/lua/lazyvim/plugins/extras/lang/typescript.lua @@ -72,14 +72,23 @@ return { { "gD", function() - require("vtsls").commands.goto_source_definition(0) + local params = vim.lsp.util.make_position_params() + LazyVim.lsp.execute({ + command = "typescript.goToSourceDefinition", + arguments = { params.textDocument.uri, params.position }, + open = true, + }) end, desc = "Goto Source Definition", }, { "gR", function() - require("vtsls").commands.file_references(0) + LazyVim.lsp.execute({ + command = "typescript.findAllFileReferences", + arguments = { vim.uri_from_bufnr(0) }, + open = true, + }) end, desc = "File References", }, @@ -106,7 +115,7 @@ return { { "cV", function() - require("vtsls").commands.select_ts_version(0) + LazyVim.lsp.execute({ command = "typescript.selectTypeScriptVersion" }) end, desc = "Select TS workspace version", }, diff --git a/lua/lazyvim/util/lsp.lua b/lua/lazyvim/util/lsp.lua index 6b2adae4..f1be8801 100644 --- a/lua/lazyvim/util/lsp.lua +++ b/lua/lazyvim/util/lsp.lua @@ -337,4 +337,24 @@ M.action = setmetatable({}, { end end, }) + +---@class LspCommand: lsp.ExecuteCommandParams +---@field open? boolean + +---@param opts LspCommand +function M.execute(opts) + local params = { + command = opts.command, + arguments = opts.arguments, + } + if opts.open then + require("trouble").open({ + mode = "lsp_command", + params = params, + }) + else + return vim.lsp.buf_request(0, "workspace/executeCommand", params) + end +end + return M