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.
|
- `complete_done`: emit after current completion is done.
|
||||||
- `confirm_done`: emit after confirmation 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*
|
Mapping *cmp-mapping*
|
||||||
|
|||||||
@@ -34,9 +34,11 @@ core.new = function()
|
|||||||
self.view.event:on('keymap', function(...)
|
self.view.event:on('keymap', function(...)
|
||||||
self:on_keymap(...)
|
self:on_keymap(...)
|
||||||
end)
|
end)
|
||||||
self.view.event:on('complete_done', function(evt)
|
for _, event_name in ipairs({ 'complete_done', 'menu_opened', 'menu_closed' }) do
|
||||||
self.event:emit('complete_done', evt)
|
self.view.event:on(event_name, function(evt)
|
||||||
end)
|
self.event:emit(event_name, evt)
|
||||||
|
end)
|
||||||
|
end
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -108,6 +108,9 @@ view.open = function(self, ctx, sources)
|
|||||||
-- open
|
-- open
|
||||||
if #entries > 0 then
|
if #entries > 0 then
|
||||||
self:_get_entries_view():open(offset, entries)
|
self:_get_entries_view():open(offset, entries)
|
||||||
|
self.event:emit('menu_opened', {
|
||||||
|
window = self:_get_entries_view(),
|
||||||
|
})
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -128,6 +131,9 @@ view.close = function(self)
|
|||||||
self:_get_entries_view():close()
|
self:_get_entries_view():close()
|
||||||
self.docs_view:close()
|
self.docs_view:close()
|
||||||
self.ghost_text_view:hide()
|
self.ghost_text_view:hide()
|
||||||
|
self.event:emit('menu_closed', {
|
||||||
|
window = self:_get_entries_view(),
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
---Abort menu
|
---Abort menu
|
||||||
@@ -135,6 +141,9 @@ view.abort = function(self)
|
|||||||
self:_get_entries_view():abort()
|
self:_get_entries_view():abort()
|
||||||
self.docs_view:close()
|
self.docs_view:close()
|
||||||
self.ghost_text_view:hide()
|
self.ghost_text_view:hide()
|
||||||
|
self.event:emit('menu_closed', {
|
||||||
|
window = self:_get_entries_view(),
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
---Return the view is visible or not.
|
---Return the view is visible or not.
|
||||||
|
|||||||
Reference in New Issue
Block a user