fix: but I don't like that I fixed by scheduling... Seems race condition

This commit is contained in:
TJ DeVries
2020-08-29 23:08:30 -04:00
parent 9bb62777b2
commit 6a75a0b6d3
2 changed files with 8 additions and 11 deletions

View File

@@ -74,7 +74,7 @@ function Finder:_find(prompt, process_result, process_complete)
log.trace("Finding...")
if self.static and self.done then
log.info("Using previous results")
log.trace("Using previous results")
for _, v in ipairs(self._cached_lines) do
process_result(v)
end

View File

@@ -237,7 +237,7 @@ function Picker:find(opts)
self.manager:add_entry(sort_score, entry)
end
local process_complete = function()
local process_complete = vim.schedule_wrap(function()
self:set_selection(self:get_selection_row())
local worst_line = self.max_results - self.manager.num_results()
@@ -245,13 +245,11 @@ function Picker:find(opts)
return
end
vim.schedule(function()
local empty_lines = utils.repeated_table(worst_line, "")
vim.api.nvim_buf_set_lines(results_bufnr, 0, worst_line, false, empty_lines)
log.trace("Worst Line after process_complete: %s", worst_line, results_bufnr)
end)
end
local ok, msg = pcall(function()
return finder(prompt, process_result, process_complete)
@@ -378,8 +376,8 @@ function Picker:set_selection(row)
end
local entry = self.manager:get_entry(self.max_results - row + 1)
if entry == self._selection then
log.debug("Same entry as before. Skipping set")
if entry == self._selection and row == self._selection_row then
log.trace("Same entry as before. Skipping set")
return
end
@@ -407,7 +405,6 @@ function Picker:set_selection(row)
-1
)
-- if self._match_id then
-- -- vim.fn.matchdelete(self._match_id)
-- vim.fn.clearmatches(results_win)