Documentation

Lean.Data.Lsp.Utf16

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.

Equations
    Instances For
      Equations
        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.

          Equations
            Instances For
              Equations
                Instances For
                  def String.utf16PosToCodepointPosFrom (s : String) (utf16pos : Nat) (off : Pos) :

                  Computes the position of the Unicode codepoint at UTF-16 offset utf16pos in the substring of s starting at UTF-8 offset off.

                  Equations
                    Instances For
                      Equations
                        Instances For

                          Starting at utf8pos, finds the UTF-8 offset of the p-th codepoint.

                          Equations
                            Instances For

                              Computes an UTF-8 offset into text.source from an LSP-style 0-indexed (ln, col) position.

                              Equations
                                Instances For
                                  Equations
                                    Instances For
                                      Equations
                                        Instances For

                                          Gets the LSP range from a String.Range.

                                          Equations
                                            Instances For
                                              Equations
                                                Instances For
                                                  Equations
                                                    Instances For
                                                      Equations
                                                        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.

                                                          Equations
                                                            Instances For