summaryrefslogtreecommitdiff
path: root/lua/telescope/pickers.lua
diff options
context:
space:
mode:
authorTJ DeVries <devries.timothyj@gmail.com>2021-04-15 09:24:10 -0400
committerGitHub <noreply@github.com>2021-04-15 09:24:10 -0400
commit2e7ee55aa44306dc5a6a47946559d10d4fe360db (patch)
tree17aeb8985d4c2bdc3780f7e4a492a3a7f1dc5f1c /lua/telescope/pickers.lua
parent07d518105cdd6778919181ebf3502cd6f4e9f493 (diff)
feat: Add more sorter hooks (#752)
* feat: Add more sorter hooks * fix breaking conni brain
Diffstat (limited to 'lua/telescope/pickers.lua')
-rw-r--r--lua/telescope/pickers.lua22
1 files changed, 10 insertions, 12 deletions
diff --git a/lua/telescope/pickers.lua b/lua/telescope/pickers.lua
index 7e658c3..00e1049 100644
--- a/lua/telescope/pickers.lua
+++ b/lua/telescope/pickers.lua
@@ -401,9 +401,7 @@ function Picker:find()
self.finder = finder
end
- if self.sorter then
- self.sorter:_start(prompt)
- end
+ if self.sorter then self.sorter:_start(prompt) end
-- TODO: Entry manager should have a "bulk" setter. This can prevent a lot of redraws from display
self.manager = EntryManager:new(self.max_results, self.entry_adder, self.stats)
@@ -422,9 +420,6 @@ function Picker:find()
end
end)
- -- on_lines(nil, nil, nil, 0, 1)
- status_updater()
-
-- Register attach
vim.api.nvim_buf_attach(prompt_bufnr, false, {
on_lines = tx.send,
@@ -442,7 +437,9 @@ function Picker:find()
end,
})
+ if self.sorter then self.sorter:_init() end
async_lib.run(main_loop())
+ status_updater()
-- TODO: Use WinLeave as well?
local on_buf_leave = string.format(
@@ -993,13 +990,13 @@ function Picker:get_result_completor(results_bufnr, find_id, prompt, status_upda
local current_line = vim.api.nvim_get_current_line():sub(self.prompt_prefix:len() + 1)
state.set_global_key('current_line', current_line)
+ status_updater()
+
self:clear_extra_rows(results_bufnr)
self:highlight_displayed_rows(results_bufnr, prompt)
-
+ if self.sorter then self.sorter:_finish(prompt) end
self:_on_complete()
-
- status_updater()
end
end
@@ -1037,13 +1034,14 @@ function pickers.on_close_prompt(prompt_bufnr)
local status = state.get_status(prompt_bufnr)
local picker = status.picker
+ if picker.sorter then
+ picker.sorter:_destroy()
+ end
+
if picker.previewer then
picker.previewer:teardown()
end
- -- TODO: This is an attempt to clear all the memory stuff we may have left.
- -- vim.api.nvim_buf_detach(prompt_bufnr)
-
picker.close_windows(status)
end