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.

A Location is a DocumentUri and a Range.

Instances For

    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

    • title : String

      Title of the command, like save.

    • command : String

      The identifier of the actual command handler.

    • arguments? : Option (Array Json)

      Arguments that the command handler should be invoked with.

    Instances For

      A snippet is a string that gets inserted into a document, and can afterwards be edited by the user in a structured way.

      Snippets contain instructions that specify how this structured editing should proceed. They are expressed in a domain-specific language based on one from TextMate, including the following constructs:

      • Designated positions for subsequent user input, called "tab stops" after their most frequently-used keybinding. They are denoted with $1, $2, and so forth. $0 denotes where the cursor should be positioned after all edits are completed, defaulting to the end of the string. Snippet tab stops are unrelated to tab stops used for indentation.
      • Tab stops with default values, called placeholders, written ${1:default}. The default may itself contain a tab stop or a further placeholder and multiple options to select from may be provided by surrounding them with |s and separating them with ,, as in ${1|if $2 then $3 else $4,if let $2 := $3 then $4 else $5|}.
      • One of a set of predefined variables that are replaced with their values. This includes the current line number ($TM_LINE_NUMBER) or the text that was selected when the snippet was invoked ($TM_SELECTED_TEXT).
      • Formatting instructions to modify variables using regular expressions or a set of predefined filters.

      The full syntax and semantics of snippets, including the available variables and the rules for escaping control characters, are described in the LSP specification.

      Instances For

        A textual edit applicable to a text document.

        reference

        • range : Range

          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.

        • leanExtSnippet? : Option SnippetString

          If this field is present and the editor supports it, newText is ignored and an interactive snippet edit is performed instead.

          The use of snippets in TextEdits is a Lean-specific extension to the LSP standard, so newText should still be set to a correct value as fallback in case the editor does not support this feature. Even editors that support snippets may not always use them; for instance, if the file is not already open, VS Code will perform a normal text edit in the background instead.

        • 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.

        Instances For

          An array of TextEdits to be performed in sequence.

          Equations
          Instances For

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

            reference

            Instances For

              Additional information that describes document changes.

              reference

              • 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.

              Instances For

                Options for CreateFile and RenameFile.

                Instances For

                  Options for DeleteFile.

                  • recursive : Bool
                  • ignoreIfNotExists : Bool
                  Instances For
                    Instances For
                      Instances For
                        Instances For

                          A change to a file resource.

                          reference

                          Instances For
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            • One or more equations did not get rendered due to their size.

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

                            reference

                            • Changes to existing resources.

                            • documentChanges? : Option (Array 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.

                            • 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.

                            Instances For
                              Equations
                              • One or more equations did not get rendered due to their size.

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

                              reference

                              • 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.

                              Instances For

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

                                reference

                                • 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.

                                Instances For
                                  Instances For
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      Instances For
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          @[reducible, inline]

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

                                          reference

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

                                                        reference

                                                        • workDoneProgress : Bool
                                                        Instances For
                                                          Instances For