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
.
Re-exports§
pub use selection_range::*;
Modules§
- error_
codes - In this module we only define constants for lsp specific error codes. There are other error codes that are defined in the JSON RPC specification.
- lsif
- Types of Language Server Index Format (LSIF). LSIF is a standard format for language servers or other programming tools to dump their knowledge about a workspace.
- notification
- request
- selection_
range
Macros§
Structs§
- Annotated
Text Edit - A special text edit with an additional change annotation.
- Apply
Workspace Edit Params - Apply
Workspace Edit Response - Call
Hierarchy Incoming Call - Represents an incoming call, e.g. a caller of a method or constructor.
- Call
Hierarchy Incoming Calls Params - Call
Hierarchy Item - Call
Hierarchy Options - Call
Hierarchy Outgoing Call - Represents an outgoing call, e.g. calling a getter from a method or a method from a constructor etc.
- Call
Hierarchy Outgoing Calls Params - Call
Hierarchy Prepare Params - Cancel
Params - Change
Annotation - Additional information that describes document changes.
- Change
Annotation Workspace Edit Client Capabilities - Client
Capabilities - Where ClientCapabilities are currently empty:
- Client
Info - Code
Action - Code
Action Capability Resolve Support - Whether the client supports resolving additional code action
properties via a separate
codeAction/resolve
request. - Code
Action Client Capabilities - Code
Action Context - Contains additional diagnostic information about the context in which a code action is run.
- Code
Action Disabled - Code
Action Kind - Code
Action Kind Literal Support - Code
Action Literal Support - Code
Action Options - Code
Action Params - Params for the CodeActionRequest
- Code
Action Trigger Kind - The reason why code actions were requested.
- Code
Description - Code
Lens - 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 - Code Lens options.
- Code
Lens Params - Code
Lens Workspace Client Capabilities - Color
- Color
Information - Color
Presentation - Color
Presentation Params - Color
Provider Options - Command
- Represents a reference to a command. Provides a title which will be used to represent a command in the UI. Commands are identified by a string identifier. The recommended way to handle commands is to implement their execution on the server side if the client and server provides the corresponding capabilities. Alternatively the tool extension code could handle the command. The protocol currently doesn’t specify a set of well-known commands.
- Completion
Client Capabilities - Completion
Context - Completion
Item - Completion
Item Capability - Completion
Item Capability Resolve Support - Completion
Item Kind - The kind of a completion entry.
- Completion
Item Kind Capability - Completion
Item Label Details - Additional details for a completion item label.
- Completion
Item Tag - Completion
List - Represents a collection of completion items to be presented in the editor.
- Completion
List Capability - Completion
Options - Completion options.
- Completion
Options Completion Item - Completion
Params - Completion
Registration Options - Completion
Trigger Kind - How a completion was triggered.
- Configuration
Item - Configuration
Params - Create
File - Create file operation
- Create
File Options - Options to create a file.
- Create
Files Params - The parameters sent in notifications/requests for user-initiated creation of files.
- Declaration
Options - Declaration
Registration Options - Definition
Options - Delete
File - Delete file operation
- Delete
File Options - Delete file options
- Delete
Files Params - The parameters sent in notifications/requests for user-initiated deletes of files.
- Diagnostic
- Represents a diagnostic, such as a compiler error or warning. Diagnostic objects are only valid in the scope of a resource.
- Diagnostic
Client Capabilities - Client capabilities specific to diagnostic pull requests.
- Diagnostic
Options - Diagnostic options.
- Diagnostic
Registration Options - Diagnostic registration options.
- Diagnostic
Related Information - 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.
- Diagnostic
Server Cancellation Data - Cancellation data returned from a diagnostic request.
- Diagnostic
Severity - The protocol currently supports the following diagnostic severities:
- Diagnostic
Tag - The diagnostic tags.
- Diagnostic
Workspace Client Capabilities - Workspace client capabilities specific to diagnostic pull requests.
- DidChange
Configuration Params - DidChange
Text Document Params - DidChange
Watched Files Client Capabilities - DidChange
Watched Files Params - DidChange
Watched Files Registration Options - Describe options to be used when registered for text document change events.
- DidChange
Workspace Folders Params - DidClose
Text Document Params - DidOpen
Text Document Params - DidSave
Text Document Params - Document
Color Params - Document
Diagnostic Params - Parameters of the document diagnostic request.
- Document
Diagnostic Report Partial Result - A partial result for a document diagnostic report.
- Document
Filter - 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:
- Document
Formatting Options - Document
Formatting Params - Document
Highlight - 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.
- Document
Highlight Kind - A document highlight kind.
- Document
Highlight Options - Document
Highlight Params - Document
Link - 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.
- Document
Link Client Capabilities - Document
Link Options - Document
Link Params - Document
OnType Formatting Options - Format document on type options
- Document
OnType Formatting Params - Document
OnType Formatting Registration Options - Extends TextDocumentRegistrationOptions
- Document
Range Formatting Options - Document
Range Formatting Params - Document
Symbol - 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.
- Document
Symbol Client Capabilities - Document
Symbol Options - Document
Symbol Params - Dynamic
Registration Client Capabilities - Execute
Command Options - Execute command options.
- Execute
Command Params - Execute
Command Registration Options - Execute command registration options.
- File
Change Type - The file event type.
- File
Create - Represents information on a file/folder create.
- File
Delete - Represents information on a file/folder delete.
- File
Event - An event describing a file change.
- File
Operation Filter - A filter to describe in which file operation requests or notifications the server is interested in.
- File
Operation Pattern - A pattern to describe in which file operation requests or notifications the server is interested in.
- File
Operation Pattern Options - Matching options for the file operation pattern.
- File
Operation Registration Options - The options to register for file operations.
- File
Rename - Represents information on a file/folder rename.
- File
System Watcher - Folding
Provider Options - Folding
Range - Represents a folding range.
- Folding
Range Capability - Folding
Range Client Capabilities - Folding
Range Kind Capability - Folding
Range Params - Formatting
Options - Value-object describing what options formatting should use.
- Full
Document Diagnostic Report - A diagnostic report with a full set of problems.
- General
Client Capabilities - Generic
Options - Generic
Params - Generic
Registration Options - Goto
Capability - Goto
Definition Params - Hover
- The result of a hover request.
- Hover
Client Capabilities - Hover
Options - Hover options.
- Hover
Params - Hover
Registration Options - Initialize
Error - Initialize
Params - Initialize
Result - Initialized
Params - Inlay
Hint - Inlay hint information.
- Inlay
Hint Client Capabilities - Inlay hint client capabilities.
- Inlay
Hint Kind - Inlay hint kinds.
- Inlay
Hint Label Part - An inlay hint label part allows for interactive and composite labels of inlay hints.
- Inlay
Hint Options - Inlay hint options used during static registration.
- Inlay
Hint Params - A parameter literal used in inlay hint requests.
- Inlay
Hint Registration Options - Inlay hint options used during static or dynamic registration.
- Inlay
Hint Resolve Client Capabilities - Inlay hint client capabilities.
- Inlay
Hint Workspace Client Capabilities - Client workspace capabilities specific to inlay hints.
- Inline
Value Context - @since 3.17.0
- Inline
Value Evaluatable Expression - Provide an inline value through an expression evaluation.
- Inline
Value Options - Inline value options used during static registration.
- Inline
Value Params - A parameter literal used in inline value requests.
- Inline
Value Registration Options - Inline value options used during static or dynamic registration.
- Inline
Value Text - Provide inline value as text.
- Inline
Value Variable Lookup - Provide inline value through a variable lookup.
- Inline
Value Workspace Client Capabilities - Client workspace capabilities specific to inline values.
- Insert
Replace Edit - A special text edit to provide an insert and a replace operation.
- Insert
Text Format - Defines how to interpret the insert text in a completion item
- Insert
Text Mode - How whitespace and indentation is handled during completion item insertion.
- Insert
Text Mode Support - Language
String - Linked
Editing Range Options - Linked
Editing Range Params - Linked
Editing Range Registration Options - Linked
Editing Ranges - Location
- Represents a location inside a resource, such as a line inside a text file.
- Location
Link - Represents a link between a source and a target location.
- LogMessage
Params - LogTrace
Params - Markdown
Client Capabilities - Markup
Content - A
MarkupContent
literal represents a string value which content can be represented in different formats. Currentlyplaintext
andmarkdown
are supported formats. AMarkupContent
is usually used in documentation properties of result literals likeCompletionItem
orSignatureInformation
. If the format ismarkdown
the content should follow the GitHub Flavored Markdown Specification. - Message
Action Item - Message
Action Item Capabilities - Message
Type - Moniker
- Moniker definition to match LSIF 0.5 moniker definition.
- Moniker
Options - Moniker
Params - Moniker
Registration Options - Optional
Versioned Text Document Identifier - An identifier which optionally denotes a specific version of a text document. This information usually flows from the server to the client
- Parameter
Information - Represents a parameter of a callable-signature. A parameter can have a label and a doc-comment.
- Parameter
Information Settings - Partial
Result Params - A parameter literal used to pass a partial result token.
- Position
- 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.
- Position
Encoding Kind - A type indicating how positions are encoded, specifically what column offsets mean.
- Prepare
Support Default Behavior - Previous
Result Id - A previous result ID in a workspace pull request.
- Progress
Params - The progress notification is sent from the server to the client to ask the client to indicate progress.
- Publish
Diagnostics Client Capabilities - Publish
Diagnostics Params - Range
- 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.
- Reference
Context - Reference
Params - References
Options - Registration
- General parameters to to register for a capability.
- Registration
Params - Regular
Expressions Client Capabilities - Related
Full Document Diagnostic Report - A full diagnostic report with a set of related documents.
- Related
Unchanged Document Diagnostic Report - An unchanged diagnostic report with a set of related documents.
- Relative
Pattern - A relative pattern is a helper to construct glob patterns that are matched
relatively to a base URI. The common value for a
baseUri
is a workspace folder root, but it can be another absolute URI as well. - Rename
Client Capabilities - Rename
File - Rename file operation
- Rename
File Options - Rename file options
- Rename
Files Params - The parameters sent in notifications/requests for user-initiated renames of files.
- Rename
Options - Rename
Params - Save
Options - Save options.
- Semantic
Token - The actual tokens.
- Semantic
Token Modifier - A set of predefined token modifiers. This set is not fixed and clients can specify additional token types via the corresponding client capabilities.
- Semantic
Token Type - A set of predefined token types. This set is not fixed and clients can specify additional token types via the corresponding client capabilities.
- Semantic
Tokens - @since 3.16.0
- Semantic
Tokens Client Capabilities - Capabilities specific to the
textDocument/semanticTokens/*
requests. - Semantic
Tokens Client Capabilities Requests - Semantic
Tokens Delta - @since 3.16.0
- Semantic
Tokens Delta Params - Semantic
Tokens Edit - @since 3.16.0
- Semantic
Tokens Legend - @since 3.16.0
- Semantic
Tokens Options - @since 3.16.0
- Semantic
Tokens Params - Semantic
Tokens Partial Result - @since 3.16.0
- Semantic
Tokens Range Params - Semantic
Tokens Registration Options - Semantic
Tokens Workspace Client Capabilities - Server
Capabilities - Server
Info - SetTrace
Params - Show
Document Client Capabilities - Client capabilities for the show document request.
- Show
Document Params - Params to show a document.
- Show
Document Result - The result of an show document request.
- Show
Message Params - Show
Message Request Client Capabilities - Show message request client capabilities
- Show
Message Request Params - Signature
Help - Signature help represents the signature of something callable. There can be multiple signature but only one active and only one active parameter.
- Signature
Help Client Capabilities - Signature
Help Context - Signature
Help Options - Signature help options.
- Signature
Help Params - Signature
Help Registration Options - Signature help options.
- Signature
Help Trigger Kind - Signature help options.
- Signature
Information - Represents the signature of something callable. A signature can have a label, like a function-name, a doc-comment, and a set of parameters.
- Signature
Information Settings - Stale
Request Support Client Capabilities - Client capability that signals how the client handles stale requests (e.g. a request for which the client will not process the response anymore since the information is outdated).
- Static
Registration Options - Static
Text Document Color Provider Options - Static
Text Document Registration Options - Symbol
Information - Represents information about programming constructs like variables, classes, interfaces etc.
- Symbol
Kind - A symbol kind.
- Symbol
Kind Capability - Specific capabilities for the
SymbolKind
in theworkspace/symbol
request. - Symbol
Tag - Symbol tags are extra annotations that tweak the rendering of a symbol.
- TagSupport
- Text
Document Change Registration Options - Describe options to be used when registering for text document change events.
- Text
Document Client Capabilities - Text document specific client capabilities.
- Text
Document Content Change Event - 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.
- Text
Document Edit - Describes textual changes on a single text document. The text document is referred to as a
OptionalVersionedTextDocumentIdentifier
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
Document Identifier - Text documents are identified using a URI. On the protocol level, URIs are passed as strings.
- Text
Document Item - An item to transfer a text document from the client to the server.
- Text
Document Position Params - A parameter literal used in requests to pass a text document and a position inside that document.
- Text
Document Registration Options - Since most of the registration options require to specify a document selector there is a base interface that can be used.
- Text
Document Save Reason - Represents reasons why a text document is saved.
- Text
Document Save Registration Options - Text
Document Sync Client Capabilities - Text
Document Sync Kind - Defines how the host (editor) should sync document changes to the language server.
- Text
Document Sync Options - Text
Edit - A textual edit applicable to a text document.
- Token
Format - Type
Hierarchy Item - Type
Hierarchy Options - Type
Hierarchy Prepare Params - Type
Hierarchy Registration Options - Type
Hierarchy Subtypes Params - Type
Hierarchy Supertypes Params - Unchanged
Document Diagnostic Report - A diagnostic report indicating that the last returned report is still accurate.
- Unregistration
- General parameters to unregister a capability.
- Unregistration
Params - Url
- A parsed URL record.
- Versioned
Text Document Identifier - An identifier to denote a specific version of a text document. This information usually flows from the client to the server.
- Watch
Kind - Will
Save Text Document Params - The parameters send in a will save text document notification.
- Window
Client Capabilities - Window specific client capabilities.
- Work
Done Progress Begin - Work
Done Progress Cancel Params - The
window/workDoneProgress/cancel
notification is sent from the client to the server to cancel a progress initiated on the server side using thewindow/workDoneProgress/create
. - Work
Done Progress Create Params - The
window/workDoneProgress/create
request is sent from the server to the client to ask the client to create a work done progress. - Work
Done Progress End - Work
Done Progress Options - Work
Done Progress Params - An optional token that a server can use to report work done progress
- Work
Done Progress Report - Workspace
Client Capabilities - Workspace specific client capabilities.
- Workspace
Diagnostic Params - Parameters of the workspace diagnostic request.
- Workspace
Diagnostic Report - A workspace diagnostic report.
- Workspace
Diagnostic Report Partial Result - A partial result for a workspace diagnostic report.
- Workspace
Edit - A workspace edit represents changes to many resources managed in the workspace.
The edit should either provide
changes
ordocumentChanges
. If the client can handle versioned document edits and ifdocumentChanges
are present, the latter are preferred overchanges
. - Workspace
Edit Client Capabilities - Workspace
File Operations Client Capabilities - Workspace
File Operations Server Capabilities - Workspace
Folder - Workspace
Folders Change Event - The workspace folder change event.
- Workspace
Folders Server Capabilities - Workspace
Full Document Diagnostic Report - A full document diagnostic report for a workspace diagnostic result.
- Workspace
Location - Workspace
Server Capabilities - Workspace
Symbol - A special workspace symbol that supports locations without a range
- Workspace
Symbol Client Capabilities - Workspace
Symbol Options - Workspace
Symbol Params - The parameters of a Workspace Symbol Request.
- Workspace
Symbol Resolve Support Capability - Workspace
Unchanged Document Diagnostic Report - An unchanged document diagnostic report for a workspace diagnostic result.
Enums§
- Call
Hierarchy Server Capability - Code
Action OrCommand - Code
Action Provider Capability - Color
Provider Capability - Completion
Response - Completion
Text Edit - Declaration
Capability - Diagnostic
Server Capabilities - Document
Change Operation - Document
Changes - Document
Diagnostic Report - The result of a document diagnostic pull request.
- Document
Diagnostic Report Kind - The document diagnostic report kinds.
- Document
Diagnostic Report Result - Document
Symbol Response - Documentation
- Failure
Handling Kind - File
Operation Pattern Kind - A pattern kind describing if a glob pattern matches a file a folder or both.
- Folding
Range Kind - Enum of known range kinds
- Folding
Range Provider Capability - Formatting
Property - Glob
Pattern - The glob pattern. Either a string pattern or a relative pattern.
- Goto
Definition Response - GotoDefinition response can be single location, or multiple Locations or a link.
- Hover
Contents - Hover contents could be single entry or multiple entries.
- Hover
Provider Capability - Implementation
Provider Capability - Inlay
Hint Label - Inlay
Hint Label Part Tooltip - Inlay
Hint Server Capabilities - Inlay
Hint Tooltip - Inline
Value - Inline value information can be provided by different means:
- Inline
Value Server Capabilities - Linked
Editing Range Server Capabilities - Marked
String - MarkedString can be used to render human readable text. It is either a markdown string or a code-block that provides a language and a code snippet. The language identifier is semantically equal to the optional language identifier in fenced code blocks in GitHub issues.
- Markup
Kind - Describes the content type that a client supports in various
result literals like
Hover
,ParameterInfo
orCompletionItem
. - Message
Action Item Property - Moniker
Kind - The moniker kind.
- Moniker
Server Capabilities - Number
OrString - OneOf
- Parameter
Label - Prepare
Rename Response - Progress
Params Value - Resource
Op - Resource
Operation Kind - Semantic
Tokens Full Delta Result - Semantic
Tokens Full Options - Semantic
Tokens Range Result - Semantic
Tokens Result - Semantic
Tokens Server Capabilities - Text
Document Sync Capability - Text
Document Sync Save Options - Trace
Value - A TraceValue represents the level of verbosity with which the server systematically
reports its execution trace using
LogTrace
notifications. - Type
Definition Provider Capability - Uniqueness
Level - Moniker uniqueness level to define scope of the moniker.
- Work
Done Progress - Workspace
Diagnostic Report Result - Workspace
Document Diagnostic Report - A workspace diagnostic document report.
- Workspace
Symbol Response
Type Aliases§
- Call
Hierarchy Client Capabilities - Change
Annotation Identifier - An identifier referring to a change annotation managed by a workspace edit.
- Code
Action Response - response for CodeActionRequest
- Code
Lens Client Capabilities - DidChange
Configuration Client Capabilities - Document
Color Client Capabilities - Document
Formatting Client Capabilities - Document
Highlight Client Capabilities - Document
OnType Formatting Client Capabilities - Document
Range Formatting Client Capabilities - Document
Selector - A document selector is the combination of one or many document filters.
- Execute
Command Client Capabilities - Inline
Value Client Capabilities - LSPAny
- The LSP any type
- LSPArray
- LSP arrays.
- LSPObject
- LSP object definition.
- Linked
Editing Range Client Capabilities - Moniker
Client Capabilities - Pattern
- The glob pattern to watch relative to the base path. Glob patterns can have the following syntax:
- Progress
Token - Reference
Client Capabilities - Type
Hierarchy Client Capabilities