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 supports plaintext and markdown 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 the workspace/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. A TextDocumentEdit describes all changes on a version Si and after they are applied move the document to version Si+1. So the creator of a TextDocumentEdit 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 or CompletionItem.
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 Definitions

A document selector is the combination of one or many document filters.