From 6dec8cf723e37b4380e82a4be93ac87373300105 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9A=AE=E6=99=A8?= Date: Wed, 24 May 2023 17:21:16 +0800 Subject: [PATCH] feat(lsp): add 'reuse_win' for reuse window options (#2454) --- doc/telescope.txt | 6 ++++++ lua/telescope/builtin/__lsp.lua | 3 ++- lua/telescope/builtin/init.lua | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/doc/telescope.txt b/doc/telescope.txt index c29c00d..778feb0 100644 --- a/doc/telescope.txt +++ b/doc/telescope.txt @@ -1516,6 +1516,8 @@ builtin.lsp_definitions({opts}) *telescope.builtin.lsp_definitions()* (default: 30) {show_line} (boolean) show results text (default: true) {trim_text} (boolean) trim results text (default: false) + {reuse_win} (boolean) jump to existing window if buffer is already + opened (default: false) builtin.lsp_type_definitions({opts}) *telescope.builtin.lsp_type_definitions()* @@ -1535,6 +1537,8 @@ builtin.lsp_type_definitions({opts}) *telescope.builtin.lsp_type_definitions()* (default: 30) {show_line} (boolean) show results text (default: true) {trim_text} (boolean) trim results text (default: false) + {reuse_win} (boolean) jump to existing window if buffer is already + opened (default: false) builtin.lsp_implementations({opts}) *telescope.builtin.lsp_implementations()* @@ -1554,6 +1558,8 @@ builtin.lsp_implementations({opts}) *telescope.builtin.lsp_implementations()* (default: 30) {show_line} (boolean) show results text (default: true) {trim_text} (boolean) trim results text (default: false) + {reuse_win} (boolean) jump to existing window if buffer is already + opened (default: false) builtin.lsp_document_symbols({opts}) *telescope.builtin.lsp_document_symbols()* diff --git a/lua/telescope/builtin/__lsp.lua b/lua/telescope/builtin/__lsp.lua index 3604e5b..c0813ca 100644 --- a/lua/telescope/builtin/__lsp.lua +++ b/lua/telescope/builtin/__lsp.lua @@ -196,7 +196,8 @@ local function list_or_jump(action, title, opts) vim.cmd "vnew" end end - vim.lsp.util.jump_to_location(flattened_results[1], offset_encoding) + + vim.lsp.util.jump_to_location(flattened_results[1], offset_encoding, opts.reuse_win) else local locations = vim.lsp.util.locations_to_items(flattened_results, offset_encoding) pickers diff --git a/lua/telescope/builtin/init.lua b/lua/telescope/builtin/init.lua index 0ce08b3..c460c18 100644 --- a/lua/telescope/builtin/init.lua +++ b/lua/telescope/builtin/init.lua @@ -407,6 +407,7 @@ builtin.lsp_outgoing_calls = require_on_exported_call("telescope.builtin.__lsp") ---@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) +---@field reuse_win boolean: jump to existing window if buffer is already opened (default: false) builtin.lsp_definitions = require_on_exported_call("telescope.builtin.__lsp").definitions --- Goto the definition of the type of the word under the cursor, if there's only one, @@ -416,6 +417,7 @@ builtin.lsp_definitions = require_on_exported_call("telescope.builtin.__lsp").de ---@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) +---@field reuse_win boolean: jump to existing window if buffer is already opened (default: false) builtin.lsp_type_definitions = require("telescope.builtin.__lsp").type_definitions --- Goto the implementation of the word under the cursor if there's only one, otherwise show all options in Telescope @@ -424,6 +426,7 @@ builtin.lsp_type_definitions = require("telescope.builtin.__lsp").type_definitio ---@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) +---@field reuse_win boolean: jump to existing window if buffer is already opened (default: false) builtin.lsp_implementations = require_on_exported_call("telescope.builtin.__lsp").implementations --- Lists LSP document symbols in the current buffer