mirror of
https://github.com/zoriya/telescope.nvim.git
synced 2026-08-16 02:45:09 +00:00
feature: Vim help-tags picker (#117)
* feature: Vim help-tags picker * fix: filtered results were wrong because of missing `entry.value` * fix: filtered (Vim only help) items are listed in results as empty entries. * fix: avoid search history pollution by replacing / in cmd returned by taglist() with search() * fix: improve search() formatting * fix: escape tilde in search() command * fix: improve help-preview * fix: improve search() * fix: search() string fixes. * fix: use no magic to do magic Co-authored-by: TJ DeVries <devries.timothyj@gmail.com>
This commit is contained in:
co-authored by
TJ DeVries
parent
a38bb06e7d
commit
c3f9b25606
@@ -402,6 +402,45 @@ builtin.command_history = function(opts)
|
||||
}):find()
|
||||
end
|
||||
|
||||
builtin.help_tags = function(opts)
|
||||
opts = opts or {}
|
||||
|
||||
local sourced_file = require('plenary.debug_utils').sourced_filepath()
|
||||
local base_directory = vim.fn.fnamemodify(sourced_file, ":h:h:h")
|
||||
local file = base_directory .. "/data/help/tags"
|
||||
|
||||
local tags = {}
|
||||
local f = assert(io.open(file, "rb"))
|
||||
for line in f:lines() do
|
||||
table.insert(tags, line)
|
||||
end
|
||||
f:close()
|
||||
|
||||
pickers.new(opts, {
|
||||
prompt = 'Help',
|
||||
finder = finders.new_table {
|
||||
results = tags,
|
||||
entry_maker = make_entry.gen_from_tagfile(opts),
|
||||
},
|
||||
-- TODO: previewer for Vim help
|
||||
previewer = previewers.help.new(opts),
|
||||
sorter = sorters.get_generic_fuzzy_sorter(),
|
||||
attach_mappings = function(prompt_bufnr, map)
|
||||
local view_help = function()
|
||||
local selection = actions.get_selected_entry(prompt_bufnr)
|
||||
|
||||
actions.close(prompt_bufnr)
|
||||
vim.cmd("help " .. selection.value)
|
||||
end
|
||||
|
||||
map('i', '<CR>', view_help)
|
||||
map('n', '<CR>', view_help)
|
||||
|
||||
return true
|
||||
end
|
||||
}):find()
|
||||
end
|
||||
|
||||
-- TODO: What the heck should we do for accepting this.
|
||||
-- vim.fn.setreg("+", "nnoremap $TODO :lua require('telescope.builtin').<whatever>()<CR>")
|
||||
-- TODO: Can we just do the names instead?
|
||||
|
||||
Reference in New Issue
Block a user