LSP uses UTF-16 for indexing, so we need to provide some primitives to interact with Lean strings using UTF-16 indices.
Returns the number of bytes required to encode this Char in UTF-16.
Instances For
Computes the UTF-16 offset of the n-th Unicode codepoint
in the substring of s starting at UTF-8 offset off.
Yes, this is actually useful.
Instances For
Computes the position of the Unicode codepoint at UTF-16 offset
utf16pos in the substring of s starting at UTF-8 offset off.
Instances For
Starting at utf8pos, finds the UTF-8 offset of the p-th codepoint.
Instances For
Computes an UTF-8 offset into text.source
from an LSP-style 0-indexed (ln, col) position.
Instances For
Instances For
Gets the LSP range from a Lean.Syntax.Range.
Instances For
Instances For
Instances For
Instances For
Convert the Lean DeclarationRange to an LSP Range by turning the 1-indexed line numbering into a
0-indexed line numbering and converting the character offset within the line to a UTF-16 indexed
offset.