protocol

package
v1.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 1, 2024 License: MPL-2.0 Imports: 1 Imported by: 0

Documentation

Overview

Package protocol contains data types and code for LSP jsonrpcs generated automatically from vscode-languageserver-node commit: 2645fb54ea1e764aff71dee0ecc8aceff3aabf56 last fetched Tue May 18 2021 08:24:56 GMT-0400 (Eastern Daylight Time)

Index

Constants

View Source
const (
	Empty CodeActionKind = ""

	QuickFix CodeActionKind = "quickfix"

	Refactor CodeActionKind = "refactor"

	RefactorExtract CodeActionKind = "refactor.extract"

	RefactorInline CodeActionKind = "refactor.inline"

	RefactorRewrite CodeActionKind = "refactor.rewrite"

	Source CodeActionKind = "source"

	SourceOrganizeImports CodeActionKind = "source.organizeImports"

	SourceFixAll            CodeActionKind     = "source.fixAll"
	TextCompletion          CompletionItemKind = 1
	MethodCompletion        CompletionItemKind = 2
	FunctionCompletion      CompletionItemKind = 3
	ConstructorCompletion   CompletionItemKind = 4
	FieldCompletion         CompletionItemKind = 5
	VariableCompletion      CompletionItemKind = 6
	ClassCompletion         CompletionItemKind = 7
	InterfaceCompletion     CompletionItemKind = 8
	ModuleCompletion        CompletionItemKind = 9
	PropertyCompletion      CompletionItemKind = 10
	UnitCompletion          CompletionItemKind = 11
	ValueCompletion         CompletionItemKind = 12
	EnumCompletion          CompletionItemKind = 13
	KeywordCompletion       CompletionItemKind = 14
	SnippetCompletion       CompletionItemKind = 15
	ColorCompletion         CompletionItemKind = 16
	FileCompletion          CompletionItemKind = 17
	ReferenceCompletion     CompletionItemKind = 18
	FolderCompletion        CompletionItemKind = 19
	EnumMemberCompletion    CompletionItemKind = 20
	ConstantCompletion      CompletionItemKind = 21
	StructCompletion        CompletionItemKind = 22
	EventCompletion         CompletionItemKind = 23
	OperatorCompletion      CompletionItemKind = 24
	TypeParameterCompletion CompletionItemKind = 25

	ComplDeprecated CompletionItemTag = 1

	Invoked CompletionTriggerKind = 1

	TriggerCharacter CompletionTriggerKind = 2

	TriggerForIncompleteCompletions CompletionTriggerKind = 3

	SeverityError DiagnosticSeverity = 1

	SeverityWarning DiagnosticSeverity = 2

	SeverityInformation DiagnosticSeverity = 3

	SeverityHint DiagnosticSeverity = 4

	Unnecessary DiagnosticTag = 1

	Deprecated DiagnosticTag = 2

	Text DocumentHighlightKind = 1

	Read DocumentHighlightKind = 2

	Write DocumentHighlightKind = 3

	Abort FailureHandlingKind = "abort"

	Transactional FailureHandlingKind = "transactional"

	TextOnlyTransactional FailureHandlingKind = "textOnlyTransactional"

	Undo FailureHandlingKind = "undo"

	Created FileChangeType = 1

	Changed FileChangeType = 2

	Deleted FileChangeType = 3

	FileOp FileOperationPatternKind = "file"

	FolderOp FileOperationPatternKind = "folder"
	/**
	 * Folding range for a comment
	 */
	Comment FoldingRangeKind = "comment"
	/**
	 * Folding range for a imports or includes
	 */
	Imports FoldingRangeKind = "imports"
	/**
	 * Folding range for a region (e.g. `#region`)
	 */
	Region FoldingRangeKind = "region"

	UnknownProtocolVersion InitializeError = 1

	PlainTextTextFormat InsertTextFormat = 1

	SnippetTextFormat InsertTextFormat = 2

	AsIs InsertTextMode = 1

	AdjustIndentation InsertTextMode = 2

	PlainText MarkupKind = "plaintext"

	Markdown MarkupKind = "markdown"

	Error MessageType = 1

	Warning MessageType = 2

	Info MessageType = 3

	Log MessageType = 4
	/**
	 * The moniker represent a symbol that is imported into a project
	 */
	Import MonikerKind = "import"
	/**
	 * The moniker represents a symbol that is exported from a project
	 */
	Export MonikerKind = "export"
	/**
	 * The moniker represents a symbol that is local to a project (e.g. a local
	 * variable of a function, a class not visible outside the project, ...)
	 */
	Local MonikerKind = "local"

	Create ResourceOperationKind = "create"

	Rename ResourceOperationKind = "rename"

	Delete ResourceOperationKind = "delete"

	SigInvoked SignatureHelpTriggerKind = 1

	SigTriggerCharacter SignatureHelpTriggerKind = 2

	SigContentChange SignatureHelpTriggerKind = 3
	File             SymbolKind               = 1
	Module           SymbolKind               = 2
	Namespace        SymbolKind               = 3
	Package          SymbolKind               = 4
	Class            SymbolKind               = 5
	Method           SymbolKind               = 6
	Property         SymbolKind               = 7
	Field            SymbolKind               = 8
	Constructor      SymbolKind               = 9
	Enum             SymbolKind               = 10
	Interface        SymbolKind               = 11
	Function         SymbolKind               = 12
	Variable         SymbolKind               = 13
	Constant         SymbolKind               = 14
	String           SymbolKind               = 15
	Number           SymbolKind               = 16
	Boolean          SymbolKind               = 17
	Array            SymbolKind               = 18
	Object           SymbolKind               = 19
	Key              SymbolKind               = 20
	Null             SymbolKind               = 21
	EnumMember       SymbolKind               = 22
	Struct           SymbolKind               = 23
	Event            SymbolKind               = 24
	Operator         SymbolKind               = 25
	TypeParameter    SymbolKind               = 26

	DeprecatedSymbol SymbolTag = 1

	Manual TextDocumentSaveReason = 1

	AfterDelay TextDocumentSaveReason = 2

	FocusOut TextDocumentSaveReason = 3

	None TextDocumentSyncKind = 0

	Full TextDocumentSyncKind = 1

	Incremental TextDocumentSyncKind = 2
	/**
	 * The moniker is only unique inside a document
	 */
	Document UniquenessLevel = "document"
	/**
	 * The moniker is unique inside a project for which a dump got created
	 */
	Project UniquenessLevel = "project"
	/**
	 * The moniker is unique inside the group to which a project belongs
	 */
	Group UniquenessLevel = "group"
	/**
	 * The moniker is unique inside the moniker scheme.
	 */
	Scheme UniquenessLevel = "scheme"
	/**
	 * The moniker is globally unique
	 */
	Global UniquenessLevel = "global"

	WatchCreate WatchKind = 1

	WatchChange WatchKind = 2

	WatchDelete WatchKind = 4
)
View Source
const TelemetryFormatVersion = 1

Variables

This section is empty.

Functions

This section is empty.

Types

type AnnotatedTextEdit

type AnnotatedTextEdit struct {
	/**
	 * The actual identifier of the change annotation
	 */
	AnnotationID ChangeAnnotationIdentifier `json:"annotationId"`
	TextEdit
}

*

  • A special text edit with an additional change annotation. *
  • @since 3.16.0.

type ApplyWorkspaceEditParams

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"`
}

*

  • The parameters passed via a apply workspace edit request.

type ApplyWorkspaceEditResponse

type ApplyWorkspaceEditResponse struct {
	/**
	 * Indicates whether the edit was applied or not.
	 */
	Applied bool `json:"applied"`
	/**
	 * An optional textual description for why the edit was not applied.
	 * This may be used by the server for diagnostic logging or to provide
	 * a suitable error for a request that triggered the edit.
	 */
	FailureReason string `json:"failureReason,omitempty"`
	/**
	 * Depending on the client's failure handling strategy `failedChange` might
	 * contain the index of the change that failed. This property is only available
	 * if the client signals a `failureHandlingStrategy` in its client capabilities.
	 */
	FailedChange uint32 `json:"failedChange,omitempty"`
}

*

  • A response returned from the apply workspace edit request.

type CallHierarchyClientCapabilities

type CallHierarchyClientCapabilities 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"`
}

*

  • @since 3.16.0

type CallHierarchyIncomingCall

type CallHierarchyIncomingCall struct {
	/**
	 * The item that makes the call.
	 */
	From CallHierarchyItem `json:"from"`
	/**
	 * The ranges at which the calls appear. This is relative to the caller
	 * denoted by [`this.from`](#CallHierarchyIncomingCall.from).
	 */
	FromRanges []Range `json:"fromRanges"`
}

*

  • Represents an incoming call, e.g. a caller of a method or constructor. *
  • @since 3.16.0

type CallHierarchyIncomingCallsParams

