convert encoding of range instead of start / end (#1364)
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user