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:
tzachar
2022-06-24 06:35:47 +03:00
committed by GitHub
parent df6734aa01
commit 8cab788976
3 changed files with 18 additions and 3 deletions

View File

@@ -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*

View File

@@ -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)
end)
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

View File

@@ -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.