mirror of
https://github.com/golang/go
synced 2024-11-18 18:04:46 -07:00
internal/lsp: remove defunct copy of the LSP protocol
Change-Id: I1cf3f670a3ca0fd9af18a3889ce5ad3d4128e002 Reviewed-on: https://go-review.googlesource.com/c/tools/+/171028 Run-TryBot: Ian Cottrell <iancottrell@google.com> Reviewed-by: Peter Weinberger <pjw@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
cb42bbeb79
commit
12dd9f86f3
@ -1 +0,0 @@
|
||||
These are the hand-generated protocol files, for reference while debugging.
|
@ -1,388 +0,0 @@
|
||||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// This file contains the corresponding structures to the
|
||||
// "Basic JSON Structures" part of the LSP specification.
|
||||
|
||||
package protocol
|
||||
|
||||
const (
|
||||
// CodeRequestCancelled is the error code that is returned when a request is
|
||||
// cancelled early.
|
||||
CodeRequestCancelled = -32800
|
||||
)
|
||||
|
||||
// DocumentURI represents the URI of a document.
|
||||
// Many of the interfaces contain fields that correspond to the URI of a document.
|
||||
// For clarity, the type of such a field is declared as a DocumentURI.
|
||||
// Over the wire, it will still be transferred as a string, but this guarantees
|
||||
// that the contents of that string can be parsed as a valid URI.
|
||||
type DocumentURI string
|
||||
|
||||
// Position in a text document expressed as zero-based line and zero-based character offset.
|
||||
// A position is between two characters like an ‘insert’ cursor in a editor.
|
||||
type Position struct {
|
||||
/**
|
||||
* Line position in a document (zero-based).
|
||||
*/
|
||||
Line float64 `json:"line"`
|
||||
|
||||
/**
|
||||
* Character offset on a line in a document (zero-based). Assuming that the line is
|
||||
* represented as a string, the `character` value represents the gap between the
|
||||
* `character` and `character + 1`.
|
||||
*
|
||||
* If the character value is greater than the line length it defaults back to the
|
||||
* line length.
|
||||
*/
|
||||
Character float64 `json:"character"`
|
||||
}
|
||||
|
||||
// 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.
|
||||
// If you want to specify a range that contains a line including the line
|
||||
// ending character(s) then use an end position denoting the start of the next
|
||||
// line.
|
||||
type Range struct {
|
||||
/**
|
||||
* The range's start position.
|
||||
*/
|
||||
Start Position `json:"start"`
|
||||
|
||||
/**
|
||||
* The range's end position.
|
||||
*/
|
||||
End Position `json:"end"`
|
||||
}
|
||||
|
||||
// Location represents a location inside a resource, such as a line inside a text file.
|
||||
type Location struct {
|
||||
URI DocumentURI `json:"uri"`
|
||||
Range Range `json:"range"`
|
||||
}
|
||||
|
||||
// LocationLink rerpesents a link betwee a source and a target location.AfterDelay
|
||||
type LocationLink struct {
|
||||
/**
|
||||
* Span of the origin of this link.
|
||||
*
|
||||
* Used as the underlined span for mouse interaction. Defaults to the word range at
|
||||
* the mouse position.
|
||||
*/
|
||||
OriginSelectionRange *Range `json:"originSelectionRange,omitempty"`
|
||||
|
||||
/**
|
||||
* The target resource identifier of this link.
|
||||
*/
|
||||
TargetURI string `json:"targetUri"`
|
||||
|
||||
/**
|
||||
* The full target range of this link.
|
||||
*/
|
||||
TargetRange Range `json:"targetRange"`
|
||||
|
||||
/**
|
||||
* The span of this link.
|
||||
*/
|
||||
TargetSelectionRange *Range `json:"targetSeletionRange,omitempty"`
|
||||
}
|
||||
|
||||
// Diagnostic represents a diagnostic, such as a compiler error or warning.
|
||||
// Diagnostic objects are only valid in the scope of a resource.
|
||||
type Diagnostic struct {
|
||||
/**
|
||||
* The range at which the message applies.
|
||||
*/
|
||||
Range Range `json:"range"`
|
||||
|
||||
/**
|
||||
* The diagnostic's severity. Can be omitted. If omitted it is up to the
|
||||
* client to interpret diagnostics as error, warning, info or hint.
|
||||
*/
|
||||
Severity DiagnosticSeverity `json:"severity,omitempty"`
|
||||
|
||||
/**
|
||||
* The diagnostic's code, which might appear in the user interface.
|
||||
*/
|
||||
Code interface{} `json:"code,omitempty"` // number | string
|
||||
|
||||
/**
|
||||
* A human-readable string describing the source of this
|
||||
* diagnostic, e.g. 'typescript' or 'super lint'.
|
||||
*/
|
||||
Source string `json:"source,omitempty"`
|
||||
|
||||
/**
|
||||
* The diagnostic's message.
|
||||
*/
|
||||
Message string `json:"message"`
|
||||
|
||||
/**
|
||||
* An array of related diagnostic information, e.g. when symbol-names within
|
||||
* a scope collide all definitions can be marked via this property.
|
||||
*/
|
||||
Related []DiagnosticRelatedInformation `json:"relatedInformation,omitempty"`
|
||||
}
|
||||
|
||||
// DiagnosticSeverity indicates the severity of a Diagnostic message.
|
||||
type DiagnosticSeverity float64
|
||||
|
||||
const (
|
||||
/**
|
||||
* Reports an error.
|
||||
*/
|
||||
SeverityError DiagnosticSeverity = 1
|
||||
/**
|
||||
* Reports a warning.
|
||||
*/
|
||||
SeverityWarning DiagnosticSeverity = 2
|
||||
/**
|
||||
* Reports an information.
|
||||
*/
|
||||
SeverityInformation DiagnosticSeverity = 3
|
||||
/**
|
||||
* Reports a hint.
|
||||
*/
|
||||
SeverityHint DiagnosticSeverity = 4
|
||||
)
|
||||
|
||||
// DiagnosticRelatedInformation 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.
|
||||
type DiagnosticRelatedInformation struct {
|
||||
/**
|
||||
* The location of this related diagnostic information.
|
||||
*/
|
||||
Location Location `json:"location"`
|
||||
|
||||
/**
|
||||
* The message of this related diagnostic information.
|
||||
*/
|
||||
Message string `json:"message"`
|
||||
}
|
||||
|
||||
// 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 protocol currently doesn’t specify a set of well-known commands.
|
||||
// So executing a command requires some tool extension code.
|
||||
type Command struct {
|
||||
/**
|
||||
* Title of the command, like `save`.
|
||||
*/
|
||||
Title string `json:"title"`
|
||||
|
||||
/**
|
||||
* The identifier of the actual command handler.
|
||||
*/
|
||||
Command string `json:"command"`
|
||||
|
||||
/**
|
||||
* Arguments that the command handler should be
|
||||
* invoked with.
|
||||
*/
|
||||
Arguments []interface{} `json:"arguments,omitempty"`
|
||||
}
|
||||
|
||||
// TextEdit is a textual edit applicable to a text document.
|
||||
type TextEdit struct {
|
||||
/**
|
||||
* The range of the text document to be manipulated. To insert
|
||||
* text into a document create a range where start === end.
|
||||
*/
|
||||
Range Range `json:"range"`
|
||||
|
||||
/**
|
||||
* The string to be inserted. For delete operations use an
|
||||
* empty string.
|
||||
*/
|
||||
NewText string `json:"newText"`
|
||||
}
|
||||
|
||||
// TextDocumentEdit 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.
|
||||
type TextDocumentEdit struct {
|
||||
/**
|
||||
* The text document to change.
|
||||
*/
|
||||
TextDocument VersionedTextDocumentIdentifier `json:"textDocument"`
|
||||
|
||||
/**
|
||||
* The edits to be applied.
|
||||
*/
|
||||
Edits []TextEdit `json:"edits"`
|
||||
}
|
||||
|
||||
// WorkspaceEdit represents changes to many resources managed in the workspace.
|
||||
// The edit should either provide Changes or DocumentChanges.
|
||||
// If the client can handle versioned document edits and if DocumentChanges are
|
||||
// present, the latter are preferred over Changes.
|
||||
type WorkspaceEdit struct {
|
||||
/**
|
||||
* Holds changes to existing resources.
|
||||
*/
|
||||
Changes map[DocumentURI][]TextEdit `json:"changes,omitempty"`
|
||||
|
||||
/**
|
||||
* An array of `TextDocumentEdit`s to express changes to n different text documents
|
||||
* where each text document edit addresses a specific version of a text document.
|
||||
* Whether a client supports versioned document edits is expressed via
|
||||
* `WorkspaceClientCapabilities.workspaceEdit.documentChanges`.
|
||||
*/
|
||||
DocumentChanges []TextDocumentEdit `json:"documentChanges,omitempty"`
|
||||
}
|
||||
|
||||
// TextDocumentIdentifier identifies a document using a URI.
|
||||
// On the protocol level, URIs are passed as strings.
|
||||
// The corresponding JSON structure looks like this.
|
||||
type TextDocumentIdentifier struct {
|
||||
/**
|
||||
* The text document's URI.
|
||||
*/
|
||||
URI DocumentURI `json:"uri"`
|
||||
}
|
||||
|
||||
// TextDocumentItem is an item to transfer a text document from the client to
|
||||
// the server.
|
||||
type TextDocumentItem struct {
|
||||
/**
|
||||
* The text document's URI.
|
||||
*/
|
||||
URI DocumentURI `json:"uri"`
|
||||
|
||||
/**
|
||||
* The text document's language identifier.
|
||||
*/
|
||||
LanguageID string `json:"languageId"`
|
||||
|
||||
/**
|
||||
* The version number of this document (it will increase after each
|
||||
* change, including undo/redo).
|
||||
*/
|
||||
Version float64 `json:"version"`
|
||||
|
||||
/**
|
||||
* The content of the opened text document.
|
||||
*/
|
||||
Text string `json:"text"`
|
||||
}
|
||||
|
||||
// VersionedTextDocumentIdentifier is an identifier to denote a specific version of a text document.
|
||||
type VersionedTextDocumentIdentifier struct {
|
||||
TextDocumentIdentifier
|
||||
|
||||
/**
|
||||
* The version number of this document. If a versioned text document identifier
|
||||
* is sent from the server to the client and the file is not open in the editor
|
||||
* (the server has not received an open notification before) the server can send
|
||||
* `null` to indicate that the version is known and the content on disk is the
|
||||
* truth (as speced with document content ownership)
|
||||
*/
|
||||
Version *uint64 `json:"version"`
|
||||
}
|
||||
|
||||
// TextDocumentPositionParams is a parameter literal used in requests to pass
|
||||
// a text document and a position inside that document.
|
||||
type TextDocumentPositionParams struct {
|
||||
/**
|
||||
* The text document.
|
||||
*/
|
||||
TextDocument TextDocumentIdentifier `json:"textDocument"`
|
||||
|
||||
/**
|
||||
* The position inside the text document.
|
||||
*/
|
||||
Position Position `json:"position"`
|
||||
}
|
||||
|
||||
// DocumentFilter is a document filter denotes a document through properties
|
||||
// like language, scheme or pattern.
|
||||
// An example is a filter that applies to TypeScript files on disk.
|
||||
// Another example is a filter the applies to JSON files with name package.json:
|
||||
// { language: 'typescript', scheme: 'file' }
|
||||
// { language: 'json', pattern: '**/package.json' }
|
||||
type DocumentFilter struct {
|
||||
/**
|
||||
* A language id, like `typescript`.
|
||||
*/
|
||||
Language string `json:"language,omitempty"`
|
||||
|
||||
/**
|
||||
* A URI [scheme](#URI.scheme), like `file` or `untitled`.
|
||||
*/
|
||||
Scheme string `json:"scheme,omitempty"`
|
||||
|
||||
/**
|
||||
* A glob pattern, like `*.{ts,js}`.
|
||||
*/
|
||||
Pattern string `json:"pattern,omitempty"`
|
||||
}
|
||||
|
||||
// A document selector is the combination of one or more document filters.
|
||||
type DocumentSelector []DocumentFilter
|
||||
|
||||
/**
|
||||
* Describes the content type that a client supports in various
|
||||
* result literals like `Hover`, `ParameterInfo` or `CompletionItem`.
|
||||
*
|
||||
* Please note that `MarkupKinds` must not start with a `$`. This kinds
|
||||
* are reserved for internal usage.
|
||||
*/
|
||||
type MarkupKind string
|
||||
|
||||
const (
|
||||
/**
|
||||
* Plain text is supported as a content format
|
||||
*/
|
||||
PlainText MarkupKind = "plaintext"
|
||||
|
||||
/**
|
||||
* Markdown is supported as a content format
|
||||
*/
|
||||
Markdown MarkupKind = "markdown"
|
||||
)
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*
|
||||
* If the kind is `markdown` then the value can contain fenced code blocks like in GitHub issues.
|
||||
* See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting
|
||||
*
|
||||
* Here is an example how such a string can be constructed using JavaScript / TypeScript:
|
||||
* ```ts
|
||||
* let markdown: MarkdownContent = {
|
||||
* kind: MarkupKind.Markdown,
|
||||
* value: [
|
||||
* '# Header',
|
||||
* 'Some text',
|
||||
* '```typescript',
|
||||
* 'someCode();',
|
||||
* '```'
|
||||
* ].join('\n')
|
||||
* };
|
||||
* ```
|
||||
*
|
||||
* *Please Note* that clients might sanitize the return markdown. A client could decide to
|
||||
* remove HTML from the markdown to avoid script execution.
|
||||
*/
|
||||
type MarkupContent struct {
|
||||
/**
|
||||
* The type of the Markup
|
||||
*/
|
||||
Kind MarkupKind `json:"kind"`
|
||||
|
||||
/**
|
||||
* The content itself
|
||||
*/
|
||||
Value string `json:"value"`
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// This file contains the corresponding structures to the
|
||||
// "Diagnostics" part of the LSP specification.
|
||||
|
||||
package protocol
|
||||
|
||||
type PublishDiagnosticsParams struct {
|
||||
/**
|
||||
* The URI for which diagnostic information is reported.
|
||||
*/
|
||||
URI DocumentURI `json:"uri"`
|
||||
|
||||
/**
|
||||
* An array of diagnostic information items.
|
||||
*/
|
||||
Diagnostics []Diagnostic `json:"diagnostics"`
|
||||
}
|
@ -1,849 +0,0 @@
|
||||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// This file contains the corresponding structures to the
|
||||
// "General" messages part of the LSP specification.
|
||||
|
||||
package protocol
|
||||
|
||||
import "golang.org/x/tools/internal/jsonrpc2"
|
||||
|
||||
type CancelParams struct {
|
||||
/**
|
||||
* The request id to cancel.
|
||||
*/
|
||||
ID jsonrpc2.ID `json:"id"`
|
||||
}
|
||||
|
||||
type InitializeParams struct {
|
||||
/**
|
||||
* The process Id of the parent process that started
|
||||
* the server. Is null if the process has not been started by another process.
|
||||
* If the parent process is not alive then the server should exit (see exit notification) its process.
|
||||
*/
|
||||
ProcessID *float64 `json:"processId"`
|
||||
|
||||
/**
|
||||
* The rootPath of the workspace. Is null
|
||||
* if no folder is open.
|
||||
*
|
||||
* @deprecated in favour of rootURI.
|
||||
*/
|
||||
RootPath *string `json:"rootPath"`
|
||||
|
||||
/**
|
||||
* The rootUri of the workspace. Is null if no
|
||||
* folder is open. If both `rootPath` and `rootUri` are set
|
||||
* `rootUri` wins.
|
||||
*/
|
||||
RootURI *DocumentURI `json:"rootUri"`
|
||||
|
||||
/**
|
||||
* User provided initialization options.
|
||||
*/
|
||||
InitializationOptions interface{} `json:"initializationOptions"`
|
||||
|
||||
/**
|
||||
* The capabilities provided by the client (editor or tool)
|
||||
*/
|
||||
Capabilities ClientCapabilities `json:"capabilities"`
|
||||
|
||||
/**
|
||||
* The initial trace setting. If omitted trace is disabled ('off').
|
||||
*/
|
||||
Trace string `json:"trace"` // 'off' | 'messages' | 'verbose'
|
||||
|
||||
/**
|
||||
* The workspace folders configured in the client when the server starts.
|
||||
* This property is only available if the client supports workspace folders.
|
||||
* It can be `null` if the client supports workspace folders but none are
|
||||
* configured.
|
||||
*
|
||||
* Since 3.6.0
|
||||
*/
|
||||
WorkspaceFolders []WorkspaceFolder `json:"workspaceFolders,omitempty"`
|
||||
}
|
||||
|
||||
/**
|
||||
* Workspace specific client capabilities.
|
||||
*/
|
||||
type WorkspaceClientCapabilities struct {
|
||||
/**
|
||||
* The client supports applying batch edits to the workspace by supporting
|
||||
* the request 'workspace/applyEdit'
|
||||
*/
|
||||
ApplyEdit bool `json:"applyEdit,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to `WorkspaceEdit`s
|
||||
*/
|
||||
WorkspaceEdit struct {
|
||||
/**
|
||||
* The client supports versioned document changes in `WorkspaceEdit`s
|
||||
*/
|
||||
DocumentChanges bool `json:"documentChanges,omitempty"`
|
||||
} `json:"workspaceEdit,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `workspace/didChangeConfiguration` notification.
|
||||
*/
|
||||
DidChangeConfiguration struct {
|
||||
/**
|
||||
* Did change configuration notification supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
} `json:"didChangeConfiguration,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
|
||||
*/
|
||||
DidChangeWatchedFiles struct {
|
||||
/**
|
||||
* Did change watched files notification supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
} `json:"didChangeWatchedFiles,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `workspace/symbol` request.
|
||||
*/
|
||||
Symbol struct {
|
||||
/**
|
||||
* Symbol request supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
|
||||
/**
|
||||
* Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
|
||||
*/
|
||||
SymbolKind struct {
|
||||
/**
|
||||
* The symbol kind values the client supports. When this
|
||||
* property exists the client also guarantees that it will
|
||||
* handle values outside its set gracefully and falls back
|
||||
* to a default value when unknown.
|
||||
*
|
||||
* If this property is not present the client only supports
|
||||
* the symbol kinds from `File` to `Array` as defined in
|
||||
* the initial version of the protocol.
|
||||
*/
|
||||
ValueSet []SymbolKind `json:"valueSet,omitempty"`
|
||||
} `json:"symbolKind,omitempty"`
|
||||
} `json:"symbol,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `workspace/executeCommand` request.
|
||||
*/
|
||||
ExecuteCommand struct {
|
||||
/**
|
||||
* Execute command supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
} `json:"executeCommand,omitempty"`
|
||||
|
||||
/**
|
||||
* The client has support for workspace folders.
|
||||
*
|
||||
* Since 3.6.0
|
||||
*/
|
||||
WorkspaceFolders bool `json:"workspaceFolders,omitempty"`
|
||||
|
||||
/**
|
||||
* The client supports `workspace/configuration` requests.
|
||||
*
|
||||
* Since 3.6.0
|
||||
*/
|
||||
Configuration bool `json:"configuration,omitempty"`
|
||||
}
|
||||
|
||||
/**
|
||||
* Text document specific client capabilities.
|
||||
*/
|
||||
type TextDocumentClientCapabilities struct {
|
||||
Synchronization struct {
|
||||
/**
|
||||
* Whether text document synchronization supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
|
||||
/**
|
||||
* The client supports sending will save notifications.
|
||||
*/
|
||||
WillSave bool `json:"willSave,omitempty"`
|
||||
|
||||
/**
|
||||
* The client supports sending a will save request and
|
||||
* waits for a response providing text edits which will
|
||||
* be applied to the document before it is saved.
|
||||
*/
|
||||
WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"`
|
||||
|
||||
/**
|
||||
* The client supports did save notifications.
|
||||
*/
|
||||
DidSave bool `json:"didSave,omitempty"`
|
||||
} `json:"synchronization,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/completion`
|
||||
*/
|
||||
Completion struct {
|
||||
/**
|
||||
* Whether completion supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
|
||||
/**
|
||||
* The client supports the following `CompletionItem` specific
|
||||
* capabilities.
|
||||
*/
|
||||
CompletionItem struct {
|
||||
/**
|
||||
* Client supports snippets as insert text.
|
||||
*
|
||||
* A snippet can define tab stops and placeholders with `$1`, `$2`
|
||||
* and `${3:foo}`. `$0` defines the final tab stop, it defaults to
|
||||
* the end of the snippet. Placeholders with equal identifiers are linked,
|
||||
* that is typing in one will update others too.
|
||||
*/
|
||||
SnippetSupport bool `json:"snippetSupport,omitempty"`
|
||||
|
||||
/**
|
||||
* Client supports commit characters on a completion item.
|
||||
*/
|
||||
CommitCharactersSupport bool `json:"commitCharactersSupport,omitempty"`
|
||||
|
||||
/**
|
||||
* Client supports the follow content formats for the documentation
|
||||
* property. The order describes the preferred format of the client.
|
||||
*/
|
||||
DocumentationFormat []MarkupKind `json:"documentationFormat,omitempty"`
|
||||
|
||||
/**
|
||||
* Client supports the deprecated property on a completion item.
|
||||
*/
|
||||
DeprecatedSupport bool `json:"deprecatedSupport,omitempty"`
|
||||
|
||||
/**
|
||||
* Client supports the preselect property on a completion item.
|
||||
*/
|
||||
PreselectSupport bool `json:"preselectSupport,omitempty"`
|
||||
} `json:"completionItem,omitempty"`
|
||||
|
||||
CompletionItemKind struct {
|
||||
/**
|
||||
* The completion item kind values the client supports. When this
|
||||
* property exists the client also guarantees that it will
|
||||
* handle values outside its set gracefully and falls back
|
||||
* to a default value when unknown.
|
||||
*
|
||||
* If this property is not present the client only supports
|
||||
* the completion items kinds from `Text` to `Reference` as defined in
|
||||
* the initial version of the protocol.
|
||||
*/
|
||||
ValueSet []CompletionItemKind `json:"valueSet,omitempty"`
|
||||
} `json:"completionItemKind,omitempty"`
|
||||
|
||||
/**
|
||||
* The client supports to send additional context information for a
|
||||
* `textDocument/completion` request.
|
||||
*/
|
||||
ContextSupport bool `json:"contextSupport,omitempty"`
|
||||
} `json:"completion"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/hover`
|
||||
*/
|
||||
Hover struct {
|
||||
/**
|
||||
* Whether hover supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
|
||||
/**
|
||||
* Client supports the follow content formats for the content
|
||||
* property. The order describes the preferred format of the client.
|
||||
*/
|
||||
ContentFormat []MarkupKind `json:"contentFormat,omitempty"`
|
||||
} `json:"hover,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/signatureHelp`
|
||||
*/
|
||||
SignatureHelp struct {
|
||||
/**
|
||||
* Whether signature help supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
|
||||
/**
|
||||
* The client supports the following `SignatureInformation`
|
||||
* specific properties.
|
||||
*/
|
||||
SignatureInformation struct {
|
||||
/**
|
||||
* Client supports the follow content formats for the documentation
|
||||
* property. The order describes the preferred format of the client.
|
||||
*/
|
||||
DocumentationFormat []MarkupKind `json:"documentationFormat,omitempty"`
|
||||
} `json:"signatureInformation,omitempty"`
|
||||
} `json:"signatureHelp,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/references`
|
||||
*/
|
||||
References struct {
|
||||
/**
|
||||
* Whether references supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
} `json:"references,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/documentHighlight`
|
||||
*/
|
||||
DocumentHighlight struct {
|
||||
/**
|
||||
* Whether document highlight supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
} `json:"documentHighlight,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/documentSymbol`
|
||||
*/
|
||||
DocumentSymbol struct {
|
||||
/**
|
||||
* Whether document symbol supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
|
||||
/**
|
||||
* Specific capabilities for the `SymbolKind`.
|
||||
*/
|
||||
SymbolKind struct {
|
||||
/**
|
||||
* The symbol kind values the client supports. When this
|
||||
* property exists the client also guarantees that it will
|
||||
* handle values outside its set gracefully and falls back
|
||||
* to a default value when unknown.
|
||||
*
|
||||
* If this property is not present the client only supports
|
||||
* the symbol kinds from `File` to `Array` as defined in
|
||||
* the initial version of the protocol.
|
||||
*/
|
||||
ValueSet []SymbolKind `json:"valueSet,omitempty"`
|
||||
} `json:"symbolKind,omitempty"`
|
||||
|
||||
/**
|
||||
* The client support hierarchical document symbols.
|
||||
*/
|
||||
HierarchicalDocumentSymbolSupport bool `json:"hierarchicalDocumentSymbolSupport,omitempty"`
|
||||
} `json:"documentSymbol,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/formatting`
|
||||
*/
|
||||
Formatting struct {
|
||||
/**
|
||||
* Whether formatting supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
} `json:"formatting,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/rangeFormatting`
|
||||
*/
|
||||
RangeFormatting struct {
|
||||
/**
|
||||
* Whether range formatting supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
} `json:"rangeFormatting,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/onTypeFormatting`
|
||||
*/
|
||||
OnTypeFormatting struct {
|
||||
/**
|
||||
* Whether on type formatting supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
} `json:"onTypeFormatting,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/definition`
|
||||
*/
|
||||
Definition struct {
|
||||
/**
|
||||
* Whether definition supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
} `json:"definition,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/typeDefinition`
|
||||
*
|
||||
* Since 3.6.0
|
||||
*/
|
||||
TypeDefinition struct {
|
||||
/**
|
||||
* Whether typeDefinition supports dynamic registration. If this is set to `true`
|
||||
* the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
|
||||
* return value for the corresponding server capability as well.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
} `json:"typeDefinition,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/implementation`.
|
||||
*
|
||||
* Since 3.6.0
|
||||
*/
|
||||
Implementation struct {
|
||||
/**
|
||||
* Whether implementation supports dynamic registration. If this is set to `true`
|
||||
* the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
|
||||
* return value for the corresponding server capability as well.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
} `json:"implementation,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/codeAction`
|
||||
*/
|
||||
CodeAction struct {
|
||||
/**
|
||||
* Whether code action supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
/**
|
||||
* The client support code action literals as a valid
|
||||
* response of the `textDocument/codeAction` request.
|
||||
*
|
||||
* Since 3.8.0
|
||||
*/
|
||||
CodeActionLiteralSupport struct {
|
||||
/**
|
||||
* The code action kind is support with the following value
|
||||
* set.
|
||||
*/
|
||||
CodeActionKind struct {
|
||||
|
||||
/**
|
||||
* The code action kind values the client supports. When this
|
||||
* property exists the client also guarantees that it will
|
||||
* handle values outside its set gracefully and falls back
|
||||
* to a default value when unknown.
|
||||
*/
|
||||
ValueSet []CodeActionKind `json:"valueSet"`
|
||||
} `json:"codeActionKind"`
|
||||
} `json:"codeActionLiteralSupport,omitempty"`
|
||||
} `json:"codeAction,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/codeLens`
|
||||
*/
|
||||
CodeLens struct {
|
||||
/**
|
||||
* Whether code lens supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
} `json:"codeLens,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/documentLink`
|
||||
*/
|
||||
DocumentLink struct {
|
||||
/**
|
||||
* Whether document link supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
} `json:"documentLink,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/documentColor` and the
|
||||
* `textDocument/colorPresentation` request.
|
||||
*
|
||||
* Since 3.6.0
|
||||
*/
|
||||
ColorProvider struct {
|
||||
/**
|
||||
* Whether colorProvider supports dynamic registration. If this is set to `true`
|
||||
* the client supports the new `(ColorProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)`
|
||||
* return value for the corresponding server capability as well.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
} `json:"colorProvider,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to the `textDocument/rename`
|
||||
*/
|
||||
Rename struct {
|
||||
/**
|
||||
* Whether rename supports dynamic registration.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
} `json:"rename,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to `textDocument/publishDiagnostics`.
|
||||
*/
|
||||
PublishDiagnostics struct {
|
||||
/**
|
||||
* Whether the clients accepts diagnostics with related information.
|
||||
*/
|
||||
RelatedInformation bool `json:"relatedInformation,omitempty"`
|
||||
} `json:"publishDiagnostics,omitempty"`
|
||||
|
||||
/**
|
||||
* Capabilities specific to `textDocument/foldingRange` requests.
|
||||
*
|
||||
* Since 3.10.0
|
||||
*/
|
||||
FoldingRange struct {
|
||||
/**
|
||||
* Whether implementation supports dynamic registration for folding range providers. If this is set to `true`
|
||||
* the client supports the new `(FoldingRangeProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)`
|
||||
* return value for the corresponding server capability as well.
|
||||
*/
|
||||
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
|
||||
/**
|
||||
* The maximum number of folding ranges that the client prefers to receive per document. The value serves as a
|
||||
* hint, servers are free to follow the limit.
|
||||
*/
|
||||
RangeLimit float64 `json:"rangeLimit,omitempty"`
|
||||
/**
|
||||
* If set, the client signals that it only supports folding complete lines. If set, client will
|
||||
* ignore specified `startCharacter` and `endCharacter` properties in a FoldingRange.
|
||||
*/
|
||||
LineFoldingOnly bool `json:"lineFoldingOnly,omitempty"`
|
||||
}
|
||||
}
|
||||
|
||||
// ClientCapabilities now define capabilities for dynamic registration, workspace
|
||||
// and text document features the client supports. The experimental can be used to
|
||||
// pass experimental capabilities under development. For future compatibility a
|
||||
// ClientCapabilities object literal can have more properties set than currently
|
||||
// defined. Servers receiving a ClientCapabilities object literal with unknown
|
||||
// properties should ignore these properties. A missing property should be
|
||||
// interpreted as an absence of the capability. If a property is missing that
|
||||
// defines sub properties all sub properties should be interpreted as an absence
|
||||
// of the capability.
|
||||
//
|
||||
// Client capabilities got introduced with version 3.0 of the protocol. They
|
||||
// therefore only describe capabilities that got introduced in 3.x or later.
|
||||
// Capabilities that existed in the 2.x version of the protocol are still
|
||||
// mandatory for clients. Clients cannot opt out of providing them. So even if a
|
||||
// client omits the ClientCapabilities.textDocument.synchronization it is still
|
||||
// required that the client provides text document synchronization (e.g. open,
|
||||
// changed and close notifications).
|
||||
type ClientCapabilities struct {
|
||||
/**
|
||||
* Workspace specific client capabilities.
|
||||
*/
|
||||
Workspace WorkspaceClientCapabilities `json:"workspace,omitempty"`
|
||||
|
||||
/**
|
||||
* Text document specific client capabilities.
|
||||
*/
|
||||
TextDocument TextDocumentClientCapabilities `json:"textDocument,omitempty"`
|
||||
|
||||
/**
|
||||
* Experimental client capabilities.
|
||||
*/
|
||||
Experimental interface{} `json:"experimental,omitempty"`
|
||||
}
|
||||
|
||||
type InitializeResult struct {
|
||||
/**
|
||||
* The capabilities the language server provides.
|
||||
*/
|
||||
Capabilities ServerCapabilities `json:"capabilities"`
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines how the host (editor) should sync document changes to the language server.
|
||||
*/
|
||||
type TextDocumentSyncKind float64
|
||||
|
||||
const (
|
||||
/**
|
||||
* Documents should not be synced at all.
|
||||
*/
|
||||
None TextDocumentSyncKind = 0
|
||||
|
||||
/**
|
||||
* Documents are synced by always sending the full content
|
||||
* of the document.
|
||||
*/
|
||||
Full TextDocumentSyncKind = 1
|
||||
|
||||
/**
|
||||
* Documents are synced by sending the full content on open.
|
||||
* After that only incremental updates to the document are
|
||||
* send.
|
||||
*/
|
||||
Incremental TextDocumentSyncKind = 2
|
||||
)
|
||||
|
||||
/**
|
||||
* Completion options.
|
||||
*/
|
||||
type CompletionOptions struct {
|
||||
/**
|
||||
* The server provides support to resolve additional
|
||||
* information for a completion item.
|
||||
*/
|
||||
ResolveProvider bool `json:"resolveProvider,omitempty"`
|
||||
|
||||
/**
|
||||
* The characters that trigger completion automatically.
|
||||
*/
|
||||
TriggerCharacters []string `json:"triggerCharacters,omitempty"`
|
||||
}
|
||||
|
||||
/**
|
||||
* Signature help options.
|
||||
*/
|
||||
type SignatureHelpOptions struct {
|
||||
/**
|
||||
* The characters that trigger signature help
|
||||
* automatically.
|
||||
*/
|
||||
TriggerCharacters []string `json:"triggerCharacters,omitempty"`
|
||||
}
|
||||
|
||||
/**
|
||||
* Code Lens options.
|
||||
*/
|
||||
type CodeLensOptions struct {
|
||||
/**
|
||||
* Code lens has a resolve provider as well.
|
||||
*/
|
||||
ResolveProvider bool `json:"resolveProvider,omitempty"`
|
||||
}
|
||||
|
||||
/**
|
||||
* Format document on type options.
|
||||
*/
|
||||
type DocumentOnTypeFormattingOptions struct {
|
||||
/**
|
||||
* A character on which formatting should be triggered, like `}`.
|
||||
*/
|
||||
FirstTriggerCharacter string `json:"firstTriggerCharacter"`
|
||||
|
||||
/**
|
||||
* More trigger characters.
|
||||
*/
|
||||
MoreTriggerCharacter []string `json:"moreTriggerCharacter,omitempty"`
|
||||
}
|
||||
|
||||
/**
|
||||
* Document link options.
|
||||
*/
|
||||
type DocumentLinkOptions struct {
|
||||
/**
|
||||
* Document links have a resolve provider as well.
|
||||
*/
|
||||
ResolveProvider bool `json:"resolveProvider,omitempty"`
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute command options.
|
||||
*/
|
||||
type ExecuteCommandOptions struct {
|
||||
/**
|
||||
* The commands to be executed on the server.
|
||||
*/
|
||||
Commands []string `json:"commands"`
|
||||
}
|
||||
|
||||
/**
|
||||
* Save options.
|
||||
*/
|
||||
type SaveOptions struct {
|
||||
/**
|
||||
* The client is supposed to include the content on save.
|
||||
*/
|
||||
IncludeText bool `json:"includeText,omitempty"`
|
||||
}
|
||||
|
||||
/**
|
||||
* Color provider options.
|
||||
*/
|
||||
type ColorProviderOptions struct {
|
||||
}
|
||||
|
||||
/**
|
||||
* Folding range provider options.
|
||||
*/
|
||||
type FoldingRangeProviderOptions struct {
|
||||
}
|
||||
|
||||
type TextDocumentSyncOptions struct {
|
||||
/**
|
||||
* Open and close notifications are sent to the server.
|
||||
*/
|
||||
OpenClose bool `json:"openClose,omitempty"`
|
||||
/**
|
||||
* Change notifications are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full
|
||||
* and TextDocumentSyncKind.Incremental. If omitted it defaults to TextDocumentSyncKind.None.
|
||||
*/
|
||||
Change float64 `json:"change,omitempty"`
|
||||
/**
|
||||
* Will save notifications are sent to the server.
|
||||
*/
|
||||
WillSave bool `json:"willSave,omitempty"`
|
||||
/**
|
||||
* Will save wait until requests are sent to the server.
|
||||
*/
|
||||
WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"`
|
||||
/**
|
||||
* Save notifications are sent to the server.
|
||||
*/
|
||||
Save SaveOptions `json:"save,omitempty"`
|
||||
}
|
||||
|
||||
/**
|
||||
* Static registration options to be returned in the initialize request.
|
||||
*/
|
||||
type StaticRegistrationOptions struct {
|
||||
/**
|
||||
* The id used to register the request. The id can be used to deregister
|
||||
* the request again. See also Registration#id.
|
||||
*/
|
||||
ID string `json:"id,omitempty"`
|
||||
}
|
||||
|
||||
type ServerCapabilities struct {
|
||||
/**
|
||||
* Defines how text documents are synced. Is either a detailed structure defining each notification or
|
||||
* for backwards compatibility the TextDocumentSyncKind number. If omitted it defaults to `TextDocumentSyncKind.None`.
|
||||
*/
|
||||
TextDocumentSync interface{} `json:"textDocumentSync,omitempty"` // TextDocumentSyncOptions | number
|
||||
/**
|
||||
* The server provides hover support.
|
||||
*/
|
||||
HoverProvider bool `json:"hoverProvider,omitempty"`
|
||||
/**
|
||||
* The server provides completion support.
|
||||
*/
|
||||
CompletionProvider CompletionOptions `json:"completionProvider,omitempty"`
|
||||
/**
|
||||
* The server provides signature help support.
|
||||
*/
|
||||
SignatureHelpProvider SignatureHelpOptions `json:"signatureHelpProvider,omitempty"`
|
||||
/**
|
||||
* The server provides goto definition support.
|
||||
*/
|
||||
DefinitionProvider bool `json:"definitionProvider,omitempty"`
|
||||
/**
|
||||
* The server provides Goto Type Definition support.
|
||||
*
|
||||
* Since 3.6.0
|
||||
*/
|
||||
TypeDefinitionProvider interface{} `json:"typeDefinitionProvider,omitempty"` // boolean | (TextDocumentRegistrationOptions & StaticRegistrationOptions)
|
||||
/**
|
||||
* The server provides Goto Implementation support.
|
||||
*
|
||||
* Since 3.6.0
|
||||
*/
|
||||
ImplementationProvider interface{} `json:"implementationProvider,omitempty"` // boolean | (TextDocumentRegistrationOptions & StaticRegistrationOptions)
|
||||
/**
|
||||
* The server provides find references support.
|
||||
*/
|
||||
ReferencesProvider bool `json:"referencesProvider,omitempty"`
|
||||
/**
|
||||
* The server provides document highlight support.
|
||||
*/
|
||||
DocumentHighlightProvider bool `json:"documentHighlightProvider,omitempty"`
|
||||
/**
|
||||
* The server provides document symbol support.
|
||||
*/
|
||||
DocumentSymbolProvider bool `json:"documentSymbolProvider,omitempty"`
|
||||
/**
|
||||
* The server provides workspace symbol support.
|
||||
*/
|
||||
WorkspaceSymbolProvider bool `json:"workspaceSymbolProvider,omitempty"`
|
||||
/**
|
||||
* The server provides code actions.
|
||||
*/
|
||||
CodeActionProvider bool `json:"codeActionProvider,omitempty"`
|
||||
/**
|
||||
* The server provides code lens.
|
||||
*/
|
||||
CodeLensProvider CodeLensOptions `json:"codeLensProvider,omitempty"`
|
||||
/**
|
||||
* The server provides document formatting.
|
||||
*/
|
||||
DocumentFormattingProvider bool `json:"documentFormattingProvider,omitempty"`
|
||||
/**
|
||||
* The server provides document range formatting.
|
||||
*/
|
||||
DocumentRangeFormattingProvider bool `json:"documentRangeFormattingProvider,omitempty"`
|
||||
/**
|
||||
* The server provides document formatting on typing.
|
||||
*/
|
||||
DocumentOnTypeFormattingProvider DocumentOnTypeFormattingOptions `json:"documentOnTypeFormattingProvider,omitempty"`
|
||||
/**
|
||||
* The server provides rename support.
|
||||
*/
|
||||
RenameProvider bool `json:"renameProvider,omitempty"`
|
||||
/**
|
||||
* The server provides document link support.
|
||||
*/
|
||||
DocumentLinkProvider DocumentLinkOptions `json:"documentLinkProvider,omitempty"`
|
||||
/**
|
||||
* The server provides color provider support.
|
||||
*
|
||||
* Since 3.6.0
|
||||
*/
|
||||
//TODO: complex union type to decode here
|
||||
ColorProvider interface{} `json:"colorProvider,omitempty"` // boolean | ColorProviderOptions | (ColorProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)
|
||||
/**
|
||||
* The server provides folding provider support.
|
||||
*
|
||||
* Since 3.10.0
|
||||
*/
|
||||
//TODO: complex union type to decode here
|
||||
FoldingRangeProvider interface{} `json:"foldingRangeProvider,omitempty"` // boolean | FoldingRangeProviderOptions | (FoldingRangeProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)
|
||||
/**
|
||||
* The server provides execute command support.
|
||||
*/
|
||||
ExecuteCommandProvider *ExecuteCommandOptions `json:"executeCommandProvider,omitempty"`
|
||||
/**
|
||||
* Workspace specific server capabilities
|
||||
*/
|
||||
Workspace struct {
|
||||
/**
|
||||
* The server supports workspace folder.
|
||||
*
|
||||
* Since 3.6.0
|
||||
*/
|
||||
WorkspaceFolders struct {
|
||||
/**
|
||||
* The server has support for workspace folders
|
||||
*/
|
||||
Supported bool `json:"supported,omitempty"`
|
||||
/**
|
||||
* Whether the server wants to receive workspace folder
|
||||
* change notifications.
|
||||
*
|
||||
* If a strings is provided the string is treated as a ID
|
||||
* under which the notification is registered on the client
|
||||
* side. The ID can be used to unregister for these events
|
||||
* using the `client/unregisterCapability` request.
|
||||
*/
|
||||
ChangeNotifications interface{} `json:"changeNotifications,omitempty"` // string | boolean
|
||||
} `json:"workspaceFolders,omitempty"`
|
||||
} `json:"workspace,omitempty"`
|
||||
/**
|
||||
* Experimental server capabilities.
|
||||
*/
|
||||
Experimental interface{} `json:"experimental,omitempty"`
|
||||
}
|
||||
|
||||
type InitializedParams struct {
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -1,61 +0,0 @@
|
||||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// This file contains the corresponding structures to the
|
||||
// "Client" part of the LSP specification.
|
||||
|
||||
package protocol
|
||||
|
||||
/**
|
||||
* General parameters to register for a capability.
|
||||
*/
|
||||
type Registration struct {
|
||||
/**
|
||||
* The id used to register the request. The id can be used to deregister
|
||||
* the request again.
|
||||
*/
|
||||
ID string `json:"id"`
|
||||
|
||||
/**
|
||||
* The method / capability to register for.
|
||||
*/
|
||||
Method string `json:"method"`
|
||||
|
||||
/**
|
||||
* Options necessary for the registration.
|
||||
*/
|
||||
RegisterOptions interface{} `json:"registerOptions,omitempty"`
|
||||
}
|
||||
|
||||
type RegistrationParams struct {
|
||||
Registrations []Registration `json:"registrations"`
|
||||
}
|
||||
|
||||
type TextDocumentRegistrationOptions struct {
|
||||
/**
|
||||
* A document selector to identify the scope of the registration. If set to null
|
||||
* the document selector provided on the client side will be used.
|
||||
*/
|
||||
DocumentSelector *DocumentSelector `json:"documentSelector"`
|
||||
}
|
||||
|
||||
/**
|
||||
* General parameters to unregister a capability.
|
||||
*/
|
||||
type Unregistration struct {
|
||||
/**
|
||||
* The id used to unregister the request or notification. Usually an id
|
||||
* provided during the register request.
|
||||
*/
|
||||
ID string `json:"id"`
|
||||
|
||||
/**
|
||||
* The method / capability to unregister for.
|
||||
*/
|
||||
Method string `json:"method"`
|
||||
}
|
||||
|
||||
type UnregistrationParams struct {
|
||||
Unregisterations []Unregistration `json:"unregisterations"`
|
||||
}
|
@ -1,130 +0,0 @@
|
||||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// This file contains the corresponding structures to the
|
||||
// "Text Synchronization" part of the LSP specification.
|
||||
|
||||
package protocol
|
||||
|
||||
type DidOpenTextDocumentParams struct {
|
||||
/**
|
||||
* The document that was opened.
|
||||
*/
|
||||
TextDocument TextDocumentItem `json:"textDocument"`
|
||||
}
|
||||
|
||||
type DidChangeTextDocumentParams struct {
|
||||
/**
|
||||
* The document that did change. The version number points
|
||||
* to the version after all provided content changes have
|
||||
* been applied.
|
||||
*/
|
||||
TextDocument VersionedTextDocumentIdentifier `json:"textDocument"`
|
||||
|
||||
/**
|
||||
* The actual content changes. The content changes describe single state changes
|
||||
* to the document. So if there are two content changes c1 and c2 for a document
|
||||
* in state S10 then c1 move the document to S11 and c2 to S12.
|
||||
*/
|
||||
ContentChanges []TextDocumentContentChangeEvent `json:"contentChanges"`
|
||||
}
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
type TextDocumentContentChangeEvent struct {
|
||||
/**
|
||||
* The range of the document that changed.
|
||||
*/
|
||||
Range *Range `json:"range,omitempty"`
|
||||
|
||||
/**
|
||||
* The length of the range that got replaced.
|
||||
*/
|
||||
RangeLength float64 `json:"rangeLength,omitempty"`
|
||||
|
||||
/**
|
||||
* The new text of the range/document.
|
||||
*/
|
||||
Text string `json:"text"`
|
||||
}
|
||||
|
||||
/**
|
||||
* Describe options to be used when registering for text document change events.
|
||||
*/
|
||||
type TextDocumentChangeRegistrationOptions struct {
|
||||
TextDocumentRegistrationOptions
|
||||
/**
|
||||
* How documents are synced to the server. See TextDocumentSyncKind.Full
|
||||
* and TextDocumentSyncKind.Incremental.
|
||||
*/
|
||||
SyncKind float64 `json:"syncKind"`
|
||||
}
|
||||
|
||||
/**
|
||||
* The parameters send in a will save text document notification.
|
||||
*/
|
||||
type WillSaveTextDocumentParams struct {
|
||||
/**
|
||||
* The document that will be saved.
|
||||
*/
|
||||
TextDocument TextDocumentIdentifier `json:"textDocument"`
|
||||
|
||||
/**
|
||||
* The 'TextDocumentSaveReason'.
|
||||
*/
|
||||
Reason TextDocumentSaveReason `json:"reason"`
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents reasons why a text document is saved.
|
||||
*/
|
||||
type TextDocumentSaveReason float64
|
||||
|
||||
const (
|
||||
/**
|
||||
* Manually triggered, e.g. by the user pressing save, by starting debugging,
|
||||
* or by an API call.
|
||||
*/
|
||||
Manual TextDocumentSaveReason = 1
|
||||
|
||||
/**
|
||||
* Automatic after a delay.
|
||||
*/
|
||||
AfterDelay TextDocumentSaveReason = 2
|
||||
|
||||
/**
|
||||
* When the editor lost focus.
|
||||
*/
|
||||
FocusOut TextDocumentSaveReason = 3
|
||||
)
|
||||
|
||||
type DidSaveTextDocumentParams struct {
|
||||
/**
|
||||
* The document that was saved.
|
||||
*/
|
||||
TextDocument TextDocumentIdentifier `json:"textDocument"`
|
||||
|
||||
/**
|
||||
* Optional the content when saved. Depends on the includeText value
|
||||
* when the save notification was requested.
|
||||
*/
|
||||
Text string `json:"text,omitempty"`
|
||||
}
|
||||
|
||||
type TextDocumentSaveRegistrationOptions struct {
|
||||
TextDocumentRegistrationOptions
|
||||
/**
|
||||
* The client is supposed to include the content on save.
|
||||
*/
|
||||
IncludeText bool `json:"includeText,omitempty"`
|
||||
}
|
||||
|
||||
type DidCloseTextDocumentParams struct {
|
||||
/**
|
||||
* The document that was closed.
|
||||
*/
|
||||
TextDocument TextDocumentIdentifier `json:"textDocument"`
|
||||
}
|
@ -1,77 +0,0 @@
|
||||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// This file contains the corresponding structures to the
|
||||
// "Window" messages part of the LSP specification.
|
||||
|
||||
package protocol
|
||||
|
||||
type ShowMessageParams struct {
|
||||
/**
|
||||
* The message type. See {@link MessageType}.
|
||||
*/
|
||||
Type MessageType `json:"type"`
|
||||
|
||||
/**
|
||||
* The actual message.
|
||||
*/
|
||||
Message string `json:"message"`
|
||||
}
|
||||
|
||||
type MessageType float64
|
||||
|
||||
const (
|
||||
/**
|
||||
* An error message.
|
||||
*/
|
||||
Error MessageType = 1
|
||||
/**
|
||||
* A warning message.
|
||||
*/
|
||||
Warning MessageType = 2
|
||||
/**
|
||||
* An information message.
|
||||
*/
|
||||
Info MessageType = 3
|
||||
/**
|
||||
* A log message.
|
||||
*/
|
||||
Log MessageType = 4
|
||||
)
|
||||
|
||||
type ShowMessageRequestParams struct {
|
||||
/**
|
||||
* The message type. See {@link MessageType}.
|
||||
*/
|
||||
Type MessageType `json:"type"`
|
||||
|
||||
/**
|
||||
* The actual message.
|
||||
*/
|
||||
Message string `json:"message"`
|
||||
|
||||
/**
|
||||
* The message action items to present.
|
||||
*/
|
||||
Actions []MessageActionItem `json:"actions,omitempty"`
|
||||
}
|
||||
|
||||
type MessageActionItem struct {
|
||||
/**
|
||||
* A short title like 'Retry', 'Open Log' etc.
|
||||
*/
|
||||
Title string
|
||||
}
|
||||
|
||||
type LogMessageParams struct {
|
||||
/**
|
||||
* The message type. See {@link MessageType}.
|
||||
*/
|
||||
Type MessageType `json:"type"`
|
||||
|
||||
/**
|
||||
* The actual message.
|
||||
*/
|
||||
Message string `json:"message"`
|
||||
}
|
@ -1,203 +0,0 @@
|
||||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// This file contains the corresponding structures to the
|
||||
// "Workspace" part of the LSP specification.
|
||||
|
||||
package protocol
|
||||
|
||||
type WorkspaceFolder struct {
|
||||
/**
|
||||
* The associated URI for this workspace folder.
|
||||
*/
|
||||
URI string `json:"uri"`
|
||||
|
||||
/**
|
||||
* The name of the workspace folder. Defaults to the
|
||||
* uri's basename.
|
||||
*/
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
type DidChangeWorkspaceFoldersParams struct {
|
||||
/**
|
||||
* The actual workspace folder change event.
|
||||
*/
|
||||
Event WorkspaceFoldersChangeEvent `json:"event"`
|
||||
}
|
||||
|
||||
/**
|
||||
* The workspace folder change event.
|
||||
*/
|
||||
type WorkspaceFoldersChangeEvent struct {
|
||||
/**
|
||||
* The array of added workspace folders
|
||||
*/
|
||||
Added []WorkspaceFolder `json:"added"`
|
||||
|
||||
/**
|
||||
* The array of the removed workspace folders
|
||||
*/
|
||||
Removed []WorkspaceFolder `json:"removed"`
|
||||
}
|
||||
|
||||
type DidChangeConfigurationParams struct {
|
||||
/**
|
||||
* The actual changed settings
|
||||
*/
|
||||
Settings interface{} `json:"settings"`
|
||||
}
|
||||
|
||||
type ConfigurationParams struct {
|
||||
Items []ConfigurationItem `json:"items"`
|
||||
}
|
||||
|
||||
type ConfigurationItem struct {
|
||||
/**
|
||||
* The scope to get the configuration section for.
|
||||
*/
|
||||
ScopeURI string `json:"scopeURI,omitempty"`
|
||||
|
||||
/**
|
||||
* The configuration section asked for.
|
||||
*/
|
||||
Section string `json:"section,omitempty"`
|
||||
}
|
||||
|
||||
type DidChangeWatchedFilesParams struct {
|
||||
/**
|
||||
* The actual file events.
|
||||
*/
|
||||
Changes []FileEvent `json:"changes"`
|
||||
}
|
||||
|
||||
/**
|
||||
* An event describing a file change.
|
||||
*/
|
||||
type FileEvent struct {
|
||||
/**
|
||||
* The file's URI.
|
||||
*/
|
||||
URI DocumentURI `json:"uri"`
|
||||
/**
|
||||
* The change type.
|
||||
*/
|
||||
Type float64 `json:"type"`
|
||||
}
|
||||
|
||||
/**
|
||||
* The file event type.
|
||||
*/
|
||||
type FileChangeType float64
|
||||
|
||||
const (
|
||||
/**
|
||||
* The file got created.
|
||||
*/
|
||||
Created FileChangeType = 1
|
||||
/**
|
||||
* The file got changed.
|
||||
*/
|
||||
Changed FileChangeType = 2
|
||||
/**
|
||||
* The file got deleted.
|
||||
*/
|
||||
Deleted FileChangeType = 3
|
||||
)
|
||||
|
||||
/**
|
||||
* Describe options to be used when registering for text document change events.
|
||||
*/
|
||||
type DidChangeWatchedFilesRegistrationOptions struct {
|
||||
/**
|
||||
* The watchers to register.
|
||||
*/
|
||||
Watchers []FileSystemWatcher `json:"watchers"`
|
||||
}
|
||||
|
||||
type FileSystemWatcher struct {
|
||||
/**
|
||||
* The glob pattern to watch
|
||||
*/
|
||||
GlobPattern string `json:"globPattern"`
|
||||
|
||||
/**
|
||||
* The kind of events of interest. If omitted it defaults
|
||||
* to WatchKind.Create | WatchKind.Change | WatchKind.Delete
|
||||
* which is 7.
|
||||
*/
|
||||
Kind float64 `json:"kind,omitempty"`
|
||||
}
|
||||
|
||||
type WatchKind float64
|
||||
|
||||
const (
|
||||
/**
|
||||
* Interested in create events.
|
||||
*/
|
||||
Create WatchKind = 1
|
||||
|
||||
/**
|
||||
* Interested in change events
|
||||
*/
|
||||
Change WatchKind = 2
|
||||
|
||||
/**
|
||||
* Interested in delete events
|
||||
*/
|
||||
Delete WatchKind = 4
|
||||
)
|
||||
|
||||
/**
|
||||
* The parameters of a Workspace Symbol Request.
|
||||
*/
|
||||
type WorkspaceSymbolParams struct {
|
||||
/**
|
||||
* A non-empty query string
|
||||
*/
|
||||
Query string `json:"query"`
|
||||
}
|
||||
|
||||
type ExecuteCommandParams struct {
|
||||
|
||||
/**
|
||||
* The identifier of the actual command handler.
|
||||
*/
|
||||
Command string `json:"command"`
|
||||
/**
|
||||
* Arguments that the command should be invoked with.
|
||||
*/
|
||||
Arguments []interface{} `json:"arguments,omitempty"`
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute command registration options.
|
||||
*/
|
||||
type ExecuteCommandRegistrationOptions struct {
|
||||
/**
|
||||
* The commands to be executed on the server
|
||||
*/
|
||||
Commands []string `json:"commands"`
|
||||
}
|
||||
|
||||
type ApplyWorkspaceEditParams struct {
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
Label string `json:"label,omitempty"`
|
||||
|
||||
/**
|
||||
* The edits to apply.
|
||||
*/
|
||||
Edit WorkspaceEdit `json:"edit"`
|
||||
}
|
||||
|
||||
type ApplyWorkspaceEditResponse struct {
|
||||
/**
|
||||
* Indicates whether the edit was applied or not.
|
||||
*/
|
||||
Applied bool `json:"applied"`
|
||||
}
|
Loading…
Reference in New Issue
Block a user