add events: view_opened and view_closed (#965)
* add events: view_opened and view_closed * fix typos * rename view -> menu
This commit is contained in:
@@ -222,6 +222,10 @@ NOTE: `<Cmd>lua require('cmp').complete()<CR>` can be used to call these functio
|
||||
|
||||
- `complete_done`: emit after current completion is done.
|
||||
- `confirm_done`: emit after confirmation is done.
|
||||
- `menu_opened`: emit after opening a new completion menu. Called with a table holding a key
|
||||
named `window`, pointing to the completion menu implementation.
|
||||
- `menu_closed`: emit after completion menu is closed. Called with a table holding a key
|
||||
named `window`, pointing to the completion menu implementation.
|
||||
|
||||
==============================================================================
|
||||
Mapping *cmp-mapping*
|
||||
|
||||
@@ -34,9 +34,11 @@ 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)
|
||||
for _, event_name in ipairs({ 'complete_done', 'menu_opened', 'menu_closed' }) do
|
||||
self.view.event:on(event_name, function(evt)
|
||||
self.event:emit(event_name, evt)
|
||||
end)
|
||||
end
|
||||
return self
|
||||
end
|
||||
|
||||
|
||||
@@ -108,6 +108,9 @@ view.open = function(self, ctx, sources)
|
||||
-- open
|
||||
if #entries > 0 then
|
||||
self:_get_entries_view():open(offset, entries)
|
||||
self.event:emit('menu_opened', {
|
||||
window = self:_get_entries_view(),
|
||||
})
|
||||
break
|
||||
end
|
||||
end
|
||||
@@ -128,6 +131,9 @@ view.close = function(self)
|
||||
self:_get_entries_view():close()
|
||||
self.docs_view:close()
|
||||
self.ghost_text_view:hide()
|
||||
self.event:emit('menu_closed', {
|
||||
window = self:_get_entries_view(),
|
||||
})
|
||||
end
|
||||
|
||||
---Abort menu
|
||||
@@ -135,6 +141,9 @@ view.abort = function(self)
|
||||
self:_get_entries_view():abort()
|
||||
self.docs_view:close()
|
||||
self.ghost_text_view:hide()
|
||||
self.event:emit('menu_closed', {
|
||||
window = self:_get_entries_view(),
|
||||
})
|
||||
end
|
||||
|
||||
---Return the view is visible or not.
|
||||
|
||||
Reference in New Issue
Block a user