type CallHierarchyIncomingCallsParams struct {
	Item CallHierarchyItem `json:"item"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • The parameter of a `callHierarchy/incomingCalls` request. *
  • @since 3.16.0

type CallHierarchyItem

type CallHierarchyItem struct {
	/**
	 * The name of this item.
	 */
	Name string `json:"name"`
	/**
	 * The kind of this item.
	 */
	Kind SymbolKind `json:"kind"`
	/**
	 * Tags for this item.
	 */
	Tags []SymbolTag `json:"tags,omitempty"`
	/**
	 * More detail for this item, e.g. the signature of a function.
	 */
	Detail string `json:"detail,omitempty"`
	/**
	 * The resource identifier of this item.
	 */
	URI DocumentURI `json:"uri"`
	/**
	 * The range enclosing this symbol not including leading/trailing whitespace but everything else, e.g. comments and code.
	 */
	Range Range `json:"range"`
	/**
	 * The range that should be selected and revealed when this symbol is being picked, e.g. the name of a function.
	 * Must be contained by the [`range`](#CallHierarchyItem.range).
	 */
	SelectionRange Range `json:"selectionRange"`
	/**
	 * A data entry field that is preserved between a call hierarchy prepare and
	 * incoming calls or outgoing calls requests.
	 */
	Data interface{} `json:"data,omitempty"`
}

*

  • Represents programming constructs like functions or constructors in the context
  • of call hierarchy. *
  • @since 3.16.0

type CallHierarchyOptions

type CallHierarchyOptions struct {
	WorkDoneProgressOptions
}

*

  • Call hierarchy options used during static registration. *
  • @since 3.16.0

type CallHierarchyOutgoingCall

type CallHierarchyOutgoingCall struct {
	/**
	 * The item that is called.
	 */
	To CallHierarchyItem `json:"to"`
	/**
	 * The range at which this item is called. This is the range relative to the caller, e.g the item
	 * passed to [`provideCallHierarchyOutgoingCalls`](#CallHierarchyItemProvider.provideCallHierarchyOutgoingCalls)
	 * and not [`this.to`](#CallHierarchyOutgoingCall.to).
	 */
	FromRanges []Range `json:"fromRanges"`
}

*

  • Represents an outgoing call, e.g. calling a getter from a method or a method from a constructor etc. *
  • @since 3.16.0

type CallHierarchyOutgoingCallsParams

type CallHierarchyOutgoingCallsParams struct {
	Item CallHierarchyItem `json:"item"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • The parameter of a `callHierarchy/outgoingCalls` request. *
  • @since 3.16.0

type CallHierarchyPrepareParams

type CallHierarchyPrepareParams struct {
	TextDocumentPositionParams
	WorkDoneProgressParams
}

*

  • The parameter of a `textDocument/prepareCallHierarchy` request. *
  • @since 3.16.0

type CallHierarchyRegistrationOptions

type CallHierarchyRegistrationOptions struct {
	TextDocumentRegistrationOptions
	CallHierarchyOptions
	StaticRegistrationOptions
}

*

  • Call hierarchy options used during static or dynamic registration. *
  • @since 3.16.0

type CancelParams

type CancelParams struct {
	/**
	 * The request id to cancel.
	 */
	ID interface{} `json:"id"`
}

type ChangeAnnotation

type ChangeAnnotation struct {
	/**
	       * A human-readable string describing the actual change. The string
	  	 * is rendered prominent in the user interface.
	*/
	Label string `json:"label"`
	/**
	       * A flag which indicates that user confirmation is needed
	  	 * before applying the change.
	*/
	NeedsConfirmation bool `json:"needsConfirmation,omitempty"`
	/**
	 * A human-readable string which is rendered less prominent in
	 * the user interface.
	 */
	Description string `json:"description,omitempty"`
}

*

  • Additional information that describes document changes. *
  • @since 3.16.0

type ChangeAnnotationIdentifier

type ChangeAnnotationIdentifier = string

*

  • An identifier to refer to a change annotation stored with a workspace edit.

type ClientCapabilities

type ClientCapabilities struct {
	/**
	 * The workspace client capabilities
	 */
	Workspace Workspace2Gn `json:"workspace,omitempty"`
	/**
	 * Text document specific client capabilities.
	 */
	TextDocument TextDocumentClientCapabilities `json:"textDocument,omitempty"`
	/**
	 * Window specific client capabilities.
	 */
	Window struct {
		/**
		 * Whether client supports server initiated progress using the
		 * `window/workDoneProgress/create` request.
		 *
		 * Since 3.15.0
		 */
		WorkDoneProgress bool `json:"workDoneProgress,omitempty"`
		/**
		 * Capabilities specific to the showMessage request.
		 *
		 * @since 3.16.0
		 */
		ShowMessage ShowMessageRequestClientCapabilities `json:"showMessage,omitempty"`
		/**
		 * Capabilities specific to the showDocument request.
		 *
		 * @since 3.16.0
		 */
		ShowDocument ShowDocumentClientCapabilities `json:"showDocument,omitempty"`
	} `json:"window,omitempty"`
	/**
	 * General client capabilities.
	 *
	 * @since 3.16.0
	 */
	General GeneralClientCapabilities `json:"general,omitempty"`
	/**
	 * Experimental client capabilities.
	 */
	Experimental interface{} `json:"experimental,omitempty"`
}

type CodeAction

type CodeAction struct {
	/**
	 * A short, human-readable, title for this code action.
	 */
	Title string `json:"title"`
	/**
	 * The kind of the code action.
	 *
	 * Used to filter code actions.
	 */
	Kind CodeActionKind `json:"kind,omitempty"`
	/**
	 * The diagnostics that this code action resolves.
	 */
	Diagnostics []Diagnostic `json:"diagnostics,omitempty"`
	/**
	 * Marks this as a preferred action. Preferred actions are used by the `auto fix` command and can be targeted
	 * by keybindings.
	 *
	 * A quick fix should be marked preferred if it properly addresses the underlying error.
	 * A refactoring should be marked preferred if it is the most reasonable choice of actions to take.
	 *
	 * @since 3.15.0
	 */
	IsPreferred bool `json:"isPreferred,omitempty"`
	/**
	 * Marks that the code action cannot currently be applied.
	 *
	 * Clients should follow the following guidelines regarding disabled code actions:
	 *
	 *   - Disabled code actions are not shown in automatic [lightbulb](https://code.visualstudio.com/docs/editor/editingevolved#_code-action)
	 *     code action menu.
	 *
	 *   - Disabled actions are shown as faded out in the code action menu when the user request a more specific type
	 *     of code action, such as refactorings.
	 *
	 *   - If the user has a [keybinding](https://code.visualstudio.com/docs/editor/refactoring#_keybindings-for-code-actions)
	 *     that auto applies a code action and only a disabled code actions are returned, the client should show the user an
	 *     error message with `reason` in the editor.
	 *
	 * @since 3.16.0
	 */
	Disabled *struct {
		/**
		 * Human readable description of why the code action is currently disabled.
		 *
		 * This is displayed in the code actions UI.
		 */
		Reason string `json:"reason"`
	} `json:"disabled,omitempty"`
	/**
	 * The workspace edit this code action performs.
	 */
	Edit WorkspaceEdit `json:"edit,omitempty"`
	/**
	 * A command this code action executes. If a code action
	 * provides a edit and a command, first the edit is
	 * executed and then the command.
	 */
	Command *Command `json:"command,omitempty"`
	/**
	 * A data entry field that is preserved on a code action between
	 * a `textDocument/codeAction` and a `codeAction/resolve` request.
	 *
	 * @since 3.16.0
	 */
	Data interface{} `json:"data,omitempty"`
}

*

  • A code action represents a change that can be performed in code, e.g. to fix a problem or
  • to refactor code. *
  • A CodeAction must set either `edit` and/or a `command`. If both are supplied, the `edit` is applied first, then the `command` is executed.

type CodeActionClientCapabilities

type CodeActionClientCapabilities struct {
	/**
	 * Whether code action supports dynamic registration.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
	/**
	 * The client support code action literals of type `CodeAction` as a valid
	 * response of the `textDocument/codeAction` request. If the property is not
	 * set the request can only return `Command` literals.
	 *
	 * @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"`
	/**
	 * Whether code action supports the `isPreferred` property.
	 *
	 * @since 3.15.0
	 */
	IsPreferredSupport bool `json:"isPreferredSupport,omitempty"`
	/**
	 * Whether code action supports the `disabled` property.
	 *
	 * @since 3.16.0
	 */
	DisabledSupport bool `json:"disabledSupport,omitempty"`
	/**
	 * Whether code action supports the `data` property which is
	 * preserved between a `textDocument/codeAction` and a
	 * `codeAction/resolve` request.
	 *
	 * @since 3.16.0
	 */
	DataSupport bool `json:"dataSupport,omitempty"`
	/**
	 * Whether the client support resolving additional code action
	 * properties via a separate `codeAction/resolve` request.
	 *
	 * @since 3.16.0
	 */
	ResolveSupport struct {
		/**
		 * The properties that a client can resolve lazily.
		 */
		Properties []string `json:"properties"`
	} `json:"resolveSupport,omitempty"`
	/**
	 * Whether th client honors the change annotations in
	 * text edits and resource operations returned via the
	 * `CodeAction#edit` property by for example presenting
	 * the workspace edit in the user interface and asking
	 * for confirmation.
	 *
	 * @since 3.16.0
	 */
	HonorsChangeAnnotations bool `json:"honorsChangeAnnotations,omitempty"`
}

*

  • The Client Capabilities of a [CodeActionRequest](#CodeActionRequest).

type CodeActionContext

type CodeActionContext struct {
	/**
	 * An array of diagnostics known on the client side overlapping the range provided to the
	 * `textDocument/codeAction` request. They are provided so that the server knows which
	 * errors are currently presented to the user for the given range. There is no guarantee
	 * that these accurately reflect the error state of the resource. The primary parameter
	 * to compute code actions is the provided range.
	 */
	Diagnostics []Diagnostic `json:"diagnostics"`
	/**
	 * Requested kind of actions to return.
	 *
	 * Actions not of this kind are filtered out by the client before being shown. So servers
	 * can omit computing them.
	 */
	Only []CodeActionKind `json:"only,omitempty"`
}

*

  • Contains additional diagnostic information about the context in which
  • a [code action](#CodeActionProvider.provideCodeActions) is run.

type CodeActionKind

type CodeActionKind string

*

  • A set of predefined code action kinds

type CodeActionOptions

type CodeActionOptions struct {
	/**
	 * CodeActionKinds that this server may return.
	 *
	 * The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server
	 * may list out every specific kind they provide.
	 */
	CodeActionKinds []CodeActionKind `json:"codeActionKinds,omitempty"`
	/**
	 * The server provides support to resolve additional
	 * information for a code action.
	 *
	 * @since 3.16.0
	 */
	ResolveProvider bool `json:"resolveProvider,omitempty"`
	WorkDoneProgressOptions
}

*

  • Provider options for a [CodeActionRequest](#CodeActionRequest).

type CodeActionParams

type CodeActionParams struct {
	/**
	 * The document in which the command was invoked.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	/**
	 * The range for which the command was invoked.
	 */
	Range Range `json:"range"`
	/**
	 * Context carrying additional information.
	 */
	Context CodeActionContext `json:"context"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • The parameters of a [CodeActionRequest](#CodeActionRequest).

type CodeDescription

type CodeDescription struct {
	/**
	 * An URI to open with more information about the diagnostic error.
	 */
	Href URI `json:"href"`
}

*

  • Structure to capture a description for an error code. *
  • @since 3.16.0

type CodeLens

type CodeLens struct {
	/**
	 * The range in which this code lens is valid. Should only span a single line.
	 */
	Range Range `json:"range"`
	/**
	 * The command this code lens represents.
	 */
	Command Command `json:"command,omitempty"`
	/**
	 * A data entry field that is preserved on a code lens item between
	 * a [CodeLensRequest](#CodeLensRequest) and a [CodeLensResolveRequest]
	 * (#CodeLensResolveRequest)
	 */
	Data interface{} `json:"data,omitempty"`
}

*

  • A code lens represents a [command](#Command) that should be shown along with
  • source text, like the number of references, a way to run tests, etc. *
  • A code lens is _unresolved_ when no command is associated to it. For performance
  • reasons the creation of a code lens and resolving should be done to two stages.

type CodeLensClientCapabilities

type CodeLensClientCapabilities struct {
	/**
	 * Whether code lens supports dynamic registration.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

*

  • The client capabilities of a [CodeLensRequest](#CodeLensRequest).

type CodeLensOptions

type CodeLensOptions struct {
	/**
	 * Code lens has a resolve provider as well.
	 */
	ResolveProvider bool `json:"resolveProvider,omitempty"`
	WorkDoneProgressOptions
}

*

  • Code Lens provider options of a [CodeLensRequest](#CodeLensRequest).

type CodeLensParams

type CodeLensParams struct {
	/**
	 * The document to request code lens for.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • The parameters of a [CodeLensRequest](#CodeLensRequest).

type CodeLensWorkspaceClientCapabilities

type CodeLensWorkspaceClientCapabilities struct {
	/**
	 * Whether the client implementation supports a refresh request sent from the
	 * server to the client.
	 *
	 * Note that this event is global and will force the client to refresh all
	 * code lenses currently shown. It should be used with absolute care and is
	 * useful for situation where a server for example detect a project wide
	 * change that requires such a calculation.
	 */
	RefreshSupport bool `json:"refreshSupport,omitempty"`
}

*

  • @since 3.16.0

type Color

type Color struct {
	/**
	 * The red component of this color in the range [0-1].
	 */
	Red Decimal `json:"red"`
	/**
	 * The green component of this color in the range [0-1].
	 */
	Green Decimal `json:"green"`
	/**
	 * The blue component of this color in the range [0-1].
	 */
	Blue Decimal `json:"blue"`
	/**
	 * The alpha component of this color in the range [0-1].
	 */
	Alpha Decimal `json:"alpha"`
}

*

  • Represents a color in RGBA space.

type ColorInformation

type ColorInformation struct {
	/**
	 * The range in the document where this color appears.
	 */
	Range Range `json:"range"`
	/**
	 * The actual color value for this color range.
	 */
	Color Color `json:"color"`
}

*

  • Represents a color range from a document.

type ColorPresentation

type ColorPresentation struct {
	/**
	 * The label of this color presentation. It will be shown on the color
	 * picker header. By default this is also the text that is inserted when selecting
	 * this color presentation.
	 */
	Label string `json:"label"`
	/**
	 * An [edit](#TextEdit) which is applied to a document when selecting
	 * this presentation for the color.  When `falsy` the [label](#ColorPresentation.label)
	 * is used.
	 */
	TextEdit TextEdit `json:"textEdit,omitempty"`
	/**
	 * An optional array of additional [text edits](#TextEdit) that are applied when
	 * selecting this color presentation. Edits must not overlap with the main [edit](#ColorPresentation.textEdit) nor with themselves.
	 */
	AdditionalTextEdits []TextEdit `json:"additionalTextEdits,omitempty"`
}

type ColorPresentationParams

type ColorPresentationParams struct {
	/**
	 * The text document.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	/**
	 * The color to request presentations for.
	 */
	Color Color `json:"color"`
	/**
	 * The range where the color would be inserted. Serves as a context.
	 */
	Range Range `json:"range"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • Parameters for a [ColorPresentationRequest](#ColorPresentationRequest).

type Command

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 []json.RawMessage `json:"arguments,omitempty"`
}

*

  • Represents a reference to a command. Provides a title which
  • will be used to represent a command in the UI and, optionally,
  • an array of arguments which will be passed to the command handler
  • function when invoked.

type CompletionClientCapabilities

type CompletionClientCapabilities 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"`

		/**
		 * Client supports the tag property on a completion item. Clients supporting
		 * tags have to handle unknown tags gracefully. Clients especially need to
		 * preserve unknown tags when sending a completion item back to the server in
		 * a resolve call.
		 *
		 * @since 3.15.0
		 */
		TagSupport struct {
			/**
			 * The tags supported by the client.
			 */
			ValueSet []CompletionItemTag `json:"valueSet"`
		} `json:"tagSupport,omitempty"`
		/**
		 * Client support insert replace edit to control different behavior if a
		 * completion item is inserted in the text or should replace text.
		 *
		 * @since 3.16.0
		 */
		InsertReplaceSupport bool `json:"insertReplaceSupport,omitempty"`
		/**
		 * Indicates which properties a client can resolve lazily on a completion
		 * item. Before version 3.16.0 only the predefined properties `documentation`
		 * and `details` could be resolved lazily.
		 *
		 * @since 3.16.0
		 */
		ResolveSupport struct {
			/**
			 * The properties that a client can resolve lazily.
			 */
			Properties []string `json:"properties"`
		} `json:"resolveSupport,omitempty"`
		/**
		 * The client supports the `insertTextMode` property on
		 * a completion item to override the whitespace handling mode
		 * as defined by the client (see `insertTextMode`).
		 *
		 * @since 3.16.0
		 */
		InsertTextModeSupport struct {
			ValueSet []InsertTextMode `json:"valueSet"`
		} `json:"insertTextModeSupport,omitempty"`
		/**
		 * The client has support for completion item label
		 * details (see also `CompletionItemLabelDetails`).
		 *
		 * @since 3.17.0 - proposed state
		 */
		LabelDetailsSupport bool `json:"labelDetailsSupport,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"`
	/**
	 * Defines how the client handles whitespace and indentation
	 * when accepting a completion item that uses multi line
	 * text in either `insertText` or `textEdit`.
	 *
	 * @since 3.17.0
	 */
	InsertTextMode InsertTextMode `json:"insertTextMode,omitempty"`
	/**
	 * The client supports to send additional context information for a
	 * `textDocument/completion` request.
	 */
	ContextSupport bool `json:"contextSupport,omitempty"`
}

*

  • Completion client capabilities

type CompletionContext

type CompletionContext struct {
	/**
	 * How the completion was triggered.
	 */
	TriggerKind CompletionTriggerKind `json:"triggerKind"`
	/**
	 * The trigger character (a single character) that has trigger code complete.
	 * Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter`
	 */
	TriggerCharacter string `json:"triggerCharacter,omitempty"`
}

*

  • Contains additional information about the context in which a completion request is triggered.

type CompletionItem

type CompletionItem struct {
	/**
	 * The label of this completion item.
	 *
	 * The label property is also by default the text that
	 * is inserted when selecting this completion.
	 *
	 * If label details are provided the label itself should
	 * be an unqualified name of the completion item.
	 */
	Label string `json:"label"`
	/**
	 * Additional details for the label
	 *
	 * @since 3.17.0 - proposed state
	 */
	LabelDetails CompletionItemLabelDetails `json:"labelDetails,omitempty"`
	/**
	 * The kind of this completion item. Based of the kind
	 * an icon is chosen by the editor.
	 */
	Kind CompletionItemKind `json:"kind,omitempty"`
	/**
	 * Tags for this completion item.
	 *
	 * @since 3.15.0
	 */
	Tags []CompletionItemTag `json:"tags,omitempty"`
	/**
	 * A human-readable string with additional information
	 * about this item, like type or symbol information.
	 */
	Detail string `json:"detail,omitempty"`
	/**
	 * A human-readable string that represents a doc-comment.
	 */
	Documentation interface{} `json:"documentation,omitempty"`
	/**
	 * Indicates if this item is deprecated.
	 * @deprecated Use `tags` instead.
	 */
	Deprecated bool `json:"deprecated,omitempty"`
	/**
	 * Select this item when showing.
	 *
	 * *Note* that only one completion item can be selected and that the
	 * tool / client decides which item that is. The rule is that the *first*
	 * item of those that match best is selected.
	 */
	Preselect bool `json:"preselect,omitempty"`
	/**
	 * A string that should be used when comparing this item
	 * with other items. When `falsy` the [label](#CompletionItem.label)
	 * is used.
	 */
	SortText string `json:"sortText,omitempty"`
	/**
	 * A string that should be used when filtering a set of
	 * completion items. When `falsy` the [label](#CompletionItem.label)
	 * is used.
	 */
	FilterText string `json:"filterText,omitempty"`
	/**
	 * A string that should be inserted into a document when selecting
	 * this completion. When `falsy` the [label](#CompletionItem.label)
	 * is used.
	 *
	 * The `insertText` is subject to interpretation by the client side.
	 * Some tools might not take the string literally. For example
	 * VS Code when code complete is requested in this example `con<cursor position>`
	 * and a completion item with an `insertText` of `console` is provided it
	 * will only insert `sole`. Therefore it is recommended to use `textEdit` instead
	 * since it avoids additional client side interpretation.
	 */
	InsertText string `json:"insertText,omitempty"`
	/**
	 * The format of the insert text. The format applies to both the `insertText` property
	 * and the `newText` property of a provided `textEdit`. If omitted defaults to
	 * `InsertTextFormat.PlainText`.
	 */
	InsertTextFormat InsertTextFormat `json:"insertTextFormat,omitempty"`
	/**
	 * How whitespace and indentation is handled during completion
	 * item insertion. If ignored the clients default value depends on
	 * the `textDocument.completion.insertTextMode` client capability.
	 *
	 * @since 3.16.0
	 */
	InsertTextMode InsertTextMode `json:"insertTextMode,omitempty"`
	/**
	 * An [edit](#TextEdit) which is applied to a document when selecting
	 * this completion. When an edit is provided the value of
	 * [insertText](#CompletionItem.insertText) is ignored.
	 *
	 * Most editors support two different operation when accepting a completion item. One is to insert a
	 * completion text and the other is to replace an existing text with a completion text. Since this can
	 * usually not predetermined by a server it can report both ranges. Clients need to signal support for
	 * `InsertReplaceEdits` via the `textDocument.completion.insertReplaceSupport` client capability
	 * property.
	 *
	 * *Note 1:* The text edit's range as well as both ranges from a insert replace edit must be a
	 * [single line] and they must contain the position at which completion has been requested.
	 * *Note 2:* If an `InsertReplaceEdit` is returned the edit's insert range must be a prefix of
	 * the edit's replace range, that means it must be contained and starting at the same position.
	 *
	 * @since 3.16.0 additional type `InsertReplaceEdit`
	 */
	TextEdit *TextEdit `json:"textEdit,omitempty"`
	/**
	 * An optional array of additional [text edits](#TextEdit) that are applied when
	 * selecting this completion. Edits must not overlap (including the same insert position)
	 * with the main [edit](#CompletionItem.textEdit) nor with themselves.
	 *
	 * Additional text edits should be used to change text unrelated to the current cursor position
	 * (for example adding an import statement at the top of the file if the completion item will
	 * insert an unqualified type).
	 */
	AdditionalTextEdits []TextEdit `json:"additionalTextEdits,omitempty"`
	/**
	 * An optional set of characters that when pressed while this completion is active will accept it first and
	 * then type that character. *Note* that all commit characters should have `length=1` and that superfluous
	 * characters will be ignored.
	 */
	CommitCharacters []string `json:"commitCharacters,omitempty"`
	/**
	 * An optional [command](#Command) that is executed *after* inserting this completion. *Note* that
	 * additional modifications to the current document should be described with the
	 * [additionalTextEdits](#CompletionItem.additionalTextEdits)-property.
	 */
	Command *Command `json:"command,omitempty"`
	/**
	 * A data entry field that is preserved on a completion item between a
	 * [CompletionRequest](#CompletionRequest) and a [CompletionResolveRequest](#CompletionResolveRequest).
	 */
	Data interface{} `json:"data,omitempty"`
}

*

  • A completion item represents a text snippet that is
  • proposed to complete text that is being typed.

type CompletionItemKind

type CompletionItemKind float64

*

  • The kind of a completion entry.

type CompletionItemLabelDetails

type CompletionItemLabelDetails struct {
	/**
	 * The parameters without the return type.
	 */
	Parameters string `json:"parameters,omitempty"`
	/**
	 * The fully qualified name, like package name or file path.
	 */
	Qualifier string `json:"qualifier,omitempty"`
	/**
	 * The return-type of a function or type of a property/variable.
	 */
	Type string `json:"type,omitempty"`
}

*

  • Additional details for a completion item label. *
  • @since 3.17.0 - proposed state

type CompletionItemTag

type CompletionItemTag float64

*

  • Completion item tags are extra annotations that tweak the rendering of a completion
  • item. *
  • @since 3.15.0

type CompletionList

type CompletionList struct {
	/**
	 * This list it not complete. Further typing results in recomputing this list.
	 */
	IsIncomplete bool `json:"isIncomplete"`
	/**
	 * The completion items.
	 */
	Items []CompletionItem `json:"items"`
}

*

  • Represents a collection of [completion items](#CompletionItem) to be presented
  • in the editor.

type CompletionOptions

type CompletionOptions struct {
	/**
	 * Most tools trigger completion request automatically without explicitly requesting
	 * it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
	 * starts to type an identifier. For example if the user types `c` in a JavaScript file
	 * code complete will automatically pop up present `console` besides others as a
	 * completion item. Characters that make up identifiers don't need to be listed here.
	 *
	 * If code complete should automatically be trigger on characters not being valid inside
	 * an identifier (for example `.` in JavaScript) list them in `triggerCharacters`.
	 */
	TriggerCharacters []string `json:"triggerCharacters,omitempty"`
	/**
	 * The list of all possible characters that commit a completion. This field can be used
	 * if clients don't support individual commit characters per completion item. See
	 * `ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport`
	 *
	 * If a server provides both `allCommitCharacters` and commit characters on an individual
	 * completion item the ones on the completion item win.
	 *
	 * @since 3.2.0
	 */
	AllCommitCharacters []string `json:"allCommitCharacters,omitempty"`
	/**
	 * The server provides support to resolve additional
	 * information for a completion item.
	 */
	ResolveProvider bool `json:"resolveProvider,omitempty"`
	/**
	 * The server supports the following `CompletionItem` specific
	 * capabilities.
	 *
	 * @since 3.17.0 - proposed state
	 */
	CompletionItem struct {
		/**
		 * The server has support for completion item label
		 * details (see also `CompletionItemLabelDetails`) when
		 * receiving a completion item in a resolve call.
		 *
		 * @since 3.17.0 - proposed state
		 */
		LabelDetailsSupport bool `json:"labelDetailsSupport,omitempty"`
	} `json:"completionItem,omitempty"`
	WorkDoneProgressOptions
}

*

  • Completion options.

type CompletionParams

type CompletionParams struct {
	/**
	 * The completion context. This is only available it the client specifies
	 * to send this using the client capability `textDocument.completion.contextSupport === true`
	 */
	Context CompletionContext `json:"context,omitempty"`
	TextDocumentPositionParams
	WorkDoneProgressParams
	PartialResultParams
}

*

  • Completion parameters

type CompletionTriggerKind

type CompletionTriggerKind float64

*

  • How a completion was triggered

type ConfigurationClientCapabilities

type ConfigurationClientCapabilities struct {
	/**
	 * The workspace client capabilities
	 */
	Workspace Workspace3Gn `json:"workspace,omitempty"`
}

type ConfigurationItem

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 ConfigurationParams

type ConfigurationParams struct {
	Items []ConfigurationItem `json:"items"`
}

*

  • The parameters of a configuration request.

type CreateFile

type CreateFile struct {
	/**
	 * A create
	 */
	Kind string `json:"kind"`
	/**
	 * The resource to create.
	 */
	URI DocumentURI `json:"uri"`
	/**
	 * Additional options
	 */
	Options CreateFileOptions `json:"options,omitempty"`
	ResourceOperation
}

*

  • Create file operation.

type CreateFileOptions

type CreateFileOptions struct {
	/**
	 * Overwrite existing file. Overwrite wins over `ignoreIfExists`
	 */
	Overwrite bool `json:"overwrite,omitempty"`
	/**
	 * Ignore if exists.
	 */
	IgnoreIfExists bool `json:"ignoreIfExists,omitempty"`
}

*

  • Options to create a file.

type CreateFilesParams

type CreateFilesParams struct {
	/**
	 * An array of all files/folders created in this operation.
	 */
	Files []FileCreate `json:"files"`
}

*

  • The parameters sent in file create requests/notifications. *
  • @since 3.16.0

type Decimal

type Decimal = float64

*

  • Defines a decimal number. Since decimal numbers are very
  • rare in the language server specification we denote the
  • exact range with every decimal using the mathematics
  • interval notations (e.g. [0, 1] denotes all decimals d with
  • 0 <= d <= 1.

type Declaration

type Declaration = []Location /*Location | Location[]*/

*

  • The declaration of a symbol representation as one or many [locations](#Location).

type DeclarationClientCapabilities

type DeclarationClientCapabilities struct {
	/**
	 * Whether declaration supports dynamic registration. If this is set to `true`
	 * the client supports the new `DeclarationRegistrationOptions` return value
	 * for the corresponding server capability as well.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
	/**
	 * The client supports additional metadata in the form of declaration links.
	 */
	LinkSupport bool `json:"linkSupport,omitempty"`
}

*

  • @since 3.14.0
type DeclarationLink = LocationLink

*

  • Information about where a symbol is declared. *
  • Provides additional metadata over normal [location](#Location) declarations, including the range of
  • the declaring symbol. *
  • Servers should prefer returning `DeclarationLink` over `Declaration` if supported
  • by the client.

type DeclarationOptions

type DeclarationOptions struct {
	WorkDoneProgressOptions
}

type Definition

type Definition = []Location /*Location | Location[]*/

*

  • The definition of a symbol represented as one or many [locations](#Location).
  • For most programming languages there is only one location at which a symbol is
  • defined. *
  • Servers should prefer returning `DefinitionLink` over `Definition` if supported
  • by the client.

type DefinitionClientCapabilities

type DefinitionClientCapabilities struct {
	/**
	 * Whether definition supports dynamic registration.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
	/**
	 * The client supports additional metadata in the form of definition links.
	 *
	 * @since 3.14.0
	 */
	LinkSupport bool `json:"linkSupport,omitempty"`
}

*

  • Client Capabilities for a [DefinitionRequest](#DefinitionRequest).
type DefinitionLink = LocationLink

*

  • Information about where a symbol is defined. *
  • Provides additional metadata over normal [location](#Location) definitions, including the range of
  • the defining symbol

type DefinitionOptions

type DefinitionOptions struct {
	WorkDoneProgressOptions
}

*

  • Server Capabilities for a [DefinitionRequest](#DefinitionRequest).

type DefinitionParams

*

  • Parameters for a [DefinitionRequest](#DefinitionRequest).

type DeleteFile

type DeleteFile struct {
	/**
	 * A delete
	 */
	Kind string `json:"kind"`
	/**
	 * The file to delete.
	 */
	URI DocumentURI `json:"uri"`
	/**
	 * Delete options.
	 */
	Options DeleteFileOptions `json:"options,omitempty"`
	ResourceOperation
}

*

  • Delete file operation

type DeleteFileOptions

type DeleteFileOptions struct {
	/**
	 * Delete the content recursively if a folder is denoted.
	 */
	Recursive bool `json:"recursive,omitempty"`
	/**
	 * Ignore the operation if the file doesn't exist.
	 */
	IgnoreIfNotExists bool `json:"ignoreIfNotExists,omitempty"`
}

*

  • Delete file options

type DeleteFilesParams

type DeleteFilesParams struct {
	/**
	 * An array of all files/folders deleted in this operation.
	 */
	Files []FileDelete `json:"files"`
}

*

  • The parameters sent in file delete requests/notifications. *
  • @since 3.16.0

type Diagnostic

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 usually appear in the user interface.
	 */
	Code interface{} `json:"code,omitempty"`
	/**
	 * An optional property to describe the error code.
	 *
	 * @since 3.16.0
	 */
	CodeDescription *CodeDescription `json:"codeDescription,omitempty"`
	/**
	 * A human-readable string describing the source of this
	 * diagnostic, e.g. 'typescript' or 'super lint'. It usually
	 * appears in the user interface.
	 */
	Source string `json:"source,omitempty"`
	/**
	 * The diagnostic's message. It usually appears in the user interface
	 */
	Message string `json:"message"`
	/**
	 * Additional metadata about the diagnostic.
	 *
	 * @since 3.15.0
	 */
	Tags []DiagnosticTag `json:"tags,omitempty"`
	/**
	 * An array of related diagnostic information, e.g. when symbol-names within
	 * a scope collide all definitions can be marked via this property.
	 */
	RelatedInformation []DiagnosticRelatedInformation `json:"relatedInformation,omitempty"`
	/**
	 * A data entry field that is preserved between a `textDocument/publishDiagnostics`
	 * notification and `textDocument/codeAction` request.
	 *
	 * @since 3.16.0
	 */
	Data interface{} `json:"data,omitempty"`
}

*

  • Represents a diagnostic, such as a compiler error or warning. Diagnostic objects
  • are only valid in the scope of a resource.

type DiagnosticRelatedInformation

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"`
}

*

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

type DiagnosticSeverity float64

*

  • The diagnostic's severity.

type DiagnosticTag

type DiagnosticTag float64

*

  • The diagnostic tags. *
  • @since 3.15.0

type DidChangeConfigurationClientCapabilities

type DidChangeConfigurationClientCapabilities struct {
	/**
	 * Did change configuration notification supports dynamic registration.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

type DidChangeConfigurationParams

type DidChangeConfigurationParams struct {
	/**
	 * The actual changed settings
	 */
	Settings interface{} `json:"settings"`
}

*

  • The parameters of a change configuration notification.

type DidChangeTextDocumentParams

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 (at array index 0) and
	 * c2 (at array index 1) for a document in state S then c1 moves the document from
	 * S to S' and c2 from S' to S”. So c1 is computed on the state S and c2 is computed
	 * on the state S'.
	 *
	 * To mirror the content of a document using change events use the following approach:
	 * - start with the same initial content
	 * - apply the 'textDocument/didChange' notifications in the order you receive them.
	 * - apply the `TextDocumentContentChangeEvent`s in a single notification in the order
	 *   you receive them.
	 */
	ContentChanges []TextDocumentContentChangeEvent `json:"contentChanges"`
}

*

  • The change text document notification's parameters.

type DidChangeWatchedFilesClientCapabilities

type DidChangeWatchedFilesClientCapabilities struct {
	/**
	 * Did change watched files notification supports dynamic registration. Please note
	 * that the current protocol doesn't support static configuration for file changes
	 * from the server side.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

type DidChangeWatchedFilesParams

type DidChangeWatchedFilesParams struct {
	/**
	 * The actual file events.
	 */
	Changes []FileEvent `json:"changes"`
}

*

  • The watched files change notification's parameters.

type DidChangeWatchedFilesRegistrationOptions

type DidChangeWatchedFilesRegistrationOptions struct {
	/**
	 * The watchers to register.
	 */
	Watchers []FileSystemWatcher `json:"watchers"`
}

*

  • Describe options to be used when registered for text document change events.

type DidChangeWorkspaceFoldersParams

type DidChangeWorkspaceFoldersParams struct {
	/**
	 * The actual workspace folder change event.
	 */
	Event WorkspaceFoldersChangeEvent `json:"event"`
}

*

  • The parameters of a `workspace/didChangeWorkspaceFolders` notification.

type DidCloseTextDocumentParams

type DidCloseTextDocumentParams struct {
	/**
	 * The document that was closed.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
}

*

  • The parameters send in a close text document notification

type DidOpenTextDocumentParams

type DidOpenTextDocumentParams struct {
	/**
	 * The document that was opened.
	 */
	TextDocument TextDocumentItem `json:"textDocument"`
}

*

  • The parameters send in a open text document notification

type DidSaveTextDocumentParams

type DidSaveTextDocumentParams struct {
	/**
	 * The document that was closed.
	 */
	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"`
}

*

  • The parameters send in a save text document notification

type DocumentColorClientCapabilities

type DocumentColorClientCapabilities struct {
	/**
	 * Whether implementation supports dynamic registration. If this is set to `true`
	 * the client supports the new `DocumentColorRegistrationOptions` return value
	 * for the corresponding server capability as well.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

type DocumentColorOptions

type DocumentColorOptions struct {
	WorkDoneProgressOptions
}

type DocumentColorParams

type DocumentColorParams struct {
	/**
	 * The text document.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • Parameters for a [DocumentColorRequest](#DocumentColorRequest).

type DocumentDiagnosticParams

type DocumentDiagnosticParams struct {
	/**
	 * The text document.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	/**
	 * The additional identifier  provided during registration.
	 */
	Identifier string `json:"identifier,omitempty"`
	/**
	 * The result id of a previous response if provided.
	 */
	PreviousResultID string `json:"previousResultId,omitempty"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • Parameters of the document diagnostic request. *
  • @since 3.17.0 - proposed state

type DocumentDiagnosticReport

type DocumentDiagnosticReport = interface{} /*RelatedFullDocumentDiagnosticReport | RelatedUnchangedDocumentDiagnosticReport*/

*

  • The result of a document diagnostic pull request. A report can
  • either be a full report containing all diagnostics for the
  • requested document or a unchanged report indicating that nothing
  • has changed in terms of diagnostics in comparison to the last
  • pull request. *
  • @since 3.17.0 - proposed state

type DocumentFilter

type DocumentFilter = struct {
	/** A language id, like `typescript`. */
	Language string `json:"language"`
	/** 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 filter denotes a document by different properties like
  • the [language](#TextDocument.languageId), the [scheme](#Uri.scheme) of
  • its resource, or a glob-pattern that is applied to the path(#TextDocument.fileName). *
  • Glob patterns can have the following syntax:
  • - `*` to match one or more characters in a path segment
  • - `?` to match on one character in a path segment
  • - `**` to match any number of path segments, including none
  • - `{}` to group sub patterns into an OR expression. (e.g. `**​/*.{ts,js}` matches all TypeScript and JavaScript files)
  • - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
  • - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`) *
  • @sample A language filter that applies to typescript files on disk: `{ language: 'typescript', scheme: 'file' }`
  • @sample A language filter that applies to all package.json paths: `{ language: 'json', pattern: '**package.json' }`

type DocumentFormattingClientCapabilities

type DocumentFormattingClientCapabilities struct {
	/**
	 * Whether formatting supports dynamic registration.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

*

  • Client capabilities of a [DocumentFormattingRequest](#DocumentFormattingRequest).

type DocumentFormattingOptions

type DocumentFormattingOptions struct {
	WorkDoneProgressOptions
}

*

  • Provider options for a [DocumentFormattingRequest](#DocumentFormattingRequest).

type DocumentFormattingParams

type DocumentFormattingParams struct {
	/**
	 * The document to format.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	/**
	 * The format options
	 */
	Options FormattingOptions `json:"options"`
	WorkDoneProgressParams
}

*

  • The parameters of a [DocumentFormattingRequest](#DocumentFormattingRequest).

type DocumentHighlight

type DocumentHighlight struct {
	/**
	 * The range this highlight applies to.
	 */
	Range Range `json:"range"`
	/**
	 * The highlight kind, default is [text](#DocumentHighlightKind.Text).
	 */
	Kind DocumentHighlightKind `json:"kind,omitempty"`
}

*

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

type DocumentHighlightClientCapabilities

type DocumentHighlightClientCapabilities struct {
	/**
	 * Whether document highlight supports dynamic registration.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

*

  • Client Capabilities for a [DocumentHighlightRequest](#DocumentHighlightRequest).

type DocumentHighlightKind

type DocumentHighlightKind float64

*

  • A document highlight kind.

type DocumentHighlightOptions

type DocumentHighlightOptions struct {
	WorkDoneProgressOptions
}

*

  • Provider options for a [DocumentHighlightRequest](#DocumentHighlightRequest).

type DocumentHighlightParams

*

  • Parameters for a [DocumentHighlightRequest](#DocumentHighlightRequest).
type DocumentLink struct {
	/**
	 * The range this link applies to.
	 */
	Range Range `json:"range"`
	/**
	 * The uri this link points to.
	 */
	Target string `json:"target,omitempty"`
	/**
	 * The tooltip text when you hover over this link.
	 *
	 * If a tooltip is provided, is will be displayed in a string that includes instructions on how to
	 * trigger the link, such as `{0} (ctrl + click)`. The specific instructions vary depending on OS,
	 * user settings, and localization.
	 *
	 * @since 3.15.0
	 */
	Tooltip string `json:"tooltip,omitempty"`
	/**
	 * A data entry field that is preserved on a document link between a
	 * DocumentLinkRequest and a DocumentLinkResolveRequest.
	 */
	Data interface{} `json:"data,omitempty"`
}

*

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

type DocumentLinkClientCapabilities

type DocumentLinkClientCapabilities struct {
	/**
	 * Whether document link supports dynamic registration.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
	/**
	 * Whether the client support the `tooltip` property on `DocumentLink`.
	 *
	 * @since 3.15.0
	 */
	TooltipSupport bool `json:"tooltipSupport,omitempty"`
}

*

  • The client capabilities of a [DocumentLinkRequest](#DocumentLinkRequest).

type DocumentLinkOptions

type DocumentLinkOptions struct {
	/**
	 * Document links have a resolve provider as well.
	 */
	ResolveProvider bool `json:"resolveProvider,omitempty"`
	WorkDoneProgressOptions
}

*

  • Provider options for a [DocumentLinkRequest](#DocumentLinkRequest).

type DocumentLinkParams

type DocumentLinkParams struct {
	/**
	 * The document to provide document links for.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • The parameters of a [DocumentLinkRequest](#DocumentLinkRequest).

type DocumentOnTypeFormattingClientCapabilities

type DocumentOnTypeFormattingClientCapabilities struct {
	/**
	 * Whether on type formatting supports dynamic registration.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

*

  • Client capabilities of a [DocumentOnTypeFormattingRequest](#DocumentOnTypeFormattingRequest).

type DocumentOnTypeFormattingOptions

type DocumentOnTypeFormattingOptions struct {
	/**
	 * A character on which formatting should be triggered, like `}`.
	 */
	FirstTriggerCharacter string `json:"firstTriggerCharacter"`
	/**
	 * More trigger characters.
	 */
	MoreTriggerCharacter []string `json:"moreTriggerCharacter,omitempty"`
}

*

  • Provider options for a [DocumentOnTypeFormattingRequest](#DocumentOnTypeFormattingRequest).

type DocumentOnTypeFormattingParams

type DocumentOnTypeFormattingParams struct {
	/**
	 * The document to format.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	/**
	 * The position at which this request was send.
	 */
	Position Position `json:"position"`
	/**
	 * The character that has been typed.
	 */
	Ch string `json:"ch"`
	/**
	 * The format options.
	 */
	Options FormattingOptions `json:"options"`
}

*

  • The parameters of a [DocumentOnTypeFormattingRequest](#DocumentOnTypeFormattingRequest).

type DocumentRangeFormattingClientCapabilities

type DocumentRangeFormattingClientCapabilities struct {
	/**
	 * Whether range formatting supports dynamic registration.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

*

  • Client capabilities of a [DocumentRangeFormattingRequest](#DocumentRangeFormattingRequest).

type DocumentRangeFormattingOptions

type DocumentRangeFormattingOptions struct {
	WorkDoneProgressOptions
}

*

  • Provider options for a [DocumentRangeFormattingRequest](#DocumentRangeFormattingRequest).

type DocumentRangeFormattingParams

type DocumentRangeFormattingParams struct {
	/**
	 * The document to format.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	/**
	 * The range to format
	 */
	Range Range `json:"range"`
	/**
	 * The format options
	 */
	Options FormattingOptions `json:"options"`
	WorkDoneProgressParams
}

*

  • The parameters of a [DocumentRangeFormattingRequest](#DocumentRangeFormattingRequest).

type DocumentSelector

type DocumentSelector = []string /*string | DocumentFilter*/

*

  • A document selector is the combination of one or many document filters. *
  • @sample `let sel:DocumentSelector = [{ language: 'typescript' }, { language: 'json', pattern: '**∕tsconfig.json' }]`; *
  • The use of a string as a document filter is deprecated @since 3.16.0.

type DocumentSymbol

type DocumentSymbol struct {
	/**
	 * The name of this symbol. Will be displayed in the user interface and therefore must not be
	 * an empty string or a string only consisting of white spaces.
	 */
	Name string `json:"name"`
	/**
	 * More detail for this symbol, e.g the signature of a function.
	 */
	Detail string `json:"detail,omitempty"`
	/**
	 * The kind of this symbol.
	 */
	Kind SymbolKind `json:"kind"`
	/**
	 * Tags for this completion item.
	 *
	 * @since 3.16.0
	 */
	Tags []SymbolTag `json:"tags,omitempty"`
	/**
	 * Indicates if this symbol is deprecated.
	 *
	 * @deprecated Use tags instead
	 */
	Deprecated bool `json:"deprecated,omitempty"`
	/**
	 * The range enclosing this symbol not including leading/trailing whitespace but everything else
	 * like comments. This information is typically used to determine if the the clients cursor is
	 * inside the symbol to reveal in the symbol in the UI.
	 */
	Range Range `json:"range"`
	/**
	 * The range that should be selected and revealed when this symbol is being picked, e.g the name of a function.
	 * Must be contained by the the `range`.
	 */
	SelectionRange Range `json:"selectionRange"`
	/**
	 * Children of this symbol, e.g. properties of a class.
	 */
	Children []DocumentSymbol `json:"children,omitempty"`
}

*

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

type DocumentSymbolClientCapabilities

type DocumentSymbolClientCapabilities 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"`
	/**
	 * The client supports tags on `SymbolInformation`. Tags are supported on
	 * `DocumentSymbol` if `hierarchicalDocumentSymbolSupport` is set to true.
	 * Clients supporting tags have to handle unknown tags gracefully.
	 *
	 * @since 3.16.0
	 */
	TagSupport struct {
		/**
		 * The tags supported by the client.
		 */
		ValueSet []SymbolTag `json:"valueSet"`
	} `json:"tagSupport,omitempty"`
	/**
	 * The client supports an additional label presented in the UI when
	 * registering a document symbol provider.
	 *
	 * @since 3.16.0
	 */
	LabelSupport bool `json:"labelSupport,omitempty"`
}

*

  • Client Capabilities for a [DocumentSymbolRequest](#DocumentSymbolRequest).

type DocumentSymbolOptions

type DocumentSymbolOptions struct {
	/**
	 * A human-readable string that is shown when multiple outlines trees
	 * are shown for the same document.
	 *
	 * @since 3.16.0
	 */
	Label string `json:"label,omitempty"`
	WorkDoneProgressOptions
}

*

  • Provider options for a [DocumentSymbolRequest](#DocumentSymbolRequest).

type DocumentSymbolParams

type DocumentSymbolParams struct {
	/**
	 * The text document.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • Parameters for a [DocumentSymbolRequest](#DocumentSymbolRequest).

type DocumentURI

type DocumentURI string

*

  • A tagging type for string properties that are actually document URIs.

type ExecuteCommandClientCapabilities

type ExecuteCommandClientCapabilities struct {
	/**
	 * Execute command supports dynamic registration.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

*

  • The client capabilities of a [ExecuteCommandRequest](#ExecuteCommandRequest).

type ExecuteCommandOptions

type ExecuteCommandOptions struct {
	/**
	 * The commands to be executed on the server
	 */
	Commands []string `json:"commands"`
	WorkDoneProgressOptions
}

*

  • The server capabilities of a [ExecuteCommandRequest](#ExecuteCommandRequest).

type ExecuteCommandParams

type ExecuteCommandParams struct {
	/**
	 * The identifier of the actual command handler.
	 */
	Command string `json:"command"`
	/**
	 * Arguments that the command should be invoked with.
	 */
	Arguments []json.RawMessage `json:"arguments,omitempty"`
	WorkDoneProgressParams
}

*

  • The parameters of a [ExecuteCommandRequest](#ExecuteCommandRequest).

type ExpClientCapabilities

type ExpClientCapabilities map[string]interface{}

func ExperimentalClientCapabilities

func ExperimentalClientCapabilities(input interface{}) ExpClientCapabilities

func (ExpClientCapabilities) ShowReferencesCommandId

func (cc ExpClientCapabilities) ShowReferencesCommandId() (string, bool)

func (ExpClientCapabilities) TelemetryVersion

func (cc ExpClientCapabilities) TelemetryVersion() (int, bool)

type ExperimentalServerCapabilities

type ExperimentalServerCapabilities struct {
	ReferenceCountCodeLens bool `json:"referenceCountCodeLens"`
}

type FailureHandlingKind

type FailureHandlingKind string

type FileChangeType

type FileChangeType float64

*

  • The file event type

type FileCreate

type FileCreate struct {
	/**
	 * A file:// URI for the location of the file/folder being created.
	 */
	URI string `json:"uri"`
}

*

  • Represents information on a file/folder create. *
  • @since 3.16.0

type FileDelete

type FileDelete struct {
	/**
	 * A file:// URI for the location of the file/folder being deleted.
	 */
	URI string `json:"uri"`
}

*

  • Represents information on a file/folder delete. *
  • @since 3.16.0

type FileEvent

type FileEvent struct {
	/**
	 * The file's uri.
	 */
	URI DocumentURI `json:"uri"`
	/**
	 * The change type.
	 */
	Type FileChangeType `json:"type"`
}

*

  • An event describing a file change.

type FileOperationClientCapabilities

type FileOperationClientCapabilities struct {
	/**
	 * Whether the client supports dynamic registration for file requests/notifications.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
	/**
	 * The client has support for sending didCreateFiles notifications.
	 */
	DidCreate bool `json:"didCreate,omitempty"`
	/**
	 * The client has support for willCreateFiles requests.
	 */
	WillCreate bool `json:"willCreate,omitempty"`
	/**
	 * The client has support for sending didRenameFiles notifications.
	 */
	DidRename bool `json:"didRename,omitempty"`
	/**
	 * The client has support for willRenameFiles requests.
	 */
	WillRename bool `json:"willRename,omitempty"`
	/**
	 * The client has support for sending didDeleteFiles notifications.
	 */
	DidDelete bool `json:"didDelete,omitempty"`
	/**
	 * The client has support for willDeleteFiles requests.
	 */
	WillDelete bool `json:"willDelete,omitempty"`
}

*

  • Capabilities relating to events from file operations by the user in the client. *
  • These events do not come from the file system, they come from user operations
  • like renaming a file in the UI. *
  • @since 3.16.0

type FileOperationFilter

type FileOperationFilter struct {
	/**
	 * A Uri like `file` or `untitled`.
	 */
	Scheme string `json:"scheme,omitempty"`
	/**
	 * The actual file operation pattern.
	 */
	Pattern FileOperationPattern `json:"pattern"`
}

*

  • A filter to describe in which file operation requests or notifications
  • the server is interested in. *
  • @since 3.16.0

type FileOperationOptions

type FileOperationOptions struct {
	/**
	* The server is interested in didCreateFiles notifications.
	 */
	DidCreate FileOperationRegistrationOptions `json:"didCreate,omitempty"`
	/**
	* The server is interested in willCreateFiles requests.
	 */
	WillCreate FileOperationRegistrationOptions `json:"willCreate,omitempty"`
	/**
	* The server is interested in didRenameFiles notifications.
	 */
	DidRename FileOperationRegistrationOptions `json:"didRename,omitempty"`
	/**
	* The server is interested in willRenameFiles requests.
	 */
	WillRename FileOperationRegistrationOptions `json:"willRename,omitempty"`
	/**
	* The server is interested in didDeleteFiles file notifications.
	 */
	DidDelete FileOperationRegistrationOptions `json:"didDelete,omitempty"`
	/**
	* The server is interested in willDeleteFiles file requests.
	 */
	WillDelete FileOperationRegistrationOptions `json:"willDelete,omitempty"`
}

*

  • Options for notifications/requests for user operations on files. *
  • @since 3.16.0

type FileOperationPattern

type FileOperationPattern struct {
	/**
	 * The glob pattern to match. Glob patterns can have the following syntax:
	 * - `*` to match one or more characters in a path segment
	 * - `?` to match on one character in a path segment
	 * - `**` to match any number of path segments, including none
	 * - `{}` to group sub patterns into an OR expression. (e.g. `**​/*.{ts,js}` matches all TypeScript and JavaScript files)
	 * - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
	 * - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`)
	 */
	Glob string `json:"glob"`
	/**
	 * Whether to match files or folders with this pattern.
	 *
	 * Matches both if undefined.
	 */
	Matches FileOperationPatternKind `json:"matches,omitempty"`
	/**
	 * Additional options used during matching.
	 */
	Options FileOperationPatternOptions `json:"options,omitempty"`
}

*

  • A pattern to describe in which file operation requests or notifications
  • the server is interested in. *
  • @since 3.16.0

type FileOperationPatternKind

type FileOperationPatternKind string

*

  • A pattern kind describing if a glob pattern matches a file a folder or
  • both. *
  • @since 3.16.0

type FileOperationPatternOptions

type FileOperationPatternOptions struct {
	/**
	 * The pattern should be matched ignoring casing.
	 */
	IgnoreCase bool `json:"ignoreCase,omitempty"`
}

*

  • Matching options for the file operation pattern. *
  • @since 3.16.0

type FileOperationRegistrationOptions

type FileOperationRegistrationOptions struct {
	/**
	 * The actual filters.
	 */
	Filters []FileOperationFilter `json:"filters"`
}

*

  • The options to register for file operations. *
  • @since 3.16.0

type FileRename

type FileRename struct {
	/**
	 * A file:// URI for the original location of the file/folder being renamed.
	 */
	OldURI string `json:"oldUri"`
	/**
	 * A file:// URI for the new location of the file/folder being renamed.
	 */
	NewURI string `json:"newUri"`
}

*

  • Represents information on a file/folder rename. *
  • @since 3.16.0

type FileSystemWatcher

type FileSystemWatcher struct {
	/**
	 * The  glob pattern to watch. Glob patterns can have the following syntax:
	 * - `*` to match one or more characters in a path segment
	 * - `?` to match on one character in a path segment
	 * - `**` to match any number of path segments, including none
	 * - `{}` to group conditions (e.g. `**​/*.{ts,js}` matches all TypeScript and JavaScript files)
	 * - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
	 * - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`)
	 */
	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 uint32 `json:"kind,omitempty"`
}

type FoldingRange

type FoldingRange struct {
	/**
	 * The zero-based start line of the range to fold. The folded area starts after the line's last character.
	 * To be valid, the end must be zero or larger and smaller than the number of lines in the document.
	 */
	StartLine uint32 `json:"startLine"`
	/**
	 * The zero-based character offset from where the folded range starts. If not defined, defaults to the length of the start line.
	 */
	StartCharacter uint32 `json:"startCharacter,omitempty"`
	/**
	 * The zero-based end line of the range to fold. The folded area ends with the line's last character.
	 * To be valid, the end must be zero or larger and smaller than the number of lines in the document.
	 */
	EndLine uint32 `json:"endLine"`
	/**
	 * The zero-based character offset before the folded range ends. If not defined, defaults to the length of the end line.
	 */
	EndCharacter uint32 `json:"endCharacter,omitempty"`
	/**
	 * Describes the kind of the folding range such as `comment' or 'region'. The kind
	 * is used to categorize folding ranges and used by commands like 'Fold all comments'. See
	 * [FoldingRangeKind](#FoldingRangeKind) for an enumeration of standardized kinds.
	 */
	Kind string `json:"kind,omitempty"`
}

*

  • Represents a folding range. To be valid, start and end line must be bigger than zero and smaller
  • than the number of lines in the document. Clients are free to ignore invalid ranges.

type FoldingRangeClientCapabilities

type FoldingRangeClientCapabilities struct {
	/**
	 * Whether implementation supports dynamic registration for folding range providers. If this is set to `true`
	 * the client supports the new `FoldingRangeRegistrationOptions` 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 uint32 `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"`
}

type FoldingRangeKind

type FoldingRangeKind string

*

  • Enum of known range kinds

type FoldingRangeOptions

type FoldingRangeOptions struct {
	WorkDoneProgressOptions
}

type FoldingRangeParams

type FoldingRangeParams struct {
	/**
	 * The text document.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • Parameters for a [FoldingRangeRequest](#FoldingRangeRequest).

type FormattingOptions

type FormattingOptions struct {
	/**
	 * Size of a tab in spaces.
	 */
	TabSize uint32 `json:"tabSize"`
	/**
	 * Prefer spaces over tabs.
	 */
	InsertSpaces bool `json:"insertSpaces"`
	/**
	 * Trim trailing whitespaces on a line.
	 *
	 * @since 3.15.0
	 */
	TrimTrailingWhitespace bool `json:"trimTrailingWhitespace,omitempty"`
	/**
	 * Insert a newline character at the end of the file if one does not exist.
	 *
	 * @since 3.15.0
	 */
	InsertFinalNewline bool `json:"insertFinalNewline,omitempty"`
	/**
	 * Trim all newlines after the final newline at the end of the file.
	 *
	 * @since 3.15.0
	 */
	TrimFinalNewlines bool `json:"trimFinalNewlines,omitempty"`
}

*

  • Value-object describing what options formatting should use.

type FullDocumentDiagnosticReport

type FullDocumentDiagnosticReport struct {
	/**
	 * A full document diagnostic report.
	 */
	Kind string `json:"kind"`
	/**
	 * An optional result id. If provided it will
	 * be sent on the next diagnostic request for the
	 * same document.
	 */
	ResultID string `json:"resultId,omitempty"`
	/**
	 * The actual items.
	 */
	Items []Diagnostic `json:"items"`
}

*

  • A diagnostic report with a full set of problems. *
  • @since 3.17.0 - proposed state

type GeneralClientCapabilities

type GeneralClientCapabilities struct {
	/**
	 * 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).
	 *
	 * @since 3.17.0
	 */
	StaleRequestSupport struct {
		/**
		 * The client will actively cancel the request.
		 */
		Cancel bool `json:"cancel"`
		/**
		 * The list of requests for which the client
		 * will retry the request if it receives a
		 * response with error code `ContentModified“
		 */
		RetryOnContentModified []string `json:"retryOnContentModified"`
	} `json:"staleRequestSupport,omitempty"`
	/**
	 * Client capabilities specific to regular expressions.
	 *
	 * @since 3.16.0
	 */
	RegularExpressions RegularExpressionsClientCapabilities `json:"regularExpressions,omitempty"`
	/**
	 * Client capabilities specific to the client's markdown parser.
	 *
	 * @since 3.16.0
	 */
	Markdown MarkdownClientCapabilities `json:"markdown,omitempty"`
}

*

  • General client capabilities. *
  • @since 3.16.0

type Hover

type Hover struct {
	/**
	 * The hover's content
	 */
	Contents MarkupContent `json:"contents"`
	/**
	 * An optional range
	 */
	Range Range `json:"range,omitempty"`
}

*

  • The result of a hover request.

type HoverClientCapabilities

type HoverClientCapabilities 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"`
}

type HoverOptions

type HoverOptions struct {
	WorkDoneProgressOptions
}

*

  • Hover options.

type HoverParams

*

  • Parameters for a [HoverRequest](#HoverRequest).

type ImplementationClientCapabilities

type ImplementationClientCapabilities struct {
	/**
	 * Whether implementation supports dynamic registration. If this is set to `true`
	 * the client supports the new `ImplementationRegistrationOptions` return value
	 * for the corresponding server capability as well.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
	/**
	 * The client supports additional metadata in the form of definition links.
	 *
	 * @since 3.14.0
	 */
	LinkSupport bool `json:"linkSupport,omitempty"`
}

*

  • @since 3.6.0

type ImplementationOptions

type ImplementationOptions struct {
	WorkDoneProgressOptions
}

type InitializeError

type InitializeError float64

*

  • Known error codes for an `InitializeError`;

type InitializeParams

type InitializeParams struct {
	/**
	 * The process Id of the parent process that started
	 * the server.
	 */
	ProcessID int32 `json:"processId"`
	/**
	 * Information about the client
	 *
	 * @since 3.15.0
	 */
	ClientInfo struct {
		/**
		 * The name of the client as defined by the client.
		 */
		Name string `json:"name"`
		/**
		 * The client's version as defined by the client.
		 */
		Version string `json:"version,omitempty"`
	} `json:"clientInfo,omitempty"`
	/**
	 * The locale the client is currently showing the user interface
	 * in. This must not necessarily be the locale of the operating
	 * system.
	 *
	 * Uses IETF language tags as the value's syntax
	 * (See https://en.wikipedia.org/wiki/IETF_language_tag)
	 *
	 * @since 3.16.0
	 */
	Locale string `json:"locale,omitempty"`
	/**
	 * The rootPath of the workspace. Is null
	 * if no folder is open.
	 *
	 * @deprecated in favour of rootUri.
	 */
	RootPath string `json:"rootPath,omitempty"`
	/**
	 * The rootUri of the workspace. Is null if no
	 * folder is open. If both `rootPath` and `rootUri` are set
	 * `rootUri` wins.
	 *
	 * @deprecated in favour of workspaceFolders.
	 */
	RootURI DocumentURI `json:"rootUri"`
	/**
	 * The capabilities provided by the client (editor or tool)
	 */
	Capabilities ClientCapabilities `json:"capabilities"`
	/**
	 * User provided initialization options.
	 */
	InitializationOptions interface{} `json:"initializationOptions,omitempty"`
	/**
	 * The initial trace setting. If omitted trace is disabled ('off').
	 */
	Trace string `json:"trace,omitempty"`
	/**
	 * The actual configured workspace folders.
	 */
	WorkspaceFolders []WorkspaceFolder `json:"workspaceFolders"`
}

type InitializeResult

type InitializeResult struct {
	/**
	 * The capabilities the language server provides.
	 */
	Capabilities ServerCapabilities `json:"capabilities"`
	/**
	 * Information about the server.
	 *
	 * @since 3.15.0
	 */
	ServerInfo struct {
		/**
		 * The name of the server as defined by the server.
		 */
		Name string `json:"name"`
		/**
		 * The server's version as defined by the server.
		 */
		Version string `json:"version,omitempty"`
	} `json:"serverInfo,omitempty"`
}

*

  • The result returned from an initialize request.

type InitializedParams

type InitializedParams struct{}

type InsertReplaceEdit

type InsertReplaceEdit struct {
	/**
	 * The string to be inserted.
	 */
	NewText string `json:"newText"`
	/**
	 * The range if the insert is requested
	 */
	Insert Range `json:"insert"`
	/**
	 * The range if the replace is requested.
	 */
	Replace Range `json:"replace"`
}

*

  • A special text edit to provide an insert and a replace operation. *
  • @since 3.16.0

type InsertTextFormat

type InsertTextFormat float64

*

  • Defines whether the insert text in a completion item should be interpreted as
  • plain text or a snippet.

type InsertTextMode

type InsertTextMode float64

*

  • How whitespace and indentation is handled during completion
  • item insertion. *
  • @since 3.16.0

type LinkedEditingRangeClientCapabilities

type LinkedEditingRangeClientCapabilities 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"`
}

*

  • Client capabilities for the linked editing range request. *
  • @since 3.16.0

type LinkedEditingRangeOptions

type LinkedEditingRangeOptions struct {
	WorkDoneProgressOptions
}

type LinkedEditingRangeParams

type LinkedEditingRangeParams struct {
	TextDocumentPositionParams
	WorkDoneProgressParams
}

type LinkedEditingRanges

type LinkedEditingRanges struct {
	/**
	 * A list of ranges that can be edited together. The ranges must have
	 * identical length and contain identical text content. The ranges cannot overlap.
	 */
	Ranges []Range `json:"ranges"`
	/**
	 * An optional word pattern (regular expression) that describes valid contents for
	 * the given ranges. If no pattern is provided, the client configuration's word
	 * pattern will be used.
	 */
	WordPattern string `json:"wordPattern,omitempty"`
}

*

  • The result of a linked editing range request. *
  • @since 3.16.0

type Location

type Location struct {
	URI   DocumentURI `json:"uri"`
	Range Range       `json:"range"`
}

*

  • Represents a location inside a resource, such as a line
  • inside a text file.
type LocationLink struct {
	/**
	 * Span of the origin of this link.
	 *
	 * Used as the underlined span for mouse definition hover. Defaults to the word range at
	 * the definition position.
	 */
	OriginSelectionRange Range `json:"originSelectionRange,omitempty"`
	/**
	 * The target resource identifier of this link.
	 */
	TargetURI DocumentURI `json:"targetUri"`
	/**
	 * The full target range of this link. If the target for example is a symbol then target range is the
	 * range enclosing this symbol not including leading/trailing whitespace but everything else
	 * like comments. This information is typically used to highlight the range in the editor.
	 */
	TargetRange Range `json:"targetRange"`
	/**
	 * The range that should be selected and revealed when this link is being followed, e.g the name of a function.
	 * Must be contained by the the `targetRange`. See also `DocumentSymbol#range`
	 */
	TargetSelectionRange Range `json:"targetSelectionRange"`
}

*

  • Represents the connection of two locations. Provides additional metadata over normal [locations](#Location),
  • including an origin range.

type LogMessageParams

type LogMessageParams struct {
	/**
	 * The message type. See {@link MessageType}
	 */
	Type MessageType `json:"type"`
	/**
	 * The actual message
	 */
	Message string `json:"message"`
}

*

  • The log message parameters.

type LogTraceParams

type LogTraceParams struct {
	Message string `json:"message"`
	Verbose string `json:"verbose,omitempty"`
}

type MarkdownClientCapabilities

type MarkdownClientCapabilities struct {
	/**
	 * The name of the parser.
	 */
	Parser string `json:"parser"`
	/**
	 * The version of the parser.
	 */
	Version string `json:"version,omitempty"`
}

*

  • Client capabilities specific to the used markdown parser. *
  • @since 3.16.0

type MarkedString

type MarkedString = string /*string | { language: string; value: 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. See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting *
  • The pair of a language and a value is an equivalent to markdown:
  • ```${language}
  • ${value}
  • ``` *
  • Note that markdown strings will be sanitized - that means html will be escaped.
  • @deprecated use MarkupContent instead.

type MarkupContent

type MarkupContent struct {
	/**
	 * The type of the Markup
	 */
	Kind MarkupKind `json:"kind"`
	/**
	 * The content itself
	 */
	Value string `json:"value"`
}

*

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

type MarkupKind string

*

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

type MessageActionItem struct {
	/**
	 * A short title like 'Retry', 'Open Log' etc.
	 */
	Title string `json:"title"`
}

type MessageType

type MessageType float64

*

  • The message type

type Moniker

type Moniker struct {
	/**
	 * The scheme of the moniker. For example tsc or .Net
	 */
	Scheme string `json:"scheme"`
	/**
	 * The identifier of the moniker. The value is opaque in LSIF however
	 * schema owners are allowed to define the structure if they want.
	 */
	Identifier string `json:"identifier"`
	/**
	 * The scope in which the moniker is unique
	 */
	Unique UniquenessLevel `json:"unique"`
	/**
	 * The moniker kind if known.
	 */
	Kind MonikerKind `json:"kind,omitempty"`
}

*

  • Moniker definition to match LSIF 0.5 moniker definition. *
  • @since 3.16.0

type MonikerClientCapabilities

type MonikerClientCapabilities struct {
	/**
	 * Whether moniker supports dynamic registration. If this is set to `true`
	 * the client supports the new `MonikerRegistrationOptions` return value
	 * for the corresponding server capability as well.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

*

  • Client capabilities specific to the moniker request. *
  • @since 3.16.0

type MonikerKind

type MonikerKind string

*

  • The moniker kind. *
  • @since 3.16.0

type MonikerOptions

type MonikerOptions struct {
	WorkDoneProgressOptions
}

type MonikerRegistrationOptions

type MonikerRegistrationOptions struct {
	TextDocumentRegistrationOptions
	MonikerOptions
}

type OptionalVersionedTextDocumentIdentifier

type OptionalVersionedTextDocumentIdentifier struct {
	/**
	 * 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 unknown and the content on disk is the
	 * truth (as specified with document content ownership).
	 */
	Version int32 `json:"version"`
	TextDocumentIdentifier
}

*

  • A text document identifier to optionally denote a specific version of a text document.

type ParamConfiguration

type ParamConfiguration struct {
	ConfigurationParams
	PartialResultParams
}

Types created to name formal parameters and embedded structs

type ParamInitialize

type ParamInitialize struct {
	InitializeParams
	WorkDoneProgressParams
}

type ParameterInformation

type ParameterInformation struct {
	/**
	 * The label of this parameter information.
	 *
	 * Either a string or an inclusive start and exclusive end offsets within its containing
	 * signature label. (see SignatureInformation.label). The offsets are based on a UTF-16
	 * string representation as `Position` and `Range` does.
	 *
	 * *Note*: a label of type string should be a substring of its containing signature label.
	 * Its intended use case is to highlight the parameter label part in the `SignatureInformation.label`.
	 */
	Label string `json:"label"`
	/**
	 * The human-readable doc-comment of this signature. Will be shown
	 * in the UI but can be omitted.
	 */
	Documentation string `json:"documentation,omitempty"`
}

*

  • Represents a parameter of a callable-signature. A parameter can
  • have a label and a doc-comment.

type PartialResultParams

type PartialResultParams struct {
	/**
	 * An optional token that a server can use to report partial results (e.g. streaming) to
	 * the client.
	 */
	PartialResultToken ProgressToken `json:"partialResultToken,omitempty"`
}

type Position

type Position struct {
	/**
	 * Line position in a document (zero-based).
	 */
	Line uint32 `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 uint32 `json:"character"`
}

*

  • Position in a text document expressed as zero-based line and character offset.
  • The offsets are based on a UTF-16 string representation. So a string of the form
  • `a𐐀b` the character offset of the character `a` is 0, the character offset of `𐐀`
  • is 1 and the character offset of b is 3 since `𐐀` is represented using two code
  • units in UTF-16. *
  • Positions are line end character agnostic. So you can not specify a position that
  • denotes `\r|\n` or `\n|` where `|` represents the character offset.

type PrepareRenameParams

type PrepareRenameParams struct {
	TextDocumentPositionParams
	WorkDoneProgressParams
}

type PrepareSupportDefaultBehavior

type PrepareSupportDefaultBehavior = interface{}

type PreviousResultID

type PreviousResultID = struct {
	/**
	 * The URI for which the client knowns a
	 * result id.
	 */
	URI DocumentURI `json:"uri"`
	/**
	 * The value of the previous result id.
	 */
	Value string `json:"value"`
}

*

  • A previous result id in a workspace pull request. *
  • @since 3.17.0 - proposed state

type ProgressParams

type ProgressParams struct {
	/**
	 * The progress token provided by the client or server.
	 */
	Token ProgressToken `json:"token"`
	/**
	 * The progress data.
	 */
	Value interface{} `json:"value"`
}

type ProgressToken

type ProgressToken = interface{} /*number | string*/

type PublishDiagnosticsClientCapabilities

type PublishDiagnosticsClientCapabilities struct {
	/**
	 * Whether the clients accepts diagnostics with related information.
	 */
	RelatedInformation bool `json:"relatedInformation,omitempty"`
	/**
	 * Client supports the tag property to provide meta data about a diagnostic.
	 * Clients supporting tags have to handle unknown tags gracefully.
	 *
	 * @since 3.15.0
	 */
	TagSupport struct {
		/**
		 * The tags supported by the client.
		 */
		ValueSet []DiagnosticTag `json:"valueSet"`
	} `json:"tagSupport,omitempty"`
	/**
	 * Whether the client interprets the version property of the
	 * `textDocument/publishDiagnostics` notification`s parameter.
	 *
	 * @since 3.15.0
	 */
	VersionSupport bool `json:"versionSupport,omitempty"`
	/**
	 * Client supports a codeDescription property
	 *
	 * @since 3.16.0
	 */
	CodeDescriptionSupport bool `json:"codeDescriptionSupport,omitempty"`
	/**
	 * Whether code action supports the `data` property which is
	 * preserved between a `textDocument/publishDiagnostics` and
	 * `textDocument/codeAction` request.
	 *
	 * @since 3.16.0
	 */
	DataSupport bool `json:"dataSupport,omitempty"`
}

*

  • The publish diagnostic client capabilities.

type PublishDiagnosticsParams

type PublishDiagnosticsParams struct {
	/**
	 * The URI for which diagnostic information is reported.
	 */
	URI DocumentURI `json:"uri"`
	/**
	 * Optional the version number of the document the diagnostics are published for.
	 *
	 * @since 3.15.0
	 */
	Version int32 `json:"version,omitempty"`
	/**
	 * An array of diagnostic information items.
	 */
	Diagnostics []Diagnostic `json:"diagnostics"`
}

*

  • The publish diagnostic notification's parameters.

type Range

type Range struct {
	/**
	 * The range's start position
	 */
	Start Position `json:"start"`
	/**
	 * The range's end position.
	 */
	End Position `json:"end"`
}

*

  • A range in a text document expressed as (zero-based) start and end positions. *
  • 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.
  • For example:
  • ```ts
  • {
  • start: { line: 5, character: 23 }
  • end : { line 6, character : 0 }
  • }
  • ```

type ReferenceClientCapabilities

type ReferenceClientCapabilities struct {
	/**
	 * Whether references supports dynamic registration.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

*

  • Client Capabilities for a [ReferencesRequest](#ReferencesRequest).

type ReferenceContext

type ReferenceContext struct {
	/**
	 * Include the declaration of the current symbol.
	 */
	IncludeDeclaration bool `json:"includeDeclaration"`
}

*

  • Value-object that contains additional information when
  • requesting references.

type ReferenceOptions

type ReferenceOptions struct {
	WorkDoneProgressOptions
}

*

  • Reference options.

type ReferenceParams

type ReferenceParams struct {
	Context ReferenceContext `json:"context"`
	TextDocumentPositionParams
	WorkDoneProgressParams
	PartialResultParams
}

*

  • Parameters for a [ReferencesRequest](#ReferencesRequest).

type Registration

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 to register for.
	 */
	Method string `json:"method"`
	/**
	 * Options necessary for the registration.
	 */
	RegisterOptions interface{} `json:"registerOptions,omitempty"`
}

*

  • General parameters to to register for an notification or to register a provider.

type RegistrationParams

type RegistrationParams struct {
	Registrations []Registration `json:"registrations"`
}

type RegularExpressionsClientCapabilities

type RegularExpressionsClientCapabilities struct {
	/**
	 * The engine's name.
	 */
	Engine string `json:"engine"`
	/**
	 * The engine's version.
	 */
	Version string `json:"version,omitempty"`
}

*

  • Client capabilities specific to regular expressions. *
  • @since 3.16.0

type RelatedFullDocumentDiagnosticReport

type RelatedFullDocumentDiagnosticReport struct {
	/**
	 * Diagnostics of related documents. This information is useful
	 * in programming languages where code in a file A can generate
	 * diagnostics in a file B which A depends on. An example of
	 * such a language is C/C++ where marco definitions in a file
	 * a.cpp and result in errors in a header file b.hpp.
	 *
	 * @since 3.17.0 - proposed state
	 */
	RelatedDocuments map[string]interface{} `json:"relatedDocuments,omitempty"`
	FullDocumentDiagnosticReport
}

*

  • A full diagnostic report with a set of related documents. *
  • @since 3.17.0 - proposed state

type RelatedUnchangedDocumentDiagnosticReport

type RelatedUnchangedDocumentDiagnosticReport struct {
	/**
	 * Diagnostics of related documents. This information is useful
	 * in programming languages where code in a file A can generate
	 * diagnostics in a file B which A depends on. An example of
	 * such a language is C/C++ where marco definitions in a file
	 * a.cpp and result in errors in a header file b.hpp.
	 *
	 * @since 3.17.0 - proposed state
	 */
	RelatedDocuments map[string]interface{} `json:"relatedDocuments,omitempty"`
	UnchangedDocumentDiagnosticReport
}

*

  • An unchanged diagnostic report with a set of related documents. *
  • @since 3.17.0 - proposed state

type RenameClientCapabilities

type RenameClientCapabilities struct {
	/**
	 * Whether rename supports dynamic registration.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
	/**
	 * Client supports testing for validity of rename operations
	 * before execution.
	 *
	 * @since 3.12.0
	 */
	PrepareSupport bool `json:"prepareSupport,omitempty"`
	/**
	 * Client supports the default behavior result.
	 *
	 * The value indicates the default behavior used by the
	 * client.
	 *
	 * @since 3.16.0
	 */
	PrepareSupportDefaultBehavior PrepareSupportDefaultBehavior `json:"prepareSupportDefaultBehavior,omitempty"`
	/**
	 * Whether th client honors the change annotations in
	 * text edits and resource operations returned via the
	 * rename request's workspace edit by for example presenting
	 * the workspace edit in the user interface and asking
	 * for confirmation.
	 *
	 * @since 3.16.0
	 */
	HonorsChangeAnnotations bool `json:"honorsChangeAnnotations,omitempty"`
}

type RenameFile

type RenameFile struct {
	/**
	 * A rename
	 */
	Kind string `json:"kind"`
	/**
	 * The old (existing) location.
	 */
	OldURI DocumentURI `json:"oldUri"`
	/**
	 * The new location.
	 */
	NewURI DocumentURI `json:"newUri"`
	/**
	 * Rename options.
	 */
	Options RenameFileOptions `json:"options,omitempty"`
	ResourceOperation
}

*

  • Rename file operation

type RenameFileOptions

type RenameFileOptions struct {
	/**
	 * Overwrite target if existing. Overwrite wins over `ignoreIfExists`
	 */
	Overwrite bool `json:"overwrite,omitempty"`
	/**
	 * Ignores if target exists.
	 */
	IgnoreIfExists bool `json:"ignoreIfExists,omitempty"`
}

*

  • Rename file options

type RenameFilesParams

type RenameFilesParams struct {
	/**
	 * An array of all files/folders renamed in this operation. When a folder is renamed, only
	 * the folder will be included, and not its children.
	 */
	Files []FileRename `json:"files"`
}

*

  • The parameters sent in file rename requests/notifications. *
  • @since 3.16.0

type RenameOptions

type RenameOptions struct {
	/**
	 * Renames should be checked and tested before being executed.
	 *
	 * @since version 3.12.0
	 */
	PrepareProvider bool `json:"prepareProvider,omitempty"`
	WorkDoneProgressOptions
}

*

  • Provider options for a [RenameRequest](#RenameRequest).

type RenameParams

type RenameParams struct {
	/**
	 * The document to rename.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	/**
	 * The position at which this request was sent.
	 */
	Position Position `json:"position"`
	/**
	 * The new name of the symbol. If the given name is not valid the
	 * request must return a [ResponseError](#ResponseError) with an
	 * appropriate message set.
	 */
	NewName string `json:"newName"`
	WorkDoneProgressParams
}

*

  • The parameters of a [RenameRequest](#RenameRequest).

type ResourceOperation

type ResourceOperation struct {
	/**
	 * The resource operation kind.
	 */
	Kind string `json:"kind"`
	/**
	 * An optional annotation identifier describing the operation.
	 *
	 * @since 3.16.0
	 */
	AnnotationID ChangeAnnotationIdentifier `json:"annotationId,omitempty"`
}

*

  • A generic resource operation.

type ResourceOperationKind

type ResourceOperationKind string

type SaveOptions

type SaveOptions struct {
	/**
	 * The client is supposed to include the content on save.
	 */
	IncludeText bool `json:"includeText,omitempty"`
}

*

  • Save options.

type SelectionRange

type SelectionRange struct {
	/**
	 * The [range](#Range) of this selection range.
	 */
	Range Range `json:"range"`
	/**
	 * The parent selection range containing this range. Therefore `parent.range` must contain `this.range`.
	 */
	Parent *SelectionRange `json:"parent,omitempty"`
}

*

  • A selection range represents a part of a selection hierarchy. A selection range
  • may have a parent selection range that contains it.

type SelectionRangeClientCapabilities

type SelectionRangeClientCapabilities struct {
	/**
	 * Whether implementation supports dynamic registration for selection range providers. If this is set to `true`
	 * the client supports the new `SelectionRangeRegistrationOptions` return value for the corresponding server
	 * capability as well.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

type SelectionRangeOptions

type SelectionRangeOptions struct {
	WorkDoneProgressOptions
}

type SelectionRangeParams

type SelectionRangeParams struct {
	/**
	 * The text document.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	/**
	 * The positions inside the text document.
	 */
	Positions []Position `json:"positions"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • A parameter literal used in selection range requests.

type SemanticTokens

type SemanticTokens struct {
	/**
	 * An optional result id. If provided and clients support delta updating
	 * the client will include the result id in the next semantic token request.
	 * A server can then instead of computing all semantic tokens again simply
	 * send a delta.
	 */
	ResultID string `json:"resultId,omitempty"`
	/**
	 * The actual tokens.
	 */
	Data []uint32 `json:"data"`
}

*

  • @since 3.16.0

type SemanticTokensClientCapabilities

type SemanticTokensClientCapabilities 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"`
	/**
	 * Which requests the client supports and might send to the server
	 * depending on the server's capability. Please note that clients might not
	 * show semantic tokens or degrade some of the user experience if a range
	 * or full request is advertised by the client but not provided by the
	 * server. If for example the client capability `requests.full` and
	 * `request.range` are both set to true but the server only provides a
	 * range provider the client might not render a minimap correctly or might
	 * even decide to not show any semantic tokens at all.
	 */
	Requests struct {
		/**
		 * The client will send the `textDocument/semanticTokens/range` request if
		 * the server provides a corresponding handler.
		 */
		Range bool `json:"range,omitempty"`
		/**
		 * The client will send the `textDocument/semanticTokens/full` request if
		 * the server provides a corresponding handler.
		 */
		Full interface{} `json:"full,omitempty"`
	} `json:"requests"`
	/**
	 * The token types that the client supports.
	 */
	TokenTypes []string `json:"tokenTypes"`
	/**
	 * The token modifiers that the client supports.
	 */
	TokenModifiers []string `json:"tokenModifiers"`
	/**
	 * The token formats the clients supports.
	 */
	Formats []TokenFormat `json:"formats"`
	/**
	 * Whether the client supports tokens that can overlap each other.
	 */
	OverlappingTokenSupport bool `json:"overlappingTokenSupport,omitempty"`
	/**
	 * Whether the client supports tokens that can span multiple lines.
	 */
	MultilineTokenSupport bool `json:"multilineTokenSupport,omitempty"`
}

*

  • @since 3.16.0

type SemanticTokensDelta

type SemanticTokensDelta struct {
	ResultID string `json:"resultId,omitempty"`
	/**
	 * The semantic token edits to transform a previous result into a new result.
	 */
	Edits []SemanticTokensEdit `json:"edits"`
}

*

  • @since 3.16.0

type SemanticTokensDeltaParams

type SemanticTokensDeltaParams struct {
	/**
	 * The text document.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	/**
	 * The result id of a previous response. The result Id can either point to a full response
	 * or a delta response depending on what was received last.
	 */
	PreviousResultID string `json:"previousResultId"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • @since 3.16.0

type SemanticTokensEdit

type SemanticTokensEdit struct {
	/**
	 * The start offset of the edit.
	 */
	Start uint32 `json:"start"`
	/**
	 * The count of elements to remove.
	 */
	DeleteCount uint32 `json:"deleteCount"`
	/**
	 * The elements to insert.
	 */
	Data []uint32 `json:"data,omitempty"`
}

*

  • @since 3.16.0

type SemanticTokensLegend

type SemanticTokensLegend struct {
	/**
	 * The token types a server uses.
	 */
	TokenTypes []string `json:"tokenTypes"`
	/**
	 * The token modifiers a server uses.
	 */
	TokenModifiers []string `json:"tokenModifiers"`
}

*

  • @since 3.16.0

type SemanticTokensOptions

type SemanticTokensOptions struct {
	/**
	 * The legend used by the server
	 */
	Legend SemanticTokensLegend `json:"legend"`
	/**
	 * Server supports providing semantic tokens for a specific range
	 * of a document.
	 */
	Range bool `json:"range,omitempty"`
	/**
	 * Server supports providing semantic tokens for a full document.
	 */
	Full interface{} `json:"full,omitempty"`
	WorkDoneProgressOptions
}

*

  • @since 3.16.0

type SemanticTokensParams

type SemanticTokensParams struct {
	/**
	 * The text document.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • @since 3.16.0

type SemanticTokensRangeParams

type SemanticTokensRangeParams struct {
	/**
	 * The text document.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	/**
	 * The range the semantic tokens are requested for.
	 */
	Range Range `json:"range"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • @since 3.16.0

type SemanticTokensRegistrationOptions

type SemanticTokensRegistrationOptions struct {
	TextDocumentRegistrationOptions
	SemanticTokensOptions
	StaticRegistrationOptions
}

*

  • @since 3.16.0

type SemanticTokensWorkspaceClientCapabilities

type SemanticTokensWorkspaceClientCapabilities struct {
	/**
	 * Whether the client implementation supports a refresh request sent from
	 * the server to the client.
	 *
	 * Note that this event is global and will force the client to refresh all
	 * semantic tokens currently shown. It should be used with absolute care
	 * and is useful for situation where a server for example detects a project
	 * wide change that requires such a calculation.
	 */
	RefreshSupport bool `json:"refreshSupport,omitempty"`
}

*

  • @since 3.16.0

type ServerCapabilities

type ServerCapabilities struct {
	/**
	 * Defines how text documents are synced. Is either a detailed structure defining each notification or
	 * for backwards compatibility the TextDocumentSyncKind number.
	 */
	TextDocumentSync interface{} `json:"textDocumentSync,omitempty"`
	/**
	 * The server provides completion support.
	 */
	CompletionProvider CompletionOptions `json:"completionProvider,omitempty"`
	/**
	 * The server provides hover support.
	 */
	HoverProvider bool `json:"hoverProvider,omitempty"`
	/**
	 * The server provides signature help support.
	 */
	SignatureHelpProvider *SignatureHelpOptions `json:"signatureHelpProvider,omitempty"`
	/**
	 * The server provides Goto Declaration support.
	 */
	DeclarationProvider interface{} `json:"declarationProvider,omitempty"`
	/**
	 * The server provides goto definition support.
	 */
	DefinitionProvider bool `json:"definitionProvider,omitempty"`
	/**
	 * The server provides Goto Type Definition support.
	 */
	TypeDefinitionProvider interface{} `json:"typeDefinitionProvider,omitempty"`
	/**
	 * The server provides Goto Implementation support.
	 */
	ImplementationProvider interface{} `json:"implementationProvider,omitempty"`
	/**
	 * 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 code actions. CodeActionOptions may only be
	 * specified if the client states that it supports
	 * `codeActionLiteralSupport` in its initial `initialize` request.
	 */
	CodeActionProvider interface{} `json:"codeActionProvider,omitempty"`
	/**
	 * The server provides code lens.
	 */
	CodeLensProvider *CodeLensOptions `json:"codeLensProvider,omitempty"`
	/**
	 * The server provides document link support.
	 */
	DocumentLinkProvider *DocumentLinkOptions `json:"documentLinkProvider,omitempty"`
	/**
	 * The server provides color provider support.
	 */
	ColorProvider interface{} `json:"colorProvider,omitempty"`
	/**
	 * The server provides workspace symbol support.
	 */
	WorkspaceSymbolProvider bool `json:"workspaceSymbolProvider,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. RenameOptions may only be
	 * specified if the client states that it supports
	 * `prepareSupport` in its initial `initialize` request.
	 */
	RenameProvider interface{} `json:"renameProvider,omitempty"`
	/**
	 * The server provides folding provider support.
	 */
	FoldingRangeProvider interface{} `json:"foldingRangeProvider,omitempty"`
	/**
	 * The server provides selection range support.
	 */
	SelectionRangeProvider interface{} `json:"selectionRangeProvider,omitempty"`
	/**
	 * The server provides execute command support.
	 */
	ExecuteCommandProvider *ExecuteCommandOptions `json:"executeCommandProvider,omitempty"`
	/**
	 * The server provides call hierarchy support.
	 *
	 * @since 3.16.0
	 */
	CallHierarchyProvider interface{} `json:"callHierarchyProvider,omitempty"`
	/**
	 * The server provides linked editing range support.
	 *
	 * @since 3.16.0
	 */
	LinkedEditingRangeProvider interface{} `json:"linkedEditingRangeProvider,omitempty"`
	/**
	 * The server provides semantic tokens support.
	 *
	 * @since 3.16.0
	 */
	SemanticTokensProvider interface{} `json:"semanticTokensProvider,omitempty"`
	/**
	 * The workspace server capabilities
	 */
	Workspace *Workspace5Gn `json:"workspace,omitempty"`
	/**
	 * The server provides moniker support.
	 *
	 * @since 3.16.0
	 */
	MonikerProvider interface{} `json:"monikerProvider,omitempty"`
	/**
	 * Experimental server capabilities.
	 */
	Experimental interface{} `json:"experimental,omitempty"`
}

type SetTraceParams

type SetTraceParams struct {
	Value TraceValues `json:"value"`
}

type ShowDocumentClientCapabilities

type ShowDocumentClientCapabilities struct {
	/**
	 * The client has support for the show document
	 * request.
	 */
	Support bool `json:"support"`
}

*

  • Client capabilities for the show document request. *
  • @since 3.16.0

type ShowDocumentParams

type ShowDocumentParams struct {
	/**
	 * The document uri to show.
	 */
	URI URI `json:"uri"`
	/**
	 * Indicates to show the resource in an external program.
	 * To show for example `https://code.visualstudio.com/`
	 * in the default WEB browser set `external` to `true`.
	 */
	External bool `json:"external,omitempty"`
	/**
	 * An optional property to indicate whether the editor
	 * showing the document should take focus or not.
	 * Clients might ignore this property if an external
	 * program in started.
	 */
	TakeFocus bool `json:"takeFocus,omitempty"`
	/**
	 * An optional selection range if the document is a text
	 * document. Clients might ignore the property if an
	 * external program is started or the file is not a text
	 * file.
	 */
	Selection Range `json:"selection,omitempty"`
}

*

  • Params to show a document. *
  • @since 3.16.0

type ShowDocumentResult

type ShowDocumentResult struct {
	/**
	 * A boolean indicating if the show was successful.
	 */
	Success bool `json:"success"`
}

*

  • The result of an show document request. *
  • @since 3.16.0

type ShowMessageParams

type ShowMessageParams struct {
	/**
	 * The message type. See {@link MessageType}
	 */
	Type MessageType `json:"type"`
	/**
	 * The actual message
	 */
	Message string `json:"message"`
}

*

  • The parameters of a notification message.

type ShowMessageRequestClientCapabilities

type ShowMessageRequestClientCapabilities struct {
	/**
	 * Capabilities specific to the `MessageActionItem` type.
	 */
	MessageActionItem struct {
		/**
		 * Whether the client supports additional attributes which
		 * are preserved and send back to the server in the
		 * request's response.
		 */
		AdditionalPropertiesSupport bool `json:"additionalPropertiesSupport,omitempty"`
	} `json:"messageActionItem,omitempty"`
}

*

  • Show message request client capabilities

type ShowMessageRequestParams

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 SignatureHelp

type SignatureHelp struct {
	/**
	 * One or more signatures.
	 */
	Signatures []SignatureInformation `json:"signatures"`
	/**
	 * The active signature. Set to `null` if no
	 * signatures exist.
	 */
	ActiveSignature uint32 `json:"activeSignature"`
	/**
	 * The active parameter of the active signature. Set to `null`
	 * if the active signature has no parameters.
	 */
	ActiveParameter uint32 `json:"activeParameter"`
}

*

  • Signature help represents the signature of something
  • callable. There can be multiple signature but only one
  • active and only one active parameter.

type SignatureHelpClientCapabilities

type SignatureHelpClientCapabilities 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"`
		/**
		 * Client capabilities specific to parameter information.
		 */
		ParameterInformation struct {
			/**
			 * The client supports processing label offsets instead of a
			 * simple label string.
			 *
			 * @since 3.14.0
			 */
			LabelOffsetSupport bool `json:"labelOffsetSupport,omitempty"`
		} `json:"parameterInformation,omitempty"`
		/**
		 * The client support the `activeParameter` property on `SignatureInformation`
		 * literal.
		 *
		 * @since 3.16.0
		 */
		ActiveParameterSupport bool `json:"activeParameterSupport,omitempty"`
	} `json:"signatureInformation,omitempty"`
	/**
	 * The client supports to send additional context information for a
	 * `textDocument/signatureHelp` request. A client that opts into
	 * contextSupport will also support the `retriggerCharacters` on
	 * `SignatureHelpOptions`.
	 *
	 * @since 3.15.0
	 */
	ContextSupport bool `json:"contextSupport,omitempty"`
}

*

  • Client Capabilities for a [SignatureHelpRequest](#SignatureHelpRequest).

type SignatureHelpContext

type SignatureHelpContext struct {
	/**
	 * Action that caused signature help to be triggered.
	 */
	TriggerKind SignatureHelpTriggerKind `json:"triggerKind"`
	/**
	 * Character that caused signature help to be triggered.
	 *
	 * This is undefined when `triggerKind !== SignatureHelpTriggerKind.TriggerCharacter`
	 */
	TriggerCharacter string `json:"triggerCharacter,omitempty"`
	/**
	 * `true` if signature help was already showing when it was triggered.
	 *
	 * Retrigger occurs when the signature help is already active and can be caused by actions such as
	 * typing a trigger character, a cursor move, or document content changes.
	 */
	IsRetrigger bool `json:"isRetrigger"`
	/**
	 * The currently active `SignatureHelp`.
	 *
	 * The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field updated based on
	 * the user navigating through available signatures.
	 */
	ActiveSignatureHelp SignatureHelp `json:"activeSignatureHelp,omitempty"`
}

*

  • Additional information about the context in which a signature help request was triggered. *
  • @since 3.15.0

type SignatureHelpOptions

type SignatureHelpOptions struct {
	/**
	 * List of characters that trigger signature help.
	 */
	TriggerCharacters []string `json:"triggerCharacters,omitempty"`
	/**
	 * List of characters that re-trigger signature help.
	 *
	 * These trigger characters are only active when signature help is already showing. All trigger characters
	 * are also counted as re-trigger characters.
	 *
	 * @since 3.15.0
	 */
	RetriggerCharacters []string `json:"retriggerCharacters,omitempty"`
	WorkDoneProgressOptions
}

*

  • Server Capabilities for a [SignatureHelpRequest](#SignatureHelpRequest).

type SignatureHelpParams

type SignatureHelpParams struct {
	/**
	 * The signature help context. This is only available if the client specifies
	 * to send this using the client capability `textDocument.signatureHelp.contextSupport === true`
	 *
	 * @since 3.15.0
	 */
	Context SignatureHelpContext `json:"context,omitempty"`
	TextDocumentPositionParams
	WorkDoneProgressParams
}

*

  • Parameters for a [SignatureHelpRequest](#SignatureHelpRequest).

type SignatureHelpTriggerKind

type SignatureHelpTriggerKind float64

*

  • How a signature help was triggered. *
  • @since 3.15.0

type SignatureInformation

type SignatureInformation struct {
	/**
	 * The label of this signature. Will be shown in
	 * the UI.
	 */
	Label string `json:"label"`
	/**
	 * The human-readable doc-comment of this signature. Will be shown
	 * in the UI but can be omitted.
	 */
	Documentation string `json:"documentation,omitempty"`
	/**
	 * The parameters of this signature.
	 */
	Parameters []ParameterInformation `json:"parameters,omitempty"`
	/**
	 * The index of the active parameter.
	 *
	 * If provided, this is used in place of `SignatureHelp.activeParameter`.
	 *
	 * @since 3.16.0
	 */
	ActiveParameter uint32 `json:"activeParameter,omitempty"`
}

*

  • Represents the signature of something callable. A signature
  • can have a label, like a function-name, a doc-comment, and
  • a set of parameters.

type StaticRegistrationOptions

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"`
}

*

  • Static registration options to be returned in the initialize
  • request.

type SymbolInformation

type SymbolInformation struct {
	/**
	 * The name of this symbol.
	 */
	Name string `json:"name"`
	/**
	 * The kind of this symbol.
	 */
	Kind SymbolKind `json:"kind"`
	/**
	 * Tags for this completion item.
	 *
	 * @since 3.16.0
	 */
	Tags []SymbolTag `json:"tags,omitempty"`
	/**
	 * Indicates if this symbol is deprecated.
	 *
	 * @deprecated Use tags instead
	 */
	Deprecated bool `json:"deprecated,omitempty"`
	/**
	 * The location of this symbol. The location's range is used by a tool
	 * to reveal the location in the editor. If the symbol is selected in the
	 * tool the range's start information is used to position the cursor. So
	 * the range usually spans more than the actual symbol's name and does
	 * normally include thinks like visibility modifiers.
	 *
	 * The range doesn't have to denote a node range in the sense of a abstract
	 * syntax tree. It can therefore not be used to re-construct a hierarchy of
	 * the symbols.
	 */
	Location Location `json:"location"`
	/**
	 * The name of the symbol containing this symbol. This information is for
	 * user interface purposes (e.g. to render a qualifier in the user interface
	 * if necessary). It can't be used to re-infer a hierarchy for the document
	 * symbols.
	 */
	ContainerName string `json:"containerName,omitempty"`
}

*

  • Represents information about programming constructs like variables, classes,
  • interfaces etc.

type SymbolKind

type SymbolKind float64

*

  • A symbol kind.

type SymbolTag

type SymbolTag float64

*

  • Symbol tags are extra annotations that tweak the rendering of a symbol.
  • @since 3.16

type TelemetryEvent

type TelemetryEvent struct {
	Version int `json:"v"`

	Name       string                 `json:"name"`
	Properties map[string]interface{} `json:"properties"`
}

type TextDocumentClientCapabilities

type TextDocumentClientCapabilities struct {
	/**
	 * Defines which synchronization capabilities the client supports.
	 */
	Synchronization TextDocumentSyncClientCapabilities `json:"synchronization,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/completion`
	 */
	Completion CompletionClientCapabilities `json:"completion,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/hover`
	 */
	Hover HoverClientCapabilities `json:"hover,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/signatureHelp`
	 */
	SignatureHelp SignatureHelpClientCapabilities `json:"signatureHelp,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/declaration`
	 *
	 * @since 3.14.0
	 */
	Declaration DeclarationClientCapabilities `json:"declaration,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/definition`
	 */
	Definition DefinitionClientCapabilities `json:"definition,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/typeDefinition`
	 *
	 * @since 3.6.0
	 */
	TypeDefinition TypeDefinitionClientCapabilities `json:"typeDefinition,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/implementation`
	 *
	 * @since 3.6.0
	 */
	Implementation ImplementationClientCapabilities `json:"implementation,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/references`
	 */
	References ReferenceClientCapabilities `json:"references,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/documentHighlight`
	 */
	DocumentHighlight DocumentHighlightClientCapabilities `json:"documentHighlight,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/documentSymbol`
	 */
	DocumentSymbol DocumentSymbolClientCapabilities `json:"documentSymbol,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/codeAction`
	 */
	CodeAction CodeActionClientCapabilities `json:"codeAction,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/codeLens`
	 */
	CodeLens CodeLensClientCapabilities `json:"codeLens,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/documentLink`
	 */
	DocumentLink DocumentLinkClientCapabilities `json:"documentLink,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/documentColor`
	 */
	ColorProvider DocumentColorClientCapabilities `json:"colorProvider,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/formatting`
	 */
	Formatting DocumentFormattingClientCapabilities `json:"formatting,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/rangeFormatting`
	 */
	RangeFormatting DocumentRangeFormattingClientCapabilities `json:"rangeFormatting,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/onTypeFormatting`
	 */
	OnTypeFormatting DocumentOnTypeFormattingClientCapabilities `json:"onTypeFormatting,omitempty"`
	/**
	 * Capabilities specific to the `textDocument/rename`
	 */
	Rename RenameClientCapabilities `json:"rename,omitempty"`
	/**
	 * Capabilities specific to `textDocument/foldingRange` request.
	 *
	 * @since 3.10.0
	 */
	FoldingRange FoldingRangeClientCapabilities `json:"foldingRange,omitempty"`
	/**
	 * Capabilities specific to `textDocument/selectionRange` request.
	 *
	 * @since 3.15.0
	 */
	SelectionRange SelectionRangeClientCapabilities `json:"selectionRange,omitempty"`
	/**
	 * Capabilities specific to `textDocument/publishDiagnostics` notification.
	 */
	PublishDiagnostics PublishDiagnosticsClientCapabilities `json:"publishDiagnostics,omitempty"`
	/**
	 * Capabilities specific to the various call hierarchy request.
	 *
	 * @since 3.16.0
	 */
	CallHierarchy CallHierarchyClientCapabilities `json:"callHierarchy,omitempty"`
	/**
	 * Capabilities specific to the various semantic token request.
	 *
	 * @since 3.16.0
	 */
	SemanticTokens SemanticTokensClientCapabilities `json:"semanticTokens,omitempty"`
	/**
	 * Capabilities specific to the linked editing range request.
	 *
	 * @since 3.16.0
	 */
	LinkedEditingRange LinkedEditingRangeClientCapabilities `json:"linkedEditingRange,omitempty"`
	/**
	 * Client capabilities specific to the moniker request.
	 *
	 * @since 3.16.0
	 */
	Moniker MonikerClientCapabilities `json:"moniker,omitempty"`
}

*

  • Text document specific client capabilities.

type TextDocumentContentChangeEvent

type TextDocumentContentChangeEvent = struct {
	/**
	 * The range of the document that changed.
	 */
	Range *Range `json:"range,omitempty"`
	/**
	 * The optional length of the range that got replaced.
	 *
	 * @deprecated use range instead.
	 */
	RangeLength uint32 `json:"rangeLength,omitempty"`
	/**
	 * The new text for the provided range.
	 */
	Text string `json:"text"`
}

*

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

type TextDocumentEdit struct {
	/**
	 * The text document to change.
	 */
	TextDocument OptionalVersionedTextDocumentIdentifier `json:"textDocument"`
	/**
	 * The edits to be applied.
	 *
	 * @since 3.16.0 - support for AnnotatedTextEdit. This is guarded using a
	 * client capability.
	 */
	Edits []TextEdit `json:"edits"`
}

*

  • Describes textual changes on a text document. A TextDocumentEdit describes all changes
  • on a document 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 of edits or do any
  • kind of ordering. However the edits must be non overlapping.

type TextDocumentIdentifier

type TextDocumentIdentifier struct {
	/**
	 * The text document's uri.
	 */
	URI DocumentURI `json:"uri"`
}

*

  • A literal to identify a text document in the client.

type TextDocumentItem

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 int32 `json:"version"`
	/**
	 * The content of the opened text document.
	 */
	Text string `json:"text"`
}

*

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

type TextDocumentPositionParams

type TextDocumentPositionParams struct {
	/**
	 * The text document.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	/**
	 * The position inside the text document.
	 */
	Position Position `json:"position"`
}

*

  • A parameter literal used in requests to pass a text document and a position inside that
  • document.

type TextDocumentRegistrationOptions

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 text document registration options.

type TextDocumentSaveReason

type TextDocumentSaveReason float64

*

  • Represents reasons why a text document is saved.

type TextDocumentSyncClientCapabilities

type TextDocumentSyncClientCapabilities 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"`
}

type TextDocumentSyncKind

type TextDocumentSyncKind float64

*

  • Defines how the host (editor) should sync
  • document changes to the language server.

type TextDocumentSyncOptions

type TextDocumentSyncOptions struct {
	/**
	 * Open and close notifications are sent to the server. If omitted open close notification should not
	 * be sent.
	 */
	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 TextDocumentSyncKind `json:"change,omitempty"`
	/**
	 * If present will save notifications are sent to the server. If omitted the notification should not be
	 * sent.
	 */
	WillSave bool `json:"willSave,omitempty"`
	/**
	 * If present will save wait until requests are sent to the server. If omitted the request should not be
	 * sent.
	 */
	WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"`
	/**
	 * If present save notifications are sent to the server. If omitted the notification should not be
	 * sent.
	 */
	Save SaveOptions `json:"save,omitempty"`
}

type TextEdit

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"`
}

*

  • A text edit applicable to a text document.

type TokenFormat

type TokenFormat = string

type TraceValues

type TraceValues = string /*'off' | 'messages' | 'verbose'*/

type TypeDefinitionClientCapabilities

type TypeDefinitionClientCapabilities struct {
	/**
	 * Whether implementation supports dynamic registration. If this is set to `true`
	 * the client supports the new `TypeDefinitionRegistrationOptions` return value
	 * for the corresponding server capability as well.
	 */
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
	/**
	 * The client supports additional metadata in the form of definition links.
	 *
	 * Since 3.14.0
	 */
	LinkSupport bool `json:"linkSupport,omitempty"`
}

*

  • Since 3.6.0

type TypeDefinitionOptions

type TypeDefinitionOptions struct {
	WorkDoneProgressOptions
}

type URI

type URI = string

*

  • A tagging type for string properties that are actually URIs *
  • @since 3.16.0

type UnchangedDocumentDiagnosticReport

type UnchangedDocumentDiagnosticReport struct {
	/**
	 * A document diagnostic report indicating
	 * no changes to the last result. A server can
	 * only return `unchanged` if result ids are
	 * provided.
	 */
	Kind string `json:"kind"`
	/**
	 * A result id which will be sent on the next
	 * diagnostic request for the same document.
	 */
	ResultID string `json:"resultId"`
}

*

  • A diagnostic report indicating that the last returned
  • report is still accurate. *
  • @since 3.17.0 - proposed state

type UniquenessLevel

type UniquenessLevel string

*

  • Moniker uniqueness level to define scope of the moniker. *
  • @since 3.16.0

type Unregistration

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 to unregister for.
	 */
	Method string `json:"method"`
}

*

  • General parameters to unregister a request or notification.

type UnregistrationParams

type UnregistrationParams struct {
	Unregisterations []Unregistration `json:"unregisterations"`
}

type VersionedTextDocumentIdentifier

type VersionedTextDocumentIdentifier struct {
	/**
	 * The version number of this document.
	 */
	Version int32 `json:"version"`
	TextDocumentIdentifier
}

*

  • A text document identifier to denote a specific version of a text document.

type WatchKind

type WatchKind float64

type WillSaveTextDocumentParams

type WillSaveTextDocumentParams struct {
	/**
	 * The document that will be saved.
	 */
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	/**
	 * The 'TextDocumentSaveReason'.
	 */
	Reason TextDocumentSaveReason `json:"reason"`
}

*

  • The parameters send in a will save text document notification.

type WorkDoneProgressBegin

type WorkDoneProgressBegin struct {
	Kind string `json:"kind"`
	/**
	 * Mandatory title of the progress operation. Used to briefly inform about
	 * the kind of operation being performed.
	 *
	 * Examples: "Indexing" or "Linking dependencies".
	 */
	Title string `json:"title"`
	/**
	 * Controls if a cancel button should show to allow the user to cancel the
	 * long running operation. Clients that don't support cancellation are allowed
	 * to ignore the setting.
	 */
	Cancellable bool `json:"cancellable,omitempty"`
	/**
	 * Optional, more detailed associated progress message. Contains
	 * complementary information to the `title`.
	 *
	 * Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
	 * If unset, the previous progress message (if any) is still valid.
	 */
	Message string `json:"message,omitempty"`
	/**
	 * Optional progress percentage to display (value 100 is considered 100%).
	 * If not provided infinite progress is assumed and clients are allowed
	 * to ignore the `percentage` value in subsequent in report notifications.
	 *
	 * The value should be steadily rising. Clients are free to ignore values
	 * that are not following this rule. The value range is [0, 100].
	 */
	Percentage uint32 `json:"percentage,omitempty"`
}

type WorkDoneProgressCancelParams

type WorkDoneProgressCancelParams struct {
	/**
	 * The token to be used to report progress.
	 */
	Token ProgressToken `json:"token"`
}

type WorkDoneProgressClientCapabilities

type WorkDoneProgressClientCapabilities struct {
	/**
	 * Window specific client capabilities.
	 */
	Window struct {
		/**
		 * Whether client supports server initiated progress using the
		 * `window/workDoneProgress/create` request.
		 *
		 * Since 3.15.0
		 */
		WorkDoneProgress bool `json:"workDoneProgress,omitempty"`
		/**
		 * Capabilities specific to the showMessage request.
		 *
		 * @since 3.16.0
		 */
		ShowMessage ShowMessageRequestClientCapabilities `json:"showMessage,omitempty"`
		/**
		 * Capabilities specific to the showDocument request.
		 *
		 * @since 3.16.0
		 */
		ShowDocument ShowDocumentClientCapabilities `json:"showDocument,omitempty"`
	} `json:"window,omitempty"`
}

type WorkDoneProgressCreateParams

type WorkDoneProgressCreateParams struct {
	/**
	 * The token to be used to report progress.
	 */
	Token ProgressToken `json:"token"`
}

type WorkDoneProgressEnd

type WorkDoneProgressEnd struct {
	Kind string `json:"kind"`
	/**
	 * Optional, a final message indicating to for example indicate the outcome
	 * of the operation.
	 */
	Message string `json:"message,omitempty"`
}

type WorkDoneProgressOptions

type WorkDoneProgressOptions struct {
	WorkDoneProgress bool `json:"workDoneProgress,omitempty"`
}

type WorkDoneProgressParams

type WorkDoneProgressParams struct {
	/**
	 * An optional token that a server can use to report work done progress.
	 */
	WorkDoneToken ProgressToken `json:"workDoneToken,omitempty"`
}

type WorkDoneProgressReport

type WorkDoneProgressReport struct {
	Kind string `json:"kind"`
	/**
	 * Controls enablement state of a cancel button.
	 *
	 * Clients that don't support cancellation or don't support controlling the button's
	 * enablement state are allowed to ignore the property.
	 */
	Cancellable bool `json:"cancellable,omitempty"`
	/**
	 * Optional, more detailed associated progress message. Contains
	 * complementary information to the `title`.
	 *
	 * Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
	 * If unset, the previous progress message (if any) is still valid.
	 */
	Message string `json:"message,omitempty"`
	/**
	 * Optional progress percentage to display (value 100 is considered 100%).
	 * If not provided infinite progress is assumed and clients are allowed
	 * to ignore the `percentage` value in subsequent in report notifications.
	 *
	 * The value should be steadily rising. Clients are free to ignore values
	 * that are not following this rule. The value range is [0, 100]
	 */
	Percentage uint32 `json:"percentage,omitempty"`
}

type Workspace2Gn

type Workspace2Gn 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 *WorkspaceEditClientCapabilities `json:"workspaceEdit,omitempty"`

	/**
	 * Capabilities specific to the `workspace/didChangeConfiguration` notification.
	 */
	DidChangeConfiguration DidChangeConfigurationClientCapabilities `json:"didChangeConfiguration,omitempty"`

	/**
	 * Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
	 */
	DidChangeWatchedFiles DidChangeWatchedFilesClientCapabilities `json:"didChangeWatchedFiles,omitempty"`

	/**
	 * Capabilities specific to the `workspace/symbol` request.
	 */
	Symbol *WorkspaceSymbolClientCapabilities `json:"symbol,omitempty"`

	/**
	 * Capabilities specific to the `workspace/executeCommand` request.
	 */
	ExecuteCommand ExecuteCommandClientCapabilities `json:"executeCommand,omitempty"`

	/**
	 * Capabilities specific to the semantic token requests scoped to the
	 * workspace.
	 *
	 * @since 3.16.0.
	 */
	SemanticTokens SemanticTokensWorkspaceClientCapabilities `json:"semanticTokens,omitempty"`

	/**
	 * Capabilities specific to the code lens requests scoped to the
	 * workspace.
	 *
	 * @since 3.16.0.
	 */
	CodeLens CodeLensWorkspaceClientCapabilities `json:"codeLens,omitempty"`

	/**
	 * The client has support for file notifications/requests for user operations on files.
	 *
	 * Since 3.16.0
	 */
	FileOperations *FileOperationClientCapabilities `json:"fileOperations,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"`
}

type Workspace3Gn

type Workspace3Gn 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 *WorkspaceEditClientCapabilities `json:"workspaceEdit,omitempty"`

	/**
	 * Capabilities specific to the `workspace/didChangeConfiguration` notification.
	 */
	DidChangeConfiguration DidChangeConfigurationClientCapabilities `json:"didChangeConfiguration,omitempty"`

	/**
	 * Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
	 */
	DidChangeWatchedFiles DidChangeWatchedFilesClientCapabilities `json:"didChangeWatchedFiles,omitempty"`

	/**
	 * Capabilities specific to the `workspace/symbol` request.
	 */
	Symbol *WorkspaceSymbolClientCapabilities `json:"symbol,omitempty"`

	/**
	 * Capabilities specific to the `workspace/executeCommand` request.
	 */
	ExecuteCommand ExecuteCommandClientCapabilities `json:"executeCommand,omitempty"`

	/**
	 * Capabilities specific to the semantic token requests scoped to the
	 * workspace.
	 *
	 * @since 3.16.0.
	 */
	SemanticTokens SemanticTokensWorkspaceClientCapabilities `json:"semanticTokens,omitempty"`

	/**
	 * Capabilities specific to the code lens requests scoped to the
	 * workspace.
	 *
	 * @since 3.16.0.
	 */
	CodeLens CodeLensWorkspaceClientCapabilities `json:"codeLens,omitempty"`

	/**
	 * The client has support for file notifications/requests for user operations on files.
	 *
	 * Since 3.16.0
	 */
	FileOperations *FileOperationClientCapabilities `json:"fileOperations,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"`
}

type Workspace5Gn

type Workspace5Gn struct {
	/**
	* The server is interested in notifications/requests for operations on files.
	*
	* @since 3.16.0
	 */
	FileOperations *FileOperationOptions `json:"fileOperations,omitempty"`

	WorkspaceFolders WorkspaceFolders4Gn `json:"workspaceFolders,omitempty"`
}

type Workspace6Gn

type Workspace6Gn 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 *WorkspaceEditClientCapabilities `json:"workspaceEdit,omitempty"`

	/**
	 * Capabilities specific to the `workspace/didChangeConfiguration` notification.
	 */
	DidChangeConfiguration DidChangeConfigurationClientCapabilities `json:"didChangeConfiguration,omitempty"`

	/**
	 * Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
	 */
	DidChangeWatchedFiles DidChangeWatchedFilesClientCapabilities `json:"didChangeWatchedFiles,omitempty"`

	/**
	 * Capabilities specific to the `workspace/symbol` request.
	 */
	Symbol *WorkspaceSymbolClientCapabilities `json:"symbol,omitempty"`

	/**
	 * Capabilities specific to the `workspace/executeCommand` request.
	 */
	ExecuteCommand ExecuteCommandClientCapabilities `json:"executeCommand,omitempty"`

	/**
	 * Capabilities specific to the semantic token requests scoped to the
	 * workspace.
	 *
	 * @since 3.16.0.
	 */
	SemanticTokens SemanticTokensWorkspaceClientCapabilities `json:"semanticTokens,omitempty"`

	/**
	 * Capabilities specific to the code lens requests scoped to the
	 * workspace.
	 *
	 * @since 3.16.0.
	 */
	CodeLens CodeLensWorkspaceClientCapabilities `json:"codeLens,omitempty"`

	/**
	 * The client has support for file notifications/requests for user operations on files.
	 *
	 * Since 3.16.0
	 */
	FileOperations *FileOperationClientCapabilities `json:"fileOperations,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"`
}

type Workspace8Gn

type Workspace8Gn struct {
	/**
	* The server is interested in notifications/requests for operations on files.
	*
	* @since 3.16.0
	 */
	FileOperations *FileOperationOptions `json:"fileOperations,omitempty"`

	WorkspaceFolders WorkspaceFolders7Gn `json:"workspaceFolders,omitempty"`
}

type WorkspaceClientCapabilities

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 WorkspaceEditClientCapabilities `json:"workspaceEdit,omitempty"`
	/**
	 * Capabilities specific to the `workspace/didChangeConfiguration` notification.
	 */
	DidChangeConfiguration DidChangeConfigurationClientCapabilities `json:"didChangeConfiguration,omitempty"`
	/**
	 * Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
	 */
	DidChangeWatchedFiles DidChangeWatchedFilesClientCapabilities `json:"didChangeWatchedFiles,omitempty"`
	/**
	 * Capabilities specific to the `workspace/symbol` request.
	 */
	Symbol WorkspaceSymbolClientCapabilities `json:"symbol,omitempty"`
	/**
	 * Capabilities specific to the `workspace/executeCommand` request.
	 */
	ExecuteCommand ExecuteCommandClientCapabilities `json:"executeCommand,omitempty"`
	/**
	 * Capabilities specific to the semantic token requests scoped to the
	 * workspace.
	 *
	 * @since 3.16.0.
	 */
	SemanticTokens SemanticTokensWorkspaceClientCapabilities `json:"semanticTokens,omitempty"`
	/**
	 * Capabilities specific to the code lens requests scoped to the
	 * workspace.
	 *
	 * @since 3.16.0.
	 */
	CodeLens CodeLensWorkspaceClientCapabilities `json:"codeLens,omitempty"`
	/**
	 * The client has support for file notifications/requests for user operations on files.
	 *
	 * Since 3.16.0
	 */
	FileOperations FileOperationClientCapabilities `json:"fileOperations,omitempty"`
}

*

  • Workspace specific client capabilities.

type WorkspaceDiagnosticParams

type WorkspaceDiagnosticParams struct {
	/**
	 * The additional identifier provided during registration.
	 */
	Identifier string `json:"identifier,omitempty"`
	/**
	 * The currently known diagnostic reports with their
	 * previous result ids.
	 */
	PreviousResultIds []PreviousResultID `json:"previousResultIds"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • Parameters of the workspace diagnostic request. *
  • @since 3.17.0 - proposed state

type WorkspaceDiagnosticReport

type WorkspaceDiagnosticReport struct {
	Items []WorkspaceDocumentDiagnosticReport `json:"items"`
}

*

  • A workspace diagnostic report. *
  • @since 3.17.0 - proposed state

type WorkspaceDocumentDiagnosticReport

type WorkspaceDocumentDiagnosticReport = interface{} /*WorkspaceFullDocumentDiagnosticReport | WorkspaceUnchangedDocumentDiagnosticReport*/

*

  • A workspace diagnostic document report. *
  • @since 3.17.0 - proposed state

type WorkspaceEdit

type WorkspaceEdit struct {
	/**
	 * Holds changes to existing resources.
	 */
	Changes map[string][]TextEdit `json:"changes,omitempty"`
	/**
	 * Depending on the client capability `workspace.workspaceEdit.resourceOperations` document changes
	 * are either 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. Or it can contain
	 * above `TextDocumentEdit`s mixed with create, rename and delete file / folder operations.
	 *
	 * Whether a client supports versioned document edits is expressed via
	 * `workspace.workspaceEdit.documentChanges` client capability.
	 *
	 * If a client neither supports `documentChanges` nor `workspace.workspaceEdit.resourceOperations` then
	 * only plain `TextEdit`s using the `changes` property are supported.
	 */
	DocumentChanges []TextDocumentEdit `json:"documentChanges,omitempty"`
	/**
	 * A map of change annotations that can be referenced in `AnnotatedTextEdit`s or create, rename and
	 * delete file / folder operations.
	 *
	 * Whether clients honor this property depends on the client capability `workspace.changeAnnotationSupport`.
	 *
	 * @since 3.16.0
	 */
	ChangeAnnotations map[string]ChangeAnnotationIdentifier `json:"changeAnnotations,omitempty"`
}

*

  • A workspace edit represents changes to many resources managed in the workspace. The edit
  • should either provide `changes` or `documentChanges`. If documentChanges are present
  • they are preferred over `changes` if the client can handle versioned document edits. *
  • Since version 3.13.0 a workspace edit can contain resource operations as well. If resource
  • operations are present clients need to execute the operations in the order in which they
  • are provided. So a workspace edit for example can consist of the following two changes:
  • (1) a create file a.txt and (2) a text document edit which insert text into file a.txt. *
  • An invalid sequence (e.g. (1) delete file a.txt and (2) insert text into file a.txt) will
  • cause failure of the operation. How the client recovers from the failure is described by
  • the client capability: `workspace.workspaceEdit.failureHandling`

type WorkspaceEditClientCapabilities

type WorkspaceEditClientCapabilities struct {
	/**
	 * The client supports versioned document changes in `WorkspaceEdit`s
	 */
	DocumentChanges bool `json:"documentChanges,omitempty"`
	/**
	 * The resource operations the client supports. Clients should at least
	 * support 'create', 'rename' and 'delete' files and folders.
	 *
	 * @since 3.13.0
	 */
	ResourceOperations []ResourceOperationKind `json:"resourceOperations,omitempty"`
	/**
	 * The failure handling strategy of a client if applying the workspace edit
	 * fails.
	 *
	 * @since 3.13.0
	 */
	FailureHandling FailureHandlingKind `json:"failureHandling,omitempty"`
	/**
	 * Whether the client normalizes line endings to the client specific
	 * setting.
	 * If set to `true` the client will normalize line ending characters
	 * in a workspace edit containing to the client specific new line
	 * character.
	 *
	 * @since 3.16.0
	 */
	NormalizesLineEndings bool `json:"normalizesLineEndings,omitempty"`
	/**
	 * Whether the client in general supports change annotations on text edits,
	 * create file, rename file and delete file changes.
	 *
	 * @since 3.16.0
	 */
	ChangeAnnotationSupport struct {
		/**
		 * Whether the client groups edits with equal labels into tree nodes,
		 * for instance all edits labelled with "Changes in Strings" would
		 * be a tree node.
		 */
		GroupsOnLabel bool `json:"groupsOnLabel,omitempty"`
	} `json:"changeAnnotationSupport,omitempty"`
}

type WorkspaceFolder

type WorkspaceFolder struct {
	/**
	 * The associated URI for this workspace folder.
	 */
	URI string `json:"uri"`
	/**
	 * The name of the workspace folder. Used to refer to this
	 * workspace folder in the user interface.
	 */
	Name string `json:"name"`
}

type WorkspaceFolders4Gn

type WorkspaceFolders4Gn 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 string `json:"changeNotifications,omitempty"`
}

type WorkspaceFolders7Gn

type WorkspaceFolders7Gn 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 string `json:"changeNotifications,omitempty"`
}

type WorkspaceFoldersChangeEvent

type WorkspaceFoldersChangeEvent struct {
	/**
	 * The array of added workspace folders
	 */
	Added []WorkspaceFolder `json:"added"`
	/**
	 * The array of the removed workspace folders
	 */
	Removed []WorkspaceFolder `json:"removed"`
}

*

  • The workspace folder change event.

type WorkspaceFoldersClientCapabilities

type WorkspaceFoldersClientCapabilities struct {
	/**
	 * The workspace client capabilities
	 */
	Workspace Workspace6Gn `json:"workspace,omitempty"`
}

type WorkspaceFoldersInitializeParams

type WorkspaceFoldersInitializeParams struct {
	/**
	 * The actual configured workspace folders.
	 */
	WorkspaceFolders []WorkspaceFolder `json:"workspaceFolders"`
}

type WorkspaceFoldersServerCapabilities

type WorkspaceFoldersServerCapabilities struct {
	/**
	 * The workspace server capabilities
	 */
	Workspace Workspace8Gn `json:"workspace,omitempty"`
}

type WorkspaceFullDocumentDiagnosticReport

type WorkspaceFullDocumentDiagnosticReport struct {
	/**
	 * The URI for which diagnostic information is reported.
	 */
	URI DocumentURI `json:"uri"`
	/**
	 * The version number for which the diagnostics are reported.
	 * If the document is not marked as open `null` can be provided.
	 */
	Version int32 `json:"version"`
	FullDocumentDiagnosticReport
}

*

  • A full document diagnostic report for a workspace diagnostic result. *
  • @since 3.17.0 - proposed state

type WorkspaceSymbolClientCapabilities

type WorkspaceSymbolClientCapabilities 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"`
	/**
	 * The client supports tags on `SymbolInformation`.
	 * Clients supporting tags have to handle unknown tags gracefully.
	 *
	 * @since 3.16.0
	 */
	TagSupport struct {
		/**
		 * The tags supported by the client.
		 */
		ValueSet []SymbolTag `json:"valueSet"`
	} `json:"tagSupport,omitempty"`
}

*

  • Client capabilities for a [WorkspaceSymbolRequest](#WorkspaceSymbolRequest).

type WorkspaceSymbolOptions

type WorkspaceSymbolOptions struct {
	WorkDoneProgressOptions
}

*

  • Server capabilities for a [WorkspaceSymbolRequest](#WorkspaceSymbolRequest).

type WorkspaceSymbolParams

type WorkspaceSymbolParams struct {
	/**
	 * A query string to filter symbols by. Clients may send an empty
	 * string here to request all symbols.
	 */
	Query string `json:"query"`
	WorkDoneProgressParams
	PartialResultParams
}

*

  • The parameters of a [WorkspaceSymbolRequest](#WorkspaceSymbolRequest).

type WorkspaceUnchangedDocumentDiagnosticReport

type WorkspaceUnchangedDocumentDiagnosticReport struct {
	/**
	 * The URI for which diagnostic information is reported.
	 */
	URI DocumentURI `json:"uri"`
	/**
	 * The version number for which the diagnostics are reported.
	 * If the document is not marked as open `null` can be provided.
	 */
	Version int32 `json:"version"`
	UnchangedDocumentDiagnosticReport
}

*

  • An unchanged document diagnostic report for a workspace diagnostic result. *
  • @since 3.17.0 - proposed state

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL