This commit is contained in:
Konstantin Labun
2023-05-01 07:23:02 -07:00
committed by GitHub
parent 524cc0ba61
commit 5547295bd0
2 changed files with 36 additions and 2 deletions

View File

@@ -62,11 +62,12 @@ entry.get_offset = function(self)
if range then if range then
offset = self.context.cache:ensure('entry:' .. 'get_offset:' .. tostring(range.start.character), function() offset = self.context.cache:ensure('entry:' .. 'get_offset:' .. tostring(range.start.character), function()
for idx = range.start.character + 1, self.source_offset do for idx = range.start.character + 1, self.source_offset do
if not char.is_white(string.byte(self.context.cursor_line, idx)) then local byte = string.byte(self.context.cursor_line, idx)
if byte ~= nil and not char.is_white(byte) then
return idx return idx
end end
end end
return offset return offset + 1
end) end)
end end
else else

View File

@@ -302,4 +302,37 @@ describe('entry', function()
assert.are.equal(e:get_vim_item(e:get_offset()).word, '__init__(self) -> None:') assert.are.equal(e:get_vim_item(e:get_offset()).word, '__init__(self) -> None:')
assert.are.equal(e:get_filter_text(), '__init__') assert.are.equal(e:get_filter_text(), '__init__')
end) end)
it('[#1533] keyword pattern that include whitespace', function()
local state = spec.state(' ', 3, 2)
local state_source = state.source()
state_source.get_keyword_pattern = function(_)
return '.'
end
state.input(' ')
local e = entry.new(state.manual(), state_source, {
filterText = "constructor() {\n ... st = 'test';\n ",
kind = 1,
label = "constructor() {\n ... st = 'test';\n }",
textEdit = {
newText = "constructor() {\n this.test = 'test';\n }",
range = {
["end"] = {
character = 2,
col = 3,
line = 2,
row = 3
},
start = {
character = 0,
line = 2
}
}
}
})
assert.are.equal(e:get_offset(), 3)
assert.are.equal(e:get_vim_item(e:get_offset()).word, 'constructor() {')
end)
end) end)