diff --git a/lua/cmp/core.lua b/lua/cmp/core.lua index 6ee30c2..f2d286a 100644 --- a/lua/cmp/core.lua +++ b/lua/cmp/core.lua @@ -154,7 +154,6 @@ core.on_change = function(self, trigger_event) self:get_context({ reason = types.cmp.ContextReason.Auto }) return end - self:autoindent(trigger_event, function() local ctx = self:get_context({ reason = types.cmp.ContextReason.Auto }) debug.log(('ctx: `%s`'):format(ctx.cursor_before_line)) @@ -204,25 +203,15 @@ core.autoindent = function(self, trigger_event, callback) return callback() end - -- Scan indentkeys. + -- Reset current completion if indentkeys matched. for _, key in ipairs(vim.split(vim.bo.indentkeys, ',')) do if vim.tbl_contains({ '=' .. prefix, '0=' .. prefix }, key) then - local release = self:suspend() - vim.schedule(function() -- Check autoindent already applied. - if cursor_before_line == api.get_cursor_before_line() then - feedkeys.call(keymap.autoindent(), 'n', function() - release() - callback() - end) - else - callback() - end - end) - return + self:reset() + self:set_context(context.empty()) + break end end - -- indentkeys does not matched. callback() end @@ -429,7 +418,6 @@ core.reset = function(self) for _, s in pairs(self.sources) do s:reset() end - self:get_context() -- To prevent new event end return core diff --git a/lua/cmp/utils/feedkeys_spec.lua b/lua/cmp/utils/feedkeys_spec.lua index d024bb0..a4e71f3 100644 --- a/lua/cmp/utils/feedkeys_spec.lua +++ b/lua/cmp/utils/feedkeys_spec.lua @@ -23,15 +23,6 @@ describe('feedkeys', function() }) end) - it('autoindent', function() - vim.cmd([[setlocal indentkeys+==end]]) - feedkeys.call(keymap.t('iifend') .. keymap.autoindent(), 'nx') - assert.are.same(vim.api.nvim_buf_get_lines(0, 0, -1, false), { - 'if', - 'end', - }) - end) - it('testability', function() feedkeys.call('i', 'n', function() feedkeys.call('', 'n', function() diff --git a/lua/cmp/utils/keymap.lua b/lua/cmp/utils/keymap.lua index d0ca963..7716d04 100644 --- a/lua/cmp/utils/keymap.lua +++ b/lua/cmp/utils/keymap.lua @@ -73,18 +73,6 @@ keymap.backspace = function(count) return table.concat(keys, '') end ----Create autoindent keys ----@return string -keymap.autoindent = function() - local keys = {} - table.insert(keys, keymap.t('setlocal cindent')) - table.insert(keys, keymap.t('setlocal indentkeys+=!^F')) - table.insert(keys, keymap.t('')) - table.insert(keys, keymap.t('setlocal %scindent'):format(vim.bo.cindent and '' or 'no')) - table.insert(keys, keymap.t('setlocal indentkeys=%s'):format(vim.bo.indentkeys:gsub('|', '\\|'))) - return table.concat(keys, '') -end - ---Return two key sequence are equal or not. ---@param a string ---@param b string