From be9a0e5236783b67af1293a4852f4f68ae77f134 Mon Sep 17 00:00:00 2001 From: TJ DeVries Date: Tue, 22 Sep 2020 09:59:06 -0400 Subject: [PATCH] fix: Close existing pickers when starting new one. Fix #102 --- lua/telescope/pickers.lua | 8 ++++++++ lua/telescope/state.lua | 4 ++++ 2 files changed, 12 insertions(+) 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