Add complete_done event and improved the recently_used sorter.
Fix #708
This commit is contained in:
@@ -34,6 +34,9 @@ core.new = function()
|
||||
self.view.event:on('keymap', function(...)
|
||||
self:on_keymap(...)
|
||||
end)
|
||||
self.view.event:on('complete_done', function(evt)
|
||||
self.event:emit('complete_done', evt)
|
||||
end)
|
||||
return self
|
||||
end
|
||||
|
||||
@@ -425,7 +428,9 @@ core.confirm = function(self, e, option, callback)
|
||||
feedkeys.call('', 'n', function()
|
||||
e:execute(vim.schedule_wrap(function()
|
||||
release()
|
||||
self.event:emit('confirm_done', e)
|
||||
self.event:emit('confirm_done', {
|
||||
entry = e
|
||||
})
|
||||
if callback then
|
||||
callback()
|
||||
end
|
||||
|
||||
@@ -308,8 +308,16 @@ autocmd.subscribe('CursorMoved', function()
|
||||
end
|
||||
end)
|
||||
|
||||
cmp.event:on('confirm_done', function(e)
|
||||
cmp.config.compare.recently_used:add_entry(e)
|
||||
cmp.event:on('complete_done', function(evt)
|
||||
if evt.entry then
|
||||
cmp.config.compare.recently_used:add_entry(evt.entry)
|
||||
end
|
||||
end)
|
||||
|
||||
cmp.event:on('confirm_done', function(evt)
|
||||
if evt.entry then
|
||||
cmp.config.compare.recently_used:add_entry(evt.entry)
|
||||
end
|
||||
end)
|
||||
|
||||
return cmp
|
||||
|
||||
@@ -109,8 +109,11 @@ view.open = function(self, ctx, sources)
|
||||
end
|
||||
end
|
||||
|
||||
-- close.
|
||||
-- complete_done.
|
||||
if #entries == 0 then
|
||||
self.event:emit('complete_done', {
|
||||
entry = self:_get_entries_view():get_selected_entry()
|
||||
})
|
||||
self:close()
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user