From 7b744e0589bee8e74fa66ebcaf53bad5788e3f3b Mon Sep 17 00:00:00 2001 From: hrsh7th Date: Sat, 27 Nov 2021 18:52:57 +0900 Subject: [PATCH] Fix multibyte chars --- lua/cmp/view/custom_entries_view.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lua/cmp/view/custom_entries_view.lua b/lua/cmp/view/custom_entries_view.lua index c1f5947..4469931 100644 --- a/lua/cmp/view/custom_entries_view.lua +++ b/lua/cmp/view/custom_entries_view.lua @@ -290,7 +290,7 @@ custom_entries_view._insert = setmetatable({ word = word or '' if api.is_cmdline_mode() then local cursor = api.get_cursor() - local length = vim.str_utfindex(string.sub(api.get_current_line(), self.offset, cursor[2])) + local length = vim.fn.strchars(string.sub(api.get_current_line(), self.offset, cursor[2]), true) vim.api.nvim_feedkeys(keymap.backspace(length) .. word, 'int', true) else if this.pending then @@ -301,9 +301,10 @@ custom_entries_view._insert = setmetatable({ local release = require('cmp').suspend() feedkeys.call('', '', function() local cursor = api.get_cursor() + local length = vim.fn.strchars(string.sub(api.get_current_line(), self.offset, cursor[2]), true) local keys = {} table.insert(keys, keymap.t('set indentkeys=')) - table.insert(keys, keymap.backspace(1 + cursor[2] - self.offset)) + table.insert(keys, keymap.backspace(length)) table.insert(keys, word) table.insert(keys, keymap.t('set indentkeys=%s'):format(vim.fn.escape(vim.bo.indentkeys, ' "|\\'))) feedkeys.call(