summaryrefslogtreecommitdiff
path: root/lua/telescope/pickers.lua
diff options
context:
space:
mode:
authorfdschmidt93 <39233597+fdschmidt93@users.noreply.github.com>2022-05-22 12:08:07 +0200
committerSimon Hauser <simon.hauser@helsinki-systems.de>2022-06-30 14:01:49 +0200
commita1aec79cb1abc5630f941bafbe83f6e00dcff316 (patch)
tree879d68090ca9eb4b1c7b0fcfc3223cd232b4572d /lua/telescope/pickers.lua
parent5510587ff488e9d6dfae66ba7e19bce090633329 (diff)
feat: none strategy & control attachment (#1867)
Diffstat (limited to 'lua/telescope/pickers.lua')
-rw-r--r--lua/telescope/pickers.lua24
1 files changed, 21 insertions, 3 deletions
diff --git a/lua/telescope/pickers.lua b/lua/telescope/pickers.lua
index 12d6209..d7ee32d 100644
--- a/lua/telescope/pickers.lua
+++ b/lua/telescope/pickers.lua
@@ -83,6 +83,7 @@ function Picker:new(opts)
_original_mode = vim.api.nvim_get_mode().mode,
debounce = get_default(tonumber(opts.debounce), nil),
+ _finder_attached = true,
default_text = opts.default_text,
get_status_text = get_default(opts.get_status_text, config.values.get_status_text),
_on_input_filter_cb = opts.on_input_filter_cb or function() end,
@@ -505,10 +506,12 @@ function Picker:find()
-- Register attach
vim.api.nvim_buf_attach(prompt_bufnr, false, {
on_lines = function(...)
- find_id = self:_next_find_id()
+ if self._finder_attached then
+ find_id = self:_next_find_id()
- status_updater { completed = false }
- self._on_lines(...)
+ status_updater { completed = false }
+ self._on_lines(...)
+ end
end,
on_detach = function()
@@ -1365,6 +1368,16 @@ function Picker:_do_selection(prompt)
else
self:set_selection(self:get_reset_row())
end
+ elseif selection_strategy == "none" then
+ if self._selection_entry then
+ local old_entry, old_row = self._selection_entry, self._selection_row
+ self:reset_selection() -- required to reset selection before updating prefix
+ if old_row >= 0 then
+ self:update_prefix(old_entry, old_row)
+ self.highlighter:hi_multiselect(old_row, self:is_multi_selected(old_entry))
+ end
+ end
+ return
else
error("Unknown selection strategy: " .. selection_strategy)
end
@@ -1495,6 +1508,11 @@ function Picker:_reset_highlights()
vim.api.nvim_buf_clear_namespace(self.results_bufnr, ns_telescope_matching, 0, -1)
end
+-- Toggles whether finder is attached to prompt buffer input
+function Picker:_toggle_finder_attach()
+ self._finder_attached = not self._finder_attached
+end
+
function Picker:_detach()
self.finder:close()