feat(lsp-jump-type): tab drop as new jump_type option for go-to LSP pickers (#2751)
This commit is contained in:
@@ -1549,8 +1549,8 @@ builtin.lsp_references({opts}) *telescope.builtin.lsp_references()*
|
|||||||
{jump_type} (string) how to goto reference if there is
|
{jump_type} (string) how to goto reference if there is
|
||||||
only one and the definition file is
|
only one and the definition file is
|
||||||
different from the current file,
|
different from the current file,
|
||||||
values: "tab", "split", "vsplit",
|
values: "tab", "tab drop", "split",
|
||||||
"never"
|
"vsplit", "never"
|
||||||
{fname_width} (number) defines the width of the filename
|
{fname_width} (number) defines the width of the filename
|
||||||
section (default: 30)
|
section (default: 30)
|
||||||
{show_line} (boolean) show results text (default: true)
|
{show_line} (boolean) show results text (default: true)
|
||||||
@@ -1601,8 +1601,8 @@ builtin.lsp_definitions({opts}) *telescope.builtin.lsp_definitions()*
|
|||||||
Options: ~
|
Options: ~
|
||||||
{jump_type} (string) how to goto definition if there is only one
|
{jump_type} (string) how to goto definition if there is only one
|
||||||
and the definition file is different from
|
and the definition file is different from
|
||||||
the current file, values: "tab", "split",
|
the current file, values: "tab", "tab
|
||||||
"vsplit", "never"
|
drop", "split", "vsplit", "never"
|
||||||
{fname_width} (number) defines the width of the filename section
|
{fname_width} (number) defines the width of the filename section
|
||||||
(default: 30)
|
(default: 30)
|
||||||
{show_line} (boolean) show results text (default: true)
|
{show_line} (boolean) show results text (default: true)
|
||||||
@@ -1623,8 +1623,8 @@ builtin.lsp_type_definitions({opts}) *telescope.builtin.lsp_type_definitions()*
|
|||||||
Options: ~
|
Options: ~
|
||||||
{jump_type} (string) how to goto definition if there is only one
|
{jump_type} (string) how to goto definition if there is only one
|
||||||
and the definition file is different from
|
and the definition file is different from
|
||||||
the current file, values: "tab", "split",
|
the current file, values: "tab", "tab
|
||||||
"vsplit", "never"
|
drop", "split", "vsplit", "never"
|
||||||
{fname_width} (number) defines the width of the filename section
|
{fname_width} (number) defines the width of the filename section
|
||||||
(default: 30)
|
(default: 30)
|
||||||
{show_line} (boolean) show results text (default: true)
|
{show_line} (boolean) show results text (default: true)
|
||||||
@@ -1645,8 +1645,8 @@ builtin.lsp_implementations({opts}) *telescope.builtin.lsp_implementations()*
|
|||||||
Options: ~
|
Options: ~
|
||||||
{jump_type} (string) how to goto implementation if there is only
|
{jump_type} (string) how to goto implementation if there is only
|
||||||
one and the definition file is different
|
one and the definition file is different
|
||||||
from the current file, values: "tab",
|
from the current file, values: "tab", "tab
|
||||||
"split", "vsplit", "never"
|
drop", "split", "vsplit", "never"
|
||||||
{fname_width} (number) defines the width of the filename section
|
{fname_width} (number) defines the width of the filename section
|
||||||
(default: 30)
|
(default: 30)
|
||||||
{show_line} (boolean) show results text (default: true)
|
{show_line} (boolean) show results text (default: true)
|
||||||
|
|||||||
@@ -47,6 +47,8 @@ lsp.references = function(opts)
|
|||||||
vim.cmd "new"
|
vim.cmd "new"
|
||||||
elseif opts.jump_type == "vsplit" then
|
elseif opts.jump_type == "vsplit" then
|
||||||
vim.cmd "vnew"
|
vim.cmd "vnew"
|
||||||
|
elseif opts.jump_type == "tab drop" then
|
||||||
|
vim.cmd("tab drop " .. locations[1].filename)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- jump to location
|
-- jump to location
|
||||||
@@ -197,6 +199,9 @@ local function list_or_jump(action, title, opts)
|
|||||||
vim.cmd "new"
|
vim.cmd "new"
|
||||||
elseif opts.jump_type == "vsplit" then
|
elseif opts.jump_type == "vsplit" then
|
||||||
vim.cmd "vnew"
|
vim.cmd "vnew"
|
||||||
|
elseif opts.jump_type == "tab drop" then
|
||||||
|
local file_path = vim.uri_to_fname(flattened_results[1].uri)
|
||||||
|
vim.cmd("tab drop " .. file_path)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -416,7 +416,7 @@ builtin.jumplist = require_on_exported_call("telescope.builtin.__internal").jump
|
|||||||
---@param opts table: options to pass to the picker
|
---@param opts table: options to pass to the picker
|
||||||
---@field include_declaration boolean: include symbol declaration in the lsp references (default: true)
|
---@field include_declaration boolean: include symbol declaration in the lsp references (default: true)
|
||||||
---@field include_current_line boolean: include current line (default: false)
|
---@field include_current_line boolean: include current line (default: false)
|
||||||
---@field jump_type string: how to goto reference if there is only one and the definition file is different from the current file, values: "tab", "split", "vsplit", "never"
|
---@field jump_type string: how to goto reference if there is only one and the definition file is different from the current file, values: "tab", "tab drop", "split", "vsplit", "never"
|
||||||
---@field fname_width number: defines the width of the filename section (default: 30)
|
---@field fname_width number: defines the width of the filename section (default: 30)
|
||||||
---@field show_line boolean: show results text (default: true)
|
---@field show_line boolean: show results text (default: true)
|
||||||
---@field trim_text boolean: trim results text (default: false)
|
---@field trim_text boolean: trim results text (default: false)
|
||||||
@@ -441,7 +441,7 @@ builtin.lsp_outgoing_calls = require_on_exported_call("telescope.builtin.__lsp")
|
|||||||
|
|
||||||
--- Goto the definition of the word under the cursor, if there's only one, otherwise show all options in Telescope
|
--- Goto the definition of the word under the cursor, if there's only one, otherwise show all options in Telescope
|
||||||
---@param opts table: options to pass to the picker
|
---@param opts table: options to pass to the picker
|
||||||
---@field jump_type string: how to goto definition if there is only one and the definition file is different from the current file, values: "tab", "split", "vsplit", "never"
|
---@field jump_type string: how to goto definition if there is only one and the definition file is different from the current file, values: "tab", "tab drop", "split", "vsplit", "never"
|
||||||
---@field fname_width number: defines the width of the filename section (default: 30)
|
---@field fname_width number: defines the width of the filename section (default: 30)
|
||||||
---@field show_line boolean: show results text (default: true)
|
---@field show_line boolean: show results text (default: true)
|
||||||
---@field trim_text boolean: trim results text (default: false)
|
---@field trim_text boolean: trim results text (default: false)
|
||||||
@@ -452,7 +452,7 @@ builtin.lsp_definitions = require_on_exported_call("telescope.builtin.__lsp").de
|
|||||||
--- Goto the definition of the type of the word under the cursor, if there's only one,
|
--- Goto the definition of the type of the word under the cursor, if there's only one,
|
||||||
--- otherwise show all options in Telescope
|
--- otherwise show all options in Telescope
|
||||||
---@param opts table: options to pass to the picker
|
---@param opts table: options to pass to the picker
|
||||||
---@field jump_type string: how to goto definition if there is only one and the definition file is different from the current file, values: "tab", "split", "vsplit", "never"
|
---@field jump_type string: how to goto definition if there is only one and the definition file is different from the current file, values: "tab", "tab drop", "split", "vsplit", "never"
|
||||||
---@field fname_width number: defines the width of the filename section (default: 30)
|
---@field fname_width number: defines the width of the filename section (default: 30)
|
||||||
---@field show_line boolean: show results text (default: true)
|
---@field show_line boolean: show results text (default: true)
|
||||||
---@field trim_text boolean: trim results text (default: false)
|
---@field trim_text boolean: trim results text (default: false)
|
||||||
@@ -462,7 +462,7 @@ builtin.lsp_type_definitions = require_on_exported_call("telescope.builtin.__lsp
|
|||||||
|
|
||||||
--- Goto the implementation of the word under the cursor if there's only one, otherwise show all options in Telescope
|
--- Goto the implementation of the word under the cursor if there's only one, otherwise show all options in Telescope
|
||||||
---@param opts table: options to pass to the picker
|
---@param opts table: options to pass to the picker
|
||||||
---@field jump_type string: how to goto implementation if there is only one and the definition file is different from the current file, values: "tab", "split", "vsplit", "never"
|
---@field jump_type string: how to goto implementation if there is only one and the definition file is different from the current file, values: "tab", "tab drop", "split", "vsplit", "never"
|
||||||
---@field fname_width number: defines the width of the filename section (default: 30)
|
---@field fname_width number: defines the width of the filename section (default: 30)
|
||||||
---@field show_line boolean: show results text (default: true)
|
---@field show_line boolean: show results text (default: true)
|
||||||
---@field trim_text boolean: trim results text (default: false)
|
---@field trim_text boolean: trim results text (default: false)
|
||||||
|
|||||||
Reference in New Issue
Block a user