@types/vscode

  • Version 1.99.1
  • Published
  • 711 kB
  • No dependencies
  • MIT license

Install

npm i @types/vscode
yarn add @types/vscode
pnpm add @types/vscode

Overview

TypeScript definitions for vscode

Index

Namespaces

Namespaces

namespace vscode

module 'vscode' {}
  • Type Definition for Visual Studio Code 1.99 Extension API See https://code.visualstudio.com/api for more information

variable version

const version: string;
  • The version of the editor.

class BranchCoverage

class BranchCoverage {}

constructor

constructor(
executed: number | boolean,
location?: Range | Position,
label?: string
);
  • Parameter executed

    The number of times this branch was executed, or a boolean indicating whether it was executed if the exact count is unknown. If zero or false, the branch will be marked as un-covered.

    Parameter location

    The branch position.

property executed

executed: number | boolean;
  • The number of times this branch was executed, or a boolean indicating whether it was executed if the exact count is unknown. If zero or false, the branch will be marked as un-covered.

property label

label?: string;
  • Label for the branch, used in the context of "the ${label} branch was not taken," for example.

property location

location?: Range | Position;
  • Branch location.

class Breakpoint

class Breakpoint {}
  • The base class of all breakpoint types.

constructor

protected constructor(
enabled?: boolean,
condition?: string,
hitCondition?: string,
logMessage?: string
);
  • Creates a new breakpoint

    Parameter enabled

    Is breakpoint enabled.

    Parameter condition

    Expression for conditional breakpoints

    Parameter hitCondition

    Expression that controls how many hits of the breakpoint are ignored

    Parameter logMessage

    Log message to display when breakpoint is hit

property condition

readonly condition?: string;
  • An optional expression for conditional breakpoints.

property enabled

readonly enabled: boolean;
  • Is breakpoint enabled.

property hitCondition

readonly hitCondition?: string;
  • An optional expression that controls how many hits of the breakpoint are ignored.

property id

readonly id: string;
  • The unique ID of the breakpoint.

property logMessage

readonly logMessage?: string;
  • An optional message that gets logged when this breakpoint is hit. Embedded expressions within {} are interpolated by the debug adapter.

class CallHierarchyIncomingCall

class CallHierarchyIncomingCall {}
  • Represents an incoming call, e.g. a caller of a method or constructor.

constructor

constructor(item: CallHierarchyItem, fromRanges: Range[]);
  • Create a new call object.

    Parameter item

    The item making the call.

    Parameter fromRanges

    The ranges at which the calls appear.

property from

from: CallHierarchyItem;
  • The item that makes the call.

property fromRanges

fromRanges: Range[];
  • The range at which at which the calls appears. This is relative to the caller denoted by .

class CallHierarchyItem

class CallHierarchyItem {}
  • Represents programming constructs like functions or constructors in the context of call hierarchy.

constructor

constructor(
kind: SymbolKind,
name: string,
detail: string,
uri: Uri,
range: Range,
selectionRange: Range
);
  • Creates a new call hierarchy item.

property detail

detail?: string;
  • More detail for this item, e.g. the signature of a function.

property kind

kind: SymbolKind;
  • The kind of this item.

property name

name: string;
  • The name of this item.

property range

range: Range;
  • The range enclosing this symbol not including leading/trailing whitespace but everything else, e.g. comments and code.

property selectionRange

selectionRange: 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 .

property tags

tags?: readonly SymbolTag[];
  • Tags for this item.

property uri

uri: Uri;
  • The resource identifier of this item.

class CallHierarchyOutgoingCall

class CallHierarchyOutgoingCall {}
  • Represents an outgoing call, e.g. calling a getter from a method or a method from a constructor etc.

constructor

constructor(item: CallHierarchyItem, fromRanges: Range[]);
  • Create a new call object.

    Parameter item

    The item being called

    Parameter fromRanges

    The ranges at which the calls appear.

property fromRanges

fromRanges: Range[];
  • The range at which this item is called. This is the range relative to the caller, e.g the item passed to and not .

property to

to: CallHierarchyItem;
  • The item that is called.

class CancellationError

class CancellationError extends Error {}
  • An error type that should be used to signal cancellation of an operation.

    This type can be used in response to a being cancelled or when an operation is being cancelled by the executor of that operation.

constructor

constructor();
  • Creates a new cancellation error.

class CancellationTokenSource

class CancellationTokenSource {}
  • A cancellation source creates and controls a .

property token

token: CancellationToken;
  • The cancellation token of this source.

method cancel

cancel: () => void;
  • Signal cancellation on the token.

method dispose

dispose: () => void;
  • Dispose object and free resources.

class ChatRequestTurn

class ChatRequestTurn {}
  • Represents a user request in chat history.

property command

readonly command?: string;
  • The name of the that was selected for this request.

property participant

readonly participant: string;
  • The id of the chat participant to which this request was directed.

property prompt

readonly prompt: string;
  • The prompt as entered by the user.

    Information about references used in this request is stored in ChatRequestTurn.references.

    *Note* that the of the participant and the are not part of the prompt.

property references

readonly references: ChatPromptReference[];
  • The references that were used in this message.

property toolReferences

readonly toolReferences: readonly ChatLanguageModelToolReference[];
  • The list of tools were attached to this request.

class ChatResponseAnchorPart

class ChatResponseAnchorPart {}
  • Represents a part of a chat response that is an anchor, that is rendered as a link to a target.

constructor

constructor(value: Uri | Location, title?: string);
  • Create a new ChatResponseAnchorPart.

    Parameter value

    A uri or location.

    Parameter title

    An optional title that is rendered with value.

property title

title?: string;
  • An optional title that is rendered with value.

property value

value: Uri | Location;
  • The target of this anchor.

class ChatResponseCommandButtonPart

class ChatResponseCommandButtonPart {}
  • Represents a part of a chat response that is a button that executes a command.

constructor

constructor(value: Command);
  • Create a new ChatResponseCommandButtonPart.

    Parameter value

    A Command that will be executed when the button is clicked.

property value

value: Command;
  • The command that will be executed when the button is clicked.

class ChatResponseFileTreePart

class ChatResponseFileTreePart {}
  • Represents a part of a chat response that is a file tree.

constructor

constructor(value: ChatResponseFileTree[], baseUri: Uri);
  • Create a new ChatResponseFileTreePart.

    Parameter value

    File tree data.

    Parameter baseUri

    The base uri to which this file tree is relative.

property baseUri

baseUri: Uri;
  • The base uri to which this file tree is relative

property value

value: ChatResponseFileTree[];
  • File tree data.

class ChatResponseMarkdownPart

class ChatResponseMarkdownPart {}
  • Represents a part of a chat response that is formatted as Markdown.

constructor

constructor(value: string | MarkdownString);
  • Create a new ChatResponseMarkdownPart.

    Parameter value

    A markdown string or a string that should be interpreted as markdown. The boolean form of MarkdownString.isTrusted is NOT supported.

property value

value: MarkdownString;
  • A markdown string or a string that should be interpreted as markdown.

class ChatResponseProgressPart

class ChatResponseProgressPart {}
  • Represents a part of a chat response that is a progress message.

constructor

constructor(value: string);
  • Create a new ChatResponseProgressPart.

    Parameter value

    A progress message

property value

value: string;
  • The progress message

class ChatResponseReferencePart

class ChatResponseReferencePart {}
  • Represents a part of a chat response that is a reference, rendered separately from the content.

constructor

constructor(value: Uri | Location, iconPath?: IconPath);
  • Create a new ChatResponseReferencePart.

    Parameter value

    A uri or location

    Parameter iconPath

    Icon for the reference shown in UI

property iconPath

iconPath?: IconPath;
  • The icon for the reference.

property value

value: Uri | Location;
  • The reference target.

class ChatResponseTurn

class ChatResponseTurn {}
  • Represents a chat participant's response in chat history.

property command

readonly command?: string;
  • The name of the command that this response came from.

property participant

readonly participant: string;
  • The id of the chat participant that this response came from.

property response

readonly response: readonly (
| ChatResponseMarkdownPart
| ChatResponseFileTreePart
| ChatResponseAnchorPart
| ChatResponseCommandButtonPart
)[];
  • The content that was received from the chat participant. Only the stream parts that represent actual content (not metadata) are represented.

property result

readonly result: ChatResult;
  • The result that was received from the chat participant.

class CodeAction

class CodeAction {}
  • 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 and/or a . If both are supplied, the edit is applied first, then the command is executed.

constructor

constructor(title: string, kind?: CodeActionKind);
  • Creates a new code action.

    A code action must have at least a and and/or a .

    Parameter title

    The title of the code action.

    Parameter kind

    The kind of the code action.

property command

command?: Command;
  • A Command this code action executes.

    If this command throws an exception, the editor displays the exception message to users in the editor at the current cursor position.

property diagnostics

diagnostics?: Diagnostic[];
  • that this code action resolves.

property disabled

disabled?: { readonly reason: string };
  • Marks that the code action cannot currently be applied.

    - 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 editor will show the user an error message with reason in the editor.

property edit

edit?: WorkspaceEdit;
  • A this code action performs.

property isPreferred

isPreferred?: boolean;
  • 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.

property kind

kind?: CodeActionKind;
  • of the code action.

    Used to filter code actions.

property title

title: string;
  • A short, human-readable, title for this code action.

class CodeActionKind

class CodeActionKind {}
  • Kind of a code action.

    Kinds are a hierarchical list of identifiers separated by ., e.g. "refactor.extract.function".

    Code action kinds are used by the editor for UI elements such as the refactoring context menu. Users can also trigger code actions with a specific kind with the editor.action.codeAction command.

property Empty

static readonly Empty: CodeActionKind;
  • Empty kind.

property Notebook

static readonly Notebook: CodeActionKind;
  • Base kind for all code actions applying to the entire notebook's scope. CodeActionKinds using this should always begin with notebook.

    This requires that new CodeActions be created for it and contributed via extensions. Pre-existing kinds can not just have the new notebook. prefix added to them, as the functionality is unique to the full-notebook scope.

    Notebook CodeActionKinds can be initialized as either of the following (both resulting in notebook.source.xyz): - const newKind = CodeActionKind.Notebook.append(CodeActionKind.Source.append('xyz').value) - const newKind = CodeActionKind.Notebook.append('source.xyz')

    Example Kinds/Actions: - notebook.source.organizeImports (might move all imports to a new top cell) - notebook.source.normalizeVariableNames (might rename all variables to a standardized casing format)

property QuickFix

static readonly QuickFix: CodeActionKind;
  • Base kind for quickfix actions: quickfix.

    Quick fix actions address a problem in the code and are shown in the normal code action context menu.

property Refactor

static readonly Refactor: CodeActionKind;
  • Base kind for refactoring actions: refactor

    Refactoring actions are shown in the refactoring context menu.

property RefactorExtract

static readonly RefactorExtract: CodeActionKind;
  • Base kind for refactoring extraction actions: refactor.extract

    Example extract actions:

    - Extract method - Extract function - Extract variable - Extract interface from class - ...

property RefactorInline

static readonly RefactorInline: CodeActionKind;
  • Base kind for refactoring inline actions: refactor.inline

    Example inline actions:

    - Inline function - Inline variable - Inline constant - ...

property RefactorMove

static readonly RefactorMove: CodeActionKind;
  • Base kind for refactoring move actions: refactor.move

    Example move actions:

    - Move a function to a new file - Move a property between classes - Move method to base class - ...

property RefactorRewrite

static readonly RefactorRewrite: CodeActionKind;
  • Base kind for refactoring rewrite actions: refactor.rewrite

    Example rewrite actions:

    - Convert JavaScript function to class - Add or remove parameter - Encapsulate field - Make method static - ...

property Source

static readonly Source: CodeActionKind;
  • Base kind for source actions: source

    Source code actions apply to the entire file. They must be explicitly requested and will not show in the normal [lightbulb](https://code.visualstudio.com/docs/editor/editingevolved#_code-action) menu. Source actions can be run on save using editor.codeActionsOnSave and are also shown in the source context menu.

property SourceFixAll

static readonly SourceFixAll: CodeActionKind;
  • Base kind for auto-fix source actions: source.fixAll.

    Fix all actions automatically fix errors that have a clear fix that do not require user input. They should not suppress errors or perform unsafe fixes such as generating new types or classes.

property SourceOrganizeImports

static readonly SourceOrganizeImports: CodeActionKind;
  • Base kind for an organize imports source action: source.organizeImports.

property value

readonly value: string;
  • String value of the kind, e.g. "refactor.extract.function".

method append

append: (parts: string) => CodeActionKind;
  • Create a new kind by appending a more specific selector to the current kind.

    Does not modify the current kind.

method contains

contains: (other: CodeActionKind) => boolean;
  • Checks if other is a sub-kind of this CodeActionKind.

    The kind "refactor.extract" for example contains "refactor.extract" and ``"refactor.extract.function"`, but not "unicorn.refactor.extract", or "refactor.extractAll" or refactor.

    Parameter other

    Kind to check.

method intersects

intersects: (other: CodeActionKind) => boolean;
  • Checks if this code action kind intersects other.

    The kind "refactor.extract" for example intersects refactor, "refactor.extract" and "refactor.extract.function", but not "unicorn.refactor.extract", or "refactor.extractAll".

    Parameter other

    Kind to check.

class CodeLens

class CodeLens {}
  • A code lens represents a Command that should be shown along with source text, like the number of references, a way to run tests, etc.

    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.

    See Also

constructor

constructor(range: Range, command?: Command);
  • Creates a new code lens object.

    Parameter range

    The range to which this code lens applies.

    Parameter command

    The command associated to this code lens.

property command

command?: Command;
  • The command this code lens represents.

property isResolved

readonly isResolved: boolean;
  • true when there is a command associated.

property range

range: Range;
  • The range in which this code lens is valid. Should only span a single line.

class Color

class Color {}
  • Represents a color in RGBA space.

constructor

constructor(red: number, green: number, blue: number, alpha: number);
  • Creates a new color instance.

    Parameter red

    The red component.

    Parameter green

    The green component.

    Parameter blue

    The blue component.

    Parameter alpha

    The alpha component.

property alpha

readonly alpha: number;
  • The alpha component of this color in the range [0-1].

property blue

readonly blue: number;
  • The blue component of this color in the range [0-1].

property green

readonly green: number;
  • The green component of this color in the range [0-1].

property red

readonly red: number;
  • The red component of this color in the range [0-1].

class ColorInformation

class ColorInformation {}
  • Represents a color range from a document.

constructor

constructor(range: Range, color: Color);
  • Creates a new color range.

    Parameter range

    The range the color appears in. Must not be empty.

    Parameter color

    The value of the color.

property color

color: Color;
  • The actual color value for this color range.

property range

range: Range;
  • The range in the document where this color appears.

class ColorPresentation

class ColorPresentation {}
  • A color presentation object describes how a should be represented as text and what edits are required to refer to it from source code.

    For some languages one color can have multiple presentations, e.g. css can represent the color red with the constant Red, the hex-value #ff0000, or in rgba and hsla forms. In csharp other representations apply, e.g. System.Drawing.Color.Red.

constructor

constructor(label: string);
  • Creates a new color presentation.

    Parameter label

    The label of this color presentation.

property additionalTextEdits

additionalTextEdits?: TextEdit[];
  • An optional array of additional that are applied when selecting this color presentation. Edits must not overlap with the main nor with themselves.

property label

label: string;
  • 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.

property textEdit

textEdit?: TextEdit;
  • An which is applied to a document when selecting this presentation for the color. When falsy the is used.

class CompletionItem

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

    It is sufficient to create a completion item from just a . In that case the completion item will replace the until the cursor with the given label or . Otherwise the given is used.

    When selecting a completion item in the editor its defined or synthesized text edit will be applied to *all* cursors/selections whereas will be applied as provided.

    See Also

constructor

constructor(label: string | CompletionItemLabel, kind?: CompletionItemKind);
  • Creates a new completion item.

    Completion items must have at least a which then will be used as insert text as well as for sorting and filtering.

    Parameter label

    The label of the completion.

    Parameter kind

    The of the completion.

property additionalTextEdits

additionalTextEdits?: TextEdit[];
  • An optional array of additional that are applied when selecting this completion. Edits must not overlap with the main nor with themselves.

property command

command?: Command;
  • An optional Command that is executed *after* inserting this completion. *Note* that additional modifications to the current document should be described with the -property.

property commitCharacters

commitCharacters?: string[];
  • 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.

property detail

detail?: string;
  • A human-readable string with additional information about this item, like type or symbol information.

property documentation

documentation?: string | MarkdownString;
  • A human-readable string that represents a doc-comment.

property filterText

filterText?: string;
  • A string that should be used when filtering a set of completion items. When falsy the is used.

    Note that the filter text is matched against the leading word (prefix) which is defined by the -property.

property insertText

insertText?: string | SnippetString;
  • A string or snippet that should be inserted in a document when selecting this completion. When falsy the is used.

property keepWhitespace

keepWhitespace?: boolean;
  • Keep whitespace of the as is. By default, the editor adjusts leading whitespace of new lines so that they match the indentation of the line for which the item is accepted - setting this to true will prevent that.

property kind

kind?: CompletionItemKind;
  • The kind of this completion item. Based on the kind an icon is chosen by the editor.

property label

label: string | CompletionItemLabel;
  • The label of this completion item. By default this is also the text that is inserted when selecting this completion.

property preselect

preselect?: boolean;
  • Select this item when showing. *Note* that only one completion item can be selected and that the editor decides which item that is. The rule is that the *first* item of those that match best is selected.

property range

range?: Range | { inserting: Range; replacing: Range };
  • A range or a insert and replace range selecting the text that should be replaced by this completion item.

    When omitted, the range of the is used as replace-range and as insert-range the start of the to the current position is used.

    *Note 1:* A range must be a and it must the position at which completion has been . *Note 2:* A insert range must be a prefix of a replace range, that means it must be contained and starting at the same position.

property sortText

sortText?: string;
  • A string that should be used when comparing this item with other items. When falsy the is used.

    Note that sortText is only used for the initial ordering of completion items. When having a leading word (prefix) ordering is based on how well completions match that prefix and the initial ordering is only used when completions match equally well. The prefix is defined by the -property and can therefore be different for each completion.

property tags

tags?: readonly CompletionItemTag[];
  • Tags for this completion item.

property textEdit

textEdit?: TextEdit;
  • Deprecated

    Use CompletionItem.insertText and CompletionItem.range instead.

    An which is applied to a document when selecting this completion. When an edit is provided the value of is ignored.

    The Range of the edit must be single-line and on the same line completions were at.

class CompletionList

class CompletionList<T extends CompletionItem = CompletionItem> {}
  • Represents a collection of to be presented in the editor.

constructor

constructor(items?: T[], isIncomplete?: boolean);
  • Creates a new completion list.

    Parameter items

    The completion items.

    Parameter isIncomplete

    The list is not complete.

property isIncomplete

isIncomplete?: boolean;
  • This list is not complete. Further typing should result in recomputing this list.

property items

items: T[];
  • The completion items.

class CustomExecution

class CustomExecution {}
  • Class used to execute an extension callback as a task.

constructor

constructor(
callback: (resolvedDefinition: TaskDefinition) => Thenable<Pseudoterminal>
);
  • Constructs a CustomExecution task object. The callback will be executed when the task is run, at which point the extension should return the Pseudoterminal it will "run in". The task should wait to do further execution until Pseudoterminal.open is called. Task cancellation should be handled using Pseudoterminal.close. When the task is complete fire Pseudoterminal.onDidClose.

    Parameter callback

    The callback that will be called when the task is started by a user. Any ${} style variables that were in the task definition will be resolved and passed into the callback as resolvedDefinition.

class DataTransfer

class DataTransfer implements Iterable<[mimeType: string, item: DataTransferItem]> {}
  • A map containing a mapping of the mime type of the corresponding transferred data.

    Drag and drop controllers that implement can add additional mime types to the data transfer. These additional mime types will only be included in the handleDrop when the drag was initiated from an element in the same drag and drop controller.

method [Symbol.iterator]

[Symbol.iterator]: () => IterableIterator<
[mimeType: string, item: DataTransferItem]
>;
  • Get a new iterator with the [mime, item] pairs for each element in this data transfer.

method forEach

forEach: (
callbackfn: (
item: DataTransferItem,
mimeType: string,
dataTransfer: DataTransfer
) => void,
thisArg?: any
) => void;
  • Allows iteration through the data transfer items.

    Parameter callbackfn

    Callback for iteration through the data transfer items.

    Parameter thisArg

    The this context used when invoking the handler function.

method get

get: (mimeType: string) => DataTransferItem | undefined;
  • Retrieves the data transfer item for a given mime type.

    Parameter mimeType

    The mime type to get the data transfer item for, such as text/plain or image/png. Mimes type look ups are case-insensitive.

    Special mime types: - text/uri-list — A string with toString()ed Uris separated by \r\n. To specify a cursor position in the file, set the Uri's fragment to L3,5, where 3 is the line number and 5 is the column number.

method set

set: (mimeType: string, value: DataTransferItem) => void;
  • Sets a mime type to data transfer item mapping.

    Parameter mimeType

    The mime type to set the data for. Mimes types stored in lower case, with case-insensitive looks up.

    Parameter value

    The data transfer item for the given mime type.

class DataTransferItem

class DataTransferItem {}
  • Encapsulates data transferred during drag and drop operations.

constructor

constructor(value: any);
  • Parameter value

    Custom data stored on this item. Can be retrieved using .

property value

readonly value: any;
  • Custom data stored on this item.

    You can use value to share data across operations. The original object can be retrieved so long as the extension that created the DataTransferItem runs in the same extension host.

method asFile

asFile: () => DataTransferFile | undefined;
  • Try getting the associated with this data transfer item.

    Note that the file object is only valid for the scope of the drag and drop operation.

    Returns

    The file for the data transfer or undefined if the item is either not a file or the file data cannot be accessed.

method asString

asString: () => Thenable<string>;
  • Get a string representation of this item.

    If is an object, this returns the result of json stringifying value.

class DebugAdapterExecutable

class DebugAdapterExecutable {}
  • Represents a debug adapter executable and optional arguments and runtime options passed to it.

constructor

constructor(
command: string,
args?: string[],
options?: DebugAdapterExecutableOptions
);
  • Creates a description for a debug adapter based on an executable program.

    Parameter command

    The command or executable path that implements the debug adapter.

    Parameter args

    Optional arguments to be passed to the command or executable.

    Parameter options

    Optional options to be used when starting the command or executable.

property args

readonly args: string[];
  • The arguments passed to the debug adapter executable. Defaults to an empty array.

property command

readonly command: string;
  • The command or path of the debug adapter executable. A command must be either an absolute path of an executable or the name of an command to be looked up via the PATH environment variable. The special value 'node' will be mapped to the editor's built-in Node.js runtime.

property options

readonly options?: DebugAdapterExecutableOptions;
  • Optional options to be used when the debug adapter is started. Defaults to undefined.

class DebugAdapterInlineImplementation

class DebugAdapterInlineImplementation {}
  • A debug adapter descriptor for an inline implementation.

constructor

constructor(implementation: DebugAdapter);
  • Create a descriptor for an inline implementation of a debug adapter.

class DebugAdapterNamedPipeServer

class DebugAdapterNamedPipeServer {}
  • Represents a debug adapter running as a Named Pipe (on Windows)/UNIX Domain Socket (on non-Windows) based server.

constructor

constructor(path: string);
  • Create a description for a debug adapter running as a Named Pipe (on Windows)/UNIX Domain Socket (on non-Windows) based server.

property path

readonly path: string;
  • The path to the NamedPipe/UNIX Domain Socket.

class DebugAdapterServer

class DebugAdapterServer {}
  • Represents a debug adapter running as a socket based server.

constructor

constructor(port: number, host?: string);
  • Create a description for a debug adapter running as a socket based server.

property host

readonly host?: string;
  • The host.

property port

readonly port: number;
  • The port.

class DebugStackFrame

class DebugStackFrame {}
  • Represents a stack frame in a debug session.

property frameId

readonly frameId: number;
  • ID of the stack frame in the debug protocol.

property session

readonly session: DebugSession;
  • Debug session for thread.

property threadId

readonly threadId: number;
  • ID of the associated thread in the debug protocol.

class DebugThread

class DebugThread {}
  • Represents a thread in a debug session.

property session

readonly session: DebugSession;
  • Debug session for thread.

property threadId

readonly threadId: number;
  • ID of the associated thread in the debug protocol.

class DeclarationCoverage

class DeclarationCoverage {}
  • Contains coverage information for a declaration. Depending on the reporter and language, this may be types such as functions, methods, or namespaces.

constructor

constructor(
name: string,
executed: number | boolean,
location: Range | Position
);
  • Parameter executed

    The number of times this declaration was executed, or a boolean indicating whether it was executed if the exact count is unknown. If zero or false, the declaration will be marked as un-covered.

    Parameter location

    The declaration position.

property executed

executed: number | boolean;
  • The number of times this declaration was executed, or a boolean indicating whether it was executed if the exact count is unknown. If zero or false, the declaration will be marked as un-covered.

property location

location: Range | Position;
  • Declaration location.

property name

name: string;
  • Name of the declaration.

class Diagnostic

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

constructor

constructor(range: Range, message: string, severity?: DiagnosticSeverity);
  • Creates a new diagnostic object.

    Parameter range

    The range to which this diagnostic applies.

    Parameter message

    The human-readable message.

    Parameter severity

    The severity, default is .

property code

code?: string | number | { value: string | number; target: Uri };
  • A code or identifier for this diagnostic. Should be used for later processing, e.g. when providing .

property message

message: string;
  • The human-readable message.

property range

range: Range;
  • The range to which this diagnostic applies.

property relatedInformation

relatedInformation?: DiagnosticRelatedInformation[];
  • An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property.

property severity

severity: DiagnosticSeverity;
  • The severity, default is .

property source

source?: string;
  • A human-readable string describing the source of this diagnostic, e.g. 'typescript' or 'super lint'.

property tags

tags?: DiagnosticTag[];
  • Additional metadata about the diagnostic.

class DiagnosticRelatedInformation

class DiagnosticRelatedInformation {}
  • Represents a related message and source code location for a diagnostic. This should be used to point to code locations that cause or related to a diagnostics, e.g. when duplicating a symbol in a scope.

constructor

constructor(location: Location, message: string);
  • Creates a new related diagnostic information object.

    Parameter location

    The location.

    Parameter message

    The message.

property location

location: Location;
  • The location of this related diagnostic information.

property message

message: string;
  • The message of this related diagnostic information.

class Disposable

class Disposable {}
  • Represents a type which can release resources, such as event listening or a timer.

constructor

constructor(callOnDispose: () => any);
  • Creates a new disposable that calls the provided function on dispose.

    *Note* that an asynchronous function is not awaited.

    Parameter callOnDispose

    Function that disposes something.

method dispose

dispose: () => any;
  • Dispose this object.

method from

static from: (...disposableLikes: { dispose: () => any }[]) => Disposable;
  • Combine many disposable-likes into one. You can use this method when having objects with a dispose function which aren't instances of Disposable.

    Parameter disposableLikes

    Objects that have at least a dispose-function member. Note that asynchronous dispose-functions aren't awaited.

    Returns

    Returns a new disposable which, upon dispose, will dispose all provided disposables.

class DocumentDropEdit

class DocumentDropEdit {}
  • An edit operation applied .

constructor

constructor(
insertText: string | SnippetString,
title?: string,
kind?: DocumentDropOrPasteEditKind
);
  • Parameter insertText

    The text or snippet to insert at the drop location.

    Parameter title

    Human readable label that describes the edit.

    Parameter kind

    of the edit.

property additionalEdit

additionalEdit?: WorkspaceEdit;
  • An optional additional edit to apply on drop.

property insertText

insertText: string | SnippetString;
  • The text or snippet to insert at the drop location.

property kind

kind?: DocumentDropOrPasteEditKind;
  • of the edit.

property title

title?: string;
  • Human readable label that describes the edit.

property yieldTo

yieldTo?: readonly DocumentDropOrPasteEditKind[];
  • Controls the ordering or multiple edits. If this provider yield to edits, it will be shown lower in the list.

class DocumentDropOrPasteEditKind

class DocumentDropOrPasteEditKind {}
  • Identifies a or

property Empty

static readonly Empty: DocumentDropOrPasteEditKind;

    property Text

    static readonly Text: DocumentDropOrPasteEditKind;
    • The root kind for basic text edits.

      This kind should be used for edits that insert basic text into the document. A good example of this is an edit that pastes the clipboard text while also updating imports in the file based on the pasted text. For this we could use a kind such as text.updateImports.someLanguageId.

      Even though most drop/paste edits ultimately insert text, you should not use as the base kind for every edit as this is redundant. Instead a more specific kind that describes the type of content being inserted should be used instead. For example, if the edit adds a Markdown link, use markdown.link since even though the content being inserted is text, it's more important to know that the edit inserts Markdown syntax.

    property TextUpdateImports

    static readonly TextUpdateImports: DocumentDropOrPasteEditKind;
    • Root kind for edits that update imports in a document in addition to inserting text.

    property value

    readonly value: string;
    • The raw string value of the kind.

    method append

    append: (...parts: string[]) => DocumentDropOrPasteEditKind;
    • Create a new kind by appending additional scopes to the current kind.

      Does not modify the current kind.

    method contains

    contains: (other: DocumentDropOrPasteEditKind) => boolean;
    • Checks if other is a sub-kind of this DocumentDropOrPasteEditKind.

      The kind "text.plain" for example contains "text.plain" and "text.plain.list", but not "text" or "unicorn.text.plain".

      Parameter other

      Kind to check.

    method intersects

    intersects: (other: DocumentDropOrPasteEditKind) => boolean;
    • Checks if this kind intersects other.

      The kind "text.plain" for example intersects text, "text.plain" and "text.plain.list", but not "unicorn", or "textUnicorn.plain".

      Parameter other

      Kind to check.

    class DocumentHighlight

    class DocumentHighlight {}
    • 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.

    constructor

    constructor(range: Range, kind?: DocumentHighlightKind);
    • Creates a new document highlight object.

      Parameter range

      The range the highlight applies to.

      Parameter kind

      The highlight kind, default is .

    property kind

    kind?: DocumentHighlightKind;
    • The highlight kind, default is .

    property range

    range: Range;
    • The range this highlight applies to.

    class DocumentLink {}
    • 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.

    constructor

    constructor(range: Range, target?: Uri);
    • Creates a new document link.

      Parameter range

      The range the document link applies to. Must not be empty.

      Parameter target

      The uri the document link points to.

    property range

    range: Range;
    • The range this link applies to.

    property target

    target?: Uri;
    • The uri this link points to.

    property tooltip

    tooltip?: string;
    • 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.

    class DocumentPasteEdit

    class DocumentPasteEdit {}
    • An edit the applies a paste operation.

    constructor

    constructor(
    insertText: string | SnippetString,
    title: string,
    kind: DocumentDropOrPasteEditKind
    );
    • Create a new paste edit.

      Parameter insertText

      The text or snippet to insert at the pasted locations.

      Parameter title

      Human readable label that describes the edit.

      Parameter kind

      of the edit.

    property additionalEdit

    additionalEdit?: WorkspaceEdit;
    • An optional additional edit to apply on paste.

    property insertText

    insertText: string | SnippetString;
    • The text or snippet to insert at the pasted locations.

      If your edit requires more advanced insertion logic, set this to an empty string and provide an instead.

    property kind

    kind: DocumentDropOrPasteEditKind;
    • of the edit.

    property title

    title: string;
    • Human readable label that describes the edit.

    property yieldTo

    yieldTo?: readonly DocumentDropOrPasteEditKind[];
    • Controls ordering when multiple paste edits can potentially be applied.

      If this edit yields to another, it will be shown lower in the list of possible paste edits shown to the user.

    class DocumentSymbol

    class DocumentSymbol {}
    • 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.

    constructor

    constructor(
    name: string,
    detail: string,
    kind: SymbolKind,
    range: Range,
    selectionRange: Range
    );
    • Creates a new document symbol.

      Parameter name

      The name of the symbol.

      Parameter detail

      Details for the symbol.

      Parameter kind

      The kind of the symbol.

      Parameter range

      The full range of the symbol.

      Parameter selectionRange

      The range that should be reveal.

    property children

    children: DocumentSymbol[];
    • Children of this symbol, e.g. properties of a class.

    property detail

    detail: string;
    • More detail for this symbol, e.g. the signature of a function.

    property kind

    kind: SymbolKind;
    • The kind of this symbol.

    property name

    name: string;
    • The name of this symbol.

    property range

    range: Range;
    • The range enclosing this symbol not including leading/trailing whitespace but everything else, e.g. comments and code.

    property selectionRange

    selectionRange: Range;
    • The range that should be selected and reveal when this symbol is being picked, e.g. the name of a function. Must be contained by the .

    property tags

    tags?: readonly SymbolTag[];
    • Tags for this symbol.

    class EvaluatableExpression

    class EvaluatableExpression {}
    • An EvaluatableExpression represents an expression in a document that can be evaluated by an active debugger or runtime. The result of this evaluation is shown in a tooltip-like widget. If only a range is specified, the expression will be extracted from the underlying document. An optional expression can be used to override the extracted expression. In this case the range is still used to highlight the range in the document.

    constructor

    constructor(range: Range, expression?: string);
    • Creates a new evaluatable expression object.

      Parameter range

      The range in the underlying document from which the evaluatable expression is extracted.

      Parameter expression

      If specified overrides the extracted expression.

    property expression

    readonly expression?: string;

      property range

      readonly range: Range;

        class EventEmitter

        class EventEmitter<T> {}
        • An event emitter can be used to create and manage an Event for others to subscribe to. One emitter always owns one event.

          Use this class if you want to provide event from within your extension, for instance inside a TextDocumentContentProvider or when providing API to other extensions.

        property event

        event: Event<T>;
        • The event listeners can subscribe to.

        method dispose

        dispose: () => void;
        • Dispose this object and free resources.

        method fire

        fire: (data: T) => void;
        • Notify all subscribers of the . Failure of one or more listener will not fail this function call.

          Parameter data

          The event object.

        class FileCoverage

        class FileCoverage {}
        • Contains coverage metadata for a file.

        constructor

        constructor(
        uri: Uri,
        statementCoverage: TestCoverageCount,
        branchCoverage?: TestCoverageCount,
        declarationCoverage?: TestCoverageCount,
        includesTests?: TestItem[]
        );
        • Parameter uri

          Covered file URI

          Parameter statementCoverage

          Statement coverage information. If the reporter does not provide statement coverage information, this can instead be used to represent line coverage.

          Parameter branchCoverage

          Branch coverage information

          Parameter declarationCoverage

          Declaration coverage information

          Parameter includesTests

          Test cases included in this coverage report, see FileCoverage.includesTests

        property branchCoverage

        branchCoverage?: TestCoverageCount;
        • Branch coverage information.

        property declarationCoverage

        declarationCoverage?: TestCoverageCount;
        • Declaration coverage information. Depending on the reporter and language, this may be types such as functions, methods, or namespaces.

        property includesTests

        includesTests?: TestItem[];

        property statementCoverage

        statementCoverage: TestCoverageCount;
        • Statement coverage information. If the reporter does not provide statement coverage information, this can instead be used to represent line coverage.

        property uri

        readonly uri: Uri;
        • File URI.

        method fromDetails

        static fromDetails: (
        uri: Uri,
        details: readonly FileCoverageDetail[]
        ) => FileCoverage;
        • Creates a FileCoverage instance with counts filled in from the coverage details.

          Parameter uri

          Covered file URI

          Parameter detailed

          Detailed coverage information

        class FileDecoration

        class FileDecoration {}
        • A file decoration represents metadata that can be rendered with a file.

        constructor

        constructor(badge?: string, tooltip?: string, color?: ThemeColor);
        • Creates a new decoration.

          Parameter badge

          A letter that represents the decoration.

          Parameter tooltip

          The tooltip of the decoration.

          Parameter color

          The color of the decoration.

        property badge

        badge?: string;
        • A very short string that represents this decoration.

        property color

        color?: ThemeColor;
        • The color of this decoration.

        property propagate

        propagate?: boolean;
        • A flag expressing that this decoration should be propagated to its parents.

        property tooltip

        tooltip?: string;
        • A human-readable tooltip for this decoration.

        class FileSystemError

        class FileSystemError extends Error {}
        • A type that filesystem providers should use to signal errors.

          This class has factory methods for common error-cases, like FileNotFound when a file or folder doesn't exist, use them like so: throw vscode.FileSystemError.FileNotFound(someUri);

        constructor

        constructor(messageOrUri?: string | Uri);
        • Creates a new filesystem error.

          Parameter messageOrUri

          Message or uri.

        property code

        readonly code: string;
        • A code that identifies this error.

          Possible values are names of errors, like , or Unknown for unspecified errors.

        method FileExists

        static FileExists: (messageOrUri?: string | Uri) => FileSystemError;
        • Create an error to signal that a file or folder already exists, e.g. when creating but not overwriting a file.

          Parameter messageOrUri

          Message or uri.

        method FileIsADirectory

        static FileIsADirectory: (messageOrUri?: string | Uri) => FileSystemError;
        • Create an error to signal that a file is a folder.

          Parameter messageOrUri

          Message or uri.

        method FileNotADirectory

        static FileNotADirectory: (messageOrUri?: string | Uri) => FileSystemError;
        • Create an error to signal that a file is not a folder.

          Parameter messageOrUri

          Message or uri.

        method FileNotFound

        static FileNotFound: (messageOrUri?: string | Uri) => FileSystemError;
        • Create an error to signal that a file or folder wasn't found.

          Parameter messageOrUri

          Message or uri.

        method NoPermissions

        static NoPermissions: (messageOrUri?: string | Uri) => FileSystemError;
        • Create an error to signal that an operation lacks required permissions.

          Parameter messageOrUri

          Message or uri.

        method Unavailable

        static Unavailable: (messageOrUri?: string | Uri) => FileSystemError;
        • Create an error to signal that the file system is unavailable or too busy to complete a request.

          Parameter messageOrUri

          Message or uri.

        class FoldingRange

        class FoldingRange {}
        • A line based folding range. To be valid, start and end line must be bigger than zero and smaller than the number of lines in the document. Invalid ranges will be ignored.

        constructor

        constructor(start: number, end: number, kind?: FoldingRangeKind);
        • Creates a new folding range.

          Parameter start

          The start line of the folded range.

          Parameter end

          The end line of the folded range.

          Parameter kind

          The kind of the folding range.

        property end

        end: number;
        • 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.

        property kind

        kind?: FoldingRangeKind;
        • Describes the of the folding range such as or . The kind is used to categorize folding ranges and used by commands like 'Fold all comments'. See FoldingRangeKind for an enumeration of all kinds. If not set, the range is originated from a syntax element.

        property start

        start: number;
        • 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.

        class FunctionBreakpoint

        class FunctionBreakpoint extends Breakpoint {}
        • A breakpoint specified by a function name.

        constructor

        constructor(
        functionName: string,
        enabled?: boolean,
        condition?: string,
        hitCondition?: string,
        logMessage?: string
        );
        • Create a new function breakpoint.

        property functionName

        readonly functionName: string;
        • The name of the function to which this breakpoint is attached.

        class Hover

        class Hover {}
        • A hover represents additional information for a symbol or word. Hovers are rendered in a tooltip-like widget.

        constructor

        constructor(
        contents: MarkdownString | MarkedString | (MarkdownString | MarkedString)[],
        range?: Range
        );
        • Creates a new hover object.

          Parameter contents

          The contents of the hover.

          Parameter range

          The range to which the hover applies.

        property contents

        contents: (MarkdownString | MarkedString)[];
        • The contents of this hover.

        property range

        range?: Range;
        • The range to which this hover applies. When missing, the editor will use the range at the current position or the current position itself.

        class InlayHint

        class InlayHint {}
        • Inlay hint information.

        constructor

        constructor(
        position: Position,
        label: string | InlayHintLabelPart[],
        kind?: InlayHintKind
        );
        • Creates a new inlay hint.

          Parameter position

          The position of the hint.

          Parameter label

          The label of the hint.

          Parameter kind

          The of the hint.

        property kind

        kind?: InlayHintKind;
        • The kind of this hint. The inlay hint kind defines the appearance of this inlay hint.

        property label

        label: string | InlayHintLabelPart[];
        • The label of this hint. A human readable string or an array of .

          *Note* that neither the string nor the label part can be empty.

        property paddingLeft

        paddingLeft?: boolean;
        • Render padding before the hint. Padding will use the editor's background color, not the background color of the hint itself. That means padding can be used to visually align/separate an inlay hint.

        property paddingRight

        paddingRight?: boolean;
        • Render padding after the hint. Padding will use the editor's background color, not the background color of the hint itself. That means padding can be used to visually align/separate an inlay hint.

        property position

        position: Position;
        • The position of this hint.

        property textEdits

        textEdits?: TextEdit[];
        • Optional that are performed when accepting this inlay hint. The default gesture for accepting an inlay hint is the double click.

          *Note* that edits are expected to change the document so that the inlay hint (or its nearest variant) is now part of the document and the inlay hint itself is now obsolete.

          *Note* that this property can be set late during of inlay hints.

        property tooltip

        tooltip?: string | MarkdownString;
        • The tooltip text when you hover over this item.

          *Note* that this property can be set late during of inlay hints.

        class InlayHintLabelPart

        class InlayHintLabelPart {}
        • An inlay hint label part allows for interactive and composite labels of inlay hints.

        constructor

        constructor(value: string);
        • Creates a new inlay hint label part.

          Parameter value

          The value of the part.

        property command

        command?: Command;
        • An optional command for this label part.

          The editor renders parts with commands as clickable links. The command is added to the context menu when a label part defines and .

          *Note* that this property can be set late during of inlay hints.

        property location

        location?: Location;
        • An optional that represents this label part.

          The editor will use this location for the hover and for code navigation features: This part will become a clickable link that resolves to the definition of the symbol at the given location (not necessarily the location itself), it shows the hover that shows at the given location, and it shows a context menu with further code navigation commands.

          *Note* that this property can be set late during of inlay hints.

        property tooltip

        tooltip?: string | MarkdownString;
        • The tooltip text when you hover over this label part.

          *Note* that this property can be set late during of inlay hints.

        property value

        value: string;
        • The value of this label part.

        class InlineCompletionItem

        class InlineCompletionItem {}

        constructor

        constructor(
        insertText: string | SnippetString,
        range?: Range,
        command?: Command
        );
        • Creates a new inline completion item.

          Parameter insertText

          The text to replace the range with.

          Parameter range

          The range to replace. If not set, the word at the requested position will be used.

          Parameter command

          An optional Command that is executed *after* inserting this completion.

        property command

        command?: Command;
        • An optional Command that is executed *after* inserting this completion.

        property filterText

        filterText?: string;
        • A text that is used to decide if this inline completion should be shown. When falsy the InlineCompletionItem.insertText is used.

          An inline completion is shown if the text to replace is a prefix of the filter text.

        property insertText

        insertText: string | SnippetString;
        • The text to replace the range with. Must be set. Is used both for the preview and the accept operation.

        property range

        range?: Range;
        • The range to replace. Must begin and end on the same line.

          Prefer replacements over insertions to provide a better experience when the user deletes typed text.

        class InlineCompletionList

        class InlineCompletionList {}
        • Represents a collection of to be presented in the editor.

        constructor

        constructor(items: InlineCompletionItem[]);
        • Creates a new list of inline completion items.

        property items

        items: InlineCompletionItem[];
        • The inline completion items.

        class InlineValueEvaluatableExpression

        class InlineValueEvaluatableExpression {}
        • Provide an inline value through an expression evaluation. If only a range is specified, the expression will be extracted from the underlying document. An optional expression can be used to override the extracted expression.

        constructor

        constructor(range: Range, expression?: string);
        • Creates a new InlineValueEvaluatableExpression object.

          Parameter range

          The range in the underlying document from which the evaluatable expression is extracted.

          Parameter expression

          If specified overrides the extracted expression.

        property expression

        readonly expression?: string;
        • If specified the expression overrides the extracted expression.

        property range

        readonly range: Range;
        • The document range for which the inline value applies. The range is used to extract the evaluatable expression from the underlying document.

        class InlineValueText

        class InlineValueText {}
        • Provide inline value as text.

        constructor

        constructor(range: Range, text: string);
        • Creates a new InlineValueText object.

          Parameter range

          The document line where to show the inline value.

          Parameter text

          The value to be shown for the line.

        property range

        readonly range: Range;
        • The document range for which the inline value applies.

        property text

        readonly text: string;
        • The text of the inline value.

        class InlineValueVariableLookup

        class InlineValueVariableLookup {}
        • Provide inline value through a variable lookup. If only a range is specified, the variable name will be extracted from the underlying document. An optional variable name can be used to override the extracted name.

        constructor

        constructor(range: Range, variableName?: string, caseSensitiveLookup?: boolean);
        • Creates a new InlineValueVariableLookup object.

          Parameter range

          The document line where to show the inline value.

          Parameter variableName

          The name of the variable to look up.

          Parameter caseSensitiveLookup

          How to perform the lookup. If missing lookup is case sensitive.

        property caseSensitiveLookup

        readonly caseSensitiveLookup: boolean;
        • How to perform the lookup.

        property range

        readonly range: Range;
        • The document range for which the inline value applies. The range is used to extract the variable name from the underlying document.

        property variableName

        readonly variableName?: string;
        • If specified the name of the variable to look up.

        class LanguageModelChatMessage

        class LanguageModelChatMessage {}
        • Represents a message in a chat. Can assume different roles, like user or assistant.

        constructor

        constructor(
        role: LanguageModelChatMessageRole,
        content:
        | string
        | (
        | LanguageModelTextPart
        | LanguageModelToolResultPart
        | LanguageModelToolCallPart
        )[],
        name?: string
        );
        • Create a new user message.

          Parameter role

          The role of the message.

          Parameter content

          The content of the message.

          Parameter name

          The optional name of a user for the message.

        property content

        content: (
        | LanguageModelTextPart
        | LanguageModelToolResultPart
        | LanguageModelToolCallPart
        )[];
        • A string or heterogeneous array of things that a message can contain as content. Some parts may be message-type specific for some models.

        property name

        name: string;
        • The optional name of a user for this message.

        property role

        role: LanguageModelChatMessageRole;
        • The role of this message.

        method Assistant

        static Assistant: (
        content: string | Array<LanguageModelTextPart | LanguageModelToolCallPart>,
        name?: string
        ) => LanguageModelChatMessage;
        • Utility to create a new assistant message.

          Parameter content

          The content of the message.

          Parameter name

          The optional name of a user for the message.

        method User

        static User: (
        content: string | Array<LanguageModelTextPart | LanguageModelToolResultPart>,
        name?: string
        ) => LanguageModelChatMessage;
        • Utility to create a new user message.

          Parameter content

          The content of the message.

          Parameter name

          The optional name of a user for the message.

        class LanguageModelError

        class LanguageModelError extends Error {}
        • An error type for language model specific errors.

          Consumers of language models should check the code property to determine specific failure causes, like if(someError.code === vscode.LanguageModelError.NotFound.name) {...} for the case of referring to an unknown language model. For unspecified errors the cause-property will contain the actual error.

        property code

        readonly code: string;
        • A code that identifies this error.

          Possible values are names of errors, like , or Unknown for unspecified errors from the language model itself. In the latter case the cause-property will contain the actual error.

        method Blocked

        static Blocked: (message?: string) => LanguageModelError;
        • The requestor is blocked from using this language model.

        method NoPermissions

        static NoPermissions: (message?: string) => LanguageModelError;
        • The requestor does not have permissions to use this language model

        method NotFound

        static NotFound: (message?: string) => LanguageModelError;
        • The language model does not exist.

        class LanguageModelPromptTsxPart

        class LanguageModelPromptTsxPart {}
        • A language model response part containing a PromptElementJSON from @vscode/prompt-tsx.

          See Also

        constructor

        constructor(value: {});
        • Construct a prompt-tsx part with the given content.

          Parameter value

          The value of the part, the result of renderPromptElementJSON from @vscode/prompt-tsx.

        property value

        value: {};
        • The value of the part.

        class LanguageModelTextPart

        class LanguageModelTextPart {}

        constructor

        constructor(value: string);
        • Construct a text part with the given content.

          Parameter value

          The text content of the part.

        property value

        value: string;
        • The text content of the part.

        class LanguageModelToolCallPart

        class LanguageModelToolCallPart {}

        constructor

        constructor(callId: string, name: string, input: {});
        • Create a new LanguageModelToolCallPart.

          Parameter callId

          The ID of the tool call.

          Parameter name

          The name of the tool to call.

          Parameter input

          The input with which to call the tool.

        property callId

        callId: string;
        • The ID of the tool call. This is a unique identifier for the tool call within the chat request.

        property input

        input: {};
        • The input with which to call the tool.

        property name

        name: string;
        • The name of the tool to call.

        class LanguageModelToolResult

        class LanguageModelToolResult {}
        • A result returned from a tool invocation. If using @vscode/prompt-tsx, this result may be rendered using a ToolResult.

        constructor

        constructor(content: (LanguageModelTextPart | LanguageModelPromptTsxPart)[]);
        • Create a LanguageModelToolResult

          Parameter content

          A list of tool result content parts

        property content

        content: unknown[];
        • A list of tool result content parts. Includes unknown becauses this list may be extended with new content types in the future.

          See Also

        class LanguageModelToolResultPart

        class LanguageModelToolResultPart {}
        • The result of a tool call. This is the counterpart of a and it can only be included in the content of a User message

        constructor

        constructor(callId: string, content: unknown[]);
        • Parameter callId

          The ID of the tool call.

          Parameter content

          The content of the tool result.

        property callId

        callId: string;
        • The ID of the tool call.

          *Note* that this should match the of a tool call part.

        property content

        content: unknown[];
        • The value of the tool result.

        class LinkedEditingRanges

        class LinkedEditingRanges {}
        • Represents a list of ranges that can be edited together along with a word pattern to describe valid range contents.

        constructor

        constructor(ranges: Range[], wordPattern?: RegExp);
        • Create a new linked editing ranges object.

          Parameter ranges

          A list of ranges that can be edited together

          Parameter wordPattern

          An optional word pattern that describes valid contents for the given ranges

        property ranges

        readonly ranges: Range[];
        • A list of ranges that can be edited together. The ranges must have identical length and text content. The ranges cannot overlap.

        property wordPattern

        readonly wordPattern: RegExp;
        • An optional word pattern that describes valid contents for the given ranges. If no pattern is provided, the language configuration's word pattern will be used.

        class Location

        class Location {}
        • Represents a location inside a resource, such as a line inside a text file.

        constructor

        constructor(uri: Uri, rangeOrPosition: Range | Position);
        • Creates a new location object.

          Parameter uri

          The resource identifier.

          Parameter rangeOrPosition

          The range or position. Positions will be converted to an empty range.

        property range

        range: Range;
        • The document range of this location.

        property uri

        uri: Uri;
        • The resource identifier of this location.

        class MarkdownString

        class MarkdownString {}
        • Human-readable text that supports formatting via the [markdown syntax](https://commonmark.org).

          Rendering of via the $(<name>)-syntax is supported when the is set to true.

          Rendering of embedded html is supported when is set to true.

        constructor

        constructor(value?: string, supportThemeIcons?: boolean);
        • Creates a new markdown string with the given value.

          Parameter value

          Optional, initial value.

          Parameter supportThemeIcons

          Optional, Specifies whether are supported within the .

        property baseUri

        baseUri?: Uri;
        • Uri that relative paths are resolved relative to.

          If the baseUri ends with /, it is considered a directory and relative paths in the markdown are resolved relative to that directory:

          const md = new vscode.MarkdownString(`[link](./file.js)`);
          md.baseUri = vscode.Uri.file('/path/to/dir/');
          // Here 'link' in the rendered markdown resolves to '/path/to/dir/file.js'

          If the baseUri is a file, relative paths in the markdown are resolved relative to the parent dir of that file:

          const md = new vscode.MarkdownString(`[link](./file.js)`);
          md.baseUri = vscode.Uri.file('/path/to/otherFile.js');
          // Here 'link' in the rendered markdown resolves to '/path/to/file.js'

        property isTrusted

        isTrusted?: boolean | { readonly enabledCommands: readonly string[] };
        • Indicates that this markdown string is from a trusted source. Only *trusted* markdown supports links that execute commands, e.g. [Run it](command:myCommandId).

          Defaults to false (commands are disabled).

        property supportHtml

        supportHtml?: boolean;
        • Indicates that this markdown string can contain raw html tags. Defaults to false.

          When supportHtml is false, the markdown renderer will strip out any raw html tags that appear in the markdown text. This means you can only use markdown syntax for rendering.

          When supportHtml is true, the markdown render will also allow a safe subset of html tags and attributes to be rendered. See https://github.com/microsoft/vscode/blob/6d2920473c6f13759c978dd89104c4270a83422d/src/vs/base/browser/markdownRenderer.ts#L296 for a list of all supported tags and attributes.

        property supportThemeIcons

        supportThemeIcons?: boolean;
        • Indicates that this markdown string can contain , e.g. $(zap).

        property value

        value: string;
        • The markdown string.

        method appendCodeblock

        appendCodeblock: (value: string, language?: string) => MarkdownString;
        • Appends the given string as codeblock using the provided language.

          Parameter value

          A code snippet.

          Parameter language

          An optional .

        method appendMarkdown

        appendMarkdown: (value: string) => MarkdownString;
        • Appends the given string 'as is' to this markdown string. When is true, in the value will be iconified.

          Parameter value

          Markdown string.

        method appendText

        appendText: (value: string) => MarkdownString;
        • Appends and escapes the given string to this markdown string.

          Parameter value

          Plain text.

        class NotebookCellData

        class NotebookCellData {}
        • NotebookCellData is the raw representation of notebook cells. Its is part of .

        constructor

        constructor(kind: NotebookCellKind, value: string, languageId: string);
        • Create new cell data. Minimal cell data specifies its kind, its source value, and the language identifier of its source.

          Parameter kind

          The kind.

          Parameter value

          The source value.

          Parameter languageId

          The language identifier of the source value.

        property executionSummary

        executionSummary?: NotebookCellExecutionSummary;
        • The execution summary of this cell data.

        property kind

        kind: NotebookCellKind;
        • The of this cell data.

        property languageId

        languageId: string;
        • The language identifier of the source value of this cell data. Any value from is possible.

        property metadata

        metadata?: { [key: string]: any };
        • Arbitrary metadata of this cell data. Can be anything but must be JSON-stringifyable.

        property outputs

        outputs?: NotebookCellOutput[];
        • The outputs of this cell data.

        property value

        value: string;
        • The source value of this cell data - either source code or formatted text.

        class NotebookCellOutput

        class NotebookCellOutput {}
        • Notebook cell output represents a result of executing a cell. It is a container type for multiple where contained items represent the same result but use different MIME types.

        constructor

        constructor(items: NotebookCellOutputItem[], metadata?: { [key: string]: any });
        • Create new notebook output.

          Parameter items

          Notebook output items.

          Parameter metadata

          Optional metadata.

        property items

        items: NotebookCellOutputItem[];
        • The output items of this output. Each item must represent the same result. _Note_ that repeated MIME types per output is invalid and that the editor will just pick one of them.

          new vscode.NotebookCellOutput([
          vscode.NotebookCellOutputItem.text('Hello', 'text/plain'),
          vscode.NotebookCellOutputItem.text('<i>Hello</i>', 'text/html'),
          vscode.NotebookCellOutputItem.text('_Hello_', 'text/markdown'),
          vscode.NotebookCellOutputItem.text('Hey', 'text/plain'), // INVALID: repeated type, editor will pick just one
          ])

        property metadata

        metadata?: { [key: string]: any };
        • Arbitrary metadata for this cell output. Can be anything but must be JSON-stringifyable.

        class NotebookCellOutputItem

        class NotebookCellOutputItem {}
        • One representation of a , defined by MIME type and data.

        constructor

        constructor(data: Uint8Array, mime: string);
        • Create a new notebook cell output item.

          Parameter data

          The value of the output item.

          Parameter mime

          The mime type of the output item.

        property data

        data: Uint8Array;
        • The data of this output item. Must always be an array of unsigned 8-bit integers.

        property mime

        mime: string;
        • The mime type which determines how the -property is interpreted.

          Notebooks have built-in support for certain mime-types, extensions can add support for new types and override existing types.

        method error

        static error: (value: Error) => NotebookCellOutputItem;
        • Factory function to create a NotebookCellOutputItem that uses uses the application/vnd.code.notebook.error mime type.

          Parameter value

          An error object.

          Returns

          A new output item object.

        method json

        static json: (value: any, mime?: string) => NotebookCellOutputItem;
        • Factory function to create a NotebookCellOutputItem from a JSON object.

          *Note* that this function is not expecting "stringified JSON" but an object that can be stringified. This function will throw an error when the passed value cannot be JSON-stringified.

          Parameter value

          A JSON-stringifyable value.

          Parameter mime

          Optional MIME type, defaults to application/json

          Returns

          A new output item object.

        method stderr

        static stderr: (value: string) => NotebookCellOutputItem;
        • Factory function to create a NotebookCellOutputItem that uses uses the application/vnd.code.notebook.stderr mime type.

          Parameter value

          A string.

          Returns

          A new output item object.

        method stdout

        static stdout: (value: string) => NotebookCellOutputItem;
        • Factory function to create a NotebookCellOutputItem that uses uses the application/vnd.code.notebook.stdout mime type.

          Parameter value

          A string.

          Returns

          A new output item object.

        method text

        static text: (value: string, mime?: string) => NotebookCellOutputItem;
        • Factory function to create a NotebookCellOutputItem from a string.

          *Note* that an UTF-8 encoder is used to create bytes for the string.

          Parameter value

          A string.

          Parameter mime

          Optional MIME type, defaults to text/plain.

          Returns

          A new output item object.

        class NotebookCellStatusBarItem

        class NotebookCellStatusBarItem {}
        • A contribution to a cell's status bar

        constructor

        constructor(text: string, alignment: NotebookCellStatusBarAlignment);
        • Creates a new NotebookCellStatusBarItem.

          Parameter text

          The text to show for the item.

          Parameter alignment

          Whether the item is aligned to the left or right.

        property accessibilityInformation

        accessibilityInformation?: AccessibilityInformation;
        • Accessibility information used when a screen reader interacts with this item.

        property alignment

        alignment: NotebookCellStatusBarAlignment;
        • Whether the item is aligned to the left or right.

        property command

        command?: string | Command;
        • An optional or identifier of a command to run on click.

          The command must be .

          Note that if this is a object, only the and are used by the editor.

        property priority

        priority?: number;
        • The priority of the item. A higher value item will be shown more to the left.

        property text

        text: string;
        • The text to show for the item.

        property tooltip

        tooltip?: string;
        • A tooltip to show when the item is hovered.

        class NotebookData

        class NotebookData {}
        • Raw representation of a notebook.

          Extensions are responsible for creating so that the editor can create a .

          See Also

        constructor

        constructor(cells: NotebookCellData[]);
        • Create new notebook data.

          Parameter cells

          An array of cell data.

        property cells

        cells: NotebookCellData[];
        • The cell data of this notebook data.

        property metadata

        metadata?: { [key: string]: any };
        • Arbitrary metadata of notebook data.

        class NotebookEdit

        class NotebookEdit {}
        • A notebook edit represents edits that should be applied to the contents of a notebook.

        constructor

        constructor(range: NotebookRange, newCells: NotebookCellData[]);
        • Create a new notebook edit.

          Parameter range

          A notebook range.

          Parameter newCells

          An array of new cell data.

        property newCellMetadata

        newCellMetadata?: { [key: string]: any };
        • Optional new metadata for the cells.

        property newCells

        newCells: NotebookCellData[];
        • New cells being inserted. May be empty.

        property newNotebookMetadata

        newNotebookMetadata?: { [key: string]: any };
        • Optional new metadata for the notebook.

        property range

        range: NotebookRange;
        • Range of the cells being edited. May be empty.

        method deleteCells

        static deleteCells: (range: NotebookRange) => NotebookEdit;
        • Utility to create an edit that deletes cells in a notebook.

          Parameter range

          The range of cells to delete.

        method insertCells

        static insertCells: (
        index: number,
        newCells: NotebookCellData[]
        ) => NotebookEdit;
        • Utility to create an edit that replaces cells in a notebook.

          Parameter index

          The index to insert cells at.

          Parameter newCells

          The new notebook cells.

        method replaceCells

        static replaceCells: (
        range: NotebookRange,
        newCells: NotebookCellData[]
        ) => NotebookEdit;
        • Utility to create a edit that replaces cells in a notebook.

          Parameter range

          The range of cells to replace

          Parameter newCells

          The new notebook cells.

        method updateCellMetadata

        static updateCellMetadata: (
        index: number,
        newCellMetadata: { [key: string]: any }
        ) => NotebookEdit;
        • Utility to create an edit that update a cell's metadata.

          Parameter index

          The index of the cell to update.

          Parameter newCellMetadata

          The new metadata for the cell.

        method updateNotebookMetadata

        static updateNotebookMetadata: (newNotebookMetadata: {
        [key: string]: any;
        }) => NotebookEdit;
        • Utility to create an edit that updates the notebook's metadata.

          Parameter newNotebookMetadata

          The new metadata for the notebook.

        class NotebookRange

        class NotebookRange {}
        • A notebook range represents an ordered pair of two cell indices. It is guaranteed that start is less than or equal to end.

        constructor

        constructor(start: number, end: number);
        • Create a new notebook range. If start is not before or equal to end, the values will be swapped.

          Parameter start

          start index

          Parameter end

          end index.

        property end

        readonly end: number;
        • The exclusive end index of this range (zero-based).

        property isEmpty

        readonly isEmpty: boolean;
        • true if start and end are equal.

        property start

        readonly start: number;
        • The zero-based start index of this range.

        method with

        with: (change: { start?: number; end?: number }) => NotebookRange;
        • Derive a new range for this range.

          Parameter change

          An object that describes a change to this range.

          Returns

          A range that reflects the given change. Will return this range if the change is not changing anything.

        class ParameterInformation

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

        constructor

        constructor(
        label: string | [number, number],
        documentation?: string | MarkdownString
        );
        • Creates a new parameter information object.

          Parameter label

          A label string or inclusive start and exclusive end offsets within its containing signature label.

          Parameter documentation

          A doc string.

        property documentation

        documentation?: string | MarkdownString;
        • The human-readable doc-comment of this signature. Will be shown in the UI but can be omitted.

        property label

        label: string | [number, number];
        • The label of this signature.

          Either a string or inclusive start and exclusive end offsets within its containing . *Note*: A label of type string must be a substring of its containing signature information's .

        class Position

        class Position {}
        • Represents a line and character position, such as the position of the cursor.

          Position objects are __immutable__. Use the or methods to derive new positions from an existing position.

        constructor

        constructor(line: number, character: number);
        • Parameter line

          A zero-based line value.

          Parameter character

          A zero-based character value.

        property character

        readonly character: number;
        • The zero-based character value.

          Character offsets are expressed using UTF-16 [code units](https://developer.mozilla.org/en-US/docs/Glossary/Code_unit).

        property line

        readonly line: number;
        • The zero-based line value.

        method compareTo

        compareTo: (other: Position) => number;
        • Compare this to other.

          Parameter other

          A position.

          Returns

          A number smaller than zero if this position is before the given position, a number greater than zero if this position is after the given position, or zero when this and the given position are equal.

        method isAfter

        isAfter: (other: Position) => boolean;
        • Check if this position is after other.

          Parameter other

          A position.

          Returns

          true if position is on a greater line or on the same line on a greater character.

        method isAfterOrEqual

        isAfterOrEqual: (other: Position) => boolean;
        • Check if this position is after or equal to other.

          Parameter other

          A position.

          Returns

          true if position is on a greater line or on the same line on a greater or equal character.

        method isBefore

        isBefore: (other: Position) => boolean;
        • Check if this position is before other.

          Parameter other

          A position.

          Returns

          true if position is on a smaller line or on the same line on a smaller character.

        method isBeforeOrEqual

        isBeforeOrEqual: (other: Position) => boolean;
        • Check if this position is before or equal to other.

          Parameter other

          A position.

          Returns

          true if position is on a smaller line or on the same line on a smaller or equal character.

        method isEqual

        isEqual: (other: Position) => boolean;
        • Check if this position is equal to other.

          Parameter other

          A position.

          Returns

          true if the line and character of the given position are equal to the line and character of this position.

        method translate

        translate: {
        (lineDelta?: number, characterDelta?: number): Position;
        (change: { lineDelta?: number; characterDelta?: number }): Position;
        };
        • Create a new position relative to this position.

          Parameter lineDelta

          Delta value for the line value, default is 0.

          Parameter characterDelta

          Delta value for the character value, default is 0.

          Returns

          A position which line and character is the sum of the current line and character and the corresponding deltas.

        • Derived a new position relative to this position.

          Parameter change

          An object that describes a delta to this position.

          Returns

          A position that reflects the given delta. Will return this position if the change is not changing anything.

        method with

        with: {
        (line?: number, character?: number): Position;
        (change: { line?: number; character?: number }): Position;
        };
        • Create a new position derived from this position.

          Parameter line

          Value that should be used as line value, default is the

          Parameter character

          Value that should be used as character value, default is the

          Returns

          A position where line and character are replaced by the given values.

        • Derived a new position from this position.

          Parameter change

          An object that describes a change to this position.

          Returns

          A position that reflects the given change. Will return this position if the change is not changing anything.

        class ProcessExecution

        class ProcessExecution {}
        • The execution of a task happens as an external process without shell interaction.

        constructor

        constructor(process: string, options?: ProcessExecutionOptions);
        • Creates a process execution.

          Parameter process

          The process to start.

          Parameter options

          Optional options for the started process.

        constructor

        constructor(process: string, args: string[], options?: ProcessExecutionOptions);
        • Creates a process execution.

          Parameter process

          The process to start.

          Parameter args

          Arguments to be passed to the process.

          Parameter options

          Optional options for the started process.

        property args

        args: string[];
        • The arguments passed to the process. Defaults to an empty array.

        property options

        options?: ProcessExecutionOptions;
        • The process options used when the process is executed. Defaults to undefined.

        property process

        process: string;
        • The process to be executed.

        class QuickInputButtons

        class QuickInputButtons {}

        property Back

        static readonly Back: QuickInputButton;
        • A back button for QuickPick and InputBox.

          When a navigation 'back' button is needed this one should be used for consistency. It comes with a predefined icon, tooltip and location.

        class Range

        class Range {}
        • A range represents an ordered pair of two positions. It is guaranteed that .isBeforeOrEqual()

          Range objects are __immutable__. Use the , , or methods to derive new ranges from an existing range.

        constructor

        constructor(start: Position, end: Position);
        • Create a new range from two positions. If start is not before or equal to end, the values will be swapped.

          Parameter start

          A position.

          Parameter end

          A position.

        constructor

        constructor(
        startLine: number,
        startCharacter: number,
        endLine: number,
        endCharacter: number
        );
        • Create a new range from number coordinates. It is a shorter equivalent of using new Range(new Position(startLine, startCharacter), new Position(endLine, endCharacter))

          Parameter startLine

          A zero-based line value.

          Parameter startCharacter

          A zero-based character value.

          Parameter endLine

          A zero-based line value.

          Parameter endCharacter

          A zero-based character value.

        property end

        readonly end: Position;
        • The end position. It is after or equal to .

        property isEmpty

        isEmpty: boolean;
        • true if start and end are equal.

        property isSingleLine

        isSingleLine: boolean;
        • true if start.line and end.line are equal.

        property start

        readonly start: Position;
        • The start position. It is before or equal to .

        method contains

        contains: (positionOrRange: Position | Range) => boolean;
        • Check if a position or a range is contained in this range.

          Parameter positionOrRange

          A position or a range.

          Returns

          true if the position or range is inside or equal to this range.

        method intersection

        intersection: (range: Range) => Range | undefined;
        • Intersect range with this range and returns a new range or undefined if the ranges have no overlap.

          Parameter range

          A range.

          Returns

          A range of the greater start and smaller end positions. Will return undefined when there is no overlap.

        method isEqual

        isEqual: (other: Range) => boolean;
        • Check if other equals this range.

          Parameter other

          A range.

          Returns

          true when start and end are to start and end of this range.

        method union

        union: (other: Range) => Range;
        • Compute the union of other with this range.

          Parameter other

          A range.

          Returns

          A range of smaller start position and the greater end position.

        method with

        with: {
        (start?: Position, end?: Position): Range;
        (change: { start?: Position; end?: Position }): Range;
        };
        • Derived a new range from this range.

          Parameter start

          A position that should be used as start. The default value is the .

          Parameter end

          A position that should be used as end. The default value is the .

          Returns

          A range derived from this range with the given start and end position. If start and end are not different this range will be returned.

        • Derived a new range from this range.

          Parameter change

          An object that describes a change to this range.

          Returns

          A range that reflects the given change. Will return this range if the change is not changing anything.

        class RelativePattern

        class RelativePattern {}
        • A relative pattern is a helper to construct glob patterns that are matched relatively to a base file path. The base path can either be an absolute file path as string or uri or a , which is the preferred way of creating the relative pattern.

        constructor

        constructor(base: string | Uri | WorkspaceFolder, pattern: string);
        • Creates a new relative pattern object with a base file path and pattern to match. This pattern will be matched on file paths relative to the base.

          Example:

          const folder = vscode.workspace.workspaceFolders?.[0];
          if (folder) {
          // Match any TypeScript file in the root of this workspace folder
          const pattern1 = new vscode.RelativePattern(folder, '*.ts');
          // Match any TypeScript file in `someFolder` inside this workspace folder
          const pattern2 = new vscode.RelativePattern(folder, 'someFolder/*.ts');
          }

          Parameter base

          A base to which this pattern will be matched against relatively. It is recommended to pass in a if the pattern should match inside the workspace. Otherwise, a uri or string should only be used if the pattern is for a file path outside the workspace.

          Parameter pattern

          A file glob pattern like *.{ts,js} that will be matched on paths relative to the base.

        property base

        base: string;

        property baseUri

        baseUri: Uri;
        • A base file path to which this pattern will be matched against relatively. The file path must be absolute, should not have any trailing path separators and not include any relative segments (. or ..).

        property pattern

        pattern: string;
        • A file glob pattern like *.{ts,js} that will be matched on file paths relative to the base path.

          Example: Given a base of /home/work/folder and a file path of /home/work/folder/index.js, the file glob pattern will match on index.js.

        class Selection

        class Selection extends Range {}
        • Represents a text selection in an editor.

        constructor

        constructor(anchor: Position, active: Position);
        • Create a selection from two positions.

          Parameter anchor

          A position.

          Parameter active

          A position.

        constructor

        constructor(
        anchorLine: number,
        anchorCharacter: number,
        activeLine: number,
        activeCharacter: number
        );
        • Create a selection from four coordinates.

          Parameter anchorLine

          A zero-based line value.

          Parameter anchorCharacter

          A zero-based character value.

          Parameter activeLine

          A zero-based line value.

          Parameter activeCharacter

          A zero-based character value.

        property active

        readonly active: Position;
        • The position of the cursor. This position might be before or after .

        property anchor

        readonly anchor: Position;
        • The position at which the selection starts. This position might be before or after .

        property isReversed

        readonly isReversed: boolean;
        • A selection is reversed if its is the position.

        class SelectionRange

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

        constructor

        constructor(range: Range, parent?: SelectionRange);
        • Creates a new selection range.

          Parameter range

          The range of the selection range.

          Parameter parent

          The parent of the selection range.

        property parent

        parent?: SelectionRange;
        • The parent selection range containing this range.

        property range

        range: Range;
        • The Range of this selection range.

        class SemanticTokens

        class SemanticTokens {}
        • Represents semantic tokens, either in a range or in an entire document.

          See Also

        constructor

        constructor(data: Uint32Array, resultId?: string);
        • Create new semantic tokens.

          Parameter data

          Token data.

          Parameter resultId

          Result identifier.

        property data

        readonly data: Uint32Array;
        • The actual tokens data.

          See Also

          • for an explanation of the format.

        property resultId

        readonly resultId: string;
        • The result id of the tokens.

          This is the id that will be passed to DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits (if implemented).

        class SemanticTokensBuilder

        class SemanticTokensBuilder {}
        • A semantic tokens builder can help with creating a SemanticTokens instance which contains delta encoded semantic tokens.

        constructor

        constructor(legend?: SemanticTokensLegend);
        • Creates a semantic tokens builder.

          Parameter legend

          A semantic tokens legend.

        method build

        build: (resultId?: string) => SemanticTokens;
        • Finish and create a SemanticTokens instance.

        method push

        push: {
        (
        line: number,
        char: number,
        length: number,
        tokenType: number,
        tokenModifiers?: number
        ): void;
        (range: Range, tokenType: string, tokenModifiers?: readonly string[]): void;
        };
        • Add another token.

          Parameter line

          The token start line number (absolute value).

          Parameter char

          The token start character (absolute value).

          Parameter length

          The token length in characters.

          Parameter tokenType

          The encoded token type.

          Parameter tokenModifiers

          The encoded token modifiers.

        • Add another token. Use only when providing a legend.

          Parameter range

          The range of the token. Must be single-line.

          Parameter tokenType

          The token type.

          Parameter tokenModifiers

          The token modifiers.

        class SemanticTokensEdit

        class SemanticTokensEdit {}
        • Represents an edit to semantic tokens.

          See Also

          • for an explanation of the format.

        constructor

        constructor(start: number, deleteCount: number, data?: Uint32Array);
        • Create a semantic token edit.

          Parameter start

          Start offset

          Parameter deleteCount

          Number of elements to remove.

          Parameter data

          Elements to insert

        property data

        readonly data: Uint32Array;
        • The elements to insert.

        property deleteCount

        readonly deleteCount: number;
        • The count of elements to remove.

        property start

        readonly start: number;
        • The start offset of the edit.

        class SemanticTokensEdits

        class SemanticTokensEdits {}
        • Represents edits to semantic tokens.

          See Also

          • for an explanation of the format.

        constructor

        constructor(edits: SemanticTokensEdit[], resultId?: string);
        • Create new semantic tokens edits.

          Parameter edits

          An array of semantic token edits

          Parameter resultId

          Result identifier.

        property edits

        readonly edits: SemanticTokensEdit[];
        • The edits to the tokens data. All edits refer to the initial data state.

        property resultId

        readonly resultId: string;
        • The result id of the tokens.

          This is the id that will be passed to DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits (if implemented).

        class SemanticTokensLegend

        class SemanticTokensLegend {}
        • A semantic tokens legend contains the needed information to decipher the integer encoded representation of semantic tokens.

        constructor

        constructor(tokenTypes: string[], tokenModifiers?: string[]);
        • Creates a semantic tokens legend.

          Parameter tokenTypes

          An array of token types.

          Parameter tokenModifiers

          An array of token modifiers.

        property tokenModifiers

        readonly tokenModifiers: string[];
        • The possible token modifiers.

        property tokenTypes

        readonly tokenTypes: string[];
        • The possible token types.

        class ShellExecution

        class ShellExecution {}
        • Represents a task execution that happens inside a shell.

        constructor

        constructor(commandLine: string, options?: ShellExecutionOptions);
        • Creates a shell execution with a full command line.

          Parameter commandLine

          The command line to execute.

          Parameter options

          Optional options for the started the shell.

        constructor

        constructor(
        command: string | ShellQuotedString,
        args: (string | ShellQuotedString)[],
        options?: ShellExecutionOptions
        );
        • Creates a shell execution with a command and arguments. For the real execution the editor will construct a command line from the command and the arguments. This is subject to interpretation especially when it comes to quoting. If full control over the command line is needed please use the constructor that creates a ShellExecution with the full command line.

          Parameter command

          The command to execute.

          Parameter args

          The command arguments.

          Parameter options

          Optional options for the started the shell.

        property args

        args: (string | ShellQuotedString)[];
        • The shell args. Is undefined if created with a full command line.

        property command

        command: string | ShellQuotedString;
        • The shell command. Is undefined if created with a full command line.

        property commandLine

        commandLine: string;
        • The shell command line. Is undefined if created with a command and arguments.

        property options

        options?: ShellExecutionOptions;
        • The shell options used when the command line is executed in a shell. Defaults to undefined.

        class SignatureHelp

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

        property activeParameter

        activeParameter: number;
        • The active parameter of the active signature.

        property activeSignature

        activeSignature: number;
        • The active signature.

        property signatures

        signatures: SignatureInformation[];
        • One or more signatures.

        class SignatureInformation

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

        constructor

        constructor(label: string, documentation?: string | MarkdownString);
        • Creates a new signature information object.

          Parameter label

          A label string.

          Parameter documentation

          A doc string.

        property activeParameter

        activeParameter?: number;
        • The index of the active parameter.

          If provided, this is used in place of .

        property documentation

        documentation?: string | MarkdownString;
        • The human-readable doc-comment of this signature. Will be shown in the UI but can be omitted.

        property label

        label: string;
        • The label of this signature. Will be shown in the UI.

        property parameters

        parameters: ParameterInformation[];
        • The parameters of this signature.

        class SnippetString

        class SnippetString {}
        • A snippet string is a template which allows to insert text and to control the editor cursor when insertion happens.

          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. Variables are defined with $name and ${name:default value}. Also see [the full snippet syntax](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_create-your-own-snippets).

        constructor

        constructor(value?: string);
        • Create a new snippet string.

          Parameter value

          A snippet string.

        property value

        value: string;
        • The snippet string.

        method appendChoice

        appendChoice: (values: readonly string[], number?: number) => SnippetString;
        • Builder-function that appends a choice (${1|a,b,c|}) to the of this snippet string.

          Parameter values

          The values for choices - the array of strings

          Parameter number

          The number of this tabstop, defaults to an auto-increment value starting at 1.

          Returns

          This snippet string.

        method appendPlaceholder

        appendPlaceholder: (
        value: string | ((snippet: SnippetString) => any),
        number?: number
        ) => SnippetString;
        • Builder-function that appends a placeholder (${1:value}) to the of this snippet string.

          Parameter value

          The value of this placeholder - either a string or a function with which a nested snippet can be created.

          Parameter number

          The number of this tabstop, defaults to an auto-increment value starting at 1.

          Returns

          This snippet string.

        method appendTabstop

        appendTabstop: (number?: number) => SnippetString;
        • Builder-function that appends a tabstop ($1, $2 etc) to the of this snippet string.

          Parameter number

          The number of this tabstop, defaults to an auto-increment value starting at 1.

          Returns

          This snippet string.

        method appendText

        appendText: (string: string) => SnippetString;
        • Builder-function that appends the given string to the of this snippet string.

          Parameter string

          A value to append 'as given'. The string will be escaped.

          Returns

          This snippet string.

        method appendVariable

        appendVariable: (
        name: string,
        defaultValue: string | ((snippet: SnippetString) => any)
        ) => SnippetString;
        • Builder-function that appends a variable (${VAR}) to the of this snippet string.

          Parameter name

          The name of the variable - excluding the $.

          Parameter defaultValue

          The default value which is used when the variable name cannot be resolved - either a string or a function with which a nested snippet can be created.

          Returns

          This snippet string.

        class SnippetTextEdit

        class SnippetTextEdit {}
        • A snippet edit represents an interactive edit that is performed by the editor.

          *Note* that a snippet edit can always be performed as a normal . This will happen when no matching editor is open or when a contains snippet edits for multiple files. In that case only those that match the active editor will be performed as snippet edits and the others as normal text edits.

        constructor

        constructor(range: Range, snippet: SnippetString);
        • Create a new snippet edit.

          Parameter range

          A range.

          Parameter snippet

          A snippet string.

        property keepWhitespace

        keepWhitespace?: boolean;
        • Whether the snippet edit should be applied with existing whitespace preserved.

        property range

        range: Range;
        • The range this edit applies to.

        property snippet

        snippet: SnippetString;
        • The this edit will perform.

        method insert

        static insert: (position: Position, snippet: SnippetString) => SnippetTextEdit;
        • Utility to create an insert snippet edit.

          Parameter position

          A position, will become an empty range.

          Parameter snippet

          A snippet string.

          Returns

          A new snippet edit object.

        method replace

        static replace: (range: Range, snippet: SnippetString) => SnippetTextEdit;
        • Utility to create a replace snippet edit.

          Parameter range

          A range.

          Parameter snippet

          A snippet string.

          Returns

          A new snippet edit object.

        class SourceBreakpoint

        class SourceBreakpoint extends Breakpoint {}
        • A breakpoint specified by a source location.

        constructor

        constructor(
        location: Location,
        enabled?: boolean,
        condition?: string,
        hitCondition?: string,
        logMessage?: string
        );
        • Create a new breakpoint for a source location.

        property location

        readonly location: Location;
        • The source and line position of this breakpoint.

        class StatementCoverage

        class StatementCoverage {}
        • Contains coverage information for a single statement or line.

        constructor

        constructor(
        executed: number | boolean,
        location: Range | Position,
        branches?: BranchCoverage[]
        );
        • Parameter location

          The statement position.

          Parameter executed

          The number of times this statement was executed, or a boolean indicating whether it was executed if the exact count is unknown. If zero or false, the statement will be marked as un-covered.

          Parameter branches

          Coverage from branches of this line. If it's not a conditional, this should be omitted.

        property branches

        branches: BranchCoverage[];
        • Coverage from branches of this line or statement. If it's not a conditional, this will be empty.

        property executed

        executed: number | boolean;
        • The number of times this statement was executed, or a boolean indicating whether it was executed if the exact count is unknown. If zero or false, the statement will be marked as un-covered.

        property location

        location: Range | Position;
        • Statement location.

        class SymbolInformation

        class SymbolInformation {}
        • Represents information about programming constructs like variables, classes, interfaces etc.

        constructor

        constructor(
        name: string,
        kind: SymbolKind,
        containerName: string,
        location: Location
        );
        • Creates a new symbol information object.

          Parameter name

          The name of the symbol.

          Parameter kind

          The kind of the symbol.

          Parameter containerName

          The name of the symbol containing the symbol.

          Parameter location

          The location of the symbol.

        constructor

        constructor(
        name: string,
        kind: SymbolKind,
        range: Range,
        uri?: Uri,
        containerName?: string
        );
        • Creates a new symbol information object.

          Parameter name

          The name of the symbol.

          Parameter kind

          The kind of the symbol.

          Parameter range

          The range of the location of the symbol.

          Parameter uri

          The resource of the location of symbol, defaults to the current document.

          Parameter containerName

          The name of the symbol containing the symbol.

          Deprecated

          Please use the constructor taking a Location object.

        property containerName

        containerName: string;
        • The name of the symbol containing this symbol.

        property kind

        kind: SymbolKind;
        • The kind of this symbol.

        property location

        location: Location;
        • The location of this symbol.

        property name

        name: string;
        • The name of this symbol.

        property tags

        tags?: readonly SymbolTag[];
        • Tags for this symbol.

        class TabInputCustom

        class TabInputCustom {}
        • The tab represents a custom editor.

        constructor

        constructor(uri: Uri, viewType: string);
        • Constructs a custom editor tab input.

          Parameter uri

          The uri of the tab.

          Parameter viewType

          The viewtype of the custom editor.

        property uri

        readonly uri: Uri;
        • The uri that the tab is representing.

        property viewType

        readonly viewType: string;
        • The type of custom editor.

        class TabInputNotebook

        class TabInputNotebook {}
        • The tab represents a notebook.

        constructor

        constructor(uri: Uri, notebookType: string);
        • Constructs a new tab input for a notebook.

          Parameter uri

          The uri of the notebook.

          Parameter notebookType

          The type of notebook. Maps to

        property notebookType

        readonly notebookType: string;
        • The type of notebook. Maps to

        property uri

        readonly uri: Uri;
        • The uri that the tab is representing.

        class TabInputNotebookDiff

        class TabInputNotebookDiff {}
        • The tabs represents two notebooks in a diff configuration.

        constructor

        constructor(original: Uri, modified: Uri, notebookType: string);
        • Constructs a notebook diff tab input.

          Parameter original

          The uri of the original unmodified notebook.

          Parameter modified

          The uri of the modified notebook.

          Parameter notebookType

          The type of notebook. Maps to

        property modified

        readonly modified: Uri;
        • The uri of the modified notebook.

        property notebookType

        readonly notebookType: string;
        • The type of notebook. Maps to

        property original

        readonly original: Uri;
        • The uri of the original notebook.

        class TabInputTerminal

        class TabInputTerminal {}
        • The tab represents a terminal in the editor area.

        constructor

        constructor();
        • Constructs a terminal tab input.

        class TabInputText

        class TabInputText {}
        • The tab represents a single text based resource.

        constructor

        constructor(uri: Uri);
        • Constructs a text tab input with the given URI.

          Parameter uri

          The URI of the tab.

        property uri

        readonly uri: Uri;
        • The uri represented by the tab.

        class TabInputTextDiff

        class TabInputTextDiff {}
        • The tab represents two text based resources being rendered as a diff.

        constructor

        constructor(original: Uri, modified: Uri);
        • Constructs a new text diff tab input with the given URIs.

          Parameter original

          The uri of the original text resource.

          Parameter modified

          The uri of the modified text resource.

        property modified

        readonly modified: Uri;
        • The uri of the modified text resource.

        property original

        readonly original: Uri;
        • The uri of the original text resource.

        class TabInputWebview

        class TabInputWebview {}
        • The tab represents a webview.

        constructor

        constructor(viewType: string);
        • Constructs a webview tab input with the given view type.

          Parameter viewType

          The type of webview. Maps to

        property viewType

        readonly viewType: string;
        • The type of webview. Maps to

        class Task

        class Task {}
        • A task to execute

        constructor

        constructor(
        taskDefinition: TaskDefinition,
        scope: WorkspaceFolder | TaskScope,
        name: string,
        source: string,
        execution?: ProcessExecution | ShellExecution | CustomExecution,
        problemMatchers?: string | string[]
        );
        • Creates a new task.

          Parameter taskDefinition

          The task definition as defined in the taskDefinitions extension point.

          Parameter scope

          Specifies the task's scope. It is either a global or a workspace task or a task for a specific workspace folder. Global tasks are currently not supported.

          Parameter name

          The task's name. Is presented in the user interface.

          Parameter source

          The task's source (e.g. 'gulp', 'npm', ...). Is presented in the user interface.

          Parameter execution

          The process or shell execution.

          Parameter problemMatchers

          the names of problem matchers to use, like '$tsc' or '$eslint'. Problem matchers can be contributed by an extension using the problemMatchers extension point.

        constructor

        constructor(
        taskDefinition: TaskDefinition,
        name: string,
        source: string,
        execution?: ProcessExecution | ShellExecution,
        problemMatchers?: string | string[]
        );
        • Creates a new task.

          Parameter taskDefinition

          The task definition as defined in the taskDefinitions extension point.

          Parameter name

          The task's name. Is presented in the user interface.

          Parameter source

          The task's source (e.g. 'gulp', 'npm', ...). Is presented in the user interface.

          Parameter execution

          The process or shell execution.

          Parameter problemMatchers

          the names of problem matchers to use, like '$tsc' or '$eslint'. Problem matchers can be contributed by an extension using the problemMatchers extension point.

          Deprecated

          Use the new constructors that allow specifying a scope for the task.

        property definition

        definition: TaskDefinition;
        • The task's definition.

        property detail

        detail?: string;
        • A human-readable string which is rendered less prominently on a separate line in places where the task's name is displayed. Supports rendering of via the $(<name>)-syntax.

        property execution

        execution?: ProcessExecution | ShellExecution | CustomExecution;
        • The task's execution engine

        property group

        group?: TaskGroup;
        • The task group this tasks belongs to. See TaskGroup for a predefined set of available groups. Defaults to undefined meaning that the task doesn't belong to any special group.

        property isBackground

        isBackground: boolean;
        • Whether the task is a background task or not.

        property name

        name: string;
        • The task's name

        property presentationOptions

        presentationOptions: TaskPresentationOptions;
        • The presentation options. Defaults to an empty literal.

        property problemMatchers

        problemMatchers: string[];
        • The problem matchers attached to the task. Defaults to an empty array.

        property runOptions

        runOptions: RunOptions;
        • Run options for the task

        property scope

        readonly scope: WorkspaceFolder | TaskScope;
        • The task's scope.

        property source

        source: string;
        • A human-readable string describing the source of this shell task, e.g. 'gulp' or 'npm'. Supports rendering of via the $(<name>)-syntax.

        class TaskGroup

        class TaskGroup {}
        • A grouping for tasks. The editor by default supports the 'Clean', 'Build', 'RebuildAll' and 'Test' group.

        property Build

        static Build: TaskGroup;
        • The build task group;

        property Clean

        static Clean: TaskGroup;
        • The clean task group;

        property id

        readonly id: string;
        • The ID of the task group. Is one of TaskGroup.Clean.id, TaskGroup.Build.id, TaskGroup.Rebuild.id, or TaskGroup.Test.id.

        property isDefault

        readonly isDefault: boolean;
        • Whether the task that is part of this group is the default for the group. This property cannot be set through API, and is controlled by a user's task configurations.

        property Rebuild

        static Rebuild: TaskGroup;
        • The rebuild all task group;

        property Test

        static Test: TaskGroup;
        • The test all task group;

        class TelemetryTrustedValue

        class TelemetryTrustedValue<T = any> {}
        • A special value wrapper denoting a value that is safe to not clean. This is to be used when you can guarantee no identifiable information is contained in the value and the cleaning is improperly redacting it.

        constructor

        constructor(value: {});
        • Creates a new telementry trusted value.

          Parameter value

          A value to trust

        property value

        readonly value: {};
        • The value that is trusted to not contain PII.

        class TerminalLink {}
        • A link on a terminal line.

        constructor

        constructor(startIndex: number, length: number, tooltip?: string);
        • Creates a new terminal link.

          Parameter startIndex

          The start index of the link on TerminalLinkContext.line.

          Parameter length

          The length of the link on TerminalLinkContext.line.

          Parameter tooltip

          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.

        property length

        length: number;

        property startIndex

        startIndex: number;

        property tooltip

        tooltip?: string;
        • 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.

        class TerminalProfile

        class TerminalProfile {}
        • A terminal profile defines how a terminal will be launched.

        constructor

        constructor(options: TerminalOptions | ExtensionTerminalOptions);
        • Creates a new terminal profile.

          Parameter options

          The options that the terminal will launch with.

        property options

        options: TerminalOptions | ExtensionTerminalOptions;
        • The options that the terminal will launch with.

        class TestCoverageCount

        class TestCoverageCount {}
        • A class that contains information about a covered resource. A count can be give for lines, branches, and declarations in a file.

        constructor

        constructor(covered: number, total: number);

        property covered

        covered: number;
        • Number of items covered in the file.

        property total

        total: number;
        • Total number of covered items in the file.

        class TestMessage

        class TestMessage {}
        • Message associated with the test state. Can be linked to a specific source range -- useful for assertion failures, for example.

        constructor

        constructor(message: string | MarkdownString);
        • Creates a new TestMessage instance.

          Parameter message

          The message to show to the user.

        property actualOutput

        actualOutput?: string;
        • Actual test output. If given with , a diff view will be shown.

        property contextValue

        contextValue?: string;
        • Context value of the test item. This can be used to contribute message- specific actions to the test peek view. The value set here can be found in the testMessage property of the following menus contribution points:

          - testing/message/context - context menu for the message in the results tree - testing/message/content - a prominent button overlaying editor content where the message is displayed.

          For example:

          "contributes": {
          "menus": {
          "testing/message/content": [
          {
          "command": "extension.deleteCommentThread",
          "when": "testMessage == canApplyRichDiff"
          }
          ]
          }
          }

          The command will be called with an object containing: - test: the TestItem the message is associated with, *if* it is still present in the TestController.items collection. - message: the TestMessage instance.

        property expectedOutput

        expectedOutput?: string;
        • Expected test output. If given with , a diff view will be shown.

        property location

        location?: Location;
        • Associated file location.

        property message

        message: string | MarkdownString;
        • Human-readable message text to display.

        property stackTrace

        stackTrace?: TestMessageStackFrame[];
        • The stack trace associated with the message or failure.

        method diff

        static diff: (
        message: string | MarkdownString,
        expected: string,
        actual: string
        ) => TestMessage;
        • Creates a new TestMessage that will present as a diff in the editor.

          Parameter message

          Message to display to the user.

          Parameter expected

          Expected output.

          Parameter actual

          Actual output.

        class TestMessageStackFrame

        class TestMessageStackFrame {}

        constructor

        constructor(label: string, uri?: Uri, position?: Position);
        • Parameter label

          The name of the stack frame

          Parameter file

          The file URI of the stack frame

          Parameter position

          The position of the stack frame within the file

        property label

        label: string;
        • The name of the stack frame, typically a method or function name.

        property position

        position?: Position;
        • Position of the stack frame within the file.

        property uri

        uri?: Uri;
        • The location of this stack frame. This should be provided as a URI if the location of the call frame can be accessed by the editor.

        class TestRunRequest

        class TestRunRequest {}
        • A TestRunRequest is a precursor to a TestRun, which in turn is created by passing a request to TestController.createTestRun. The TestRunRequest contains information about which tests should be run, which should not be run, and how they are run (via the ).

          In general, TestRunRequests are created by the editor and pass to TestRunProfile.runHandler, however you can also create test requests and runs outside of the runHandler.

        constructor

        constructor(
        include?: readonly TestItem[],
        exclude?: readonly TestItem[],
        profile?: TestRunProfile,
        continuous?: boolean,
        preserveFocus?: boolean
        );
        • Parameter include

          Array of specific tests to run, or undefined to run all tests

          Parameter exclude

          An array of tests to exclude from the run.

          Parameter profile

          The run profile used for this request.

          Parameter continuous

          Whether to run tests continuously as source changes.

          Parameter preserveFocus

          Whether to preserve the user's focus when the run is started

        property continuous

        readonly continuous?: boolean;

        property exclude

        readonly exclude: readonly TestItem[];
        • An array of tests the user has marked as excluded from the test included in this run; exclusions should apply after inclusions.

          May be omitted if no exclusions were requested. Test controllers should not run excluded tests or any children of excluded tests.

        property include

        readonly include: readonly TestItem[];
        • A filter for specific tests to run. If given, the extension should run all of the included tests and all their children, excluding any tests that appear in TestRunRequest.exclude. If this property is undefined, then the extension should simply run all tests.

          The process of running tests should resolve the children of any test items who have not yet been resolved.

        property preserveFocus

        readonly preserveFocus: boolean;
        • Controls how test Test Results view is focused. If true, the editor will keep the maintain the user's focus. If false, the editor will prefer to move focus into the Test Results view, although this may be configured by users.

        property profile

        readonly profile: TestRunProfile;
        • The profile used for this request. This will always be defined for requests issued from the editor UI, though extensions may programmatically create requests not associated with any profile.

        class TestTag

        class TestTag {}
        • Tags can be associated with and . A profile with a tag can only execute tests that include that tag in their TestItem.tags array.

        constructor

        constructor(id: string);
        • Creates a new TestTag instance.

          Parameter id

          ID of the test tag.

        property id

        readonly id: string;
        • ID of the test tag. TestTag instances with the same ID are considered to be identical.

        class TextEdit

        class TextEdit {}
        • A text edit represents edits that should be applied to a document.

        constructor

        constructor(range: Range, newText: string);
        • Create a new TextEdit.

          Parameter range

          A range.

          Parameter newText

          A string.

        property newEol

        newEol?: EndOfLine;
        • The eol-sequence used in the document.

          *Note* that the eol-sequence will be applied to the whole document.

        property newText

        newText: string;
        • The string this edit will insert.

        property range

        range: Range;
        • The range this edit applies to.

        method delete

        static delete: (range: Range) => TextEdit;
        • Utility to create a delete edit.

          Parameter range

          A range.

          Returns

          A new text edit object.

        method insert

        static insert: (position: Position, newText: string) => TextEdit;
        • Utility to create an insert edit.

          Parameter position

          A position, will become an empty range.

          Parameter newText

          A string.

          Returns

          A new text edit object.

        method replace

        static replace: (range: Range, newText: string) => TextEdit;
        • Utility to create a replace edit.

          Parameter range

          A range.

          Parameter newText

          A string.

          Returns

          A new text edit object.

        method setEndOfLine

        static setEndOfLine: (eol: EndOfLine) => TextEdit;
        • Utility to create an eol-edit.

          Parameter eol

          An eol-sequence

          Returns

          A new text edit object.

        class ThemeColor

        class ThemeColor {}
        • A reference to one of the workbench colors as defined in https://code.visualstudio.com/api/references/theme-color. Using a theme color is preferred over a custom color as it gives theme authors and users the possibility to change the color.

        constructor

        constructor(id: string);
        • Creates a reference to a theme color.

          Parameter id

          of the color. The available colors are listed in https://code.visualstudio.com/api/references/theme-color.

        property id

        readonly id: string;
        • The id of this color.

        class ThemeIcon

        class ThemeIcon {}
        • A reference to a named icon. Currently, , , and [ThemeIcon ids](https://code.visualstudio.com/api/references/icons-in-labels#icon-listing) are supported. Using a theme icon is preferred over a custom icon as it gives product theme authors the possibility to change the icons.

          *Note* that theme icons can also be rendered inside labels and descriptions. Places that support theme icons spell this out and they use the $(<name>)-syntax, for instance quickPick.label = "Hello World $(globe)".

        constructor

        constructor(id: string, color?: ThemeColor);
        • Creates a reference to a theme icon.

          Parameter id

          id of the icon. The available icons are listed in https://code.visualstudio.com/api/references/icons-in-labels#icon-listing.

          Parameter color

          optional ThemeColor for the icon. The color is currently only used in TreeItem.

        property color

        readonly color?: ThemeColor;
        • The optional ThemeColor of the icon. The color is currently only used in TreeItem.

        property File

        static readonly File: ThemeIcon;
        • Reference to an icon representing a file. The icon is taken from the current file icon theme or a placeholder icon is used.

        property Folder

        static readonly Folder: ThemeIcon;
        • Reference to an icon representing a folder. The icon is taken from the current file icon theme or a placeholder icon is used.

        property id

        readonly id: string;
        • The id of the icon. The available icons are listed in https://code.visualstudio.com/api/references/icons-in-labels#icon-listing.

        class TreeItem

        class TreeItem {}
        • A tree item is an UI element of the tree. Tree items are created by the .

        constructor

        constructor(
        label: string | TreeItemLabel,
        collapsibleState?: TreeItemCollapsibleState
        );

        constructor

        constructor(resourceUri: Uri, collapsibleState?: TreeItemCollapsibleState);

        property accessibilityInformation

        accessibilityInformation?: AccessibilityInformation;
        • Accessibility information used when screen reader interacts with this tree item. Generally, a TreeItem has no need to set the role of the accessibilityInformation; however, there are cases where a TreeItem is not displayed in a tree-like way where setting the role may make sense.

        property checkboxState

        checkboxState?:
        | TreeItemCheckboxState
        | {
        readonly state: TreeItemCheckboxState;
        readonly tooltip?: string;
        readonly accessibilityInformation?: AccessibilityInformation;
        };
        • of the tree item. should be fired when changes.

        property collapsibleState

        collapsibleState?: TreeItemCollapsibleState;

        property command

        command?: Command;
        • The Command that should be executed when the tree item is selected.

          Please use vscode.open or vscode.diff as command IDs when the tree item is opening something in the editor. Using these commands ensures that the resulting editor will appear consistent with how other built-in trees open editors.

        property contextValue

        contextValue?: string;
        • Context value of the tree item. This can be used to contribute item specific actions in the tree. For example, a tree item is given a context value as folder. When contributing actions to view/item/context using menus extension point, you can specify context value for key viewItem in when expression like viewItem == folder.

          "contributes": {
          "menus": {
          "view/item/context": [
          {
          "command": "extension.deleteFolder",
          "when": "viewItem == folder"
          }
          ]
          }
          }

          This will show action extension.deleteFolder only for items with contextValue is folder.

        property description

        description?: string | boolean;
        • A human-readable string which is rendered less prominent. When true, it is derived from and when falsy, it is not shown.

        property iconPath

        iconPath?: string | IconPath;
        • The icon path or ThemeIcon for the tree item. When falsy, is assigned, if item is collapsible otherwise . When a file or folder ThemeIcon is specified, icon is derived from the current file icon theme for the specified theme icon using (if provided).

        property id

        id?: string;
        • Optional id for the tree item that has to be unique across tree. The id is used to preserve the selection and expansion state of the tree item.

          If not provided, an id is generated using the tree item's label. **Note** that when labels change, ids will change and that selection and expansion state cannot be kept stable anymore.

        property label

        label?: string | TreeItemLabel;
        • A human-readable string describing this item. When falsy, it is derived from .

        property resourceUri

        resourceUri?: Uri;
        • The Uri of the resource representing this item.

          Will be used to derive the , when it is not provided. Will be used to derive the icon from current file icon theme, when has ThemeIcon value.

        property tooltip

        tooltip?: string | MarkdownString;
        • The tooltip text when you hover over this item.

        class TypeHierarchyItem

        class TypeHierarchyItem {}
        • Represents an item of a type hierarchy, like a class or an interface.

        constructor

        constructor(
        kind: SymbolKind,
        name: string,
        detail: string,
        uri: Uri,
        range: Range,
        selectionRange: Range
        );
        • Creates a new type hierarchy item.

          Parameter kind

          The kind of the item.

          Parameter name

          The name of the item.

          Parameter detail

          The details of the item.

          Parameter uri

          The Uri of the item.

          Parameter range

          The whole range of the item.

          Parameter selectionRange

          The selection range of the item.

        property detail

        detail?: string;
        • More detail for this item, e.g. the signature of a function.

        property kind

        kind: SymbolKind;
        • The kind of this item.

        property name

        name: string;
        • The name of this item.

        property range

        range: Range;
        • The range enclosing this symbol not including leading/trailing whitespace but everything else, e.g. comments and code.

        property selectionRange

        selectionRange: Range;
        • The range that should be selected and revealed when this symbol is being picked, e.g. the name of a class. Must be contained by the -property.

        property tags

        tags?: readonly SymbolTag[];
        • Tags for this item.

        property uri

        uri: Uri;
        • The resource identifier of this item.

        class Uri

        class Uri {}
        • A universal resource identifier representing either a file on disk or another resource, like untitled resources.

        property authority

        readonly authority: string;
        • Authority is the www.example.com part of http://www.example.com/some/path?query#fragment. The part between the first double slashes and the next slash.

        property fragment

        readonly fragment: string;
        • Fragment is the fragment part of http://www.example.com/some/path?query#fragment.

        property fsPath

        readonly fsPath: string;
        • The string representing the corresponding file system path of this Uri.

          Will handle UNC paths and normalize windows drive letters to lower-case. Also uses the platform specific path separator.

          * Will *not* validate the path for invalid characters and semantics. * Will *not* look at the scheme of this Uri. * The resulting string shall *not* be used for display purposes but for disk operations, like readFile et al.

          The *difference* to the -property is the use of the platform specific path separator and the handling of UNC paths. The sample below outlines the difference:

          const u = URI.parse('file://server/c$/folder/file.txt')
          u.authority === 'server'
          u.path === '/c$/folder/file.txt'
          u.fsPath === '\\server\c$\folder\file.txt'

        property path

        readonly path: string;
        • Path is the /some/path part of http://www.example.com/some/path?query#fragment.

        property query

        readonly query: string;
        • Query is the query part of http://www.example.com/some/path?query#fragment.

        property scheme

        readonly scheme: string;
        • Scheme is the http part of http://www.example.com/some/path?query#fragment. The part before the first colon.

        method file

        static file: (path: string) => Uri;
        • Create an URI from a file system path. The will be file.

          The *difference* between Uri.parse and Uri.file is that the latter treats the argument as path, not as stringified-uri. E.g. Uri.file(path) is *not* the same as Uri.parse('file://' + path) because the path might contain characters that are interpreted (# and ?). See the following sample:

          const good = URI.file('/coding/c#/project1');
          good.scheme === 'file';
          good.path === '/coding/c#/project1';
          good.fragment === '';
          const bad = URI.parse('file://' + '/coding/c#/project1');
          bad.scheme === 'file';
          bad.path === '/coding/c'; // path is now broken
          bad.fragment === '/project1';

          Parameter path

          A file system or UNC path.

          Returns

          A new Uri instance.

        method from

        static from: (components: {
        readonly scheme: string;
        readonly authority?: string;
        readonly path?: string;
        readonly query?: string;
        readonly fragment?: string;
        }) => Uri;
        • Create an URI from its component parts

          Parameter components

          The component parts of an Uri.

          Returns

          A new Uri instance.

          See Also

        method joinPath

        static joinPath: (base: Uri, ...pathSegments: string[]) => Uri;
        • Create a new uri which path is the result of joining the path of the base uri with the provided path segments.

          - Note 1: joinPath only affects the path component and all other components (scheme, authority, query, and fragment) are left as they are. - Note 2: The base uri must have a path; an error is thrown otherwise.

          The path segments are normalized in the following ways: - sequences of path separators (/ or \) are replaced with a single separator - for file-uris on windows, the backslash-character (\) is considered a path-separator - the ..-segment denotes the parent segment, the . denotes the current segment - paths have a root which always remains, for instance on windows drive-letters are roots so that is true: joinPath(Uri.file('file:///c:/root'), '../../other').fsPath === 'c:/other'

          Parameter base

          An uri. Must have a path.

          Parameter pathSegments

          One more more path fragments

          Returns

          A new uri which path is joined with the given fragments

        method parse

        static parse: (value: string, strict?: boolean) => Uri;
        • Create an URI from a string, e.g. http://www.example.com/some/path, file:///usr/home, or scheme:with/path.

          *Note* that for a while uris without a scheme were accepted. That is not correct as all uris should have a scheme. To avoid breakage of existing code the optional strict-argument has been added. We *strongly* advise to use it, e.g. Uri.parse('my:uri', true)

          Parameter value

          The string value of an Uri.

          Parameter strict

          Throw an error when value is empty or when no scheme can be parsed.

          Returns

          A new Uri instance.

          See Also

        method toJSON

        toJSON: () => any;
        • Returns a JSON representation of this Uri.

          Returns

          An object.

        method toString

        toString: (skipEncoding?: boolean) => string;
        • Returns a string representation of this Uri. The representation and normalization of a URI depends on the scheme.

          * The resulting string can be safely used with Uri.parse. * The resulting string shall *not* be used for display purposes.

          *Note* that the implementation will encode _aggressive_ which often leads to unexpected, but not incorrect, results. For instance, colons are encoded to %3A which might be unexpected in file-uri. Also & and = will be encoded which might be unexpected for http-uris. For stability reasons this cannot be changed anymore. If you suffer from too aggressive encoding you should use the skipEncoding-argument: uri.toString(true).

          Parameter skipEncoding

          Do not percentage-encode the result, defaults to false. Note that the # and ? characters occurring in the path will always be encoded.

          Returns

          A string representation of this Uri.

        method with

        with: (change: {
        scheme?: string;
        authority?: string;
        path?: string;
        query?: string;
        fragment?: string;
        }) => Uri;
        • Derive a new Uri from this Uri.

          let file = Uri.parse('before:some/file/path');
          let other = file.with({ scheme: 'after' });
          assert.ok(other.toString() === 'after:some/file/path');

          Parameter change

          An object that describes a change to this Uri. To unset components use null or the empty string.

          Returns

          A new Uri that reflects the given change. Will return this Uri if the change is not changing anything.

        class WorkspaceEdit

        class WorkspaceEdit {}
        • A workspace edit is a collection of textual and files changes for multiple resources and documents.

          Use the -function to apply a workspace edit.

        property size

        readonly size: number;
        • The number of affected resources of textual or resource changes.

        method createFile

        createFile: (
        uri: Uri,
        options?: {
        readonly overwrite?: boolean;
        readonly ignoreIfExists?: boolean;
        readonly contents?: Uint8Array | DataTransferFile;
        },
        metadata?: WorkspaceEditEntryMetadata
        ) => void;
        • Create a regular file.

          Parameter uri

          Uri of the new file.

          Parameter options

          Defines if an existing file should be overwritten or be ignored. When overwrite and ignoreIfExists are both set overwrite wins. When both are unset and when the file already exists then the edit cannot be applied successfully. The content-property allows to set the initial contents the file is being created with.

          Parameter metadata

          Optional metadata for the entry.

        method delete

        delete: (uri: Uri, range: Range, metadata?: WorkspaceEditEntryMetadata) => void;
        • Delete the text at the given range.

          Parameter uri

          A resource identifier.

          Parameter range

          A range.

          Parameter metadata

          Optional metadata for the entry.

        method deleteFile

        deleteFile: (
        uri: Uri,
        options?: {
        readonly recursive?: boolean;
        readonly ignoreIfNotExists?: boolean;
        },
        metadata?: WorkspaceEditEntryMetadata
        ) => void;
        • Delete a file or folder.

          Parameter uri

          The uri of the file that is to be deleted.

          Parameter metadata

          Optional metadata for the entry.

        method entries

        entries: () => [Uri, TextEdit[]][];
        • Get all text edits grouped by resource.

          Returns

          A shallow copy of [Uri, TextEdit[]]-tuples.

        method get

        get: (uri: Uri) => TextEdit[];
        • Get the text edits for a resource.

          Parameter uri

          A resource identifier.

          Returns

          An array of text edits.

        method has

        has: (uri: Uri) => boolean;
        • Check if a text edit for a resource exists.

          Parameter uri

          A resource identifier.

          Returns

          true if the given resource will be touched by this edit.

        method insert

        insert: (
        uri: Uri,
        position: Position,
        newText: string,
        metadata?: WorkspaceEditEntryMetadata
        ) => void;
        • Insert the given text at the given position.

          Parameter uri

          A resource identifier.

          Parameter position

          A position.

          Parameter newText

          A string.

          Parameter metadata

          Optional metadata for the entry.

        method renameFile

        renameFile: (
        oldUri: Uri,
        newUri: Uri,
        options?: {
        readonly overwrite?: boolean;
        readonly ignoreIfExists?: boolean;
        },
        metadata?: WorkspaceEditEntryMetadata
        ) => void;
        • Rename a file or folder.

          Parameter oldUri

          The existing file.

          Parameter newUri

          The new location.

          Parameter options

          Defines if existing files should be overwritten or be ignored. When overwrite and ignoreIfExists are both set overwrite wins.

          Parameter metadata

          Optional metadata for the entry.

        method replace

        replace: (
        uri: Uri,
        range: Range,
        newText: string,
        metadata?: WorkspaceEditEntryMetadata
        ) => void;
        • Replace the given range with given text for the given resource.

          Parameter uri

          A resource identifier.

          Parameter range

          A range.

          Parameter newText

          A string.

          Parameter metadata

          Optional metadata for the entry.

        method set

        set: {
        (uri: Uri, edits: ReadonlyArray<TextEdit | SnippetTextEdit>): void;
        (
        uri: Uri,
        edits: readonly [
        TextEdit | SnippetTextEdit,
        WorkspaceEditEntryMetadata
        ][]
        ): void;
        (uri: Uri, edits: readonly NotebookEdit[]): void;
        (
        uri: Uri,
        edits: readonly [NotebookEdit, WorkspaceEditEntryMetadata][]
        ): void;
        };
        • Set (and replace) text edits or snippet edits for a resource.

          Parameter uri

          A resource identifier.

          Parameter edits

          An array of edits.

        • Set (and replace) text edits or snippet edits with metadata for a resource.

          Parameter uri

          A resource identifier.

          Parameter edits

          An array of edits.

        • Set (and replace) notebook edits for a resource.

          Parameter uri

          A resource identifier.

          Parameter edits

          An array of edits.

        • Set (and replace) notebook edits with metadata for a resource.

          Parameter uri

          A resource identifier.

          Parameter edits

          An array of edits.

        interface AccessibilityInformation

        interface AccessibilityInformation {}
        • Accessibility information which controls screen reader behavior.

        property label

        readonly label: string;
        • Label to be read out by a screen reader once the item has focus.

        property role

        readonly role?: string;
        • Role of the widget which defines how a screen reader interacts with it. The role should be set in special cases when for example a tree-like element behaves like a checkbox. If role is not specified the editor will pick the appropriate role automatically. More about aria roles can be found here https://w3c.github.io/aria/#widget_roles

        interface AuthenticationGetSessionOptions

        interface AuthenticationGetSessionOptions {}

        property account

        account?: AuthenticationSessionAccountInformation;
        • The account that you would like to get a session for. This is passed down to the Authentication Provider to be used for creating the correct session.

        property clearSessionPreference

        clearSessionPreference?: boolean;
        • Whether the existing session preference should be cleared.

          For authentication providers that support being signed into multiple accounts at once, the user will be prompted to select an account to use when is called. This preference is remembered until is called with this flag.

          Note: The preference is extension specific. So if one extension calls , it will not affect the session preference for another extension calling . Additionally, the preference is set for the current workspace and also globally. This means that new workspaces will use the "global" value at first and then when this flag is provided, a new value can be set for that workspace. This also means that pre-existing workspaces will not lose their preference if a new workspace sets this flag.

          Defaults to false.

        property createIfNone

        createIfNone?: boolean | AuthenticationGetSessionPresentationOptions;
        • Whether login should be performed if there is no matching session.

          If true, a modal dialog will be shown asking the user to sign in. If false, a numbered badge will be shown on the accounts activity bar icon. An entry for the extension will be added under the menu to sign in. This allows quietly prompting the user to sign in.

          If you provide options, you will also see the dialog but with the additional context provided.

          If there is a matching session but the extension has not been granted access to it, setting this to true will also result in an immediate modal dialog, and false will add a numbered badge to the accounts icon.

          Defaults to false.

          Note: you cannot use this option with .

        property forceNewSession

        forceNewSession?:
        | boolean
        | AuthenticationGetSessionPresentationOptions
        | AuthenticationForceNewSessionOptions;
        • Whether we should attempt to reauthenticate even if there is already a session available.

          If true, a modal dialog will be shown asking the user to sign in again. This is mostly used for scenarios where the token needs to be re minted because it has lost some authorization.

          If you provide options, you will also see the dialog but with the additional context provided.

          If there are no existing sessions and forceNewSession is true, it will behave identically to .

          This defaults to false.

        property silent

        silent?: boolean;
        • Whether we should show the indication to sign in in the Accounts menu.

          If false, the user will be shown a badge on the Accounts menu with an option to sign in for the extension. If true, no indication will be shown.

          Defaults to false.

          Note: you cannot use this option with any other options that prompt the user like .

        interface AuthenticationGetSessionPresentationOptions

        interface AuthenticationGetSessionPresentationOptions {}

        property detail

        detail?: string;
        • An optional message that will be displayed to the user when we ask to re-authenticate. Providing additional context as to why you are asking a user to re-authenticate can help increase the odds that they will accept.

        interface AuthenticationProvider

        interface AuthenticationProvider {}
        • A provider for performing authentication to a service.

        property onDidChangeSessions

        readonly onDidChangeSessions: Event<AuthenticationProviderAuthenticationSessionsChangeEvent>;
        • An Event which fires when the array of sessions has changed, or data within a session has changed.

        method createSession

        createSession: (
        scopes: readonly string[],
        options: AuthenticationProviderSessionOptions
        ) => Thenable<AuthenticationSession>;
        • Prompts a user to login.

          If login is successful, the onDidChangeSessions event should be fired.

          If login fails, a rejected promise should be returned.

          If the provider has specified that it does not support multiple accounts, then this should never be called if there is already an existing session matching these scopes.

          Parameter scopes

          A list of scopes, permissions, that the new session should be created with.

          Parameter options

          Additional options for creating a session.

          Returns

          A promise that resolves to an authentication session.

        method getSessions

        getSessions: (
        scopes: readonly string[] | undefined,
        options: AuthenticationProviderSessionOptions
        ) => Thenable<AuthenticationSession[]>;
        • Get a list of sessions.

          Parameter scopes

          An optional list of scopes. If provided, the sessions returned should match these permissions, otherwise all sessions should be returned.

          Parameter options

          Additional options for getting sessions.

          Returns

          A promise that resolves to an array of authentication sessions.

        method removeSession

        removeSession: (sessionId: string) => Thenable<void>;
        • Removes the session corresponding to session id.

          If the removal is successful, the onDidChangeSessions event should be fired.

          If a session cannot be removed, the provider should reject with an error message.

          Parameter sessionId

          The id of the session to remove.

        interface AuthenticationProviderAuthenticationSessionsChangeEvent

        interface AuthenticationProviderAuthenticationSessionsChangeEvent {}

        property added

        readonly added: readonly AuthenticationSession[] | undefined;

        property changed

        readonly changed: readonly AuthenticationSession[] | undefined;
        • The of the AuthenticationProvider that have been changed. A session changes when its data excluding the id are updated. An example of this is a session refresh that results in a new access token being set for the session.

        property removed

        readonly removed: readonly AuthenticationSession[] | undefined;

        interface AuthenticationProviderInformation

        interface AuthenticationProviderInformation {}

        property id

        readonly id: string;
        • The unique identifier of the authentication provider.

        property label

        readonly label: string;
        • The human-readable name of the authentication provider.

        interface AuthenticationProviderOptions

        interface AuthenticationProviderOptions {}

        property supportsMultipleAccounts

        readonly supportsMultipleAccounts?: boolean;
        • Whether it is possible to be signed into multiple accounts at once with this provider. If not specified, will default to false.

        interface AuthenticationProviderSessionOptions

        interface AuthenticationProviderSessionOptions {}

        property account

        account?: AuthenticationSessionAccountInformation;
        • The account that is being asked about. If this is passed in, the provider should attempt to return the sessions that are only related to this account.

        interface AuthenticationSession

        interface AuthenticationSession {}
        • Represents a session of a currently logged in user.

        property accessToken

        readonly accessToken: string;
        • The access token.

        property account

        readonly account: AuthenticationSessionAccountInformation;
        • The account associated with the session.

        property id

        readonly id: string;
        • The identifier of the authentication session.

        property scopes

        readonly scopes: readonly string[];
        • The permissions granted by the session's access token. Available scopes are defined by the AuthenticationProvider.

        interface AuthenticationSessionAccountInformation

        interface AuthenticationSessionAccountInformation {}

        property id

        readonly id: string;
        • The unique identifier of the account.

        property label

        readonly label: string;
        • The human-readable name of the account.

        interface AuthenticationSessionsChangeEvent

        interface AuthenticationSessionsChangeEvent {}

        property provider

        readonly provider: AuthenticationProviderInformation;

        interface AutoClosingPair

        interface AutoClosingPair {}
        • Describes pairs of strings where the close string will be automatically inserted when typing the opening string.

        property close

        close: string;
        • The closing string that will be automatically inserted when typing the opening string.

        property notIn

        notIn?: SyntaxTokenType[];
        • A set of tokens where the pair should not be auto closed.

        property open

        open: string;
        • The string that will trigger the automatic insertion of the closing string.

        interface BreakpointsChangeEvent

        interface BreakpointsChangeEvent {}
        • An event describing the changes to the set of .

        property added

        readonly added: readonly Breakpoint[];
        • Added breakpoints.

        property changed

        readonly changed: readonly Breakpoint[];
        • Changed breakpoints.

        property removed

        readonly removed: readonly Breakpoint[];
        • Removed breakpoints.

        interface CallHierarchyProvider

        interface CallHierarchyProvider {}
        • The call hierarchy provider interface describes the contract between extensions and the call hierarchy feature which allows to browse calls and caller of function, methods, constructor etc.

        method prepareCallHierarchy

        prepareCallHierarchy: (
        document: TextDocument,
        position: Position,
        token: CancellationToken
        ) => ProviderResult<CallHierarchyItem | CallHierarchyItem[]>;
        • Bootstraps call hierarchy by returning the item that is denoted by the given document and position. This item will be used as entry into the call graph. Providers should return undefined or null when there is no item at the given location.

          Parameter document

          The document in which the command was invoked.

          Parameter position

          The position at which the command was invoked.

          Parameter token

          A cancellation token.

          Returns

          One or multiple call hierarchy items or a thenable that resolves to such. The lack of a result can be signaled by returning undefined, null, or an empty array.

        method provideCallHierarchyIncomingCalls

        provideCallHierarchyIncomingCalls: (
        item: CallHierarchyItem,
        token: CancellationToken
        ) => ProviderResult<CallHierarchyIncomingCall[]>;
        • Provide all incoming calls for an item, e.g all callers for a method. In graph terms this describes directed and annotated edges inside the call graph, e.g the given item is the starting node and the result is the nodes that can be reached.

          Parameter item

          The hierarchy item for which incoming calls should be computed.

          Parameter token

          A cancellation token.

          Returns

          A set of incoming calls or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

        method provideCallHierarchyOutgoingCalls

        provideCallHierarchyOutgoingCalls: (
        item: CallHierarchyItem,
        token: CancellationToken
        ) => ProviderResult<CallHierarchyOutgoingCall[]>;
        • Provide all outgoing calls for an item, e.g call calls to functions, methods, or constructors from the given item. In graph terms this describes directed and annotated edges inside the call graph, e.g the given item is the starting node and the result is the nodes that can be reached.

          Parameter item

          The hierarchy item for which outgoing calls should be computed.

          Parameter token

          A cancellation token.

          Returns

          A set of outgoing calls or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

        interface CancellationToken

        interface CancellationToken {}
        • A cancellation token is passed to an asynchronous or long running operation to request cancellation, like cancelling a request for completion items because the user continued to type.

          To get an instance of a CancellationToken use a CancellationTokenSource.

        property isCancellationRequested

        isCancellationRequested: boolean;
        • Is true when the token has been cancelled, false otherwise.

        property onCancellationRequested

        onCancellationRequested: Event<any>;
        • An Event which fires upon cancellation.

        interface ChatContext

        interface ChatContext {}
        • Extra context passed to a participant.

        property history

        readonly history: ReadonlyArray<ChatRequestTurn | ChatResponseTurn>;
        • All of the chat messages so far in the current chat session. Currently, only chat messages for the current participant are included.

        interface ChatErrorDetails

        interface ChatErrorDetails {}
        • Represents an error result from a chat request.

        property message

        message: string;
        • An error message that is shown to the user.

        property responseIsFiltered

        responseIsFiltered?: boolean;
        • If set to true, the response will be partly blurred out.

        interface ChatFollowup

        interface ChatFollowup {}
        • A followup question suggested by the participant.

        property command

        command?: string;
        • By default, the followup goes to the same participant/command. But this property can be set to invoke a different command.

        property label

        label?: string;
        • A title to show the user. The prompt will be shown by default, when this is unspecified.

        property participant

        participant?: string;
        • By default, the followup goes to the same participant/command. But this property can be set to invoke a different participant by ID. Followups can only invoke a participant that was contributed by the same extension.

        property prompt

        prompt: string;
        • The message to send to the chat.

        interface ChatFollowupProvider

        interface ChatFollowupProvider {}
        • Will be invoked once after each request to get suggested followup questions to show the user. The user can click the followup to send it to the chat.

        method provideFollowups

        provideFollowups: (
        result: ChatResult,
        context: ChatContext,
        token: CancellationToken
        ) => ProviderResult<ChatFollowup[]>;
        • Provide followups for the given result.

          Parameter result

          This object has the same properties as the result returned from the participant callback, including metadata, but is not the same instance.

          Parameter context

          Extra context passed to a participant.

          Parameter token

          A cancellation token.

        interface ChatLanguageModelToolReference

        interface ChatLanguageModelToolReference {}
        • A reference to a tool that the user manually attached to their request, either using the #-syntax inline, or as an attachment via the paperclip button.

        property name

        readonly name: string;
        • The tool name. Refers to a tool listed in lm.tools.

        property range

        readonly range?: [start: number, end: number];
        • The start and end index of the reference in the . When undefined, the reference was not part of the prompt text.

          *Note* that the indices take the leading #-character into account which means they can be used to modify the prompt as-is.

        interface ChatParticipant

        interface ChatParticipant {}
        • A chat participant can be invoked by the user in a chat session, using the @ prefix. When it is invoked, it handles the chat request and is solely responsible for providing a response to the user. A ChatParticipant is created using chat.createChatParticipant.

        property followupProvider

        followupProvider?: ChatFollowupProvider;
        • This provider will be called once after each request to retrieve suggested followup questions.

        property iconPath

        iconPath?: IconPath;
        • An icon for the participant shown in UI.

        property id

        readonly id: string;
        • A unique ID for this participant.

        property onDidReceiveFeedback

        onDidReceiveFeedback: Event<ChatResultFeedback>;
        • An event that fires whenever feedback for a result is received, e.g. when a user up- or down-votes a result.

          The passed is guaranteed to have the same properties as the result that was previously returned from this chat participant's handler.

        property requestHandler

        requestHandler: ChatRequestHandler;
        • The handler for requests to this participant.

        method dispose

        dispose: () => void;
        • Dispose this participant and free resources.

        interface ChatPromptReference

        interface ChatPromptReference {}
        • A reference to a value that the user added to their chat request.

        property id

        readonly id: string;
        • A unique identifier for this kind of reference.

        property modelDescription

        readonly modelDescription?: string;
        • A description of this value that could be used in an LLM prompt.

        property range

        readonly range?: [start: number, end: number];
        • The start and end index of the reference in the . When undefined, the reference was not part of the prompt text.

          *Note* that the indices take the leading #-character into account which means they can used to modify the prompt as-is.

        property value

        readonly value: string | Uri | Location | unknown;
        • The value of this reference. The string | Uri | Location types are used today, but this could expand in the future.

        interface ChatRequest

        interface ChatRequest {}
        • A request to a chat participant.

        property command

        readonly command: string | undefined;
        • The name of the that was selected for this request.

        property model

        readonly model: LanguageModelChat;
        • This is the model that is currently selected in the UI. Extensions can use this or use lm.selectChatModels to pick another model. Don't hold onto this past the lifetime of the request.

        property prompt

        readonly prompt: string;
        • The prompt as entered by the user.

          Information about references used in this request is stored in ChatRequest.references.

          *Note* that the of the participant and the are not part of the prompt.

        property references

        readonly references: readonly ChatPromptReference[];
        • The list of references and their values that are referenced in the prompt.

          *Note* that the prompt contains references as authored and that it is up to the participant to further modify the prompt, for instance by inlining reference values or creating links to headings which contain the resolved values. References are sorted in reverse by their range in the prompt. That means the last reference in the prompt is the first in this list. This simplifies string-manipulation of the prompt.

        property toolInvocationToken

        readonly toolInvocationToken: ChatParticipantToolToken;
        • A token that can be passed to lm.invokeTool when invoking a tool inside the context of handling a chat request. This associates the tool invocation to a chat session.

        property toolReferences

        readonly toolReferences: readonly ChatLanguageModelToolReference[];
        • The list of tools that the user attached to their request.

          When a tool reference is present, the chat participant should make a chat request using LanguageModelChatToolMode.Required to force the language model to generate input for the tool. Then, the participant can use lm.invokeTool to use the tool attach the result to its request for the user's prompt. The tool may contribute useful extra context for the user's request.

        interface ChatResponseFileTree

        interface ChatResponseFileTree {}
        • Represents a file tree structure in a chat response.

        property children

        children?: ChatResponseFileTree[];
        • An array of child file trees, if the current file tree is a directory.

        property name

        name: string;
        • The name of the file or directory.

        interface ChatResponseStream

        interface ChatResponseStream {}
        • The ChatResponseStream is how a participant is able to return content to the chat view. It provides several methods for streaming different types of content which will be rendered in an appropriate way in the chat view. A participant can use the helper method for the type of content it wants to return, or it can instantiate a ChatResponsePart and use the generic ChatResponseStream.push method to return it.

        method anchor

        anchor: (value: Uri | Location, title?: string) => void;
        • Push an anchor part to this stream. Short-hand for push(new ChatResponseAnchorPart(value, title)). An anchor is an inline reference to some type of resource.

          Parameter value

          A uri or location.

          Parameter title

          An optional title that is rendered with value.

        method button

        button: (command: Command) => void;
        • Push a command button part to this stream. Short-hand for push(new ChatResponseCommandButtonPart(value, title)).

          Parameter command

          A Command that will be executed when the button is clicked.

        method filetree

        filetree: (value: ChatResponseFileTree[], baseUri: Uri) => void;
        • Push a filetree part to this stream. Short-hand for push(new ChatResponseFileTreePart(value)).

          Parameter value

          File tree data.

          Parameter baseUri

          The base uri to which this file tree is relative.

        method markdown

        markdown: (value: string | MarkdownString) => void;
        • Push a markdown part to this stream. Short-hand for push(new ChatResponseMarkdownPart(value)).

          Parameter value

          A markdown string or a string that should be interpreted as markdown. The boolean form of MarkdownString.isTrusted is NOT supported.

          See Also

        method progress

        progress: (value: string) => void;
        • Push a progress part to this stream. Short-hand for push(new ChatResponseProgressPart(value)).

          Parameter value

          A progress message

        method push

        push: (part: ChatResponsePart) => void;
        • Pushes a part to this stream.

          Parameter part

          A response part, rendered or metadata

        method reference

        reference: (value: Uri | Location, iconPath?: IconPath) => void;
        • Push a reference to this stream. Short-hand for push(new ChatResponseReferencePart(value)).

          *Note* that the reference is not rendered inline with the response.

          Parameter value

          A uri or location

          Parameter iconPath

          Icon for the reference shown in UI

        interface ChatResult

        interface ChatResult {}
        • The result of a chat request.

        property errorDetails

        errorDetails?: ChatErrorDetails;
        • If the request resulted in an error, this property defines the error details.

        property metadata

        readonly metadata?: { readonly [key: string]: any };
        • Arbitrary metadata for this result. Can be anything, but must be JSON-stringifyable.

        interface ChatResultFeedback

        interface ChatResultFeedback {}
        • Represents user feedback for a result.

        property kind

        readonly kind: ChatResultFeedbackKind;
        • The kind of feedback that was received.

        property result

        readonly result: ChatResult;
        • The ChatResult for which the user is providing feedback. This object has the same properties as the result returned from the participant callback, including metadata, but is not the same instance.

        interface Clipboard

        interface Clipboard {}
        • The clipboard provides read and write access to the system's clipboard.

        method readText

        readText: () => Thenable<string>;
        • Read the current clipboard contents as text.

          Returns

          A thenable that resolves to a string.

        method writeText

        writeText: (value: string) => Thenable<void>;
        • Writes text into the clipboard.

          Returns

          A thenable that resolves when writing happened.

        interface CodeActionContext

        interface CodeActionContext {}
        • Contains additional diagnostic information about the context in which a is run.

        property diagnostics

        readonly diagnostics: readonly Diagnostic[];
        • An array of diagnostics.

        property only

        readonly only: CodeActionKind | undefined;
        • Requested kind of actions to return.

          Actions not of this kind are filtered out before being shown by the [lightbulb](https://code.visualstudio.com/docs/editor/editingevolved#_code-action).

        property triggerKind

        readonly triggerKind: CodeActionTriggerKind;
        • The reason why code actions were requested.

        interface CodeActionProvider

        interface CodeActionProvider<T extends CodeAction = CodeAction> {}
        • Provides contextual actions for code. Code actions typically either fix problems or beautify/refactor code.

          Code actions are surfaced to users in a few different ways:

          - The [lightbulb](https://code.visualstudio.com/docs/editor/editingevolved#_code-action) feature, which shows a list of code actions at the current cursor position. The lightbulb's list of actions includes both quick fixes and refactorings. - As commands that users can run, such as Refactor. Users can run these from the command palette or with keybindings. - As source actions, such Organize Imports. - are shown in the problems view. - Change applied on save by the editor.codeActionsOnSave setting.

        method provideCodeActions

        provideCodeActions: (
        document: TextDocument,
        range: Range | Selection,
        context: CodeActionContext,
        token: CancellationToken
        ) => ProviderResult<Array<Command | T>>;
        • Get code actions for a given range in a document.

          Only return code actions that are relevant to user for the requested range. Also keep in mind how the returned code actions will appear in the UI. The lightbulb widget and Refactor commands for instance show returned code actions as a list, so do not return a large number of code actions that will overwhelm the user.

          Parameter document

          The document in which the command was invoked.

          Parameter range

          The selector or range for which the command was invoked. This will always be a if the actions are being requested in the currently active editor.

          Parameter context

          Provides additional information about what code actions are being requested. You can use this to see what specific type of code actions are being requested by the editor in order to return more relevant actions and avoid returning irrelevant code actions that the editor will discard.

          Parameter token

          A cancellation token.

          Returns

          An array of code actions, such as quick fixes or refactorings. The lack of a result can be signaled by returning undefined, null, or an empty array.

          We also support returning Command for legacy reasons, however all new extensions should return CodeAction object instead.

        method resolveCodeAction

        resolveCodeAction: (
        codeAction: T,
        token: CancellationToken
        ) => ProviderResult<T>;
        • Given a code action fill in its -property. Changes to all other properties, like title, are ignored. A code action that has an edit will not be resolved.

          *Note* that a code action provider that returns commands, not code actions, cannot successfully implement this function. Returning commands is deprecated and instead code actions should be returned.

          Parameter codeAction

          A code action.

          Parameter token

          A cancellation token.

          Returns

          The resolved code action or a thenable that resolves to such. It is OK to return the given item. When no result is returned, the given item will be used.

        interface CodeActionProviderMetadata

        interface CodeActionProviderMetadata {}

        property documentation

        readonly documentation?: ReadonlyArray<{
        /**
        * The kind of the code action being documented.
        *
        * If the kind is generic, such as `CodeActionKind.Refactor`, the documentation will be shown whenever any
        * refactorings are returned. If the kind if more specific, such as `CodeActionKind.RefactorExtract`, the
        * documentation will only be shown when extract refactoring code actions are returned.
        */
        readonly kind: CodeActionKind;
        /**
        * Command that displays the documentation to the user.
        *
        * This can display the documentation directly in the editor or open a website using {@linkcode env.openExternal};
        *
        * The title of this documentation code action is taken from {@linkcode Command.title}
        */
        readonly command: Command;
        }>;
        • Static documentation for a class of code actions.

          Documentation from the provider is shown in the code actions menu if either:

          - Code actions of kind are requested by the editor. In this case, the editor will show the documentation that most closely matches the requested code action kind. For example, if a provider has documentation for both Refactor and RefactorExtract, when the user requests code actions for RefactorExtract, the editor will use the documentation for RefactorExtract instead of the documentation for Refactor.

          - Any code actions of kind are returned by the provider.

          At most one documentation entry will be shown per provider.

        property providedCodeActionKinds

        readonly providedCodeActionKinds?: readonly CodeActionKind[];
        • List of that a CodeActionProvider may return.

          This list is used to determine if a given CodeActionProvider should be invoked or not. To avoid unnecessary computation, every CodeActionProvider should list use providedCodeActionKinds. The list of kinds may either be generic, such as [CodeActionKind.Refactor], or list out every kind provided, such as [CodeActionKind.Refactor.Extract.append('function'), CodeActionKind.Refactor.Extract.append('constant'), ...].

        interface CodeLensProvider

        interface CodeLensProvider<T extends CodeLens = CodeLens> {}
        • A code lens provider adds to source text. The commands will be shown as dedicated horizontal lines in between the source text.

        property onDidChangeCodeLenses

        onDidChangeCodeLenses?: Event<void>;
        • An optional event to signal that the code lenses from this provider have changed.

        method provideCodeLenses

        provideCodeLenses: (
        document: TextDocument,
        token: CancellationToken
        ) => ProviderResult<T[]>;
        • Compute a list of . This call should return as fast as possible and if computing the commands is expensive implementors should only return code lens objects with the range set and implement .

          Parameter document

          The document in which the command was invoked.

          Parameter token

          A cancellation token.

          Returns

          An array of code lenses or a thenable that resolves to such. The lack of a result can be signaled by returning undefined, null, or an empty array.

        method resolveCodeLens

        resolveCodeLens: (codeLens: T, token: CancellationToken) => ProviderResult<T>;
        • This function will be called for each visible code lens, usually when scrolling and after calls to -lenses.

          Parameter codeLens

          Code lens that must be resolved.

          Parameter token

          A cancellation token.

          Returns

          The given, resolved code lens or thenable that resolves to such.

        interface ColorTheme

        interface ColorTheme {}
        • Represents a color theme.

        property kind

        readonly kind: ColorThemeKind;
        • The kind of this color theme: light, dark, high contrast dark and high contrast light.

        interface Command

        interface Command {}
        • 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.

        property arguments

        arguments?: any[];
        • Arguments that the command handler should be invoked with.

        property command

        command: string;

        property title

        title: string;
        • Title of the command, like save.

        property tooltip

        tooltip?: string;
        • A tooltip for the command, when represented in the UI.

        interface Comment

        interface Comment {}
        • A comment is displayed within the editor or the Comments Panel, depending on how it is provided.

        property author

        author: CommentAuthorInformation;
        • The of the comment

        property body

        body: string | MarkdownString;
        • The human-readable comment body

        property contextValue

        contextValue?: string;
        • Context value of the comment. This can be used to contribute comment specific actions. For example, a comment is given a context value as editable. When contributing actions to comments/comment/title using menus extension point, you can specify context value for key comment in when expression like comment == editable.

          "contributes": {
          "menus": {
          "comments/comment/title": [
          {
          "command": "extension.deleteComment",
          "when": "comment == editable"
          }
          ]
          }
          }

          This will show action extension.deleteComment only for comments with contextValue is editable.

        property label

        label?: string;
        • Optional label describing the Comment Label will be rendered next to authorName if exists.

        property mode

        mode: CommentMode;
        • of the comment

        property reactions

        reactions?: CommentReaction[];

        property timestamp

        timestamp?: Date;
        • Optional timestamp that will be displayed in comments. The date will be formatted according to the user's locale and settings.

        interface CommentAuthorInformation

        interface CommentAuthorInformation {}

        property iconPath

        iconPath?: Uri;
        • The optional icon path for the author

        property name

        name: string;
        • The display name of the author of the comment

        interface CommentController

        interface CommentController {}
        • A comment controller is able to provide support to the editor and provide users various ways to interact with comments.

        property commentingRangeProvider

        commentingRangeProvider?: CommentingRangeProvider;
        • Optional commenting range provider. Provide a list which support commenting to any given resource uri.

          If not provided, users cannot leave any comments.

        property id

        readonly id: string;
        • The id of this comment controller.

        property label

        readonly label: string;
        • The human-readable label of this comment controller.

        property options

        options?: CommentOptions;
        • Comment controller options

        property reactionHandler

        reactionHandler?: (
        comment: Comment,
        reaction: CommentReaction
        ) => Thenable<void>;
        • Optional reaction handler for creating and deleting reactions on a Comment.

        method createCommentThread

        createCommentThread: (
        uri: Uri,
        range: Range,
        comments: readonly Comment[]
        ) => CommentThread;
        • Create a . The comment thread will be displayed in visible text editors (if the resource matches) and Comments Panel once created.

          Parameter uri

          The uri of the document the thread has been created on.

          Parameter range

          The range the comment thread is located within the document.

          Parameter comments

          The ordered comments of the thread.

        method dispose

        dispose: () => void;
        • Dispose this comment controller.

          Once disposed, all created by this comment controller will also be removed from the editor and Comments Panel.

        interface CommentingRangeProvider

        interface CommentingRangeProvider {}
        • Commenting range provider for a .

        method provideCommentingRanges

        provideCommentingRanges: (
        document: TextDocument,
        token: CancellationToken
        ) => ProviderResult<Range[] | CommentingRanges>;
        • Provide a list of ranges which allow new comment threads creation or null for a given document

        interface CommentingRanges

        interface CommentingRanges {}
        • The ranges a CommentingRangeProvider enables commenting on.

        property enableFileComments

        enableFileComments: boolean;
        • Enables comments to be added to a file without a specific range.

        property ranges

        ranges?: Range[];
        • The ranges which allow new comment threads creation.

        interface CommentOptions

        interface CommentOptions {}
        • Represents a 's .

        property placeHolder

        placeHolder?: string;
        • An optional string to show as placeholder in the comment input box when it's focused.

        property prompt

        prompt?: string;
        • An optional string to show on the comment input box when it's collapsed.

        interface CommentReaction

        interface CommentReaction {}

        property authorHasReacted

        readonly authorHasReacted: boolean;
        • Whether the of the comment has reacted to this reaction

        property count

        readonly count: number;
        • The number of users who have reacted to this reaction

        property iconPath

        readonly iconPath: string | Uri;
        • Icon for the reaction shown in UI.

        property label

        readonly label: string;
        • The human-readable label for the reaction

        interface CommentReply

        interface CommentReply {}
        • Command argument for actions registered in comments/commentThread/context.

        property text

        text: string;
        • The value in the comment editor

        property thread

        thread: CommentThread;
        • The active

        interface CommentRule

        interface CommentRule {}
        • Describes how comments for a language work.

        property blockComment

        blockComment?: CharacterPair;
        • The block comment character pair, like /* block comment *&#47;

        property lineComment

        lineComment?: string;
        • The line comment token, like // this is a comment

        interface CommentThread

        interface CommentThread {}
        • A collection of representing a conversation at a particular range in a document.

        property canReply

        canReply: boolean;
        • Whether the thread supports reply. Defaults to true.

        property collapsibleState

        collapsibleState: CommentThreadCollapsibleState;
        • Whether the thread should be collapsed or expanded when opening the document. Defaults to Collapsed.

        property comments

        comments: readonly Comment[];
        • The ordered comments of the thread.

        property contextValue

        contextValue?: string;
        • Context value of the comment thread. This can be used to contribute thread specific actions. For example, a comment thread is given a context value as editable. When contributing actions to comments/commentThread/title using menus extension point, you can specify context value for key commentThread in when expression like commentThread == editable.

          "contributes": {
          "menus": {
          "comments/commentThread/title": [
          {
          "command": "extension.deleteCommentThread",
          "when": "commentThread == editable"
          }
          ]
          }
          }

          This will show action extension.deleteCommentThread only for comment threads with contextValue is editable.

        property label

        label?: string;
        • The optional human-readable label describing the

        property range

        range: Range | undefined;
        • The range the comment thread is located within the document. The thread icon will be shown at the last line of the range. When set to undefined, the comment will be associated with the file, and not a specific range.

        property state

        state?: CommentThreadState;
        • The optional state of a comment thread, which may affect how the comment is displayed.

        property uri

        readonly uri: Uri;
        • The uri of the document the thread has been created on.

        method dispose

        dispose: () => void;
        • Dispose this comment thread.

          Once disposed, this comment thread will be removed from visible editors and Comment Panel when appropriate.

        interface CompletionContext

        interface CompletionContext {}
        • Contains additional information about the context in which is triggered.

        property triggerCharacter

        readonly triggerCharacter: string | undefined;
        • Character that triggered the completion item provider.

          undefined if the provider was not triggered by a character.

          The trigger character is already in the document when the completion provider is triggered.

        property triggerKind

        readonly triggerKind: CompletionTriggerKind;
        • How the completion was triggered.

        interface CompletionItemLabel

        interface CompletionItemLabel {}
        • A structured label for a .

        property description

        description?: string;
        • An optional string which is rendered less prominently after CompletionItemLabel.detail. Should be used for fully qualified names or file path.

        property detail

        detail?: string;
        • An optional string which is rendered less prominently directly after , without any spacing. Should be used for function signatures or type annotations.

        property label

        label: string;
        • The label of this completion item.

          By default this is also the text that is inserted when this completion is selected.

        interface CompletionItemProvider

        interface CompletionItemProvider<T extends CompletionItem = CompletionItem> {}
        • The completion item provider interface defines the contract between extensions and [IntelliSense](https://code.visualstudio.com/docs/editor/intellisense).

          Providers can delay the computation of the and properties by implementing the -function. However, properties that are needed for the initial sorting and filtering, like sortText, filterText, insertText, and range, must not be changed during resolve.

          Providers are asked for completions either explicitly by a user gesture or -depending on the configuration- implicitly when typing words or trigger characters.

        method provideCompletionItems

        provideCompletionItems: (
        document: TextDocument,
        position: Position,
        token: CancellationToken,
        context: CompletionContext
        ) => ProviderResult<T[] | CompletionList<T>>;
        • Provide completion items for the given position and document.

          Parameter document

          The document in which the command was invoked.

          Parameter position

          The position at which the command was invoked.

          Parameter token

          A cancellation token.

          Parameter context

          How the completion was triggered.

          Returns

          An array of completions, a , or a thenable that resolves to either. The lack of a result can be signaled by returning undefined, null, or an empty array.

        method resolveCompletionItem

        resolveCompletionItem: (item: T, token: CancellationToken) => ProviderResult<T>;
        • Given a completion item fill in more data, like or .

          The editor will only resolve a completion item once.

          *Note* that this function is called when completion items are already showing in the UI or when an item has been selected for insertion. Because of that, no property that changes the presentation (label, sorting, filtering etc) or the (primary) insert behaviour () can be changed.

          This function may fill in . However, that means an item might be inserted *before* resolving is done and in that case the editor will do a best effort to still apply those additional text edits.

          Parameter item

          A completion item currently active in the UI.

          Parameter token

          A cancellation token.

          Returns

          The resolved completion item or a thenable that resolves to of such. It is OK to return the given item. When no result is returned, the given item will be used.

        interface ConfigurationChangeEvent

        interface ConfigurationChangeEvent {}
        • An event describing the change in Configuration

        method affectsConfiguration

        affectsConfiguration: (section: string, scope?: ConfigurationScope) => boolean;
        • Checks if the given section has changed. If scope is provided, checks if the section has changed for resources under the given scope.

          Parameter section

          Configuration name, supports _dotted_ names.

          Parameter scope

          A scope in which to check.

          Returns

          true if the given section has changed.

        interface CustomDocument

        interface CustomDocument {}
        • Represents a custom document used by a .

          Custom documents are only used within a given CustomEditorProvider. The lifecycle of a CustomDocument is managed by the editor. When no more references remain to a CustomDocument, it is disposed of.

        property uri

        readonly uri: Uri;
        • The associated uri for this document.

        method dispose

        dispose: () => void;
        • Dispose of the custom document.

          This is invoked by the editor when there are no more references to a given CustomDocument (for example when all editors associated with the document have been closed.)

        interface CustomDocumentBackup

        interface CustomDocumentBackup {}
        • A backup for an .

        property id

        readonly id: string;
        • Unique identifier for the backup.

          This id is passed back to your extension in openCustomDocument when opening a custom editor from a backup.

        method delete

        delete: () => void;
        • Delete the current backup.

          This is called by the editor when it is clear the current backup is no longer needed, such as when a new backup is made or when the file is saved.

        interface CustomDocumentBackupContext

        interface CustomDocumentBackupContext {}
        • Additional information used to implement .

        property destination

        readonly destination: Uri;
        • Suggested file location to write the new backup.

          Note that your extension is free to ignore this and use its own strategy for backup.

          If the editor is for a resource from the current workspace, destination will point to a file inside ExtensionContext.storagePath. The parent folder of destination may not exist, so make sure to created it before writing the backup to this location.

        interface CustomDocumentContentChangeEvent

        interface CustomDocumentContentChangeEvent<
        T extends CustomDocument = CustomDocument
        > {}
        • Event triggered by extensions to signal to the editor that the content of a has changed.

          See Also

          • .

        property document

        readonly document: T;
        • The document that the change is for.

        interface CustomDocumentEditEvent

        interface CustomDocumentEditEvent<T extends CustomDocument = CustomDocument> {}
        • Event triggered by extensions to signal to the editor that an edit has occurred on an .

          See Also

          • .

        property document

        readonly document: T;
        • The document that the edit is for.

        property label

        readonly label?: string;
        • Display name describing the edit.

          This will be shown to users in the UI for undo/redo operations.

        method redo

        redo: () => Thenable<void> | void;
        • Redo the edit operation.

          This is invoked by the editor when the user redoes this edit. To implement redo, your extension should restore the document and editor to the state they were in just after this edit was added to the editor's internal edit stack by onDidChangeCustomDocument.

        method undo

        undo: () => Thenable<void> | void;
        • Undo the edit operation.

          This is invoked by the editor when the user undoes this edit. To implement undo, your extension should restore the document and editor to the state they were in just before this edit was added to the editor's internal edit stack by onDidChangeCustomDocument.

        interface CustomDocumentOpenContext

        interface CustomDocumentOpenContext {}
        • Additional information about the opening custom document.

        property backupId

        readonly backupId: string | undefined;
        • The id of the backup to restore the document from or undefined if there is no backup.

          If this is provided, your extension should restore the editor from the backup instead of reading the file from the user's workspace.

        property untitledDocumentData

        readonly untitledDocumentData: Uint8Array | undefined;
        • If the URI is an untitled file, this will be populated with the byte data of that file

          If this is provided, your extension should utilize this byte data rather than executing fs APIs on the URI passed in

        interface CustomEditorProvider

        interface CustomEditorProvider<T extends CustomDocument = CustomDocument>
        extends CustomReadonlyEditorProvider<T> {}
        • Provider for editable custom editors that use a custom document model.

          Custom editors use as their document model instead of a . This gives extensions full control over actions such as edit, save, and backup.

          You should use this type of custom editor when dealing with binary files or more complex scenarios. For simple text based documents, use instead.

          Parameter T

          Type of the custom document returned by this provider.

        property onDidChangeCustomDocument

        readonly onDidChangeCustomDocument:
        | Event<CustomDocumentEditEvent<T>>
        | Event<CustomDocumentContentChangeEvent<T>>;
        • Signal that an edit has occurred inside a custom editor.

          This event must be fired by your extension whenever an edit happens in a custom editor. An edit can be anything from changing some text, to cropping an image, to reordering a list. Your extension is free to define what an edit is and what data is stored on each edit.

          Firing onDidChange causes the editors to be marked as being dirty. This is cleared when the user either saves or reverts the file.

          Editors that support undo/redo must fire a CustomDocumentEditEvent whenever an edit happens. This allows users to undo and redo the edit using the editor's standard keyboard shortcuts. The editor will also mark the editor as no longer being dirty if the user undoes all edits to the last saved state.

          Editors that support editing but cannot use the editor's standard undo/redo mechanism must fire a CustomDocumentContentChangeEvent. The only way for a user to clear the dirty state of an editor that does not support undo/redo is to either save or revert the file.

          An editor should only ever fire CustomDocumentEditEvent events, or only ever fire CustomDocumentContentChangeEvent events.

        method backupCustomDocument

        backupCustomDocument: (
        document: T,
        context: CustomDocumentBackupContext,
        cancellation: CancellationToken
        ) => Thenable<CustomDocumentBackup>;
        • Back up a dirty custom document.

          Backups are used for hot exit and to prevent data loss. Your backup method should persist the resource in its current state, i.e. with the edits applied. Most commonly this means saving the resource to disk in the ExtensionContext.storagePath. When the editor reloads and your custom editor is opened for a resource, your extension should first check to see if any backups exist for the resource. If there is a backup, your extension should load the file contents from there instead of from the resource in the workspace.

          backup is triggered approximately one second after the user stops editing the document. If the user rapidly edits the document, backup will not be invoked until the editing stops.

          backup is not invoked when auto save is enabled (since auto save already persists the resource).

          Parameter document

          Document to backup.

          Parameter context

          Information that can be used to backup the document.

          Parameter cancellation

          Token that signals the current backup since a new backup is coming in. It is up to your extension to decided how to respond to cancellation. If for example your extension is backing up a large file in an operation that takes time to complete, your extension may decide to finish the ongoing backup rather than cancelling it to ensure that the editor has some valid backup.

        method revertCustomDocument

        revertCustomDocument: (
        document: T,
        cancellation: CancellationToken
        ) => Thenable<void>;
        • Revert a custom document to its last saved state.

          This method is invoked by the editor when the user triggers File: Revert File in a custom editor. (Note that this is only used using the editor's File: Revert File command and not on a git revert of the file).

          To implement revert, the implementer must make sure all editor instances (webviews) for document are displaying the document in the same state is saved in. This usually means reloading the file from the workspace.

          Parameter document

          Document to revert.

          Parameter cancellation

          Token that signals the revert is no longer required.

          Returns

          Thenable signaling that the change has completed.

        method saveCustomDocument

        saveCustomDocument: (
        document: T,
        cancellation: CancellationToken
        ) => Thenable<void>;
        • Save a custom document.

          This method is invoked by the editor when the user saves a custom editor. This can happen when the user triggers save while the custom editor is active, by commands such as save all, or by auto save if enabled.

          To implement save, the implementer must persist the custom editor. This usually means writing the file data for the custom document to disk. After save completes, any associated editor instances will no longer be marked as dirty.

          Parameter document

          Document to save.

          Parameter cancellation

          Token that signals the save is no longer required (for example, if another save was triggered).

          Returns

          Thenable signaling that saving has completed.

        method saveCustomDocumentAs

        saveCustomDocumentAs: (
        document: T,
        destination: Uri,
        cancellation: CancellationToken
        ) => Thenable<void>;
        • Save a custom document to a different location.

          This method is invoked by the editor when the user triggers 'save as' on a custom editor. The implementer must persist the custom editor to destination.

          When the user accepts save as, the current editor is be replaced by an non-dirty editor for the newly saved file.

          Parameter document

          Document to save.

          Parameter destination

          Location to save to.

          Parameter cancellation

          Token that signals the save is no longer required.

          Returns

          Thenable signaling that saving has completed.

        interface CustomReadonlyEditorProvider

        interface CustomReadonlyEditorProvider<T extends CustomDocument = CustomDocument> {}
        • Provider for readonly custom editors that use a custom document model.

          Custom editors use as their document model instead of a .

          You should use this type of custom editor when dealing with binary files or more complex scenarios. For simple text based documents, use instead.

          Parameter T

          Type of the custom document returned by this provider.

        method openCustomDocument

        openCustomDocument: (
        uri: Uri,
        openContext: CustomDocumentOpenContext,
        token: CancellationToken
        ) => Thenable<T> | T;
        • Create a new document for a given resource.

          openCustomDocument is called when the first time an editor for a given resource is opened. The opened document is then passed to resolveCustomEditor so that the editor can be shown to the user.

          Already opened CustomDocument are re-used if the user opened additional editors. When all editors for a given resource are closed, the CustomDocument is disposed of. Opening an editor at this point will trigger another call to openCustomDocument.

          Parameter uri

          Uri of the document to open.

          Parameter openContext

          Additional information about the opening custom document.

          Parameter token

          A cancellation token that indicates the result is no longer needed.

          Returns

          The custom document.

        method resolveCustomEditor

        resolveCustomEditor: (
        document: T,
        webviewPanel: WebviewPanel,
        token: CancellationToken
        ) => Thenable<void> | void;
        • Resolve a custom editor for a given resource.

          This is called whenever the user opens a new editor for this CustomEditorProvider.

          Parameter document

          Document for the resource being resolved.

          Parameter webviewPanel

          The webview panel used to display the editor UI for this resource.

          During resolve, the provider must fill in the initial html for the content webview panel and hook up all the event listeners on it that it is interested in. The provider can also hold onto the WebviewPanel to use later for example in a command. See for additional details.

          Parameter token

          A cancellation token that indicates the result is no longer needed.

          Returns

          Optional thenable indicating that the custom editor has been resolved.

        interface CustomTextEditorProvider

        interface CustomTextEditorProvider {}
        • Provider for text based custom editors.

          Text based custom editors use a as their data model. This considerably simplifies implementing a custom editor as it allows the editor to handle many common operations such as undo and backup. The provider is responsible for synchronizing text changes between the webview and the TextDocument.

        method resolveCustomTextEditor

        resolveCustomTextEditor: (
        document: TextDocument,
        webviewPanel: WebviewPanel,
        token: CancellationToken
        ) => Thenable<void> | void;
        • Resolve a custom editor for a given text resource.

          This is called when a user first opens a resource for a CustomTextEditorProvider, or if they reopen an existing editor using this CustomTextEditorProvider.

          Parameter document

          Document for the resource to resolve.

          Parameter webviewPanel

          The webview panel used to display the editor UI for this resource.

          During resolve, the provider must fill in the initial html for the content webview panel and hook up all the event listeners on it that it is interested in. The provider can also hold onto the WebviewPanel to use later for example in a command. See for additional details.

          Parameter token

          A cancellation token that indicates the result is no longer needed.

          Returns

          Thenable indicating that the custom editor has been resolved.

        interface DataTransferFile

        interface DataTransferFile {}
        • A file associated with a .

          Instances of this type can only be created by the editor and not by extensions.

        property name

        readonly name: string;
        • The name of the file.

        property uri

        readonly uri?: Uri;
        • The full file path of the file.

          May be undefined on web.

        method data

        data: () => Thenable<Uint8Array>;
        • The full file contents of the file.

        interface DebugAdapter

        interface DebugAdapter extends Disposable {}
        • A debug adapter that implements the Debug Adapter Protocol can be registered with the editor if it implements the DebugAdapter interface.

        property onDidSendMessage

        readonly onDidSendMessage: Event<DebugProtocolMessage>;
        • An event which fires after the debug adapter has sent a Debug Adapter Protocol message to the editor. Messages can be requests, responses, or events.

        method handleMessage

        handleMessage: (message: DebugProtocolMessage) => void;
        • Handle a Debug Adapter Protocol message. Messages can be requests, responses, or events. Results or errors are returned via onSendMessage events.

          Parameter message

          A Debug Adapter Protocol message

        interface DebugAdapterDescriptorFactory

        interface DebugAdapterDescriptorFactory {}
        • A debug adaper factory that creates .

        method createDebugAdapterDescriptor

        createDebugAdapterDescriptor: (
        session: DebugSession,
        executable: DebugAdapterExecutable | undefined
        ) => ProviderResult<DebugAdapterDescriptor>;
        • 'createDebugAdapterDescriptor' is called at the start of a debug session to provide details about the debug adapter to use. These details must be returned as objects of type DebugAdapterDescriptor. Currently two types of debug adapters are supported: - a debug adapter executable is specified as a command path and arguments (see DebugAdapterExecutable), - a debug adapter server reachable via a communication port (see DebugAdapterServer). If the method is not implemented the default behavior is this: createDebugAdapter(session: DebugSession, executable: DebugAdapterExecutable) { if (typeof session.configuration.debugServer === 'number') { return new DebugAdapterServer(session.configuration.debugServer); } return executable; }

          Parameter session

          The for which the debug adapter will be used.

          Parameter executable

          The debug adapter's executable information as specified in the package.json (or undefined if no such information exists).

          Returns

          a or undefined.

        interface DebugAdapterExecutableOptions

        interface DebugAdapterExecutableOptions {}
        • Options for a debug adapter executable.

        property cwd

        cwd?: string;
        • The current working directory for the executed debug adapter.

        property env

        env?: { [key: string]: string };
        • The additional environment of the executed program or shell. If omitted the parent process' environment is used. If provided it is merged with the parent process' environment.

        interface DebugAdapterTracker

        interface DebugAdapterTracker {}
        • A Debug Adapter Tracker is a means to track the communication between the editor and a Debug Adapter.

        method onDidSendMessage

        onDidSendMessage: (message: any) => void;
        • The debug adapter has sent a Debug Adapter Protocol message to the editor.

        method onError

        onError: (error: Error) => void;
        • An error with the debug adapter has occurred.

        method onExit

        onExit: (code: number | undefined, signal: string | undefined) => void;
        • The debug adapter has exited with the given exit code or signal.

        method onWillReceiveMessage

        onWillReceiveMessage: (message: any) => void;
        • The debug adapter is about to receive a Debug Adapter Protocol message from the editor.

        method onWillStartSession

        onWillStartSession: () => void;
        • A session with the debug adapter is about to be started.

        method onWillStopSession

        onWillStopSession: () => void;
        • The debug adapter session is about to be stopped.

        interface DebugAdapterTrackerFactory

        interface DebugAdapterTrackerFactory {}
        • A debug adaper factory that creates .

        method createDebugAdapterTracker

        createDebugAdapterTracker: (
        session: DebugSession
        ) => ProviderResult<DebugAdapterTracker>;
        • The method 'createDebugAdapterTracker' is called at the start of a debug session in order to return a "tracker" object that provides read-access to the communication between the editor and a debug adapter.

          Parameter session

          The for which the debug adapter tracker will be used.

          Returns

          A or undefined.

        interface DebugConfiguration

        interface DebugConfiguration {}
        • Configuration for a debug session.

        property name

        name: string;
        • The name of the debug session.

        property request

        request: string;
        • The request type of the debug session.

        property type

        type: string;
        • The type of the debug session.

        index signature

        [key: string]: any;
        • Additional debug type specific properties.

        interface DebugConfigurationProvider

        interface DebugConfigurationProvider {}
        • A debug configuration provider allows to add debug configurations to the debug service and to resolve launch configurations before they are used to start a debug session. A debug configuration provider is registered via debug.registerDebugConfigurationProvider.

        method provideDebugConfigurations

        provideDebugConfigurations: (
        folder: WorkspaceFolder | undefined,
        token?: CancellationToken
        ) => ProviderResult<DebugConfiguration[]>;
        • Provides to the debug service. If more than one debug configuration provider is registered for the same type, debug configurations are concatenated in arbitrary order.

          Parameter folder

          The workspace folder for which the configurations are used or undefined for a folderless setup.

          Parameter token

          A cancellation token.

          Returns

          An array of .

        method resolveDebugConfiguration

        resolveDebugConfiguration: (
        folder: WorkspaceFolder | undefined,
        debugConfiguration: DebugConfiguration,
        token?: CancellationToken
        ) => ProviderResult<DebugConfiguration>;
        • Resolves a by filling in missing values or by adding/changing/removing attributes. If more than one debug configuration provider is registered for the same type, the resolveDebugConfiguration calls are chained in arbitrary order and the initial debug configuration is piped through the chain. Returning the value 'undefined' prevents the debug session from starting. Returning the value 'null' prevents the debug session from starting and opens the underlying debug configuration instead.

          Parameter folder

          The workspace folder from which the configuration originates from or undefined for a folderless setup.

          Parameter debugConfiguration

          The to resolve.

          Parameter token

          A cancellation token.

          Returns

          The resolved debug configuration or undefined or null.

        method resolveDebugConfigurationWithSubstitutedVariables

        resolveDebugConfigurationWithSubstitutedVariables: (
        folder: WorkspaceFolder | undefined,
        debugConfiguration: DebugConfiguration,
        token?: CancellationToken
        ) => ProviderResult<DebugConfiguration>;
        • This hook is directly called after 'resolveDebugConfiguration' but with all variables substituted. It can be used to resolve or verify a by filling in missing values or by adding/changing/removing attributes. If more than one debug configuration provider is registered for the same type, the 'resolveDebugConfigurationWithSubstitutedVariables' calls are chained in arbitrary order and the initial debug configuration is piped through the chain. Returning the value 'undefined' prevents the debug session from starting. Returning the value 'null' prevents the debug session from starting and opens the underlying debug configuration instead.

          Parameter folder

          The workspace folder from which the configuration originates from or undefined for a folderless setup.

          Parameter debugConfiguration

          The to resolve.

          Parameter token

          A cancellation token.

          Returns

          The resolved debug configuration or undefined or null.

        interface DebugConsole

        interface DebugConsole {}
        • Represents the debug console.

        method append

        append: (value: string) => void;
        • Append the given value to the debug console.

          Parameter value

          A string, falsy values will not be printed.

        method appendLine

        appendLine: (value: string) => void;
        • Append the given value and a line feed character to the debug console.

          Parameter value

          A string, falsy values will be printed.

        interface DebugProtocolBreakpoint

        interface DebugProtocolBreakpoint {}
        • A DebugProtocolBreakpoint is an opaque stand-in type for the [Breakpoint](https://microsoft.github.io/debug-adapter-protocol/specification#Types_Breakpoint) type defined in the Debug Adapter Protocol.

        interface DebugProtocolMessage

        interface DebugProtocolMessage {}
        • A DebugProtocolMessage is an opaque stand-in type for the [ProtocolMessage](https://microsoft.github.io/debug-adapter-protocol/specification#Base_Protocol_ProtocolMessage) type defined in the Debug Adapter Protocol.

        interface DebugProtocolSource

        interface DebugProtocolSource {}
        • A DebugProtocolSource is an opaque stand-in type for the [Source](https://microsoft.github.io/debug-adapter-protocol/specification#Types_Source) type defined in the Debug Adapter Protocol.

        interface DebugSession

        interface DebugSession {}
        • A debug session.

        property configuration

        readonly configuration: DebugConfiguration;
        • The "resolved" of this session. "Resolved" means that - all variables have been substituted and - platform specific attribute sections have been "flattened" for the matching platform and removed for non-matching platforms.

        property id

        readonly id: string;
        • The unique ID of this debug session.

        property name

        name: string;
        • The debug session's name is initially taken from the . Any changes will be properly reflected in the UI.

        property parentSession

        readonly parentSession?: DebugSession;
        • The parent session of this debug session, if it was created as a child.

          See Also

          • DebugSessionOptions.parentSession

        property type

        readonly type: string;
        • The debug session's type from the .

        property workspaceFolder

        readonly workspaceFolder: WorkspaceFolder | undefined;
        • The workspace folder of this session or undefined for a folderless setup.

        method customRequest

        customRequest: (command: string, args?: any) => Thenable<any>;
        • Send a custom request to the debug adapter.

        method getDebugProtocolBreakpoint

        getDebugProtocolBreakpoint: (
        breakpoint: Breakpoint
        ) => Thenable<DebugProtocolBreakpoint | undefined>;
        • Maps a breakpoint in the editor to the corresponding Debug Adapter Protocol (DAP) breakpoint that is managed by the debug adapter of the debug session. If no DAP breakpoint exists (either because the editor breakpoint was not yet registered or because the debug adapter is not interested in the breakpoint), the value undefined is returned.

          Parameter breakpoint

          A Breakpoint in the editor.

          Returns

          A promise that resolves to the Debug Adapter Protocol breakpoint or undefined.

        interface DebugSessionCustomEvent

        interface DebugSessionCustomEvent {}
        • A custom Debug Adapter Protocol event received from a .

        property body

        readonly body: any;
        • Event specific information.

        property event

        readonly event: string;
        • Type of event.

        property session

        readonly session: DebugSession;
        • The for which the custom event was received.

        interface DebugSessionOptions

        interface DebugSessionOptions {}
        • Options for .

        property compact

        compact?: boolean;
        • Controls if the debug session's parent session is shown in the CALL STACK view even if it has only a single child. By default, the debug session will never hide its parent. If compact is true, debug sessions with a single child are hidden in the CALL STACK view to make the tree more compact.

        property consoleMode

        consoleMode?: DebugConsoleMode;
        • Controls whether this session should have a separate debug console or share it with the parent session. Has no effect for sessions which do not have a parent session. Defaults to Separate.

        property lifecycleManagedByParent

        lifecycleManagedByParent?: boolean;
        • Controls whether lifecycle requests like 'restart' are sent to the newly created session or its parent session. By default (if the property is false or missing), lifecycle requests are sent to the new session. This property is ignored if the session has no parent session.

        property noDebug

        noDebug?: boolean;
        • Controls whether this session should run without debugging, thus ignoring breakpoints. When this property is not specified, the value from the parent session (if there is one) is used.

        property parentSession

        parentSession?: DebugSession;
        • When specified the newly created debug session is registered as a "child" session of this "parent" debug session.

        property suppressDebugStatusbar

        suppressDebugStatusbar?: boolean;
        • When true, the window statusbar color will not be changed for this session.

        property suppressDebugToolbar

        suppressDebugToolbar?: boolean;
        • When true, the debug toolbar will not be shown for this session.

        property suppressDebugView

        suppressDebugView?: boolean;
        • When true, the debug viewlet will not be automatically revealed for this session.

        property suppressSaveBeforeStart

        suppressSaveBeforeStart?: boolean;
        • When true, a save will not be triggered for open editors when starting a debug session, regardless of the value of the debug.saveBeforeStart setting.

        property testRun

        testRun?: TestRun;
        • Signals to the editor that the debug session was started from a test run request. This is used to link the lifecycle of the debug session and test run in UI actions.

        interface DeclarationProvider

        interface DeclarationProvider {}
        • The declaration provider interface defines the contract between extensions and the go to declaration feature.

        method provideDeclaration

        provideDeclaration: (
        document: TextDocument,
        position: Position,
        token: CancellationToken
        ) => ProviderResult<Declaration>;
        • Provide the declaration of the symbol at the given position and document.

          Parameter document

          The document in which the command was invoked.

          Parameter position

          The position at which the command was invoked.

          Parameter token

          A cancellation token.

          Returns

          A declaration or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

        interface DecorationInstanceRenderOptions

        interface DecorationInstanceRenderOptions
        extends ThemableDecorationInstanceRenderOptions {}

        property dark

        dark?: ThemableDecorationInstanceRenderOptions;
        • Overwrite options for dark themes.

        property light

        light?: ThemableDecorationInstanceRenderOptions;
        • Overwrite options for light themes.

        interface DecorationOptions

        interface DecorationOptions {}
        • Represents options for a specific decoration in a .

        property hoverMessage

        hoverMessage?:
        | MarkdownString
        | MarkedString
        | Array<MarkdownString | MarkedString>;
        • A message that should be rendered when hovering over the decoration.

        property range

        range: Range;
        • Range to which this decoration is applied. The range must not be empty.

        property renderOptions

        renderOptions?: DecorationInstanceRenderOptions;
        • Render options applied to the current decoration. For performance reasons, keep the number of decoration specific options small, and use decoration types wherever possible.

        interface DecorationRenderOptions

        interface DecorationRenderOptions extends ThemableDecorationRenderOptions {}
        • Represents rendering styles for a .

        property dark

        dark?: ThemableDecorationRenderOptions;
        • Overwrite options for dark themes.

        property isWholeLine

        isWholeLine?: boolean;
        • Should the decoration be rendered also on the whitespace after the line text. Defaults to false.

        property light

        light?: ThemableDecorationRenderOptions;
        • Overwrite options for light themes.

        property overviewRulerLane

        overviewRulerLane?: OverviewRulerLane;
        • The position in the overview ruler where the decoration should be rendered.

        property rangeBehavior

        rangeBehavior?: DecorationRangeBehavior;
        • Customize the growing behavior of the decoration when edits occur at the edges of the decoration's range. Defaults to DecorationRangeBehavior.OpenOpen.

        interface DefinitionProvider

        interface DefinitionProvider {}
        • The definition provider interface defines the contract between extensions and the [go to definition](https://code.visualstudio.com/docs/editor/editingevolved#_go-to-definition) and peek definition features.

        method provideDefinition

        provideDefinition: (
        document: TextDocument,
        position: Position,
        token: CancellationToken
        ) => ProviderResult<Definition | DefinitionLink[]>;
        • Provide the definition of the symbol at the given position and document.

          Parameter document

          The document in which the command was invoked.

          Parameter position

          The position at which the command was invoked.

          Parameter token

          A cancellation token.

          Returns

          A definition or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

        interface DiagnosticChangeEvent

        interface DiagnosticChangeEvent {}
        • The event that is fired when diagnostics change.

        property uris

        readonly uris: readonly Uri[];
        • An array of resources for which diagnostics have changed.

        interface DiagnosticCollection

        interface DiagnosticCollection
        extends Iterable<[uri: Uri, diagnostics: readonly Diagnostic[]]> {}
        • A diagnostics collection is a container that manages a set of . Diagnostics are always scopes to a diagnostics collection and a resource.

          To get an instance of a DiagnosticCollection use .

        property name

        readonly name: string;
        • The name of this diagnostic collection, for instance typescript. Every diagnostic from this collection will be associated with this name. Also, the task framework uses this name when defining [problem matchers](https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher).

        method clear

        clear: () => void;
        • Remove all diagnostics from this collection. The same as calling #set(undefined);

        method delete

        delete: (uri: Uri) => void;
        • Remove all diagnostics from this collection that belong to the provided uri. The same as #set(uri, undefined).

          Parameter uri

          A resource identifier.

        method dispose

        dispose: () => void;
        • Dispose and free associated resources. Calls .

        method forEach

        forEach: (
        callback: (
        uri: Uri,
        diagnostics: readonly Diagnostic[],
        collection: DiagnosticCollection
        ) => any,
        thisArg?: any
        ) => void;
        • Iterate over each entry in this collection.

          Parameter callback

          Function to execute for each entry.

          Parameter thisArg

          The this context used when invoking the handler function.

        method get

        get: (uri: Uri) => readonly Diagnostic[] | undefined;
        • Get the diagnostics for a given resource. *Note* that you cannot modify the diagnostics-array returned from this call.

          Parameter uri

          A resource identifier.

          Returns

          An immutable array of or undefined.

        method has

        has: (uri: Uri) => boolean;
        • Check if this collection contains diagnostics for a given resource.

          Parameter uri

          A resource identifier.

          Returns

          true if this collection has diagnostic for the given resource.

        method set

        set: {
        (uri: Uri, diagnostics: readonly Diagnostic[] | undefined): void;
        (entries: readonly [Uri, readonly Diagnostic[]][]): void;
        };
        • Assign diagnostics for given resource. Will replace existing diagnostics for that resource.

          Parameter uri

          A resource identifier.

          Parameter diagnostics

          Array of diagnostics or undefined

        • Replace diagnostics for multiple resources in this collection.

          _Note_ that multiple tuples of the same uri will be merged, e.g [[file1, [d1]], [file1, [d2]]] is equivalent to [[file1, [d1, d2]]]. If a diagnostics item is undefined as in [file1, undefined] all previous but not subsequent diagnostics are removed.

          Parameter entries

          An array of tuples, like [[file1, [d1, d2]], [file2, [d3, d4, d5]]], or undefined.

        interface DocumentColorProvider

        interface DocumentColorProvider {}
        • The document color provider defines the contract between extensions and feature of picking and modifying colors in the editor.

        method provideColorPresentations

        provideColorPresentations: (
        color: Color,
        context: { readonly document: TextDocument; readonly range: Range },
        token: CancellationToken
        ) => ProviderResult<ColorPresentation[]>;
        • Provide for a color.

          Parameter color

          The color to show and insert.

          Parameter context

          A context object with additional information

          Parameter token

          A cancellation token.

          Returns

          An array of color presentations or a thenable that resolves to such. The lack of a result can be signaled by returning undefined, null, or an empty array.

        method provideDocumentColors

        provideDocumentColors: (
        document: TextDocument,
        token: CancellationToken
        ) => ProviderResult<ColorInformation[]>;
        • Provide colors for the given document.

          Parameter document

          The document in which the command was invoked.

          Parameter token

          A cancellation token.

          Returns

          An array of or a thenable that resolves to such. The lack of a result can be signaled by returning undefined, null, or an empty array.

        interface DocumentDropEditProvider

        interface DocumentDropEditProvider<T extends DocumentDropEdit = DocumentDropEdit> {}
        • Provider which handles dropping of resources into a text editor.

          This allows users to drag and drop resources (including resources from external apps) into the editor. While dragging and dropping files, users can hold down shift to drop the file into the editor instead of opening it. Requires editor.dropIntoEditor.enabled to be on.

        method provideDocumentDropEdits

        provideDocumentDropEdits: (
        document: TextDocument,
        position: Position,
        dataTransfer: DataTransfer,
        token: CancellationToken
        ) => ProviderResult<T | T[]>;
        • Provide edits which inserts the content being dragged and dropped into the document.

          Parameter document

          The document in which the drop occurred.

          Parameter position

          The position in the document where the drop occurred.

          Parameter dataTransfer

          A DataTransfer object that holds data about what is being dragged and dropped.

          Parameter token

          A cancellation token.

          Returns

          A DocumentDropEdit or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

        method resolveDocumentDropEdit

        resolveDocumentDropEdit: (
        edit: T,
        token: CancellationToken
        ) => ProviderResult<T>;
        • Optional method which fills in the before the edit is applied.

          This is called once per edit and should be used if generating the complete edit may take a long time. Resolve can only be used to change DocumentDropEdit.additionalEdit.

          Parameter edit

          The to resolve.

          Parameter token

          A cancellation token.

          Returns

          The resolved edit or a thenable that resolves to such. It is OK to return the given edit. If no result is returned, the given edit is used.

        interface DocumentDropEditProviderMetadata

        interface DocumentDropEditProviderMetadata {}
        • Provides additional metadata about how a works.

        property dropMimeTypes

        readonly dropMimeTypes: readonly string[];
        • List of DataTransfer mime types that the provider can handle.

          This can either be an exact mime type such as image/png, or a wildcard pattern such as image/*.

          Use text/uri-list for resources dropped from the explorer or other tree views in the workbench.

          Use files to indicate that the provider should be invoked if any are present in the DataTransfer. Note that DataTransferFile entries are only created when dropping content from outside the editor, such as from the operating system.

        property providedDropEditKinds

        readonly providedDropEditKinds?: readonly DocumentDropOrPasteEditKind[];
        • List of that the provider may return in .

          This is used to filter out providers when a specific of edit is requested.

        interface DocumentFilter

        interface DocumentFilter {}
        • A document filter denotes a document by different properties like the , the of its resource, or a glob-pattern that is applied to the .

          Example 1

          A language filter that applies to typescript files on disk { language: 'typescript', scheme: 'file' }

          Example 2

          A language filter that applies to all package.json paths { language: 'json', pattern: '**​/package.json' }

        property language

        readonly language?: string;
        • A language id, like typescript.

        property notebookType

        readonly notebookType?: string;
        • The of a notebook, like jupyter-notebook. This allows to narrow down on the type of a notebook that a belongs to.

          *Note* that setting the notebookType-property changes how scheme and pattern are interpreted. When set they are evaluated against the , not the document uri.

          Example 1

          Match python document inside jupyter notebook that aren't stored yet (untitled) { language: 'python', notebookType: 'jupyter-notebook', scheme: 'untitled' }

        property pattern

        readonly pattern?: GlobPattern;
        • A that is matched on the absolute path of the document. Use a to filter documents to a .

        property scheme

        readonly scheme?: string;
        • A Uri , like file or untitled.

        interface DocumentFormattingEditProvider

        interface DocumentFormattingEditProvider {}
        • The document formatting provider interface defines the contract between extensions and the formatting-feature.

        method provideDocumentFormattingEdits

        provideDocumentFormattingEdits: (
        document: TextDocument,
        options: FormattingOptions,
        token: CancellationToken
        ) => ProviderResult<TextEdit[]>;
        • Provide formatting edits for a whole document.

          Parameter document

          The document in which the command was invoked.

          Parameter options

          Options controlling formatting.

          Parameter token

          A cancellation token.

          Returns

          A set of text edits or a thenable that resolves to such. The lack of a result can be signaled by returning undefined, null, or an empty array.

        interface DocumentHighlightProvider

        interface DocumentHighlightProvider {}
        • The document highlight provider interface defines the contract between extensions and the word-highlight-feature.

        method provideDocumentHighlights

        provideDocumentHighlights: (
        document: TextDocument,
        position: Position,
        token: CancellationToken
        ) => ProviderResult<DocumentHighlight[]>;
        • Provide a set of document highlights, like all occurrences of a variable or all exit-points of a function.

          Parameter document

          The document in which the command was invoked.

          Parameter position

          The position at which the command was invoked.

          Parameter token

          A cancellation token.

          Returns

          An array of document highlights or a thenable that resolves to such. The lack of a result can be signaled by returning undefined, null, or an empty array.

        interface DocumentLinkProvider

        interface DocumentLinkProvider<T extends DocumentLink = DocumentLink> {}
        • The document link provider defines the contract between extensions and feature of showing links in the editor.

        provideDocumentLinks: (
        document: TextDocument,
        token: CancellationToken
        ) => ProviderResult<T[]>;
        • Provide links for the given document. Note that the editor ships with a default provider that detects http(s) and file links.

          Parameter document

          The document in which the command was invoked.

          Parameter token

          A cancellation token.

          Returns

          An array of or a thenable that resolves to such. The lack of a result can be signaled by returning undefined, null, or an empty array.

        resolveDocumentLink: (link: T, token: CancellationToken) => ProviderResult<T>;
        • Given a link fill in its . This method is called when an incomplete link is selected in the UI. Providers can implement this method and return incomplete links (without target) from the method which often helps to improve performance.

          Parameter link

          The link that is to be resolved.

          Parameter token

          A cancellation token.

        interface DocumentPasteEditContext

        interface DocumentPasteEditContext {}
        • Additional information about the paste operation.

        property only

        readonly only: DocumentDropOrPasteEditKind | undefined;
        • Requested kind of paste edits to return.

          When a explicit kind if requested by , providers are encourage to be more flexible when generating an edit of the requested kind.

        property triggerKind

        readonly triggerKind: DocumentPasteTriggerKind;
        • The reason why paste edits were requested.

        interface DocumentPasteEditProvider

        interface DocumentPasteEditProvider<
        T extends DocumentPasteEdit = DocumentPasteEdit
        > {}
        • Provider invoked when the user copies or pastes in a .

        method prepareDocumentPaste

        prepareDocumentPaste: (
        document: TextDocument,
        ranges: readonly Range[],
        dataTransfer: DataTransfer,
        token: CancellationToken
        ) => void | Thenable<void>;
        • Optional method invoked after the user copies from a .

          This allows the provider to attach metadata about the copied text to the DataTransfer. This data transfer is then passed back to providers in .

          Note that currently any changes to the are isolated to the current editor window. This means that any added metadata cannot be seen by other editor windows or by other applications.

          Parameter document

          Text document where the copy took place.

          Parameter ranges

          Ranges being copied in .

          Parameter dataTransfer

          The data transfer associated with the copy. You can store additional values on this for later use in . This object is only valid for the duration of this method.

          Parameter token

          A cancellation token.

          Optional thenable that resolves when all changes to the dataTransfer are complete.

        method provideDocumentPasteEdits

        provideDocumentPasteEdits: (
        document: TextDocument,
        ranges: readonly Range[],
        dataTransfer: DataTransfer,
        context: DocumentPasteEditContext,
        token: CancellationToken
        ) => ProviderResult<T[]>;
        • Invoked before the user pastes into a .

          Returned edits can replace the standard pasting behavior.

          Parameter document

          Document being pasted into

          Parameter ranges

          Range in the to paste into.

          Parameter dataTransfer

          The associated with the paste. This object is only valid for the duration of the paste operation.

          Parameter context

          Additional context for the paste.

          Parameter token

          A cancellation token.

          Set of potential that can apply the paste. Only a single returned is applied at a time. If multiple edits are returned from all providers, then the first is automatically applied and a widget is shown that lets the user switch to the other edits.

        method resolveDocumentPasteEdit

        resolveDocumentPasteEdit: (
        pasteEdit: T,
        token: CancellationToken
        ) => ProviderResult<T>;
        • Optional method which fills in the before the edit is applied.

          This is called once per edit and should be used if generating the complete edit may take a long time. Resolve can only be used to change or .

          Parameter pasteEdit

          The to resolve.

          Parameter token

          A cancellation token.

          Returns

          The resolved paste edit or a thenable that resolves to such. It is OK to return the given pasteEdit. If no result is returned, the given pasteEdit is used.

        interface DocumentPasteProviderMetadata

        interface DocumentPasteProviderMetadata {}
        • Provides additional metadata about how a works.

        property copyMimeTypes

        readonly copyMimeTypes?: readonly string[];
        • Mime types that may add on copy.

        property pasteMimeTypes

        readonly pasteMimeTypes?: readonly string[];
        • Mime types that should be invoked for.

          This can either be an exact mime type such as image/png, or a wildcard pattern such as image/*.

          Use text/uri-list for resources dropped from the explorer or other tree views in the workbench.

          Use files to indicate that the provider should be invoked if any are present in the . Note that entries are only created when pasting content from outside the editor, such as from the operating system.

        property providedPasteEditKinds

        readonly providedPasteEditKinds: readonly DocumentDropOrPasteEditKind[];
        • List of that the provider may return in .

          This is used to filter out providers when a specific of edit is requested.

        interface DocumentRangeFormattingEditProvider

        interface DocumentRangeFormattingEditProvider {}
        • The document formatting provider interface defines the contract between extensions and the formatting-feature.

        method provideDocumentRangeFormattingEdits

        provideDocumentRangeFormattingEdits: (
        document: TextDocument,
        range: Range,
        options: FormattingOptions,
        token: CancellationToken
        ) => ProviderResult<TextEdit[]>;
        • Provide formatting edits for a range in a document.

          The given range is a hint and providers can decide to format a smaller or larger range. Often this is done by adjusting the start and end of the range to full syntax nodes.

          Parameter document

          The document in which the command was invoked.

          Parameter range

          The range which should be formatted.

          Parameter options

          Options controlling formatting.

          Parameter token

          A cancellation token.

          Returns

          A set of text edits or a thenable that resolves to such. The lack of a result can be signaled by returning undefined, null, or an empty array.

        method provideDocumentRangesFormattingEdits

        provideDocumentRangesFormattingEdits: (
        document: TextDocument,
        ranges: Range[],
        options: FormattingOptions,
        token: CancellationToken
        ) => ProviderResult<TextEdit[]>;
        • Provide formatting edits for multiple ranges in a document.

          This function is optional but allows a formatter to perform faster when formatting only modified ranges or when formatting a large number of selections.

          The given ranges are hints and providers can decide to format a smaller or larger range. Often this is done by adjusting the start and end of the range to full syntax nodes.

          Parameter document

          The document in which the command was invoked.

          Parameter ranges

          The ranges which should be formatted.

          Parameter options

          Options controlling formatting.

          Parameter token

          A cancellation token.

          Returns

          A set of text edits or a thenable that resolves to such. The lack of a result can be signaled by returning undefined, null, or an empty array.

        interface DocumentRangeSemanticTokensProvider

        interface DocumentRangeSemanticTokensProvider {}
        • The document range semantic tokens provider interface defines the contract between extensions and semantic tokens.

        method provideDocumentRangeSemanticTokens

        provideDocumentRangeSemanticTokens: (
        document: TextDocument,
        range: Range,
        token: CancellationToken
        ) => ProviderResult<SemanticTokens>;
        • See Also

          • .

        interface DocumentSemanticTokensProvider

        interface DocumentSemanticTokensProvider {}
        • The document semantic tokens provider interface defines the contract between extensions and semantic tokens.

        property onDidChangeSemanticTokens

        onDidChangeSemanticTokens?: Event<void>;
        • An optional event to signal that the semantic tokens from this provider have changed.

        method provideDocumentSemanticTokens

        provideDocumentSemanticTokens: (
        document: TextDocument,
        token: CancellationToken
        ) => ProviderResult<SemanticTokens>;
        • Tokens in a file are represented as an array of integers. The position of each token is expressed relative to the token before it, because most tokens remain stable relative to each other when edits are made in a file.

          --- In short, each token takes 5 integers to represent, so a specific token i in the file consists of the following array indices: - at index 5*i - deltaLine: token line number, relative to the previous token - at index 5*i+1 - deltaStart: token start character, relative to the previous token (relative to 0 or the previous token's start if they are on the same line) - at index 5*i+2 - length: the length of the token. A token cannot be multiline. - at index 5*i+3 - tokenType: will be looked up in SemanticTokensLegend.tokenTypes. We currently ask that tokenType < 65536. - at index 5*i+4 - tokenModifiers: each set bit will be looked up in SemanticTokensLegend.tokenModifiers

          --- ### How to encode tokens

          Here is an example for encoding a file with 3 tokens in a uint32 array:

          { line: 2, startChar: 5, length: 3, tokenType: "property", tokenModifiers: ["private", "static"] },
          { line: 2, startChar: 10, length: 4, tokenType: "type", tokenModifiers: [] },
          { line: 5, startChar: 2, length: 7, tokenType: "class", tokenModifiers: [] }

          1. First of all, a legend must be devised. This legend must be provided up-front and capture all possible token types. For this example, we will choose the following legend which must be passed in when registering the provider:

          tokenTypes: ['property', 'type', 'class'],
          tokenModifiers: ['private', 'static']

          2. The first transformation step is to encode tokenType and tokenModifiers as integers using the legend. Token types are looked up by index, so a tokenType value of 1 means tokenTypes[1]. Multiple token modifiers can be set by using bit flags, so a tokenModifier value of 3 is first viewed as binary 0b00000011, which means [tokenModifiers[0], tokenModifiers[1]] because bits 0 and 1 are set. Using this legend, the tokens now are:

          { line: 2, startChar: 5, length: 3, tokenType: 0, tokenModifiers: 3 },
          { line: 2, startChar: 10, length: 4, tokenType: 1, tokenModifiers: 0 },
          { line: 5, startChar: 2, length: 7, tokenType: 2, tokenModifiers: 0 }

          3. The next step is to represent each token relative to the previous token in the file. In this case, the second token is on the same line as the first token, so the startChar of the second token is made relative to the startChar of the first token, so it will be 10 - 5. The third token is on a different line than the second token, so the startChar of the third token will not be altered:

          { deltaLine: 2, deltaStartChar: 5, length: 3, tokenType: 0, tokenModifiers: 3 },
          { deltaLine: 0, deltaStartChar: 5, length: 4, tokenType: 1, tokenModifiers: 0 },
          { deltaLine: 3, deltaStartChar: 2, length: 7, tokenType: 2, tokenModifiers: 0 }

          4. Finally, the last step is to inline each of the 5 fields for a token in a single array, which is a memory friendly representation:

          // 1st token, 2nd token, 3rd token
          [ 2,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ]

          See Also

          • SemanticTokensBuilder for a helper to encode tokens as integers. *NOTE*: When doing edits, it is possible that multiple edits occur until the editor decides to invoke the semantic tokens provider. *NOTE*: If the provider cannot temporarily compute semantic tokens, it can indicate this by throwing an error with the message 'Busy'.

        method provideDocumentSemanticTokensEdits

        provideDocumentSemanticTokensEdits: (
        document: TextDocument,
        previousResultId: string,
        token: CancellationToken
        ) => ProviderResult<SemanticTokens | SemanticTokensEdits>;
        • Instead of always returning all the tokens in a file, it is possible for a DocumentSemanticTokensProvider to implement this method (provideDocumentSemanticTokensEdits) and then return incremental updates to the previously provided semantic tokens.

          --- ### How tokens change when the document changes

          Suppose that provideDocumentSemanticTokens has previously returned the following semantic tokens:

          // 1st token, 2nd token, 3rd token
          [ 2,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ]

          Also suppose that after some edits, the new semantic tokens in a file are:

          // 1st token, 2nd token, 3rd token
          [ 3,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ]

          It is possible to express these new tokens in terms of an edit applied to the previous tokens:

          [ 2,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ] // old tokens
          [ 3,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ] // new tokens
          edit: { start: 0, deleteCount: 1, data: [3] } // replace integer at offset 0 with 3

          *NOTE*: If the provider cannot compute SemanticTokensEdits, it can "give up" and return all the tokens in the document again. *NOTE*: All edits in SemanticTokensEdits contain indices in the old integers array, so they all refer to the previous result state.

        interface DocumentSymbolProvider

        interface DocumentSymbolProvider {}
        • The document symbol provider interface defines the contract between extensions and the [go to symbol](https://code.visualstudio.com/docs/editor/editingevolved#_go-to-symbol)-feature.

        method provideDocumentSymbols

        provideDocumentSymbols: (
        document: TextDocument,
        token: CancellationToken
        ) => ProviderResult<SymbolInformation[] | DocumentSymbol[]>;
        • Provide symbol information for the given document.

          Parameter document

          The document in which the command was invoked.

          Parameter token

          A cancellation token.

          Returns

          An array of document highlights or a thenable that resolves to such. The lack of a result can be signaled by returning undefined, null, or an empty array.

        interface DocumentSymbolProviderMetadata

        interface DocumentSymbolProviderMetadata {}
        • Metadata about a document symbol provider.

        property label

        label?: string;
        • A human-readable string that is shown when multiple outlines trees show for one document.

        interface EnterAction

        interface EnterAction {}
        • Describes what to do when pressing Enter.

        property appendText

        appendText?: string;
        • Describes text to be appended after the new line and after the indentation.

        property indentAction

        indentAction: IndentAction;
        • Describe what to do with the indentation.

        property removeText

        removeText?: number;
        • Describes the number of characters to remove from the new line's indentation.

        interface EnvironmentVariableCollection

        interface EnvironmentVariableCollection
        extends Iterable<[variable: string, mutator: EnvironmentVariableMutator]> {}
        • A collection of mutations that an extension can apply to a process environment.

        property description

        description: string | MarkdownString | undefined;
        • A description for the environment variable collection, this will be used to describe the changes in the UI.

        property persistent

        persistent: boolean;
        • Whether the collection should be cached for the workspace and applied to the terminal across window reloads. When true the collection will be active immediately such when the window reloads. Additionally, this API will return the cached version if it exists. The collection will be invalidated when the extension is uninstalled or when the collection is cleared. Defaults to true.

        method append

        append: (
        variable: string,
        value: string,
        options?: EnvironmentVariableMutatorOptions
        ) => void;
        • Append a value to an environment variable.

          Note that an extension can only make a single change to any one variable, so this will overwrite any previous calls to replace, append or prepend.

          Parameter variable

          The variable to append to.

          Parameter value

          The value to append to the variable.

          Parameter options

          Options applied to the mutator, when no options are provided this will default to { applyAtProcessCreation: true }.

        method clear

        clear: () => void;
        • Clears all mutators from this collection.

        method delete

        delete: (variable: string) => void;
        • Deletes this collection's mutator for a variable.

          Parameter variable

          The variable to delete the mutator for.

        method forEach

        forEach: (
        callback: (
        variable: string,
        mutator: EnvironmentVariableMutator,
        collection: EnvironmentVariableCollection
        ) => any,
        thisArg?: any
        ) => void;
        • Iterate over each mutator in this collection.

          Parameter callback

          Function to execute for each entry.

          Parameter thisArg

          The this context used when invoking the handler function.

        method get

        get: (variable: string) => EnvironmentVariableMutator | undefined;
        • Gets the mutator that this collection applies to a variable, if any.

          Parameter variable

          The variable to get the mutator for.

        method prepend

        prepend: (
        variable: string,
        value: string,
        options?: EnvironmentVariableMutatorOptions
        ) => void;
        • Prepend a value to an environment variable.

          Note that an extension can only make a single change to any one variable, so this will overwrite any previous calls to replace, append or prepend.

          Parameter variable

          The variable to prepend.

          Parameter value

          The value to prepend to the variable.

          Parameter options

          Options applied to the mutator, when no options are provided this will default to { applyAtProcessCreation: true }.

        method replace

        replace: (
        variable: string,
        value: string,
        options?: EnvironmentVariableMutatorOptions
        ) => void;
        • Replace an environment variable with a value.

          Note that an extension can only make a single change to any one variable, so this will overwrite any previous calls to replace, append or prepend.

          Parameter variable

          The variable to replace.

          Parameter value

          The value to replace the variable with.

          Parameter options

          Options applied to the mutator, when no options are provided this will default to { applyAtProcessCreation: true }.

        interface EnvironmentVariableMutator

        interface EnvironmentVariableMutator {}
        • A type of mutation and its value to be applied to an environment variable.

        property options

        readonly options: EnvironmentVariableMutatorOptions;
        • Options applied to the mutator.

        property type

        readonly type: EnvironmentVariableMutatorType;
        • The type of mutation that will occur to the variable.

        property value

        readonly value: string;
        • The value to use for the variable.

        interface EnvironmentVariableMutatorOptions

        interface EnvironmentVariableMutatorOptions {}
        • Options applied to the mutator.

        property applyAtProcessCreation

        applyAtProcessCreation?: boolean;
        • Apply to the environment just before the process is created. Defaults to false.

        property applyAtShellIntegration

        applyAtShellIntegration?: boolean;
        • Apply to the environment in the shell integration script. Note that this _will not_ apply the mutator if shell integration is disabled or not working for some reason. Defaults to false.

        interface EnvironmentVariableScope

        interface EnvironmentVariableScope {}
        • The scope object to which the environment variable collection applies.

        property workspaceFolder

        workspaceFolder?: WorkspaceFolder;
        • Any specific workspace folder to get collection for.

        interface EvaluatableExpressionProvider

        interface EvaluatableExpressionProvider {}
        • The evaluatable expression provider interface defines the contract between extensions and the debug hover. In this contract the provider returns an evaluatable expression for a given position in a document and the editor evaluates this expression in the active debug session and shows the result in a debug hover.

        method provideEvaluatableExpression

        provideEvaluatableExpression: (
        document: TextDocument,
        position: Position,
        token: CancellationToken
        ) => ProviderResult<EvaluatableExpression>;
        • Provide an evaluatable expression for the given document and position. The editor will evaluate this expression in the active debug session and will show the result in the debug hover. The expression can be implicitly specified by the range in the underlying document or by explicitly returning an expression.

          Parameter document

          The document for which the debug hover is about to appear.

          Parameter position

          The line and character position in the document where the debug hover is about to appear.

          Parameter token

          A cancellation token.

          Returns

          An EvaluatableExpression or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

        interface Event

        interface Event<T> {}
        • Represents a typed event.

          A function that represents an event to which you subscribe by calling it with a listener function as argument.

          Example 1

          item.onDidChange(function(event) { console.log("Event happened: " + event); });

        call signature

        (
        listener: (e: T) => any,
        thisArgs?: any,
        disposables?: Disposable[]
        ): Disposable;
        • A function that represents an event to which you subscribe by calling it with a listener function as argument.

          Parameter listener

          The listener function will be called when the event happens.

          Parameter thisArgs

          The this-argument which will be used when calling the event listener.

          Parameter disposables

          An array to which a Disposable will be added.

          Returns

          A disposable which unsubscribes the event listener.

        interface Extension

        interface Extension<T> {}
        • Represents an extension.

          To get an instance of an Extension use .

        property exports

        readonly exports: T;
        • The public API exported by this extension (return value of activate). It is an invalid action to access this field before this extension has been activated.

        property extensionKind

        extensionKind: ExtensionKind;
        • The extension kind describes if an extension runs where the UI runs or if an extension runs where the remote extension host runs. The extension kind is defined in the package.json-file of extensions but can also be refined via the remote.extensionKind-setting. When no remote extension host exists, the value is .

        property extensionPath

        readonly extensionPath: string;
        • The absolute file path of the directory containing this extension. Shorthand notation for (independent of the uri scheme).

        property extensionUri

        readonly extensionUri: Uri;
        • The uri of the directory containing the extension.

        property id

        readonly id: string;
        • The canonical extension identifier in the form of: publisher.name.

        property isActive

        readonly isActive: boolean;
        • true if the extension has been activated.

        property packageJSON

        readonly packageJSON: any;
        • The parsed contents of the extension's package.json.

        method activate

        activate: () => Thenable<T>;
        • Activates this extension and returns its public API.

          Returns

          A promise that will resolve when this extension has been activated.

        interface ExtensionContext

        interface ExtensionContext {}
        • An extension context is a collection of utilities private to an extension.

          An instance of an ExtensionContext is provided as the first parameter to the activate-call of an extension.

        property environmentVariableCollection

        readonly environmentVariableCollection: GlobalEnvironmentVariableCollection;
        • Gets the extension's global environment variable collection for this workspace, enabling changes to be applied to terminal environment variables.

        property extension

        readonly extension: Extension<any>;
        • The current Extension instance.

        property extensionMode

        readonly extensionMode: ExtensionMode;
        • The mode the extension is running in. See ExtensionMode for possible values and scenarios.

        property extensionPath

        readonly extensionPath: string;
        • The absolute file path of the directory containing the extension. Shorthand notation for (independent of the uri scheme).

        property extensionUri

        readonly extensionUri: Uri;
        • The uri of the directory containing the extension.

        property globalState

        readonly globalState: Memento & {
        /**
        * Set the keys whose values should be synchronized across devices when synchronizing user-data
        * like configuration, extensions, and mementos.
        *
        * Note that this function defines the whole set of keys whose values are synchronized:
        * - calling it with an empty array stops synchronization for this memento
        * - calling it with a non-empty array replaces all keys whose values are synchronized
        *
        * For any given set of keys this function needs to be called only once but there is no harm in
        * repeatedly calling it.
        *
        * @param keys The set of keys whose values are synced.
        */
        setKeysForSync(keys: readonly string[]): void;
        };
        • A memento object that stores state independent of the current opened .

        property globalStoragePath

        readonly globalStoragePath: string;
        • An absolute file path in which the extension can store global state. The directory might not exist on disk and creation is up to the extension. However, the parent directory is guaranteed to be existent.

          Use to store key value data.

          Deprecated

          Use instead.

        property globalStorageUri

        readonly globalStorageUri: Uri;
        • The uri of a directory in which the extension can store global state. The directory might not exist on disk and creation is up to the extension. However, the parent directory is guaranteed to be existent.

          Use to store key value data.

          See Also

          • for how to read and write files and folders from an uri.

        property languageModelAccessInformation

        readonly languageModelAccessInformation: LanguageModelAccessInformation;

        property logPath

        readonly logPath: string;
        • An absolute file path of a directory in which the extension can create log files. The directory might not exist on disk and creation is up to the extension. However, the parent directory is guaranteed to be existent.

          Deprecated

          Use instead.

        property logUri

        readonly logUri: Uri;
        • The uri of a directory in which the extension can create log files. The directory might not exist on disk and creation is up to the extension. However, the parent directory is guaranteed to be existent.

          See Also

          • for how to read and write files and folders from an uri.

        property secrets

        readonly secrets: SecretStorage;
        • A secret storage object that stores state independent of the current opened .

        property storagePath

        readonly storagePath: string | undefined;
        • An absolute file path of a workspace specific directory in which the extension can store private state. The directory might not exist on disk and creation is up to the extension. However, the parent directory is guaranteed to be existent.

          Use or to store key value data.

          Deprecated

          Use instead.

        property storageUri

        readonly storageUri: Uri | undefined;
        • The uri of a workspace specific directory in which the extension can store private state. The directory might not exist and creation is up to the extension. However, the parent directory is guaranteed to be existent. The value is undefined when no workspace nor folder has been opened.

          Use or to store key value data.

          See Also

          • for how to read and write files and folders from a uri.

        property subscriptions

        readonly subscriptions: {
        /**
        * Function to clean up resources.
        */
        dispose(): any;
        }[];
        • An array to which disposables can be added. When this extension is deactivated the disposables will be disposed.

          *Note* that asynchronous dispose-functions aren't awaited.

        property workspaceState

        readonly workspaceState: Memento;
        • A memento object that stores state in the context of the currently opened .

        method asAbsolutePath

        asAbsolutePath: (relativePath: string) => string;
        • Get the absolute path of a resource contained in the extension.

          *Note* that an absolute uri can be constructed via and , e.g. vscode.Uri.joinPath(context.extensionUri, relativePath);

          Parameter relativePath

          A relative path to a resource contained in the extension.

          Returns

          The absolute path of the resource.

        interface ExtensionTerminalOptions

        interface ExtensionTerminalOptions {}
        • Value-object describing what options a virtual process terminal should use.

        property color

        color?: ThemeColor;
        • The icon ThemeColor for the terminal. The standard terminal.ansi* theme keys are recommended for the best contrast and consistency across themes.

        property iconPath

        iconPath?: IconPath;

        property isTransient

        isTransient?: boolean;
        • Opt-out of the default terminal persistence on restart and reload. This will only take effect when terminal.integrated.enablePersistentSessions is enabled.

        property location

        location?:
        | TerminalLocation
        | TerminalEditorLocationOptions
        | TerminalSplitLocationOptions;

        property name

        name: string;
        • A human-readable string which will be used to represent the terminal in the UI.

        property pty

        pty: Pseudoterminal;
        • An implementation of Pseudoterminal that allows an extension to control a terminal.

        interface FileChangeEvent

        interface FileChangeEvent {}
        • The event filesystem providers must use to signal a file change.

        property type

        readonly type: FileChangeType;
        • The type of change.

        property uri

        readonly uri: Uri;
        • The uri of the file that has changed.

        interface FileCreateEvent

        interface FileCreateEvent {}
        • An event that is fired after files are created.

        property files

        readonly files: readonly Uri[];
        • The files that got created.

        interface FileDecorationProvider

        interface FileDecorationProvider {}
        • The decoration provider interfaces defines the contract between extensions and file decorations.

        property onDidChangeFileDecorations

        onDidChangeFileDecorations?: Event<undefined | Uri | Uri[]>;
        • An optional event to signal that decorations for one or many files have changed.

          *Note* that this event should be used to propagate information about children.

          See Also

        method provideFileDecoration

        provideFileDecoration: (
        uri: Uri,
        token: CancellationToken
        ) => ProviderResult<FileDecoration>;
        • Provide decorations for a given uri.

          *Note* that this function is only called when a file gets rendered in the UI. This means a decoration from a descendent that propagates upwards must be signaled to the editor via the -event.

          Parameter uri

          The uri of the file to provide a decoration for.

          Parameter token

          A cancellation token.

          Returns

          A decoration or a thenable that resolves to such.

        interface FileDeleteEvent

        interface FileDeleteEvent {}
        • An event that is fired after files are deleted.

        property files

        readonly files: readonly Uri[];
        • The files that got deleted.

        interface FileRenameEvent

        interface FileRenameEvent {}
        • An event that is fired after files are renamed.

        property files

        readonly files: ReadonlyArray<{
        /**
        * The old uri of a file.
        */
        readonly oldUri: Uri;
        /**
        * The new uri of a file.
        */
        readonly newUri: Uri;
        }>;
        • The files that got renamed.

        interface FileStat

        interface FileStat {}
        • The FileStat-type represents metadata about a file

        property ctime

        ctime: number;
        • The creation timestamp in milliseconds elapsed since January 1, 1970 00:00:00 UTC.

        property mtime

        mtime: number;
        • The modification timestamp in milliseconds elapsed since January 1, 1970 00:00:00 UTC.

          *Note:* If the file changed, it is important to provide an updated mtime that advanced from the previous value. Otherwise there may be optimizations in place that will not show the updated file contents in an editor for example.

        property permissions

        permissions?: FilePermission;
        • The permissions of the file, e.g. whether the file is readonly.

          *Note:* This value might be a bitmask, e.g. FilePermission.Readonly | FilePermission.Other.

        property size

        size: number;
        • The size in bytes.

          *Note:* If the file changed, it is important to provide an updated size. Otherwise there may be optimizations in place that will not show the updated file contents in an editor for example.

        property type

        type: FileType;
        • The type of the file, e.g. is a regular file, a directory, or symbolic link to a file.

          *Note:* This value might be a bitmask, e.g. FileType.File | FileType.SymbolicLink.

        interface FileSystem

        interface FileSystem {}
        • The file system interface exposes the editor's built-in and contributed . It allows extensions to work with files from the local disk as well as files from remote places, like the remote extension host or ftp-servers.

          *Note* that an instance of this interface is available as .

        method copy

        copy: (
        source: Uri,
        target: Uri,
        options?: { overwrite?: boolean }
        ) => Thenable<void>;
        • Copy files or folders.

          Parameter source

          The existing file.

          Parameter target

          The destination location.

          Parameter options

          Defines if existing files should be overwritten.

        method createDirectory

        createDirectory: (uri: Uri) => Thenable<void>;
        • Create a new directory (Note, that new files are created via write-calls).

          *Note* that missing directories are created automatically, e.g this call has mkdirp semantics.

          Parameter uri

          The uri of the new folder.

        method delete

        delete: (
        uri: Uri,
        options?: { recursive?: boolean; useTrash?: boolean }
        ) => Thenable<void>;
        • Delete a file.

          Parameter uri

          The resource that is to be deleted.

          Parameter options

          Defines if trash can should be used and if deletion of folders is recursive

        method isWritableFileSystem

        isWritableFileSystem: (scheme: string) => boolean | undefined;
        • Check if a given file system supports writing files.

          Keep in mind that just because a file system supports writing, that does not mean that writes will always succeed. There may be permissions issues or other errors that prevent writing a file.

          Parameter scheme

          The scheme of the filesystem, for example file or git.

          Returns

          true if the file system supports writing, false if it does not support writing (i.e. it is readonly), and undefined if the editor does not know about the filesystem.

        method readDirectory

        readDirectory: (uri: Uri) => Thenable<[string, FileType][]>;
        • Retrieve all entries of a .

          Parameter uri

          The uri of the folder.

          Returns

          An array of name/type-tuples or a thenable that resolves to such.

        method readFile

        readFile: (uri: Uri) => Thenable<Uint8Array>;
        • Read the entire contents of a file.

          Parameter uri

          The uri of the file.

          Returns

          An array of bytes or a thenable that resolves to such.

        method rename

        rename: (
        source: Uri,
        target: Uri,
        options?: { overwrite?: boolean }
        ) => Thenable<void>;
        • Rename a file or folder.

          Parameter source

          The existing file.

          Parameter target

          The new location.

          Parameter options

          Defines if existing files should be overwritten.

        method stat

        stat: (uri: Uri) => Thenable<FileStat>;
        • Retrieve metadata about a file.

          Parameter uri

          The uri of the file to retrieve metadata about.

          Returns

          The file metadata about the file.

        method writeFile

        writeFile: (uri: Uri, content: Uint8Array) => Thenable<void>;
        • Write data to a file, replacing its entire contents.

          Parameter uri

          The uri of the file.

          Parameter content

          The new content of the file.

        interface FileSystemProvider

        interface FileSystemProvider {}
        • The filesystem provider defines what the editor needs to read, write, discover, and to manage files and folders. It allows extensions to serve files from remote places, like ftp-servers, and to seamlessly integrate those into the editor.

          * *Note 1:* The filesystem provider API works with and assumes hierarchical paths, e.g. foo:/my/path is a child of foo:/my/ and a parent of foo:/my/path/deeper. * *Note 2:* There is an activation event onFileSystem:<scheme> that fires when a file or folder is being accessed. * *Note 3:* The word 'file' is often used to denote all of files, e.g. folders, symbolic links, and regular files.

        property onDidChangeFile

        readonly onDidChangeFile: Event<FileChangeEvent[]>;
        • An event to signal that a resource has been created, changed, or deleted. This event should fire for resources that are being by clients of this provider.

          *Note:* It is important that the metadata of the file that changed provides an updated mtime that advanced from the previous value in the and a correct size value. Otherwise there may be optimizations in place that will not show the change in an editor for example.

        method copy

        copy: (
        source: Uri,
        destination: Uri,
        options: { readonly overwrite: boolean }
        ) => void | Thenable<void>;
        • Copy files or folders. Implementing this function is optional but it will speedup the copy operation.

          Parameter source

          The existing file.

          Parameter destination

          The destination location.

          Parameter options

          Defines if existing files should be overwritten.

          Throws

          when source doesn't exist.

          Throws

          when parent of destination doesn't exist, e.g. no mkdirp-logic required.

          Throws

          when destination exists and when the overwrite option is not true.

          Throws

          when permissions aren't sufficient.

        method createDirectory

        createDirectory: (uri: Uri) => void | Thenable<void>;
        • Create a new directory (Note, that new files are created via write-calls).

          Parameter uri

          The uri of the new folder.

          Throws

          when the parent of uri doesn't exist, e.g. no mkdirp-logic required.

          Throws

          when uri already exists.

          Throws

          when permissions aren't sufficient.

        method delete

        delete: (
        uri: Uri,
        options: { readonly recursive: boolean }
        ) => void | Thenable<void>;
        • Delete a file.

          Parameter uri

          The resource that is to be deleted.

          Parameter options

          Defines if deletion of folders is recursive.

          Throws

          when uri doesn't exist.

          Throws

          when permissions aren't sufficient.

        method readDirectory

        readDirectory: (
        uri: Uri
        ) => [string, FileType][] | Thenable<[string, FileType][]>;
        • Retrieve all entries of a .

          Parameter uri

          The uri of the folder.

          Returns

          An array of name/type-tuples or a thenable that resolves to such.

          Throws

          when uri doesn't exist.

        method readFile

        readFile: (uri: Uri) => Uint8Array | Thenable<Uint8Array>;
        • Read the entire contents of a file.

          Parameter uri

          The uri of the file.

          Returns

          An array of bytes or a thenable that resolves to such.

          Throws

          when uri doesn't exist.

        method rename

        rename: (
        oldUri: Uri,
        newUri: Uri,
        options: { readonly overwrite: boolean }
        ) => void | Thenable<void>;
        • Rename a file or folder.

          Parameter oldUri

          The existing file.

          Parameter newUri

          The new location.

          Parameter options

          Defines if existing files should be overwritten.

          Throws

          when oldUri doesn't exist.

          Throws

          when parent of newUri doesn't exist, e.g. no mkdirp-logic required.

          Throws

          when newUri exists and when the overwrite option is not true.

          Throws

          when permissions aren't sufficient.

        method stat

        stat: (uri: Uri) => FileStat | Thenable<FileStat>;
        • Retrieve metadata about a file.

          Note that the metadata for symbolic links should be the metadata of the file they refer to. Still, the -type must be used in addition to the actual type, e.g. FileType.SymbolicLink | FileType.Directory.

          Parameter uri

          The uri of the file to retrieve metadata about.

          Returns

          The file metadata about the file.

          Throws

          when uri doesn't exist.

        method watch

        watch: (
        uri: Uri,
        options: {
        readonly recursive: boolean;
        readonly excludes: readonly string[];
        }
        ) => Disposable;
        • Subscribes to file change events in the file or folder denoted by uri. For folders, the option recursive indicates whether subfolders, sub-subfolders, etc. should be watched for file changes as well. With recursive: false, only changes to the files that are direct children of the folder should trigger an event.

          The excludes array is used to indicate paths that should be excluded from file watching. It is typically derived from the files.watcherExclude setting that is configurable by the user. Each entry can be be: - the absolute path to exclude - a relative path to exclude (for example build/output) - a simple glob pattern (for example **​/build, output/**)

          It is the file system provider's job to call for every change given these rules. No event should be emitted for files that match any of the provided excludes.

          Parameter uri

          The uri of the file or folder to be watched.

          Parameter options

          Configures the watch.

          Returns

          A disposable that tells the provider to stop watching the uri.

        method writeFile

        writeFile: (
        uri: Uri,
        content: Uint8Array,
        options: { readonly create: boolean; readonly overwrite: boolean }
        ) => void | Thenable<void>;
        • Write data to a file, replacing its entire contents.

          Parameter uri

          The uri of the file.

          Parameter content

          The new content of the file.

          Parameter options

          Defines if missing files should or must be created.

          Throws

          when uri doesn't exist and create is not set.

          Throws

          when the parent of uri doesn't exist and create is set, e.g. no mkdirp-logic required.

          Throws

          when uri already exists, create is set but overwrite is not set.

          Throws

          when permissions aren't sufficient.

        interface FileSystemWatcher

        interface FileSystemWatcher extends Disposable {}
        • A file system watcher notifies about changes to files and folders on disk or from other .

          To get an instance of a FileSystemWatcher use .

        property ignoreChangeEvents

        readonly ignoreChangeEvents: boolean;
        • true if this file system watcher has been created such that it ignores change file system events.

        property ignoreCreateEvents

        readonly ignoreCreateEvents: boolean;
        • true if this file system watcher has been created such that it ignores creation file system events.

        property ignoreDeleteEvents

        readonly ignoreDeleteEvents: boolean;
        • true if this file system watcher has been created such that it ignores delete file system events.

        property onDidChange

        readonly onDidChange: Event<Uri>;
        • An event which fires on file/folder change.

        property onDidCreate

        readonly onDidCreate: Event<Uri>;
        • An event which fires on file/folder creation.

        property onDidDelete

        readonly onDidDelete: Event<Uri>;
        • An event which fires on file/folder deletion.

        interface FileWillCreateEvent

        interface FileWillCreateEvent {}
        • An event that is fired when files are going to be created.

          To make modifications to the workspace before the files are created, call the -function with a thenable that resolves to a .

        property files

        readonly files: readonly Uri[];
        • The files that are going to be created.

        property token

        readonly token: CancellationToken;
        • A cancellation token.

        method waitUntil

        waitUntil: {
        (thenable: Thenable<WorkspaceEdit>): void;
        (thenable: Thenable<any>): void;
        };
        • Allows to pause the event and to apply a .

          *Note:* This function can only be called during event dispatch and not in an asynchronous manner:

          workspace.onWillCreateFiles(event => {
          // async, will *throw* an error
          setTimeout(() => event.waitUntil(promise));
          // sync, OK
          event.waitUntil(promise);
          })

          Parameter thenable

          A thenable that delays saving.

        • Allows to pause the event until the provided thenable resolves.

          *Note:* This function can only be called during event dispatch.

          Parameter thenable

          A thenable that delays saving.

        interface FileWillDeleteEvent

        interface FileWillDeleteEvent {}
        • An event that is fired when files are going to be deleted.

          To make modifications to the workspace before the files are deleted, call the -function with a thenable that resolves to a .

        property files

        readonly files: readonly Uri[];
        • The files that are going to be deleted.

        property token

        readonly token: CancellationToken;
        • A cancellation token.

        method waitUntil

        waitUntil: {
        (thenable: Thenable<WorkspaceEdit>): void;
        (thenable: Thenable<any>): void;
        };
        • Allows to pause the event and to apply a .

          *Note:* This function can only be called during event dispatch and not in an asynchronous manner:

          workspace.onWillCreateFiles(event => {
          // async, will *throw* an error
          setTimeout(() => event.waitUntil(promise));
          // sync, OK
          event.waitUntil(promise);
          })

          Parameter thenable

          A thenable that delays saving.

        • Allows to pause the event until the provided thenable resolves.

          *Note:* This function can only be called during event dispatch.

          Parameter thenable

          A thenable that delays saving.

        interface FileWillRenameEvent

        interface FileWillRenameEvent {}
        • An event that is fired when files are going to be renamed.

          To make modifications to the workspace before the files are renamed, call the -function with a thenable that resolves to a .

        property files

        readonly files: ReadonlyArray<{
        /**
        * The old uri of a file.
        */
        readonly oldUri: Uri;
        /**
        * The new uri of a file.
        */
        readonly newUri: Uri;
        }>;
        • The files that are going to be renamed.

        property token

        readonly token: CancellationToken;
        • A cancellation token.

        method waitUntil

        waitUntil: {
        (thenable: Thenable<WorkspaceEdit>): void;
        (thenable: Thenable<any>): void;
        };
        • Allows to pause the event and to apply a .

          *Note:* This function can only be called during event dispatch and not in an asynchronous manner:

          workspace.onWillCreateFiles(event => {
          // async, will *throw* an error
          setTimeout(() => event.waitUntil(promise));
          // sync, OK
          event.waitUntil(promise);
          })

          Parameter thenable

          A thenable that delays saving.

        • Allows to pause the event until the provided thenable resolves.

          *Note:* This function can only be called during event dispatch.

          Parameter thenable

          A thenable that delays saving.

        interface FoldingContext

        interface FoldingContext {}
        • Folding context (for future use)

        interface FoldingRangeProvider

        interface FoldingRangeProvider {}
        • The folding range provider interface defines the contract between extensions and [Folding](https://code.visualstudio.com/docs/editor/codebasics#_folding) in the editor.

        property onDidChangeFoldingRanges

        onDidChangeFoldingRanges?: Event<void>;
        • An optional event to signal that the folding ranges from this provider have changed.

        method provideFoldingRanges

        provideFoldingRanges: (
        document: TextDocument,
        context: FoldingContext,
        token: CancellationToken
        ) => ProviderResult<FoldingRange[]>;
        • Returns a list of folding ranges or null and undefined if the provider does not want to participate or was cancelled.

          Parameter document

          The document in which the command was invoked.

          Parameter context

          Additional context information (for future use)

          Parameter token

          A cancellation token.

        interface FormattingOptions

        interface FormattingOptions {}
        • Value-object describing what options formatting should use.

        property insertSpaces

        insertSpaces: boolean;
        • Prefer spaces over tabs.

        property tabSize

        tabSize: number;
        • Size of a tab in spaces.

        index signature

        [key: string]: boolean | number | string;
        • Signature for further properties.

        interface GlobalEnvironmentVariableCollection

        interface GlobalEnvironmentVariableCollection
        extends EnvironmentVariableCollection {}
        • A collection of mutations that an extension can apply to a process environment. Applies to all scopes.

        method getScoped

        getScoped: (scope: EnvironmentVariableScope) => EnvironmentVariableCollection;
        • Gets scope-specific environment variable collection for the extension. This enables alterations to terminal environment variables solely within the designated scope, and is applied in addition to (and after) the global collection.

          Each object obtained through this method is isolated and does not impact objects for other scopes, including the global collection.

          Parameter scope

          The scope to which the environment variable collection applies to.

          If a scope parameter is omitted, collection applicable to all relevant scopes for that parameter is returned. For instance, if the 'workspaceFolder' parameter is not specified, the collection that applies across all workspace folders will be returned.

          Returns

          Environment variable collection for the passed in scope.

        interface HoverProvider

        interface HoverProvider {}
        • The hover provider interface defines the contract between extensions and the [hover](https://code.visualstudio.com/docs/editor/intellisense)-feature.

        method provideHover

        provideHover: (
        document: TextDocument,
        position: Position,
        token: CancellationToken
        ) => ProviderResult<Hover>;
        • Provide a hover for the given position and document. Multiple hovers at the same position will be merged by the editor. A hover can have a range which defaults to the word range at the position when omitted.

          Parameter document

          The document in which the command was invoked.

          Parameter position

          The position at which the command was invoked.

          Parameter token

          A cancellation token.

          Returns

          A hover or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

        interface ImplementationProvider

        interface ImplementationProvider {}
        • The implementation provider interface defines the contract between extensions and the go to implementation feature.

        method provideImplementation

        provideImplementation: (
        document: TextDocument,
        position: Position,
        token: CancellationToken
        ) => ProviderResult<Definition | DefinitionLink[]>;
        • Provide the implementations of the symbol at the given position and document.

          Parameter document

          The document in which the command was invoked.

          Parameter position

          The position at which the command was invoked.

          Parameter token

          A cancellation token.

          Returns

          A definition or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

        interface IndentationRule

        interface IndentationRule {}
        • Describes indentation rules for a language.

        property decreaseIndentPattern

        decreaseIndentPattern: RegExp;
        • If a line matches this pattern, then all the lines after it should be unindented once (until another rule matches).

        property increaseIndentPattern

        increaseIndentPattern: RegExp;
        • If a line matches this pattern, then all the lines after it should be indented once (until another rule matches).

        property indentNextLinePattern

        indentNextLinePattern?: RegExp;
        • If a line matches this pattern, then **only the next line** after it should be indented once.

        property unIndentedLinePattern

        unIndentedLinePattern?: RegExp;
        • If a line matches this pattern, then its indentation should not be changed and it should not be evaluated against the other rules.

        interface InlayHintsProvider

        interface InlayHintsProvider<T extends InlayHint = InlayHint> {}
        • The inlay hints provider interface defines the contract between extensions and the inlay hints feature.

        property onDidChangeInlayHints

        onDidChangeInlayHints?: Event<void>;
        • An optional event to signal that inlay hints from this provider have changed.

        method provideInlayHints

        provideInlayHints: (
        document: TextDocument,
        range: Range,
        token: CancellationToken
        ) => ProviderResult<T[]>;
        • Provide inlay hints for the given range and document.

          *Note* that inlay hints that are not by the given range are ignored.

          Parameter document

          The document in which the command was invoked.

          Parameter range

          The range for which inlay hints should be computed.

          Parameter token

          A cancellation token.

          Returns

          An array of inlay hints or a thenable that resolves to such.

        method resolveInlayHint

        resolveInlayHint: (hint: T, token: CancellationToken) => ProviderResult<T>;
        • Given an inlay hint fill in , , or complete label .

          *Note* that the editor will resolve an inlay hint at most once.

          Parameter hint

          An inlay hint.

          Parameter token

          A cancellation token.

          Returns

          The resolved inlay hint or a thenable that resolves to such. It is OK to return the given item. When no result is returned, the given item will be used.

        interface InlineCompletionContext

        interface InlineCompletionContext {}
        • Provides information about the context in which an inline completion was requested.

        property selectedCompletionInfo

        readonly selectedCompletionInfo: SelectedCompletionInfo | undefined;
        • Provides information about the currently selected item in the autocomplete widget if it is visible.

          If set, provided inline completions must extend the text of the selected item and use the same range, otherwise they are not shown as preview. As an example, if the document text is console. and the selected item is .log replacing the . in the document, the inline completion must also replace . and start with .log, for example .log().

          Inline completion providers are requested again whenever the selected item changes.

        property triggerKind

        readonly triggerKind: InlineCompletionTriggerKind;
        • Describes how the inline completion was triggered.

        interface InlineCompletionItemProvider

        interface InlineCompletionItemProvider {}
        • The inline completion item provider interface defines the contract between extensions and the inline completion feature.

          Providers are asked for completions either explicitly by a user gesture or implicitly when typing.

        method provideInlineCompletionItems

        provideInlineCompletionItems: (
        document: TextDocument,
        position: Position,
        context: InlineCompletionContext,
        token: CancellationToken
        ) => ProviderResult<InlineCompletionItem[] | InlineCompletionList>;
        • Provides inline completion items for the given position and document. If inline completions are enabled, this method will be called whenever the user stopped typing. It will also be called when the user explicitly triggers inline completions or explicitly asks for the next or previous inline completion. In that case, all available inline completions should be returned. context.triggerKind can be used to distinguish between these scenarios.

          Parameter document

          The document inline completions are requested for.

          Parameter position

          The position inline completions are requested for.

          Parameter context

          A context object with additional information.

          Parameter token

          A cancellation token.

          Returns

          An array of completion items or a thenable that resolves to an array of completion items.

        interface InlineValueContext

        interface InlineValueContext {}
        • A value-object that contains contextual information when requesting inline values from a InlineValuesProvider.

        property frameId

        readonly frameId: number;
        • The stack frame (as a DAP Id) where the execution has stopped.

        property stoppedLocation

        readonly stoppedLocation: Range;
        • The document range where execution has stopped. Typically the end position of the range denotes the line where the inline values are shown.

        interface InlineValuesProvider

        interface InlineValuesProvider {}
        • The inline values provider interface defines the contract between extensions and the editor's debugger inline values feature. In this contract the provider returns inline value information for a given document range and the editor shows this information in the editor at the end of lines.

        property onDidChangeInlineValues

        onDidChangeInlineValues?: Event<void> | undefined;
        • An optional event to signal that inline values have changed.

          See Also

        method provideInlineValues

        provideInlineValues: (
        document: TextDocument,
        viewPort: Range,
        context: InlineValueContext,
        token: CancellationToken
        ) => ProviderResult<InlineValue[]>;
        • Provide "inline value" information for a given document and range. The editor calls this method whenever debugging stops in the given document. The returned inline values information is rendered in the editor at the end of lines.

          Parameter document

          The document for which the inline values information is needed.

          Parameter viewPort

          The visible document range for which inline values should be computed.

          Parameter context

          A bag containing contextual information like the current location.

          Parameter token

          A cancellation token.

          Returns

          An array of InlineValueDescriptors or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

        interface InputBox

        interface InputBox extends QuickInput {}

        property buttons

        buttons: readonly QuickInputButton[];
        • Buttons for actions in the UI.

        property onDidAccept

        readonly onDidAccept: Event<void>;
        • An event signaling when the user indicated acceptance of the input value.

        property onDidChangeValue

        readonly onDidChangeValue: Event<string>;
        • An event signaling when the value has changed.

        property onDidTriggerButton

        readonly onDidTriggerButton: Event<QuickInputButton>;
        • An event signaling when a button was triggered.

        property password

        password: boolean;
        • If the input value should be hidden. Defaults to false.

        property placeholder

        placeholder: string | undefined;
        • Optional placeholder shown when no value has been input.

        property prompt

        prompt: string | undefined;
        • An optional prompt text providing some ask or explanation to the user.

        property validationMessage

        validationMessage: string | InputBoxValidationMessage | undefined;
        • An optional validation message indicating a problem with the current input value. By returning a string, the InputBox will use a default InputBoxValidationSeverity of Error. Returning undefined clears the validation message.

        property value

        value: string;
        • Current input value.

        property valueSelection

        valueSelection: readonly [number, number] | undefined;
        • Selection range in the input value. Defined as tuple of two number where the first is the inclusive start index and the second the exclusive end index. When undefined the whole pre-filled value will be selected, when empty (start equals end) only the cursor will be set, otherwise the defined range will be selected.

          This property does not get updated when the user types or makes a selection, but it can be updated by the extension.

        interface InputBoxOptions

        interface InputBoxOptions {}
        • Options to configure the behavior of the input box UI.

        property ignoreFocusOut

        ignoreFocusOut?: boolean;
        • Set to true to keep the input box open when focus moves to another part of the editor or to another window. This setting is ignored on iPad and is always false.

        property password

        password?: boolean;
        • Controls if a password input is shown. Password input hides the typed text.

        property placeHolder

        placeHolder?: string;
        • An optional string to show as placeholder in the input box to guide the user what to type.

        property prompt

        prompt?: string;
        • The text to display underneath the input box.

        property title

        title?: string;
        • An optional string that represents the title of the input box.

        property value

        value?: string;
        • The value to pre-fill in the input box.

        property valueSelection

        valueSelection?: [number, number];
        • Selection of the pre-filled . Defined as tuple of two number where the first is the inclusive start index and the second the exclusive end index. When undefined the whole pre-filled value will be selected, when empty (start equals end) only the cursor will be set, otherwise the defined range will be selected.

        method validateInput

        validateInput: (
        value: string
        ) =>
        | string
        | InputBoxValidationMessage
        | undefined
        | null
        | Thenable<string | InputBoxValidationMessage | undefined | null>;
        • An optional function that will be called to validate input and to give a hint to the user.

          Parameter value

          The current value of the input box.

          Returns

          Either a human-readable string which is presented as an error message or an InputBoxValidationMessage which can provide a specific message severity. Return undefined, null, or the empty string when 'value' is valid.

        interface InputBoxValidationMessage

        interface InputBoxValidationMessage {}
        • Object to configure the behavior of the validation message.

        property message

        readonly message: string;
        • The validation message to display.

        property severity

        readonly severity: InputBoxValidationSeverity;
        • The severity of the validation message. NOTE: When using InputBoxValidationSeverity.Error, the user will not be allowed to accept (hit ENTER) the input. Info and Warning will still allow the InputBox to accept the input.

        interface LanguageConfiguration

        interface LanguageConfiguration {}
        • The language configuration interfaces defines the contract between extensions and various editor features, like automatic bracket insertion, automatic indentation etc.

        property autoClosingPairs

        autoClosingPairs?: AutoClosingPair[];
        • The language's auto closing pairs.

        property brackets

        brackets?: CharacterPair[];
        • The language's brackets. This configuration implicitly affects pressing Enter around these brackets.

        property comments

        comments?: CommentRule;
        • The language's comment settings.

        property indentationRules

        indentationRules?: IndentationRule;
        • The language's indentation settings.

        property onEnterRules

        onEnterRules?: OnEnterRule[];
        • The language's rules to be evaluated when pressing Enter.

        property wordPattern

        wordPattern?: RegExp;
        • The language's word definition. If the language supports Unicode identifiers (e.g. JavaScript), it is preferable to provide a word definition that uses exclusion of known separators. e.g.: A regex that matches anything except known separators (and dot is allowed to occur in a floating point number):

          /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g

        interface LanguageModelAccessInformation

        interface LanguageModelAccessInformation {}
        • Represents extension specific information about the access to language models.

        property onDidChange

        onDidChange: Event<void>;
        • An event that fires when access information changes.

        method canSendRequest

        canSendRequest: (chat: LanguageModelChat) => boolean | undefined;
        • Checks if a request can be made to a language model.

          *Note* that calling this function will not trigger a consent UI but just checks for a persisted state.

          Parameter chat

          A language model chat object. true if a request can be made, false if not, undefined if the language model does not exist or consent hasn't been asked for.

        interface LanguageModelChat

        interface LanguageModelChat {}

        property family

        readonly family: string;
        • Opaque family-name of the language model. Values might be gpt-3.5-turbo, gpt4, phi2, or llama but they are defined by extensions contributing languages and subject to change.

        property id

        readonly id: string;
        • Opaque identifier of the language model.

        property maxInputTokens

        readonly maxInputTokens: number;
        • The maximum number of tokens that can be sent to the model in a single request.

        property name

        readonly name: string;
        • Human-readable name of the language model.

        property vendor

        readonly vendor: string;
        • A well-known identifier of the vendor of the language model. An example is copilot, but values are defined by extensions contributing chat models and need to be looked up with them.

        property version

        readonly version: string;
        • Opaque version string of the model. This is defined by the extension contributing the language model and subject to change.

        method countTokens

        countTokens: (
        text: string | LanguageModelChatMessage,
        token?: CancellationToken
        ) => Thenable<number>;
        • Count the number of tokens in a message using the model specific tokenizer-logic.

          Parameter text

          A string or a message instance.

          Parameter token

          Optional cancellation token. See CancellationTokenSource for how to create one.

          Returns

          A thenable that resolves to the number of tokens.

        method sendRequest

        sendRequest: (
        messages: LanguageModelChatMessage[],
        options?: LanguageModelChatRequestOptions,
        token?: CancellationToken
        ) => Thenable<LanguageModelChatResponse>;
        • Make a chat request using a language model.

          *Note* that language model use may be subject to access restrictions and user consent. Calling this function for the first time (for an extension) will show a consent dialog to the user and because of that this function must _only be called in response to a user action!_ Extensions can use LanguageModelAccessInformation.canSendRequest to check if they have the necessary permissions to make a request.

          This function will return a rejected promise if making a request to the language model is not possible. Reasons for this can be:

          - user consent not given, see - model does not exist anymore, see - quota limits exceeded, see - other issues in which case extension must check

          An extension can make use of language model tool calling by passing a set of tools to LanguageModelChatRequestOptions.tools. The language model will return a LanguageModelToolCallPart and the extension can invoke the tool and make another request with the result.

          Parameter messages

          An array of message instances.

          Parameter options

          Options that control the request.

          Parameter token

          A cancellation token which controls the request. See CancellationTokenSource for how to create one.

          Returns

          A thenable that resolves to a LanguageModelChatResponse. The promise will reject when the request couldn't be made.

        interface LanguageModelChatRequestOptions

        interface LanguageModelChatRequestOptions {}

        property justification

        justification?: string;
        • A human-readable message that explains why access to a language model is needed and what feature is enabled by it.

        property modelOptions

        modelOptions?: { [name: string]: any };
        • A set of options that control the behavior of the language model. These options are specific to the language model and need to be lookup in the respective documentation.

        property toolMode

        toolMode?: LanguageModelChatToolMode;

        property tools

        tools?: LanguageModelChatTool[];

        interface LanguageModelChatResponse

        interface LanguageModelChatResponse {}
        • Represents a language model response.

          See Also

        property stream

        stream: AsyncIterable<
        LanguageModelTextPart | LanguageModelToolCallPart | unknown
        >;
        • An async iterable that is a stream of text and tool-call parts forming the overall response. A LanguageModelTextPart is part of the assistant's response to be shown to the user. A LanguageModelToolCallPart is a request from the language model to call a tool. The latter will only be returned if tools were passed in the request via LanguageModelChatRequestOptions.tools. The unknown-type is used as a placeholder for future parts, like image data parts.

          *Note* that this stream will error when during data receiving an error occurs. Consumers of the stream should handle the errors accordingly.

          To cancel the stream, the consumer can the token that was used to make the request or break from the for-loop.

          Example 1

          try {
          // consume stream
          for await (const chunk of response.stream) {
          if (chunk instanceof LanguageModelTextPart) {
          console.log("TEXT", chunk);
          } else if (chunk instanceof LanguageModelToolCallPart) {
          console.log("TOOL CALL", chunk);
          }
          }
          } catch(e) {
          // stream ended with an error
          console.error(e);
          }

        property text

        text: AsyncIterable<string>;

        interface LanguageModelChatSelector

        interface LanguageModelChatSelector {}

        property family

        family?: string;

        property id

        id?: string;

        property vendor

        vendor?: string;

        property version

        version?: string;

        interface LanguageModelChatTool

        interface LanguageModelChatTool {}
        • A tool that is available to the language model via LanguageModelChatRequestOptions. A language model uses all the properties of this interface to decide which tool to call, and how to call it.

        property description

        description: string;
        • The description of the tool.

        property inputSchema

        inputSchema?: object | undefined;
        • A JSON schema for the input this tool accepts.

        property name

        name: string;
        • The name of the tool.

        interface LanguageModelTool

        interface LanguageModelTool<T> {}

        method invoke

        invoke: (
        options: LanguageModelToolInvocationOptions<T>,
        token: CancellationToken
        ) => ProviderResult<LanguageModelToolResult>;

        method prepareInvocation

        prepareInvocation: (
        options: LanguageModelToolInvocationPrepareOptions<T>,
        token: CancellationToken
        ) => ProviderResult<PreparedToolInvocation>;
        • Called once before a tool is invoked. It's recommended to implement this to customize the progress message that appears while the tool is running, and to provide a more useful message with context from the invocation input. Can also signal that a tool needs user confirmation before running, if appropriate.

          * *Note 1:* Must be free of side-effects. * *Note 2:* A call to prepareInvocation is not necessarily followed by a call to invoke.

        interface LanguageModelToolConfirmationMessages

        interface LanguageModelToolConfirmationMessages {}
        • When this is returned in PreparedToolInvocation, the user will be asked to confirm before running the tool. These messages will be shown with buttons that say "Continue" and "Cancel".

        property message

        message: string | MarkdownString;
        • The body of the confirmation message.

        property title

        title: string;
        • The title of the confirmation message.

        interface LanguageModelToolInformation

        interface LanguageModelToolInformation {}
        • Information about a registered tool available in lm.tools.

        property description

        readonly description: string;
        • A description of this tool that may be passed to a language model.

        property inputSchema

        readonly inputSchema: object | undefined;
        • A JSON schema for the input this tool accepts.

        property name

        readonly name: string;
        • A unique name for the tool.

        property tags

        readonly tags: readonly string[];
        • A set of tags, declared by the tool, that roughly describe the tool's capabilities. A tool user may use these to filter the set of tools to just ones that are relevant for the task at hand.

        interface LanguageModelToolInvocationOptions

        interface LanguageModelToolInvocationOptions<T> {}
        • Options provided for tool invocation.

        property input

        input: T;

        property tokenizationOptions

        tokenizationOptions?: LanguageModelToolTokenizationOptions;
        • Options to hint at how many tokens the tool should return in its response, and enable the tool to count tokens accurately.

        property toolInvocationToken

        toolInvocationToken: ChatParticipantToolToken | undefined;
        • An opaque object that ties a tool invocation to a chat request from a .

          The _only_ way to get a valid tool invocation token is using the provided from a chat request. In that case, a progress bar will be automatically shown for the tool invocation in the chat response view, and if the tool requires user confirmation, it will show up inline in the chat view.

          If the tool is being invoked outside of a chat request, undefined should be passed instead, and no special UI except for confirmations will be shown.

          *Note* that a tool that invokes another tool during its invocation, can pass along the toolInvocationToken that it received.

        interface LanguageModelToolInvocationPrepareOptions

        interface LanguageModelToolInvocationPrepareOptions<T> {}

        property input

        input: T;
        • The input that the tool is being invoked with.

        interface LanguageModelToolTokenizationOptions

        interface LanguageModelToolTokenizationOptions {}
        • Options related to tokenization for a tool invocation.

        property tokenBudget

        tokenBudget: number;
        • If known, the maximum number of tokens the tool should emit in its result.

        method countTokens

        countTokens: (text: string, token?: CancellationToken) => Thenable<number>;
        • Count the number of tokens in a message using the model specific tokenizer-logic.

          Parameter text

          A string.

          Parameter token

          Optional cancellation token. See CancellationTokenSource for how to create one.

          Returns

          A thenable that resolves to the number of tokens.

        interface LanguageStatusItem

        interface LanguageStatusItem {}
        • A language status item is the preferred way to present language status reports for the active text editors, such as selected linter or notifying about a configuration problem.

        property accessibilityInformation

        accessibilityInformation?: AccessibilityInformation;
        • Accessibility information used when a screen reader interacts with this item

        property busy

        busy: boolean;
        • Controls whether the item is shown as "busy". Defaults to false.

        property command

        command: Command | undefined;
        • A for this item.

        property detail

        detail?: string;
        • Optional, human-readable details for this item.

        property id

        readonly id: string;
        • The identifier of this item.

        property name

        name: string | undefined;
        • The short name of this item, like 'Java Language Status', etc.

        property selector

        selector: DocumentSelector;
        • A that defines for what editors this item shows.

        property severity

        severity: LanguageStatusSeverity;
        • The severity of this item.

          Defaults to . You can use this property to signal to users that there is a problem that needs attention, like a missing executable or an invalid configuration.

        property text

        text: string;
        • The text to show for the entry. You can embed icons in the text by leveraging the syntax:

          My text $(icon-name) contains icons like $(icon-name) this one.

          Where the icon-name is taken from the ThemeIcon [icon set](https://code.visualstudio.com/api/references/icons-in-labels#icon-listing), e.g. light-bulb, thumbsup, zap etc.

        method dispose

        dispose: () => void;
        • Dispose and free associated resources.

        interface LinkedEditingRangeProvider

        interface LinkedEditingRangeProvider {}
        • The linked editing range provider interface defines the contract between extensions and the linked editing feature.

        method provideLinkedEditingRanges

        provideLinkedEditingRanges: (
        document: TextDocument,
        position: Position,
        token: CancellationToken
        ) => ProviderResult<LinkedEditingRanges>;
        • For a given position in a document, returns the range of the symbol at the position and all ranges that have the same content. A change to one of the ranges can be applied to all other ranges if the new content is valid. An optional word pattern can be returned with the result to describe valid contents. If no result-specific word pattern is provided, the word pattern from the language configuration is used.

          Parameter document

          The document in which the provider was invoked.

          Parameter position

          The position at which the provider was invoked.

          Parameter token

          A cancellation token.

          Returns

          A list of ranges that can be edited together

        interface LocationLink {}
        • Represents the connection of two locations. Provides additional metadata over normal , including an origin range.

        property originSelectionRange

        originSelectionRange?: Range;
        • 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.

        property targetRange

        targetRange: Range;
        • The full target range of this link.

        property targetSelectionRange

        targetSelectionRange?: Range;
        • The span of this link.

        property targetUri

        targetUri: Uri;
        • The target resource identifier of this link.

        interface LogOutputChannel

        interface LogOutputChannel extends OutputChannel {}
        • A channel for containing log output.

          To get an instance of a LogOutputChannel use .

        property logLevel

        readonly logLevel: LogLevel;
        • The current log level of the channel. Defaults to .

        property onDidChangeLogLevel

        readonly onDidChangeLogLevel: Event<LogLevel>;
        • An Event which fires when the log level of the channel changes.

        method debug

        debug: (message: string, ...args: any[]) => void;
        • Outputs the given debug message to the channel.

          The message is only logged if the channel is configured to display log level or lower.

          Parameter message

          debug message to log

        method error

        error: (error: string | Error, ...args: any[]) => void;
        • Outputs the given error or error message to the channel.

          The message is only logged if the channel is configured to display log level or lower.

          Parameter error

          Error or error message to log

        method info

        info: (message: string, ...args: any[]) => void;
        • Outputs the given information message to the channel.

          The message is only logged if the channel is configured to display log level or lower.

          Parameter message

          info message to log

        method trace

        trace: (message: string, ...args: any[]) => void;
        • Outputs the given trace message to the channel. Use this method to log verbose information.

          The message is only logged if the channel is configured to display log level.

          Parameter message

          trace message to log

        method warn

        warn: (message: string, ...args: any[]) => void;
        • Outputs the given warning message to the channel.

          The message is only logged if the channel is configured to display log level or lower.

          Parameter message

          warning message to log

        interface Memento

        interface Memento {}
        • A memento represents a storage utility. It can store and retrieve values.

        method get

        get: { <T>(key: string): T | undefined; <T>(key: string, defaultValue: T): T };
        • Return a value.

          Parameter key

          A string.

          Returns

          The stored value or undefined.

        • Return a value.

          Parameter key

          A string.

          Parameter defaultValue

          A value that should be returned when there is no value (undefined) with the given key.

          Returns

          The stored value or the defaultValue.

        method keys

        keys: () => readonly string[];
        • Returns the stored keys.

          Returns

          The stored keys.

        method update

        update: (key: string, value: any) => Thenable<void>;
        • Store a value. The value must be JSON-stringifyable.

          *Note* that using undefined as value removes the key from the underlying storage.

          Parameter key

          A string.

          Parameter value

          A value. MUST not contain cyclic references.

        interface MessageItem

        interface MessageItem {}
        • Represents an action that is shown with an information, warning, or error message.

          See Also

        property isCloseAffordance

        isCloseAffordance?: boolean;
        • A hint for modal dialogs that the item should be triggered when the user cancels the dialog (e.g. by pressing the ESC key).

          Note: this option is ignored for non-modal messages.

        property title

        title: string;
        • A short title like 'Retry', 'Open Log' etc.

        interface MessageOptions

        interface MessageOptions {}
        • Options to configure the behavior of the message.

          See Also

        property detail

        detail?: string;
        • Human-readable detail message that is rendered less prominent. _Note_ that detail is only shown for messages.

        property modal

        modal?: boolean;
        • Indicates that this message should be modal.

        interface NotebookCell

        interface NotebookCell {}
        • Represents a cell of a , either a -cell or -cell.

          NotebookCell instances are immutable and are kept in sync for as long as they are part of their notebook.

        property document

        readonly document: TextDocument;
        • The of this cell, represented as text document.

        property executionSummary

        readonly executionSummary: NotebookCellExecutionSummary | undefined;
        • The most recent for this cell.

        property index

        readonly index: number;
        • The index of this cell in its . The index is updated when a cell is moved within its notebook. The index is -1 when the cell has been removed from its notebook.

        property kind

        readonly kind: NotebookCellKind;
        • The kind of this cell.

        property metadata

        readonly metadata: { readonly [key: string]: any };
        • The metadata of this cell. Can be anything but must be JSON-stringifyable.

        property notebook

        readonly notebook: NotebookDocument;
        • The that contains this cell.

        property outputs

        readonly outputs: readonly NotebookCellOutput[];
        • The outputs of this cell.

        interface NotebookCellExecution

        interface NotebookCellExecution {}
        • A NotebookCellExecution is how modify a notebook cell as it is executing.

          When a cell execution object is created, the cell enters the state. When is called on the execution task, it enters the state. When is called, it enters the state.

        property cell

        readonly cell: NotebookCell;
        • The for which this execution has been created.

        property executionOrder

        executionOrder: number | undefined;
        • Set and unset the order of this cell execution.

        property token

        readonly token: CancellationToken;
        • A cancellation token which will be triggered when the cell execution is canceled from the UI.

          _Note_ that the cancellation token will not be triggered when the that created this execution uses an .

        method appendOutput

        appendOutput: (
        out: NotebookCellOutput | readonly NotebookCellOutput[],
        cell?: NotebookCell
        ) => Thenable<void>;
        • Append to the output of the cell that is executing or to another cell that is affected by this execution.

          Parameter out

          Output that is appended to the current output.

          Parameter cell

          Cell for which output is cleared. Defaults to the of this execution.

          Returns

          A thenable that resolves when the operation finished.

        method appendOutputItems

        appendOutputItems: (
        items: NotebookCellOutputItem | readonly NotebookCellOutputItem[],
        output: NotebookCellOutput
        ) => Thenable<void>;
        • Append output items to existing cell output.

          Parameter items

          Output items that are append to existing output.

          Parameter output

          Output object that already exists.

          Returns

          A thenable that resolves when the operation finished.

        method clearOutput

        clearOutput: (cell?: NotebookCell) => Thenable<void>;
        • Clears the output of the cell that is executing or of another cell that is affected by this execution.

          Parameter cell

          Cell for which output is cleared. Defaults to the of this execution.

          Returns

          A thenable that resolves when the operation finished.

        method end

        end: (success: boolean | undefined, endTime?: number) => void;
        • Signal that execution has ended.

          Parameter success

          If true, a green check is shown on the cell status bar. If false, a red X is shown. If undefined, no check or X icon is shown.

          Parameter endTime

          The time that execution finished, in milliseconds in the Unix epoch.

        method replaceOutput

        replaceOutput: (
        out: NotebookCellOutput | readonly NotebookCellOutput[],
        cell?: NotebookCell
        ) => Thenable<void>;
        • Replace the output of the cell that is executing or of another cell that is affected by this execution.

          Parameter out

          Output that replaces the current output.

          Parameter cell

          Cell for which output is cleared. Defaults to the of this execution.

          Returns

          A thenable that resolves when the operation finished.

        method replaceOutputItems

        replaceOutputItems: (
        items: NotebookCellOutputItem | readonly NotebookCellOutputItem[],
        output: NotebookCellOutput
        ) => Thenable<void>;
        • Replace all output items of existing cell output.

          Parameter items

          Output items that replace the items of existing output.

          Parameter output

          Output object that already exists.

          Returns

          A thenable that resolves when the operation finished.

        method start

        start: (startTime?: number) => void;
        • Signal that the execution has begun.

          Parameter startTime

          The time that execution began, in milliseconds in the Unix epoch. Used to drive the clock that shows for how long a cell has been running. If not given, the clock won't be shown.

        interface NotebookCellExecutionSummary

        interface NotebookCellExecutionSummary {}
        • The summary of a notebook cell execution.

        property executionOrder

        readonly executionOrder?: number;
        • The order in which the execution happened.

        property success

        readonly success?: boolean;
        • If the execution finished successfully.

        property timing

        readonly timing?: {
        /**
        * Execution start time.
        */
        readonly startTime: number;
        /**
        * Execution end time.
        */
        readonly endTime: number;
        };
        • The times at which execution started and ended, as unix timestamps

        interface NotebookCellStatusBarItemProvider

        interface NotebookCellStatusBarItemProvider {}
        • A provider that can contribute items to the status bar that appears below a cell's editor.

        property onDidChangeCellStatusBarItems

        onDidChangeCellStatusBarItems?: Event<void>;
        • An optional event to signal that statusbar items have changed. The provide method will be called again.

        method provideCellStatusBarItems

        provideCellStatusBarItems: (
        cell: NotebookCell,
        token: CancellationToken
        ) => ProviderResult<NotebookCellStatusBarItem | NotebookCellStatusBarItem[]>;
        • The provider will be called when the cell scrolls into view, when its content, outputs, language, or metadata change, and when it changes execution state.

          Parameter cell

          The cell for which to return items.

          Parameter token

          A token triggered if this request should be cancelled.

          Returns

          One or more

        interface NotebookController

        interface NotebookController {}
        • A notebook controller represents an entity that can execute notebook cells. This is often referred to as a kernel.

          There can be multiple controllers and the editor will let users choose which controller to use for a certain notebook. The -property defines for what kind of notebooks a controller is for and the -function allows controllers to set a preference for specific notebook documents. When a controller has been selected its -event fires.

          When a cell is being run the editor will invoke the and a controller is expected to create and finalize a . However, controllers are also free to create executions by themselves.

        property description

        description?: string;
        • The human-readable description which is rendered less prominent.

        property detail

        detail?: string;
        • The human-readable detail which is rendered less prominent.

        property executeHandler

        executeHandler: (
        cells: NotebookCell[],
        notebook: NotebookDocument,
        controller: NotebookController
        ) => void | Thenable<void>;
        • The execute handler is invoked when the run gestures in the UI are selected, e.g Run Cell, Run All, Run Selection etc. The execute handler is responsible for creating and managing -objects.

        property id

        readonly id: string;
        • The identifier of this notebook controller.

          _Note_ that controllers are remembered by their identifier and that extensions should use stable identifiers across sessions.

        property interruptHandler

        interruptHandler?: (notebook: NotebookDocument) => void | Thenable<void>;
        • Optional interrupt handler.

          By default cell execution is canceled via . Cancellation tokens require that a controller can keep track of its execution so that it can cancel a specific execution at a later point. Not all scenarios allow for that, eg. REPL-style controllers often work by interrupting whatever is currently running. For those cases the interrupt handler exists - it can be thought of as the equivalent of SIGINT or Control+C in terminals.

          _Note_ that supporting is preferred and that interrupt handlers should only be used when tokens cannot be supported.

        property label

        label: string;
        • The human-readable label of this notebook controller.

        property notebookType

        readonly notebookType: string;
        • The notebook type this controller is for.

        property onDidChangeSelectedNotebooks

        readonly onDidChangeSelectedNotebooks: Event<{
        /**
        * The notebook for which the controller has been selected or un-selected.
        */
        readonly notebook: NotebookDocument;
        /**
        * Whether the controller has been selected or un-selected.
        */
        readonly selected: boolean;
        }>;
        • An event that fires whenever a controller has been selected or un-selected for a notebook document.

          There can be multiple controllers for a notebook and in that case a controllers needs to be _selected_. This is a user gesture and happens either explicitly or implicitly when interacting with a notebook for which a controller was _suggested_. When possible, the editor _suggests_ a controller that is most likely to be _selected_.

          _Note_ that controller selection is persisted (by the controllers ) and restored as soon as a controller is re-created or as a notebook is .

        property supportedLanguages

        supportedLanguages?: string[];
        • An array of language identifiers that are supported by this controller. Any language identifier from is possible. When falsy all languages are supported.

          Samples:

          // support JavaScript and TypeScript
          myController.supportedLanguages = ['javascript', 'typescript']
          // support all languages
          myController.supportedLanguages = undefined; // falsy
          myController.supportedLanguages = []; // falsy

        property supportsExecutionOrder

        supportsExecutionOrder?: boolean;
        • Whether this controller supports execution order so that the editor can render placeholders for them.

        method createNotebookCellExecution

        createNotebookCellExecution: (cell: NotebookCell) => NotebookCellExecution;
        • Create a cell execution task.

          _Note_ that there can only be one execution per cell at a time and that an error is thrown if a cell execution is created while another is still active.

          This should be used in response to the being called or when cell execution has been started else, e.g when a cell was already executing or when cell execution was triggered from another source.

          Parameter cell

          The notebook cell for which to create the execution.

          Returns

          A notebook cell execution.

        method dispose

        dispose: () => void;
        • Dispose and free associated resources.

        method updateNotebookAffinity

        updateNotebookAffinity: (
        notebook: NotebookDocument,
        affinity: NotebookControllerAffinity
        ) => void;
        • A controller can set affinities for specific notebook documents. This allows a controller to be presented more prominent for some notebooks.

          Parameter notebook

          The notebook for which a priority is set.

          Parameter affinity

          A controller affinity

        interface NotebookDocument

        interface NotebookDocument {}
        • Represents a notebook which itself is a sequence of . Notebook documents are created from .

        property cellCount

        readonly cellCount: number;
        • The number of cells in the notebook.

        property isClosed

        readonly isClosed: boolean;
        • true if the notebook has been closed. A closed notebook isn't synchronized anymore and won't be re-used when the same resource is opened again.

        property isDirty

        readonly isDirty: boolean;
        • true if there are unpersisted changes.

        property isUntitled

        readonly isUntitled: boolean;
        • Is this notebook representing an untitled file which has not been saved yet.

        property metadata

        readonly metadata: { [key: string]: any };
        • Arbitrary metadata for this notebook. Can be anything but must be JSON-stringifyable.

        property notebookType

        readonly notebookType: string;
        • The type of notebook.

        property uri

        readonly uri: Uri;
        • The associated uri for this notebook.

          *Note* that most notebooks use the file-scheme, which means they are files on disk. However, **not** all notebooks are saved on disk and therefore the scheme must be checked before trying to access the underlying file or siblings on disk.

          See Also

        property version

        readonly version: number;
        • The version number of this notebook (it will strictly increase after each change, including undo/redo).

        method cellAt

        cellAt: (index: number) => NotebookCell;
        • Return the cell at the specified index. The index will be adjusted to the notebook.

          Parameter index

          The index of the cell to retrieve.

          Returns

          A .

        method getCells

        getCells: (range?: NotebookRange) => NotebookCell[];
        • Get the cells of this notebook. A subset can be retrieved by providing a range. The range will be adjusted to the notebook.

          Parameter range

          A notebook range.

          Returns

          The cells contained by the range or all cells.

        method save

        save: () => Thenable<boolean>;
        • Save the document. The saving will be handled by the corresponding .

          Returns

          A promise that will resolve to true when the document has been saved. Will return false if the file was not dirty or when save failed.

        interface NotebookDocumentCellChange

        interface NotebookDocumentCellChange {}

        property cell

        readonly cell: NotebookCell;
        • The affected cell.

        property document

        readonly document: TextDocument | undefined;
        • The document of the cell or undefined when it did not change.

          *Note* that you should use the -event for detailed change information, like what edits have been performed.

        property executionSummary

        readonly executionSummary: NotebookCellExecutionSummary | undefined;
        • The new execution summary of the cell or undefined when it did not change.

        property metadata

        readonly metadata: { [key: string]: any } | undefined;
        • The new metadata of the cell or undefined when it did not change.

        property outputs

        readonly outputs: readonly NotebookCellOutput[] | undefined;
        • The new outputs of the cell or undefined when they did not change.

        interface NotebookDocumentChangeEvent

        interface NotebookDocumentChangeEvent {}
        • An event describing a transactional change.

        property cellChanges

        readonly cellChanges: readonly NotebookDocumentCellChange[];
        • An array of .

        property contentChanges

        readonly contentChanges: readonly NotebookDocumentContentChange[];
        • An array of content changes describing added or removed .

        property metadata

        readonly metadata: { [key: string]: any } | undefined;
        • The new metadata of the notebook or undefined when it did not change.

        property notebook

        readonly notebook: NotebookDocument;
        • The affected notebook.

        interface NotebookDocumentContentChange

        interface NotebookDocumentContentChange {}

        property addedCells

        readonly addedCells: readonly NotebookCell[];
        • Cells that have been added to the document.

        property range

        readonly range: NotebookRange;
        • The range at which cells have been either added or removed.

          Note that no cells have been when this range is .

        property removedCells

        readonly removedCells: readonly NotebookCell[];
        • Cells that have been removed from the document.

        interface NotebookDocumentContentOptions

        interface NotebookDocumentContentOptions {}
        • Notebook content options define what parts of a notebook are persisted. Note

          For instance, a notebook serializer can opt-out of saving outputs and in that case the editor doesn't mark a notebooks as when its output has changed.

        property transientCellMetadata

        transientCellMetadata?: { [key: string]: boolean | undefined };
        • Controls if a cell metadata property change event will trigger notebook document content change events and if it will be used in the diff editor, defaults to false. If the content provider doesn't persist a metadata property in the file document, it should be set to true.

        property transientDocumentMetadata

        transientDocumentMetadata?: { [key: string]: boolean | undefined };
        • Controls if a document metadata property change event will trigger notebook document content change event and if it will be used in the diff editor, defaults to false. If the content provider doesn't persist a metadata property in the file document, it should be set to true.

        property transientOutputs

        transientOutputs?: boolean;
        • Controls if output change events will trigger notebook document content change events and if it will be used in the diff editor, defaults to false. If the content provider doesn't persist the outputs in the file document, this should be set to true.

        interface NotebookDocumentShowOptions

        interface NotebookDocumentShowOptions {}
        • Represents options to configure the behavior of showing a in an .

        property preserveFocus

        readonly preserveFocus?: boolean;
        • An optional flag that when true will stop the from taking focus.

        property preview

        readonly preview?: boolean;
        • An optional flag that controls if an -tab shows as preview. Preview tabs will be replaced and reused until set to stay - either explicitly or through editing. The default behaviour depends on the workbench.editor.enablePreview-setting.

        property selections

        readonly selections?: readonly NotebookRange[];
        • An optional selection to apply for the document in the .

        property viewColumn

        readonly viewColumn?: ViewColumn;
        • An optional view column in which the should be shown. The default is the . Columns that do not exist will be created as needed up to the maximum of . Use to open the editor to the side of the currently active one.

        interface NotebookDocumentWillSaveEvent

        interface NotebookDocumentWillSaveEvent {}
        • An event that is fired when a will be saved.

          To make modifications to the document before it is being saved, call the -function with a thenable that resolves to a .

        property notebook

        readonly notebook: NotebookDocument;
        • The that will be saved.

        property reason

        readonly reason: TextDocumentSaveReason;
        • The reason why save was triggered.

        property token

        readonly token: CancellationToken;
        • A cancellation token.

        method waitUntil

        waitUntil: {
        (thenable: Thenable<WorkspaceEdit>): void;
        (thenable: Thenable<any>): void;
        };
        • Allows to pause the event loop and to apply . Edits of subsequent calls to this function will be applied in order. The edits will be *ignored* if concurrent modifications of the notebook document happened.

          *Note:* This function can only be called during event dispatch and not in an asynchronous manner:

          workspace.onWillSaveNotebookDocument(event => {
          // async, will *throw* an error
          setTimeout(() => event.waitUntil(promise));
          // sync, OK
          event.waitUntil(promise);
          })

          Parameter thenable

          A thenable that resolves to .

        • Allows to pause the event loop until the provided thenable resolved.

          *Note:* This function can only be called during event dispatch.

          Parameter thenable

          A thenable that delays saving.

        interface NotebookEditor

        interface NotebookEditor {}
        • Represents a notebook editor that is attached to a . Additional properties of the NotebookEditor are available in the proposed API, which will be finalized later.

        property notebook

        readonly notebook: NotebookDocument;
        • The associated with this notebook editor.

        property selection

        selection: NotebookRange;
        • The primary selection in this notebook editor.

        property selections

        selections: readonly NotebookRange[];
        • All selections in this notebook editor.

          The primary selection (or focused range) is selections[0]. When the document has no cells, the primary selection is empty { start: 0, end: 0 };

        property viewColumn

        readonly viewColumn?: ViewColumn;
        • The column in which this editor shows.

        property visibleRanges

        readonly visibleRanges: readonly NotebookRange[];
        • The current visible ranges in the editor (vertically).

        method revealRange

        revealRange: (
        range: NotebookRange,
        revealType?: NotebookEditorRevealType
        ) => void;
        • Scroll as indicated by revealType in order to reveal the given range.

          Parameter range

          A range.

          Parameter revealType

          The scrolling strategy for revealing range.

        interface NotebookEditorSelectionChangeEvent

        interface NotebookEditorSelectionChangeEvent {}
        • Represents an event describing the change in a .

        property notebookEditor

        readonly notebookEditor: NotebookEditor;
        • The for which the selections have changed.

        property selections

        readonly selections: readonly NotebookRange[];
        • The new value for the .

        interface NotebookEditorVisibleRangesChangeEvent

        interface NotebookEditorVisibleRangesChangeEvent {}
        • Represents an event describing the change in a .

        property notebookEditor

        readonly notebookEditor: NotebookEditor;
        • The for which the visible ranges have changed.

        property visibleRanges

        readonly visibleRanges: readonly NotebookRange[];
        • The new value for the .

        interface NotebookRendererMessaging

        interface NotebookRendererMessaging {}

        property onDidReceiveMessage

        readonly onDidReceiveMessage: Event<{
        /**
        * The {@link NotebookEditor editor} that sent the message.
        */
        readonly editor: NotebookEditor;
        /**
        * The actual message.
        */
        readonly message: any;
        }>;
        • An event that fires when a message is received from a renderer.

        method postMessage

        postMessage: (message: any, editor?: NotebookEditor) => Thenable<boolean>;
        • Send a message to one or all renderer.

          Parameter message

          Message to send

          Parameter editor

          Editor to target with the message. If not provided, the message is sent to all renderers.

          Returns

          a boolean indicating whether the message was successfully delivered to any renderer.

        interface NotebookSerializer

        interface NotebookSerializer {}
        • The notebook serializer enables the editor to open notebook files.

          At its core the editor only knows a but not how that data structure is written to a file, nor how it is read from a file. The notebook serializer bridges this gap by deserializing bytes into notebook data and vice versa.

        method deserializeNotebook

        deserializeNotebook: (
        content: Uint8Array,
        token: CancellationToken
        ) => NotebookData | Thenable<NotebookData>;
        • Deserialize contents of a notebook file into the notebook data structure.

          Parameter content

          Contents of a notebook file.

          Parameter token

          A cancellation token.

          Returns

          Notebook data or a thenable that resolves to such.

        method serializeNotebook

        serializeNotebook: (
        data: NotebookData,
        token: CancellationToken
        ) => Uint8Array | Thenable<Uint8Array>;
        • Serialize notebook data into file contents.

          Parameter data

          A notebook data structure.

          Parameter token

          A cancellation token.

          Returns

          An array of bytes or a thenable that resolves to such.

        interface OnEnterRule

        interface OnEnterRule {}
        • Describes a rule to be evaluated when pressing Enter.

        property action

        action: EnterAction;
        • The action to execute.

        property afterText

        afterText?: RegExp;
        • This rule will only execute if the text after the cursor matches this regular expression.

        property beforeText

        beforeText: RegExp;
        • This rule will only execute if the text before the cursor matches this regular expression.

        property previousLineText

        previousLineText?: RegExp;
        • This rule will only execute if the text above the current line matches this regular expression.

        interface OnTypeFormattingEditProvider

        interface OnTypeFormattingEditProvider {}
        • The document formatting provider interface defines the contract between extensions and the formatting-feature.

        method provideOnTypeFormattingEdits

        provideOnTypeFormattingEdits: (
        document: TextDocument,
        position: Position,
        ch: string,
        options: FormattingOptions,
        token: CancellationToken
        ) => ProviderResult<TextEdit[]>;
        • Provide formatting edits after a character has been typed.

          The given position and character should hint to the provider what range the position to expand to, like find the matching { when } has been entered.

          Parameter document

          The document in which the command was invoked.

          Parameter position

          The position at which the command was invoked.

          Parameter ch

          The character that has been typed.

          Parameter options

          Options controlling formatting.

          Parameter token

          A cancellation token.

          Returns

          A set of text edits or a thenable that resolves to such. The lack of a result can be signaled by returning undefined, null, or an empty array.

        interface OpenDialogOptions

        interface OpenDialogOptions {}
        • Options to configure the behaviour of a file open dialog.

          * Note 1: On Windows and Linux, a file dialog cannot be both a file selector and a folder selector, so if you set both canSelectFiles and canSelectFolders to true on these platforms, a folder selector will be shown. * Note 2: Explicitly setting canSelectFiles and canSelectFolders to false is futile and the editor then silently adjusts the options to select files.

        property canSelectFiles

        canSelectFiles?: boolean;
        • Allow to select files, defaults to true.

        property canSelectFolders

        canSelectFolders?: boolean;
        • Allow to select folders, defaults to false.

        property canSelectMany

        canSelectMany?: boolean;
        • Allow to select many files or folders.

        property defaultUri

        defaultUri?: Uri;
        • The resource the dialog shows when opened.

        property filters

        filters?: { [name: string]: string[] };
        • A set of file filters that are used by the dialog. Each entry is a human-readable label, like "TypeScript", and an array of extensions, for example:

          {
          'Images': ['png', 'jpg'],
          'TypeScript': ['ts', 'tsx']
          }

        property openLabel

        openLabel?: string;
        • A human-readable string for the open button.

        property title

        title?: string;
        • Dialog title.

          This parameter might be ignored, as not all operating systems display a title on open dialogs (for example, macOS).

        interface OutputChannel

        interface OutputChannel {}
        • An output channel is a container for readonly textual information.

          To get an instance of an OutputChannel use .

        property name

        readonly name: string;
        • The human-readable name of this output channel.

        method append

        append: (value: string) => void;
        • Append the given value to the channel.

          Parameter value

          A string, falsy values will not be printed.

        method appendLine

        appendLine: (value: string) => void;
        • Append the given value and a line feed character to the channel.

          Parameter value

          A string, falsy values will be printed.

        method clear

        clear: () => void;
        • Removes all output from the channel.

        method dispose

        dispose: () => void;
        • Dispose and free associated resources.

        method hide

        hide: () => void;
        • Hide this channel from the UI.

        method replace

        replace: (value: string) => void;
        • Replaces all output from the channel with the given value.

          Parameter value

          A string, falsy values will not be printed.

        method show

        show: {
        (preserveFocus?: boolean): void;
        (column?: ViewColumn, preserveFocus?: boolean): void;
        };
        • Reveal this channel in the UI.

          Parameter preserveFocus

          When true the channel will not take focus.

        • Reveal this channel in the UI.

          Parameter column

          This argument is **deprecated** and will be ignored.

          Parameter preserveFocus

          When true the channel will not take focus.

          Deprecated

          Use the overload with just one parameter (show(preserveFocus?: boolean): void).

        interface PreparedToolInvocation

        interface PreparedToolInvocation {}

        property confirmationMessages

        confirmationMessages?: LanguageModelToolConfirmationMessages;
        • The presence of this property indicates that the user should be asked to confirm before running the tool. The user should be asked for confirmation for any tool that has a side-effect or may potentially be dangerous.

        property invocationMessage

        invocationMessage?: string | MarkdownString;
        • A customized progress message to show while the tool runs.

        interface ProcessExecutionOptions

        interface ProcessExecutionOptions {}
        • Options for a process execution

        property cwd

        cwd?: string;
        • The current working directory of the executed program or shell. If omitted the tools current workspace root is used.

        property env

        env?: { [key: string]: string };
        • The additional environment of the executed program or shell. If omitted the parent process' environment is used. If provided it is merged with the parent process' environment.

        interface Progress

        interface Progress<T> {}
        • Defines a generalized way of reporting progress updates.

        method report

        report: (value: T) => void;
        • Report a progress update.

          Parameter value

          A progress item, like a message and/or an report on how much work finished

        interface ProgressOptions

        interface ProgressOptions {}
        • Value-object describing where and how progress should show.

        property cancellable

        cancellable?: boolean;
        • Controls if a cancel button should show to allow the user to cancel the long running operation. Note that currently only ProgressLocation.Notification is supporting to show a cancel button.

        property location

        location:
        | ProgressLocation
        | {
        /**
        * The identifier of a view for which progress should be shown.
        */
        viewId: string;
        };
        • The location at which progress should show.

        property title

        title?: string;
        • A human-readable string which will be used to describe the operation.

        interface Pseudoterminal

        interface Pseudoterminal {}
        • Defines the interface of a terminal pty, enabling extensions to control a terminal.

        property onDidChangeName

        onDidChangeName?: Event<string>;
        • An event that when fired allows changing the name of the terminal.

          Events fired before Pseudoterminal.open is called will be be ignored.

          **Example:** Change the terminal name to "My new terminal".

          const writeEmitter = new vscode.EventEmitter<string>();
          const changeNameEmitter = new vscode.EventEmitter<string>();
          const pty: vscode.Pseudoterminal = {
          onDidWrite: writeEmitter.event,
          onDidChangeName: changeNameEmitter.event,
          open: () => changeNameEmitter.fire('My new terminal'),
          close: () => {}
          };
          vscode.window.createTerminal({ name: 'My terminal', pty });

        property onDidClose

        onDidClose?: Event<void | number>;
        • An event that when fired will signal that the pty is closed and dispose of the terminal.

          Events fired before Pseudoterminal.open is called will be be ignored.

          A number can be used to provide an exit code for the terminal. Exit codes must be positive and a non-zero exit codes signals failure which shows a notification for a regular terminal and allows dependent tasks to proceed when used with the CustomExecution API.

          **Example:** Exit the terminal when "y" is pressed, otherwise show a notification.

          const writeEmitter = new vscode.EventEmitter<string>();
          const closeEmitter = new vscode.EventEmitter<void>();
          const pty: vscode.Pseudoterminal = {
          onDidWrite: writeEmitter.event,
          onDidClose: closeEmitter.event,
          open: () => writeEmitter.fire('Press y to exit successfully'),
          close: () => {},
          handleInput: data => {
          if (data !== 'y') {
          vscode.window.showInformationMessage('Something went wrong');
          }
          closeEmitter.fire();
          }
          };
          const terminal = vscode.window.createTerminal({ name: 'Exit example', pty });
          terminal.show(true);

        property onDidOverrideDimensions

        onDidOverrideDimensions?: Event<TerminalDimensions | undefined>;
        • An event that when fired allows overriding the of the terminal. Note that when set, the overridden dimensions will only take effect when they are lower than the actual dimensions of the terminal (ie. there will never be a scroll bar). Set to undefined for the terminal to go back to the regular dimensions (fit to the size of the panel).

          Events fired before Pseudoterminal.open is called will be be ignored.

          **Example:** Override the dimensions of a terminal to 20 columns and 10 rows

          const dimensionsEmitter = new vscode.EventEmitter<vscode.TerminalDimensions>();
          const pty: vscode.Pseudoterminal = {
          onDidWrite: writeEmitter.event,
          onDidOverrideDimensions: dimensionsEmitter.event,
          open: () => {
          dimensionsEmitter.fire({
          columns: 20,
          rows: 10
          });
          },
          close: () => {}
          };
          vscode.window.createTerminal({ name: 'My terminal', pty });

        property onDidWrite

        onDidWrite: Event<string>;
        • An event that when fired will write data to the terminal. Unlike Terminal.sendText which sends text to the underlying child pseudo-device (the child), this will write the text to parent pseudo-device (the _terminal_ itself).

          Note writing \n will just move the cursor down 1 row, you need to write \r as well to move the cursor to the left-most cell.

          Events fired before Pseudoterminal.open is called will be be ignored.

          **Example:** Write red text to the terminal

          const writeEmitter = new vscode.EventEmitter<string>();
          const pty: vscode.Pseudoterminal = {
          onDidWrite: writeEmitter.event,
          open: () => writeEmitter.fire('\x1b[31mHello world\x1b[0m'),
          close: () => {}
          };
          vscode.window.createTerminal({ name: 'My terminal', pty });

          **Example:** Move the cursor to the 10th row and 20th column and write an asterisk

          writeEmitter.fire('\x1b[10;20H*');

        method close

        close: () => void;
        • Implement to handle when the terminal is closed by an act of the user.

        method handleInput

        handleInput: (data: string) => void;
        • Implement to handle incoming keystrokes in the terminal or when an extension calls Terminal.sendText. data contains the keystrokes/text serialized into their corresponding VT sequence representation.

          Parameter data

          The incoming data.

          **Example:** Echo input in the terminal. The sequence for enter (\r) is translated to CRLF to go to a new line and move the cursor to the start of the line.

          const writeEmitter = new vscode.EventEmitter<string>();
          const pty: vscode.Pseudoterminal = {
          onDidWrite: writeEmitter.event,
          open: () => {},
          close: () => {},
          handleInput: data => writeEmitter.fire(data === '\r' ? '\r\n' : data)
          };
          vscode.window.createTerminal({ name: 'Local echo', pty });

        method open

        open: (initialDimensions: TerminalDimensions | undefined) => void;
        • Implement to handle when the pty is open and ready to start firing events.

          Parameter initialDimensions

          The dimensions of the terminal, this will be undefined if the terminal panel has not been opened before this is called.

        method setDimensions

        setDimensions: (dimensions: TerminalDimensions) => void;
        • Implement to handle when the number of rows and columns that fit into the terminal panel changes, for example when font size changes or when the panel is resized. The initial state of a terminal's dimensions should be treated as undefined until this is triggered as the size of a terminal isn't known until it shows up in the user interface.

          When dimensions are overridden by , setDimensions will continue to be called with the regular panel dimensions, allowing the extension continue to react dimension changes.

          Parameter dimensions

          The new dimensions.

        interface QuickDiffProvider

        interface QuickDiffProvider {}
        • A quick diff provider provides a to the original state of a modified resource. The editor will use this information to render ad'hoc diffs within the text.

        method provideOriginalResource

        provideOriginalResource: (
        uri: Uri,
        token: CancellationToken
        ) => ProviderResult<Uri>;
        • Provide a Uri to the original resource of any given resource uri.

          Parameter uri

          The uri of the resource open in a text editor.

          Parameter token

          A cancellation token.

          Returns

          A thenable that resolves to uri of the matching original resource.

        interface QuickInput

        interface QuickInput {}
        • A light-weight user input UI that is initially not visible. After configuring it through its properties the extension can make it visible by calling QuickInput.show.

          There are several reasons why this UI might have to be hidden and the extension will be notified through QuickInput.onDidHide. (Examples include: an explicit call to QuickInput.hide, the user pressing Esc, some other input UI opening, etc.)

          A user pressing Enter or some other gesture implying acceptance of the current state does not automatically hide this UI component. It is up to the extension to decide whether to accept the user's input and if the UI should indeed be hidden through a call to QuickInput.hide.

          When the extension no longer needs this input UI, it should QuickInput.dispose it to allow for freeing up any resources associated with it.

          See QuickPick and InputBox for concrete UIs.

        property busy

        busy: boolean;
        • If the UI should show a progress indicator. Defaults to false.

          Change this to true, e.g., while loading more data or validating user input.

        property enabled

        enabled: boolean;
        • If the UI should allow for user input. Defaults to true.

          Change this to false, e.g., while validating user input or loading data for the next step in user input.

        property ignoreFocusOut

        ignoreFocusOut: boolean;
        • If the UI should stay open even when loosing UI focus. Defaults to false. This setting is ignored on iPad and is always false.

        property onDidHide

        onDidHide: Event<void>;
        • An event signaling when this input UI is hidden.

          There are several reasons why this UI might have to be hidden and the extension will be notified through QuickInput.onDidHide. (Examples include: an explicit call to QuickInput.hide, the user pressing Esc, some other input UI opening, etc.)

        property step

        step: number | undefined;
        • An optional current step count.

        property title

        title: string | undefined;
        • An optional title.

        property totalSteps

        totalSteps: number | undefined;
        • An optional total step count.

        method dispose

        dispose: () => void;
        • Dispose of this input UI and any associated resources. If it is still visible, it is first hidden. After this call the input UI is no longer functional and no additional methods or properties on it should be accessed. Instead a new input UI should be created.

        method hide

        hide: () => void;

        method show

        show: () => void;
        • Makes the input UI visible in its current configuration. Any other input UI will first fire an QuickInput.onDidHide event.

        interface QuickInputButton

        interface QuickInputButton {}

        property iconPath

        readonly iconPath: IconPath;
        • Icon for the button.

        property tooltip

        readonly tooltip?: string | undefined;
        • An optional tooltip.

        interface QuickPick

        interface QuickPick<T extends QuickPickItem> extends QuickInput {}
        • A concrete QuickInput to let the user pick an item from a list of items of type T. The items can be filtered through a filter text field and there is an option to allow for selecting multiple items.

          Note that in many cases the more convenient window.showQuickPick is easier to use. window.createQuickPick should be used when window.showQuickPick does not offer the required flexibility.

        property activeItems

        activeItems: readonly T[];
        • Active items. This can be read and updated by the extension.

        property buttons

        buttons: readonly QuickInputButton[];
        • Buttons for actions in the UI.

        property canSelectMany

        canSelectMany: boolean;
        • If multiple items can be selected at the same time. Defaults to false.

        property items

        items: readonly T[];
        • Items to pick from. This can be read and updated by the extension.

        property keepScrollPosition

        keepScrollPosition?: boolean;
        • An optional flag to maintain the scroll position of the quick pick when the quick pick items are updated. Defaults to false.

        property matchOnDescription

        matchOnDescription: boolean;
        • If the filter text should also be matched against the description of the items. Defaults to false.

        property matchOnDetail

        matchOnDetail: boolean;
        • If the filter text should also be matched against the detail of the items. Defaults to false.

        property onDidAccept

        readonly onDidAccept: Event<void>;
        • An event signaling when the user indicated acceptance of the selected item(s).

        property onDidChangeActive

        readonly onDidChangeActive: Event<readonly T[]>;
        • An event signaling when the active items have changed.

        property onDidChangeSelection

        readonly onDidChangeSelection: Event<readonly T[]>;
        • An event signaling when the selected items have changed.

        property onDidChangeValue

        readonly onDidChangeValue: Event<string>;
        • An event signaling when the value of the filter text has changed.

        property onDidTriggerButton

        readonly onDidTriggerButton: Event<QuickInputButton>;
        • An event signaling when a top level button (buttons stored in buttons) was triggered. This event does not fire for buttons on a QuickPickItem.

        property onDidTriggerItemButton

        readonly onDidTriggerItemButton: Event<QuickPickItemButtonEvent<T>>;
        • An event signaling when a button in a particular QuickPickItem was triggered. This event does not fire for buttons in the title bar.

        property placeholder

        placeholder: string | undefined;
        • Optional placeholder shown in the filter textbox when no filter has been entered.

        property selectedItems

        selectedItems: readonly T[];
        • Selected items. This can be read and updated by the extension.

        property value

        value: string;
        • Current value of the filter text.

        interface QuickPickItem

        interface QuickPickItem {}
        • Represents an item that can be selected from a list of items.

        property alwaysShow

        alwaysShow?: boolean;

        property buttons

        buttons?: readonly QuickInputButton[];
        • Optional buttons that will be rendered on this particular item. These buttons will trigger an QuickPickItemButtonEvent when clicked. Buttons are only rendered when using a quickpick created by the API. Buttons are not rendered when using the API.

          Note: this property is ignored when is set to QuickPickItemKind.Separator

        property description

        description?: string;
        • A human-readable string which is rendered less prominent in the same line. Supports rendering of via the $(<name>)-syntax.

          Note: this property is ignored when is set to QuickPickItemKind.Separator

        property detail

        detail?: string;
        • A human-readable string which is rendered less prominent in a separate line. Supports rendering of via the $(<name>)-syntax.

          Note: this property is ignored when is set to QuickPickItemKind.Separator

        property iconPath

        iconPath?: IconPath;
        • The icon path or ThemeIcon for the QuickPickItem.

        property kind

        kind?: QuickPickItemKind;
        • The kind of QuickPickItem that will determine how this item is rendered in the quick pick. When not specified, the default is QuickPickItemKind.Default.

        property label

        label: string;
        • A human-readable string which is rendered prominent. Supports rendering of via the $(<name>)-syntax.

          Note: When is set to QuickPickItemKind.Default (so a regular item instead of a separator), it supports rendering of via the $(<name>)-syntax.

        property picked

        picked?: boolean;
        • Optional flag indicating if this item is picked initially. This is only honored when using the API. To do the same thing with the API, simply set the QuickPick.selectedItems to the items you want picked initially. (*Note:* This is only honored when the picker allows multiple selections.)

          See Also

        interface QuickPickItemButtonEvent

        interface QuickPickItemButtonEvent<T extends QuickPickItem> {}
        • An event signaling when a button in a particular QuickPickItem was triggered. This event does not fire for buttons in the title bar.

        property button

        readonly button: QuickInputButton;
        • The button that was clicked.

        property item

        readonly item: T;
        • The item that the button belongs to.

        interface QuickPickOptions

        interface QuickPickOptions {}
        • Options to configure the behavior of the quick pick UI.

        property canPickMany

        canPickMany?: boolean;
        • An optional flag to make the picker accept multiple selections, if true the result is an array of picks.

        property ignoreFocusOut

        ignoreFocusOut?: boolean;
        • Set to true to keep the picker open when focus moves to another part of the editor or to another window. This setting is ignored on iPad and is always false.

        property matchOnDescription

        matchOnDescription?: boolean;
        • An optional flag to include the description when filtering the picks.

        property matchOnDetail

        matchOnDetail?: boolean;
        • An optional flag to include the detail when filtering the picks.

        property placeHolder

        placeHolder?: string;
        • An optional string to show as placeholder in the input box to guide the user what to pick on.

        property title

        title?: string;
        • An optional string that represents the title of the quick pick.

        method onDidSelectItem

        onDidSelectItem: (item: QuickPickItem | string) => any;
        • An optional function that is invoked whenever an item is selected.

        interface ReferenceContext

        interface ReferenceContext {}
        • Value-object that contains additional information when requesting references.

        property includeDeclaration

        readonly includeDeclaration: boolean;
        • Include the declaration of the current symbol.

        interface ReferenceProvider

        interface ReferenceProvider {}
        • The reference provider interface defines the contract between extensions and the [find references](https://code.visualstudio.com/docs/editor/editingevolved#_peek)-feature.

        method provideReferences

        provideReferences: (
        document: TextDocument,
        position: Position,
        context: ReferenceContext,
        token: CancellationToken
        ) => ProviderResult<Location[]>;
        • Provide a set of project-wide references for the given position and document.

          Parameter document

          The document in which the command was invoked.

          Parameter position

          The position at which the command was invoked.

          Parameter context

          Additional information about the references request.

          Parameter token

          A cancellation token.

          Returns

          An array of locations or a thenable that resolves to such. The lack of a result can be signaled by returning undefined, null, or an empty array.

        interface RenameProvider

        interface RenameProvider {}
        • The rename provider interface defines the contract between extensions and the [rename](https://code.visualstudio.com/docs/editor/editingevolved#_rename-symbol)-feature.

        method prepareRename

        prepareRename: (
        document: TextDocument,
        position: Position,
        token: CancellationToken
        ) => ProviderResult<Range | { range: Range; placeholder: string }>;
        • Optional function for resolving and validating a position *before* running rename. The result can be a range or a range and a placeholder text. The placeholder text should be the identifier of the symbol which is being renamed - when omitted the text in the returned range is used.

          *Note:* This function should throw an error or return a rejected thenable when the provided location doesn't allow for a rename.

          Parameter document

          The document in which rename will be invoked.

          Parameter position

          The position at which rename will be invoked.

          Parameter token

          A cancellation token.

          Returns

          The range or range and placeholder text of the identifier that is to be renamed. The lack of a result can signaled by returning undefined or null.

        method provideRenameEdits

        provideRenameEdits: (
        document: TextDocument,
        position: Position,
        newName: string,
        token: CancellationToken
        ) => ProviderResult<WorkspaceEdit>;
        • Provide an edit that describes changes that have to be made to one or many resources to rename a symbol to a different name.

          Parameter document

          The document in which the command was invoked.

          Parameter position

          The position at which the command was invoked.

          Parameter newName

          The new name of the symbol. If the given name is not valid, the provider must return a rejected promise.

          Parameter token

          A cancellation token.

          Returns

          A workspace edit or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

        interface RunOptions

        interface RunOptions {}
        • Run options for a task.

        property reevaluateOnRerun

        reevaluateOnRerun?: boolean;
        • Controls whether task variables are re-evaluated on rerun.

        interface SaveDialogOptions

        interface SaveDialogOptions {}
        • Options to configure the behaviour of a file save dialog.

        property defaultUri

        defaultUri?: Uri;
        • The resource the dialog shows when opened.

        property filters

        filters?: { [name: string]: string[] };
        • A set of file filters that are used by the dialog. Each entry is a human-readable label, like "TypeScript", and an array of extensions, for example:

          {
          'Images': ['png', 'jpg'],
          'TypeScript': ['ts', 'tsx']
          }

        property saveLabel

        saveLabel?: string;
        • A human-readable string for the save button.

        property title

        title?: string;
        • Dialog title.

          This parameter might be ignored, as not all operating systems display a title on save dialogs (for example, macOS).

        interface SecretStorage

        interface SecretStorage {}
        • Represents a storage utility for secrets (or any information that is sensitive) that will be stored encrypted. The implementation of the secret storage will be different on each platform and the secrets will not be synced across machines.

        property onDidChange

        onDidChange: Event<SecretStorageChangeEvent>;
        • Fires when a secret is stored or deleted.

        method delete

        delete: (key: string) => Thenable<void>;
        • Remove a secret from storage.

          Parameter key

          The key the secret was stored under.

        method get

        get: (key: string) => Thenable<string | undefined>;
        • Retrieve a secret that was stored with key. Returns undefined if there is no password matching that key.

          Parameter key

          The key the secret was stored under.

          Returns

          The stored value or undefined.

        method store

        store: (key: string, value: string) => Thenable<void>;
        • Store a secret under a given key.

          Parameter key

          The key to store the secret under.

          Parameter value

          The secret.

        interface SecretStorageChangeEvent

        interface SecretStorageChangeEvent {}
        • The event data that is fired when a secret is added or removed.

        property key

        readonly key: string;
        • The key of the secret that has changed.

        interface SelectedCompletionInfo

        interface SelectedCompletionInfo {}
        • Describes the currently selected completion item.

        property range

        readonly range: Range;
        • The range that will be replaced if this completion item is accepted.

        property text

        readonly text: string;
        • The text the range will be replaced with if this completion is accepted.

        interface SelectionRangeProvider

        interface SelectionRangeProvider {}
        • The selection range provider interface defines the contract between extensions and the "Expand and Shrink Selection" feature.

        method provideSelectionRanges

        provideSelectionRanges: (
        document: TextDocument,
        positions: readonly Position[],
        token: CancellationToken
        ) => ProviderResult<SelectionRange[]>;
        • Provide selection ranges for the given positions.

          Selection ranges should be computed individually and independent for each position. The editor will merge and deduplicate ranges but providers must return hierarchies of selection ranges so that a range is by its parent.

          Parameter document

          The document in which the command was invoked.

          Parameter positions

          The positions at which the command was invoked.

          Parameter token

          A cancellation token.

          Returns

          Selection ranges or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

        interface ShellExecutionOptions

        interface ShellExecutionOptions {}
        • Options for a shell execution

        property cwd

        cwd?: string;
        • The current working directory of the executed shell. If omitted the tools current workspace root is used.

        property env

        env?: { [key: string]: string };
        • The additional environment of the executed shell. If omitted the parent process' environment is used. If provided it is merged with the parent process' environment.

        property executable

        executable?: string;
        • The shell executable.

        property shellArgs

        shellArgs?: string[];
        • The arguments to be passed to the shell executable used to run the task. Most shells require special arguments to execute a command. For example bash requires the -c argument to execute a command, PowerShell requires -Command and cmd requires both /d and /c.

        property shellQuoting

        shellQuoting?: ShellQuotingOptions;
        • The shell quotes supported by this shell.

        interface ShellQuotedString

        interface ShellQuotedString {}
        • A string that will be quoted depending on the used shell.

        property quoting

        quoting: ShellQuoting;
        • The quoting style to use.

        property value

        value: string;
        • The actual string value.

        interface ShellQuotingOptions

        interface ShellQuotingOptions {}
        • The shell quoting options.

        property escape

        escape?:
        | string
        | {
        /**
        * The escape character.
        */
        escapeChar: string;
        /**
        * The characters to escape.
        */
        charsToEscape: string;
        };
        • The character used to do character escaping. If a string is provided only spaces are escaped. If a { escapeChar, charsToEscape } literal is provide all characters in charsToEscape are escaped using the escapeChar.

        property strong

        strong?: string;
        • The character used for strong quoting. The string's length must be 1.

        property weak

        weak?: string;
        • The character used for weak quoting. The string's length must be 1.

        interface SignatureHelpContext

        interface SignatureHelpContext {}
        • Additional information about the context in which a was triggered.

        property activeSignatureHelp

        readonly activeSignatureHelp: SignatureHelp | undefined;
        • The currently active .

          The activeSignatureHelp has its field updated based on the user arrowing through available signatures.

        property isRetrigger

        readonly isRetrigger: boolean;
        • true if signature help was already showing when it was triggered.

          Retriggers occur 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.

        property triggerCharacter

        readonly triggerCharacter: string | undefined;
        • Character that caused signature help to be triggered.

          This is undefined when signature help is not triggered by typing, such as when manually invoking signature help or when moving the cursor.

        property triggerKind

        readonly triggerKind: SignatureHelpTriggerKind;
        • Action that caused signature help to be triggered.

        interface SignatureHelpProvider

        interface SignatureHelpProvider {}
        • The signature help provider interface defines the contract between extensions and the [parameter hints](https://code.visualstudio.com/docs/editor/intellisense)-feature.

        method provideSignatureHelp

        provideSignatureHelp: (
        document: TextDocument,
        position: Position,
        token: CancellationToken,
        context: SignatureHelpContext
        ) => ProviderResult<SignatureHelp>;
        • Provide help for the signature at the given position and document.

          Parameter document

          The document in which the command was invoked.

          Parameter position

          The position at which the command was invoked.

          Parameter token

          A cancellation token.

          Parameter context

          Information about how signature help was triggered.

          Returns

          Signature help or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

        interface SignatureHelpProviderMetadata

        interface SignatureHelpProviderMetadata {}
        • Metadata about a registered .

        property retriggerCharacters

        readonly retriggerCharacters: readonly string[];
        • 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.

        property triggerCharacters

        readonly triggerCharacters: readonly string[];
        • List of characters that trigger signature help.

        interface SourceControl

        interface SourceControl {}
        • An source control is able to provide to the editor and interact with the editor in several source control related ways.

        property acceptInputCommand

        acceptInputCommand?: Command;
        • Optional accept input command.

          This command will be invoked when the user accepts the value in the Source Control input.

        property commitTemplate

        commitTemplate?: string;
        • Optional commit template string.

          The Source Control viewlet will populate the Source Control input with this value when appropriate.

        property count

        count?: number;
        • The UI-visible count of of this source control.

          If undefined, this source control will - display its UI-visible count as zero, and - contribute the count of its to the UI-visible aggregated count for all source controls

        property id

        readonly id: string;
        • The id of this source control.

        property inputBox

        readonly inputBox: SourceControlInputBox;
        • The for this source control.

        property label

        readonly label: string;
        • The human-readable label of this source control.

        property quickDiffProvider

        quickDiffProvider?: QuickDiffProvider;
        • An optional .

        property rootUri

        readonly rootUri: Uri | undefined;
        • The (optional) Uri of the root of this source control.

        property statusBarCommands

        statusBarCommands?: Command[];
        • Optional status bar commands.

          These commands will be displayed in the editor's status bar.

        method createResourceGroup

        createResourceGroup: (id: string, label: string) => SourceControlResourceGroup;
        • Create a new .

        method dispose

        dispose: () => void;
        • Dispose this source control.

        interface SourceControlInputBox

        interface SourceControlInputBox {}
        • Represents the input box in the Source Control viewlet.

        property enabled

        enabled: boolean;
        • Controls whether the input box is enabled (default is true).

        property placeholder

        placeholder: string;
        • A string to show as placeholder in the input box to guide the user.

        property value

        value: string;
        • Setter and getter for the contents of the input box.

        property visible

        visible: boolean;
        • Controls whether the input box is visible (default is true).

        interface SourceControlResourceDecorations

        interface SourceControlResourceDecorations
        extends SourceControlResourceThemableDecorations {}
        • The decorations for a . Can be independently specified for light and dark themes.

        property dark

        readonly dark?: SourceControlResourceThemableDecorations;
        • The dark theme decorations.

        property faded

        readonly faded?: boolean;
        • Whether the should be faded in the UI.

        property light

        readonly light?: SourceControlResourceThemableDecorations;
        • The light theme decorations.

        property strikeThrough

        readonly strikeThrough?: boolean;
        • Whether the should be striked-through in the UI.

        property tooltip

        readonly tooltip?: string;
        • The title for a specific .

        interface SourceControlResourceGroup

        interface SourceControlResourceGroup {}
        • A source control resource group is a collection of .

        property contextValue

        contextValue?: string;
        • Context value of the resource group. This can be used to contribute resource group specific actions. For example, if a resource group is given a context value of exportable, when contributing actions to scm/resourceGroup/context using menus extension point, you can specify context value for key scmResourceGroupState in when expressions, like scmResourceGroupState == exportable.

          "contributes": {
          "menus": {
          "scm/resourceGroup/context": [
          {
          "command": "extension.export",
          "when": "scmResourceGroupState == exportable"
          }
          ]
          }
          }

          This will show action extension.export only for resource groups with contextValue equal to exportable.

        property hideWhenEmpty

        hideWhenEmpty?: boolean;
        • Whether this source control resource group is hidden when it contains no .

        property id

        readonly id: string;
        • The id of this source control resource group.

        property label

        label: string;
        • The label of this source control resource group.

        property resourceStates

        resourceStates: SourceControlResourceState[];
        • This group's collection of .

        method dispose

        dispose: () => void;
        • Dispose this source control resource group.

        interface SourceControlResourceState

        interface SourceControlResourceState {}
        • An source control resource state represents the state of an underlying workspace resource within a certain .

        property command

        readonly command?: Command;
        • The Command which should be run when the resource state is open in the Source Control viewlet.

        property contextValue

        readonly contextValue?: string;
        • Context value of the resource state. This can be used to contribute resource specific actions. For example, if a resource is given a context value as diffable. When contributing actions to scm/resourceState/context using menus extension point, you can specify context value for key scmResourceState in when expressions, like scmResourceState == diffable.

          "contributes": {
          "menus": {
          "scm/resourceState/context": [
          {
          "command": "extension.diff",
          "when": "scmResourceState == diffable"
          }
          ]
          }
          }

          This will show action extension.diff only for resources with contextValue is diffable.

        property decorations

        readonly decorations?: SourceControlResourceDecorations;
        • The for this source control resource state.

        property resourceUri

        readonly resourceUri: Uri;
        • The Uri of the underlying resource inside the workspace.

        interface SourceControlResourceThemableDecorations

        interface SourceControlResourceThemableDecorations {}
        • The theme-aware decorations for a .

        property iconPath

        readonly iconPath?: string | Uri | ThemeIcon;
        • The icon path for a specific .

        interface StatusBarItem

        interface StatusBarItem {}
        • A status bar item is a status bar contribution that can show text and icons and run a command on click.

        property accessibilityInformation

        accessibilityInformation: AccessibilityInformation | undefined;
        • Accessibility information used when a screen reader interacts with this StatusBar item

        property alignment

        readonly alignment: StatusBarAlignment;
        • The alignment of this item.

        property backgroundColor

        backgroundColor: ThemeColor | undefined;
        • The background color for this entry.

          *Note*: only the following colors are supported: * new ThemeColor('statusBarItem.errorBackground') * new ThemeColor('statusBarItem.warningBackground')

          More background colors may be supported in the future.

          *Note*: when a background color is set, the statusbar may override the color choice to ensure the entry is readable in all themes.

        property color

        color: string | ThemeColor | undefined;
        • The foreground color for this entry.

        property command

        command: string | Command | undefined;
        • or identifier of a command to run on click.

          The command must be .

          Note that if this is a object, only the and are used by the editor.

        property id

        readonly id: string;
        • The identifier of this item.

          *Note*: if no identifier was provided by the method, the identifier will match the .

        property name

        name: string | undefined;
        • The name of the entry, like 'Python Language Indicator', 'Git Status' etc. Try to keep the length of the name short, yet descriptive enough that users can understand what the status bar item is about.

        property priority

        readonly priority: number | undefined;
        • The priority of this item. Higher value means the item should be shown more to the left.

        property text

        text: string;
        • The text to show for the entry. You can embed icons in the text by leveraging the syntax:

          My text $(icon-name) contains icons like $(icon-name) this one.

          Where the icon-name is taken from the ThemeIcon [icon set](https://code.visualstudio.com/api/references/icons-in-labels#icon-listing), e.g. light-bulb, thumbsup, zap etc.

        property tooltip

        tooltip: string | MarkdownString | undefined;
        • The tooltip text when you hover over this entry.

        method dispose

        dispose: () => void;
        • Dispose and free associated resources. Call .

        method hide

        hide: () => void;
        • Hide the entry in the status bar.

        method show

        show: () => void;
        • Shows the entry in the status bar.

        interface Tab

        interface Tab {}
        • Represents a tab within a . Tabs are merely the graphical representation within the editor area. A backing editor is not a guarantee.

        property group

        readonly group: TabGroup;
        • The group which the tab belongs to.

        property input

        readonly input:
        | TabInputText
        | TabInputTextDiff
        | TabInputCustom
        | TabInputWebview
        | TabInputNotebook
        | TabInputNotebookDiff
        | TabInputTerminal
        | unknown;
        • Defines the structure of the tab i.e. text, notebook, custom, etc. Resource and other useful properties are defined on the tab kind.

        property isActive

        readonly isActive: boolean;
        • Whether or not the tab is currently active. This is dictated by being the selected tab in the group.

        property isDirty

        readonly isDirty: boolean;
        • Whether or not the dirty indicator is present on the tab.

        property isPinned

        readonly isPinned: boolean;
        • Whether or not the tab is pinned (pin icon is present).

        property isPreview

        readonly isPreview: boolean;
        • Whether or not the tab is in preview mode.

        property label

        readonly label: string;
        • The text displayed on the tab.

        interface TabChangeEvent

        interface TabChangeEvent {}
        • An event describing change to tabs.

        property changed

        readonly changed: readonly Tab[];
        • Tabs that have changed, e.g have changed their state.

        property closed

        readonly closed: readonly Tab[];
        • The tabs that have been closed.

        property opened

        readonly opened: readonly Tab[];
        • The tabs that have been opened.

        interface TabGroup

        interface TabGroup {}
        • Represents a group of tabs. A tab group itself consists of multiple tabs.

        property activeTab

        readonly activeTab: Tab | undefined;
        • The active in the group. This is the tab whose contents are currently being rendered.

          *Note* that there can be one active tab per group but there can only be one .

        property isActive

        readonly isActive: boolean;
        • Whether or not the group is currently active.

          *Note* that only one tab group is active at a time, but that multiple tab groups can have an .

          See Also

        property tabs

        readonly tabs: readonly Tab[];
        • The list of tabs contained within the group. This can be empty if the group has no tabs open.

        property viewColumn

        readonly viewColumn: ViewColumn;
        • The view column of the group.

        interface TabGroupChangeEvent

        interface TabGroupChangeEvent {}
        • An event describing changes to tab groups.

        property changed

        readonly changed: readonly TabGroup[];
        • Tab groups that have changed, e.g have changed their state.

        property closed

        readonly closed: readonly TabGroup[];
        • Tab groups that have been closed.

        property opened

        readonly opened: readonly TabGroup[];
        • Tab groups that have been opened.

        interface TabGroups

        interface TabGroups {}
        • Represents the main editor area which consists of multiple groups which contain tabs.

        property activeTabGroup

        readonly activeTabGroup: TabGroup;
        • The currently active group.

        property all

        readonly all: readonly TabGroup[];
        • All the groups within the group container.

        property onDidChangeTabGroups

        readonly onDidChangeTabGroups: Event<TabGroupChangeEvent>;
        • An which fires when have changed.

        property onDidChangeTabs

        readonly onDidChangeTabs: Event<TabChangeEvent>;
        • An which fires when have changed.

        method close

        close: {
        (tab: Tab | readonly Tab[], preserveFocus?: boolean): Thenable<boolean>;
        (
        tabGroup: TabGroup | readonly TabGroup[],
        preserveFocus?: boolean
        ): Thenable<boolean>;
        };
        • Closes the tab. This makes the tab object invalid and the tab should no longer be used for further actions. Note: In the case of a dirty tab, a confirmation dialog will be shown which may be cancelled. If cancelled the tab is still valid

          Parameter tab

          The tab to close.

          Parameter preserveFocus

          When true focus will remain in its current position. If false it will jump to the next tab.

          Returns

          A promise that resolves to true when all tabs have been closed.

        • Closes the tab group. This makes the tab group object invalid and the tab group should no longer be used for further actions.

          Parameter tabGroup

          The tab group to close.

          Parameter preserveFocus

          When true focus will remain in its current position.

          Returns

          A promise that resolves to true when all tab groups have been closed.

        interface TaskDefinition

        interface TaskDefinition {}
        • A structure that defines a task kind in the system. The value must be JSON-stringifyable.

        property type

        readonly type: string;
        • The task definition describing the task provided by an extension. Usually a task provider defines more properties to identify a task. They need to be defined in the package.json of the extension under the 'taskDefinitions' extension point. The npm task definition for example looks like this

          interface NpmTaskDefinition extends TaskDefinition {
          script: string;
          }

          Note that type identifier starting with a '$' are reserved for internal usages and shouldn't be used by extensions.

        index signature

        [name: string]: any;
        • Additional attributes of a concrete task definition.

        interface TaskEndEvent

        interface TaskEndEvent {}
        • An event signaling the end of an executed task.

          This interface is not intended to be implemented.

        property execution

        readonly execution: TaskExecution;
        • The task item representing the task that finished.

        interface TaskExecution

        interface TaskExecution {}
        • An object representing an executed Task. It can be used to terminate a task.

          This interface is not intended to be implemented.

        property task

        task: Task;
        • The task that got started.

        method terminate

        terminate: () => void;
        • Terminates the task execution.

        interface TaskFilter

        interface TaskFilter {}
        • A task filter denotes tasks by their version and types

        property type

        type?: string;
        • The task type to return;

        property version

        version?: string;
        • The task version as used in the tasks.json file. The string support the package.json semver notation.

        interface TaskPresentationOptions

        interface TaskPresentationOptions {}
        • Controls how the task is presented in the UI.

        property clear

        clear?: boolean;
        • Controls whether the terminal is cleared before executing the task.

        property close

        close?: boolean;
        • Controls whether the terminal is closed after executing the task.

        property echo

        echo?: boolean;
        • Controls whether the command associated with the task is echoed in the user interface.

        property focus

        focus?: boolean;
        • Controls whether the panel showing the task output is taking focus.

        property panel

        panel?: TaskPanelKind;
        • Controls if the task panel is used for this task only (dedicated), shared between tasks (shared) or if a new panel is created on every task execution (new). Defaults to TaskInstanceKind.Shared

        property reveal

        reveal?: TaskRevealKind;
        • Controls whether the task output is reveal in the user interface. Defaults to RevealKind.Always.

        property showReuseMessage

        showReuseMessage?: boolean;
        • Controls whether to show the "Terminal will be reused by tasks, press any key to close it" message.

        interface TaskProcessEndEvent

        interface TaskProcessEndEvent {}
        • An event signaling the end of a process execution triggered through a task

        property execution

        readonly execution: TaskExecution;
        • The task execution for which the process got started.

        property exitCode

        readonly exitCode: number | undefined;
        • The process's exit code. Will be undefined when the task is terminated.

        interface TaskProcessStartEvent

        interface TaskProcessStartEvent {}
        • An event signaling the start of a process execution triggered through a task

        property execution

        readonly execution: TaskExecution;
        • The task execution for which the process got started.

        property processId

        readonly processId: number;
        • The underlying process id.

        interface TaskProvider

        interface TaskProvider<T extends Task = Task> {}

        method provideTasks

        provideTasks: (token: CancellationToken) => ProviderResult<T[]>;
        • Provides tasks.

          Parameter token

          A cancellation token.

          Returns

          an array of tasks

        method resolveTask

        resolveTask: (task: T, token: CancellationToken) => ProviderResult<T>;
        • Resolves a task that has no set. Tasks are often created from information found in the tasks.json-file. Such tasks miss the information on how to execute them and a task provider must fill in the missing information in the resolveTask-method. This method will not be called for tasks returned from the above provideTasks method since those tasks are always fully resolved. A valid default implementation for the resolveTask method is to return undefined.

          Note that when filling in the properties of task, you _must_ be sure to use the exact same TaskDefinition and not create a new one. Other properties may be changed.

          Parameter task

          The task to resolve.

          Parameter token

          A cancellation token.

          Returns

          The resolved task

        interface TaskStartEvent

        interface TaskStartEvent {}
        • An event signaling the start of a task execution.

          This interface is not intended to be implemented.

        property execution

        readonly execution: TaskExecution;
        • The task item representing the task that got started.

        interface TelemetryLogger

        interface TelemetryLogger {}
        • A telemetry logger which can be used by extensions to log usage and error telementry.

          A logger wraps around an but it guarantees that - user settings to disable or tweak telemetry are respected, and that - potential sensitive data is removed

          It also enables an "echo UI" that prints whatever data is send and it allows the editor to forward unhandled errors to the respective extensions.

          To get an instance of a TelemetryLogger, use .

        property isErrorsEnabled

        readonly isErrorsEnabled: boolean;
        • Whether or not error telemetry is enabled for this logger.

        property isUsageEnabled

        readonly isUsageEnabled: boolean;
        • Whether or not usage telemetry is enabled for this logger.

        property onDidChangeEnableStates

        readonly onDidChangeEnableStates: Event<TelemetryLogger>;
        • An Event which fires when the enablement state of usage or error telemetry changes.

        method dispose

        dispose: () => void;
        • Dispose this object and free resources.

        method logError

        logError: {
        (
        eventName: string,
        data?: Record<string, any | TelemetryTrustedValue>
        ): void;
        (error: Error, data?: Record<string, any>): void;
        };
        • Log an error event.

          After completing cleaning, telemetry setting checks, and data mix-in calls TelemetrySender.sendEventData to log the event. Differs from logUsage in that it will log the event if the telemetry setting is Error+. Automatically supports echoing to extension telemetry output channel.

          Parameter eventName

          The event name to log

          Parameter data

          The data to log

        • Log an error event.

          Calls TelemetrySender.sendErrorData. Does cleaning, telemetry checks, and data mix-in. Automatically supports echoing to extension telemetry output channel. Will also automatically log any exceptions thrown within the extension host process.

          Parameter error

          The error object which contains the stack trace cleaned of PII

          Parameter data

          Additional data to log alongside the stack trace

        method logUsage

        logUsage: (
        eventName: string,
        data?: Record<string, any | TelemetryTrustedValue>
        ) => void;
        • Log a usage event.

          After completing cleaning, telemetry setting checks, and data mix-in calls TelemetrySender.sendEventData to log the event. Automatically supports echoing to extension telemetry output channel.

          Parameter eventName

          The event name to log

          Parameter data

          The data to log

        interface TelemetryLoggerOptions

        interface TelemetryLoggerOptions {}

        property additionalCommonProperties

        readonly additionalCommonProperties?: Record<string, any>;
        • Any additional common properties which should be injected into the data object.

        property ignoreBuiltInCommonProperties

        readonly ignoreBuiltInCommonProperties?: boolean;
        • Whether or not you want to avoid having the built-in common properties such as os, extension name, etc injected into the data object. Defaults to false if not defined.

        property ignoreUnhandledErrors

        readonly ignoreUnhandledErrors?: boolean;
        • Whether or not unhandled errors on the extension host caused by your extension should be logged to your sender. Defaults to false if not defined.

        interface TelemetrySender

        interface TelemetrySender {}
        • The telemetry sender is the contract between a telemetry logger and some telemetry service. **Note** that extensions must NOT call the methods of their sender directly as the logger provides extra guards and cleaning.

          const sender: vscode.TelemetrySender = {...};
          const logger = vscode.env.createTelemetryLogger(sender);
          // GOOD - uses the logger
          logger.logUsage('myEvent', { myData: 'myValue' });
          // BAD - uses the sender directly: no data cleansing, ignores user settings, no echoing to the telemetry output channel etc
          sender.logEvent('myEvent', { myData: 'myValue' });

        method flush

        flush: () => void | Thenable<void>;
        • Optional flush function which will give this sender a chance to send any remaining events as its TelemetryLogger is being disposed

        method sendErrorData

        sendErrorData: (error: Error, data?: Record<string, any>) => void;
        • Function to send an error. Used within a TelemetryLogger

          Parameter error

          The error being logged

          Parameter data

          Any additional data to be collected with the exception

        method sendEventData

        sendEventData: (eventName: string, data?: Record<string, any>) => void;
        • Function to send event data without a stacktrace. Used within a TelemetryLogger

          Parameter eventName

          The name of the event which you are logging

          Parameter data

          A serializable key value pair that is being logged

        interface Terminal

        interface Terminal {}
        • An individual terminal instance within the integrated terminal.

        property creationOptions

        readonly creationOptions: Readonly<TerminalOptions | ExtensionTerminalOptions>;
        • The object used to initialize the terminal, this is useful for example to detecting the shell type of when the terminal was not launched by this extension or for detecting what folder the shell was launched in.

        property exitStatus

        readonly exitStatus: TerminalExitStatus | undefined;
        • The exit status of the terminal, this will be undefined while the terminal is active.

          **Example:** Show a notification with the exit code when the terminal exits with a non-zero exit code.

          window.onDidCloseTerminal(t => {
          if (t.exitStatus && t.exitStatus.code) {
          vscode.window.showInformationMessage(`Exit code: ${t.exitStatus.code}`);
          }
          });

        property name

        readonly name: string;
        • The name of the terminal.

        property processId

        readonly processId: Thenable<number | undefined>;
        • The process ID of the shell process.

        property shellIntegration

        readonly shellIntegration: TerminalShellIntegration | undefined;
        • An object that contains [shell integration](https://code.visualstudio.com/docs/terminal/shell-integration)-powered features for the terminal. This will always be undefined immediately after the terminal is created. Listen to window.onDidChangeTerminalShellIntegration to be notified when shell integration is activated for a terminal.

          Note that this object may remain undefined if shell integration never activates. For example Command Prompt does not support shell integration and a user's shell setup could conflict with the automatic shell integration activation.

        property state

        readonly state: TerminalState;

        method dispose

        dispose: () => void;
        • Dispose and free associated resources.

        method hide

        hide: () => void;
        • Hide the terminal panel if this terminal is currently showing.

        method sendText

        sendText: (text: string, shouldExecute?: boolean) => void;
        • Send text to the terminal. The text is written to the stdin of the underlying pty process (shell) of the terminal.

          Parameter text

          The text to send.

          Parameter shouldExecute

          Indicates that the text being sent should be executed rather than just inserted in the terminal. The character(s) added are \n or \r\n, depending on the platform. This defaults to true.

        method show

        show: (preserveFocus?: boolean) => void;
        • Show the terminal panel and reveal this terminal in the UI.

          Parameter preserveFocus

          When true the terminal will not take focus.

        interface TerminalDimensions

        interface TerminalDimensions {}
        • Represents the dimensions of a terminal.

        property columns

        readonly columns: number;
        • The number of columns in the terminal.

        property rows

        readonly rows: number;
        • The number of rows in the terminal.

        interface TerminalEditorLocationOptions

        interface TerminalEditorLocationOptions {}

        property preserveFocus

        preserveFocus?: boolean;
        • An optional flag that when true will stop the Terminal from taking focus.

        property viewColumn

        viewColumn: ViewColumn;
        • A view column in which the should be shown in the editor area. The default is the . Columns that do not exist will be created as needed up to the maximum of . Use to open the editor to the side of the currently active one.

        interface TerminalExitStatus

        interface TerminalExitStatus {}
        • Represents how a terminal exited.

        property code

        readonly code: number | undefined;
        • The exit code that a terminal exited with, it can have the following values: - Zero: the terminal process or custom execution succeeded. - Non-zero: the terminal process or custom execution failed. - undefined: the user forcibly closed the terminal or a custom execution exited without providing an exit code.

        property reason

        readonly reason: TerminalExitReason;
        • The reason that triggered the exit of a terminal.

        interface TerminalLinkContext

        interface TerminalLinkContext {}
        • Provides information on a line in a terminal in order to provide links for it.

        property line

        line: string;
        • This is the text from the unwrapped line in the terminal.

        property terminal

        terminal: Terminal;
        • The terminal the link belongs to.

        interface TerminalLinkProvider

        interface TerminalLinkProvider<T extends TerminalLink = TerminalLink> {}
        • A provider that enables detection and handling of links within terminals.

        handleTerminalLink: (link: T) => ProviderResult<void>;
        • Handle an activated terminal link.

          Parameter link

          The link to handle.

        provideTerminalLinks: (
        context: TerminalLinkContext,
        token: CancellationToken
        ) => ProviderResult<T[]>;
        • Provide terminal links for the given context. Note that this can be called multiple times even before previous calls resolve, make sure to not share global objects (eg. RegExp) that could have problems when asynchronous usage may overlap.

          Parameter context

          Information about what links are being provided for.

          Parameter token

          A cancellation token.

          Returns

          A list of terminal links for the given line.

        interface TerminalOptions

        interface TerminalOptions {}
        • Value-object describing what options a terminal should use.

        property color

        color?: ThemeColor;
        • The icon ThemeColor for the terminal. The terminal.ansi* theme keys are recommended for the best contrast and consistency across themes.

        property cwd

        cwd?: string | Uri;
        • A path or Uri for the current working directory to be used for the terminal.

        property env

        env?: { [key: string]: string | null | undefined };
        • Object with environment variables that will be added to the editor process.

        property hideFromUser

        hideFromUser?: boolean;
        • When enabled the terminal will run the process as normal but not be surfaced to the user until Terminal.show is called. The typical usage for this is when you need to run something that may need interactivity but only want to tell the user about it when interaction is needed. Note that the terminals will still be exposed to all extensions as normal. The hidden terminals will not be restored when the workspace is next opened.

        property iconPath

        iconPath?: IconPath;

        property isTransient

        isTransient?: boolean;
        • Opt-out of the default terminal persistence on restart and reload. This will only take effect when terminal.integrated.enablePersistentSessions is enabled.

        property location

        location?:
        | TerminalLocation
        | TerminalEditorLocationOptions
        | TerminalSplitLocationOptions;

        property message

        message?: string;
        • A message to write to the terminal on first launch, note that this is not sent to the process but, rather written directly to the terminal. This supports escape sequences such a setting text style.

        property name

        name?: string;
        • A human-readable string which will be used to represent the terminal in the UI.

        property shellArgs

        shellArgs?: string[] | string;
        • Args for the custom shell executable. A string can be used on Windows only which allows specifying shell args in [command-line format](https://msdn.microsoft.com/en-au/08dfcab2-eb6e-49a4-80eb-87d4076c98c6).

        property shellPath

        shellPath?: string;
        • A path to a custom shell executable to be used in the terminal.

        property strictEnv

        strictEnv?: boolean;
        • Whether the terminal process environment should be exactly as provided in TerminalOptions.env. When this is false (default), the environment will be based on the window's environment and also apply configured platform settings like terminal.integrated.env.windows on top. When this is true, the complete environment must be provided as nothing will be inherited from the process or any configuration.

        interface TerminalProfileProvider

        interface TerminalProfileProvider {}
        • Provides a terminal profile for the contributed terminal profile when launched via the UI or command.

        method provideTerminalProfile

        provideTerminalProfile: (
        token: CancellationToken
        ) => ProviderResult<TerminalProfile>;
        • Provide the terminal profile.

          Parameter token

          A cancellation token that indicates the result is no longer needed.

          Returns

          The terminal profile.

        interface TerminalShellExecution

        interface TerminalShellExecution {}
        • A command that was executed in a terminal.

        property commandLine

        readonly commandLine: TerminalShellExecutionCommandLine;
        • The command line that was executed. The of this value depends on the specific shell's shell integration implementation. This value may become more accurate after window.onDidEndTerminalShellExecution is fired.

          Example 1

          // Log the details of the command line on start and end window.onDidStartTerminalShellExecution(event => { const commandLine = event.execution.commandLine; console.log(Command started\n${summarizeCommandLine(commandLine)}); }); window.onDidEndTerminalShellExecution(event => { const commandLine = event.execution.commandLine; console.log(Command ended\n${summarizeCommandLine(commandLine)}); }); function summarizeCommandLine(commandLine: TerminalShellExecutionCommandLine) { return [ Command line: ${command.commandLine.value}, Confidence: ${command.commandLine.confidence}, ` Trusted: ${command.commandLine.isTrusted} ].join('\n'); }

        property cwd

        readonly cwd: Uri | undefined;
        • The working directory that was reported by the shell when this command executed. This Uri may represent a file on another machine (eg. ssh into another machine). This requires the shell integration to support working directory reporting.

        method read

        read: () => AsyncIterable<string>;
        • Creates a stream of raw data (including escape sequences) that is written to the terminal. This will only include data that was written after read was called for the first time, ie. you must call read immediately after the command is executed via TerminalShellIntegration.executeCommand or window.onDidStartTerminalShellExecution to not miss any data.

          Example 1

          // Log all data written to the terminal for a command const command = term.shellIntegration.executeCommand({ commandLine: 'echo "Hello world"' }); const stream = command.read(); for await (const data of stream) { console.log(data); }

        interface TerminalShellExecutionCommandLine

        interface TerminalShellExecutionCommandLine {}
        • A command line that was executed in a terminal.

        property confidence

        readonly confidence: TerminalShellExecutionCommandLineConfidence;
        • The confidence of the command line value which is determined by how the value was obtained. This depends upon the implementation of the shell integration script.

        property isTrusted

        readonly isTrusted: boolean;
        • Whether the command line value came from a trusted source and is therefore safe to execute without user additional confirmation, such as a notification that asks "Do you want to execute (command)?". This verification is likely only needed if you are going to execute the command again.

          This is true only when the command line was reported explicitly by the shell integration script (ie. ) and it used a nonce for verification.

        property value

        readonly value: string;
        • The full command line that was executed, including both the command and its arguments.

        interface TerminalShellExecutionEndEvent

        interface TerminalShellExecutionEndEvent {}
        • An event signalling that an execution has ended in a terminal.

        property execution

        readonly execution: TerminalShellExecution;
        • The terminal shell execution that has ended.

        property exitCode

        readonly exitCode: number | undefined;
        • The exit code reported by the shell.

          When this is undefined it can mean several things:

          - The shell either did not report an exit code (ie. the shell integration script is misbehaving) - The shell reported a command started before the command finished (eg. a sub-shell was opened). - The user canceled the command via ctrl+c. - The user pressed enter when there was no input.

          Generally this should not happen. Depending on the use case, it may be best to treat this as a failure.

          Example 1

          const execution = shellIntegration.executeCommand({ command: 'echo', args: ['Hello world'] }); window.onDidEndTerminalShellExecution(event => { if (event.execution === execution) { if (event.exitCode === undefined) { console.log('Command finished but exit code is unknown'); } else if (event.exitCode === 0) { console.log('Command succeeded'); } else { console.log('Command failed'); } } });

        property shellIntegration

        readonly shellIntegration: TerminalShellIntegration;
        • The shell integration object.

        property terminal

        readonly terminal: Terminal;
        • The terminal that shell integration has been activated in.

        interface TerminalShellExecutionStartEvent

        interface TerminalShellExecutionStartEvent {}
        • An event signalling that an execution has started in a terminal.

        property execution

        readonly execution: TerminalShellExecution;
        • The terminal shell execution that has ended.

        property shellIntegration

        readonly shellIntegration: TerminalShellIntegration;
        • The shell integration object.

        property terminal

        readonly terminal: Terminal;
        • The terminal that shell integration has been activated in.

        interface TerminalShellIntegration

        interface TerminalShellIntegration {}
        • [Shell integration](https://code.visualstudio.com/docs/terminal/shell-integration)-powered capabilities owned by a terminal.

        property cwd

        readonly cwd: Uri | undefined;
        • The current working directory of the terminal. This Uri may represent a file on another machine (eg. ssh into another machine). This requires the shell integration to support working directory reporting.

        method executeCommand

        executeCommand: {
        (commandLine: string): TerminalShellExecution;
        (executable: string, args: string[]): TerminalShellExecution;
        };
        • Execute a command, sending ^C as necessary to interrupt any running command if needed.

          Parameter commandLine

          The command line to execute, this is the exact text that will be sent to the terminal.

          Example 1

          // Execute a command in a terminal immediately after being created const myTerm = window.createTerminal(); window.onDidChangeTerminalShellIntegration(async ({ terminal, shellIntegration }) => { if (terminal === myTerm) { const execution = shellIntegration.executeCommand('echo "Hello world"'); window.onDidEndTerminalShellExecution(event => { if (event.execution === execution) { console.log(Command exited with code ${event.exitCode}); } }); } })); // Fallback to sendText if there is no shell integration within 3 seconds of launching setTimeout(() => { if (!myTerm.shellIntegration) { myTerm.sendText('echo "Hello world"'); // Without shell integration, we can't know when the command has finished or what the // exit code was. } }, 3000);

          Example 2

          // Send command to terminal that has been alive for a while const commandLine = 'echo "Hello world"'; if (term.shellIntegration) { const execution = shellIntegration.executeCommand({ commandLine }); window.onDidEndTerminalShellExecution(event => { if (event.execution === execution) { console.log(Command exited with code ${event.exitCode}); } }); } else { term.sendText(commandLine); // Without shell integration, we can't know when the command has finished or what the // exit code was. }

        • Execute a command, sending ^C as necessary to interrupt any running command if needed.

          *Note* This is not guaranteed to work as [shell integration](https://code.visualstudio.com/docs/terminal/shell-integration) must be activated. Check whether TerminalShellExecution.exitCode is rejected to verify whether it was successful.

          Parameter executable

          A command to run.

          Parameter args

          Arguments to launch the executable with. The arguments will be escaped such that they are interpreted as single arguments when the argument both contains whitespace and does not include any single quote, double quote or backtick characters.

          Note that this escaping is not intended to be a security measure, be careful when passing untrusted data to this API as strings like $(...) can often be used in shells to execute code within a string.

          Example 1

          // Execute a command in a terminal immediately after being created const myTerm = window.createTerminal(); window.onDidChangeTerminalShellIntegration(async ({ terminal, shellIntegration }) => { if (terminal === myTerm) { const command = shellIntegration.executeCommand({ command: 'echo', args: ['Hello world'] }); const code = await command.exitCode; console.log(Command exited with code ${code}); } })); // Fallback to sendText if there is no shell integration within 3 seconds of launching setTimeout(() => { if (!myTerm.shellIntegration) { myTerm.sendText('echo "Hello world"'); // Without shell integration, we can't know when the command has finished or what the // exit code was. } }, 3000);

          Example 2

          // Send command to terminal that has been alive for a while const commandLine = 'echo "Hello world"'; if (term.shellIntegration) { const command = term.shellIntegration.executeCommand({ command: 'echo', args: ['Hello world'] }); const code = await command.exitCode; console.log(Command exited with code ${code}); } else { term.sendText(commandLine); // Without shell integration, we can't know when the command has finished or what the // exit code was. }

        interface TerminalShellIntegrationChangeEvent

        interface TerminalShellIntegrationChangeEvent {}
        • An event signalling that a terminal's shell integration has changed.

        property shellIntegration

        readonly shellIntegration: TerminalShellIntegration;
        • The shell integration object.

        property terminal

        readonly terminal: Terminal;
        • The terminal that shell integration has been activated in.

        interface TerminalSplitLocationOptions

        interface TerminalSplitLocationOptions {}
        • Uses the parent Terminal's location for the terminal

        property parentTerminal

        parentTerminal: Terminal;
        • The parent terminal to split this terminal beside. This works whether the parent terminal is in the panel or the editor area.

        interface TerminalState

        interface TerminalState {}

        property isInteractedWith

        readonly isInteractedWith: boolean;
        • Whether the Terminal has been interacted with. Interaction means that the terminal has sent data to the process which depending on the terminal's _mode_. By default input is sent when a key is pressed or when a command or extension sends text, but based on the terminal's mode it can also happen on:

          - a pointer click event - a pointer scroll event - a pointer move event - terminal focus in/out

          For more information on events that can send data see "DEC Private Mode Set (DECSET)" on https://invisible-island.net/xterm/ctlseqs/ctlseqs.html

        property shell

        readonly shell: string | undefined;
        • The detected shell type of the Terminal. This will be undefined when there is not a clear signal as to what the shell is, or the shell is not supported yet. This value should change to the shell type of a sub-shell when launched (for example, running bash inside zsh).

          Note that the possible values are currently defined as any of the following: 'bash', 'cmd', 'csh', 'fish', 'gitbash', 'julia', 'ksh', 'node', 'nu', 'pwsh', 'python', 'sh', 'wsl', 'zsh'.

        interface TestController

        interface TestController {}
        • Entry point to discover and execute tests. It contains TestController.items which are used to populate the editor UI, and is associated with to allow for tests to be executed.

        property id

        readonly id: string;

        property items

        readonly items: TestItemCollection;
        • A collection of "top-level" TestItem instances, which can in turn have their own to form the "test tree."

          The extension controls when to add tests. For example, extensions should add tests for a file when workspace.onDidOpenTextDocument fires in order for decorations for tests within a file to be visible.

          However, the editor may sometimes explicitly request children using the resolveHandler See the documentation on that method for more details.

        property label

        label: string;
        • Human-readable label for the test controller.

        property refreshHandler

        refreshHandler:
        | ((token: CancellationToken) => Thenable<void> | void)
        | undefined;
        • If this method is present, a refresh button will be present in the UI, and this method will be invoked when it's clicked. When called, the extension should scan the workspace for any new, changed, or removed tests.

          It's recommended that extensions try to update tests in realtime, using a FileSystemWatcher for example, and use this method as a fallback.

          Returns

          A thenable that resolves when tests have been refreshed.

        property resolveHandler

        resolveHandler?: (item: TestItem | undefined) => Thenable<void> | void;
        • A function provided by the extension that the editor may call to request children of a test item, if the TestItem.canResolveChildren is true. When called, the item should discover children and call TestController.createTestItem as children are discovered.

          Generally the extension manages the lifecycle of test items, but under certain conditions the editor may request the children of a specific item to be loaded. For example, if the user requests to re-run tests after reloading the editor, the editor may need to call this method to resolve the previously-run tests.

          The item in the explorer will automatically be marked as "busy" until the function returns or the returned thenable resolves.

          Parameter item

          An unresolved test item for which children are being requested, or undefined to resolve the controller's initial .

        method createRunProfile

        createRunProfile: (
        label: string,
        kind: TestRunProfileKind,
        runHandler: (
        request: TestRunRequest,
        token: CancellationToken
        ) => Thenable<void> | void,
        isDefault?: boolean,
        tag?: TestTag,
        supportsContinuousRun?: boolean
        ) => TestRunProfile;
        • Creates a profile used for running tests. Extensions must create at least one profile in order for tests to be run.

          Parameter label

          A human-readable label for this profile.

          Parameter kind

          Configures what kind of execution this profile manages.

          Parameter runHandler

          Function called to start a test run.

          Parameter isDefault

          Whether this is the default action for its kind.

          Parameter tag

          Profile test tag.

          Parameter supportsContinuousRun

          Whether the profile supports continuous running.

          Returns

          An instance of a TestRunProfile, which is automatically associated with this controller.

        method createTestItem

        createTestItem: (id: string, label: string, uri?: Uri) => TestItem;
        • Creates a new managed TestItem instance. It can be added into the TestItem.children of an existing item, or into the TestController.items.

          Parameter id

          Identifier for the TestItem. The test item's ID must be unique in the TestItemCollection it's added to.

          Parameter label

          Human-readable label of the test item.

          Parameter uri

          URI this TestItem is associated with. May be a file or directory.

        method createTestRun

        createTestRun: (
        request: TestRunRequest,
        name?: string,
        persist?: boolean
        ) => TestRun;
        • Creates a TestRun. This should be called by the TestRunProfile when a request is made to execute tests, and may also be called if a test run is detected externally. Once created, tests that are included in the request will be moved into the queued state.

          All runs created using the same request instance will be grouped together. This is useful if, for example, a single suite of tests is run on multiple platforms.

          Parameter request

          Test run request. Only tests inside the include may be modified, and tests in its exclude are ignored.

          Parameter name

          The human-readable name of the run. This can be used to disambiguate multiple sets of results in a test run. It is useful if tests are run across multiple platforms, for example.

          Parameter persist

          Whether the results created by the run should be persisted in the editor. This may be false if the results are coming from a file already saved externally, such as a coverage information file.

          Returns

          An instance of the TestRun. It will be considered "running" from the moment this method is invoked until TestRun.end is called.

        method dispose

        dispose: () => void;
        • Unregisters the test controller, disposing of its associated tests and unpersisted results.

        method invalidateTestResults

        invalidateTestResults: (items?: TestItem | readonly TestItem[]) => void;
        • Marks an item's results as being outdated. This is commonly called when code or configuration changes and previous results should no longer be considered relevant. The same logic used to mark results as outdated may be used to drive .

          If an item is passed to this method, test results for the item and all of its children will be marked as outdated. If no item is passed, then all test owned by the TestController will be marked as outdated.

          Any test runs started before the moment this method is called, including runs which may still be ongoing, will be marked as outdated and deprioritized in the editor's UI.

          Parameter items

          Item to mark as outdated. If undefined, all the controller's items are marked outdated.

        interface TestItem

        interface TestItem {}
        • An item shown in the "test explorer" view.

          A TestItem can represent either a test suite or a test itself, since they both have similar capabilities.

        property busy

        busy: boolean;
        • Controls whether the item is shown as "busy" in the Test Explorer view. This is useful for showing status while discovering children.

          Defaults to false.

        property canResolveChildren

        canResolveChildren: boolean;
        • Indicates whether this test item may have children discovered by resolving.

          If true, this item is shown as expandable in the Test Explorer view and expanding the item will cause TestController.resolveHandler to be invoked with the item.

          Default to false.

        property children

        readonly children: TestItemCollection;
        • The children of this test item. For a test suite, this may contain the individual test cases or nested suites.

        property description

        description?: string;
        • Optional description that appears next to the label.

        property error

        error: string | MarkdownString | undefined;
        • Optional error encountered while loading the test.

          Note that this is not a test result and should only be used to represent errors in test discovery, such as syntax errors.

        property id

        readonly id: string;
        • Identifier for the TestItem. This is used to correlate test results and tests in the document with those in the workspace (test explorer). This cannot change for the lifetime of the TestItem, and must be unique among its parent's direct children.

        property label

        label: string;
        • Display name describing the test case.

        property parent

        readonly parent: TestItem | undefined;
        • The parent of this item. It's set automatically, and is undefined top-level items in the TestController.items and for items that aren't yet included in another item's .

        property range

        range: Range | undefined;
        • Location of the test item in its .

          This is only meaningful if the uri points to a file.

        property sortText

        sortText?: string | undefined;
        • A string that should be used when comparing this item with other items. When falsy the is used.

        property tags

        tags: readonly TestTag[];
        • Tags associated with this test item. May be used in combination with , or simply as an organizational feature.

        property uri

        readonly uri: Uri | undefined;
        • URI this TestItem is associated with. May be a file or directory.

        interface TestItemCollection

        interface TestItemCollection extends Iterable<[id: string, testItem: TestItem]> {}

        property size

        readonly size: number;
        • Gets the number of items in the collection.

        method add

        add: (item: TestItem) => void;
        • Adds the test item to the children. If an item with the same ID already exists, it'll be replaced.

          Parameter item

          Item to add.

        method delete

        delete: (itemId: string) => void;
        • Removes a single test item from the collection.

          Parameter itemId

          Item ID to delete.

        method forEach

        forEach: (
        callback: (item: TestItem, collection: TestItemCollection) => unknown,
        thisArg?: any
        ) => void;
        • Iterate over each entry in this collection.

          Parameter callback

          Function to execute for each entry.

          Parameter thisArg

          The this context used when invoking the handler function.

        method get

        get: (itemId: string) => TestItem | undefined;
        • Efficiently gets a test item by ID, if it exists, in the children.

          Parameter itemId

          Item ID to get.

          Returns

          The found item or undefined if it does not exist.

        method replace

        replace: (items: readonly TestItem[]) => void;
        • Replaces the items stored by the collection.

          Parameter items

          Items to store.

        interface TestRun

        interface TestRun {}
        • A TestRun represents an in-progress or completed test run and provides methods to report the state of individual tests in the run.

        property isPersisted

        readonly isPersisted: boolean;
        • Whether the test run will be persisted across reloads by the editor.

        property name

        readonly name: string | undefined;
        • The human-readable name of the run. This can be used to disambiguate multiple sets of results in a test run. It is useful if tests are run across multiple platforms, for example.

        property onDidDispose

        onDidDispose: Event<void>;
        • An event fired when the editor is no longer interested in data associated with the test run.

        property token

        readonly token: CancellationToken;
        • A cancellation token which will be triggered when the test run is canceled from the UI.

        method addCoverage

        addCoverage: (fileCoverage: FileCoverage) => void;
        • Adds coverage for a file in the run.

        method appendOutput

        appendOutput: (output: string, location?: Location, test?: TestItem) => void;
        • Appends raw output from the test runner. On the user's request, the output will be displayed in a terminal. ANSI escape sequences, such as colors and text styles, are supported. New lines must be given as CRLF (\r\n) rather than LF (\n).

          Parameter output

          Output text to append.

          Parameter location

          Indicate that the output was logged at the given location.

          Parameter test

          Test item to associate the output with.

        method end

        end: () => void;
        • Signals the end of the test run. Any tests included in the run whose states have not been updated will have their state reset.

        method enqueued

        enqueued: (test: TestItem) => void;
        • Indicates a test is queued for later execution.

          Parameter test

          Test item to update.

        method errored

        errored: (
        test: TestItem,
        message: TestMessage | readonly TestMessage[],
        duration?: number
        ) => void;
        • Indicates a test has errored. You should pass one or more to describe the failure. This differs from the "failed" state in that it indicates a test that couldn't be executed at all, from a compilation error for example.

          Parameter test

          Test item to update.

          Parameter message

          Messages associated with the test failure.

          Parameter duration

          How long the test took to execute, in milliseconds.

        method failed

        failed: (
        test: TestItem,
        message: TestMessage | readonly TestMessage[],
        duration?: number
        ) => void;
        • Indicates a test has failed. You should pass one or more to describe the failure.

          Parameter test

          Test item to update.

          Parameter message

          Messages associated with the test failure.

          Parameter duration

          How long the test took to execute, in milliseconds.

        method passed

        passed: (test: TestItem, duration?: number) => void;
        • Indicates a test has passed.

          Parameter test

          Test item to update.

          Parameter duration

          How long the test took to execute, in milliseconds.

        method skipped

        skipped: (test: TestItem) => void;
        • Indicates a test has been skipped.

          Parameter test

          Test item to update.

        method started

        started: (test: TestItem) => void;
        • Indicates a test has started running.

          Parameter test

          Test item to update.

        interface TestRunProfile

        interface TestRunProfile {}
        • A TestRunProfile describes one way to execute tests in a TestController.

        property configureHandler

        configureHandler: (() => void) | undefined;
        • If this method is present, a configuration gear will be present in the UI, and this method will be invoked when it's clicked. When called, you can take other editor actions, such as showing a quick pick or opening a configuration file.

        property isDefault

        isDefault: boolean;
        • Controls whether this profile is the default action that will be taken when its kind is actioned. For example, if the user clicks the generic "run all" button, then the default profile for TestRunProfileKind.Run will be executed, although the user can configure this.

          Changes the user makes in their default profiles will be reflected in this property after a onDidChangeDefault event.

        property kind

        readonly kind: TestRunProfileKind;
        • Configures what kind of execution this profile controls. If there are no profiles for a kind, it will not be available in the UI.

        property label

        label: string;
        • Label shown to the user in the UI.

          Note that the label has some significance if the user requests that tests be re-run in a certain way. For example, if tests were run normally and the user requests to re-run them in debug mode, the editor will attempt use a configuration with the same label of the Debug kind. If there is no such configuration, the default will be used.

        property loadDetailedCoverage

        loadDetailedCoverage?: (
        testRun: TestRun,
        fileCoverage: FileCoverage,
        token: CancellationToken
        ) => Thenable<FileCoverageDetail[]>;
        • An extension-provided function that provides detailed statement and function-level coverage for a file. The editor will call this when more detail is needed for a file, such as when it's opened in an editor or expanded in the **Test Coverage** view.

          The FileCoverage object passed to this function is the same instance emitted on TestRun.addCoverage calls associated with this profile.

        property loadDetailedCoverageForTest

        loadDetailedCoverageForTest?: (
        testRun: TestRun,
        fileCoverage: FileCoverage,
        fromTestItem: TestItem,
        token: CancellationToken
        ) => Thenable<FileCoverageDetail[]>;
        • An extension-provided function that provides detailed statement and function-level coverage for a single test in a file. This is the per-test sibling of TestRunProfile.loadDetailedCoverage, called only if a test item is provided in FileCoverage.includesTests and only for files where such data is reported.

          Often TestRunProfile.loadDetailedCoverage will be called first when a user opens a file, and then this method will be called if they drill down into specific per-test coverage information. This method should then return coverage data only for statements and declarations executed by the specific test during the run.

          The FileCoverage object passed to this function is the same instance emitted on TestRun.addCoverage calls associated with this profile.

          Parameter testRun

          The test run that generated the coverage data.

          Parameter fileCoverage

          The file coverage object to load detailed coverage for.

          Parameter fromTestItem

          The test item to request coverage information for.

          Parameter token

          A cancellation token that indicates the operation should be cancelled.

        property onDidChangeDefault

        onDidChangeDefault: Event<boolean>;
        • Fired when a user has changed whether this is a default profile. The event contains the new value of isDefault

        property runHandler

        runHandler: (
        request: TestRunRequest,
        token: CancellationToken
        ) => Thenable<void> | void;
        • Handler called to start a test run. When invoked, the function should call TestController.createTestRun at least once, and all test runs associated with the request should be created before the function returns or the returned promise is resolved.

          If supportsContinuousRun is set, then TestRunRequest.continuous may be true. In this case, the profile should observe changes to source code and create new test runs by calling TestController.createTestRun, until the cancellation is requested on the token.

          Parameter request

          Request information for the test run.

          Parameter cancellationToken

          Token that signals the used asked to abort the test run. If cancellation is requested on this token, all TestRun instances associated with the request will be automatically cancelled as well.

        property supportsContinuousRun

        supportsContinuousRun: boolean;
        • Whether this profile supports continuous running of requests. If so, then TestRunRequest.continuous may be set to true. Defaults to false.

        property tag

        tag: TestTag | undefined;
        • Associated tag for the profile. If this is set, only TestItem instances with the same tag will be eligible to execute in this profile.

        method dispose

        dispose: () => void;
        • Deletes the run profile.

        interface TextDocument

        interface TextDocument {}
        • Represents a text document, such as a source file. Text documents have and knowledge about an underlying resource like a file.

        property eol

        readonly eol: EndOfLine;
        • The sequence that is predominately used in this document.

        property fileName

        readonly fileName: string;
        • The file system path of the associated resource. Shorthand notation for . Independent of the uri scheme.

        property isClosed

        readonly isClosed: boolean;
        • true if the document has been closed. A closed document isn't synchronized anymore and won't be re-used when the same resource is opened again.

        property isDirty

        readonly isDirty: boolean;
        • true if there are unpersisted changes.

        property isUntitled

        readonly isUntitled: boolean;
        • Is this document representing an untitled file which has never been saved yet. *Note* that this does not mean the document will be saved to disk, use to figure out where a document will be , e.g. file, ftp etc.

        property languageId

        readonly languageId: string;
        • The identifier of the language associated with this document.

        property lineCount

        readonly lineCount: number;
        • The number of lines in this document.

        property uri

        readonly uri: Uri;
        • The associated uri for this document.

          *Note* that most documents use the file-scheme, which means they are files on disk. However, **not** all documents are saved on disk and therefore the scheme must be checked before trying to access the underlying file or siblings on disk.

          See Also

        property version

        readonly version: number;
        • The version number of this document (it will strictly increase after each change, including undo/redo).

        method getText

        getText: (range?: Range) => string;
        • Get the text of this document. A substring can be retrieved by providing a range. The range will be .

          Parameter range

          Include only the text included by the range.

          Returns

          The text inside the provided range or the entire text.

        method getWordRangeAtPosition

        getWordRangeAtPosition: (
        position: Position,
        regex?: RegExp
        ) => Range | undefined;
        • Get a word-range at the given position. By default words are defined by common separators, like space, -, _, etc. In addition, per language custom [word definitions] can be defined. It is also possible to provide a custom regular expression.

          * *Note 1:* A custom regular expression must not match the empty string and if it does, it will be ignored. * *Note 2:* A custom regular expression will fail to match multiline strings and in the name of speed regular expressions should not match words with spaces. Use for more complex, non-wordy, scenarios.

          The position will be .

          Parameter position

          A position.

          Parameter regex

          Optional regular expression that describes what a word is.

          Returns

          A range spanning a word, or undefined.

        method lineAt

        lineAt: { (line: number): TextLine; (position: Position): TextLine };
        • Returns a text line denoted by the line number. Note that the returned object is *not* live and changes to the document are not reflected.

          Parameter line

          A line number in [0, lineCount).

          Returns

          A .

        • Returns a text line denoted by the position. Note that the returned object is *not* live and changes to the document are not reflected.

          The position will be .

          Parameter position

          A position.

          Returns

          A .

          See Also

        method offsetAt

        offsetAt: (position: Position) => number;
        • Converts the position to a zero-based offset.

          The position will be .

          Parameter position

          A position.

          Returns

          A valid zero-based offset in UTF-16 [code units](https://developer.mozilla.org/en-US/docs/Glossary/Code_unit).

        method positionAt

        positionAt: (offset: number) => Position;
        • Converts a zero-based offset to a position.

          Parameter offset

          A zero-based offset into the document. This offset is in UTF-16 [code units](https://developer.mozilla.org/en-US/docs/Glossary/Code_unit).

          Returns

          A valid Position.

        method save

        save: () => Thenable<boolean>;
        • Save the underlying file.

          Returns

          A promise that will resolve to true when the file has been saved. If the save failed, will return false.

        method validatePosition

        validatePosition: (position: Position) => Position;
        • Ensure a position is contained in the range of this document.

          Parameter position

          A position.

          Returns

          The given position or a new, adjusted position.

        method validateRange

        validateRange: (range: Range) => Range;
        • Ensure a range is completely contained in this document.

          Parameter range

          A range.

          Returns

          The given range or a new, adjusted range.

        interface TextDocumentChangeEvent

        interface TextDocumentChangeEvent {}
        • An event describing a transactional change.

        property contentChanges

        readonly contentChanges: readonly TextDocumentContentChangeEvent[];
        • An array of content changes.

        property document

        readonly document: TextDocument;
        • The affected document.

        property reason

        readonly reason: TextDocumentChangeReason | undefined;
        • The reason why the document was changed. Is undefined if the reason is not known.

        interface TextDocumentContentChangeEvent

        interface TextDocumentContentChangeEvent {}
        • An event describing an individual change in the text of a .

        property range

        readonly range: Range;
        • The range that got replaced.

        property rangeLength

        readonly rangeLength: number;
        • The length of the range that got replaced.

        property rangeOffset

        readonly rangeOffset: number;
        • The offset of the range that got replaced.

        property text

        readonly text: string;
        • The new text for the range.

        interface TextDocumentContentProvider

        interface TextDocumentContentProvider {}
        • A text document content provider allows to add readonly documents to the editor, such as source from a dll or generated html from md.

          Content providers are for a . When a uri with that scheme is to be the content provider is asked.

        property onDidChange

        onDidChange?: Event<Uri>;
        • An event to signal a resource has changed.

        method provideTextDocumentContent

        provideTextDocumentContent: (
        uri: Uri,
        token: CancellationToken
        ) => ProviderResult<string>;
        • Provide textual content for a given uri.

          The editor will use the returned string-content to create a readonly . Resources allocated should be released when the corresponding document has been .

          **Note**: The contents of the created might not be identical to the provided text due to end-of-line-sequence normalization.

          Parameter uri

          An uri which scheme matches the scheme this provider was for.

          Parameter token

          A cancellation token.

          Returns

          A string or a thenable that resolves to such.

        interface TextDocumentShowOptions

        interface TextDocumentShowOptions {}
        • Represents options to configure the behavior of showing a in an .

        property preserveFocus

        preserveFocus?: boolean;
        • An optional flag that when true will stop the from taking focus.

        property preview

        preview?: boolean;
        • An optional flag that controls if an -tab shows as preview. Preview tabs will be replaced and reused until set to stay - either explicitly or through editing.

          *Note* that the flag is ignored if a user has disabled preview editors in settings.

        property selection

        selection?: Range;
        • An optional selection to apply for the document in the .

        property viewColumn

        viewColumn?: ViewColumn;
        • An optional view column in which the should be shown. The default is the . Columns that do not exist will be created as needed up to the maximum of . Use to open the editor to the side of the currently active one.

        interface TextDocumentWillSaveEvent

        interface TextDocumentWillSaveEvent {}
        • An event that is fired when a will be saved.

          To make modifications to the document before it is being saved, call the -function with a thenable that resolves to an array of .

        property document

        readonly document: TextDocument;
        • The document that will be saved.

        property reason

        readonly reason: TextDocumentSaveReason;
        • The reason why save was triggered.

        method waitUntil

        waitUntil: {
        (thenable: Thenable<readonly TextEdit[]>): void;
        (thenable: Thenable<any>): void;
        };
        • Allows to pause the event loop and to apply . Edits of subsequent calls to this function will be applied in order. The edits will be *ignored* if concurrent modifications of the document happened.

          *Note:* This function can only be called during event dispatch and not in an asynchronous manner:

          workspace.onWillSaveTextDocument(event => {
          // async, will *throw* an error
          setTimeout(() => event.waitUntil(promise));
          // sync, OK
          event.waitUntil(promise);
          })

          Parameter thenable

          A thenable that resolves to .

        • Allows to pause the event loop until the provided thenable resolved.

          *Note:* This function can only be called during event dispatch.

          Parameter thenable

          A thenable that delays saving.

        interface TextEditor

        interface TextEditor {}
        • Represents an editor that is attached to a .

        property document

        readonly document: TextDocument;
        • The document associated with this text editor. The document will be the same for the entire lifetime of this text editor.

        property options

        options: TextEditorOptions;
        • Text editor options.

        property selection

        selection: Selection;
        • The primary selection on this text editor. Shorthand for TextEditor.selections[0].

        property selections

        selections: readonly Selection[];
        • The selections in this text editor. The primary selection is always at index 0.

        property viewColumn

        readonly viewColumn: ViewColumn | undefined;
        • The column in which this editor shows. Will be undefined in case this isn't one of the main editors, e.g. an embedded editor, or when the editor column is larger than three.

        property visibleRanges

        readonly visibleRanges: readonly Range[];
        • The current visible ranges in the editor (vertically). This accounts only for vertical scrolling, and not for horizontal scrolling.

        method edit

        edit: (
        callback: (editBuilder: TextEditorEdit) => void,
        options?: {
        readonly undoStopBefore: boolean;
        readonly undoStopAfter: boolean;
        }
        ) => Thenable<boolean>;
        • Perform an edit on the document associated with this text editor.

          The given callback-function is invoked with an which must be used to make edits. Note that the edit-builder is only valid while the callback executes.

          Parameter callback

          A function which can create edits using an .

          Parameter options

          The undo/redo behavior around this edit. By default, undo stops will be created before and after this edit.

          Returns

          A promise that resolves with a value indicating if the edits could be applied.

        method hide

        hide: () => void;
        • Hide the text editor.

          Deprecated

          Use the command workbench.action.closeActiveEditor instead. This method shows unexpected behavior and will be removed in the next major update.

        method insertSnippet

        insertSnippet: (
        snippet: SnippetString,
        location?: Position | Range | readonly Position[] | readonly Range[],
        options?: {
        readonly undoStopBefore: boolean;
        readonly undoStopAfter: boolean;
        readonly keepWhitespace?: boolean;
        }
        ) => Thenable<boolean>;
        • Insert a and put the editor into snippet mode. "Snippet mode" means the editor adds placeholders and additional cursors so that the user can complete or accept the snippet.

          Parameter snippet

          The snippet to insert in this edit.

          Parameter location

          Position or range at which to insert the snippet, defaults to the current editor selection or selections.

          Parameter options

          The undo/redo behavior around this edit. By default, undo stops will be created before and after this edit.

          Returns

          A promise that resolves with a value indicating if the snippet could be inserted. Note that the promise does not signal that the snippet is completely filled-in or accepted.

        method revealRange

        revealRange: (range: Range, revealType?: TextEditorRevealType) => void;
        • Scroll as indicated by revealType in order to reveal the given range.

          Parameter range

          A range.

          Parameter revealType

          The scrolling strategy for revealing range.

        method setDecorations

        setDecorations: (
        decorationType: TextEditorDecorationType,
        rangesOrOptions: readonly Range[] | readonly DecorationOptions[]
        ) => void;
        • Adds a set of decorations to the text editor. If a set of decorations already exists with the given , they will be replaced. If rangesOrOptions is empty, the existing decorations with the given will be removed.

          Parameter decorationType

          A decoration type.

          Parameter rangesOrOptions

          Either or more detailed .

          See Also

          • .

        method show

        show: (column?: ViewColumn) => void;
        • Show the text editor.

          Parameter column

          The in which to show this editor. This method shows unexpected behavior and will be removed in the next major update.

          Deprecated

          Use window.showTextDocument instead.

        interface TextEditorDecorationType

        interface TextEditorDecorationType {}
        • Represents a handle to a set of decorations sharing the same in a .

          To get an instance of a TextEditorDecorationType use .

        property key

        readonly key: string;
        • Internal representation of the handle.

        method dispose

        dispose: () => void;
        • Remove this decoration type and all decorations on all text editors using it.

        interface TextEditorEdit

        interface TextEditorEdit {}
        • A complex edit that will be applied in one transaction on a TextEditor. This holds a description of the edits and if the edits are valid (i.e. no overlapping regions, document was not changed in the meantime, etc.) they can be applied on a associated with a .

        method delete

        delete: (location: Range | Selection) => void;
        • Delete a certain text region.

          Parameter location

          The range this operation should remove.

        method insert

        insert: (location: Position, value: string) => void;
        • Insert text at a location. You can use \r\n or \n in value and they will be normalized to the current . Although the equivalent text edit can be made with , insert will produce a different resulting selection (it will get moved).

          Parameter location

          The position where the new text should be inserted.

          Parameter value

          The new text this operation should insert.

        method replace

        replace: (location: Position | Range | Selection, value: string) => void;
        • Replace a certain text region with a new value. You can use \r\n or \n in value and they will be normalized to the current .

          Parameter location

          The range this operation should remove.

          Parameter value

          The new text this operation should insert after removing location.

        method setEndOfLine

        setEndOfLine: (endOfLine: EndOfLine) => void;
        • Set the end of line sequence.

          Parameter endOfLine

          The new end of line for the .

        interface TextEditorOptions

        interface TextEditorOptions {}
        • Represents a 's .

        property cursorStyle

        cursorStyle?: TextEditorCursorStyle;
        • The rendering style of the cursor in this editor. When getting a text editor's options, this property will always be present. When setting a text editor's options, this property is optional.

        property indentSize

        indentSize?: number | string;
        • The number of spaces to insert when is true.

          When getting a text editor's options, this property will always be a number (resolved). When setting a text editor's options, this property is optional and it can be a number or "tabSize".

        property insertSpaces

        insertSpaces?: boolean | string;
        • When pressing Tab insert spaces. When getting a text editor's options, this property will always be a boolean (resolved). When setting a text editor's options, this property is optional and it can be a boolean or "auto".

        property lineNumbers

        lineNumbers?: TextEditorLineNumbersStyle;
        • Render relative line numbers w.r.t. the current line number. When getting a text editor's options, this property will always be present. When setting a text editor's options, this property is optional.

        property tabSize

        tabSize?: number | string;
        • The size in spaces a tab takes. This is used for two purposes: - the rendering width of a tab character; - the number of spaces to insert when is true and indentSize is set to "tabSize".

          When getting a text editor's options, this property will always be a number (resolved). When setting a text editor's options, this property is optional and it can be a number or "auto".

        interface TextEditorOptionsChangeEvent

        interface TextEditorOptionsChangeEvent {}
        • Represents an event describing the change in a .

        property options

        readonly options: TextEditorOptions;
        • The new value for the .

        property textEditor

        readonly textEditor: TextEditor;
        • The for which the options have changed.

        interface TextEditorSelectionChangeEvent

        interface TextEditorSelectionChangeEvent {}
        • Represents an event describing the change in a .

        property kind

        readonly kind: TextEditorSelectionChangeKind | undefined;
        • The which has triggered this event. Can be undefined.

        property selections

        readonly selections: readonly Selection[];
        • The new value for the .

        property textEditor

        readonly textEditor: TextEditor;
        • The for which the selections have changed.

        interface TextEditorViewColumnChangeEvent

        interface TextEditorViewColumnChangeEvent {}
        • Represents an event describing the change of a .

        property textEditor

        readonly textEditor: TextEditor;
        • The for which the view column has changed.

        property viewColumn

        readonly viewColumn: ViewColumn;
        • The new value for the .

        interface TextEditorVisibleRangesChangeEvent

        interface TextEditorVisibleRangesChangeEvent {}
        • Represents an event describing the change in a .

        property textEditor

        readonly textEditor: TextEditor;
        • The for which the visible ranges have changed.

        property visibleRanges

        readonly visibleRanges: readonly Range[];
        • The new value for the .

        interface TextLine

        interface TextLine {}
        • Represents a line of text, such as a line of source code.

          TextLine objects are __immutable__. When a changes, previously retrieved lines will not represent the latest state.

        property firstNonWhitespaceCharacterIndex

        readonly firstNonWhitespaceCharacterIndex: number;
        • The offset of the first character which is not a whitespace character as defined by /\s/. **Note** that if a line is all whitespace the length of the line is returned.

        property isEmptyOrWhitespace

        readonly isEmptyOrWhitespace: boolean;

        property lineNumber

        readonly lineNumber: number;
        • The zero-based line number.

        property range

        readonly range: Range;
        • The range this line covers without the line separator characters.

        property rangeIncludingLineBreak

        readonly rangeIncludingLineBreak: Range;
        • The range this line covers with the line separator characters.

        property text

        readonly text: string;
        • The text of this line without the line separator characters.

        interface ThemableDecorationAttachmentRenderOptions

        interface ThemableDecorationAttachmentRenderOptions {}
        • Represents theme specific rendering styles for and the content of text decorations.

        property backgroundColor

        backgroundColor?: string | ThemeColor;
        • CSS styling property that will be applied to the decoration attachment.

        property border

        border?: string;
        • CSS styling property that will be applied to the decoration attachment.

        property borderColor

        borderColor?: string | ThemeColor;
        • CSS styling property that will be applied to text enclosed by a decoration.

        property color

        color?: string | ThemeColor;
        • CSS styling property that will be applied to the decoration attachment.

        property contentIconPath

        contentIconPath?: string | Uri;
        • An **absolute path** or an URI to an image to be rendered in the attachment. Either an icon or a text can be shown, but not both.

        property contentText

        contentText?: string;
        • Defines a text content that is shown in the attachment. Either an icon or a text can be shown, but not both.

        property fontStyle

        fontStyle?: string;
        • CSS styling property that will be applied to the decoration attachment.

        property fontWeight

        fontWeight?: string;
        • CSS styling property that will be applied to the decoration attachment.

        property height

        height?: string;
        • CSS styling property that will be applied to the decoration attachment.

        property margin

        margin?: string;
        • CSS styling property that will be applied to the decoration attachment.

        property textDecoration

        textDecoration?: string;
        • CSS styling property that will be applied to the decoration attachment.

        property width

        width?: string;
        • CSS styling property that will be applied to the decoration attachment.

        interface ThemableDecorationInstanceRenderOptions

        interface ThemableDecorationInstanceRenderOptions {}
        • Represents themable render options for decoration instances.

        property after

        after?: ThemableDecorationAttachmentRenderOptions;
        • Defines the rendering options of the attachment that is inserted after the decorated text.

        property before

        before?: ThemableDecorationAttachmentRenderOptions;
        • Defines the rendering options of the attachment that is inserted before the decorated text.

        interface ThemableDecorationRenderOptions

        interface ThemableDecorationRenderOptions {}
        • Represents theme specific rendering styles for a .

        property after

        after?: ThemableDecorationAttachmentRenderOptions;
        • Defines the rendering options of the attachment that is inserted after the decorated text.

        property backgroundColor

        backgroundColor?: string | ThemeColor;
        • Background color of the decoration. Use rgba() and define transparent background colors to play well with other decorations. Alternatively a color from the color registry can be .

        property before

        before?: ThemableDecorationAttachmentRenderOptions;
        • Defines the rendering options of the attachment that is inserted before the decorated text.

        property border

        border?: string;
        • CSS styling property that will be applied to text enclosed by a decoration.

        property borderColor

        borderColor?: string | ThemeColor;
        • CSS styling property that will be applied to text enclosed by a decoration. Better use 'border' for setting one or more of the individual border properties.

        property borderRadius

        borderRadius?: string;
        • CSS styling property that will be applied to text enclosed by a decoration. Better use 'border' for setting one or more of the individual border properties.

        property borderSpacing

        borderSpacing?: string;
        • CSS styling property that will be applied to text enclosed by a decoration. Better use 'border' for setting one or more of the individual border properties.

        property borderStyle

        borderStyle?: string;
        • CSS styling property that will be applied to text enclosed by a decoration. Better use 'border' for setting one or more of the individual border properties.

        property borderWidth

        borderWidth?: string;
        • CSS styling property that will be applied to text enclosed by a decoration. Better use 'border' for setting one or more of the individual border properties.

        property color

        color?: string | ThemeColor;
        • CSS styling property that will be applied to text enclosed by a decoration.

        property cursor

        cursor?: string;
        • CSS styling property that will be applied to text enclosed by a decoration.

        property fontStyle

        fontStyle?: string;
        • CSS styling property that will be applied to text enclosed by a decoration.

        property fontWeight

        fontWeight?: string;
        • CSS styling property that will be applied to text enclosed by a decoration.

        property gutterIconPath

        gutterIconPath?: string | Uri;
        • An **absolute path** or an URI to an image to be rendered in the gutter.

        property gutterIconSize

        gutterIconSize?: string;
        • Specifies the size of the gutter icon. Available values are 'auto', 'contain', 'cover' and any percentage value. For further information: https://msdn.microsoft.com/en-us/library/jj127316(v=vs.85).aspx

        property letterSpacing

        letterSpacing?: string;
        • CSS styling property that will be applied to text enclosed by a decoration.

        property opacity

        opacity?: string;
        • CSS styling property that will be applied to text enclosed by a decoration.

        property outline

        outline?: string;
        • CSS styling property that will be applied to text enclosed by a decoration.

        property outlineColor

        outlineColor?: string | ThemeColor;
        • CSS styling property that will be applied to text enclosed by a decoration. Better use 'outline' for setting one or more of the individual outline properties.

        property outlineStyle

        outlineStyle?: string;
        • CSS styling property that will be applied to text enclosed by a decoration. Better use 'outline' for setting one or more of the individual outline properties.

        property outlineWidth

        outlineWidth?: string;
        • CSS styling property that will be applied to text enclosed by a decoration. Better use 'outline' for setting one or more of the individual outline properties.

        property overviewRulerColor

        overviewRulerColor?: string | ThemeColor;
        • The color of the decoration in the overview ruler. Use rgba() and define transparent colors to play well with other decorations.

        property textDecoration

        textDecoration?: string;
        • CSS styling property that will be applied to text enclosed by a decoration.

        interface TreeCheckboxChangeEvent

        interface TreeCheckboxChangeEvent<T> {}
        • An event describing the change in a tree item's checkbox state.

        property items

        readonly items: ReadonlyArray<[T, TreeItemCheckboxState]>;
        • The items that were checked or unchecked.

        interface TreeDataProvider

        interface TreeDataProvider<T> {}
        • A data provider that provides tree data

        property onDidChangeTreeData

        onDidChangeTreeData?: Event<T | T[] | undefined | null | void>;
        • An optional event to signal that an element or root has changed. This will trigger the view to update the changed element/root and its children recursively (if shown). To signal that root has changed, do not pass any argument or pass undefined or null.

        method getChildren

        getChildren: (element?: T) => ProviderResult<T[]>;
        • Get the children of element or root if no element is passed.

          Parameter element

          The element from which the provider gets children. Can be undefined.

          Returns

          Children of element or root if no element is passed.

        method getParent

        getParent: (element: T) => ProviderResult<T>;
        • Optional method to return the parent of element. Return null or undefined if element is a child of root.

          **NOTE:** This method should be implemented in order to access API.

          Parameter element

          The element for which the parent has to be returned.

          Returns

          Parent of element.

        method getTreeItem

        getTreeItem: (element: T) => TreeItem | Thenable<TreeItem>;
        • Get TreeItem representation of the element

          Parameter element

          The element for which TreeItem representation is asked for.

          Returns

          TreeItem representation of the element.

        method resolveTreeItem

        resolveTreeItem: (
        item: TreeItem,
        element: T,
        token: CancellationToken
        ) => ProviderResult<TreeItem>;
        • Called on hover to resolve the property if it is undefined. Called on tree item click/open to resolve the property if it is undefined. Only properties that were undefined can be resolved in resolveTreeItem. Functionality may be expanded later to include being called to resolve other missing properties on selection and/or on open.

          Will only ever be called once per TreeItem.

          onDidChangeTreeData should not be triggered from within resolveTreeItem.

          *Note* that this function is called when tree items are already showing in the UI. Because of that, no property that changes the presentation (label, description, etc.) can be changed.

          Parameter item

          Undefined properties of item should be set then item should be returned.

          Parameter element

          The object associated with the TreeItem.

          Parameter token

          A cancellation token.

          Returns

          The resolved tree item or a thenable that resolves to such. It is OK to return the given item. When no result is returned, the given item will be used.

        interface TreeDragAndDropController

        interface TreeDragAndDropController<T> {}
        • Provides support for drag and drop in TreeView.

        property dragMimeTypes

        readonly dragMimeTypes: readonly string[];
        • The mime types that the method of this TreeDragAndDropController may add to the tree data transfer. This could be well-defined, existing, mime types, and also mime types defined by the extension.

          The recommended mime type of the tree (application/vnd.code.tree.<treeidlowercase>) will be automatically added.

        property dropMimeTypes

        readonly dropMimeTypes: readonly string[];
        • The mime types that the method of this DragAndDropController supports. This could be well-defined, existing, mime types, and also mime types defined by the extension.

          To support drops from trees, you will need to add the mime type of that tree. This includes drops from within the same tree. The mime type of a tree is recommended to be of the format application/vnd.code.tree.<treeidlowercase>.

          Use the special files mime type to support all types of dropped files , regardless of the file's actual mime type.

          To learn the mime type of a dragged item: 1. Set up your DragAndDropController 2. Use the Developer: Set Log Level... command to set the level to "Debug" 3. Open the developer tools and drag the item with unknown mime type over your tree. The mime types will be logged to the developer console

          Note that mime types that cannot be sent to the extension will be omitted.

        method handleDrag

        handleDrag: (
        source: readonly T[],
        dataTransfer: DataTransfer,
        token: CancellationToken
        ) => Thenable<void> | void;
        • When the user starts dragging items from this DragAndDropController, handleDrag will be called. Extensions can use handleDrag to add their items to the drag and drop.

          When the items are dropped on **another tree item** in **the same tree**, your DataTransferItem objects will be preserved. Use the recommended mime type for the tree (application/vnd.code.tree.<treeidlowercase>) to add tree objects in a data transfer. See the documentation for DataTransferItem for how best to take advantage of this.

          To add a data transfer item that can be dragged into the editor, use the application specific mime type "text/uri-list". The data for "text/uri-list" should be a string with toString()ed Uris separated by \r\n. To specify a cursor position in the file, set the Uri's fragment to L3,5, where 3 is the line number and 5 is the column number.

          Parameter source

          The source items for the drag and drop operation.

          Parameter dataTransfer

          The data transfer associated with this drag.

          Parameter token

          A cancellation token indicating that drag has been cancelled.

        method handleDrop

        handleDrop: (
        target: T | undefined,
        dataTransfer: DataTransfer,
        token: CancellationToken
        ) => Thenable<void> | void;
        • Called when a drag and drop action results in a drop on the tree that this DragAndDropController belongs to.

          Extensions should fire for any elements that need to be refreshed.

          Parameter target

          The target tree element that the drop is occurring on. When undefined, the target is the root.

          Parameter dataTransfer

          The data transfer items of the source of the drag.

          Parameter token

          A cancellation token indicating that the drop has been cancelled.

        interface TreeItemLabel

        interface TreeItemLabel {}
        • Label describing the

        property highlights

        highlights?: [number, number][];
        • Ranges in the label to highlight. A range is defined as a tuple of two number where the first is the inclusive start index and the second the exclusive end index

        property label

        label: string;
        • A human-readable string describing the .

        interface TreeView

        interface TreeView<T> extends Disposable {}
        • Represents a Tree view

        property badge

        badge?: ViewBadge | undefined;
        • The badge to display for this TreeView. To remove the badge, set to undefined.

        property description

        description?: string;
        • An optional human-readable description which is rendered less prominently in the title of the view. Setting the title description to null, undefined, or empty string will remove the description from the view.

        property message

        message?: string;
        • An optional human-readable message that will be rendered in the view. Setting the message to null, undefined, or empty string will remove the message from the view.

        property onDidChangeCheckboxState

        readonly onDidChangeCheckboxState: Event<TreeCheckboxChangeEvent<T>>;
        • An event to signal that an element or root has either been checked or unchecked.

        property onDidChangeSelection

        readonly onDidChangeSelection: Event<TreeViewSelectionChangeEvent<T>>;
        • Event that is fired when the has changed

        property onDidChangeVisibility

        readonly onDidChangeVisibility: Event<TreeViewVisibilityChangeEvent>;
        • Event that is fired when has changed

        property onDidCollapseElement

        readonly onDidCollapseElement: Event<TreeViewExpansionEvent<T>>;
        • Event that is fired when an element is collapsed

        property onDidExpandElement

        readonly onDidExpandElement: Event<TreeViewExpansionEvent<T>>;
        • Event that is fired when an element is expanded

        property selection

        readonly selection: readonly T[];
        • Currently selected elements.

        property title

        title?: string;
        • The tree view title is initially taken from the extension package.json Changes to the title property will be properly reflected in the UI in the title of the view.

        property visible

        readonly visible: boolean;
        • true if the is visible otherwise false.

        method reveal

        reveal: (
        element: T,
        options?: {
        readonly select?: boolean;
        readonly focus?: boolean;
        readonly expand?: boolean | number;
        }
        ) => Thenable<void>;
        • Reveals the given element in the tree view. If the tree view is not visible then the tree view is shown and element is revealed.

          By default revealed element is selected. In order to not to select, set the option select to false. In order to focus, set the option focus to true. In order to expand the revealed element, set the option expand to true. To expand recursively set expand to the number of levels to expand.

          * *NOTE:* You can expand only to 3 levels maximum. * *NOTE:* The TreeDataProvider that the TreeView with must implement method to access this API.

        interface TreeViewExpansionEvent

        interface TreeViewExpansionEvent<T> {}
        • The event that is fired when an element in the TreeView is expanded or collapsed

        property element

        readonly element: T;
        • Element that is expanded or collapsed.

        interface TreeViewOptions

        interface TreeViewOptions<T> {}

        property canSelectMany

        canSelectMany?: boolean;
        • Whether the tree supports multi-select. When the tree supports multi-select and a command is executed from the tree, the first argument to the command is the tree item that the command was executed on and the second argument is an array containing all selected tree items.

        property dragAndDropController

        dragAndDropController?: TreeDragAndDropController<T>;
        • An optional interface to implement drag and drop in the tree view.

        property manageCheckboxStateManually

        manageCheckboxStateManually?: boolean;
        • By default, when the children of a tree item have already been fetched, child checkboxes are automatically managed based on the checked state of the parent tree item. If the tree item is collapsed by default (meaning that the children haven't yet been fetched) then child checkboxes will not be updated. To override this behavior and manage child and parent checkbox state in the extension, set this to true.

          Examples where TreeViewOptions.manageCheckboxStateManually is false, the default behavior:

          1. A tree item is checked, then its children are fetched. The children will be checked.

          2. A tree item's parent is checked. The tree item and all of it's siblings will be checked. - [ ] Parent - [ ] Child 1 - [ ] Child 2 When the user checks Parent, the tree will look like this: - [x] Parent - [x] Child 1 - [x] Child 2

          3. A tree item and all of it's siblings are checked. The parent will be checked. - [ ] Parent - [ ] Child 1 - [ ] Child 2 When the user checks Child 1 and Child 2, the tree will look like this: - [x] Parent - [x] Child 1 - [x] Child 2

          4. A tree item is unchecked. The parent will be unchecked. - [x] Parent - [x] Child 1 - [x] Child 2 When the user unchecks Child 1, the tree will look like this: - [ ] Parent - [ ] Child 1 - [x] Child 2

        property showCollapseAll

        showCollapseAll?: boolean;
        • Whether to show collapse all action or not.

        property treeDataProvider

        treeDataProvider: TreeDataProvider<T>;
        • A data provider that provides tree data.

        interface TreeViewSelectionChangeEvent

        interface TreeViewSelectionChangeEvent<T> {}
        • The event that is fired when there is a change in

        property selection

        readonly selection: readonly T[];
        • Selected elements.

        interface TreeViewVisibilityChangeEvent

        interface TreeViewVisibilityChangeEvent {}
        • The event that is fired when there is a change in

        property visible

        readonly visible: boolean;
        • true if the is visible otherwise false.

        interface TypeDefinitionProvider

        interface TypeDefinitionProvider {}
        • The type definition provider defines the contract between extensions and the go to type definition feature.

        method provideTypeDefinition

        provideTypeDefinition: (
        document: TextDocument,
        position: Position,
        token: CancellationToken
        ) => ProviderResult<Definition | DefinitionLink[]>;
        • Provide the type definition of the symbol at the given position and document.

          Parameter document

          The document in which the command was invoked.

          Parameter position

          The position at which the command was invoked.

          Parameter token

          A cancellation token.

          Returns

          A definition or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

        interface TypeHierarchyProvider

        interface TypeHierarchyProvider {}
        • The type hierarchy provider interface describes the contract between extensions and the type hierarchy feature.

        method prepareTypeHierarchy

        prepareTypeHierarchy: (
        document: TextDocument,
        position: Position,
        token: CancellationToken
        ) => ProviderResult<TypeHierarchyItem | TypeHierarchyItem[]>;
        • Bootstraps type hierarchy by returning the item that is denoted by the given document and position. This item will be used as entry into the type graph. Providers should return undefined or null when there is no item at the given location.

          Parameter document

          The document in which the command was invoked.

          Parameter position

          The position at which the command was invoked.

          Parameter token

          A cancellation token.

          Returns

          One or multiple type hierarchy items or a thenable that resolves to such. The lack of a result can be signaled by returning undefined, null, or an empty array.

        method provideTypeHierarchySubtypes

        provideTypeHierarchySubtypes: (
        item: TypeHierarchyItem,
        token: CancellationToken
        ) => ProviderResult<TypeHierarchyItem[]>;
        • Provide all subtypes for an item, e.g all types which are derived/inherited from the given item. In graph terms this describes directed and annotated edges inside the type graph, e.g the given item is the starting node and the result is the nodes that can be reached.

          Parameter item

          The hierarchy item for which subtypes should be computed.

          Parameter token

          A cancellation token.

          Returns

          A set of direct subtypes or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

        method provideTypeHierarchySupertypes

        provideTypeHierarchySupertypes: (
        item: TypeHierarchyItem,
        token: CancellationToken
        ) => ProviderResult<TypeHierarchyItem[]>;
        • Provide all supertypes for an item, e.g all types from which a type is derived/inherited. In graph terms this describes directed and annotated edges inside the type graph, e.g the given item is the starting node and the result is the nodes that can be reached.

          Parameter item

          The hierarchy item for which super types should be computed.

          Parameter token

          A cancellation token.

          Returns

          A set of direct supertypes or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

        interface UriHandler

        interface UriHandler {}

        method handleUri

        handleUri: (uri: Uri) => ProviderResult<void>;

        interface ViewBadge

        interface ViewBadge {}
        • A badge presenting a value for a view

        property tooltip

        readonly tooltip: string;
        • A label to present in tooltip for the badge.

        property value

        readonly value: number;
        • The value to present in the badge.

        interface Webview

        interface Webview {}
        • Displays html content, similarly to an iframe.

        property cspSource

        readonly cspSource: string;
        • Content security policy source for webview resources.

          This is the origin that should be used in a content security policy rule:

          `img-src https: ${webview.cspSource} ...;`

        property html

        html: string;
        • HTML contents of the webview.

          This should be a complete, valid html document. Changing this property causes the webview to be reloaded.

          Webviews are sandboxed from normal extension process, so all communication with the webview must use message passing. To send a message from the extension to the webview, use . To send message from the webview back to an extension, use the acquireVsCodeApi function inside the webview to get a handle to the editor's api and then call .postMessage():

          <script>
          const vscode = acquireVsCodeApi(); // acquireVsCodeApi can only be invoked once
          vscode.postMessage({ message: 'hello!' });
          </script>

          To load a resources from the workspace inside a webview, use the method and ensure the resource's directory is listed in .

          Keep in mind that even though webviews are sandboxed, they still allow running scripts and loading arbitrary content, so extensions must follow all standard web security best practices when working with webviews. This includes properly sanitizing all untrusted input (including content from the workspace) and setting a [content security policy](https://aka.ms/vscode-api-webview-csp).

        property onDidReceiveMessage

        readonly onDidReceiveMessage: Event<any>;
        • Fired when the webview content posts a message.

          Webview content can post strings or json serializable objects back to an extension. They cannot post Blob, File, ImageData and other DOM specific objects since the extension that receives the message does not run in a browser environment.

        property options

        options: WebviewOptions;
        • Content settings for the webview.

        method asWebviewUri

        asWebviewUri: (localResource: Uri) => Uri;
        • Convert a uri for the local file system to one that can be used inside webviews.

          Webviews cannot directly load resources from the workspace or local file system using file: uris. The asWebviewUri function takes a local file: uri and converts it into a uri that can be used inside of a webview to load the same resource:

          webview.html = `<img src="${webview.asWebviewUri(vscode.Uri.file('/Users/codey/workspace/cat.gif'))}">`

        method postMessage

        postMessage: (message: any) => Thenable<boolean>;
        • Post a message to the webview content.

          Messages are only delivered if the webview is live (either visible or in the background with retainContextWhenHidden).

          Parameter message

          Body of the message. This must be a string or other json serializable object.

          For older versions of vscode, if an ArrayBuffer is included in message, it will not be serialized properly and will not be received by the webview. Similarly any TypedArrays, such as a Uint8Array, will be very inefficiently serialized and will also not be recreated as a typed array inside the webview.

          However if your extension targets vscode 1.57+ in the engines field of its package.json, any ArrayBuffer values that appear in message will be more efficiently transferred to the webview and will also be correctly recreated inside of the webview.

          Returns

          A promise that resolves when the message is posted to a webview or when it is dropped because the message was not deliverable.

          Returns true if the message was posted to the webview. Messages can only be posted to live webviews (i.e. either visible webviews or hidden webviews that set retainContextWhenHidden).

          A response of true does not mean that the message was actually received by the webview. For example, no message listeners may be have been hooked up inside the webview or the webview may have been destroyed after the message was posted but before it was received.

          If you want confirm that a message as actually received, you can try having your webview posting a confirmation message back to your extension.

        interface WebviewOptions

        interface WebviewOptions {}
        • Content settings for a webview.

        property enableCommandUris

        readonly enableCommandUris?: boolean | readonly string[];
        • Controls whether command uris are enabled in webview content or not.

          Defaults to false (command uris are disabled).

          If you pass in an array, only the commands in the array are allowed.

        property enableForms

        readonly enableForms?: boolean;
        • Controls whether forms are enabled in the webview content or not.

          Defaults to true if . Otherwise defaults to false. Explicitly setting this property to either true or false overrides the default.

        property enableScripts

        readonly enableScripts?: boolean;
        • Controls whether scripts are enabled in the webview content or not.

          Defaults to false (scripts-disabled).

        property localResourceRoots

        readonly localResourceRoots?: readonly Uri[];
        • Root paths from which the webview can load local (filesystem) resources using uris from asWebviewUri

          Default to the root folders of the current workspace plus the extension's install directory.

          Pass in an empty array to disallow access to any local resources.

        property portMapping

        readonly portMapping?: readonly WebviewPortMapping[];
        • Mappings of localhost ports used inside the webview.

          Port mapping allow webviews to transparently define how localhost ports are resolved. This can be used to allow using a static localhost port inside the webview that is resolved to random port that a service is running on.

          If a webview accesses localhost content, we recommend that you specify port mappings even if the webviewPort and extensionHostPort ports are the same.

          *Note* that port mappings only work for http or https urls. Websocket urls (e.g. ws://localhost:3000) cannot be mapped to another port.

        interface WebviewPanel

        interface WebviewPanel {}
        • A panel that contains a webview.

        property active

        readonly active: boolean;
        • Whether the panel is active (focused by the user).

        property iconPath

        iconPath?:
        | Uri
        | {
        /**
        * The icon path for the light theme.
        */
        readonly light: Uri;
        /**
        * The icon path for the dark theme.
        */
        readonly dark: Uri;
        };
        • Icon for the panel shown in UI.

        property onDidChangeViewState

        readonly onDidChangeViewState: Event<WebviewPanelOnDidChangeViewStateEvent>;
        • Fired when the panel's view state changes.

        property onDidDispose

        readonly onDidDispose: Event<void>;
        • Fired when the panel is disposed.

          This may be because the user closed the panel or because .dispose() was called on it.

          Trying to use the panel after it has been disposed throws an exception.

        property options

        readonly options: WebviewPanelOptions;
        • Content settings for the webview panel.

        property title

        title: string;
        • Title of the panel shown in UI.

        property viewColumn

        readonly viewColumn: ViewColumn | undefined;
        • Editor position of the panel. This property is only set if the webview is in one of the editor view columns.

        property viewType

        readonly viewType: string;
        • Identifies the type of the webview panel, such as 'markdown.preview'.

        property visible

        readonly visible: boolean;
        • Whether the panel is visible.

        property webview

        readonly webview: Webview;
        • belonging to the panel.

        method dispose

        dispose: () => any;
        • Dispose of the webview panel.

          This closes the panel if it showing and disposes of the resources owned by the webview. Webview panels are also disposed when the user closes the webview panel. Both cases fire the onDispose event.

        method reveal

        reveal: (viewColumn?: ViewColumn, preserveFocus?: boolean) => void;
        • Show the webview panel in a given column.

          A webview panel may only show in a single column at a time. If it is already showing, this method moves it to a new column.

          Parameter viewColumn

          View column to show the panel in. Shows in the current viewColumn if undefined.

          Parameter preserveFocus

          When true, the webview will not take focus.

        interface WebviewPanelOnDidChangeViewStateEvent

        interface WebviewPanelOnDidChangeViewStateEvent {}
        • Event fired when a webview panel's view state changes.

        property webviewPanel

        readonly webviewPanel: WebviewPanel;
        • Webview panel whose view state changed.

        interface WebviewPanelOptions

        interface WebviewPanelOptions {}
        • Content settings for a webview panel.

        property enableFindWidget

        readonly enableFindWidget?: boolean;
        • Controls if the find widget is enabled in the panel.

          Defaults to false.

        property retainContextWhenHidden

        readonly retainContextWhenHidden?: boolean;
        • Controls if the webview panel's content (iframe) is kept around even when the panel is no longer visible.

          Normally the webview panel's html context is created when the panel becomes visible and destroyed when it is hidden. Extensions that have complex state or UI can set the retainContextWhenHidden to make the editor keep the webview context around, even when the webview moves to a background tab. When a webview using retainContextWhenHidden becomes hidden, its scripts and other dynamic content are suspended. When the panel becomes visible again, the context is automatically restored in the exact same state it was in originally. You cannot send messages to a hidden webview, even with retainContextWhenHidden enabled.

          retainContextWhenHidden has a high memory overhead and should only be used if your panel's context cannot be quickly saved and restored.

        interface WebviewPanelSerializer

        interface WebviewPanelSerializer<T = unknown> {}
        • Restore webview panels that have been persisted when vscode shuts down.

          There are two types of webview persistence:

          - Persistence within a session. - Persistence across sessions (across restarts of the editor).

          A WebviewPanelSerializer is only required for the second case: persisting a webview across sessions.

          Persistence within a session allows a webview to save its state when it becomes hidden and restore its content from this state when it becomes visible again. It is powered entirely by the webview content itself. To save off a persisted state, call acquireVsCodeApi().setState() with any json serializable object. To restore the state again, call getState()

          // Within the webview
          const vscode = acquireVsCodeApi();
          // Get existing state
          const oldState = vscode.getState() || { value: 0 };
          // Update state
          setState({ value: oldState.value + 1 })

          A WebviewPanelSerializer extends this persistence across restarts of the editor. When the editor is shutdown, it will save off the state from setState of all webviews that have a serializer. When the webview first becomes visible after the restart, this state is passed to deserializeWebviewPanel. The extension can then restore the old WebviewPanel from this state.

          Parameter T

          Type of the webview's state.

        method deserializeWebviewPanel

        deserializeWebviewPanel: (
        webviewPanel: WebviewPanel,
        state: T
        ) => Thenable<void>;
        • Restore a webview panel from its serialized state.

          Called when a serialized webview first becomes visible.

          Parameter webviewPanel

          Webview panel to restore. The serializer should take ownership of this panel. The serializer must restore the webview's .html and hook up all webview events.

          Parameter state

          Persisted state from the webview content.

          Returns

          Thenable indicating that the webview has been fully restored.

        interface WebviewPortMapping

        interface WebviewPortMapping {}
        • Defines a port mapping used for localhost inside the webview.

        property extensionHostPort

        readonly extensionHostPort: number;
        • Destination port. The webviewPort is resolved to this port.

        property webviewPort

        readonly webviewPort: number;
        • Localhost port to remap inside the webview.

        interface WebviewView

        interface WebviewView {}
        • A webview based view.

        property badge

        badge?: ViewBadge | undefined;
        • The badge to display for this webview view. To remove the badge, set to undefined.

        property description

        description?: string;
        • Human-readable string which is rendered less prominently in the title.

        property onDidChangeVisibility

        readonly onDidChangeVisibility: Event<void>;
        • Event fired when the visibility of the view changes.

          Actions that trigger a visibility change:

          - The view is collapsed or expanded. - The user switches to a different view group in the sidebar or panel.

          Note that hiding a view using the context menu instead disposes of the view and fires onDidDispose.

        property onDidDispose

        readonly onDidDispose: Event<void>;
        • Event fired when the view is disposed.

          Views are disposed when they are explicitly hidden by a user (this happens when a user right clicks in a view and unchecks the webview view).

          Trying to use the view after it has been disposed throws an exception.

        property title

        title?: string;
        • View title displayed in the UI.

          The view title is initially taken from the extension package.json contribution.

        property viewType

        readonly viewType: string;
        • Identifies the type of the webview view, such as 'hexEditor.dataView'.

        property visible

        readonly visible: boolean;
        • Tracks if the webview is currently visible.

          Views are visible when they are on the screen and expanded.

        property webview

        readonly webview: Webview;
        • The underlying webview for the view.

        method show

        show: (preserveFocus?: boolean) => void;
        • Reveal the view in the UI.

          If the view is collapsed, this will expand it.

          Parameter preserveFocus

          When true the view will not take focus.

        interface WebviewViewProvider

        interface WebviewViewProvider {}
        • Provider for creating WebviewView elements.

        method resolveWebviewView

        resolveWebviewView: (
        webviewView: WebviewView,
        context: WebviewViewResolveContext,
        token: CancellationToken
        ) => Thenable<void> | void;
        • Resolves a webview view.

          resolveWebviewView is called when a view first becomes visible. This may happen when the view is first loaded or when the user hides and then shows a view again.

          Parameter webviewView

          Webview view to restore. The provider should take ownership of this view. The provider must set the webview's .html and hook up all webview events it is interested in.

          Parameter context

          Additional metadata about the view being resolved.

          Parameter token

          Cancellation token indicating that the view being provided is no longer needed.

          Returns

          Optional thenable indicating that the view has been fully resolved.

        interface WebviewViewResolveContext

        interface WebviewViewResolveContext<T = unknown> {}
        • Additional information the webview view being resolved.

          Parameter T

          Type of the webview's state.

        property state

        readonly state: T | undefined;
        • Persisted state from the webview content.

          To save resources, the editor normally deallocates webview documents (the iframe content) that are not visible. For example, when the user collapse a view or switches to another top level activity in the sidebar, the WebviewView itself is kept alive but the webview's underlying document is deallocated. It is recreated when the view becomes visible again.

          You can prevent this behavior by setting retainContextWhenHidden in the WebviewOptions. However this increases resource usage and should be avoided wherever possible. Instead, you can use persisted state to save off a webview's state so that it can be quickly recreated as needed.

          To save off a persisted state, inside the webview call acquireVsCodeApi().setState() with any json serializable object. To restore the state again, call getState(). For example:

          // Within the webview
          const vscode = acquireVsCodeApi();
          // Get existing state
          const oldState = vscode.getState() || { value: 0 };
          // Update state
          setState({ value: oldState.value + 1 })

          The editor ensures that the persisted state is saved correctly when a webview is hidden and across editor restarts.

        interface WindowState

        interface WindowState {}
        • Represents the state of a window.

        property active

        readonly active: boolean;
        • Whether the window has been interacted with recently. This will change immediately on activity, or after a short time of user inactivity.

        property focused

        readonly focused: boolean;
        • Whether the current window is focused.

        interface WorkspaceConfiguration

        interface WorkspaceConfiguration {}
        • Represents the configuration. It is a merged view of

          - *Default Settings* - *Global (User) Settings* - *Workspace settings* - *Workspace Folder settings* - From one of the under which requested resource belongs to. - *Language settings* - Settings defined under requested language.

          The *effective* value (returned by ) is computed by overriding or merging the values in the following order:

          1. defaultValue (if defined in package.json otherwise derived from the value's type) 1. globalValue (if defined) 1. workspaceValue (if defined) 1. workspaceFolderValue (if defined) 1. defaultLanguageValue (if defined) 1. globalLanguageValue (if defined) 1. workspaceLanguageValue (if defined) 1. workspaceFolderLanguageValue (if defined)

          **Note:** Only object value types are merged and all other value types are overridden.

          Example 1: Overriding

          defaultValue = 'on';
          globalValue = 'relative'
          workspaceFolderValue = 'off'
          value = 'off'

          Example 2: Language Values

          defaultValue = 'on';
          globalValue = 'relative'
          workspaceFolderValue = 'off'
          globalLanguageValue = 'on'
          value = 'on'

          Example 3: Object Values

          defaultValue = { "a": 1, "b": 2 };
          globalValue = { "b": 3, "c": 4 };
          value = { "a": 1, "b": 3, "c": 4 };

          *Note:* Workspace and Workspace Folder configurations contains launch and tasks settings. Their basename will be part of the section identifier. The following snippets shows how to retrieve all configurations from launch.json:

          // launch.json configuration
          const config = workspace.getConfiguration('launch', vscode.workspace.workspaceFolders[0].uri);
          // retrieve values
          const values = config.get('configurations');

          Refer to [Settings](https://code.visualstudio.com/docs/getstarted/settings) for more information.

        method get

        get: {
        <T>(section: string): T | undefined;
        <T>(section: string, defaultValue: T): T;
        };
        • Return a value from this configuration.

          Parameter section

          Configuration name, supports _dotted_ names.

          Returns

          The value section denotes or undefined.

        • Return a value from this configuration.

          Parameter section

          Configuration name, supports _dotted_ names.

          Parameter defaultValue

          A value should be returned when no value could be found, is undefined.

          Returns

          The value section denotes or the default.

        method has

        has: (section: string) => boolean;
        • Check if this configuration has a certain value.

          Parameter section

          Configuration name, supports _dotted_ names.

          Returns

          true if the section doesn't resolve to undefined.

        method inspect

        inspect: <T>(
        section: string
        ) =>
        | {
        key: string;
        defaultValue?: T;
        globalValue?: T;
        workspaceValue?: T;
        workspaceFolderValue?: T;
        defaultLanguageValue?: T;
        globalLanguageValue?: T;
        workspaceLanguageValue?: T;
        workspaceFolderLanguageValue?: T;
        languageIds?: string[];
        }
        | undefined;
        • Retrieve all information about a configuration setting. A configuration value often consists of a *default* value, a global or installation-wide value, a workspace-specific value, folder-specific value and language-specific values (if WorkspaceConfiguration is scoped to a language).

          Also provides all language ids under which the given configuration setting is defined.

          *Note:* The configuration name must denote a leaf in the configuration tree (editor.fontSize vs editor) otherwise no result is returned.

          Parameter section

          Configuration name, supports _dotted_ names.

          Returns

          Information about a configuration setting or undefined.

        method update

        update: (
        section: string,
        value: any,
        configurationTarget?: ConfigurationTarget | boolean | null,
        overrideInLanguage?: boolean
        ) => Thenable<void>;
        • Update a configuration value. The updated configuration values are persisted.

          A value can be changed in

          - : Changes the value for all instances of the editor. - : Changes the value for current workspace, if available. - : Changes the value for settings from one of the under which the requested resource belongs to. - Language settings: Changes the value for the requested languageId.

          *Note:* To remove a configuration value use undefined, like so: config.update('somekey', undefined)

          Parameter section

          Configuration name, supports _dotted_ names.

          Parameter value

          The new value.

          Parameter configurationTarget

          The or a boolean value. - If true updates . - If false updates . - If undefined or null updates to if configuration is resource specific, otherwise to .

          Parameter overrideInLanguage

          Whether to update the value in the scope of requested languageId or not. - If true updates the value under the requested languageId. - If undefined updates the value under the requested languageId only if the configuration is defined for the language.

          Throws

          error while updating - configuration which is not registered. - window configuration to workspace folder - configuration to workspace or workspace folder when no workspace is opened. - configuration to workspace folder when there is no workspace folder settings. - configuration to workspace folder when WorkspaceConfiguration is not scoped to a resource.

        index signature

        readonly [key: string]: any;
        • Readable dictionary that backs this configuration.

        interface WorkspaceEditEntryMetadata

        interface WorkspaceEditEntryMetadata {}
        • Additional data for entries of a workspace edit. Supports to label entries and marks entries as needing confirmation by the user. The editor groups edits with equal labels into tree nodes, for instance all edits labelled with "Changes in Strings" would be a tree node.

        property description

        description?: string;
        • A human-readable string which is rendered less prominent on the same line.

        property iconPath

        iconPath?: IconPath;

        property label

        label: string;
        • A human-readable string which is rendered prominent.

        property needsConfirmation

        needsConfirmation: boolean;
        • A flag which indicates that user confirmation is needed.

        interface WorkspaceEditMetadata

        interface WorkspaceEditMetadata {}
        • Additional data about a workspace edit.

        property isRefactoring

        isRefactoring?: boolean;
        • Signal to the editor that this edit is a refactoring.

        interface WorkspaceFolder

        interface WorkspaceFolder {}
        • A workspace folder is one of potentially many roots opened by the editor. All workspace folders are equal which means there is no notion of an active or primary workspace folder.

        property index

        readonly index: number;
        • The ordinal number of this workspace folder.

        property name

        readonly name: string;
        • The name of this workspace folder. Defaults to the basename of its

        property uri

        readonly uri: Uri;
        • The associated uri for this workspace folder.

          *Note:* The Uri-type was intentionally chosen such that future releases of the editor can support workspace folders that are not stored on the local disk, e.g. ftp://server/workspaces/foo.

        interface WorkspaceFolderPickOptions

        interface WorkspaceFolderPickOptions {}
        • Options to configure the behaviour of the pick UI.

        property ignoreFocusOut

        ignoreFocusOut?: boolean;
        • Set to true to keep the picker open when focus moves to another part of the editor or to another window. This setting is ignored on iPad and is always false.

        property placeHolder

        placeHolder?: string;
        • An optional string to show as placeholder in the input box to guide the user what to pick on.

        interface WorkspaceFoldersChangeEvent

        interface WorkspaceFoldersChangeEvent {}
        • An event describing a change to the set of .

        property added

        readonly added: readonly WorkspaceFolder[];
        • Added workspace folders.

        property removed

        readonly removed: readonly WorkspaceFolder[];
        • Removed workspace folders.

        interface WorkspaceSymbolProvider

        interface WorkspaceSymbolProvider<T extends SymbolInformation = SymbolInformation> {}
        • The workspace symbol provider interface defines the contract between extensions and the [symbol search](https://code.visualstudio.com/docs/editor/editingevolved#_open-symbol-by-name)-feature.

        method provideWorkspaceSymbols

        provideWorkspaceSymbols: (
        query: string,
        token: CancellationToken
        ) => ProviderResult<T[]>;
        • Project-wide search for a symbol matching the given query string.

          The query-parameter should be interpreted in a *relaxed way* as the editor will apply its own highlighting and scoring on the results. A good rule of thumb is to match case-insensitive and to simply check that the characters of *query* appear in their order in a candidate symbol. Don't use prefix, substring, or similar strict matching.

          To improve performance implementors can implement resolveWorkspaceSymbol and then provide symbols with partial -objects, without a range defined. The editor will then call resolveWorkspaceSymbol for selected symbols only, e.g. when opening a workspace symbol.

          Parameter query

          A query string, can be the empty string in which case all symbols should be returned.

          Parameter token

          A cancellation token.

          Returns

          An array of document highlights or a thenable that resolves to such. The lack of a result can be signaled by returning undefined, null, or an empty array.

        method resolveWorkspaceSymbol

        resolveWorkspaceSymbol: (
        symbol: T,
        token: CancellationToken
        ) => ProviderResult<T>;
        • Given a symbol fill in its . This method is called whenever a symbol is selected in the UI. Providers can implement this method and return incomplete symbols from which often helps to improve performance.

          Parameter symbol

          The symbol that is to be resolved. Guaranteed to be an instance of an object returned from an earlier call to provideWorkspaceSymbols.

          Parameter token

          A cancellation token.

          Returns

          The resolved symbol or a thenable that resolves to that. When no result is returned, the given symbol is used.

        enum ChatResultFeedbackKind

        enum ChatResultFeedbackKind {
        Unhelpful = 0,
        Helpful = 1,
        }
        • Represents the type of user feedback received.

        member Helpful

        Helpful = 1
        • The user marked the result as helpful.

        member Unhelpful

        Unhelpful = 0
        • The user marked the result as unhelpful.

        enum CodeActionTriggerKind

        enum CodeActionTriggerKind {
        Invoke = 1,
        Automatic = 2,
        }
        • The reason why code actions were requested.

        member Automatic

        Automatic = 2
        • Code actions were requested automatically.

          This typically happens when current selection in a file changes, but can also be triggered when file content changes.

        member Invoke

        Invoke = 1
        • Code actions were explicitly requested by the user or by an extension.

        enum ColorThemeKind

        enum ColorThemeKind {
        Light = 1,
        Dark = 2,
        HighContrast = 3,
        HighContrastLight = 4,
        }
        • Represents a color theme kind.

        member Dark

        Dark = 2
        • A dark color theme.

        member HighContrast

        HighContrast = 3
        • A dark high contrast color theme.

        member HighContrastLight

        HighContrastLight = 4
        • A light high contrast color theme.

        member Light

        Light = 1
        • A light color theme.

        enum CommentMode

        enum CommentMode {
        Editing = 0,
        Preview = 1,
        }

        member Editing

        Editing = 0
        • Displays the comment editor

        member Preview

        Preview = 1
        • Displays the preview of the comment

        enum CommentThreadCollapsibleState

        enum CommentThreadCollapsibleState {
        Collapsed = 0,
        Expanded = 1,
        }
        • Collapsible state of a

        member Collapsed

        Collapsed = 0
        • Determines an item is collapsed

        member Expanded

        Expanded = 1
        • Determines an item is expanded

        enum CommentThreadState

        enum CommentThreadState {
        Unresolved = 0,
        Resolved = 1,
        }
        • The state of a comment thread.

        member Resolved

        Resolved = 1
        • Resolved thread state

        member Unresolved

        Unresolved = 0
        • Unresolved thread state

        enum CompletionItemKind

        enum CompletionItemKind {
        Text = 0,
        Method = 1,
        Function = 2,
        Constructor = 3,
        Field = 4,
        Variable = 5,
        Class = 6,
        Interface = 7,
        Module = 8,
        Property = 9,
        Unit = 10,
        Value = 11,
        Enum = 12,
        Keyword = 13,
        Snippet = 14,
        Color = 15,
        Reference = 17,
        File = 16,
        Folder = 18,
        EnumMember = 19,
        Constant = 20,
        Struct = 21,
        Event = 22,
        Operator = 23,
        TypeParameter = 24,
        User = 25,
        Issue = 26,
        }
        • Completion item kinds.

        member Class

        Class = 6
        • The Class completion item kind.

        member Color

        Color = 15
        • The Color completion item kind.

        member Constant

        Constant = 20
        • The Constant completion item kind.

        member Constructor

        Constructor = 3
        • The Constructor completion item kind.

        member Enum

        Enum = 12
        • The Enum completion item kind.

        member EnumMember

        EnumMember = 19
        • The EnumMember completion item kind.

        member Event

        Event = 22
        • The Event completion item kind.

        member Field

        Field = 4
        • The Field completion item kind.

        member File

        File = 16
        • The File completion item kind.

        member Folder

        Folder = 18
        • The Folder completion item kind.

        member Function

        Function = 2
        • The Function completion item kind.

        member Interface

        Interface = 7
        • The Interface completion item kind.

        member Issue

        Issue = 26
        • The Issue completion item kind.

        member Keyword

        Keyword = 13
        • The Keyword completion item kind.

        member Method

        Method = 1
        • The Method completion item kind.

        member Module

        Module = 8
        • The Module completion item kind.

        member Operator

        Operator = 23
        • The Operator completion item kind.

        member Property

        Property = 9
        • The Property completion item kind.

        member Reference

        Reference = 17
        • The Reference completion item kind.

        member Snippet

        Snippet = 14
        • The Snippet completion item kind.

        member Struct

        Struct = 21
        • The Struct completion item kind.

        member Text

        Text = 0
        • The Text completion item kind.

        member TypeParameter

        TypeParameter = 24
        • The TypeParameter completion item kind.

        member Unit

        Unit = 10
        • The Unit completion item kind.

        member User

        User = 25
        • The User completion item kind.

        member Value

        Value = 11
        • The Value completion item kind.

        member Variable

        Variable = 5
        • The Variable completion item kind.

        enum CompletionItemTag

        enum CompletionItemTag {
        Deprecated = 1,
        }
        • Completion item tags are extra annotations that tweak the rendering of a completion item.

        member Deprecated

        Deprecated = 1
        • Render a completion as obsolete, usually using a strike-out.

        enum CompletionTriggerKind

        enum CompletionTriggerKind {
        Invoke = 0,
        TriggerCharacter = 1,
        TriggerForIncompleteCompletions = 2,
        }
        • How a was triggered

        member Invoke

        Invoke = 0
        • Completion was triggered normally.

        member TriggerCharacter

        TriggerCharacter = 1
        • Completion was triggered by a trigger character.

        member TriggerForIncompleteCompletions

        TriggerForIncompleteCompletions = 2
        • Completion was re-triggered as current completion list is incomplete

        enum ConfigurationTarget

        enum ConfigurationTarget {
        Global = 1,
        Workspace = 2,
        WorkspaceFolder = 3,
        }
        • The configuration target

        member Global

        Global = 1
        • Global configuration

        member Workspace

        Workspace = 2
        • Workspace configuration

        member WorkspaceFolder

        WorkspaceFolder = 3
        • Workspace folder configuration

        enum DebugConfigurationProviderTriggerKind

        enum DebugConfigurationProviderTriggerKind {
        Initial = 1,
        Dynamic = 2,
        }
        • A DebugConfigurationProviderTriggerKind specifies when the provideDebugConfigurations method of a DebugConfigurationProvider is triggered. Currently there are two situations: to provide the initial debug configurations for a newly created launch.json or to provide dynamically generated debug configurations when the user asks for them through the UI (e.g. via the "Select and Start Debugging" command). A trigger kind is used when registering a DebugConfigurationProvider with debug.registerDebugConfigurationProvider.

        member Dynamic

        Dynamic = 2
        • DebugConfigurationProvider.provideDebugConfigurations is called to provide dynamically generated debug configurations when the user asks for them through the UI (e.g. via the "Select and Start Debugging" command).

        member Initial

        Initial = 1
        • DebugConfigurationProvider.provideDebugConfigurations is called to provide the initial debug configurations for a newly created launch.json.

        enum DebugConsoleMode

        enum DebugConsoleMode {
        Separate = 0,
        MergeWithParent = 1,
        }
        • Debug console mode used by debug session, see .

        member MergeWithParent

        MergeWithParent = 1
        • Debug session should share debug console with its parent session. This value has no effect for sessions which do not have a parent session.

        member Separate

        Separate = 0
        • Debug session should have a separate debug console.

        enum DecorationRangeBehavior

        enum DecorationRangeBehavior {
        OpenOpen = 0,
        ClosedClosed = 1,
        OpenClosed = 2,
        ClosedOpen = 3,
        }
        • Describes the behavior of decorations when typing/editing at their edges.

        member ClosedClosed

        ClosedClosed = 1
        • The decoration's range will not widen when edits occur at the start or end.

        member ClosedOpen

        ClosedOpen = 3
        • The decoration's range will widen when edits occur at the end, but not at the start.

        member OpenClosed

        OpenClosed = 2
        • The decoration's range will widen when edits occur at the start, but not at the end.

        member OpenOpen

        OpenOpen = 0
        • The decoration's range will widen when edits occur at the start or end.

        enum DiagnosticSeverity

        enum DiagnosticSeverity {
        Error = 0,
        Warning = 1,
        Information = 2,
        Hint = 3,
        }
        • Represents the severity of diagnostics.

        member Error

        Error = 0
        • Something not allowed by the rules of a language or other means.

        member Hint

        Hint = 3
        • Something to hint to a better way of doing it, like proposing a refactoring.

        member Information

        Information = 2
        • Something to inform about but not a problem.

        member Warning

        Warning = 1
        • Something suspicious but allowed.

        enum DiagnosticTag

        enum DiagnosticTag {
        Unnecessary = 1,
        Deprecated = 2,
        }
        • Additional metadata about the type of a diagnostic.

        member Deprecated

        Deprecated = 2
        • Deprecated or obsolete code.

          Diagnostics with this tag are rendered with a strike through.

        member Unnecessary

        Unnecessary = 1
        • Unused or unnecessary code.

          Diagnostics with this tag are rendered faded out. The amount of fading is controlled by the "editorUnnecessaryCode.opacity" theme color. For example, "editorUnnecessaryCode.opacity": "#000000c0" will render the code with 75% opacity. For high contrast themes, use the "editorUnnecessaryCode.border" theme color to underline unnecessary code instead of fading it out.

        enum DocumentHighlightKind

        enum DocumentHighlightKind {
        Text = 0,
        Read = 1,
        Write = 2,
        }
        • A document highlight kind.

        member Read

        Read = 1
        • Read-access of a symbol, like reading a variable.

        member Text

        Text = 0
        • A textual occurrence.

        member Write

        Write = 2
        • Write-access of a symbol, like writing to a variable.

        enum DocumentPasteTriggerKind

        enum DocumentPasteTriggerKind {
        Automatic = 0,
        PasteAs = 1,
        }
        • The reason why paste edits were requested.

        member Automatic

        Automatic = 0
        • Pasting was requested as part of a normal paste operation.

        member PasteAs

        PasteAs = 1
        • Pasting was requested by the user with the paste as command.

        enum EndOfLine

        enum EndOfLine {
        LF = 1,
        CRLF = 2,
        }
        • Represents an end of line character sequence in a .

        member CRLF

        CRLF = 2
        • The carriage return line feed \r\n sequence.

        member LF

        LF = 1
        • The line feed \n character.

        enum EnvironmentVariableMutatorType

        enum EnvironmentVariableMutatorType {
        Replace = 1,
        Append = 2,
        Prepend = 3,
        }
        • A type of mutation that can be applied to an environment variable.

        member Append

        Append = 2
        • Append to the end of the variable's existing value.

        member Prepend

        Prepend = 3
        • Prepend to the start of the variable's existing value.

        member Replace

        Replace = 1
        • Replace the variable's existing value.

        enum ExtensionKind

        enum ExtensionKind {
        UI = 1,
        Workspace = 2,
        }
        • In a remote window the extension kind describes if an extension runs where the UI (window) runs or if an extension runs remotely.

        member UI

        UI = 1
        • Extension runs where the UI runs.

        member Workspace

        Workspace = 2
        • Extension runs where the remote extension host runs.

        enum ExtensionMode

        enum ExtensionMode {
        Production = 1,
        Development = 2,
        Test = 3,
        }
        • The ExtensionMode is provided on the ExtensionContext and indicates the mode the specific extension is running in.

        member Development

        Development = 2
        • The extension is running from an --extensionDevelopmentPath provided when launching the editor.

        member Production

        Production = 1
        • The extension is installed normally (for example, from the marketplace or VSIX) in the editor.

        member Test

        Test = 3
        • The extension is running from an --extensionTestsPath and the extension host is running unit tests.

        enum FileChangeType

        enum FileChangeType {
        Changed = 1,
        Created = 2,
        Deleted = 3,
        }
        • Enumeration of file change types.

        member Changed

        Changed = 1
        • The contents or metadata of a file have changed.

        member Created

        Created = 2
        • A file has been created.

        member Deleted

        Deleted = 3
        • A file has been deleted.

        enum FilePermission

        enum FilePermission {
        Readonly = 1,
        }
        • Permissions of a file.

        member Readonly

        Readonly = 1
        • The file is readonly.

          *Note:* All FileStat from a FileSystemProvider that is registered with the option isReadonly: true will be implicitly handled as if FilePermission.Readonly is set. As a consequence, it is not possible to have a readonly file system provider registered where some FileStat are not readonly.

        enum FileType

        enum FileType {
        Unknown = 0,
        File = 1,
        Directory = 2,
        SymbolicLink = 64,
        }
        • Enumeration of file types. The types File and Directory can also be a symbolic links, in that case use FileType.File | FileType.SymbolicLink and FileType.Directory | FileType.SymbolicLink.

        member Directory

        Directory = 2
        • A directory.

        member File

        File = 1
        • A regular file.

        SymbolicLink = 64
        • A symbolic link to a file.

        member Unknown

        Unknown = 0
        • The file type is unknown.

        enum FoldingRangeKind

        enum FoldingRangeKind {
        Comment = 1,
        Imports = 2,
        Region = 3,
        }
        • An enumeration of specific folding range kinds. The kind is an optional field of a FoldingRange and is used to distinguish specific folding ranges such as ranges originated from comments. The kind is used by commands like Fold all comments or Fold all regions. If the kind is not set on the range, the range originated from a syntax element other than comments, imports or region markers.

        member Comment

        Comment = 1
        • Kind for folding range representing a comment.

        member Imports

        Imports = 2
        • Kind for folding range representing a import.

        member Region

        Region = 3
        • Kind for folding range representing regions originating from folding markers like #region and #endregion.

        enum IndentAction

        enum IndentAction {
        None = 0,
        Indent = 1,
        IndentOutdent = 2,
        Outdent = 3,
        }
        • Describes what to do with the indentation when pressing Enter.

        member Indent

        Indent = 1
        • Insert new line and indent once (relative to the previous line's indentation).

        member IndentOutdent

        IndentOutdent = 2
        • Insert two new lines: - the first one indented which will hold the cursor - the second one at the same indentation level

        member None

        None = 0
        • Insert new line and copy the previous line's indentation.

        member Outdent

        Outdent = 3
        • Insert new line and outdent once (relative to the previous line's indentation).

        enum InlayHintKind

        enum InlayHintKind {
        Type = 1,
        Parameter = 2,
        }
        • Inlay hint kinds.

          The kind of an inline hint defines its appearance, e.g the corresponding foreground and background colors are being used.

        member Parameter

        Parameter = 2
        • An inlay hint that is for a parameter.

        member Type

        Type = 1
        • An inlay hint that is for a type annotation.

        enum InlineCompletionTriggerKind

        enum InlineCompletionTriggerKind {
        Invoke = 0,
        Automatic = 1,
        }
        • Describes how an was triggered.

        member Automatic

        Automatic = 1
        • Completion was triggered automatically while editing. It is sufficient to return a single completion item in this case.

        member Invoke

        Invoke = 0
        • Completion was triggered explicitly by a user gesture. Return multiple completion items to enable cycling through them.

        enum InputBoxValidationSeverity

        enum InputBoxValidationSeverity {
        Info = 1,
        Warning = 2,
        Error = 3,
        }
        • The severity level for input box validation.

        member Error

        Error = 3
        • Error severity level.

        member Info

        Info = 1
        • Informational severity level.

        member Warning

        Warning = 2
        • Warning severity level.

        enum LanguageModelChatMessageRole

        enum LanguageModelChatMessageRole {
        User = 1,
        Assistant = 2,
        }
        • Represents the role of a chat message. This is either the user or the assistant.

        member Assistant

        Assistant = 2
        • The assistant role, e.g. the language model generating responses.

        member User

        User = 1
        • The user role, e.g the human interacting with a language model.

        enum LanguageModelChatToolMode

        enum LanguageModelChatToolMode {
        Auto = 1,
        Required = 2,
        }
        • A tool-calling mode for the language model to use.

        member Auto

        Auto = 1
        • The language model can choose to call a tool or generate a message. Is the default.

        member Required

        Required = 2
        • The language model must call one of the provided tools. Note- some models only support a single tool when using this mode.

        enum LanguageStatusSeverity

        enum LanguageStatusSeverity {
        Information = 0,
        Warning = 1,
        Error = 2,
        }
        • Represents the severity level of a language status.

        member Error

        Error = 2
        • Error severity level.

        member Information

        Information = 0
        • Informational severity level.

        member Warning

        Warning = 1
        • Warning severity level.

        enum LogLevel

        enum LogLevel {
        Off = 0,
        Trace = 1,
        Debug = 2,
        Info = 3,
        Warning = 4,
        Error = 5,
        }
        • Log levels

        member Debug

        Debug = 2
        • Messages with debug and higher log level are logged with this level.

        member Error

        Error = 5
        • Only error messages are logged with this level.

        member Info

        Info = 3
        • Messages with info and higher log level are logged with this level.

        member Off

        Off = 0
        • No messages are logged with this level.

        member Trace

        Trace = 1
        • All messages are logged with this level.

        member Warning

        Warning = 4
        • Messages with warning and higher log level are logged with this level.

        enum NotebookCellKind

        enum NotebookCellKind {
        Markup = 1,
        Code = 2,
        }
        • A notebook cell kind.

        member Code

        Code = 2
        • A code-cell is source that can be and that produces .

        member Markup

        Markup = 1
        • A markup-cell is formatted source that is used for display.

        enum NotebookCellStatusBarAlignment

        enum NotebookCellStatusBarAlignment {
        Left = 1,
        Right = 2,
        }
        • Represents the alignment of status bar items.

        member Left

        Left = 1
        • Aligned to the left side.

        member Right

        Right = 2
        • Aligned to the right side.

        enum NotebookControllerAffinity

        enum NotebookControllerAffinity {
        Default = 1,
        Preferred = 2,
        }

        member Default

        Default = 1
        • Default affinity.

        member Preferred

        Preferred = 2
        • A controller is preferred for a notebook.

        enum NotebookEditorRevealType

        enum NotebookEditorRevealType {
        Default = 0,
        InCenter = 1,
        InCenterIfOutsideViewport = 2,
        AtTop = 3,
        }
        • Represents a notebook editor that is attached to a .

        member AtTop

        AtTop = 3
        • The range will always be revealed at the top of the viewport.

        member Default

        Default = 0
        • The range will be revealed with as little scrolling as possible.

        member InCenter

        InCenter = 1
        • The range will always be revealed in the center of the viewport.

        member InCenterIfOutsideViewport

        InCenterIfOutsideViewport = 2
        • If the range is outside the viewport, it will be revealed in the center of the viewport. Otherwise, it will be revealed with as little scrolling as possible.

        enum OverviewRulerLane

        enum OverviewRulerLane {
        Left = 1,
        Center = 2,
        Right = 4,
        Full = 7,
        }
        • Represents different positions for rendering a decoration in an . The overview ruler supports three lanes.

        member Center

        Center = 2
        • The center lane of the overview ruler.

        member Full

        Full = 7
        • All lanes of the overview ruler.

        member Left

        Left = 1
        • The left lane of the overview ruler.

        member Right

        Right = 4
        • The right lane of the overview ruler.

        enum ProgressLocation

        enum ProgressLocation {
        SourceControl = 1,
        Window = 10,
        Notification = 15,
        }
        • A location in the editor at which progress information can be shown. It depends on the location how progress is visually represented.

        member Notification

        Notification = 15
        • Show progress as notification with an optional cancel button. Supports to show infinite and discrete progress but does not support rendering of icons.

        member SourceControl

        SourceControl = 1
        • Show progress for the source control viewlet, as overlay for the icon and as progress bar inside the viewlet (when visible). Neither supports cancellation nor discrete progress nor a label to describe the operation.

        member Window

        Window = 10
        • Show progress in the status bar of the editor. Neither supports cancellation nor discrete progress. Supports rendering of via the $(<name>)-syntax in the progress label.

        enum QuickPickItemKind

        enum QuickPickItemKind {
        Separator = -1,
        Default = 0,
        }
        • The kind of .

        member Default

        Default = 0

        member Separator

        Separator = -1
        • When a QuickPickItem has a kind of Separator, the item is just a visual separator and does not represent a real item. The only property that applies is . All other properties on QuickPickItem will be ignored and have no effect.

        enum ShellQuoting

        enum ShellQuoting {
        Escape = 1,
        Strong = 2,
        Weak = 3,
        }
        • Defines how an argument should be quoted if it contains spaces or unsupported characters.

        member Escape

        Escape = 1
        • Character escaping should be used. This for example uses \ on bash and ` on PowerShell.

        member Strong

        Strong = 2
        • Strong string quoting should be used. This for example uses " for Windows cmd and ' for bash and PowerShell. Strong quoting treats arguments as literal strings. Under PowerShell echo 'The value is $(2 * 3)' will print The value is $(2 * 3)

        member Weak

        Weak = 3
        • Weak string quoting should be used. This for example uses " for Windows cmd, bash and PowerShell. Weak quoting still performs some kind of evaluation inside the quoted string. Under PowerShell echo "The value is $(2 * 3)" will print The value is 6

        enum SignatureHelpTriggerKind

        enum SignatureHelpTriggerKind {
        Invoke = 1,
        TriggerCharacter = 2,
        ContentChange = 3,
        }
        • How a was triggered.

        member ContentChange

        ContentChange = 3
        • Signature help was triggered by the cursor moving or by the document content changing.

        member Invoke

        Invoke = 1
        • Signature help was invoked manually by the user or by a command.

        member TriggerCharacter

        TriggerCharacter = 2
        • Signature help was triggered by a trigger character.

        enum StatusBarAlignment

        enum StatusBarAlignment {
        Left = 1,
        Right = 2,
        }
        • Represents the alignment of status bar items.

        member Left

        Left = 1
        • Aligned to the left side.

        member Right

        Right = 2
        • Aligned to the right side.

        enum SymbolKind

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

        member Array

        Array = 17
        • The Array symbol kind.

        member Boolean

        Boolean = 16
        • The Boolean symbol kind.

        member Class

        Class = 4
        • The Class symbol kind.

        member Constant

        Constant = 13
        • The Constant symbol kind.

        member Constructor

        Constructor = 8
        • The Constructor symbol kind.

        member Enum

        Enum = 9
        • The Enum symbol kind.

        member EnumMember

        EnumMember = 21
        • The EnumMember symbol kind.

        member Event

        Event = 23
        • The Event symbol kind.

        member Field

        Field = 7
        • The Field symbol kind.

        member File

        File = 0
        • The File symbol kind.

        member Function

        Function = 11
        • The Function symbol kind.

        member Interface

        Interface = 10
        • The Interface symbol kind.

        member Key

        Key = 19
        • The Key symbol kind.

        member Method

        Method = 5
        • The Method symbol kind.

        member Module

        Module = 1
        • The Module symbol kind.

        member Namespace

        Namespace = 2
        • The Namespace symbol kind.

        member Null

        Null = 20
        • The Null symbol kind.

        member Number

        Number = 15
        • The Number symbol kind.

        member Object

        Object = 18
        • The Object symbol kind.

        member Operator

        Operator = 24
        • The Operator symbol kind.

        member Package

        Package = 3
        • The Package symbol kind.

        member Property

        Property = 6
        • The Property symbol kind.

        member String

        String = 14
        • The String symbol kind.

        member Struct

        Struct = 22
        • The Struct symbol kind.

        member TypeParameter

        TypeParameter = 25
        • The TypeParameter symbol kind.

        member Variable

        Variable = 12
        • The Variable symbol kind.

        enum SymbolTag

        enum SymbolTag {
        Deprecated = 1,
        }
        • Symbol tags are extra annotations that tweak the rendering of a symbol.

        member Deprecated

        Deprecated = 1
        • Render a symbol as obsolete, usually using a strike-out.

        enum SyntaxTokenType

        enum SyntaxTokenType {
        Other = 0,
        Comment = 1,
        String = 2,
        RegEx = 3,
        }
        • Enumeration of commonly encountered syntax token types.

        member Comment

        Comment = 1
        • A comment.

        member Other

        Other = 0
        • Everything except tokens that are part of comments, string literals and regular expressions.

        member RegEx

        RegEx = 3
        • A regular expression.

        member String

        String = 2
        • A string literal.

        enum TaskPanelKind

        enum TaskPanelKind {
        Shared = 1,
        Dedicated = 2,
        New = 3,
        }
        • Controls how the task channel is used between tasks

        member Dedicated

        Dedicated = 2
        • Uses a dedicated panel for this tasks. The panel is not shared with other tasks.

        member New

        New = 3
        • Creates a new panel whenever this task is executed.

        member Shared

        Shared = 1
        • Shares a panel with other tasks. This is the default.

        enum TaskRevealKind

        enum TaskRevealKind {
        Always = 1,
        Silent = 2,
        Never = 3,
        }
        • Controls the behaviour of the terminal's visibility.

        member Always

        Always = 1
        • Always brings the terminal to front if the task is executed.

        member Never

        Never = 3
        • The terminal never comes to front when the task is executed.

        member Silent

        Silent = 2
        • Only brings the terminal to front if a problem is detected executing the task (e.g. the task couldn't be started because).

        enum TaskScope

        enum TaskScope {
        Global = 1,
        Workspace = 2,
        }
        • The scope of a task.

        member Global

        Global = 1
        • The task is a global task. Global tasks are currently not supported.

        member Workspace

        Workspace = 2
        • The task is a workspace task

        enum TerminalExitReason

        enum TerminalExitReason {
        Unknown = 0,
        Shutdown = 1,
        Process = 2,
        User = 3,
        Extension = 4,
        }
        • Terminal exit reason kind.

        member Extension

        Extension = 4
        • An extension disposed the terminal.

        member Process

        Process = 2
        • The shell process exited.

        member Shutdown

        Shutdown = 1
        • The window closed/reloaded.

        member Unknown

        Unknown = 0
        • Unknown reason.

        member User

        User = 3
        • The user closed the terminal.

        enum TerminalLocation

        enum TerminalLocation {
        Panel = 1,
        Editor = 2,
        }
        • The location of the terminal.

        member Editor

        Editor = 2
        • In the editor area

        member Panel

        Panel = 1
        • In the terminal view

        enum TerminalShellExecutionCommandLineConfidence

        enum TerminalShellExecutionCommandLineConfidence {
        Low = 0,
        Medium = 1,
        High = 2,
        }

        member High

        High = 2
        • The command line value confidence is high. This means that the value was explicitly sent from the shell integration script or the command was executed via the TerminalShellIntegration.executeCommand API.

        member Low

        Low = 0
        • The command line value confidence is low. This means that the value was read from the terminal buffer using markers reported by the shell integration script. Additionally one of the following conditions will be met:

          - The command started on the very left-most column which is unusual, or - The command is multi-line which is more difficult to accurately detect due to line continuation characters and right prompts. - Command line markers were not reported by the shell integration script.

        member Medium

        Medium = 1
        • The command line value confidence is medium. This means that the value was read from the terminal buffer using markers reported by the shell integration script. The command is single-line and does not start on the very left-most column (which is unusual).

        enum TestRunProfileKind

        enum TestRunProfileKind {
        Run = 1,
        Debug = 2,
        Coverage = 3,
        }
        • The kind of executions that control.

        member Coverage

        Coverage = 3
        • The Coverage test profile kind.

        member Debug

        Debug = 2
        • The Debug test profile kind.

        member Run

        Run = 1
        • The Run test profile kind.

        enum TextDocumentChangeReason

        enum TextDocumentChangeReason {
        Undo = 1,
        Redo = 2,
        }
        • Reasons for why a text document has changed.

        member Redo

        Redo = 2
        • The text change is caused by an redo operation.

        member Undo

        Undo = 1
        • The text change is caused by an undo operation.

        enum TextDocumentSaveReason

        enum TextDocumentSaveReason {
        Manual = 1,
        AfterDelay = 2,
        FocusOut = 3,
        }
        • Represents reasons why a text document is saved.

        member AfterDelay

        AfterDelay = 2
        • Automatic after a delay.

        member FocusOut

        FocusOut = 3
        • When the editor lost focus.

        member Manual

        Manual = 1
        • Manually triggered, e.g. by the user pressing save, by starting debugging, or by an API call.

        enum TextEditorCursorStyle

        enum TextEditorCursorStyle {
        Line = 1,
        Block = 2,
        Underline = 3,
        LineThin = 4,
        BlockOutline = 5,
        UnderlineThin = 6,
        }
        • Rendering style of the cursor.

        member Block

        Block = 2
        • Render the cursor as a block filled.

        member BlockOutline

        BlockOutline = 5
        • Render the cursor as a block outlined.

        member Line

        Line = 1
        • Render the cursor as a vertical thick line.

        member LineThin

        LineThin = 4
        • Render the cursor as a vertical thin line.

        member Underline

        Underline = 3
        • Render the cursor as a thick horizontal line.

        member UnderlineThin

        UnderlineThin = 6
        • Render the cursor as a thin horizontal line.

        enum TextEditorLineNumbersStyle

        enum TextEditorLineNumbersStyle {
        Off = 0,
        On = 1,
        Relative = 2,
        Interval = 3,
        }
        • Rendering style of the line numbers.

        member Interval

        Interval = 3
        • Render the line numbers on every 10th line number.

        member Off

        Off = 0
        • Do not render the line numbers.

        member On

        On = 1
        • Render the line numbers.

        member Relative

        Relative = 2
        • Render the line numbers with values relative to the primary cursor location.

        enum TextEditorRevealType

        enum TextEditorRevealType {
        Default = 0,
        InCenter = 1,
        InCenterIfOutsideViewport = 2,
        AtTop = 3,
        }
        • Represents different strategies in a text editor.

        member AtTop

        AtTop = 3
        • The range will always be revealed at the top of the viewport.

        member Default

        Default = 0
        • The range will be revealed with as little scrolling as possible.

        member InCenter

        InCenter = 1
        • The range will always be revealed in the center of the viewport.

        member InCenterIfOutsideViewport

        InCenterIfOutsideViewport = 2
        • If the range is outside the viewport, it will be revealed in the center of the viewport. Otherwise, it will be revealed with as little scrolling as possible.

        enum TextEditorSelectionChangeKind

        enum TextEditorSelectionChangeKind {
        Keyboard = 1,
        Mouse = 2,
        Command = 3,
        }
        • Represents sources that can cause .

        member Command

        Command = 3
        • Selection changed because a command ran.

        member Keyboard

        Keyboard = 1
        • Selection changed due to typing in the editor.

        member Mouse

        Mouse = 2
        • Selection change due to clicking in the editor.

        enum TreeItemCheckboxState

        enum TreeItemCheckboxState {
        Unchecked = 0,
        Checked = 1,
        }
        • Checkbox state of the tree item

        member Checked

        Checked = 1
        • Determines an item is checked

        member Unchecked

        Unchecked = 0
        • Determines an item is unchecked

        enum TreeItemCollapsibleState

        enum TreeItemCollapsibleState {
        None = 0,
        Collapsed = 1,
        Expanded = 2,
        }
        • Collapsible state of the tree item

        member Collapsed

        Collapsed = 1
        • Determines an item is collapsed

        member Expanded

        Expanded = 2
        • Determines an item is expanded

        member None

        None = 0
        • Determines an item can be neither collapsed nor expanded. Implies it has no children.

        enum UIKind

        enum UIKind {
        Desktop = 1,
        Web = 2,
        }
        • Possible kinds of UI that can use extensions.

        member Desktop

        Desktop = 1
        • Extensions are accessed from a desktop application.

        member Web

        Web = 2
        • Extensions are accessed from a web browser.

        enum ViewColumn

        enum ViewColumn {
        Active = -1,
        Beside = -2,
        One = 1,
        Two = 2,
        Three = 3,
        Four = 4,
        Five = 5,
        Six = 6,
        Seven = 7,
        Eight = 8,
        Nine = 9,
        }
        • Denotes a location of an editor in the window. Editors can be arranged in a grid and each column represents one editor location in that grid by counting the editors in order of their appearance.

        member Active

        Active = -1
        • A *symbolic* editor column representing the currently active column. This value can be used when opening editors, but the *resolved* -value of editors will always be One, Two, Three,... or undefined but never Active.

        member Beside

        Beside = -2
        • A *symbolic* editor column representing the column to the side of the active one. This value can be used when opening editors, but the *resolved* -value of editors will always be One, Two, Three,... or undefined but never Beside.

        member Eight

        Eight = 8
        • The eighth editor column.

        member Five

        Five = 5
        • The fifth editor column.

        member Four

        Four = 4
        • The fourth editor column.

        member Nine

        Nine = 9
        • The ninth editor column.

        member One

        One = 1
        • The first editor column.

        member Seven

        Seven = 7
        • The seventh editor column.

        member Six

        Six = 6
        • The sixth editor column.

        member Three

        Three = 3
        • The third editor column.

        member Two

        Two = 2
        • The second editor column.

        type AuthenticationForceNewSessionOptions

        type AuthenticationForceNewSessionOptions =
        AuthenticationGetSessionPresentationOptions;

        type CharacterPair

        type CharacterPair = [string, string];
        • A tuple of two characters, like a pair of opening and closing brackets.

        type ChatParticipantToolToken

        type ChatParticipantToolToken = never;
        • A token that can be passed to lm.invokeTool when invoking a tool inside the context of handling a chat request.

        type ChatRequestHandler

        type ChatRequestHandler = (
        request: ChatRequest,
        context: ChatContext,
        response: ChatResponseStream,
        token: CancellationToken
        ) => ProviderResult<ChatResult | void>;
        • A chat request handler is a callback that will be invoked when a request is made to a chat participant.

        type ChatResponsePart

        type ChatResponsePart =
        | ChatResponseMarkdownPart
        | ChatResponseFileTreePart
        | ChatResponseAnchorPart
        | ChatResponseProgressPart
        | ChatResponseReferencePart
        | ChatResponseCommandButtonPart;
        • Represents the different chat response types.

        type ConfigurationScope

        type ConfigurationScope =
        | Uri
        | TextDocument
        | WorkspaceFolder
        | {
        /**
        * The uri of a {@link TextDocument text document}
        */
        uri?: Uri;
        /**
        * The language of a text document
        */
        languageId: string;
        };
        • The configuration scope which can be: - a Uri representing a resource - a TextDocument representing an open text document - a WorkspaceFolder representing a workspace folder - an object containing: - uri: an optional Uri of a text document - languageId: the language identifier of a text document

        type DebugAdapterDescriptor

        type DebugAdapterDescriptor =
        | DebugAdapterExecutable
        | DebugAdapterServer
        | DebugAdapterNamedPipeServer
        | DebugAdapterInlineImplementation;
        • Represents the different types of debug adapters

        type Declaration

        type Declaration = Location | Location[] | LocationLink[];
        • The declaration of a symbol representation as one or many or .

        type Definition

        type Definition = Location | Location[];
        • The definition of a symbol represented as one or many . For most programming languages there is only one location at which a symbol is defined.

        type DefinitionLink = LocationLink;
        • Information about where a symbol is defined.

          Provides additional metadata over normal Location definitions, including the range of the defining symbol

        type DocumentSelector

        type DocumentSelector =
        | DocumentFilter
        | string
        | ReadonlyArray<DocumentFilter | string>;
        • A language selector is the combination of one or many language identifiers and .

          *Note* that a document selector that is just a language identifier selects *all* documents, even those that are not saved on disk. Only use such selectors when a feature works without further context, e.g. without the need to resolve related 'files'.

          Example 1

          let sel:DocumentSelector = { scheme: 'file', language: 'typescript' };

        type FileCoverageDetail

        type FileCoverageDetail = StatementCoverage | DeclarationCoverage;

        type GlobPattern

        type GlobPattern = string | RelativePattern;
        • A file glob pattern to match file paths against. This can either be a glob pattern string (like **​/*.{ts,js} or *.{ts,js}) or a .

          Glob patterns can have the following syntax: * * to match zero 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)

          Note: a backslash (\) is not valid within a glob pattern. If you have an existing file path to match against, consider to use the support that takes care of converting any backslash into slash. Otherwise, make sure to convert any backslash to slash when creating the glob pattern.

        type IconPath

        type IconPath =
        | Uri
        | {
        /**
        * The icon path for the light theme.
        */
        light: Uri;
        /**
        * The icon path for the dark theme.
        */
        dark: Uri;
        }
        | ThemeIcon;
        • Represents an icon in the UI. This is either an uri, separate uris for the light- and dark-themes, or a .

        type InlineValue

        type InlineValue =
        | InlineValueText
        | InlineValueVariableLookup
        | InlineValueEvaluatableExpression;
        • Inline value information can be provided by different means: - directly as a text value (class InlineValueText). - as a name to use for a variable lookup (class InlineValueVariableLookup) - as an evaluatable expression (class InlineValueEvaluatableExpression) The InlineValue types combines all inline value types into one type.

        type MarkedString

        type MarkedString =
        | string
        | {
        /**
        * The language of a markdown code block
        * @deprecated please use {@linkcode MarkdownString} instead
        */
        language: string;
        /**
        * The code snippet of a markdown code block.
        * @deprecated please use {@linkcode MarkdownString} instead
        */
        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. Note that markdown strings will be sanitized - that means html will be escaped.

          Deprecated

          This type is deprecated, please use instead.

        type ProviderResult

        type ProviderResult<T> = T | undefined | null | Thenable<T | undefined | null>;
        • A provider result represents the values a provider, like the , may return. For once this is the actual result type T, like Hover, or a thenable that resolves to that type T. In addition, null and undefined can be returned - either directly or from a thenable.

          The snippets below are all valid implementations of the :

          let a: HoverProvider = {
          provideHover(doc, pos, token): ProviderResult<Hover> {
          return new Hover('Hello World');
          }
          }
          let b: HoverProvider = {
          provideHover(doc, pos, token): ProviderResult<Hover> {
          return new Promise(resolve => {
          resolve(new Hover('Hello World'));
          });
          }
          }
          let c: HoverProvider = {
          provideHover(doc, pos, token): ProviderResult<Hover> {
          return; // undefined
          }
          }

        namespace vscode.authentication

        namespace vscode.authentication {}
        • Namespace for authentication.

        variable onDidChangeSessions

        const onDidChangeSessions: Event<AuthenticationSessionsChangeEvent>;
        • An Event which fires when the authentication sessions of an authentication provider have been added, removed, or changed.

        function getAccounts

        getAccounts: (
        providerId: string
        ) => Thenable<readonly AuthenticationSessionAccountInformation[]>;
        • Get all accounts that the user is logged in to for the specified provider. Use this paired with getSession in order to get an authentication session for a specific account.

          Currently, there are only two authentication providers that are contributed from built in extensions to the editor that implement GitHub and Microsoft authentication: their providerId's are 'github' and 'microsoft'.

          Note: Getting accounts does not imply that your extension has access to that account or its authentication sessions. You can verify access to the account by calling getSession.

          Parameter providerId

          The id of the provider to use

          Returns

          A thenable that resolves to a readonly array of authentication accounts.

        function getSession

        getSession: {
        (
        providerId: string,
        scopes: readonly string[],
        options: AuthenticationGetSessionOptions & {
        createIfNone: true | AuthenticationGetSessionPresentationOptions;
        }
        ): Thenable<AuthenticationSession>;
        (
        providerId: string,
        scopes: readonly string[],
        options: AuthenticationGetSessionOptions & {
        forceNewSession: true | AuthenticationGetSessionPresentationOptions;
        }
        ): Thenable<AuthenticationSession>;
        (
        providerId: string,
        scopes: readonly string[],
        options?: AuthenticationGetSessionOptions
        ): Thenable<AuthenticationSession>;
        };
        • Get an authentication session matching the desired scopes. Rejects if a provider with providerId is not registered, or if the user does not consent to sharing authentication information with the extension. If there are multiple sessions with the same scopes, the user will be shown a quickpick to select which account they would like to use.

          Currently, there are only two authentication providers that are contributed from built in extensions to the editor that implement GitHub and Microsoft authentication: their providerId's are 'github' and 'microsoft'.

          Parameter providerId

          The id of the provider to use

          Parameter scopes

          A list of scopes representing the permissions requested. These are dependent on the authentication provider

          Parameter options

          The AuthenticationGetSessionOptions to use

          Returns

          A thenable that resolves to an authentication session

        • Get an authentication session matching the desired scopes. Rejects if a provider with providerId is not registered, or if the user does not consent to sharing authentication information with the extension. If there are multiple sessions with the same scopes, the user will be shown a quickpick to select which account they would like to use.

          Currently, there are only two authentication providers that are contributed from built in extensions to the editor that implement GitHub and Microsoft authentication: their providerId's are 'github' and 'microsoft'.

          Parameter providerId

          The id of the provider to use

          Parameter scopes

          A list of scopes representing the permissions requested. These are dependent on the authentication provider

          Parameter options

          The AuthenticationGetSessionOptions to use

          Returns

          A thenable that resolves to an authentication session if available, or undefined if there are no sessions

        function registerAuthenticationProvider

        registerAuthenticationProvider: (
        id: string,
        label: string,
        provider: AuthenticationProvider,
        options?: AuthenticationProviderOptions
        ) => Disposable;
        • Register an authentication provider.

          There can only be one provider per id and an error is being thrown when an id has already been used by another provider. Ids are case-sensitive.

          Parameter id

          The unique identifier of the provider.

          Parameter label

          The human-readable name of the provider.

          Parameter provider

          The authentication provider provider.

          Parameter options

          Additional options for the provider.

          Returns

          A Disposable that unregisters this provider when being disposed.

        namespace vscode.chat

        namespace vscode.chat {}
        • Namespace for chat functionality. Users interact with chat participants by sending messages to them in the chat view. Chat participants can respond with markdown or other types of content via the ChatResponseStream.

        function createChatParticipant

        createChatParticipant: (
        id: string,
        handler: ChatRequestHandler
        ) => ChatParticipant;
        • Create a new instance.

          Parameter id

          A unique identifier for the participant.

          Parameter handler

          A request handler for the participant.

          Returns

          A new chat participant

        namespace vscode.commands

        namespace vscode.commands {}
        • Namespace for dealing with commands. In short, a command is a function with a unique identifier. The function is sometimes also called _command handler_.

          Commands can be added to the editor using the and functions. Commands can be executed or from a UI gesture. Those are:

          * palette - Use the commands-section in package.json to make a command show in the [command palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette). * keybinding - Use the keybindings-section in package.json to enable [keybindings](https://code.visualstudio.com/docs/getstarted/keybindings#_advanced-customization) for your extension.

          Commands from other extensions and from the editor itself are accessible to an extension. However, when invoking an editor command not all argument types are supported.

          This is a sample that registers a command handler and adds an entry for that command to the palette. First register a command handler with the identifier extension.sayHello.

          commands.registerCommand('extension.sayHello', () => {
          window.showInformationMessage('Hello World!');
          });

          Second, bind the command identifier to a title under which it will show in the palette (package.json).

          {
          "contributes": {
          "commands": [{
          "command": "extension.sayHello",
          "title": "Hello World"
          }]
          }
          }

        function executeCommand

        executeCommand: <T = unknown>(command: string, ...rest: any[]) => Thenable<T>;
        • Executes the command denoted by the given command identifier.

          * *Note 1:* When executing an editor command not all types are allowed to be passed as arguments. Allowed are the primitive types string, boolean, number, undefined, and null, as well as , , and . * *Note 2:* There are no restrictions when executing commands that have been contributed by extensions.

          Parameter command

          Identifier of the command to execute.

          Parameter rest

          Parameters passed to the command function.

          Returns

          A thenable that resolves to the returned value of the given command. Returns undefined when the command handler function doesn't return anything.

        function getCommands

        getCommands: (filterInternal?: boolean) => Thenable<string[]>;
        • Retrieve the list of all available commands. Commands starting with an underscore are treated as internal commands.

          Parameter filterInternal

          Set true to not see internal commands (starting with an underscore)

          Returns

          Thenable that resolves to a list of command ids.

        function registerCommand

        registerCommand: (
        command: string,
        callback: (...args: any[]) => any,
        thisArg?: any
        ) => Disposable;
        • Registers a command that can be invoked via a keyboard shortcut, a menu item, an action, or directly.

          Registering a command with an existing command identifier twice will cause an error.

          Parameter command

          A unique identifier for the command.

          Parameter callback

          A command handler function.

          Parameter thisArg

          The this context used when invoking the handler function.

          Returns

          Disposable which unregisters this command on disposal.

        function registerTextEditorCommand

        registerTextEditorCommand: (
        command: string,
        callback: (textEditor: TextEditor, edit: TextEditorEdit, ...args: any[]) => void,
        thisArg?: any
        ) => Disposable;
        • Registers a text editor command that can be invoked via a keyboard shortcut, a menu item, an action, or directly.

          Text editor commands are different from ordinary as they only execute when there is an active editor when the command is called. Also, the command handler of an editor command has access to the active editor and to an -builder. Note that the edit-builder is only valid while the callback executes.

          Parameter command

          A unique identifier for the command.

          Parameter callback

          A command handler function with access to an and an .

          Parameter thisArg

          The this context used when invoking the handler function.

          Returns

          Disposable which unregisters this command on disposal.

        namespace vscode.comments

        namespace vscode.comments {}

          function createCommentController

          createCommentController: (id: string, label: string) => CommentController;
          • Creates a new instance.

            Parameter id

            An id for the comment controller.

            Parameter label

            A human-readable string for the comment controller.

            Returns

            An instance of .

          namespace vscode.debug

          namespace vscode.debug {}
          • Namespace for debug functionality.

          variable activeDebugConsole

          let activeDebugConsole: DebugConsole;
          • The currently active . If no debug session is active, output sent to the debug console is not shown.

          variable activeDebugSession

          let activeDebugSession: DebugSession;
          • The currently active or undefined. The active debug session is the one represented by the debug action floating window or the one currently shown in the drop down menu of the debug action floating window. If no debug session is active, the value is undefined.

          variable activeStackItem

          const activeStackItem: DebugThread | DebugStackFrame;
          • The currently focused thread or stack frame, or undefined if no thread or stack is focused. A thread can be focused any time there is an active debug session, while a stack frame can only be focused when a session is paused and the call stack has been retrieved.

          variable breakpoints

          let breakpoints: readonly Breakpoint[];
          • List of breakpoints.

          variable onDidChangeActiveDebugSession

          const onDidChangeActiveDebugSession: Event<DebugSession>;
          • An Event which fires when the has changed. *Note* that the event also fires when the active debug session changes to undefined.

          variable onDidChangeActiveStackItem

          const onDidChangeActiveStackItem: Event<DebugThread | DebugStackFrame>;

          variable onDidChangeBreakpoints

          const onDidChangeBreakpoints: Event<BreakpointsChangeEvent>;
          • An Event that is emitted when the set of breakpoints is added, removed, or changed.

          variable onDidReceiveDebugSessionCustomEvent

          const onDidReceiveDebugSessionCustomEvent: Event<DebugSessionCustomEvent>;
          • An Event which fires when a custom DAP event is received from the .

          variable onDidStartDebugSession

          const onDidStartDebugSession: Event<DebugSession>;
          • An Event which fires when a new has been started.

          variable onDidTerminateDebugSession

          const onDidTerminateDebugSession: Event<DebugSession>;
          • An Event which fires when a has terminated.

          function addBreakpoints

          addBreakpoints: (breakpoints: readonly Breakpoint[]) => void;
          • Add breakpoints.

            Parameter breakpoints

            The breakpoints to add.

          function asDebugSourceUri

          asDebugSourceUri: (source: DebugProtocolSource, session?: DebugSession) => Uri;
          • Converts a "Source" descriptor object received via the Debug Adapter Protocol into a Uri that can be used to load its contents. If the source descriptor is based on a path, a file Uri is returned. If the source descriptor uses a reference number, a specific debug Uri (scheme 'debug') is constructed that requires a corresponding ContentProvider and a running debug session

            If the "Source" descriptor has insufficient information for creating the Uri, an error is thrown.

            Parameter source

            An object conforming to the [Source](https://microsoft.github.io/debug-adapter-protocol/specification#Types_Source) type defined in the Debug Adapter Protocol.

            Parameter session

            An optional debug session that will be used when the source descriptor uses a reference number to load the contents from an active debug session.

            Returns

            A uri that can be used to load the contents of the source.

          function registerDebugAdapterDescriptorFactory

          registerDebugAdapterDescriptorFactory: (
          debugType: string,
          factory: DebugAdapterDescriptorFactory
          ) => Disposable;
          • Register a for a specific debug type. An extension is only allowed to register a DebugAdapterDescriptorFactory for the debug type(s) defined by the extension. Otherwise an error is thrown. Registering more than one DebugAdapterDescriptorFactory for a debug type results in an error.

            Parameter debugType

            The debug type for which the factory is registered.

            Parameter factory

            The to register.

            Returns

            A Disposable that unregisters this factory when being disposed.

          function registerDebugAdapterTrackerFactory

          registerDebugAdapterTrackerFactory: (
          debugType: string,
          factory: DebugAdapterTrackerFactory
          ) => Disposable;
          • Register a debug adapter tracker factory for the given debug type.

            Parameter debugType

            The debug type for which the factory is registered or '*' for matching all debug types.

            Parameter factory

            The to register.

            Returns

            A Disposable that unregisters this factory when being disposed.

          function registerDebugConfigurationProvider

          registerDebugConfigurationProvider: (
          debugType: string,
          provider: DebugConfigurationProvider,
          triggerKind?: DebugConfigurationProviderTriggerKind
          ) => Disposable;
          • Register a for a specific debug type. The optional can be used to specify when the provideDebugConfigurations method of the provider is triggered. Currently two trigger kinds are possible: with the value Initial (or if no trigger kind argument is given) the provideDebugConfigurations method is used to provide the initial debug configurations to be copied into a newly created launch.json. With the trigger kind Dynamic the provideDebugConfigurations method is used to dynamically determine debug configurations to be presented to the user (in addition to the static configurations from the launch.json). Please note that the triggerKind argument only applies to the provideDebugConfigurations method: so the resolveDebugConfiguration methods are not affected at all. Registering a single provider with resolve methods for different trigger kinds, results in the same resolve methods called multiple times. More than one provider can be registered for the same type.

            Parameter debugType

            The debug type for which the provider is registered.

            Parameter provider

            The to register.

            Parameter triggerKind

            The for which the 'provideDebugConfiguration' method of the provider is registered. If triggerKind is missing, the value DebugConfigurationProviderTriggerKind.Initial is assumed.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function removeBreakpoints

          removeBreakpoints: (breakpoints: readonly Breakpoint[]) => void;
          • Remove breakpoints.

            Parameter breakpoints

            The breakpoints to remove.

          function startDebugging

          startDebugging: (
          folder: WorkspaceFolder | undefined,
          nameOrConfiguration: string | DebugConfiguration,
          parentSessionOrOptions?: DebugSession | DebugSessionOptions
          ) => Thenable<boolean>;
          • Start debugging by using either a named launch or named compound configuration, or by directly passing a DebugConfiguration. The named configurations are looked up in '.vscode/launch.json' found in the given folder. Before debugging starts, all unsaved files are saved and the launch configurations are brought up-to-date. Folder specific variables used in the configuration (e.g. '${workspaceFolder}') are resolved against the given folder.

            Parameter folder

            The for looking up named configurations and resolving variables or undefined for a non-folder setup.

            Parameter nameOrConfiguration

            Either the name of a debug or compound configuration or a DebugConfiguration object.

            Parameter parentSessionOrOptions

            Debug session options. When passed a parent , assumes options with just this parent session.

            Returns

            A thenable that resolves when debugging could be successfully started.

          function stopDebugging

          stopDebugging: (session?: DebugSession) => Thenable<void>;
          • Stop the given debug session or stop all debug sessions if session is omitted.

            Parameter session

            The to stop; if omitted all sessions are stopped.

            Returns

            A thenable that resolves when the session(s) have been stopped.

          namespace vscode.env

          namespace vscode.env {}
          • Namespace describing the environment the editor runs in.

          variable appHost

          const appHost: string;
          • The hosted location of the application On desktop this is 'desktop' In the web this is the specified embedder i.e. 'github.dev', 'codespaces', or 'web' if the embedder does not provide that information

          variable appName

          const appName: string;
          • The application name of the editor, like 'VS Code'.

          variable appRoot

          const appRoot: string;
          • The application root folder from which the editor is running.

            *Note* that the value is the empty string when running in an environment that has no representation of an application root folder.

          variable clipboard

          const clipboard: Clipboard;
          • The system clipboard.

          variable isNewAppInstall

          const isNewAppInstall: boolean;
          • Indicates that this is a fresh install of the application. true if within the first day of installation otherwise false.

          variable isTelemetryEnabled

          const isTelemetryEnabled: boolean;
          • Indicates whether the users has telemetry enabled. Can be observed to determine if the extension should send telemetry.

          variable language

          const language: string;
          • Represents the preferred user-language, like de-CH, fr, or en-US.

          variable logLevel

          const logLevel: LogLevel;
          • The current log level of the editor.

          variable machineId

          const machineId: string;
          • A unique identifier for the computer.

          variable onDidChangeLogLevel

          const onDidChangeLogLevel: Event<LogLevel>;
          • An Event which fires when the log level of the editor changes.

          variable onDidChangeShell

          const onDidChangeShell: Event<string>;
          • An Event which fires when the default shell changes. This fires with the new shell path.

          variable onDidChangeTelemetryEnabled

          const onDidChangeTelemetryEnabled: Event<boolean>;
          • An Event which fires when the user enabled or disables telemetry. true if the user has enabled telemetry or false if the user has disabled telemetry.

          variable remoteName

          const remoteName: string;
          • The name of a remote. Defined by extensions, popular samples are wsl for the Windows Subsystem for Linux or ssh-remote for remotes using a secure shell.

            *Note* that the value is undefined when there is no remote extension host but that the value is defined in all extension hosts (local and remote) in case a remote extension host exists. Use Extension.extensionKind to know if a specific extension runs remote or not.

          variable sessionId

          const sessionId: string;
          • A unique identifier for the current session. Changes each time the editor is started.

          variable shell

          const shell: string;
          • The detected default shell for the extension host, this is overridden by the terminal.integrated.defaultProfile setting for the extension host's platform. Note that in environments that do not support a shell the value is the empty string.

          variable uiKind

          const uiKind: UIKind;
          • The UI kind property indicates from which UI extensions are accessed from. For example, extensions could be accessed from a desktop application or a web browser.

          variable uriScheme

          const uriScheme: string;
          • The custom uri scheme the editor registers to in the operating system.

          function asExternalUri

          asExternalUri: (target: Uri) => Thenable<Uri>;
          • Resolves a uri to a form that is accessible externally.

            #### http: or https: scheme

            Resolves an *external* uri, such as a http: or https: link, from where the extension is running to a uri to the same resource on the client machine.

            This is a no-op if the extension is running on the client machine.

            If the extension is running remotely, this function automatically establishes a port forwarding tunnel from the local machine to target on the remote and returns a local uri to the tunnel. The lifetime of the port forwarding tunnel is managed by the editor and the tunnel can be closed by the user.

            *Note* that uris passed through openExternal are automatically resolved and you should not call asExternalUri on them.

            #### vscode.env.uriScheme

            Creates a uri that - if opened in a browser (e.g. via openExternal) - will result in a registered UriHandler to trigger.

            Extensions should not make any assumptions about the resulting uri and should not alter it in any way. Rather, extensions can e.g. use this uri in an authentication flow, by adding the uri as callback query argument to the server to authenticate to.

            *Note* that if the server decides to add additional query parameters to the uri (e.g. a token or secret), it will appear in the uri that is passed to the UriHandler.

            **Example** of an authentication flow:

            vscode.window.registerUriHandler({
            handleUri(uri: vscode.Uri): vscode.ProviderResult<void> {
            if (uri.path === '/did-authenticate') {
            console.log(uri.toString());
            }
            }
            });
            const callableUri = await vscode.env.asExternalUri(vscode.Uri.parse(vscode.env.uriScheme + '://my.extension/did-authenticate'));
            await vscode.env.openExternal(callableUri);

            *Note* that extensions should not cache the result of asExternalUri as the resolved uri may become invalid due to a system or user action — for example, in remote cases, a user may close a port forwarding tunnel that was opened by asExternalUri.

            #### Any other scheme

            Any other scheme will be handled as if the provided URI is a workspace URI. In that case, the method will return a URI which, when handled, will make the editor open the workspace.

            Returns

            A uri that can be used on the client machine.

          function createTelemetryLogger

          createTelemetryLogger: (
          sender: TelemetrySender,
          options?: TelemetryLoggerOptions
          ) => TelemetryLogger;
          • Creates a new .

            Parameter sender

            The telemetry sender that is used by the telemetry logger.

            Parameter options

            Options for the telemetry logger.

            Returns

            A new telemetry logger

          function openExternal

          openExternal: (target: Uri) => Thenable<boolean>;
          • Opens a link externally using the default application. Depending on the used scheme this can be: * a browser (http:, https:) * a mail client (mailto:) * VSCode itself (vscode: from vscode.env.uriScheme)

            *Note* that is the right way to open a text document inside the editor, not this function.

            Parameter target

            The uri that should be opened.

            Returns

            A promise indicating if open was successful.

          namespace vscode.extensions

          namespace vscode.extensions {}
          • Namespace for dealing with installed extensions. Extensions are represented by an Extension-interface which enables reflection on them.

            Extension writers can provide APIs to other extensions by returning their API public surface from the activate-call.

            export function activate(context: vscode.ExtensionContext) {
            let api = {
            sum(a, b) {
            return a + b;
            },
            mul(a, b) {
            return a * b;
            }
            };
            // 'export' public api-surface
            return api;
            }

            When depending on the API of another extension add an extensionDependencies-entry to package.json, and use the -function and the -property, like below:

            let mathExt = extensions.getExtension('genius.math');
            let importedApi = mathExt.exports;
            console.log(importedApi.mul(42, 1));

          variable all

          const all: readonly Extension<any>[];
          • All extensions currently known to the system.

          variable onDidChange

          const onDidChange: Event<void>;
          • An event which fires when extensions.all changes. This can happen when extensions are installed, uninstalled, enabled or disabled.

          function getExtension

          getExtension: <T = any>(extensionId: string) => Extension<T> | undefined;
          • Get an extension by its full identifier in the form of: publisher.name.

            Parameter extensionId

            An extension identifier.

            Returns

            An extension or undefined.

          namespace vscode.l10n

          namespace vscode.l10n {}
          • Namespace for localization-related functionality in the extension API. To use this properly, you must have l10n defined in your extension manifest and have bundle.l10n..json files. For more information on how to generate bundle.l10n..json files, check out the [vscode-l10n repo](https://github.com/microsoft/vscode-l10n).

            Note: Built-in extensions (for example, Git, TypeScript Language Features, GitHub Authentication) are excluded from the l10n property requirement. In other words, they do not need to specify a l10n in the extension manifest because their translated strings come from Language Packs.

          variable bundle

          const bundle: { [key: string]: string };
          • The bundle of localized strings that have been loaded for the extension. It's undefined if no bundle has been loaded. The bundle is typically not loaded if there was no bundle found or when we are running with the default language.

          variable uri

          const uri: Uri;
          • The URI of the localization bundle that has been loaded for the extension. It's undefined if no bundle has been loaded. The bundle is typically not loaded if there was no bundle found or when we are running with the default language.

          function t

          t: {
          (message: string, ...args: Array<string | number | boolean>): string;
          (message: string, args: Record<string, any>): string;
          (options: {
          message: string;
          args?: (string | number | boolean)[] | Record<string, any>;
          comment: string | string[];
          }): string;
          };
          • Marks a string for localization. If a localized bundle is available for the language specified by env.language and the bundle has a localized value for this message, then that localized value will be returned (with injected args values for any templated values).

            Parameter message

            The message to localize. Supports index templating where strings like {0} and {1} are replaced by the item at that index in the args array.

            Parameter args

            The arguments to be used in the localized string. The index of the argument is used to match the template placeholder in the localized string.

            Returns

            localized string with injected arguments.

            Example 1

            l10n.t('Hello {0}!', 'World');

          • Marks a string for localization. If a localized bundle is available for the language specified by env.language and the bundle has a localized value for this message, then that localized value will be returned (with injected args values for any templated values).

            Parameter message

            The message to localize. Supports named templating where strings like {foo} and {bar} are replaced by the value in the Record for that key (foo, bar, etc).

            Parameter args

            The arguments to be used in the localized string. The name of the key in the record is used to match the template placeholder in the localized string.

            Returns

            localized string with injected arguments.

            Example 1

            l10n.t('Hello {name}', { name: 'Erich' });

          • Marks a string for localization. If a localized bundle is available for the language specified by env.language and the bundle has a localized value for this message, then that localized value will be returned (with injected args values for any templated values).

            Parameter options

            The options to use when localizing the message.

            Returns

            localized string with injected arguments.

          namespace vscode.languages

          namespace vscode.languages {}
          • Namespace for participating in language-specific editor [features](https://code.visualstudio.com/docs/editor/editingevolved), like IntelliSense, code actions, diagnostics etc.

            Many programming languages exist and there is huge variety in syntaxes, semantics, and paradigms. Despite that, features like automatic word-completion, code navigation, or code checking have become popular across different tools for different programming languages.

            The editor provides an API that makes it simple to provide such common features by having all UI and actions already in place and by allowing you to participate by providing data only. For instance, to contribute a hover all you have to do is provide a function that can be called with a TextDocument and a Position returning hover info. The rest, like tracking the mouse, positioning the hover, keeping the hover stable etc. is taken care of by the editor.

            languages.registerHoverProvider('javascript', {
            provideHover(document, position, token) {
            return new Hover('I am a hover!');
            }
            });

            Registration is done using a which is either a language id, like javascript or a more complex like { language: 'typescript', scheme: 'file' }. Matching a document against such a selector will result in a that is used to determine if and how a provider shall be used. When scores are equal the provider that came last wins. For features that allow full arity, like , the score is only checked to be >0, for other features, like the score is used for determining the order in which providers are asked to participate.

          variable onDidChangeDiagnostics

          const onDidChangeDiagnostics: Event<DiagnosticChangeEvent>;
          • An Event which fires when the global set of diagnostics changes. This is newly added and removed diagnostics.

          function createDiagnosticCollection

          createDiagnosticCollection: (name?: string) => DiagnosticCollection;
          • Create a diagnostics collection.

            Parameter name

            The of the collection.

            Returns

            A new diagnostic collection.

          function createLanguageStatusItem

          createLanguageStatusItem: (
          id: string,
          selector: DocumentSelector
          ) => LanguageStatusItem;
          • Creates a new .

            Parameter id

            The identifier of the item.

            Parameter selector

            The document selector that defines for what editors the item shows.

            Returns

            A new language status item.

          function getDiagnostics

          getDiagnostics: { (resource: Uri): Diagnostic[]; (): [Uri, Diagnostic[]][] };
          • Get all diagnostics for a given resource.

            Parameter resource

            A resource

            Returns

            An array of objects or an empty array.

          • Get all diagnostics.

            Returns

            An array of uri-diagnostics tuples or an empty array.

          function getLanguages

          getLanguages: () => Thenable<string[]>;
          • Return the identifiers of all known languages.

            Returns

            Promise resolving to an array of identifier strings.

          function match

          match: (selector: DocumentSelector, document: TextDocument) => number;
          • Compute the match between a document and a document. Values greater than zero mean the selector matches the document.

            A match is computed according to these rules: 1. When is an array, compute the match for each contained DocumentFilter or language identifier and take the maximum value. 2. A string will be desugared to become the language-part of a , so "fooLang" is like { language: "fooLang" }. 3. A will be matched against the document by comparing its parts with the document. The following rules apply: 1. When the DocumentFilter is empty ({}) the result is 0 2. When scheme, language, pattern, or notebook are defined but one doesn't match, the result is 0 3. Matching against * gives a score of 5, matching via equality or via a glob-pattern gives a score of 10 4. The result is the maximum value of each match

            Samples:

            // default document from disk (file-scheme)
            doc.uri; //'file:///my/file.js'
            doc.languageId; // 'javascript'
            match('javascript', doc); // 10;
            match({ language: 'javascript' }, doc); // 10;
            match({ language: 'javascript', scheme: 'file' }, doc); // 10;
            match('*', doc); // 5
            match('fooLang', doc); // 0
            match(['fooLang', '*'], doc); // 5
            // virtual document, e.g. from git-index
            doc.uri; // 'git:/my/file.js'
            doc.languageId; // 'javascript'
            match('javascript', doc); // 10;
            match({ language: 'javascript', scheme: 'git' }, doc); // 10;
            match('*', doc); // 5
            // notebook cell document
            doc.uri; // `vscode-notebook-cell:///my/notebook.ipynb#gl65s2pmha`;
            doc.languageId; // 'python'
            match({ notebookType: 'jupyter-notebook' }, doc) // 10
            match({ notebookType: 'fooNotebook', language: 'python' }, doc) // 0
            match({ language: 'python' }, doc) // 10
            match({ notebookType: '*' }, doc) // 5

            Parameter selector

            A document selector.

            Parameter document

            A text document.

            Returns

            A number >0 when the selector matches and 0 when the selector does not match.

          function registerCallHierarchyProvider

          registerCallHierarchyProvider: (
          selector: DocumentSelector,
          provider: CallHierarchyProvider
          ) => Disposable;
          • Register a call hierarchy provider.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A call hierarchy provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerCodeActionsProvider

          registerCodeActionsProvider: (
          selector: DocumentSelector,
          provider: CodeActionProvider,
          metadata?: CodeActionProviderMetadata
          ) => Disposable;
          • Register a code action provider.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A code action provider.

            Parameter metadata

            Metadata about the kind of code actions the provider provides.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerCodeLensProvider

          registerCodeLensProvider: (
          selector: DocumentSelector,
          provider: CodeLensProvider
          ) => Disposable;
          • Register a code lens provider.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A code lens provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerColorProvider

          registerColorProvider: (
          selector: DocumentSelector,
          provider: DocumentColorProvider
          ) => Disposable;
          • Register a color provider.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A color provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerCompletionItemProvider

          registerCompletionItemProvider: (
          selector: DocumentSelector,
          provider: CompletionItemProvider,
          ...triggerCharacters: string[]
          ) => Disposable;
          • Register a completion provider.

            Multiple providers can be registered for a language. In that case providers are sorted by their and groups of equal score are sequentially asked for completion items. The process stops when one or many providers of a group return a result. A failing provider (rejected promise or exception) will not fail the whole operation.

            A completion item provider can be associated with a set of triggerCharacters. When trigger characters are being typed, completions are requested but only from providers that registered the typed character. Because of that trigger characters should be different than , a common trigger character is . to trigger member completions.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A completion provider.

            Parameter triggerCharacters

            Trigger completion when the user types one of the characters.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerDeclarationProvider

          registerDeclarationProvider: (
          selector: DocumentSelector,
          provider: DeclarationProvider
          ) => Disposable;
          • Register a declaration provider.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A declaration provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerDefinitionProvider

          registerDefinitionProvider: (
          selector: DocumentSelector,
          provider: DefinitionProvider
          ) => Disposable;
          • Register a definition provider.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A definition provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerDocumentDropEditProvider

          registerDocumentDropEditProvider: (
          selector: DocumentSelector,
          provider: DocumentDropEditProvider,
          metadata?: DocumentDropEditProviderMetadata
          ) => Disposable;
          • Registers a new DocumentDropEditProvider.

            Multiple drop providers can be registered for a language. When dropping content into an editor, all registered providers for the editor's language will be invoked based on the mimetypes they handle as specified by their .

            Each provider can return one or more . The edits are sorted using the property. By default the first edit will be applied. If there are any additional edits, these will be shown to the user as selectable drop options in the drop widget.

            Parameter selector

            A selector that defines the documents this provider applies to.

            Parameter provider

            A drop provider.

            Parameter metadata

            Additional metadata about the provider.

            Returns

            A that unregisters this provider when disposed of.

          function registerDocumentFormattingEditProvider

          registerDocumentFormattingEditProvider: (
          selector: DocumentSelector,
          provider: DocumentFormattingEditProvider
          ) => Disposable;
          • Register a formatting provider for a document.

            Multiple providers can be registered for a language. In that case providers are sorted by their and the best-matching provider is used. Failure of the selected provider will cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A document formatting edit provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerDocumentHighlightProvider

          registerDocumentHighlightProvider: (
          selector: DocumentSelector,
          provider: DocumentHighlightProvider
          ) => Disposable;
          • Register a document highlight provider.

            Multiple providers can be registered for a language. In that case providers are sorted by their and groups sequentially asked for document highlights. The process stops when a provider returns a non-falsy or non-failure result.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A document highlight provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerDocumentLinkProvider

          registerDocumentLinkProvider: (
          selector: DocumentSelector,
          provider: DocumentLinkProvider
          ) => Disposable;
          • Register a document link provider.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A document link provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerDocumentPasteEditProvider

          registerDocumentPasteEditProvider: (
          selector: DocumentSelector,
          provider: DocumentPasteEditProvider,
          metadata: DocumentPasteProviderMetadata
          ) => Disposable;
          • Registers a new .

            Multiple providers can be registered for a language. All registered providers for a language will be invoked for copy and paste operations based on their handled mimetypes as specified by the .

            For , changes to the made by each provider will be merged into a single that is used to populate the clipboard.

            For , each provider will be invoked and can return one or more . The edits are sorted using the property. By default the first edit will be applied and the rest of the edits will be shown to the user as selectable paste options in the paste widget.

            Parameter selector

            A selector that defines the documents this provider applies to.

            Parameter provider

            A paste editor provider.

            Parameter metadata

            Additional metadata about the provider.

            Returns

            A that unregisters this provider when disposed of.

          function registerDocumentRangeFormattingEditProvider

          registerDocumentRangeFormattingEditProvider: (
          selector: DocumentSelector,
          provider: DocumentRangeFormattingEditProvider
          ) => Disposable;
          • Register a formatting provider for a document range.

            *Note:* A document range provider is also a which means there is no need to a document formatter when also registering a range provider.

            Multiple providers can be registered for a language. In that case providers are sorted by their and the best-matching provider is used. Failure of the selected provider will cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A document range formatting edit provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerDocumentRangeSemanticTokensProvider

          registerDocumentRangeSemanticTokensProvider: (
          selector: DocumentSelector,
          provider: DocumentRangeSemanticTokensProvider,
          legend: SemanticTokensLegend
          ) => Disposable;
          • Register a semantic tokens provider for a document range.

            *Note:* If a document has both a DocumentSemanticTokensProvider and a DocumentRangeSemanticTokensProvider, the range provider will be invoked only initially, for the time in which the full document provider takes to resolve the first request. Once the full document provider resolves the first request, the semantic tokens provided via the range provider will be discarded and from that point forward, only the document provider will be used.

            Multiple providers can be registered for a language. In that case providers are sorted by their and the best-matching provider is used. Failure of the selected provider will cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A document range semantic tokens provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerDocumentSemanticTokensProvider

          registerDocumentSemanticTokensProvider: (
          selector: DocumentSelector,
          provider: DocumentSemanticTokensProvider,
          legend: SemanticTokensLegend
          ) => Disposable;
          • Register a semantic tokens provider for a whole document.

            Multiple providers can be registered for a language. In that case providers are sorted by their and the best-matching provider is used. Failure of the selected provider will cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A document semantic tokens provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerDocumentSymbolProvider

          registerDocumentSymbolProvider: (
          selector: DocumentSelector,
          provider: DocumentSymbolProvider,
          metaData?: DocumentSymbolProviderMetadata
          ) => Disposable;
          • Register a document symbol provider.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A document symbol provider.

            Parameter metaData

            metadata about the provider

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerEvaluatableExpressionProvider

          registerEvaluatableExpressionProvider: (
          selector: DocumentSelector,
          provider: EvaluatableExpressionProvider
          ) => Disposable;
          • Register a provider that locates evaluatable expressions in text documents. The editor will evaluate the expression in the active debug session and will show the result in the debug hover.

            If multiple providers are registered for a language an arbitrary provider will be used.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            An evaluatable expression provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerFoldingRangeProvider

          registerFoldingRangeProvider: (
          selector: DocumentSelector,
          provider: FoldingRangeProvider
          ) => Disposable;
          • Register a folding range provider.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. If multiple folding ranges start at the same position, only the range of the first registered provider is used. If a folding range overlaps with an other range that has a smaller position, it is also ignored.

            A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A folding range provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerHoverProvider

          registerHoverProvider: (
          selector: DocumentSelector,
          provider: HoverProvider
          ) => Disposable;
          • Register a hover provider.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A hover provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerImplementationProvider

          registerImplementationProvider: (
          selector: DocumentSelector,
          provider: ImplementationProvider
          ) => Disposable;
          • Register an implementation provider.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            An implementation provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerInlayHintsProvider

          registerInlayHintsProvider: (
          selector: DocumentSelector,
          provider: InlayHintsProvider
          ) => Disposable;
          • Register a inlay hints provider.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            An inlay hints provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerInlineCompletionItemProvider

          registerInlineCompletionItemProvider: (
          selector: DocumentSelector,
          provider: InlineCompletionItemProvider
          ) => Disposable;
          • Registers an inline completion provider.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            An inline completion provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerInlineValuesProvider

          registerInlineValuesProvider: (
          selector: DocumentSelector,
          provider: InlineValuesProvider
          ) => Disposable;
          • Register a provider that returns data for the debugger's 'inline value' feature. Whenever the generic debugger has stopped in a source file, providers registered for the language of the file are called to return textual data that will be shown in the editor at the end of lines.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            An inline values provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerLinkedEditingRangeProvider

          registerLinkedEditingRangeProvider: (
          selector: DocumentSelector,
          provider: LinkedEditingRangeProvider
          ) => Disposable;
          • Register a linked editing range provider.

            Multiple providers can be registered for a language. In that case providers are sorted by their and the best-matching provider that has a result is used. Failure of the selected provider will cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A linked editing range provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerOnTypeFormattingEditProvider

          registerOnTypeFormattingEditProvider: (
          selector: DocumentSelector,
          provider: OnTypeFormattingEditProvider,
          firstTriggerCharacter: string,
          ...moreTriggerCharacter: string[]
          ) => Disposable;
          • Register a formatting provider that works on type. The provider is active when the user enables the setting editor.formatOnType.

            Multiple providers can be registered for a language. In that case providers are sorted by their and the best-matching provider is used. Failure of the selected provider will cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            An on type formatting edit provider.

            Parameter firstTriggerCharacter

            A character on which formatting should be triggered, like }.

            Parameter moreTriggerCharacter

            More trigger characters.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerReferenceProvider

          registerReferenceProvider: (
          selector: DocumentSelector,
          provider: ReferenceProvider
          ) => Disposable;
          • Register a reference provider.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A reference provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerRenameProvider

          registerRenameProvider: (
          selector: DocumentSelector,
          provider: RenameProvider
          ) => Disposable;
          • Register a rename provider.

            Multiple providers can be registered for a language. In that case providers are sorted by their and asked in sequence. The first provider producing a result defines the result of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A rename provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerSelectionRangeProvider

          registerSelectionRangeProvider: (
          selector: DocumentSelector,
          provider: SelectionRangeProvider
          ) => Disposable;
          • Register a selection range provider.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A selection range provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerSignatureHelpProvider

          registerSignatureHelpProvider: {
          (
          selector: DocumentSelector,
          provider: SignatureHelpProvider,
          ...triggerCharacters: string[]
          ): Disposable;
          (
          selector: DocumentSelector,
          provider: SignatureHelpProvider,
          metadata: SignatureHelpProviderMetadata
          ): Disposable;
          };
          • Register a signature help provider.

            Multiple providers can be registered for a language. In that case providers are sorted by their and called sequentially until a provider returns a valid result.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A signature help provider.

            Parameter triggerCharacters

            Trigger signature help when the user types one of the characters, like , or (.

            Returns

            A Disposable that unregisters this provider when being disposed.

          • Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A signature help provider.

            Parameter metadata

            Information about the provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

            See Also

          function registerTypeDefinitionProvider

          registerTypeDefinitionProvider: (
          selector: DocumentSelector,
          provider: TypeDefinitionProvider
          ) => Disposable;
          • Register a type definition provider.

            Multiple providers can be registered for a language. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A type definition provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerTypeHierarchyProvider

          registerTypeHierarchyProvider: (
          selector: DocumentSelector,
          provider: TypeHierarchyProvider
          ) => Disposable;
          • Register a type hierarchy provider.

            Parameter selector

            A selector that defines the documents this provider is applicable to.

            Parameter provider

            A type hierarchy provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerWorkspaceSymbolProvider

          registerWorkspaceSymbolProvider: (
          provider: WorkspaceSymbolProvider
          ) => Disposable;
          • Register a workspace symbol provider.

            Multiple providers can be registered. In that case providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.

            Parameter provider

            A workspace symbol provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function setLanguageConfiguration

          setLanguageConfiguration: (
          language: string,
          configuration: LanguageConfiguration
          ) => Disposable;
          • Set a for a language.

            Parameter language

            A language identifier like typescript.

            Parameter configuration

            Language configuration.

            Returns

            A Disposable that unsets this configuration.

          function setTextDocumentLanguage

          setTextDocumentLanguage: (
          document: TextDocument,
          languageId: string
          ) => Thenable<TextDocument>;
          • Set (and change) the that is associated with the given document.

            *Note* that calling this function will trigger the event followed by the event.

            Parameter document

            The document which language is to be changed

            Parameter languageId

            The new language identifier.

            Returns

            A thenable that resolves with the updated document.

          namespace vscode.lm

          namespace vscode.lm {}
          • Namespace for language model related functionality.

          variable onDidChangeChatModels

          const onDidChangeChatModels: Event<void>;
          • An event that is fired when the set of available chat models changes.

          variable tools

          const tools: readonly LanguageModelToolInformation[];
          • A list of all available tools that were registered by all extensions using lm.registerTool. They can be called with lm.invokeTool with input that match their declared inputSchema.

          function invokeTool

          invokeTool: (
          name: string,
          options: LanguageModelToolInvocationOptions<object>,
          token?: CancellationToken
          ) => Thenable<LanguageModelToolResult>;
          • Invoke a tool listed in lm.tools by name with the given input. The input will be validated against the schema declared by the tool

            A tool can be invoked by a chat participant, in the context of handling a chat request, or globally by any extension in any custom flow.

            In the former case, the caller shall pass the , which comes with the a . This makes sure the chat UI shows the tool invocation for the correct conversation.

            A tool is an array of and -parts. If the tool caller is using @vscode/prompt-tsx, it can incorporate the response parts into its prompt using a ToolResult. If not, the parts can be passed along to the LanguageModelChat via a user message with a LanguageModelToolResultPart.

            If a chat participant wants to preserve tool results for requests across multiple turns, it can store tool results in the ChatResult.metadata returned from the handler and retrieve them on the next turn from ChatResponseTurn.result.

            Parameter name

            The name of the tool to call.

            Parameter options

            The options to use when invoking the tool.

            Parameter token

            A cancellation token. See CancellationTokenSource for how to create one.

            Returns

            The result of the tool invocation.

          function registerTool

          registerTool: <T>(name: string, tool: LanguageModelTool<T>) => Disposable;
          • Register a LanguageModelTool. The tool must also be registered in the package.json languageModelTools contribution point. A registered tool is available in the lm.tools list for any extension to see. But in order for it to be seen by a language model, it must be passed in the list of available tools in LanguageModelChatRequestOptions.tools.

            Returns

            A Disposable that unregisters the tool when disposed.

          function selectChatModels

          selectChatModels: (
          selector?: LanguageModelChatSelector
          ) => Thenable<LanguageModelChat[]>;
          • Select chat models by a . This can yield multiple or no chat models and extensions must handle these cases, esp. when no chat model exists, gracefully.

            const models = await vscode.lm.selectChatModels({ family: 'gpt-3.5-turbo' });
            if (models.length > 0) {
            const [first] = models;
            const response = await first.sendRequest(...)
            // ...
            } else {
            // NO chat models available
            }

            A selector can be written to broadly match all models of a given vendor or family, or it can narrowly select one model by ID. Keep in mind that the available set of models will change over time, but also that prompts may perform differently in different models.

            *Note* that extensions can hold on to the results returned by this function and use them later. However, when the onDidChangeChatModels-event is fired the list of chat models might have changed and extensions should re-query.

            Parameter selector

            A chat model selector. When omitted all chat models are returned.

            Returns

            An array of chat models, can be empty!

          namespace vscode.notebooks

          namespace vscode.notebooks {}
          • Namespace for notebooks.

            The notebooks functionality is composed of three loosely coupled components:

            1. NotebookSerializer enable the editor to open, show, and save notebooks 2. NotebookController own the execution of notebooks, e.g they create output from code cells. 3. NotebookRenderer present notebook output in the editor. They run in a separate context.

          function createNotebookController

          createNotebookController: (
          id: string,
          notebookType: string,
          label: string,
          handler?: (
          cells: NotebookCell[],
          notebook: NotebookDocument,
          controller: NotebookController
          ) => void | Thenable<void>
          ) => NotebookController;
          • Creates a new notebook controller.

            Parameter id

            Identifier of the controller. Must be unique per extension.

            Parameter notebookType

            A notebook type for which this controller is for.

            Parameter label

            The label of the controller.

            Parameter handler

            The execute-handler of the controller.

            Returns

            A new notebook controller.

          function createRendererMessaging

          createRendererMessaging: (rendererId: string) => NotebookRendererMessaging;
          • Creates a new messaging instance used to communicate with a specific renderer.

            * *Note 1:* Extensions can only create renderer that they have defined in their package.json-file * *Note 2:* A renderer only has access to messaging if requiresMessaging is set to always or optional in its notebookRenderer contribution.

            Parameter rendererId

            The renderer ID to communicate with

            Returns

            A new notebook renderer messaging object.

          function registerNotebookCellStatusBarItemProvider

          registerNotebookCellStatusBarItemProvider: (
          notebookType: string,
          provider: NotebookCellStatusBarItemProvider
          ) => Disposable;
          • Register a for the given notebook type.

            Parameter notebookType

            The notebook type to register for.

            Parameter provider

            A cell status bar provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          namespace vscode.scm

          namespace vscode.scm {}
          • Namespace for source control mangement.

          variable inputBox

          const inputBox: SourceControlInputBox;
          • The for the last source control created by the extension.

            Deprecated

            Use SourceControl.inputBox instead

          function createSourceControl

          createSourceControl: (id: string, label: string, rootUri?: Uri) => SourceControl;
          • Creates a new instance.

            Parameter id

            An id for the source control. Something short, e.g.: git.

            Parameter label

            A human-readable string for the source control. E.g.: Git.

            Parameter rootUri

            An optional Uri of the root of the source control. E.g.: Uri.parse(workspaceRoot).

            Returns

            An instance of .

          namespace vscode.tasks

          namespace vscode.tasks {}
          • Namespace for tasks functionality.

          variable onDidEndTask

          const onDidEndTask: Event<TaskEndEvent>;
          • Fires when a task ends.

          variable onDidEndTaskProcess

          const onDidEndTaskProcess: Event<TaskProcessEndEvent>;
          • Fires when the underlying process has ended. This event will not fire for tasks that don't execute an underlying process.

          variable onDidStartTask

          const onDidStartTask: Event<TaskStartEvent>;
          • Fires when a task starts.

          variable onDidStartTaskProcess

          const onDidStartTaskProcess: Event<TaskProcessStartEvent>;
          • Fires when the underlying process has been started. This event will not fire for tasks that don't execute an underlying process.

          variable taskExecutions

          const taskExecutions: readonly TaskExecution[];
          • The currently active task executions or an empty array.

          function executeTask

          executeTask: (task: Task) => Thenable<TaskExecution>;
          • Executes a task that is managed by the editor. The returned task execution can be used to terminate the task.

            Parameter task

            the task to execute

            Returns

            A thenable that resolves to a task execution.

            Throws

            When running a ShellExecution or a ProcessExecution task in an environment where a new process cannot be started. In such an environment, only CustomExecution tasks can be run.

          function fetchTasks

          fetchTasks: (filter?: TaskFilter) => Thenable<Task[]>;
          • Fetches all tasks available in the systems. This includes tasks from tasks.json files as well as tasks from task providers contributed through extensions.

            Parameter filter

            Optional filter to select tasks of a certain type or version.

            Returns

            A thenable that resolves to an array of tasks.

          function registerTaskProvider

          registerTaskProvider: (type: string, provider: TaskProvider) => Disposable;
          • Register a task provider.

            Parameter type

            The task kind type this provider is registered for.

            Parameter provider

            A task provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          namespace vscode.tests

          namespace vscode.tests {}
          • Namespace for testing functionality. Tests are published by registering TestController instances, then adding . Controllers may also describe how to run tests by creating one or more TestRunProfile instances.

          function createTestController

          createTestController: (id: string, label: string) => TestController;
          • Creates a new test controller.

            Parameter id

            Identifier for the controller, must be globally unique.

            Parameter label

            A human-readable label for the controller.

            Returns

            An instance of the TestController.

          namespace vscode.window

          namespace vscode.window {}
          • Namespace for dealing with the current window of the editor. That is visible and active editors, as well as, UI elements to show messages, selections, and asking for user input.

          variable activeColorTheme

          let activeColorTheme: ColorTheme;
          • The currently active color theme as configured in the settings. The active theme can be changed via the workbench.colorTheme setting.

          variable activeNotebookEditor

          const activeNotebookEditor: NotebookEditor;
          • The currently active or undefined. The active editor is the one that currently has focus or, when none has focus, the one that has changed input most recently.

          variable activeTerminal

          const activeTerminal: Terminal;
          • The currently active terminal or undefined. The active terminal is the one that currently has focus or most recently had focus.

          variable activeTextEditor

          let activeTextEditor: TextEditor;
          • The currently active editor or undefined. The active editor is the one that currently has focus or, when none has focus, the one that has changed input most recently.

          variable onDidChangeActiveColorTheme

          const onDidChangeActiveColorTheme: Event<ColorTheme>;
          • An Event which fires when the active color theme is changed or has changes.

          variable onDidChangeActiveNotebookEditor

          const onDidChangeActiveNotebookEditor: Event<NotebookEditor>;
          • An Event which fires when the has changed. *Note* that the event also fires when the active editor changes to undefined.

          variable onDidChangeActiveTerminal

          const onDidChangeActiveTerminal: Event<Terminal>;
          • An Event which fires when the has changed. *Note* that the event also fires when the active terminal changes to undefined.

          variable onDidChangeActiveTextEditor

          const onDidChangeActiveTextEditor: Event<TextEditor>;
          • An Event which fires when the has changed. *Note* that the event also fires when the active editor changes to undefined.

          variable onDidChangeNotebookEditorSelection

          const onDidChangeNotebookEditorSelection: Event<NotebookEditorSelectionChangeEvent>;
          • An Event which fires when the have changed.

          variable onDidChangeNotebookEditorVisibleRanges

          const onDidChangeNotebookEditorVisibleRanges: Event<NotebookEditorVisibleRangesChangeEvent>;
          • An Event which fires when the have changed.

          variable onDidChangeTerminalShellIntegration

          const onDidChangeTerminalShellIntegration: Event<TerminalShellIntegrationChangeEvent>;
          • Fires when shell integration activates or one of its properties changes in a terminal.

          variable onDidChangeTerminalState

          const onDidChangeTerminalState: Event<Terminal>;
          • An Event which fires when a has changed.

          variable onDidChangeTextEditorOptions

          const onDidChangeTextEditorOptions: Event<TextEditorOptionsChangeEvent>;
          • An Event which fires when the options of an editor have changed.

          variable onDidChangeTextEditorSelection

          const onDidChangeTextEditorSelection: Event<TextEditorSelectionChangeEvent>;
          • An Event which fires when the selection in an editor has changed.

          variable onDidChangeTextEditorViewColumn

          const onDidChangeTextEditorViewColumn: Event<TextEditorViewColumnChangeEvent>;
          • An Event which fires when the view column of an editor has changed.

          variable onDidChangeTextEditorVisibleRanges

          const onDidChangeTextEditorVisibleRanges: Event<TextEditorVisibleRangesChangeEvent>;
          • An Event which fires when the visible ranges of an editor has changed.

          variable onDidChangeVisibleNotebookEditors

          const onDidChangeVisibleNotebookEditors: Event<readonly NotebookEditor[]>;
          • An Event which fires when the has changed.

          variable onDidChangeVisibleTextEditors

          const onDidChangeVisibleTextEditors: Event<readonly TextEditor[]>;
          • An Event which fires when the array of has changed.

          variable onDidChangeWindowState

          const onDidChangeWindowState: Event<WindowState>;
          • An Event which fires when the focus or activity state of the current window changes. The value of the event represents whether the window is focused.

          variable onDidCloseTerminal

          const onDidCloseTerminal: Event<Terminal>;
          • An Event which fires when a terminal is disposed.

          variable onDidEndTerminalShellExecution

          const onDidEndTerminalShellExecution: Event<TerminalShellExecutionEndEvent>;
          • This will be fired when a terminal command is ended. This event will fire only when [shell integration](https://code.visualstudio.com/docs/terminal/shell-integration) is activated for the terminal.

          variable onDidOpenTerminal

          const onDidOpenTerminal: Event<Terminal>;
          • An Event which fires when a terminal has been created, either through the API or commands.

          variable onDidStartTerminalShellExecution

          const onDidStartTerminalShellExecution: Event<TerminalShellExecutionStartEvent>;
          • This will be fired when a terminal command is started. This event will fire only when [shell integration](https://code.visualstudio.com/docs/terminal/shell-integration) is activated for the terminal.

          variable state

          const state: WindowState;
          • Represents the current window's state.

          variable tabGroups

          const tabGroups: TabGroups;
          • Represents the grid widget within the main editor area

          variable terminals

          const terminals: readonly Terminal[];
          • The currently opened terminals or an empty array.

          variable visibleNotebookEditors

          const visibleNotebookEditors: readonly NotebookEditor[];
          • The currently visible or an empty array.

          variable visibleTextEditors

          let visibleTextEditors: readonly TextEditor[];
          • The currently visible editors or an empty array.

          function createInputBox

          createInputBox: () => InputBox;

          function createOutputChannel

          createOutputChannel: {
          (name: string, languageId?: string): OutputChannel;
          (name: string, options: { log: true }): LogOutputChannel;
          };
          • Creates a new with the given name and language id If language id is not provided, then **Log** is used as default language id.

            You can access the visible or active output channel as a from or and use the language id to contribute language features like syntax coloring, code lens etc.,

            Parameter name

            Human-readable string which will be used to represent the channel in the UI.

            Parameter languageId

            The identifier of the language associated with the channel.

            Returns

            A new output channel.

          • Creates a new with the given name.

            Parameter name

            Human-readable string which will be used to represent the channel in the UI.

            Parameter options

            Options for the log output channel.

            Returns

            A new log output channel.

          function createQuickPick

          createQuickPick: <T extends QuickPickItem>() => QuickPick<T>;

          function createStatusBarItem

          createStatusBarItem: {
          (id: string, alignment?: StatusBarAlignment, priority?: number): StatusBarItem;
          (alignment?: StatusBarAlignment, priority?: number): StatusBarItem;
          };
          • Creates a status bar .

            Parameter id

            The identifier of the item. Must be unique within the extension.

            Parameter alignment

            The alignment of the item.

            Parameter priority

            The priority of the item. Higher values mean the item should be shown more to the left.

            Returns

            A new status bar item.

          • Creates a status bar .

            Parameter alignment

            The alignment of the item.

            Parameter priority

            The priority of the item. Higher values mean the item should be shown more to the left.

            Returns

            A new status bar item.

            See Also

          function createTerminal

          createTerminal: {
          (
          name?: string,
          shellPath?: string,
          shellArgs?: readonly string[] | string
          ): Terminal;
          (options: TerminalOptions): Terminal;
          (options: ExtensionTerminalOptions): Terminal;
          };
          • Creates a Terminal with a backing shell process. The cwd of the terminal will be the workspace directory if it exists.

            Parameter name

            Optional human-readable string which will be used to represent the terminal in the UI.

            Parameter shellPath

            Optional path to a custom shell executable to be used in the terminal.

            Parameter shellArgs

            Optional args for the custom shell executable. A string can be used on Windows only which allows specifying shell args in [command-line format](https://msdn.microsoft.com/en-au/08dfcab2-eb6e-49a4-80eb-87d4076c98c6).

            Returns

            A new Terminal.

            Throws

            When running in an environment where a new process cannot be started.

          • Creates a Terminal with a backing shell process.

            Parameter options

            A TerminalOptions object describing the characteristics of the new terminal.

            Returns

            A new Terminal.

            Throws

            When running in an environment where a new process cannot be started.

          • Creates a Terminal where an extension controls its input and output.

            Parameter options

            An ExtensionTerminalOptions object describing the characteristics of the new terminal.

            Returns

            A new Terminal.

          function createTextEditorDecorationType

          createTextEditorDecorationType: (
          options: DecorationRenderOptions
          ) => TextEditorDecorationType;
          • Create a TextEditorDecorationType that can be used to add decorations to text editors.

            Parameter options

            Rendering options for the decoration type.

            Returns

            A new decoration type instance.

          function createTreeView

          createTreeView: <T>(viewId: string, options: TreeViewOptions<T>) => TreeView<T>;
          • Create a TreeView for the view contributed using the extension point views.

            Parameter viewId

            Id of the view contributed using the extension point views.

            Parameter options

            Options for creating the TreeView

            Returns

            a TreeView.

          function createWebviewPanel

          createWebviewPanel: (
          viewType: string,
          title: string,
          showOptions:
          | ViewColumn
          | { readonly viewColumn: ViewColumn; readonly preserveFocus?: boolean },
          options?: WebviewPanelOptions & WebviewOptions
          ) => WebviewPanel;
          • Create and show a new webview panel.

            Parameter viewType

            Identifies the type of the webview panel.

            Parameter title

            Title of the panel.

            Parameter showOptions

            Where to show the webview in the editor. If preserveFocus is set, the new webview will not take focus.

            Parameter options

            Settings for the new panel.

            Returns

            New webview panel.

          function registerCustomEditorProvider

          registerCustomEditorProvider: (
          viewType: string,
          provider:
          | CustomTextEditorProvider
          | CustomReadonlyEditorProvider
          | CustomEditorProvider,
          options?: {
          readonly webviewOptions?: WebviewPanelOptions;
          readonly supportsMultipleEditorsPerDocument?: boolean;
          }
          ) => Disposable;
          • Register a provider for custom editors for the viewType contributed by the customEditors extension point.

            When a custom editor is opened, an onCustomEditor:viewType activation event is fired. Your extension must register a , , for viewType as part of activation.

            Parameter viewType

            Unique identifier for the custom editor provider. This should match the viewType from the customEditors contribution point.

            Parameter provider

            Provider that resolves custom editors.

            Parameter options

            Options for the provider.

            Returns

            Disposable that unregisters the provider.

          function registerFileDecorationProvider

          registerFileDecorationProvider: (provider: FileDecorationProvider) => Disposable;

          function registerTerminalLinkProvider

          registerTerminalLinkProvider: (provider: TerminalLinkProvider) => Disposable;
          • Register provider that enables the detection and handling of links within the terminal.

            Parameter provider

            The provider that provides the terminal links.

            Returns

            Disposable that unregisters the provider.

          function registerTerminalProfileProvider

          registerTerminalProfileProvider: (
          id: string,
          provider: TerminalProfileProvider
          ) => Disposable;
          • Registers a provider for a contributed terminal profile.

            Parameter id

            The ID of the contributed terminal profile.

            Parameter provider

            The terminal profile provider.

            Returns

            A that unregisters the provider.

          function registerTreeDataProvider

          registerTreeDataProvider: <T>(
          viewId: string,
          treeDataProvider: TreeDataProvider<T>
          ) => Disposable;
          • Register a TreeDataProvider for the view contributed using the extension point views. This will allow you to contribute data to the TreeView and update if the data changes.

            **Note:** To get access to the TreeView and perform operations on it, use .

            Parameter viewId

            Id of the view contributed using the extension point views.

            Parameter treeDataProvider

            A TreeDataProvider that provides tree data for the view

            Returns

            A that unregisters the TreeDataProvider.

          function registerUriHandler

          registerUriHandler: (handler: UriHandler) => Disposable;
          • Registers a capable of handling system-wide . In case there are multiple windows open, the topmost window will handle the uri. A uri handler is scoped to the extension it is contributed from; it will only be able to handle uris which are directed to the extension itself. A uri must respect the following rules:

            - The uri-scheme must be vscode.env.uriScheme; - The uri-authority must be the extension id (e.g. my.extension); - The uri-path, -query and -fragment parts are arbitrary.

            For example, if the my.extension extension registers a uri handler, it will only be allowed to handle uris with the prefix product-name://my.extension.

            An extension can only register a single uri handler in its entire activation lifetime.

            * *Note:* There is an activation event onUri that fires when a uri directed for the current extension is about to be handled.

            Parameter handler

            The uri handler to register for this extension.

            Returns

            A that unregisters the handler.

          function registerWebviewPanelSerializer

          registerWebviewPanelSerializer: (
          viewType: string,
          serializer: WebviewPanelSerializer
          ) => Disposable;
          • Registers a webview panel serializer.

            Extensions that support reviving should have an "onWebviewPanel:viewType" activation event and make sure that registerWebviewPanelSerializer is called during activation.

            Only a single serializer may be registered at a time for a given viewType.

            Parameter viewType

            Type of the webview panel that can be serialized.

            Parameter serializer

            Webview serializer.

            Returns

            A that unregisters the serializer.

          function registerWebviewViewProvider

          registerWebviewViewProvider: (
          viewId: string,
          provider: WebviewViewProvider,
          options?: {
          readonly webviewOptions?: { readonly retainContextWhenHidden?: boolean };
          }
          ) => Disposable;
          • Register a new provider for webview views.

            Parameter viewId

            Unique id of the view. This should match the id from the views contribution in the package.json.

            Parameter provider

            Provider for the webview views.

            Returns

            Disposable that unregisters the provider.

          function setStatusBarMessage

          setStatusBarMessage: {
          (text: string, hideAfterTimeout: number): Disposable;
          (text: string, hideWhenDone: Thenable<any>): Disposable;
          (text: string): Disposable;
          };
          • Set a message to the status bar. This is a short hand for the more powerful status bar .

            Parameter text

            The message to show, supports icon substitution as in status bar .

            Parameter hideAfterTimeout

            Timeout in milliseconds after which the message will be disposed.

            Returns

            A disposable which hides the status bar message.

          • Set a message to the status bar. This is a short hand for the more powerful status bar .

            Parameter text

            The message to show, supports icon substitution as in status bar .

            Parameter hideWhenDone

            Thenable on which completion (resolve or reject) the message will be disposed.

            Returns

            A disposable which hides the status bar message.

          • Set a message to the status bar. This is a short hand for the more powerful status bar .

            *Note* that status bar messages stack and that they must be disposed when no longer used.

            Parameter text

            The message to show, supports icon substitution as in status bar .

            Returns

            A disposable which hides the status bar message.

          function showErrorMessage

          showErrorMessage: {
          <T extends string>(message: string, ...items: T[]): Thenable<T | undefined>;
          <T extends string>(
          message: string,
          options: MessageOptions,
          ...items: T[]
          ): Thenable<T>;
          <T extends MessageItem>(message: string, ...items: T[]): Thenable<T>;
          <T extends MessageItem>(
          message: string,
          options: MessageOptions,
          ...items: T[]
          ): Thenable<T>;
          };
          • Show an error message.

            Parameter message

            The message to show.

            Parameter items

            A set of items that will be rendered as actions in the message.

            Returns

            A thenable that resolves to the selected item or undefined when being dismissed.

            See Also

          • Show an error message.

            Parameter message

            The message to show.

            Parameter options

            Configures the behaviour of the message.

            Parameter items

            A set of items that will be rendered as actions in the message.

            Returns

            A thenable that resolves to the selected item or undefined when being dismissed.

            See Also

          function showInformationMessage

          showInformationMessage: {
          <T extends string>(message: string, ...items: T[]): Thenable<T | undefined>;
          <T extends string>(
          message: string,
          options: MessageOptions,
          ...items: T[]
          ): Thenable<T>;
          <T extends MessageItem>(message: string, ...items: T[]): Thenable<T>;
          <T extends MessageItem>(
          message: string,
          options: MessageOptions,
          ...items: T[]
          ): Thenable<T>;
          };
          • Show an information message to users. Optionally provide an array of items which will be presented as clickable buttons.

            Parameter message

            The message to show.

            Parameter items

            A set of items that will be rendered as actions in the message.

            Returns

            A thenable that resolves to the selected item or undefined when being dismissed.

          • Show an information message to users. Optionally provide an array of items which will be presented as clickable buttons.

            Parameter message

            The message to show.

            Parameter options

            Configures the behaviour of the message.

            Parameter items

            A set of items that will be rendered as actions in the message.

            Returns

            A thenable that resolves to the selected item or undefined when being dismissed.

          • Show an information message.

            Parameter message

            The message to show.

            Parameter items

            A set of items that will be rendered as actions in the message.

            Returns

            A thenable that resolves to the selected item or undefined when being dismissed.

            See Also

          • Show an information message.

            Parameter message

            The message to show.

            Parameter options

            Configures the behaviour of the message.

            Parameter items

            A set of items that will be rendered as actions in the message.

            Returns

            A thenable that resolves to the selected item or undefined when being dismissed.

            See Also

          function showInputBox

          showInputBox: (
          options?: InputBoxOptions,
          token?: CancellationToken
          ) => Thenable<string | undefined>;
          • Opens an input box to ask the user for input.

            The returned value will be undefined if the input box was canceled (e.g. pressing ESC). Otherwise the returned value will be the string typed by the user or an empty string if the user did not type anything but dismissed the input box with OK.

            Parameter options

            Configures the behavior of the input box.

            Parameter token

            A token that can be used to signal cancellation.

            Returns

            A promise that resolves to a string the user provided or to undefined in case of dismissal.

          function showNotebookDocument

          showNotebookDocument: (
          document: NotebookDocument,
          options?: NotebookDocumentShowOptions
          ) => Thenable<NotebookEditor>;
          • Show the given NotebookDocument in a .

            Parameter document

            A text document to be shown.

            Parameter options

            to configure the behavior of showing the .

            Returns

            A promise that resolves to an .

          function showOpenDialog

          showOpenDialog: (options?: OpenDialogOptions) => Thenable<Uri[] | undefined>;
          • Shows a file open dialog to the user which allows to select a file for opening-purposes.

            Parameter options

            Options that control the dialog.

            Returns

            A promise that resolves to the selected resources or undefined.

          function showQuickPick

          showQuickPick: {
          (
          items: readonly string[] | Thenable<readonly string[]>,
          options: QuickPickOptions & { canPickMany: true },
          token?: CancellationToken
          ): Thenable<string[] | undefined>;
          (
          items: readonly string[] | Thenable<readonly string[]>,
          options?: QuickPickOptions,
          token?: CancellationToken
          ): Thenable<string>;
          <T extends QuickPickItem>(
          items: readonly T[] | Thenable<readonly T[]>,
          options: QuickPickOptions & { canPickMany: true },
          token?: CancellationToken
          ): Thenable<T[]>;
          <T extends QuickPickItem>(
          items: readonly T[] | Thenable<readonly T[]>,
          options?: QuickPickOptions,
          token?: CancellationToken
          ): Thenable<T>;
          };
          • Shows a selection list allowing multiple selections.

            Parameter items

            An array of strings, or a promise that resolves to an array of strings.

            Parameter options

            Configures the behavior of the selection list.

            Parameter token

            A token that can be used to signal cancellation.

            Returns

            A promise that resolves to the selected items or undefined.

          • Shows a selection list.

            Parameter items

            An array of strings, or a promise that resolves to an array of strings.

            Parameter options

            Configures the behavior of the selection list.

            Parameter token

            A token that can be used to signal cancellation.

            Returns

            A promise that resolves to the selection or undefined.

          • Shows a selection list allowing multiple selections.

            Parameter items

            An array of items, or a promise that resolves to an array of items.

            Parameter options

            Configures the behavior of the selection list.

            Parameter token

            A token that can be used to signal cancellation.

            Returns

            A promise that resolves to the selected items or undefined.

          • Shows a selection list.

            Parameter items

            An array of items, or a promise that resolves to an array of items.

            Parameter options

            Configures the behavior of the selection list.

            Parameter token

            A token that can be used to signal cancellation.

            Returns

            A promise that resolves to the selected item or undefined.

          function showSaveDialog

          showSaveDialog: (options?: SaveDialogOptions) => Thenable<Uri | undefined>;
          • Shows a file save dialog to the user which allows to select a file for saving-purposes.

            Parameter options

            Options that control the dialog.

            Returns

            A promise that resolves to the selected resource or undefined.

          function showTextDocument

          showTextDocument: {
          (
          document: TextDocument,
          column?: ViewColumn,
          preserveFocus?: boolean
          ): Thenable<TextEditor>;
          (
          document: TextDocument,
          options?: TextDocumentShowOptions
          ): Thenable<TextEditor>;
          (uri: Uri, options?: TextDocumentShowOptions): Thenable<TextEditor>;
          };
          • Show the given document in a text editor. A can be provided to control where the editor is being shown. Might change the .

            Parameter document

            A text document to be shown.

            Parameter column

            A view column in which the should be shown. The default is the . Columns that do not exist will be created as needed up to the maximum of . Use to open the editor to the side of the currently active one.

            Parameter preserveFocus

            When true the editor will not take focus.

            Returns

            A promise that resolves to an .

          • Show the given document in a text editor. can be provided to control options of the editor is being shown. Might change the .

            Parameter document

            A text document to be shown.

            Parameter options

            to configure the behavior of showing the .

            Returns

            A promise that resolves to an .

          • A short-hand for openTextDocument(uri).then(document => showTextDocument(document, options)).

            Parameter uri

            A resource identifier.

            Parameter options

            to configure the behavior of showing the .

            Returns

            A promise that resolves to an .

            See Also

          function showWarningMessage

          showWarningMessage: {
          <T extends string>(message: string, ...items: T[]): Thenable<T | undefined>;
          <T extends string>(
          message: string,
          options: MessageOptions,
          ...items: T[]
          ): Thenable<T>;
          <T extends MessageItem>(message: string, ...items: T[]): Thenable<T>;
          <T extends MessageItem>(
          message: string,
          options: MessageOptions,
          ...items: T[]
          ): Thenable<T>;
          };
          • Show a warning message.

            Parameter message

            The message to show.

            Parameter items

            A set of items that will be rendered as actions in the message.

            Returns

            A thenable that resolves to the selected item or undefined when being dismissed.

            See Also

          • Show a warning message.

            Parameter message

            The message to show.

            Parameter options

            Configures the behaviour of the message.

            Parameter items

            A set of items that will be rendered as actions in the message.

            Returns

            A thenable that resolves to the selected item or undefined when being dismissed.

            See Also

          function showWorkspaceFolderPick

          showWorkspaceFolderPick: (
          options?: WorkspaceFolderPickOptions
          ) => Thenable<WorkspaceFolder | undefined>;
          • Shows a selection list of to pick from. Returns undefined if no folder is open.

            Parameter options

            Configures the behavior of the workspace folder list.

            Returns

            A promise that resolves to the workspace folder or undefined.

          function withProgress

          withProgress: <R>(
          options: ProgressOptions,
          task: (
          progress: Progress<{ message?: string; increment?: number }>,
          token: CancellationToken
          ) => Thenable<R>
          ) => Thenable<R>;
          • Show progress in the editor. Progress is shown while running the given callback and while the promise it returned isn't resolved nor rejected. The location at which progress should show (and other details) is defined via the passed .

            Parameter options

            A -object describing the options to use for showing progress, like its location

            Parameter task

            A callback returning a promise. Progress state can be reported with the provided Progress-object.

            To report discrete progress, use increment to indicate how much work has been completed. Each call with a increment value will be summed up and reflected as overall progress until 100% is reached (a value of e.g. 10 accounts for 10% of work done). Note that currently only ProgressLocation.Notification is capable of showing discrete progress.

            To monitor if the operation has been cancelled by the user, use the provided . Note that currently only ProgressLocation.Notification is supporting to show a cancel button to cancel the long running operation.

            Returns

            The thenable the task-callback returned.

          function withScmProgress

          withScmProgress: <R>(
          task: (progress: Progress<number>) => Thenable<R>
          ) => Thenable<R>;
          • Show progress in the Source Control viewlet while running the given callback and while its returned promise isn't resolve or rejected.

            Parameter task

            A callback returning a promise. Progress increments can be reported with the provided Progress-object.

            Returns

            The thenable the task did return.

            Deprecated

            Use withProgress instead.

          namespace vscode.workspace

          namespace vscode.workspace {}
          • Namespace for dealing with the current workspace. A workspace is the collection of one or more folders that are opened in an editor window (instance).

            It is also possible to open an editor without a workspace. For example, when you open a new editor window by selecting a file from your platform's File menu, you will not be inside a workspace. In this mode, some of the editor's capabilities are reduced but you can still open text files and edit them.

            Refer to https://code.visualstudio.com/docs/editor/workspaces for more information on the concept of workspaces.

            The workspace offers support for to fs events and for files. Both perform well and run _outside_ the editor-process so that they should be always used instead of nodejs-equivalents.

          variable fs

          const fs: FileSystem;
          • A instance that allows to interact with local and remote files, e.g. vscode.workspace.fs.readDirectory(someUri) allows to retrieve all entries of a directory or vscode.workspace.fs.stat(anotherUri) returns the meta data for a file.

          variable isTrusted

          const isTrusted: boolean;
          • When true, the user has explicitly trusted the contents of the workspace.

          variable name

          const name: string;
          • The name of the workspace. undefined when no workspace has been opened.

            Refer to https://code.visualstudio.com/docs/editor/workspaces for more information on the concept of workspaces.

          variable notebookDocuments

          const notebookDocuments: readonly NotebookDocument[];
          • All notebook documents currently known to the editor.

          variable onDidChangeConfiguration

          const onDidChangeConfiguration: Event<ConfigurationChangeEvent>;
          • An event that is emitted when the changed.

          variable onDidChangeNotebookDocument

          const onDidChangeNotebookDocument: Event<NotebookDocumentChangeEvent>;
          • An event that is emitted when a has changed.

          variable onDidChangeTextDocument

          const onDidChangeTextDocument: Event<TextDocumentChangeEvent>;
          • An event that is emitted when a is changed. This usually happens when the changes but also when other things like the -state changes.

          variable onDidChangeWorkspaceFolders

          const onDidChangeWorkspaceFolders: Event<WorkspaceFoldersChangeEvent>;
          • An event that is emitted when a workspace folder is added or removed.

            **Note:** this event will not fire if the first workspace folder is added, removed or changed, because in that case the currently executing extensions (including the one that listens to this event) will be terminated and restarted so that the (deprecated) rootPath property is updated to point to the first workspace folder.

          variable onDidCloseNotebookDocument

          const onDidCloseNotebookDocument: Event<NotebookDocument>;
          • An event that is emitted when a is disposed.

            *Note 1:* There is no guarantee that this event fires when an editor tab is closed.

            *Note 2:* A notebook can be open but not shown in an editor which means this event can fire for a notebook that has not been shown in an editor.

          variable onDidCloseTextDocument

          const onDidCloseTextDocument: Event<TextDocument>;
          • An event that is emitted when a is disposed or when the language id of a text document .

            *Note 1:* There is no guarantee that this event fires when an editor tab is closed, use the -event to know when editors change.

            *Note 2:* A document can be open but not shown in an editor which means this event can fire for a document that has not been shown in an editor.

          variable onDidCreateFiles

          const onDidCreateFiles: Event<FileCreateEvent>;
          • An event that is emitted when files have been created.

            *Note:* This event is triggered by user gestures, like creating a file from the explorer, or from the -api, but this event is *not* fired when files change on disk, e.g triggered by another application, or when using the -api.

          variable onDidDeleteFiles

          const onDidDeleteFiles: Event<FileDeleteEvent>;
          • An event that is emitted when files have been deleted.

            *Note 1:* This event is triggered by user gestures, like deleting a file from the explorer, or from the -api, but this event is *not* fired when files change on disk, e.g triggered by another application, or when using the -api.

            *Note 2:* When deleting a folder with children only one event is fired.

          variable onDidGrantWorkspaceTrust

          const onDidGrantWorkspaceTrust: Event<void>;
          • Event that fires when the current workspace has been trusted.

          variable onDidOpenNotebookDocument

          const onDidOpenNotebookDocument: Event<NotebookDocument>;
          • An event that is emitted when a is opened.

          variable onDidOpenTextDocument

          const onDidOpenTextDocument: Event<TextDocument>;
          • An event that is emitted when a is opened or when the language id of a text document .

            To add an event listener when a visible text document is opened, use the TextEditor events in the window namespace. Note that:

            - The event is emitted before the is updated in the - When a is already open (e.g.: open in another ) this event is not emitted

          variable onDidRenameFiles

          const onDidRenameFiles: Event<FileRenameEvent>;
          • An event that is emitted when files have been renamed.

            *Note 1:* This event is triggered by user gestures, like renaming a file from the explorer, and from the -api, but this event is *not* fired when files change on disk, e.g triggered by another application, or when using the -api.

            *Note 2:* When renaming a folder with children only one event is fired.

          variable onDidSaveNotebookDocument

          const onDidSaveNotebookDocument: Event<NotebookDocument>;
          • An event that is emitted when a is saved.

          variable onDidSaveTextDocument

          const onDidSaveTextDocument: Event<TextDocument>;
          • An event that is emitted when a is saved to disk.

          variable onWillCreateFiles

          const onWillCreateFiles: Event<FileWillCreateEvent>;
          • An event that is emitted when files are being created.

            *Note 1:* This event is triggered by user gestures, like creating a file from the explorer, or from the -api. This event is *not* fired when files change on disk, e.g triggered by another application, or when using the -api.

            *Note 2:* When this event is fired, edits to files that are are being created cannot be applied.

          variable onWillDeleteFiles

          const onWillDeleteFiles: Event<FileWillDeleteEvent>;
          • An event that is emitted when files are being deleted.

            *Note 1:* This event is triggered by user gestures, like deleting a file from the explorer, or from the -api, but this event is *not* fired when files change on disk, e.g triggered by another application, or when using the -api.

            *Note 2:* When deleting a folder with children only one event is fired.

          variable onWillRenameFiles

          const onWillRenameFiles: Event<FileWillRenameEvent>;
          • An event that is emitted when files are being renamed.

            *Note 1:* This event is triggered by user gestures, like renaming a file from the explorer, and from the -api, but this event is *not* fired when files change on disk, e.g triggered by another application, or when using the -api.

            *Note 2:* When renaming a folder with children only one event is fired.

          variable onWillSaveNotebookDocument

          const onWillSaveNotebookDocument: Event<NotebookDocumentWillSaveEvent>;
          • An event that is emitted when a will be saved to disk.

            *Note 1:* Subscribers can delay saving by registering asynchronous work. For the sake of data integrity the editor might save without firing this event. For instance when shutting down with dirty files.

            *Note 2:* Subscribers are called sequentially and they can saving by registering asynchronous work. Protection against misbehaving listeners is implemented as such: * there is an overall time budget that all listeners share and if that is exhausted no further listener is called * listeners that take a long time or produce errors frequently will not be called anymore

            The current thresholds are 1.5 seconds as overall time budget and a listener can misbehave 3 times before being ignored.

          variable onWillSaveTextDocument

          const onWillSaveTextDocument: Event<TextDocumentWillSaveEvent>;
          • An event that is emitted when a will be saved to disk.

            *Note 1:* Subscribers can delay saving by registering asynchronous work. For the sake of data integrity the editor might save without firing this event. For instance when shutting down with dirty files.

            *Note 2:* Subscribers are called sequentially and they can saving by registering asynchronous work. Protection against misbehaving listeners is implemented as such: * there is an overall time budget that all listeners share and if that is exhausted no further listener is called * listeners that take a long time or produce errors frequently will not be called anymore

            The current thresholds are 1.5 seconds as overall time budget and a listener can misbehave 3 times before being ignored.

          variable rootPath

          const rootPath: string;
          • The uri of the first entry of as string. undefined if there is no first entry.

            Refer to https://code.visualstudio.com/docs/editor/workspaces for more information on workspaces.

            Deprecated

            Use instead.

          variable textDocuments

          const textDocuments: readonly TextDocument[];
          • All text documents currently known to the editor.

          variable workspaceFile

          const workspaceFile: Uri;
          • The location of the workspace file, for example:

            file:///Users/name/Development/myProject.code-workspace

            or

            untitled:1555503116870

            for a workspace that is untitled and not yet saved.

            Depending on the workspace that is opened, the value will be: * undefined when no workspace is opened * the path of the workspace file as Uri otherwise. if the workspace is untitled, the returned URI will use the untitled: scheme

            The location can e.g. be used with the vscode.openFolder command to open the workspace again after it has been closed.

            **Example:**

            vscode.commands.executeCommand('vscode.openFolder', uriOfWorkspace);

            Refer to https://code.visualstudio.com/docs/editor/workspaces for more information on the concept of workspaces.

            **Note:** it is not advised to use workspace.workspaceFile to write configuration data into the file. You can use workspace.getConfiguration().update() for that purpose which will work both when a single folder is opened as well as an untitled or saved workspace.

          variable workspaceFolders

          const workspaceFolders: readonly WorkspaceFolder[];
          • List of workspace folders (0-N) that are open in the editor. undefined when no workspace has been opened.

            Refer to https://code.visualstudio.com/docs/editor/workspaces for more information on workspaces.

          function applyEdit

          applyEdit: (
          edit: WorkspaceEdit,
          metadata?: WorkspaceEditMetadata
          ) => Thenable<boolean>;
          • Make changes to one or many resources or create, delete, and rename resources as defined by the given .

            All changes of a workspace edit are applied in the same order in which they have been added. If multiple textual inserts are made at the same position, these strings appear in the resulting text in the order the 'inserts' were made, unless that are interleaved with resource edits. Invalid sequences like 'delete file a' -> 'insert text in file a' cause failure of the operation.

            When applying a workspace edit that consists only of text edits an 'all-or-nothing'-strategy is used. A workspace edit with resource creations or deletions aborts the operation, e.g. consecutive edits will not be attempted, when a single edit fails.

            Parameter edit

            A workspace edit.

            Parameter metadata

            Optional for the edit.

            Returns

            A thenable that resolves when the edit could be applied.

          function asRelativePath

          asRelativePath: (
          pathOrUri: string | Uri,
          includeWorkspaceFolder?: boolean
          ) => string;
          • Returns a path that is relative to the workspace folder or folders.

            When there are no or when the path is not contained in them, the input is returned.

            Parameter pathOrUri

            A path or uri. When a uri is given its is used.

            Parameter includeWorkspaceFolder

            When true and when the given path is contained inside a workspace folder the name of the workspace is prepended. Defaults to true when there are multiple workspace folders and false otherwise.

            Returns

            A path relative to the root or the input.

          function createFileSystemWatcher

          createFileSystemWatcher: (
          globPattern: GlobPattern,
          ignoreCreateEvents?: boolean,
          ignoreChangeEvents?: boolean,
          ignoreDeleteEvents?: boolean
          ) => FileSystemWatcher;
          • Creates a file system watcher that is notified on file events (create, change, delete) depending on the parameters provided.

            By default, all opened will be watched for file changes recursively.

            Additional paths can be added for file watching by providing a RelativePattern with a base path to watch. If the path is a folder and the pattern is complex (e.g. contains ** or path segments), it will be watched recursively and otherwise will be watched non-recursively (i.e. only changes to the first level of the path will be reported).

            *Note* that paths that do not exist in the file system will be monitored with a delay until created and then watched depending on the parameters provided. If a watched path is deleted, the watcher will suspend and not report any events until the path is created again.

            If possible, keep the use of recursive watchers to a minimum because recursive file watching is quite resource intense.

            Providing a string as globPattern acts as convenience method for watching file events in all opened workspace folders. It cannot be used to add more folders for file watching, nor will it report any file events from folders that are not part of the opened workspace folders.

            Optionally, flags to ignore certain kinds of events can be provided.

            To stop listening to events the watcher must be disposed.

            *Note* that file events from recursive file watchers may be excluded based on user configuration. The setting files.watcherExclude helps to reduce the overhead of file events from folders that are known to produce many file changes at once (such as .git folders). As such, it is highly recommended to watch with simple patterns that do not require recursive watchers where the exclude settings are ignored and you have full control over the events.

            *Note* that symbolic links are not automatically followed for file watching unless the path to watch itself is a symbolic link.

            *Note* that the file paths that are reported for having changed may have a different path casing compared to the actual casing on disk on case-insensitive platforms (typically macOS and Windows but not Linux). We allow a user to open a workspace folder with any desired path casing and try to preserve that. This means: * if the path is within any of the workspace folders, the path will match the casing of the workspace folder up to that portion of the path and match the casing on disk for children * if the path is outside of any of the workspace folders, the casing will match the case of the path that was provided for watching In the same way, symbolic links are preserved, i.e. the file event will report the path of the symbolic link as it was provided for watching and not the target.

            ### Examples

            The basic anatomy of a file watcher is as follows:

            const watcher = vscode.workspace.createFileSystemWatcher(new vscode.RelativePattern(<folder>, <pattern>));
            watcher.onDidChange(uri => { ... }); // listen to files being changed
            watcher.onDidCreate(uri => { ... }); // listen to files/folders being created
            watcher.onDidDelete(uri => { ... }); // listen to files/folders getting deleted
            watcher.dispose(); // dispose after usage

            #### Workspace file watching

            If you only care about file events in a specific workspace folder:

            vscode.workspace.createFileSystemWatcher(new vscode.RelativePattern(vscode.workspace.workspaceFolders[0], '**​/*.js'));

            If you want to monitor file events across all opened workspace folders:

            vscode.workspace.createFileSystemWatcher('**​/*.js');

            *Note:* the array of workspace folders can be empty if no workspace is opened (empty window).

            #### Out of workspace file watching

            To watch a folder for changes to *.js files outside the workspace (non recursively), pass in a Uri to such a folder:

            vscode.workspace.createFileSystemWatcher(new vscode.RelativePattern(vscode.Uri.file(<path to folder outside workspace>), '*.js'));

            And use a complex glob pattern to watch recursively:

            vscode.workspace.createFileSystemWatcher(new vscode.RelativePattern(vscode.Uri.file(<path to folder outside workspace>), '**​/*.js'));

            Here is an example for watching the active editor for file changes:

            vscode.workspace.createFileSystemWatcher(new vscode.RelativePattern(vscode.window.activeTextEditor.document.uri, '*'));

            Parameter globPattern

            A that controls which file events the watcher should report.

            Parameter ignoreCreateEvents

            Ignore when files have been created.

            Parameter ignoreChangeEvents

            Ignore when files have been changed.

            Parameter ignoreDeleteEvents

            Ignore when files have been deleted.

            Returns

            A new file system watcher instance. Must be disposed when no longer needed.

          function findFiles

          findFiles: (
          include: GlobPattern,
          exclude?: GlobPattern | null,
          maxResults?: number,
          token?: CancellationToken
          ) => Thenable<Uri[]>;
          • Find files across all in the workspace.

            Parameter include

            A that defines the files to search for. The glob pattern will be matched against the file paths of resulting matches relative to their workspace. Use a to restrict the search results to a .

            Parameter exclude

            A that defines files and folders to exclude. The glob pattern will be matched against the file paths of resulting matches relative to their workspace. When undefined, default file-excludes (e.g. the files.exclude-setting but not search.exclude) will apply. When null, no excludes will apply.

            Parameter maxResults

            An upper-bound for the result.

            Parameter token

            A token that can be used to signal cancellation to the underlying search engine.

            Returns

            A thenable that resolves to an array of resource identifiers. Will return no results if no are opened.

            Example 1

            findFiles('**​/*.js', '**​/node_modules/**', 10)

          function getConfiguration

          getConfiguration: (
          section?: string,
          scope?: ConfigurationScope | null
          ) => WorkspaceConfiguration;
          • Get a workspace configuration object.

            When a section-identifier is provided only that part of the configuration is returned. Dots in the section-identifier are interpreted as child-access, like { myExt: { setting: { doIt: true }}} and getConfiguration('myExt.setting').get('doIt') === true.

            When a scope is provided configuration confined to that scope is returned. Scope can be a resource or a language identifier or both.

            Parameter section

            A dot-separated identifier.

            Parameter scope

            A scope for which the configuration is asked for.

            Returns

            The full configuration or a subset.

          function getWorkspaceFolder

          getWorkspaceFolder: (uri: Uri) => WorkspaceFolder | undefined;
          • Returns the that contains a given uri. * returns undefined when the given uri doesn't match any workspace folder * returns the *input* when the given uri is a workspace folder itself

            Parameter uri

            An uri.

            Returns

            A workspace folder or undefined

          function openNotebookDocument

          openNotebookDocument: {
          (uri: Uri): Thenable<NotebookDocument>;
          (notebookType: string, content?: NotebookData): Thenable<NotebookDocument>;
          };
          • Open a notebook. Will return early if this notebook is already . Otherwise the notebook is loaded and the -event fires.

            *Note* that the lifecycle of the returned notebook is owned by the editor and not by the extension. That means an -event can occur at any time after.

            *Note* that opening a notebook does not show a notebook editor. This function only returns a notebook document which can be shown in a notebook editor but it can also be used for other things.

            Parameter uri

            The resource to open.

            Returns

            A promise that resolves to a

          • Open an untitled notebook. The editor will prompt the user for a file path when the document is to be saved.

            Parameter notebookType

            The notebook type that should be used.

            Parameter content

            The initial contents of the notebook.

            Returns

            A promise that resolves to a .

            See Also

          function openTextDocument

          openTextDocument: {
          (uri: Uri): Thenable<TextDocument>;
          (path: string): Thenable<TextDocument>;
          (options?: { language?: string; content?: string }): Thenable<TextDocument>;
          };
          • Opens a document. Will return early if this document is already open. Otherwise the document is loaded and the -event fires.

            The document is denoted by an Uri. Depending on the the following rules apply: * file-scheme: Open a file on disk (openTextDocument(Uri.file(path))). Will be rejected if the file does not exist or cannot be loaded. * untitled-scheme: Open a blank untitled file with associated path (openTextDocument(Uri.file(path).with({ scheme: 'untitled' }))). The language will be derived from the file name. * For all other schemes contributed and are consulted.

            *Note* that the lifecycle of the returned document is owned by the editor and not by the extension. That means an -event can occur at any time after opening it.

            Parameter uri

            Identifies the resource to open.

            Returns

            A promise that resolves to a .

          • A short-hand for openTextDocument(Uri.file(path)).

            Parameter path

            A path of a file on disk.

            Returns

            A promise that resolves to a .

            See Also

          • Opens an untitled text document. The editor will prompt the user for a file path when the document is to be saved. The options parameter allows to specify the *language* and/or the *content* of the document.

            Parameter options

            Options to control how the document will be created.

            Returns

            A promise that resolves to a .

          function registerFileSystemProvider

          registerFileSystemProvider: (
          scheme: string,
          provider: FileSystemProvider,
          options?: {
          readonly isCaseSensitive?: boolean;
          readonly isReadonly?: boolean | MarkdownString;
          }
          ) => Disposable;
          • Register a filesystem provider for a given scheme, e.g. ftp.

            There can only be one provider per scheme and an error is being thrown when a scheme has been claimed by another provider or when it is reserved.

            Parameter scheme

            The uri- the provider registers for.

            Parameter provider

            The filesystem provider.

            Parameter options

            Immutable metadata about the provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function registerNotebookSerializer

          registerNotebookSerializer: (
          notebookType: string,
          serializer: NotebookSerializer,
          options?: NotebookDocumentContentOptions
          ) => Disposable;
          • Register a .

            A notebook serializer must be contributed through the notebooks extension point. When opening a notebook file, the editor will send the onNotebook:<notebookType> activation event, and extensions must register their serializer in return.

            Parameter notebookType

            A notebook.

            Parameter serializer

            A notebook serializer.

            Parameter options

            Optional context options that define what parts of a notebook should be persisted

            Returns

            A Disposable that unregisters this serializer when being disposed.

          function registerTaskProvider

          registerTaskProvider: (type: string, provider: TaskProvider) => Disposable;
          • Register a task provider.

            Parameter type

            The task kind type this provider is registered for.

            Parameter provider

            A task provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

            Deprecated

            Use the corresponding function on the tasks namespace instead

          function registerTextDocumentContentProvider

          registerTextDocumentContentProvider: (
          scheme: string,
          provider: TextDocumentContentProvider
          ) => Disposable;
          • Register a text document content provider.

            Only one provider can be registered per scheme.

            Parameter scheme

            The uri-scheme to register for.

            Parameter provider

            A content provider.

            Returns

            A Disposable that unregisters this provider when being disposed.

          function save

          save: (uri: Uri) => Thenable<Uri | undefined>;
          • Saves the editor identified by the given resource and returns the resulting resource or undefined if save was not successful or no editor with the given resource was found.

            **Note** that an editor with the provided resource must be opened in order to be saved.

            Parameter uri

            the associated uri for the opened editor to save.

            Returns

            A thenable that resolves when the save operation has finished.

          function saveAll

          saveAll: (includeUntitled?: boolean) => Thenable<boolean>;
          • Save all dirty files.

            Parameter includeUntitled

            Also save files that have been created during this session.

            Returns

            A thenable that resolves when the files have been saved. Will return false for any file that failed to save.

          function saveAs

          saveAs: (uri: Uri) => Thenable<Uri | undefined>;
          • Saves the editor identified by the given resource to a new file name as provided by the user and returns the resulting resource or undefined if save was not successful or cancelled or no editor with the given resource was found.

            **Note** that an editor with the provided resource must be opened in order to be saved as.

            Parameter uri

            the associated uri for the opened editor to save as.

            Returns

            A thenable that resolves when the save-as operation has finished.

          function updateWorkspaceFolders

          updateWorkspaceFolders: (
          start: number,
          deleteCount: number | undefined | null,
          ...workspaceFoldersToAdd: { readonly uri: Uri; readonly name?: string }[]
          ) => boolean;
          • This method replaces deleteCount starting at index start by an optional set of workspaceFoldersToAdd on the vscode.workspace.workspaceFolders array. This "splice" behavior can be used to add, remove and change workspace folders in a single operation.

            **Note:** in some cases calling this method may result in the currently executing extensions (including the one that called this method) to be terminated and restarted. For example when the first workspace folder is added, removed or changed the (deprecated) rootPath property is updated to point to the first workspace folder. Another case is when transitioning from an empty or single-folder workspace into a multi-folder workspace (see also: https://code.visualstudio.com/docs/editor/workspaces).

            Use the event to get notified when the workspace folders have been updated.

            **Example:** adding a new workspace folder at the end of workspace folders

            workspace.updateWorkspaceFolders(workspace.workspaceFolders ? workspace.workspaceFolders.length : 0, null, { uri: ...});

            **Example:** removing the first workspace folder

            workspace.updateWorkspaceFolders(0, 1);

            **Example:** replacing an existing workspace folder with a new one

            workspace.updateWorkspaceFolders(0, 1, { uri: ...});

            It is valid to remove an existing workspace folder and add it again with a different name to rename that folder.

            **Note:** it is not valid to call multiple times without waiting for the to fire.

            Parameter start

            the zero-based location in the list of currently opened from which to start deleting workspace folders.

            Parameter deleteCount

            the optional number of workspace folders to remove.

            Parameter workspaceFoldersToAdd

            the optional variable set of workspace folders to add in place of the deleted ones. Each workspace is identified with a mandatory URI and an optional name.

            Returns

            true if the operation was successfully started and false otherwise if arguments were used that would result in invalid workspace folder state (e.g. 2 folders with the same URI).

          Package Files (1)

          Dependencies (0)

          No dependencies.

          Dev Dependencies (0)

          No dev dependencies.

          Peer Dependencies (0)

          No peer dependencies.

          Badge

          To add a badge like this onejsDocs.io badgeto your package's README, use the codes available below.

          You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/@types/vscode.

          • Markdown
            [![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/@types/vscode)
          • HTML
            <a href="https://www.jsdocs.io/package/@types/vscode"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>