From dc6b458fd2d90072a8a50d9fd9131bf83fe52b58 Mon Sep 17 00:00:00 2001 From: hrsh7th Date: Thu, 4 Nov 2021 01:58:26 +0900 Subject: [PATCH] tmp fix for serveral bugs --- lua/cmp/init.lua | 12 ++++++++---- lua/cmp/utils/api.lua | 4 +++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lua/cmp/init.lua b/lua/cmp/init.lua index d93fe4d..bd1056c 100644 --- a/lua/cmp/init.lua +++ b/lua/cmp/init.lua @@ -5,6 +5,7 @@ local feedkeys = require('cmp.utils.feedkeys') local autocmd = require('cmp.utils.autocmd') local keymap = require('cmp.utils.keymap') local misc = require('cmp.utils.misc') +local api = require('cmp.utils.api') local cmp = {} @@ -270,10 +271,13 @@ cmp.setup = setmetatable({ }) autocmd.subscribe('InsertEnter', function() - if config.enabled() then - cmp.core:prepare() - cmp.core:on_change('InsertEnter') - end + --Avoid invalid mode detection on `InsertEnter` autocmd. + vim.schedule(function() + if config.enabled() then + cmp.core:prepare() + cmp.core:on_change('InsertEnter') + end + end) end) autocmd.subscribe('TextChanged', function() diff --git a/lua/cmp/utils/api.lua b/lua/cmp/utils/api.lua index 4b4feca..8c3b0ae 100644 --- a/lua/cmp/utils/api.lua +++ b/lua/cmp/utils/api.lua @@ -1,5 +1,7 @@ local api = {} +api.in_insert_enter_autocmd = nil + api.get_mode = function() if api.is_insert_mode() then return 'i' @@ -17,7 +19,7 @@ api.is_insert_mode = function() 'i', 'ic', 'ix', - }, vim.api.nvim_get_mode().mode) or vim.v.insertmode == 'i' + }, vim.api.nvim_get_mode().mode) end api.is_cmdline_mode = function()