summaryrefslogtreecommitdiff
path: root/lua/telescope/pickers.lua
diff options
context:
space:
mode:
authorSenghan Bright <senghan.bright@deltaprojects.com>2021-01-28 22:39:05 +0100
committerGitHub <noreply@github.com>2021-01-28 16:39:05 -0500
commit9d4670c74898c6050546580c71211746b9bb8aa7 (patch)
tree26c8676ed3fd561890a2e59bfc69ccd43a01d5c1 /lua/telescope/pickers.lua
parent5995a8be8faaa2c6e8693ca52f2320cb4a80e3fa (diff)
feat: allow a callback to be called on on_lines update (for filtering tags from query text) (#455)
* allow a callback to be called on on_lines update * . * remove unused _filter_marker var * nit: Move to table and implement 'close' Co-authored-by: TJ DeVries <devries.timothyj@gmail.com>
Diffstat (limited to 'lua/telescope/pickers.lua')
-rw-r--r--lua/telescope/pickers.lua13
1 files changed, 12 insertions, 1 deletions
diff --git a/lua/telescope/pickers.lua b/lua/telescope/pickers.lua
index 4165ec5..403371f 100644
--- a/lua/telescope/pickers.lua
+++ b/lua/telescope/pickers.lua
@@ -76,6 +76,7 @@ function Picker:new(opts)
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,
finder = opts.finder,
sorter = opts.sorter,
@@ -445,7 +446,17 @@ function Picker:find()
return
end
- local prompt = self:_get_prompt()
+ local original_prompt = self:_get_prompt()
+ local on_input_result = self._on_input_filter_cb(original_prompt) or {}
+
+ local prompt = on_input_result.prompt or original_prompt
+ local finder = on_input_result.updated_finder
+
+ if finder then
+ self.finder:close()
+ self.finder = finder
+ end
+
if self.sorter then
self.sorter:_start(prompt)
end