improve backward compatibility

This commit is contained in:
hrsh7th
2025-04-01 16:47:02 +09:00
parent c4c784a621
commit 3fce8d9700
2 changed files with 7 additions and 4 deletions

View File

@@ -197,7 +197,10 @@ end
---@return integer ---@return integer
misc.to_utfindex = function(text, vimindex) misc.to_utfindex = function(text, vimindex)
vimindex = vimindex or #text + 1 vimindex = vimindex or #text + 1
return vim.str_utfindex(text, 'utf-16', math.max(0, math.min(vimindex - 1, #text))) if vim.fn.has('nvim-0.11') then
return vim.str_utfindex(text, 'utf-16', math.max(0, math.min(vimindex - 1, #text)))
end
return vim.str_utfindex(text, math.max(0, math.min(vimindex - 1, #text)))
end end
---Safe version of vim.str_byteindex ---Safe version of vim.str_byteindex

View File

@@ -90,15 +90,15 @@ ghost_text_view.text_gen = function(self, line, cursor_col)
if self.entry:get_completion_item().insertTextFormat == types.lsp.InsertTextFormat.Snippet then if self.entry:get_completion_item().insertTextFormat == types.lsp.InsertTextFormat.Snippet then
word = tostring(snippet.parse(word)) word = tostring(snippet.parse(word))
end end
local word_clen = vim.str_utfindex(word) local word_clen = vim.fn.strchars(word, true)
local cword = string.sub(line, self.entry.offset, cursor_col) local cword = string.sub(line, self.entry.offset, cursor_col)
local cword_clen = vim.str_utfindex(cword) local cword_clen = vim.fn.strchars(cword, true)
-- Number of characters from entry text (word) to be displayed as ghost thext -- Number of characters from entry text (word) to be displayed as ghost thext
local nchars = word_clen - cword_clen local nchars = word_clen - cword_clen
-- Missing characters to complete the entry text -- Missing characters to complete the entry text
local text local text
if nchars > 0 then if nchars > 0 then
text = string.sub(word, vim.str_byteindex(word, word_clen - nchars) + 1) text = string.sub(word, misc.to_vimindex(word, word_clen - nchars))
else else
text = '' text = ''
end end