Skip to content

Commit

Permalink
accept non-standard text comp
Browse files Browse the repository at this point in the history
  • Loading branch information
ms-jpq committed Jun 5, 2024
1 parent d149f5b commit a8f8cdd
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 6 deletions.
21 changes: 16 additions & 5 deletions coq/lsp/parse.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
LSPcomp,
MarkupContent,
TextEdit,
TextEditNonStandard,
)


Expand Down Expand Up @@ -72,7 +73,7 @@ def _range_edit(
encoding: Encoding,
cursors: Cursors,
fallback: Optional[str],
edit: Union[TextEdit, InsertReplaceEdit],
edit: Union[TextEdit, TextEditNonStandard, InsertReplaceEdit],
) -> RangeEdit:
_, u8, u16, u32 = cursors
if encoding == UTF16:
Expand All @@ -84,18 +85,24 @@ def _range_edit(
else:
never(encoding)

if isinstance(edit, TextEdit):
if isinstance(edit, TextEditNonStandard):
text = edit.new_text
ra_start = edit.start
ra_end = edit.end
elif isinstance(edit, TextEdit):
text = edit.newText
ra_start = edit.range.start
ra_end = edit.range.end
else:
text = edit.newText
ra_start = edit.replace.start
ra_end = edit.replace.end

begin = ra_start.line, ra_start.character
end = ra_end.line, ra_end.character

re = RangeEdit(
new_text=edit.newText,
new_text=text,
fallback=fallback,
begin=begin,
end=end,
Expand All @@ -110,7 +117,9 @@ def _primary(
) -> Edit:
fallback = Edit(new_text=item.insertText or item.label)
if protocol.InsertTextFormat.get(item.insertTextFormat) == "Snippet":
if isinstance(item.textEdit, (TextEdit, InsertReplaceEdit)):
if isinstance(
item.textEdit, (TextEdit, TextEditNonStandard, InsertReplaceEdit)
):
re = _range_edit(
encoding,
cursors=cursors,
Expand All @@ -130,7 +139,9 @@ def _primary(
else:
return SnippetEdit(grammar=SnippetGrammar.lsp, new_text=fallback.new_text)
else:
if isinstance(item.textEdit, (TextEdit, InsertReplaceEdit)):
if isinstance(
item.textEdit, (TextEdit, TextEditNonStandard, InsertReplaceEdit)
):
return _range_edit(
encoding,
cursors=cursors,
Expand Down
7 changes: 6 additions & 1 deletion coq/lsp/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@ class TextEdit(_TextEdit):
range: _Range


@dataclass(frozen=True)
class TextEditNonStandard(_Range):
new_text: str


@dataclass(frozen=True)
class InsertReplaceEdit(_TextEdit, _InsertReplaceRange): ...

Expand Down Expand Up @@ -92,7 +97,7 @@ class CompletionItem:
insertTextFormat: Optional[_InsertTextFormat] = None
insertTextMode: Optional[_InsertTextMode] = None

textEdit: Union[TextEdit, InsertReplaceEdit, None] = None
textEdit: Union[TextEditNonStandard, TextEdit, InsertReplaceEdit, None] = None
additionalTextEdits: Optional[Sequence[TextEdit]] = None

command: Optional[Command] = None
Expand Down

0 comments on commit a8f8cdd

Please sign in to comment.