Documentation

Lean.Data.Lsp.Basic

Defines most of the 'Basic Structures' in the LSP specification (https://microsoft.github.io/language-server-protocol/specifications/specification-current/), as well as some utilities.

Since LSP is Json-based, Ints/Nats are represented by Floats on the wire.

@[inline, reducible]
Instances For

    We adopt the convention that zero-based UTF-16 positions as sent by LSP clients are represented by Lsp.Position while internally we mostly use String.Pos UTF-8 offsets. For diagnostics, one-based Lean.Positions are used internally. character is accepted liberally: actual character := min(line length, character)

    Instances For
      structure Lean.Lsp.Range :
      Instances For
        • title : String

          Title of the command, like save.

        • command : String

          The identifier of the actual command handler.

        • arguments? : Option (Array Lean.Json)

          Arguments that the command handler should be invoked with.

        Represents a reference to a client editor command.

        NOTE: No specific commands are specified by LSP, hence possible commands need to be announced as capabilities.

        reference

        Instances For
          • The range of the text document to be manipulated. To insert text into a document create a range where start = end.

          • newText : String

            The string to be inserted. For delete operations use an empty string.

          • annotationId? : Option String

            Identifier for annotated edit.

            WorkspaceEdit has a changeAnnotations field that maps these identifiers to a ChangeAnnotation. By annotating an edit you can add a description of what the edit will do and also control whether the user is presented with a prompt before applying the edit. reference.

          A textual edit applicable to a text document.

          reference

          Instances For

            An array of TextEdits to be performed in sequence.

            Instances For

              A batch of TextEdits to perform on a versioned text document.

              reference

              Instances For
                • label : String

                  A human-readable string describing the actual change. The string is rendered prominent in the user interface.

                • needsConfirmation : Bool

                  A flag which indicates that user confirmation is needed before applying the change.

                • description? : Option String

                  A human-readable string which is rendered less prominent in the user interface.

                Additional information that describes document changes.

                reference

                Instances For

                  Options for CreateFile and RenameFile.

                  Instances For
                    • recursive : Bool
                    • ignoreIfNotExists : Bool

                    Options for DeleteFile.

                    Instances For
                      • Changes to existing resources.

                      • documentChanges : Array Lean.Lsp.DocumentChange

                        Depending on the client capability workspace.workspaceEdit.resourceOperations document changes are either an array of TextDocumentEdits to express changes to n different text documents where each text document edit addresses a specific version of a text document. Or it can contain above TextDocumentEdits mixed with create, rename and delete file / folder operations.

                        Whether a client supports versioned document edits is expressed via workspace.workspaceEdit.documentChanges client capability.

                        If a client neither supports documentChanges nor workspace.workspaceEdit.resourceOperations then only plain TextEdits using the changes property are supported.

                      • changeAnnotations : Lean.RBMap String Lean.Lsp.ChangeAnnotation compare

                        A map of change annotations that can be referenced in AnnotatedTextEdits or create, rename and delete file / folder operations.

                        Whether clients honor this property depends on the client capability workspace.changeAnnotationSupport.

                      A workspace edit represents changes to many resources managed in the workspace.

                      reference

                      Instances For
                        • label? : Option String

                          An optional label of the workspace edit. This label is presented in the user interface for example on an undo stack to undo the workspace edit.

                        • The edits to apply.

                        The workspace/applyEdit request is sent from the server to the client to modify resource on the client side.

                        reference

                        Instances For
                          • The text document's URI.

                          • languageId : String

                            The text document's language identifier.

                          • version : Nat

                            The version number of this document (it will increase after each change, including undo/redo).

                          • text : String

                            The content of the opened text document.

                          An item to transfer a text document from the client to the server.

                          reference

                          Instances For
                            Instances For
                              Instances For
                                Instances For
                                  @[inline, reducible]

                                  Reference to the progress of some in-flight piece of work.

                                  reference

                                  Instances For

                                    Params for JSON-RPC method $/progress request.

                                    reference

                                    Instances For
                                      • kind : String
                                      • message? : Option String

                                        More detailed associated progress message.

                                      • cancellable : Bool

                                        Controls if a cancel button should show to allow the user to cancel the operation.

                                      • percentage? : Option Nat

                                        Optional progress percentage to display (value 100 is considered 100%). If not provided infinite progress is assumed.

                                      Instances For

                                        Notification to signal the start of progress reporting.

                                        Instances For

                                          Signals the end of progress reporting.

                                          Instances For
                                            Instances For
                                              • workDoneProgress : Bool

                                              reference

                                              Instances For