Skip to content

Commit

Permalink
feat: add jump_type option for lsp_references (#2218)
Browse files Browse the repository at this point in the history
  • Loading branch information
gepbird committed Nov 6, 2022
1 parent d541e0d commit cc77713
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 0 deletions.
3 changes: 3 additions & 0 deletions doc/telescope.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1420,6 +1420,9 @@ builtin.lsp_references({opts}) *telescope.builtin.lsp_references()*
lsp references (default: true)
{include_current_line} (boolean) include current line (default:
false)
{jump_type} (string) how to goto reference if there is
only one, values: "tab", "split",
"vsplit", "never"
{fname_width} (number) defines the width of the filename
section (default: 30)
{show_line} (boolean) show results text (default: true)
Expand Down
14 changes: 14 additions & 0 deletions lua/telescope/builtin/__lsp.lua
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,20 @@ lsp.references = function(opts)
return
end

if #locations == 1 and opts.jump_type ~= "never" then
if opts.jump_type == "tab" then
vim.cmd "tabedit"
elseif opts.jump_type == "split" then
vim.cmd "new"
elseif opts.jump_type == "vsplit" then
vim.cmd "vnew"
end
-- jump to location
vim.api.nvim_win_set_buf(0, opts.bufnr)
vim.api.nvim_win_set_cursor(0, { locations[1].lnum, locations[1].col - 1 })
return
end

pickers
.new(opts, {
prompt_title = "LSP References",
Expand Down
1 change: 1 addition & 0 deletions lua/telescope/builtin/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,7 @@ builtin.jumplist = require_on_exported_call("telescope.builtin.__internal").jump
---@param opts table: options to pass to the picker
---@field include_declaration boolean: include symbol declaration in the lsp references (default: true)
---@field include_current_line boolean: include current line (default: false)
---@field jump_type string: how to goto reference if there is only one, values: "tab", "split", "vsplit", "never"
---@field fname_width number: defines the width of the filename section (default: 30)
---@field show_line boolean: show results text (default: true)
---@field trim_text boolean: trim results text (default: false)
Expand Down

0 comments on commit cc77713

Please sign in to comment.