Skip to content

Commit f06e7a8

Browse files
jamestrewGithub Actions
and
Github Actions
authored
Revert "feat(lsp): use native lsp handlers for some pickers" (#3349)
* Revert "feat(lsp): use native lsp handlers for some pickers (#3335)" This reverts commit 6c468ff. * [docgen] Update doc/telescope.txt skip-checks: true --------- Co-authored-by: Github Actions <actions@github>
1 parent 6c468ff commit f06e7a8

File tree

2 files changed

+11
-109
lines changed

2 files changed

+11
-109
lines changed

doc/telescope.txt

+7
Original file line numberDiff line numberDiff line change
@@ -2602,6 +2602,13 @@ UTILS *telescope.utils*
26022602

26032603
Utilities for writing telescope pickers
26042604

2605+
utils.str_byteindex() *telescope.utils.str_byteindex()*
2606+
2607+
2608+
Return: ~
2609+
integer
2610+
2611+
26052612
utils.path_expand({path}) *telescope.utils.path_expand()*
26062613
Hybrid of `vim.fn.expand()` and custom `vim.fs.normalize()`
26072614

lua/telescope/builtin/__lsp.lua

+4-109
Original file line numberDiff line numberDiff line change
@@ -261,107 +261,19 @@ local function list_or_jump(action, title, funname, params, opts)
261261
end)
262262
end
263263

264-
---@param item table
265-
---@param opts table
266-
local function jump(item, opts)
267-
if opts.curr_filepath ~= item.filename then
268-
local cmd
269-
if opts.jump_type == "tab" then
270-
cmd = "tabedit"
271-
elseif opts.jump_type == "split" then
272-
cmd = "new"
273-
elseif opts.jump_type == "vsplit" then
274-
cmd = "vnew"
275-
elseif opts.jump_type == "tab drop" then
276-
cmd = "tab drop"
277-
end
278-
279-
if cmd then
280-
vim.cmd(string.format("%s %s", cmd, item.filename))
281-
end
282-
end
283-
284-
local b = item.bufnr or vim.fn.bufadd(item.filename)
285-
vim.bo[b].buflisted = true
286-
local w = opts.reuse_win and vim.fn.win_findbuf(b)[1] or opts.winnr
287-
vim.api.nvim_win_set_buf(w, b)
288-
vim.api.nvim_win_set_cursor(w, { item.lnum, item.col - 1 })
289-
vim._with({ win = w }, function()
290-
-- Open folds under the cursor
291-
vim.cmd "normal! zv"
292-
end)
293-
end
294-
295-
local function on_list_pick_or_jump(opts)
296-
opts.reuse_win = vim.F.if_nil(opts.reuse_win, false)
297-
opts.curr_filepath = vim.api.nvim_buf_get_name(opts.bufnr)
298-
299-
---@param res vim.lsp.LocationOpts.OnList
300-
return function(res)
301-
if opts.action_handler then
302-
res.items = opts.action_handler(res.items, opts)
303-
end
304-
305-
if #res.items == 1 and opts.jump_type ~= "never" then
306-
jump(res.items[1], opts)
307-
return
308-
end
309-
310-
pickers
311-
.new(opts, {
312-
finder = finders.new_table {
313-
results = res.items,
314-
entry_maker = opts.entry_maker or make_entry.gen_from_quickfix(opts),
315-
},
316-
previewer = conf.qflist_previewer(opts),
317-
sorter = conf.generic_sorter(opts),
318-
push_cursor_on_edit = true,
319-
push_tagstack_on_edit = true,
320-
})
321-
:find()
322-
end
323-
end
324-
325-
local function references(opts)
326-
opts.prompt_title = vim.F.if_nil(opts.prompt_title, "LSP References")
327-
328-
if not opts.include_current_line then
329-
opts.action_handler = function(items, ctx)
330-
local lnum = vim.api.nvim_win_get_cursor(ctx.winnr)[1]
331-
items = vim.tbl_filter(function(v)
332-
return not (v.filename == ctx.curr_filepath and v.lnum == lnum)
333-
end, items)
334-
return items
335-
end
336-
end
337-
338-
local ctx = { includeDeclaration = vim.F.if_nil(opts.include_declaration, true) }
339-
vim.lsp.buf.references(ctx, { on_list = on_list_pick_or_jump(opts) })
340-
end
341-
342-
local function references_legacy(opts)
264+
lsp.references = function(opts)
343265
opts.include_current_line = vim.F.if_nil(opts.include_current_line, false)
344266
local params = vim.lsp.util.make_position_params(opts.winnr)
345267
params.context = { includeDeclaration = vim.F.if_nil(opts.include_declaration, true) }
346268
return list_or_jump("textDocument/references", "LSP References", "builtin.lsp_references", params, opts)
347269
end
348270

349-
local function definitions(opts)
350-
opts.prompt_title = vim.F.if_nil(opts.prompt_title, "LSP Definitions")
351-
vim.lsp.buf.definition { on_list = on_list_pick_or_jump(opts) }
352-
end
353-
354-
local function definitions_legacy(opts)
271+
lsp.definitions = function(opts)
355272
local params = vim.lsp.util.make_position_params(opts.winnr)
356273
return list_or_jump("textDocument/definition", "LSP Definitions", "builtin.lsp_definitions", params, opts)
357274
end
358275

359-
local function type_definitions(opts)
360-
opts.prompt_title = vim.F.if_nil(opts.prompt_title, "LSP Type Definitions")
361-
vim.lsp.buf.type_definition { on_list = on_list_pick_or_jump(opts) }
362-
end
363-
364-
local function type_definitions_legacy(opts)
276+
lsp.type_definitions = function(opts)
365277
local params = vim.lsp.util.make_position_params(opts.winnr)
366278
return list_or_jump(
367279
"textDocument/typeDefinition",
@@ -372,28 +284,11 @@ local function type_definitions_legacy(opts)
372284
)
373285
end
374286

375-
local function implementations(opts)
376-
opts.prompt_title = vim.F.if_nil(opts.prompt_title, "LSP Implementations")
377-
vim.lsp.buf.implementation { on_list = on_list_pick_or_jump(opts) }
378-
end
379-
380-
local function implementations_legacy(opts)
287+
lsp.implementations = function(opts)
381288
local params = vim.lsp.util.make_position_params(opts.winnr)
382289
return list_or_jump("textDocument/implementation", "LSP Implementations", "builtin.lsp_implementations", params, opts)
383290
end
384291

385-
if vim.fn.has "0.11" then
386-
lsp.references = references
387-
lsp.definitions = definitions
388-
lsp.type_definitions = type_definitions
389-
lsp.implementations = implementations
390-
else
391-
lsp.references = references_legacy
392-
lsp.definitions = definitions_legacy
393-
lsp.type_definitions = type_definitions_legacy
394-
lsp.implementations = implementations_legacy
395-
end
396-
397292
local symbols_sorter = function(symbols)
398293
if vim.tbl_isempty(symbols) then
399294
return symbols

0 commit comments

Comments
 (0)