summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.luacheckrc8
-rw-r--r--doc/telescope.txt23
-rw-r--r--lua/telescope/builtin/__lsp.lua28
-rw-r--r--lua/telescope/builtin/init.lua8
4 files changed, 43 insertions, 24 deletions
diff --git a/.luacheckrc b/.luacheckrc
index b035079..1602e62 100644
--- a/.luacheckrc
+++ b/.luacheckrc
@@ -24,3 +24,11 @@ globals = {
read_globals = {
"vim",
}
+
+files = {
+ ["lua/telescope/builtin/init.lua"] = {
+ ignore = {
+ "631", -- allow line len > 120
+ }
+ },
+}
diff --git a/doc/telescope.txt b/doc/telescope.txt
index efa49d7..8135b0f 100644
--- a/doc/telescope.txt
+++ b/doc/telescope.txt
@@ -1454,8 +1454,10 @@ builtin.lsp_references({opts}) *telescope.builtin.lsp_references()*
{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"
+ only one and the definition file is
+ different from the current file,
+ 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)
@@ -1501,8 +1503,10 @@ builtin.lsp_definitions({opts}) *telescope.builtin.lsp_definitions()*
{opts} (table) options to pass to the picker
Options: ~
- {jump_type} (string) how to goto definition if there is only one,
- values: "tab", "split", "vsplit", "never"
+ {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"
{fname_width} (number) defines the width of the filename section
(default: 30)
{show_line} (boolean) show results text (default: true)
@@ -1518,8 +1522,10 @@ builtin.lsp_type_definitions({opts}) *telescope.builtin.lsp_type_definitions()*
{opts} (table) options to pass to the picker
Options: ~
- {jump_type} (string) how to goto definition if there is only one,
- values: "tab", "split", "vsplit", "never"
+ {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"
{fname_width} (number) defines the width of the filename section
(default: 30)
{show_line} (boolean) show results text (default: true)
@@ -1536,8 +1542,9 @@ builtin.lsp_implementations({opts}) *telescope.builtin.lsp_implementations()*
Options: ~
{jump_type} (string) how to goto implementation if there is only
- one, values: "tab", "split", "vsplit",
- "never"
+ one and the definition file is different from
+ the current file, 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)
diff --git a/lua/telescope/builtin/__lsp.lua b/lua/telescope/builtin/__lsp.lua
index c23f25c..96b7cfa 100644
--- a/lua/telescope/builtin/__lsp.lua
+++ b/lua/telescope/builtin/__lsp.lua
@@ -40,12 +40,14 @@ lsp.references = function(opts)
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"
+ if filepath ~= locations[1].filename 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
end
-- jump to location
local location = locations[1]
@@ -184,12 +186,14 @@ local function list_or_jump(action, title, opts)
if #flattened_results == 0 then
return
elseif #flattened_results == 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"
+ if params.textDocument.uri ~= flattened_results[1].uri 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
end
vim.lsp.util.jump_to_location(flattened_results[1], offset_encoding)
else
diff --git a/lua/telescope/builtin/init.lua b/lua/telescope/builtin/init.lua
index c9c0ae3..e74cdf4 100644
--- a/lua/telescope/builtin/init.lua
+++ b/lua/telescope/builtin/init.lua
@@ -379,7 +379,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 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 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)
@@ -401,7 +401,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
---@param opts table: options to pass to the picker
----@field jump_type string: how to goto definition if there is only one, 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", "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)
@@ -410,7 +410,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,
--- otherwise show all options in Telescope
---@param opts table: options to pass to the picker
----@field jump_type string: how to goto definition if there is only one, 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", "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)
@@ -418,7 +418,7 @@ builtin.lsp_type_definitions = require("telescope.builtin.__lsp").type_definitio
--- 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
----@field jump_type string: how to goto implementation if there is only one, 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", "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)