convert encoding of range instead of start / end (#1364)

This commit is contained in:
Marcus Caisey
2022-12-23 07:43:55 +00:00
committed by GitHub
parent 8868cf9a09
commit d09b0c396a

View File

@@ -316,10 +316,7 @@ entry.get_insert_range = function(self)
else else
insert_range = self:get_completion_item().textEdit.range --[[@as lsp.Range]] insert_range = self:get_completion_item().textEdit.range --[[@as lsp.Range]]
end end
insert_range = { insert_range = self:convert_range_encoding(insert_range)
start = self:convert_position_encoding(insert_range.start),
['end'] = self:convert_position_encoding(insert_range['end']),
}
else else
insert_range = { insert_range = {
start = { start = {
@@ -343,10 +340,7 @@ entry.get_replace_range = function(self)
else else
replace_range = self:get_completion_item().textEdit.range --[[@as lsp.Range]] replace_range = self:get_completion_item().textEdit.range --[[@as lsp.Range]]
end end
replace_range = { replace_range = self:convert_range_encoding(replace_range)
start = self:convert_position_encoding(replace_range.start),
['end'] = self:convert_position_encoding(replace_range['end']),
}
end end
if not replace_range or ((self.context.cursor.col - 1) == replace_range['end'].character) then if not replace_range or ((self.context.cursor.col - 1) == replace_range['end'].character) then
@@ -551,10 +545,13 @@ entry.fill_defaults = function(_, completion_item, defaults)
end end
---Convert the oneline range encoding. ---Convert the oneline range encoding.
entry.convert_position_encoding = function(self, position) entry.convert_range_encoding = function(self, range)
local from_encoding = self.source:get_position_encoding_kind() local from_encoding = self.source:get_position_encoding_kind()
return self.context.cache:ensure('entry.convert_position_encoding.' .. position.character .. '.' .. from_encoding, function() return self.context.cache:ensure('entry.convert_range_encoding.' .. range.start.character .. '.' .. range['end'].character .. '.' .. from_encoding, function()
return types.lsp.Position.to_utf8(self.context.cursor_line, position, from_encoding) return {
start = types.lsp.Position.to_utf8(self.context.cursor_line, range.start, from_encoding),
['end'] = types.lsp.Position.to_utf8(self.context.cursor_line, range['end'], from_encoding),
}
end) end)
end end