@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
vscode
- AccessibilityInformation
- AuthenticationForceNewSessionOptions
- AuthenticationGetSessionOptions
- AuthenticationGetSessionPresentationOptions
- AuthenticationProvider
- AuthenticationProviderAuthenticationSessionsChangeEvent
- AuthenticationProviderInformation
- AuthenticationProviderOptions
- AuthenticationProviderSessionOptions
- AuthenticationSession
- AuthenticationSessionAccountInformation
- AuthenticationSessionsChangeEvent
- AutoClosingPair
- BranchCoverage
- Breakpoint
- BreakpointsChangeEvent
- CallHierarchyIncomingCall
- CallHierarchyItem
- CallHierarchyOutgoingCall
- CallHierarchyProvider
- CancellationError
- CancellationToken
- CancellationTokenSource
- CharacterPair
- ChatContext
- ChatErrorDetails
- ChatFollowup
- ChatFollowupProvider
- ChatLanguageModelToolReference
- ChatParticipant
- ChatParticipantToolToken
- ChatPromptReference
- ChatRequest
- ChatRequestHandler
- ChatRequestTurn
- ChatResponseAnchorPart
- ChatResponseCommandButtonPart
- ChatResponseFileTree
- ChatResponseFileTreePart
- ChatResponseMarkdownPart
- ChatResponsePart
- ChatResponseProgressPart
- ChatResponseReferencePart
- ChatResponseStream
- ChatResponseTurn
- ChatResult
- ChatResultFeedback
- ChatResultFeedbackKind
- Clipboard
- CodeAction
- CodeActionContext
- CodeActionKind
- CodeActionProvider
- CodeActionProviderMetadata
- CodeActionTriggerKind
- CodeLens
- CodeLensProvider
- Color
- ColorInformation
- ColorPresentation
- ColorTheme
- ColorThemeKind
- Command
- Comment
- CommentAuthorInformation
- CommentController
- CommentingRangeProvider
- CommentingRanges
- CommentMode
- CommentOptions
- CommentReaction
- CommentReply
- CommentRule
- CommentThread
- CommentThreadCollapsibleState
- CommentThreadState
- CompletionContext
- CompletionItem
- CompletionItemKind
- CompletionItemLabel
- CompletionItemProvider
- CompletionItemTag
- CompletionList
- CompletionTriggerKind
- ConfigurationChangeEvent
- ConfigurationScope
- ConfigurationTarget
- CustomDocument
- CustomDocumentBackup
- CustomDocumentBackupContext
- CustomDocumentContentChangeEvent
- CustomDocumentEditEvent
- CustomDocumentOpenContext
- CustomEditorProvider
- CustomExecution
- CustomReadonlyEditorProvider
- CustomTextEditorProvider
- DataTransfer
- DataTransferFile
- DataTransferItem
- DebugAdapter
- DebugAdapterDescriptor
- DebugAdapterDescriptorFactory
- DebugAdapterExecutable
- DebugAdapterExecutableOptions
- DebugAdapterInlineImplementation
- DebugAdapterNamedPipeServer
- DebugAdapterServer
- DebugAdapterTracker
- DebugAdapterTrackerFactory
- DebugConfiguration
- DebugConfigurationProvider
- DebugConfigurationProviderTriggerKind
- DebugConsole
- DebugConsoleMode
- DebugProtocolBreakpoint
- DebugProtocolMessage
- DebugProtocolSource
- DebugSession
- DebugSessionCustomEvent
- DebugSessionOptions
- DebugStackFrame
- DebugThread
- Declaration
- DeclarationCoverage
- DeclarationProvider
- DecorationInstanceRenderOptions
- DecorationOptions
- DecorationRangeBehavior
- DecorationRenderOptions
- Definition
- DefinitionLink
- DefinitionProvider
- Diagnostic
- DiagnosticChangeEvent
- DiagnosticCollection
- DiagnosticRelatedInformation
- DiagnosticSeverity
- DiagnosticTag
- Disposable
- DocumentColorProvider
- DocumentDropEdit
- DocumentDropEditProvider
- DocumentDropEditProviderMetadata
- DocumentDropOrPasteEditKind
- DocumentFilter
- DocumentFormattingEditProvider
- DocumentHighlight
- DocumentHighlightKind
- DocumentHighlightProvider
- DocumentLink
- DocumentLinkProvider
- DocumentPasteEdit
- DocumentPasteEditContext
- DocumentPasteEditProvider
- DocumentPasteProviderMetadata
- DocumentPasteTriggerKind
- DocumentRangeFormattingEditProvider
- DocumentRangeSemanticTokensProvider
- DocumentSelector
- DocumentSemanticTokensProvider
- DocumentSymbol
- DocumentSymbolProvider
- DocumentSymbolProviderMetadata
- EndOfLine
- EnterAction
- EnvironmentVariableCollection
- EnvironmentVariableMutator
- EnvironmentVariableMutatorOptions
- EnvironmentVariableMutatorType
- EnvironmentVariableScope
- EvaluatableExpression
- EvaluatableExpressionProvider
- Event
- EventEmitter
- Extension
- ExtensionContext
- ExtensionKind
- ExtensionMode
- ExtensionTerminalOptions
- FileChangeEvent
- FileChangeType
- FileCoverage
- FileCoverageDetail
- FileCreateEvent
- FileDecoration
- FileDecorationProvider
- FileDeleteEvent
- FilePermission
- FileRenameEvent
- FileStat
- FileSystem
- FileSystemError
- FileSystemProvider
- FileSystemWatcher
- FileType
- FileWillCreateEvent
- FileWillDeleteEvent
- FileWillRenameEvent
- FoldingContext
- FoldingRange
- FoldingRangeKind
- FoldingRangeProvider
- FormattingOptions
- FunctionBreakpoint
- GlobalEnvironmentVariableCollection
- GlobPattern
- Hover
- HoverProvider
- IconPath
- ImplementationProvider
- IndentAction
- IndentationRule
- InlayHint
- InlayHintKind
- InlayHintLabelPart
- InlayHintsProvider
- InlineCompletionContext
- InlineCompletionItem
- InlineCompletionItemProvider
- InlineCompletionList
- InlineCompletionTriggerKind
- InlineValue
- InlineValueContext
- InlineValueEvaluatableExpression
- InlineValuesProvider
- InlineValueText
- InlineValueVariableLookup
- InputBox
- InputBoxOptions
- InputBoxValidationMessage
- InputBoxValidationSeverity
- LanguageConfiguration
- LanguageModelAccessInformation
- LanguageModelChat
- LanguageModelChatMessage
- LanguageModelChatMessageRole
- LanguageModelChatRequestOptions
- LanguageModelChatResponse
- LanguageModelChatSelector
- LanguageModelChatTool
- LanguageModelChatToolMode
- LanguageModelError
- LanguageModelPromptTsxPart
- LanguageModelTextPart
- LanguageModelTool
- LanguageModelToolCallPart
- LanguageModelToolConfirmationMessages
- LanguageModelToolInformation
- LanguageModelToolInvocationOptions
- LanguageModelToolInvocationPrepareOptions
- LanguageModelToolResult
- LanguageModelToolResultPart
- LanguageModelToolTokenizationOptions
- LanguageStatusItem
- LanguageStatusSeverity
- LinkedEditingRangeProvider
- LinkedEditingRanges
- Location
- LocationLink
- LogLevel
- LogOutputChannel
- MarkdownString
- MarkedString
- Memento
- MessageItem
- MessageOptions
- NotebookCell
- NotebookCellData
- NotebookCellExecution
- NotebookCellExecutionSummary
- NotebookCellKind
- NotebookCellOutput
- NotebookCellOutputItem
- NotebookCellStatusBarAlignment
- NotebookCellStatusBarItem
- NotebookCellStatusBarItemProvider
- NotebookController
- NotebookControllerAffinity
- NotebookData
- NotebookDocument
- NotebookDocumentCellChange
- NotebookDocumentChangeEvent
- NotebookDocumentContentChange
- NotebookDocumentContentOptions
- NotebookDocumentShowOptions
- NotebookDocumentWillSaveEvent
- NotebookEdit
- NotebookEditor
- NotebookEditorRevealType
- NotebookEditorSelectionChangeEvent
- NotebookEditorVisibleRangesChangeEvent
- NotebookRange
- NotebookRendererMessaging
- NotebookSerializer
- OnEnterRule
- OnTypeFormattingEditProvider
- OpenDialogOptions
- OutputChannel
- OverviewRulerLane
- ParameterInformation
- Position
- PreparedToolInvocation
- ProcessExecution
- ProcessExecutionOptions
- Progress
- ProgressLocation
- ProgressOptions
- ProviderResult
- Pseudoterminal
- QuickDiffProvider
- QuickInput
- QuickInputButton
- QuickInputButtons
- QuickPick
- QuickPickItem
- QuickPickItemButtonEvent
- QuickPickItemKind
- QuickPickOptions
- Range
- ReferenceContext
- ReferenceProvider
- RelativePattern
- RenameProvider
- RunOptions
- SaveDialogOptions
- SecretStorage
- SecretStorageChangeEvent
- SelectedCompletionInfo
- Selection
- SelectionRange
- SelectionRangeProvider
- SemanticTokens
- SemanticTokensBuilder
- SemanticTokensEdit
- SemanticTokensEdits
- SemanticTokensLegend
- ShellExecution
- ShellExecutionOptions
- ShellQuotedString
- ShellQuoting
- ShellQuotingOptions
- SignatureHelp
- SignatureHelpContext
- SignatureHelpProvider
- SignatureHelpProviderMetadata
- SignatureHelpTriggerKind
- SignatureInformation
- SnippetString
- SnippetTextEdit
- SourceBreakpoint
- SourceControl
- SourceControlInputBox
- SourceControlResourceDecorations
- SourceControlResourceGroup
- SourceControlResourceState
- SourceControlResourceThemableDecorations
- StatementCoverage
- StatusBarAlignment
- StatusBarItem
- SymbolInformation
- SymbolKind
- SymbolTag
- SyntaxTokenType
- Tab
- TabChangeEvent
- TabGroup
- TabGroupChangeEvent
- TabGroups
- TabInputCustom
- TabInputNotebook
- TabInputNotebookDiff
- TabInputTerminal
- TabInputText
- TabInputTextDiff
- TabInputWebview
- Task
- TaskDefinition
- TaskEndEvent
- TaskExecution
- TaskFilter
- TaskGroup
- TaskPanelKind
- TaskPresentationOptions
- TaskProcessEndEvent
- TaskProcessStartEvent
- TaskProvider
- TaskRevealKind
- TaskScope
- TaskStartEvent
- TelemetryLogger
- TelemetryLoggerOptions
- TelemetrySender
- TelemetryTrustedValue
- Terminal
- TerminalDimensions
- TerminalEditorLocationOptions
- TerminalExitReason
- TerminalExitStatus
- TerminalLink
- TerminalLinkContext
- TerminalLinkProvider
- TerminalLocation
- TerminalOptions
- TerminalProfile
- TerminalProfileProvider
- TerminalShellExecution
- TerminalShellExecutionCommandLine
- TerminalShellExecutionCommandLineConfidence
- TerminalShellExecutionEndEvent
- TerminalShellExecutionStartEvent
- TerminalShellIntegration
- TerminalShellIntegrationChangeEvent
- TerminalSplitLocationOptions
- TerminalState
- TestController
- TestCoverageCount
- TestItem
- TestItemCollection
- TestMessage
- TestMessageStackFrame
- TestRun
- TestRunProfile
- TestRunProfileKind
- TestRunRequest
- TestTag
- TextDocument
- TextDocumentChangeEvent
- TextDocumentChangeReason
- TextDocumentContentChangeEvent
- TextDocumentContentProvider
- TextDocumentSaveReason
- TextDocumentShowOptions
- TextDocumentWillSaveEvent
- TextEdit
- TextEditor
- TextEditorCursorStyle
- TextEditorDecorationType
- TextEditorEdit
- TextEditorLineNumbersStyle
- TextEditorOptions
- TextEditorOptionsChangeEvent
- TextEditorRevealType
- TextEditorSelectionChangeEvent
- TextEditorSelectionChangeKind
- TextEditorViewColumnChangeEvent
- TextEditorVisibleRangesChangeEvent
- TextLine
- ThemableDecorationAttachmentRenderOptions
- ThemableDecorationInstanceRenderOptions
- ThemableDecorationRenderOptions
- ThemeColor
- ThemeIcon
- TreeCheckboxChangeEvent
- TreeDataProvider
- TreeDragAndDropController
- TreeItem
- TreeItemCheckboxState
- TreeItemCollapsibleState
- TreeItemLabel
- TreeView
- TreeViewExpansionEvent
- TreeViewOptions
- TreeViewSelectionChangeEvent
- TreeViewVisibilityChangeEvent
- TypeDefinitionProvider
- TypeHierarchyItem
- TypeHierarchyProvider
- UIKind
- Uri
- UriHandler
- version
- ViewBadge
- ViewColumn
- Webview
- WebviewOptions
- WebviewPanel
- WebviewPanelOnDidChangeViewStateEvent
- WebviewPanelOptions
- WebviewPanelSerializer
- WebviewPortMapping
- WebviewView
- WebviewViewProvider
- WebviewViewResolveContext
- WindowState
- WorkspaceConfiguration
- WorkspaceEdit
- WorkspaceEditEntryMetadata
- WorkspaceEditMetadata
- WorkspaceFolder
- WorkspaceFolderPickOptions
- WorkspaceFoldersChangeEvent
- WorkspaceSymbolProvider
vscode.debug
- activeDebugConsole
- activeDebugSession
- activeStackItem
- addBreakpoints()
- asDebugSourceUri()
- breakpoints
- onDidChangeActiveDebugSession
- onDidChangeActiveStackItem
- onDidChangeBreakpoints
- onDidReceiveDebugSessionCustomEvent
- onDidStartDebugSession
- onDidTerminateDebugSession
- registerDebugAdapterDescriptorFactory()
- registerDebugAdapterTrackerFactory()
- registerDebugConfigurationProvider()
- removeBreakpoints()
- startDebugging()
- stopDebugging()
vscode.languages
- createDiagnosticCollection()
- createLanguageStatusItem()
- getDiagnostics()
- getLanguages()
- match()
- onDidChangeDiagnostics
- registerCallHierarchyProvider()
- registerCodeActionsProvider()
- registerCodeLensProvider()
- registerColorProvider()
- registerCompletionItemProvider()
- registerDeclarationProvider()
- registerDefinitionProvider()
- registerDocumentDropEditProvider()
- registerDocumentFormattingEditProvider()
- registerDocumentHighlightProvider()
- registerDocumentLinkProvider()
- registerDocumentPasteEditProvider()
- registerDocumentRangeFormattingEditProvider()
- registerDocumentRangeSemanticTokensProvider()
- registerDocumentSemanticTokensProvider()
- registerDocumentSymbolProvider()
- registerEvaluatableExpressionProvider()
- registerFoldingRangeProvider()
- registerHoverProvider()
- registerImplementationProvider()
- registerInlayHintsProvider()
- registerInlineCompletionItemProvider()
- registerInlineValuesProvider()
- registerLinkedEditingRangeProvider()
- registerOnTypeFormattingEditProvider()
- registerReferenceProvider()
- registerRenameProvider()
- registerSelectionRangeProvider()
- registerSignatureHelpProvider()
- registerTypeDefinitionProvider()
- registerTypeHierarchyProvider()
- registerWorkspaceSymbolProvider()
- setLanguageConfiguration()
- setTextDocumentLanguage()
vscode.window
- activeColorTheme
- activeNotebookEditor
- activeTerminal
- activeTextEditor
- createInputBox()
- createOutputChannel()
- createQuickPick()
- createStatusBarItem()
- createTerminal()
- createTextEditorDecorationType()
- createTreeView()
- createWebviewPanel()
- onDidChangeActiveColorTheme
- onDidChangeActiveNotebookEditor
- onDidChangeActiveTerminal
- onDidChangeActiveTextEditor
- onDidChangeNotebookEditorSelection
- onDidChangeNotebookEditorVisibleRanges
- onDidChangeTerminalShellIntegration
- onDidChangeTerminalState
- onDidChangeTextEditorOptions
- onDidChangeTextEditorSelection
- onDidChangeTextEditorViewColumn
- onDidChangeTextEditorVisibleRanges
- onDidChangeVisibleNotebookEditors
- onDidChangeVisibleTextEditors
- onDidChangeWindowState
- onDidCloseTerminal
- onDidEndTerminalShellExecution
- onDidOpenTerminal
- onDidStartTerminalShellExecution
- registerCustomEditorProvider()
- registerFileDecorationProvider()
- registerTerminalLinkProvider()
- registerTerminalProfileProvider()
- registerTreeDataProvider()
- registerUriHandler()
- registerWebviewPanelSerializer()
- registerWebviewViewProvider()
- setStatusBarMessage()
- showErrorMessage()
- showInformationMessage()
- showInputBox()
- showNotebookDocument()
- showOpenDialog()
- showQuickPick()
- showSaveDialog()
- showTextDocument()
- showWarningMessage()
- showWorkspaceFolderPick()
- state
- tabGroups
- terminals
- visibleNotebookEditors
- visibleTextEditors
- withProgress()
- withScmProgress()
vscode.workspace
- applyEdit()
- asRelativePath()
- createFileSystemWatcher()
- findFiles()
- fs
- getConfiguration()
- getWorkspaceFolder()
- isTrusted
- name
- notebookDocuments
- onDidChangeConfiguration
- onDidChangeNotebookDocument
- onDidChangeTextDocument
- onDidChangeWorkspaceFolders
- onDidCloseNotebookDocument
- onDidCloseTextDocument
- onDidCreateFiles
- onDidDeleteFiles
- onDidGrantWorkspaceTrust
- onDidOpenNotebookDocument
- onDidOpenTextDocument
- onDidRenameFiles
- onDidSaveNotebookDocument
- onDidSaveTextDocument
- onWillCreateFiles
- onWillDeleteFiles
- onWillRenameFiles
- onWillSaveNotebookDocument
- onWillSaveTextDocument
- openNotebookDocument()
- openTextDocument()
- registerFileSystemProvider()
- registerNotebookSerializer()
- registerTaskProvider()
- registerTextDocumentContentProvider()
- rootPath
- save()
- saveAll()
- saveAs()
- textDocuments
- updateWorkspaceFolders()
- workspaceFile
- workspaceFolders
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 {}
Contains coverage information for a branch of a StatementCoverage.
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 .
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 thesource
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 thisCodeActionKind
.The kind
"refactor.extract"
for example contains"refactor.extract"
and ``"refactor.extract.function"`, but not"unicorn.refactor.extract"
, or"refactor.extractAll"
orrefactor
.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 intersectsrefactor
,"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
andCompletionItem.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
orimage/png
. Mimes type look ups are case-insensitive.Special mime types: -
text/uri-list
— A string withtoString()
ed Uris separated by\r\n
. To specify a cursor position in the file, set the Uri's fragment toL3,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 theDataTransferItem
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.
class DebugThread
class DebugThread {}
Represents a thread in a debug session.
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 thisDocumentDropOrPasteEditKind
.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 intersectstext
,"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
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[];
A list of that generated coverage in this file. If set, then TestRunProfile.loadDetailedCoverageForTest should also be defined in order to retrieve detailed coverage information.
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 {}
An inline completion item represents a text snippet that is proposed inline to complete text that is being typed.
See Also
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 thecause
-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 thecause
-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 {}
A language model response part containing a piece of text, returned from a LanguageModelChatResponse.
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 {}
A language model response part indicating a tool call, returned from a LanguageModelChatResponse, and also can be included as a content part on a LanguageModelChatMessage, to represent a previous tool call in a chat request.
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 aToolResult
.
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 totrue
.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 thevalue
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 theapplication/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 theapplication/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 theapplication/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 toend
, 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
ifstart
andend
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 {}
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 toend
, 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
ifstart
andend
are equal.
property isSingleLine
isSingleLine: boolean;
true
ifstart.line
andend.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 orundefined
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 folderconst pattern1 = new vscode.RelativePattern(folder, '*.ts');// Match any TypeScript file in `someFolder` inside this workspace folderconst 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;
A base file path to which this pattern will be matched against relatively.
This matches the
fsPath
value of RelativePattern.baseUri.*Note:* updating this value will update RelativePattern.baseUri to be a uri with
file
scheme.Deprecated
This property is deprecated, please use RelativePattern.baseUri instead.
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 onindex.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
for an explanation of the format.
SemanticTokensBuilder for a helper to create an instance.
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
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;
The length of the link on TerminalLinkContext.line.
property startIndex
startIndex: number;
The start index of the link on TerminalLinkContext.line.
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);
Parameter covered
Value for TestCoverageCount.covered
Parameter total
Value for TestCoverageCount.total
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 followingmenus
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 {}
A stack frame found in the TestMessage.stackTrace.
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;
Whether the profile should run continuously as source code changes. Only relevant for profiles that set TestRunProfile.supportsContinuousRun.
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 instancequickPick.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);
Parameter label
A human-readable string describing this item
Parameter collapsibleState
TreeItemCollapsibleState of the tree item. Default is TreeItemCollapsibleState.None
constructor
constructor(resourceUri: Uri, collapsibleState?: TreeItemCollapsibleState);
Parameter resourceUri
The Uri of the resource representing this item.
Parameter collapsibleState
TreeItemCollapsibleState of the tree item. Default is TreeItemCollapsibleState.None
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 therole
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;
TreeItemCollapsibleState of the tree item.
property command
command?: Command;
The Command that should be executed when the tree item is selected.
Please use
vscode.open
orvscode.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 toview/item/context
usingmenus
extension point, you can specify context value for keyviewItem
inwhen
expression likeviewItem == folder
."contributes": {"menus": {"view/item/context": [{"command": "extension.deleteFolder","when": "viewItem == folder"}]}}This will show action
extension.deleteFolder
only for items withcontextValue
isfolder
.
property description
description?: string | boolean;
A human-readable string which is rendered less prominent. When
true
, it is derived from and whenfalsy
, it is not shown.
property iconPath
iconPath?: string | IconPath;
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;
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 ofhttp://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 ofhttp://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 ofhttp://www.example.com/some/path?query#fragment
.
property query
readonly query: string;
Query is the
query
part ofhttp://www.example.com/some/path?query#fragment
.
property scheme
readonly scheme: string;
Scheme is the
http
part ofhttp://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 asUri.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 brokenbad.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 - forfile
-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
, orscheme: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 optionalstrict
-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 noscheme
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 theskipEncoding
-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
andignoreIfExists
are both setoverwrite
wins. When both are unset and when the file already exists then the edit cannot be applied successfully. Thecontent
-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 {}
Options to be used when getting an AuthenticationSession from an AuthenticationProvider.
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 {}
Optional options to be used when calling authentication.getSession with interactive options
forceNewSession
&createIfNone
.
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 {}
An Event which fires when an AuthenticationSession is added, removed, or changed.
property added
readonly added: readonly AuthenticationSession[] | undefined;
The of the AuthenticationProvider that have been added.
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;
The of the AuthenticationProvider that have been removed.
interface AuthenticationProviderInformation
interface AuthenticationProviderInformation {}
Basic information about an AuthenticationProvider
interface AuthenticationProviderOptions
interface AuthenticationProviderOptions {}
Options for creating an AuthenticationProvider.
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 {}
The options passed in to the AuthenticationProvider.getSessions and AuthenticationProvider.createSession call.
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 {}
The information of an account associated with an AuthenticationSession.
interface AuthenticationSessionsChangeEvent
interface AuthenticationSessionsChangeEvent {}
An Event which fires when an AuthenticationSession is added, removed, or changed.
property provider
readonly provider: AuthenticationProviderInformation;
The AuthenticationProvider that has had its sessions change.
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 .
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
ornull
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
ornull
.
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
ornull
.
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.
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.
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, suchOrganize Imports
. - are shown in the problems view. - Change applied on save by theeditor.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 returnCodeAction
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 givenitem
will be used.
interface CodeActionProviderMetadata
interface CodeActionProviderMetadata {}
Metadata about the type of code actions that a CodeActionProvider provides.
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 bothRefactor
andRefactorExtract
, when the user requests code actions forRefactorExtract
, the editor will use the documentation forRefactorExtract
instead of the documentation forRefactor
.- 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, everyCodeActionProvider
should list useprovidedCodeActionKinds
. 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;
The identifier of the actual command handler.
See Also
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 tocomments/comment/title
usingmenus
extension point, you can specify context value for keycomment
inwhen
expression likecomment == editable
."contributes": {"menus": {"comments/comment/title": [{"command": "extension.deleteComment","when": "comment == editable"}]}}This will show action
extension.deleteComment
only for comments withcontextValue
iseditable
.
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[];
Optional reactions of the Comment
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 {}
Author information of a 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 {}
Reactions of a Comment
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
.
interface CommentRule
interface CommentRule {}
Describes how comments for a language work.
property blockComment
blockComment?: CharacterPair;
The block comment character pair, like
/* block comment */
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 tocomments/commentThread/title
usingmenus
extension point, you can specify context value for keycommentThread
inwhen
expression likecommentThread == editable
."contributes": {"menus": {"comments/commentThread/title": [{"command": "extension.deleteCommentThread","when": "commentThread == editable"}]}}This will show action
extension.deleteCommentThread
only for comment threads withcontextValue
iseditable
.
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
, andrange
, 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 givenitem
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 aCustomDocument
is managed by the editor. When no more references remain to aCustomDocument
, it is disposed of.
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 insideExtensionContext.storagePath
. The parent folder ofdestination
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 byonDidChangeCustomDocument
.
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 byonDidChangeCustomDocument
.
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 eithersave
orrevert
the file.An editor should only ever fire
CustomDocumentEditEvent
events, or only ever fireCustomDocumentContentChangeEvent
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 theExtensionContext.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 whenauto 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'sFile: Revert File
command and not on agit revert
of the file).To implement
revert
, the implementer must make sure all editor instances (webviews) fordocument
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. Aftersave
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 toresolveCustomEditor
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, theCustomDocument
is disposed of. Opening an editor at this point will trigger another call toopenCustomDocument
.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 thisCustomTextEditorProvider
.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.
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 .
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
ornull
.
interface DecorationInstanceRenderOptions
interface DecorationInstanceRenderOptions extends ThemableDecorationInstanceRenderOptions {}
Represents render options for decoration instances. See DecorationOptions.renderOptions.
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
ornull
.
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 isundefined
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]]]
, orundefined
.
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. Requireseditor.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
ornull
.
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 givenedit
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 asimage/*
.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 howscheme
andpattern
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
oruntitled
.
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.
method provideDocumentLinks
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)
andfile
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.
method resolveDocumentLink
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 givenpasteEdit
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 asimage/*
.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 index5*i
-deltaLine
: token line number, relative to the previous token - at index5*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 index5*i+2
-length
: the length of the token. A token cannot be multiline. - at index5*i+3
-tokenType
: will be looked up inSemanticTokensLegend.tokenTypes
. We currently ask thattokenType
< 65536. - at index5*i+4
-tokenModifiers
: each set bit will be looked up inSemanticTokensLegend.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
andtokenModifiers
as integers using the legend. Token types are looked up by index, so atokenType
value of1
meanstokenTypes[1]
. Multiple token modifiers can be set by using bit flags, so atokenModifier
value of3
is first viewed as binary0b00000011
, 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 thestartChar
of the first token, so it will be10 - 5
. The third token is on a different line than the second token, so thestartChar
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 tokensedit: { 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 inSemanticTokensEdits
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.
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
ornull
.
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 theremote.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 theactivate
-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;
An object that keeps information about how this extension can use language models.
See Also
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;
The icon path or ThemeIcon for the terminal.
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;
The TerminalLocation or TerminalEditorLocationOptions or TerminalSplitLocationOptions for the terminal.
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.
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
orgit
.Returns
true
if the file system supports writing,false
if it does not support writing (i.e. it is readonly), andundefined
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 offoo:/my/
and a parent offoo:/my/path/deeper
. * *Note 2:* There is an activation eventonFileSystem:<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 correctsize
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 theoverwrite
option is nottrue
.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 theoverwrite
option is nottrue
.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 optionrecursive
indicates whether subfolders, sub-subfolders, etc. should be watched for file changes as well. Withrecursive: 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 thefiles.watcherExclude
setting that is configurable by the user. Each entry can be be: - the absolute path to exclude - a relative path to exclude (for examplebuild/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 andcreate
is not set.Throws
when the parent of
uri
doesn't exist andcreate
is set, e.g. no mkdirp-logic required.Throws
when
uri
already exists,create
is set butoverwrite
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 errorsetTimeout(() => event.waitUntil(promise));// sync, OKevent.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 errorsetTimeout(() => event.waitUntil(promise));// sync, OKevent.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 errorsetTimeout(() => event.waitUntil(promise));// sync, OKevent.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
ornull
.
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
ornull
.
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 givenitem
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
ornull
.
interface InputBox
interface InputBox extends QuickInput {}
A concrete QuickInput to let the user input a text value.
Note that in many cases the more convenient window.showInputBox is easier to use. window.createInputBox should be used when window.showInputBox does not offer the required flexibility.
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
andWarning
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 {}
Represents a language model for making chat requests.
See Also
property family
readonly family: string;
Opaque family-name of the language model. Values might be
gpt-3.5-turbo
,gpt4
,phi2
, orllama
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 {}
Options for making a chat request using a language model.
See Also
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;
The tool-selecting mode to use. LanguageModelChatToolMode.Auto by default.
property tools
tools?: LanguageModelChatTool[];
An optional list of tools that are available to the language model. These could be registered tools available via lm.tools, or private tools that are just implemented within the calling extension.
If the LLM requests to call one of these tools, it will return a LanguageModelToolCallPart in LanguageModelChatResponse.stream. It's the caller's responsibility to invoke the tool. If it's a tool registered in lm.tools, that means calling lm.invokeTool.
Then, the tool result can be provided to the LLM by creating an Assistant-type LanguageModelChatMessage with a LanguageModelToolCallPart, followed by a User-type message with a LanguageModelToolResultPart.
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 streamfor 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 errorconsole.error(e);}
property text
text: AsyncIterable<string>;
This is equivalent to filtering everything except for text parts from a LanguageModelChatResponse.stream.
See Also
interface LanguageModelChatSelector
interface LanguageModelChatSelector {}
Describes how to select language models for chat requests.
See Also
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> {}
A tool that can be invoked by a call to a LanguageModelChat.
method invoke
invoke: ( options: LanguageModelToolInvocationOptions<T>, token: CancellationToken) => ProviderResult<LanguageModelToolResult>;
Invoke the tool with the given input and return a result.
The provided LanguageModelToolInvocationOptions.input has been validated against the declared schema.
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 toinvoke
.
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".
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;
The input with which to invoke the tool. The input must match the schema defined in LanguageModelToolInformation.inputSchema
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> {}
Options for LanguageModelTool.prepareInvocation.
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
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
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
orControl+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 TypeScriptmyController.supportedLanguages = ['javascript', 'typescript']// support all languagesmyController.supportedLanguages = undefined; // falsymyController.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 thescheme
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 {}
Describes a change to a notebook cell.
See Also
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 {}
Describes a structural change to a notebook document, e.g newly added and removed cells.
See Also
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 errorsetTimeout(() => event.waitUntil(promise));// sync, OKevent.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 {}
Renderer messaging is used to communicate with a single renderer. It's returned from notebooks.createRendererMessaging.
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
andcanSelectFolders
totrue
on these platforms, a folder selector will be shown. * Note 2: Explicitly settingcanSelectFiles
andcanSelectFolders
tofalse
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 {}
The result of a call to LanguageModelTool.prepareInvocation.
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.
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;
Hides this input UI. This will also fire an QuickInput.onDidHide event.
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 {}
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;
Always show this item.
Note: this property is ignored when is set to QuickPickItemKind.Separator
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
Note: this property is ignored when is set to QuickPickItemKind.Separator
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.
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
ornull
.
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
ornull
.
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.
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
ornull
.
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
andcmd
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.
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 incharsToEscape
are escaped using theescapeChar
.
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
ornull
.
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 toscm/resourceGroup/context
usingmenus
extension point, you can specify context value for keyscmResourceGroupState
inwhen
expressions, likescmResourceGroupState == exportable
."contributes": {"menus": {"scm/resourceGroup/context": [{"command": "extension.export","when": "scmResourceGroupState == exportable"}]}}This will show action
extension.export
only for resource groups withcontextValue
equal toexportable
.
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 toscm/resourceState/context
usingmenus
extension point, you can specify context value for keyscmResourceState
inwhen
expressions, likescmResourceState == diffable
."contributes": {"menus": {"scm/resourceState/context": [{"command": "extension.diff","when": "scmResourceState == diffable"}]}}This will show action
extension.diff
only for resources withcontextValue
isdiffable
.
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.
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.
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. Iffalse
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.
interface TaskFilter
interface TaskFilter {}
A task filter denotes tasks by their version and types
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
interface TaskProcessStartEvent
interface TaskProcessStartEvent {}
An event signaling the start of a process execution triggered through a task
interface TaskProvider
interface TaskProvider<T extends Task = Task> {}
A task provider allows to add tasks to the task service. A task provider is registered via tasks.registerTaskProvider.
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 theresolveTask
-method. This method will not be called for tasks returned from the aboveprovideTasks
method since those tasks are always fully resolved. A valid default implementation for theresolveTask
method is to returnundefined
.Note that when filling in the properties of
task
, you _must_ be sure to use the exact sameTaskDefinition
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 fromlogUsage
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 {}
Options for creating a TelemetryLogger
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 loggerlogger.logUsage('myEvent', { myData: 'myValue' });// BAD - uses the sender directly: no data cleansing, ignores user settings, no echoing to the telemetry output channel etcsender.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;
The current state of the Terminal.
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 totrue
.
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.
interface TerminalEditorLocationOptions
interface TerminalEditorLocationOptions {}
Assumes a TerminalLocation of editor and allows specifying a ViewColumn and property
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.
interface TerminalLinkProvider
interface TerminalLinkProvider<T extends TerminalLink = TerminalLink> {}
A provider that enables detection and handling of links within terminals.
method handleTerminalLink
handleTerminalLink: (link: T) => ProviderResult<void>;
Handle an activated terminal link.
Parameter link
The link to handle.
method provideTerminalLinks
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;
The icon path or ThemeIcon for the terminal.
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;
The TerminalLocation or TerminalEditorLocationOptions or TerminalSplitLocationOptions for the terminal.
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 liketerminal.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 callread
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 {}
Represents the state of a Terminal.
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, runningbash
insidezsh
).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;
The id of the controller passed in tests.createTestController. This must be globally unique.
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 itsexclude
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 theTestItem
, 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]> {}
Collection of test items, found in TestItem.children and TestController.items.
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 thetoken
.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 thescheme
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 returnfalse
.
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 errorsetTimeout(() => event.waitUntil(promise));// sync, OKevent.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 .
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
invalue
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
invalue
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;
Whether this line is whitespace only, shorthand for TextLine.firstNonWhitespaceCharacterIndex === .
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
ornull
.
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
. Returnnull
orundefined
ifelement
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>;
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 thenitem
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 givenitem
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 consoleNote 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 usehandleDrag
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 forDataTransferItem
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 toL3,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 otherwisefalse
.
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
tofalse
. In order to focus, set the optionfocus
totrue
. In order to expand the revealed element, set the optionexpand
totrue
. To expand recursively setexpand
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> {}
Options for creating a TreeView
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 otherwisefalse
.
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
ornull
.
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
ornull
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
ornull
.
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
ornull
.
interface UriHandler
interface UriHandler {}
A uri handler is responsible for handling system-wide .
See Also
interface ViewBadge
interface ViewBadge {}
A badge presenting a value for a view
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 oncevscode.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. TheasWebviewUri
function takes a localfile:
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 inmessage
, it will not be serialized properly and will not be received by the webview. Similarly any TypedArrays, such as aUint8Array
, 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 itspackage.json
, anyArrayBuffer
values that appear inmessage
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 setretainContextWhenHidden
).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
andextensionHostPort
ports are the same.*Note* that port mappings only work for
http
orhttps
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 usingretainContextWhenHidden
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 withretainContextWhenHidden
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, callgetState()
// Within the webviewconst vscode = acquireVsCodeApi();// Get existing stateconst oldState = vscode.getState() || { value: 0 };// Update statesetState({ 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 fromsetState
of all webviews that have a serializer. When the webview first becomes visible after the restart, this state is passed todeserializeWebviewPanel
. The extension can then restore the oldWebviewPanel
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 theWebviewOptions
. 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, callgetState()
. For example:// Within the webviewconst vscode = acquireVsCodeApi();// Get existing stateconst oldState = vscode.getState() || { value: 0 };// Update statesetState({ 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.
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 inpackage.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
andtasks
settings. Their basename will be part of the section identifier. The following snippets shows how to retrieve all configurations fromlaunch.json
:// launch.json configurationconst config = workspace.getConfiguration('launch', vscode.workspace.workspaceFolders[0].uri);// retrieve valuesconst 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 orundefined
.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 toundefined
.
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
vseditor
) 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 . - Iffalse
updates . - Ifundefined
ornull
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. - Ifundefined
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;
The icon path or ThemeIcon for the edit.
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 .
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 arange
defined. The editor will then callresolveWorkspaceSymbol
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.
enum CodeActionTriggerKind
enum CodeActionTriggerKind { Invoke = 1, Automatic = 2,}
The reason why code actions were requested.
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,}
Comment mode of a Comment
enum CommentThreadCollapsibleState
enum CommentThreadCollapsibleState { Collapsed = 0, Expanded = 1,}
Collapsible state of a
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 aDebugConfigurationProvider
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 aDebugConfigurationProvider
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.
enum DocumentPasteTriggerKind
enum DocumentPasteTriggerKind { Automatic = 0, PasteAs = 1,}
The reason why paste edits were requested.
enum EndOfLine
enum EndOfLine { LF = 1, CRLF = 2,}
Represents an end of line character sequence in a .
enum EnvironmentVariableMutatorType
enum EnvironmentVariableMutatorType { Replace = 1, Append = 2, Prepend = 3,}
A type of mutation that can be applied to an environment variable.
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.
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.
enum FilePermission
enum FilePermission { Readonly = 1,}
Permissions of a file.
member Readonly
Readonly = 1
The file is readonly.
*Note:* All
FileStat
from aFileSystemProvider
that is registered with the optionisReadonly: true
will be implicitly handled as ifFilePermission.Readonly
is set. As a consequence, it is not possible to have a readonly file system provider registered where someFileStat
are not readonly.
enum FileType
enum FileType { Unknown = 0, File = 1, Directory = 2, SymbolicLink = 64,}
Enumeration of file types. The types
File
andDirectory
can also be a symbolic links, in that case useFileType.File | FileType.SymbolicLink
andFileType.Directory | FileType.SymbolicLink
.
member Directory
Directory = 2
A directory.
member File
File = 1
A regular file.
member SymbolicLink
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
orFold 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.
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.
enum InlineCompletionTriggerKind
enum InlineCompletionTriggerKind { Invoke = 0, Automatic = 1,}
Describes how an was triggered.
enum InputBoxValidationSeverity
enum InputBoxValidationSeverity { Info = 1, Warning = 2, Error = 3,}
The severity level for input box validation.
enum LanguageModelChatMessageRole
enum LanguageModelChatMessageRole { User = 1, Assistant = 2,}
Represents the role of a chat message. This is either the user or the assistant.
enum LanguageModelChatToolMode
enum LanguageModelChatToolMode { Auto = 1, Required = 2,}
A tool-calling mode for the language model to use.
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.
enum NotebookCellStatusBarAlignment
enum NotebookCellStatusBarAlignment { Left = 1, Right = 2,}
Represents the alignment of status bar items.
enum NotebookControllerAffinity
enum NotebookControllerAffinity { Default = 1, Preferred = 2,}
Notebook controller affinity for notebook documents.
See Also
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.
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
The default QuickPickItem.kind is an item that can be selected in the quick pick.
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.
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.
enum TaskPanelKind
enum TaskPanelKind { Shared = 1, Dedicated = 2, New = 3,}
Controls how the task channel is used between tasks
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.
enum TerminalExitReason
enum TerminalExitReason { Unknown = 0, Shutdown = 1, Process = 2, User = 3, Extension = 4,}
Terminal exit reason kind.
enum TerminalLocation
enum TerminalLocation { Panel = 1, Editor = 2,}
The location of the terminal.
enum TerminalShellExecutionCommandLineConfidence
enum TerminalShellExecutionCommandLineConfidence { Low = 0, Medium = 1, High = 2,}
The confidence of a TerminalShellExecutionCommandLine value.
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.
enum TextDocumentChangeReason
enum TextDocumentChangeReason { Undo = 1, Redo = 2,}
Reasons for why a text document has changed.
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.
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 .
enum TreeItemCheckboxState
enum TreeItemCheckboxState { Unchecked = 0, Checked = 1,}
Checkbox state of the tree item
enum TreeItemCollapsibleState
enum TreeItemCollapsibleState { None = 0, Collapsed = 1, Expanded = 2,}
Collapsible state of the tree item
enum UIKind
enum UIKind { Desktop = 1, Web = 2,}
Possible kinds of UI that can use extensions.
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
,... orundefined
but neverActive
.
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
,... orundefined
but neverBeside
.
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;
Optional options to be used when calling authentication.getSession with the flag
forceNewSession
.Deprecated
Use AuthenticationGetSessionPresentationOptions instead.
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
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;
Coverage details returned from TestRunProfile.loadDetailedCoverage.
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 onexample.0
,example.1
, …) *[!...]
to negate a range of characters to match in a path segment (e.g.,example.[!0-9]
to match onexample.a
,example.b
, but notexample.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
, likeHover
, or a thenable that resolves to that typeT
. In addition,null
andundefined
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 inpackage.json
to make a command show in the [command palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette). * keybinding - Use thekeybindings
-section inpackage.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
, andnull
, 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 isundefined
.
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>;
An event which fires when the debug.activeStackItem has changed.
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 valueInitial
(or if no trigger kind argument is given) theprovideDebugConfigurations
method is used to provide the initial debug configurations to be copied into a newly created launch.json. With the trigger kindDynamic
theprovideDebugConfigurations
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 thetriggerKind
argument only applies to theprovideDebugConfigurations
method: so theresolveDebugConfiguration
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 valueDebugConfigurationProviderTriggerKind.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 otherwisefalse
.
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
, oren-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 orfalse
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 orssh-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:
orhttps:
schemeResolves an *external* uri, such as a
http:
orhttps:
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 callasExternalUri
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 byasExternalUri
.#### 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:
fromvscode.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-surfacereturn api;}When depending on the API of another extension add an
extensionDependencies
-entry topackage.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 al10n
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 thelanguage
-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 theDocumentFilter
is empty ({}
) the result is0
2. Whenscheme
,language
,pattern
, ornotebook
are defined but one doesn't match, the result is0
3. Matching against*
gives a score of5
, matching via equality or via a glob-pattern gives a score of10
4. The result is the maximum value of each matchSamples:
// 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); // 5match('fooLang', doc); // 0match(['fooLang', '*'], doc); // 5// virtual document, e.g. from git-indexdoc.uri; // 'git:/my/file.js'doc.languageId; // 'javascript'match('javascript', doc); // 10;match({ language: 'javascript', scheme: 'git' }, doc); // 10;match('*', doc); // 5// notebook cell documentdoc.uri; // `vscode-notebook-cell:///my/notebook.ipynb#gl65s2pmha`;doc.languageId; // 'python'match({ notebookType: 'jupyter-notebook' }, doc) // 10match({ notebookType: 'fooNotebook', language: 'python' }, doc) // 0match({ language: 'python' }, doc) // 10match({ notebookType: '*' }, doc) // 5Parameter selector
A document selector.
Parameter document
A text document.
Returns
A number
>0
when the selector matches and0
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
ornon-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 aDocumentRangeSemanticTokensProvider
, 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 aToolResult
. 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 ifrequiresMessaging
is set toalways
oroptional
in itsnotebookRenderer
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;
Creates a InputBox to let the user enter some text input.
Note that in many cases the more convenient window.showInputBox is easier to use. window.createInputBox should be used when window.showInputBox does not offer the required flexibility.
Returns
A new 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>;
Creates a QuickPick to let the user pick an item from a list of items of type T.
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.
Returns
A new QuickPick.
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
createStatusBarItem for creating a status bar item with an identifier.
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>;
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 thecustomEditors
extension point.When a custom editor is opened, an
onCustomEditor:viewType
activation event is fired. Your extension must register a , , forviewType
as part of activation.Parameter viewType
Unique identifier for the custom editor provider. This should match the
viewType
from thecustomEditors
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;
Register a file decoration provider.
Parameter provider
Returns
A Disposable that unregisters the provider.
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 prefixproduct-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 thatregisterWebviewPanelSerializer
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 theviews
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 aincrement
value will be summed up and reflected as overall progress until 100% is reached (a value of e.g.10
accounts for10%
of work done). Note that currently onlyProgressLocation.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 orvscode.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 asUri
otherwise. if the workspace is untitled, the returned URI will use theuntitled:
schemeThe 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 useworkspace.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 totrue
when there are multiple workspace folders andfalse
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 thepattern
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
asglobPattern
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 changedwatcher.onDidCreate(uri => { ... }); // listen to files/folders being createdwatcher.onDidDelete(uri => { ... }); // listen to files/folders getting deletedwatcher.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. thefiles.exclude
-setting but notsearch.exclude
) will apply. Whennull
, 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 }}}
andgetConfiguration('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 itselfParameter 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 theonNotebook:<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 indexstart
by an optional set ofworkspaceFoldersToAdd
on thevscode.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 oneto 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[](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>
- Updated .
Package analyzed in 28012 ms. - Missing or incorrect documentation? Open an issue for this package.