summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorTJ DeVries <devries.timothyj@gmail.com>2020-09-22 09:59:06 -0400
committerTJ DeVries <devries.timothyj@gmail.com>2020-09-22 09:59:06 -0400
commitbe9a0e5236783b67af1293a4852f4f68ae77f134 (patch)
tree7b70adb110fdf9174f3dfced4768c69441dfe6dd /lua
parentd7ee7266abae53e643961a3df8356081900fd452 (diff)
fix: Close existing pickers when starting new one. Fix #102
Diffstat (limited to 'lua')
-rw-r--r--lua/telescope/pickers.lua8
-rw-r--r--lua/telescope/state.lua4
2 files changed, 12 insertions, 0 deletions
diff --git a/lua/telescope/pickers.lua b/lua/telescope/pickers.lua
index 50bbefe..bbafd07 100644
--- a/lua/telescope/pickers.lua
+++ b/lua/telescope/pickers.lua
@@ -250,6 +250,7 @@ function Picker:can_select_row(row)
end
function Picker:find()
+ self:close_existing_pickers()
self:reset_selection()
local prompt_string = assert(self.prompt, "Prompt is required.")
@@ -649,6 +650,13 @@ function Picker:set_selection(row)
end
end
+function Picker:close_existing_pickers()
+ for _, prompt_bufnr in ipairs(state.get_existing_prompts()) do
+ actions.close(prompt_bufnr)
+ end
+end
+
+
pickers.new = function(opts, defaults)
opts = extend(opts, defaults)
return Picker:new(opts)
diff --git a/lua/telescope/state.lua b/lua/telescope/state.lua
index 8399c05..a014a0d 100644
--- a/lua/telescope/state.lua
+++ b/lua/telescope/state.lua
@@ -15,4 +15,8 @@ function state.clear_status(prompt_bufnr)
state.set_status(prompt_bufnr, nil)
end
+function state.get_existing_prompts()
+ return vim.tbl_keys(TelescopeGlobalState)
+end
+
return state