Expand description
Language Server Protocol types for Rust.
Based on: https://microsoft.github.io/language-server-protocol/specification
This library uses the URL crate for parsing URIs. Note that there is
some confusion on the meaning of URLs vs URIs:
http://stackoverflow.com/a/28865728/393898. According to that
information, on the classical sense of “URLs”, “URLs” are a subset of
URIs, But on the modern/new meaning of URLs, they are the same as
URIs. The important take-away aspect is that the URL crate should be
able to parse any URI, such as urn:isbn:0451450523
.
Modules§
- A set of predefined code action kinds
Macros§
Structs§
- Where ClientCapabilities are currently empty:
- Contains additional diagnostic information about the context in which a code action is run.
- Params for the CodeActionRequest
- A code lens represents a command that should be shown along with source text, like the number of references, a way to run tests, etc.
- Code Lens options.
- Represents a reference to a command. Provides a title which will be used to represent a command in the UI. Commands are identitifed using a string identifier and the protocol currently doesn’t specify a set of well known commands. So executing a command requires some tool extension code.
- Represents a collection of completion items to be presented in the editor.
- Completion options.
- Create file operation
- Options to create a file.
- Delete file operation
- Delete file options
- Represents a diagnostic, such as a compiler error or warning. Diagnostic objects are only valid in the scope of a resource.
- Represents a related message and source code location for a diagnostic. This should be used to point to code locations that cause or related to a diagnostics, e.g when duplicating a symbol in a scope.
- Describe options to be used when registered for text document change events.
- A document filter denotes a document through properties like language, schema or pattern. Examples are a filter that applies to TypeScript files on disk or a filter the applies to JSON files with name package.json:
- A document highlight is a range inside a text document which deserves special attention. Usually a document highlight is visualized by changing the background color of its range.
- A document link is a range in a text document that links to an internal or external resource, like another text document or a web site.
- Format document on type options
- Extends TextDocumentRegistrationOptions
- Represents programming constructs like variables, classes, interfaces etc. that appear in a document. Document symbols can be hierarchical and they have two ranges: one that encloses its definition and one that points to its most interesting range, e.g. the range of an identifier.
- Execute command options.
- Execute command registration options.
- An event describing a file change.
- Represents a folding range.
- Value-object describing what options formatting should use.
- The result of a hover request.
- Represents a location inside a resource, such as a line inside a text file.
- Represents a link between a source and a target location.
- A
MarkupContent
literal represents a string value which content is interpreted base on its kind flag. Currently the protocol supportsplaintext
andmarkdown
as markup kinds. - Represents a parameter of a callable-signature. A parameter can have a label and a doc-comment.
- Position in a text document expressed as zero-based line and character offset. A position is between two characters like an ‘insert’ cursor in a editor.
- A range in a text document expressed as (zero-based) start and end positions. A range is comparable to a selection in an editor. Therefore the end position is exclusive.
- General parameters to to register for a capability.
- Rename file operation
- Rename file options
- Save options.
- Signature help represents the signature of something callable. There can be multiple signature but only one active and only one active parameter.
- Signature help options.
- Represents the signature of something callable. A signature can have a label, like a function-name, a doc-comment, and a set of parameters.
- Represents information about programming constructs like variables, classes, interfaces etc.
- Specific capabilities for the
SymbolKind
in theworkspace/symbol
request. - Descibe options to be used when registered for text document change events.
- Text document specific client capabilities.
- An event describing a change to a text document. If range and rangeLength are omitted the new text is considered to be the full content of the document.
- Describes textual changes on a single text document. The text document is referred to as a
VersionedTextDocumentIdentifier
to allow clients to check the text document version before an edit is applied. ATextDocumentEdit
describes all changes on a version Si and after they are applied move the document to version Si+1. So the creator of aTextDocumentEdit
doesn’t need to sort the array or do any kind of ordering. However the edits must be non overlapping. - Text documents are identified using a URI. On the protocol level, URIs are passed as strings.
- An item to transfer a text document from the client to the server.
- A parameter literal used in requests to pass a text document and a position inside that document.
- Since most of the registration options require to specify a document selector there is a base interface that can be used.
- A textual edit applicable to a text document.
- General parameters to unregister a capability.
- A parsed URL record.
- An identifier to denote a specific version of a text document.
- The parameters send in a will save text document notification.
- Workspace specific client capabilities.
- A workspace edit represents changes to many resources managed in the workspace.
- The workspace folder change event.
- The parameters of a Workspace Symbol Request.
Enums§
- response for CodeActionRequest
- The kind of a completion entry.
- How a completion was triggered.
- The protocol currently supports the following diagnostic severities:
- A document highlight kind.
- The file event type.
- Enum of known range kinds
- Hover contents could be single entry or multiple entries.
- Defines how to interpret the insert text in a completion item
- The marked string is rendered:
- Describes the content type that a client supports in various result literals like
Hover
,ParameterInfo
orCompletionItem
. - A symbol kind.
- Represents reasons why a text document is saved.
- Defines how the host (editor) should sync document changes to the language server.
Type Aliases§
- A document selector is the combination of one or many document filters.