From 339fe9177b8eff85b21a0e118db400ab89775c28 Mon Sep 17 00:00:00 2001 From: hrsh7th Date: Sat, 9 Oct 2021 17:33:24 +0900 Subject: [PATCH] Don't completion by CursorMoved event --- lua/cmp/core.lua | 12 ++++++++++++ lua/cmp/init.lua | 6 ++++++ plugin/cmp.lua | 3 ++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lua/cmp/core.lua b/lua/cmp/core.lua index 5a71438..b3004b7 100644 --- a/lua/cmp/core.lua +++ b/lua/cmp/core.lua @@ -180,6 +180,18 @@ core.on_change = function(self, event) end) end +---Cursor moved. +core.on_moved = function(self) + local ignore = false + ignore = ignore or self.suspending + ignore = ignore or (vim.fn.pumvisible() == 1 and (vim.v.completed_item).word) + ignore = ignore or not self.view:visible() + if ignore then + return + end + self:filter() +end + ---Check autoindent ---@param event cmp.TriggerEvent ---@param callback function diff --git a/lua/cmp/init.lua b/lua/cmp/init.lua index 6a72537..d8cb0e0 100644 --- a/lua/cmp/init.lua +++ b/lua/cmp/init.lua @@ -231,6 +231,12 @@ autocmd.subscribe('TextChanged', function() end end) +autocmd.subscribe('CursorMoved', function() + if config.enabled() then + cmp.core:on_moved() + end +end) + autocmd.subscribe('InsertLeave', function() cmp.core:reset() cmp.core.view:close() diff --git a/plugin/cmp.lua b/plugin/cmp.lua index 11aed20..3e8c5bf 100644 --- a/plugin/cmp.lua +++ b/plugin/cmp.lua @@ -12,7 +12,8 @@ vim.cmd [[ autocmd! autocmd InsertEnter * lua require'cmp.utils.autocmd'.emit('InsertEnter') autocmd InsertLeave * lua require'cmp.utils.autocmd'.emit('InsertLeave') - autocmd CursorMovedI,TextChangedI,TextChangedP * lua require'cmp.utils.autocmd'.emit('TextChanged') + autocmd TextChangedI,TextChangedP * lua require'cmp.utils.autocmd'.emit('TextChanged') + autocmd CursorMovedI * lua require'cmp.utils.autocmd'.emit('CursorMoved') autocmd CompleteChanged * lua require'cmp.utils.autocmd'.emit('CompleteChanged') autocmd CompleteDone * lua require'cmp.utils.autocmd'.emit('CompleteDone') autocmd ColorScheme * call v:lua.cmp.plugin.colorscheme()