VS Code API
VS Code API 是一組 JavaScript API,您可以在 Visual Studio Code 擴充套件中呼叫它們。此頁面列出了所有可供擴充套件作者使用的 VS Code API。
API 名稱空間和類
此列表是從 VS Code 倉庫的 vscode.d.ts 檔案編譯而成的。
認證
事件
onDidChangeSessions: Event<AuthenticationSessionsChangeEvent>
當身份驗證提供程式的身份驗證會話被新增、刪除或更改時觸發的 Event。
函式
getAccounts(providerId: string): Thenable<readonly AuthenticationSessionAccountInformation[]>
獲取使用者已登入指定提供程式的所有帳戶。將其與 getSession 配合使用,以獲取特定帳戶的身份驗證會話。
目前,只有兩個由內建擴充套件貢獻到編輯器並實現 GitHub 和 Microsoft 身份驗證的身份驗證提供程式:它們的 providerId 分別是 'github' 和 'microsoft'。
注意:獲取帳戶並不意味著您的擴充套件可以訪問該帳戶或其身份驗證會話。您可以透過呼叫 getSession 來驗證對帳戶的訪問許可權。
引數 | 描述 |
---|---|
providerId: string | 要使用的提供程式的 ID |
返回 | 描述 |
Thenable<readonly AuthenticationSessionAccountInformation[]> | 一個可解析為只讀身份驗證帳戶陣列的 Thenable。 |
getSession(providerId: string, scopes: readonly string[], options: AuthenticationGetSessionOptions & {createIfNone: true | AuthenticationGetSessionPresentationOptions}): Thenable<AuthenticationSession>
獲取與所需範圍匹配的身份驗證會話。如果未註冊具有 providerId 的提供程式,或者使用者不同意與擴充套件共享身份驗證資訊,則拒絕。如果存在多個具有相同範圍的會話,將向用戶顯示一個快速選擇器以選擇他們想要使用的帳戶。
目前,只有兩個由內建擴充套件貢獻到編輯器並實現 GitHub 和 Microsoft 身份驗證的身份驗證提供程式:它們的 providerId 分別是 'github' 和 'microsoft'。
引數 | 描述 |
---|---|
providerId: string | 要使用的提供程式的 ID |
scopes: readonly string[] | 表示請求許可權的範圍列表。這些取決於身份驗證提供程式 |
options: AuthenticationGetSessionOptions & {createIfNone: true | AuthenticationGetSessionPresentationOptions} | |
返回 | 描述 |
Thenable<AuthenticationSession> | 一個可解析為身份驗證會話的 Thenable |
getSession(providerId: string, scopes: readonly string[], options: AuthenticationGetSessionOptions & {forceNewSession: true | AuthenticationGetSessionPresentationOptions}): Thenable<AuthenticationSession>
獲取與所需範圍匹配的身份驗證會話。如果未註冊具有 providerId 的提供程式,或者使用者不同意與擴充套件共享身份驗證資訊,則拒絕。如果存在多個具有相同範圍的會話,將向用戶顯示一個快速選擇器以選擇他們想要使用的帳戶。
目前,只有兩個由內建擴充套件貢獻到編輯器並實現 GitHub 和 Microsoft 身份驗證的身份驗證提供程式:它們的 providerId 分別是 'github' 和 'microsoft'。
引數 | 描述 |
---|---|
providerId: string | 要使用的提供程式的 ID |
scopes: readonly string[] | 表示請求許可權的範圍列表。這些取決於身份驗證提供程式 |
options: AuthenticationGetSessionOptions & {forceNewSession: true | AuthenticationGetSessionPresentationOptions} | |
返回 | 描述 |
Thenable<AuthenticationSession> | 一個可解析為身份驗證會話的 Thenable |
getSession(providerId: string, scopes: readonly string[], options?: AuthenticationGetSessionOptions): Thenable<AuthenticationSession | undefined>
獲取與所需範圍匹配的身份驗證會話。如果未註冊具有 providerId 的提供程式,或者使用者不同意與擴充套件共享身份驗證資訊,則拒絕。如果存在多個具有相同範圍的會話,將向用戶顯示一個快速選擇器以選擇他們想要使用的帳戶。
目前,只有兩個由內建擴充套件貢獻到編輯器並實現 GitHub 和 Microsoft 身份驗證的身份驗證提供程式:它們的 providerId 分別是 'github' 和 'microsoft'。
引數 | 描述 |
---|---|
providerId: string | 要使用的提供程式的 ID |
scopes: readonly string[] | 表示請求許可權的範圍列表。這些取決於身份驗證提供程式 |
options?: AuthenticationGetSessionOptions | |
返回 | 描述 |
Thenable<AuthenticationSession | undefined> | 一個可解析為身份驗證會話(如果可用)的 Thenable,如果沒有任何會話,則為 undefined |
registerAuthenticationProvider(id: string, label: string, provider: AuthenticationProvider, options?: AuthenticationProviderOptions): Disposable
註冊身份驗證提供程式。
每個 ID 只能有一個提供程式,如果 ID 已被另一個提供程式使用,則會丟擲錯誤。ID 區分大小寫。
引數 | 描述 |
---|---|
id: string | 提供程式的唯一識別符號。 |
label: string | 提供程式的人類可讀名稱。 |
provider: AuthenticationProvider | 身份驗證提供程式。 |
options?: AuthenticationProviderOptions | 提供程式的附加選項。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
聊天
用於聊天功能的名稱空間。使用者透過在聊天檢視中向聊天參與者傳送訊息來與他們互動。聊天參與者可以透過 ChatResponseStream 回覆 Markdown 或其他型別的內容。
函式
createChatParticipant(id: string, handler: ChatRequestHandler): ChatParticipant
建立一個新的 聊天參與者 例項。
引數 | 描述 |
---|---|
id: string | 參與者的唯一識別符號。 |
handler: ChatRequestHandler | 參與者的請求處理程式。 |
返回 | 描述 |
ChatParticipant | 一個新的聊天參與者 |
命令
用於處理命令的名稱空間。簡而言之,命令是一個具有唯一識別符號的函式。該函式有時也稱為 命令處理程式。
可以使用 registerCommand 和 registerTextEditorCommand 函式將命令新增到編輯器中。命令可以 手動 執行,也可以透過 UI 手勢執行。這些是
- 面板 - 使用
package.json
中的commands
部分使命令顯示在 命令面板 中。 - 快捷鍵 - 使用
package.json
中的keybindings
部分為您的擴充套件啟用 快捷鍵。
其他擴充套件和編輯器本身的命令可供擴充套件訪問。但是,在呼叫編輯器命令時,並非所有引數型別都受支援。
這是一個示例,它註冊一個命令處理程式並將該命令的條目新增到面板中。首先使用識別符號 extension.sayHello
註冊一個命令處理程式。
commands.registerCommand('extension.sayHello', () => {
window.showInformationMessage('Hello World!');
});
其次,將命令識別符號繫結到它將在面板中顯示的標題 (package.json
)。
{
"contributes": {
"commands": [
{
"command": "extension.sayHello",
"title": "Hello World"
}
]
}
}
函式
executeCommand<T>(command: string, ...rest: any[]): Thenable<T>
執行由給定命令識別符號表示的命令。
引數 | 描述 |
---|---|
command: string | 要執行的命令的識別符號。 |
...rest: any[] | 傳遞給命令函式的引數。 |
返回 | 描述 |
Thenable<T> | 一個可解析為給定命令返回值的 Thenable。當命令處理函式不返回任何內容時,返回 |
getCommands(filterInternal?: boolean): Thenable<string[]>
檢索所有可用命令的列表。以劃線開頭的命令被視為內部命令。
引數 | 描述 |
---|---|
filterInternal?: boolean | 設定為 |
返回 | 描述 |
Thenable<string[]> | 可解析為命令 ID 列表的 Thenable。 |
registerCommand(command: string, callback: (args: any[]) => any, thisArg?: any): Disposable
註冊一個可以透過鍵盤快捷鍵、選單項、操作或直接呼叫的命令。
使用已存在的命令識別符號兩次註冊命令將導致錯誤。
引數 | 描述 |
---|---|
command: string | 命令的唯一識別符號。 |
callback: (args: any[]) => any | 命令處理函式。 |
thisArg?: any | 呼叫處理函式時使用的 |
返回 | 描述 |
Disposable | Disposable,在處置時登出此命令。 |
registerTextEditorCommand(command: string, callback: (textEditor: TextEditor, edit: TextEditorEdit, args: any[]) => void, thisArg?: any): Disposable
註冊一個文字編輯器命令,可以透過鍵盤快捷鍵、選單項、操作或直接呼叫。
文字編輯器命令與普通 命令 不同,它們只在呼叫命令時有活動編輯器時執行。此外,編輯器命令的命令處理程式可以訪問活動編輯器和 編輯 構建器。請注意,編輯構建器僅在回撥執行期間有效。
引數 | 描述 |
---|---|
command: string | 命令的唯一識別符號。 |
callback: (textEditor: TextEditor, edit: TextEditorEdit, args: any[]) => void | |
thisArg?: any | 呼叫處理函式時使用的 |
返回 | 描述 |
Disposable | Disposable,在處置時登出此命令。 |
評論
函式
createCommentController(id: string, label: string): CommentController
建立一個新的 評論控制器 例項。
引數 | 描述 |
---|---|
id: string | 評論控制器的 |
label: string | 評論控制器的人類可讀字串。 |
返回 | 描述 |
CommentController | 評論控制器 的例項。 |
debug
用於除錯功能的名稱空間。
變數
activeDebugConsole: DebugConsole
當前活動的 除錯控制檯。如果沒有活動的除錯會話,傳送到除錯控制檯的輸出將不顯示。
activeDebugSession: DebugSession | undefined
當前活動的 除錯會話 或 undefined
。活動的除錯會話是除錯操作浮動視窗所代表的會話,或者是除錯操作浮動視窗下拉選單中當前顯示的會話。如果沒有活動的除錯會話,則值為 undefined
。
activeStackItem: DebugThread | DebugStackFrame | undefined
當前聚焦的執行緒或堆疊幀,如果沒有聚焦執行緒或堆疊,則為 undefined
。只要有活動的除錯會話,執行緒就可以被聚焦,而堆疊幀只能在會話暫停並檢索到呼叫堆疊時被聚焦。
breakpoints: readonly Breakpoint[]
斷點列表。
事件
onDidChangeActiveDebugSession: Event<DebugSession | undefined>
onDidChangeActiveStackItem: Event<DebugThread | DebugStackFrame | undefined>
當 debug.activeStackItem 更改時觸發的事件。
onDidChangeBreakpoints: Event<BreakpointsChangeEvent>
當斷點集被新增、刪除或更改時發出的 Event。
onDidReceiveDebugSessionCustomEvent: Event<DebugSessionCustomEvent>
onDidStartDebugSession: Event<DebugSession>
onDidTerminateDebugSession: Event<DebugSession>
函式
addBreakpoints(breakpoints: readonly Breakpoint[]): void
新增斷點。
引數 | 描述 |
---|---|
breakpoints: readonly Breakpoint[] | 要新增的斷點。 |
返回 | 描述 |
void |
asDebugSourceUri(source: DebugProtocolSource, session?: DebugSession): Uri
將透過除錯介面卡協議接收的“Source”描述符物件轉換為可用於載入其內容的 Uri。如果源描述符基於路徑,則返回檔案 Uri。如果源描述符使用引用編號,則構造一個需要相應 ContentProvider 和正在執行的除錯會話的特定除錯 Uri(方案 'debug')
如果“Source”描述符沒有足夠的資訊來建立 Uri,則會丟擲錯誤。
引數 | 描述 |
---|---|
source: DebugProtocolSource | 一個符合除錯介面卡協議中定義的 Source 型別的物件。 |
session?: DebugSession | 一個可選的除錯會話,當源描述符使用引用編號從活動除錯會話載入內容時將使用該會話。 |
返回 | 描述 |
Uri | 可用於載入源內容的 Uri。 |
registerDebugAdapterDescriptorFactory(debugType: string, factory: DebugAdapterDescriptorFactory): Disposable
為特定除錯型別註冊 除錯介面卡描述符工廠。擴充套件只允許為其定義的除錯型別註冊 DebugAdapterDescriptorFactory。否則會丟擲錯誤。為一種除錯型別註冊多個 DebugAdapterDescriptorFactory 會導致錯誤。
引數 | 描述 |
---|---|
debugType: string | 工廠註冊的除錯型別。 |
factory: DebugAdapterDescriptorFactory | 要註冊的 除錯介面卡描述符工廠。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此工廠。 |
registerDebugAdapterTrackerFactory(debugType: string, factory: DebugAdapterTrackerFactory): Disposable
為給定除錯型別註冊除錯介面卡跟蹤器工廠。
引數 | 描述 |
---|---|
debugType: string | 工廠註冊的除錯型別,或 '*' 表示匹配所有除錯型別。 |
factory: DebugAdapterTrackerFactory | 要註冊的 除錯介面卡跟蹤器工廠。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此工廠。 |
registerDebugConfigurationProvider(debugType: string, provider: DebugConfigurationProvider, triggerKind?: DebugConfigurationProviderTriggerKind): Disposable
為特定除錯型別註冊 除錯配置提供程式。可選的 triggerKind 可用於指定何時觸發提供程式的 provideDebugConfigurations
方法。目前有兩種觸發方式:值為 Initial
(或未給出觸發方式引數)時,provideDebugConfigurations
方法用於提供初始除錯配置以複製到新建立的 launch.json 中。使用觸發方式 Dynamic
時,provideDebugConfigurations
方法用於動態確定要呈現給使用者的除錯配置(除了 launch.json 中的靜態配置)。請注意,triggerKind
引數僅適用於 provideDebugConfigurations
方法:因此 resolveDebugConfiguration
方法完全不受影響。為不同觸發方式註冊具有解析方法的單個提供程式,會導致多次呼叫相同的解析方法。可以為相同型別註冊多個提供程式。
引數 | 描述 |
---|---|
debugType: string | 提供程式註冊的除錯型別。 |
provider: DebugConfigurationProvider | 要註冊的 除錯配置提供程式。 |
triggerKind?: DebugConfigurationProviderTriggerKind | 提供程式的 'provideDebugConfiguration' 方法註冊的 觸發器。如果缺少 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
removeBreakpoints(breakpoints: readonly Breakpoint[]): void
移除斷點。
引數 | 描述 |
---|---|
breakpoints: readonly Breakpoint[] | 要移除的斷點。 |
返回 | 描述 |
void |
startDebugging(folder: WorkspaceFolder, nameOrConfiguration: string | DebugConfiguration, parentSessionOrOptions?: DebugSession | DebugSessionOptions): Thenable<boolean>
透過使用命名的啟動或命名的複合配置,或透過直接傳遞 DebugConfiguration 來開始除錯。命名的配置將在給定資料夾中找到的 '.vscode/launch.json' 中查詢。在除錯開始之前,所有未儲存的檔案都將儲存,並且啟動配置將更新。配置中使用的資料夾特定變數(例如 '${workspaceFolder}')將根據給定資料夾解析。
引數 | 描述 |
---|---|
folder: WorkspaceFolder | 用於查詢命名配置和解析變數的 工作區資料夾,對於非資料夾設定則為 |
nameOrConfiguration: string | DebugConfiguration | 除錯或複合配置的名稱,或 DebugConfiguration 物件。 |
parentSessionOrOptions?: DebugSession | DebugSessionOptions | 除錯會話選項。當傳遞父 除錯會話 時,假定選項中只有此父會話。 |
返回 | 描述 |
Thenable<boolean> | 一個 Thenable,在除錯成功啟動時解析。 |
stopDebugging(session?: DebugSession): Thenable<void>
停止給定的除錯會話,如果省略會話,則停止所有除錯會話。
引數 | 描述 |
---|---|
session?: DebugSession | 要停止的 除錯會話;如果省略,則停止所有會話。 |
返回 | 描述 |
Thenable<void> | 一個 Thenable,在會話停止時解析。 |
env
描述編輯器執行環境的名稱空間。
變數
應用程式的託管位置。在桌面端是 'desktop',在 Web 端是指定的嵌入器,例如 'github.dev'、'codespaces',或者如果嵌入器未提供該資訊,則為 'web'。
編輯器的應用程式名稱,例如 'VS Code'。
編輯器執行的應用程式根資料夾。
注意,在沒有應用程式根資料夾表示的環境中執行時,該值為空字串。
clipboard: Clipboard
系統剪貼簿。
指示這是應用程式的全新安裝。如果在安裝後的第一天內,則為 true
,否則為 false
。
指示使用者是否啟用了遙測。可以觀察到這一點以確定擴充套件是否應該傳送遙測。
表示首選使用者語言,例如 de-CH
、fr
或 en-US
。
logLevel: LogLevel
編輯器的當前日誌級別。
計算機的唯一識別符號。
remoteName: string | undefined
遠端的名稱。由擴充套件定義,流行的示例包括 Windows Subsystem for Linux 的 wsl
或使用安全 shell 的遠端的 ssh-remote
。
注意,當沒有遠端擴充套件主機時,該值為 undefined
,但在存在遠端擴充套件主機時,所有擴充套件主機(本地和遠端)中都定義了該值。使用 Extension.extensionKind 來了解特定擴充套件是否遠端執行。
當前會話的唯一識別符號。每次啟動編輯器時都會更改。
檢測到的擴充套件主機的預設 shell,這由擴充套件主機平臺的 terminal.integrated.defaultProfile
設定覆蓋。請注意,在不支援 shell 的環境中,該值為空字串。
uiKind: UIKind
UI 型別屬性指示從哪個 UI 訪問擴充套件。例如,可以從桌面應用程式或 Web 瀏覽器訪問擴充套件。
編輯器在作業系統中註冊的自定義 URI 方案。
事件
onDidChangeLogLevel: Event<LogLevel>
當編輯器的日誌級別更改時觸發的 Event。
onDidChangeShell: Event<string>
當預設 shell 更改時觸發的 Event。這將觸發新的 shell 路徑。
onDidChangeTelemetryEnabled: Event<boolean>
當用戶啟用或停用遙測時觸發的 Event。如果使用者啟用了遙測,則為 true
,如果使用者停用了遙測,則為 false
。
函式
asExternalUri(target: Uri): Thenable<Uri>
將 URI 解析為外部可訪問的形式。
http:
或 https:
方案
將從擴充套件執行位置的 外部 URI(例如 http:
或 https:
連結)解析為客戶端機器上相同資源的 URI。
如果擴充套件在客戶端機器上執行,則此操作是空操作。
如果擴充套件遠端執行,此函式會自動在本地機器和遠端上的 target
之間建立埠轉發隧道,並返回隧道的本地 URI。埠轉發隧道的生命週期由編輯器管理,並且隧道可以由使用者關閉。
注意,透過 openExternal
傳遞的 URI 會自動解析,您不應該對它們呼叫 asExternalUri
。
vscode.env.uriScheme
建立一個 URI,如果它在瀏覽器中開啟(例如透過 openExternal
),將觸發已註冊的 UriHandler。
擴充套件不應假定結果 URI 的任何內容,也不應以任何方式更改它。相反,擴充套件可以例如在身份驗證流程中使用此 URI,透過將該 URI 作為回撥查詢引數新增到伺服器以進行身份驗證。
注意,如果伺服器決定向 URI 新增額外的查詢引數(例如令牌或金鑰),它們將出現在傳遞給 UriHandler 的 URI 中。
身份驗證流程的示例
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);
注意,擴充套件不應快取 asExternalUri
的結果,因為解析的 URI 可能會由於系統或使用者操作而失效——例如,在遠端情況下,使用者可能會關閉由 asExternalUri
開啟的埠轉發隧道。
任何其他方案
任何其他方案都將按照提供的 URI 是工作區 URI 的方式處理。在這種情況下,該方法將返回一個 URI,當處理該 URI 時,編輯器將開啟工作區。
createTelemetryLogger(sender: TelemetrySender, options?: TelemetryLoggerOptions): TelemetryLogger
建立一個新的 遙測記錄器。
引數 | 描述 |
---|---|
sender: TelemetrySender | 遙測記錄器使用的遙測傳送器。 |
options?: TelemetryLoggerOptions | 遙測記錄器的選項。 |
返回 | 描述 |
TelemetryLogger | 一個新的遙測記錄器 |
openExternal(target: Uri): Thenable<boolean>
使用預設應用程式外部開啟連結。根據使用的方案,這可以是
- 瀏覽器(
http:
,https:
) - 郵件客戶端(
mailto:
) - VSCode 本身(來自
vscode.env.uriScheme
的vscode:
)
注意,showTextDocument 是在編輯器中開啟文字文件的正確方法,而不是此函式。
引數 | 描述 |
---|---|
target: Uri | 應開啟的 URI。 |
返回 | 描述 |
Thenable<boolean> | 指示開啟是否成功的 Promise。 |
extensions
用於處理已安裝擴充套件的名稱空間。擴充套件由 Extension 介面表示,該介面允許對它們進行反射。
擴充套件編寫者可以透過從 activate
呼叫返回其 API 公共介面來為其他擴充套件提供 API。
export function activate(context: vscode.ExtensionContext) {
let api = {
sum(a, b) {
return a + b;
},
mul(a, b) {
return a * b;
}
};
// 'export' public api-surface
return api;
}
當依賴另一個擴充套件的 API 時,請在 package.json
中新增一個 extensionDependencies
條目,並使用 getExtension 函式和 exports 屬性,如下所示
let mathExt = extensions.getExtension('genius.math');
let importedApi = mathExt.exports;
console.log(importedApi.mul(42, 1));
變數
all: readonly Extension<any>[]
系統當前已知的所有擴充套件。
事件
onDidChange: Event<void>
當 extensions.all
更改時觸發的事件。這可能發生在擴充套件安裝、解除安裝、啟用或停用時。
函式
getExtension<T>(extensionId: string): Extension<T> | undefined
透過其完整識別符號(形式為:publisher.name
)獲取擴充套件。
引數 | 描述 |
---|---|
extensionId: string | 擴充套件識別符號。 |
返回 | 描述 |
Extension<T> | undefined | 一個擴充套件或 |
l10n
用於擴充套件 API 中與本地化相關的功能的名稱空間。要正確使用此功能,您必須在擴充套件清單中定義 l10n
並擁有 bundle.l10n。
注意:內建擴充套件(例如 Git、TypeScript 語言功能、GitHub 身份驗證)不包含在 l10n
屬性要求中。換句話說,它們不需要在擴充套件清單中指定 l10n
,因為它們的翻譯字串來自語言包。
變數
為擴充套件載入的本地化字串包。如果未載入任何包,則為 undefined。如果未找到包或我們正在使用預設語言執行時,則通常不載入包。
uri: Uri | undefined
為擴充套件載入的本地化包的 URI。如果未載入任何包,則為 undefined。如果未找到包或我們正在使用預設語言執行時,則通常不載入包。
函式
t(message: string, ...args: Array<string | number | boolean>): string
標記字串以進行本地化。如果 env.language 指定的語言有可用的本地化包,並且該包對該訊息有本地化值,則將返回該本地化值(併為任何模板值注入 args 值)。
示例
l10n.t('Hello {0}!', 'World');
引數 | 描述 |
---|---|
message: string | 要本地化的訊息。支援索引模板,其中像 |
...args: Array<string | number | boolean> | 用於本地化字串的引數。引數的索引用於匹配本地化字串中的模板佔位符。 |
返回 | 描述 |
字串 | 帶有注入引數的本地化字串。 |
t(message: string, args: Record<string, any>): string
標記字串以進行本地化。如果 env.language 指定的語言有可用的本地化包,並且該包對該訊息有本地化值,則將返回該本地化值(併為任何模板值注入 args 值)。
示例
l10n.t('Hello {name}', { name: 'Erich' });
引數 | 描述 |
---|---|
message: string | 要本地化的訊息。支援命名模板,其中像 |
args: Record<string, any> | 用於本地化字串的引數。Record 中鍵的名稱用於匹配本地化字串中的模板佔位符。 |
返回 | 描述 |
字串 | 帶有注入引數的本地化字串。 |
t(options: {args: Array<string | number | boolean> | Record<string, any>, comment: string | string[], message: string}): string
標記字串以進行本地化。如果 env.language 指定的語言有可用的本地化包,並且該包對該訊息有本地化值,則將返回該本地化值(併為任何模板值注入 args 值)。
引數 | 描述 |
---|---|
options: {args: Array<string | number | boolean> | Record<string, any>, comment: string | string[], message: string} | 本地化訊息時使用的選項。 |
返回 | 描述 |
字串 | 帶有注入引數的本地化字串。 |
語言
用於參與特定語言編輯器 功能 的名稱空間,例如智慧感知、程式碼操作、診斷等。
存在許多程式語言,並且在語法、語義和正規化方面存在巨大差異。儘管如此,諸如自動單詞補全、程式碼導航或程式碼檢查等功能已在針對不同程式語言的不同工具中流行起來。
編輯器提供了一個 API,透過將所有 UI 和操作都已到位並允許您僅透過提供資料來參與,從而簡化了此類常見功能的提供。例如,要貢獻一個懸停,您所要做的就是提供一個可以呼叫 TextDocument 和 Position 並返回懸停資訊的函式。其餘的,例如跟蹤滑鼠、定位懸停、保持懸停穩定等,都由編輯器負責。
languages.registerHoverProvider('javascript', {
provideHover(document, position, token) {
return new Hover('I am a hover!');
}
});
註冊是使用 文件選擇器 完成的,文件選擇器可以是語言 ID(如 javascript
),也可以是更復雜的 過濾器(如 { language: 'typescript', scheme: 'file' }
)。將文件與此類選擇器匹配將產生一個 分數,該分數用於確定是否以及如何使用提供程式。當分數相等時,後來的提供程式獲勝。對於允許完整多元性的功能(如 懸停),僅檢查分數是否 >0
,對於其他功能(如 智慧感知),分數用於確定要求提供程式參與的順序。
事件
onDidChangeDiagnostics: Event<DiagnosticChangeEvent>
當全域性診斷集更改時觸發的 Event。這是新新增和移除的診斷。
函式
createDiagnosticCollection(name?: string): DiagnosticCollection
建立一個診斷集合。
引數 | 描述 |
---|---|
name?: string | 集合的 名稱。 |
返回 | 描述 |
DiagnosticCollection | 一個新的診斷集合。 |
createLanguageStatusItem(id: string, selector: DocumentSelector): LanguageStatusItem
建立一個新的 語言狀態項。
引數 | 描述 |
---|---|
id: string | 專案的識別符號。 |
selector: DocumentSelector | 定義項顯示在哪些編輯器的文件選擇器。 |
返回 | 描述 |
LanguageStatusItem | 一個新的語言狀態項。 |
getDiagnostics(resource: Uri): Diagnostic[]
獲取給定資源的所有診斷。
引數 | 描述 |
---|---|
resource: Uri | 資源 |
返回 | 描述 |
Diagnostic[] | 一個 診斷 物件陣列或一個空陣列。 |
getDiagnostics(): Array<[Uri, Diagnostic[]]>
獲取所有診斷。
引數 | 描述 |
---|---|
返回 | 描述 |
Array<[Uri, Diagnostic[]]> | 一個 URI-診斷元組陣列或一個空陣列。 |
getLanguages(): Thenable<string[]>
返回所有已知語言的識別符號。
引數 | 描述 |
---|---|
返回 | 描述 |
Thenable<string[]> | Promise 解析為識別符號字串陣列。 |
match(selector: DocumentSelector, document: TextDocument): number
計算文件 選擇器 和文件之間的匹配度。值大於零表示選擇器匹配文件。
匹配度根據以下規則計算
- 當 DocumentSelector 是一個數組時,計算每個包含的
DocumentFilter
或語言識別符號的匹配度,並取最大值。 - 字串將被解糖為 DocumentFilter 的
language
部分,因此"fooLang"
就像{ language: "fooLang" }
。 - 一個 DocumentFilter 將透過將其部分與文件進行比較來與文件匹配。適用以下規則
- 當
DocumentFilter
為空 ({}
) 時,結果為0
- 當定義了
scheme
、language
、pattern
或notebook
但其中一個不匹配時,結果為0
- 匹配
*
的分數為5
,透過相等或 glob 模式匹配的分數為10
- 結果是每個匹配的最大值
- 當
示例
// default document from disk (file-scheme)
doc.uri; //'file:///my/file.js'
doc.languageId; // 'javascript'
match('javascript', doc); // 10;
match({ language: 'javascript' }, doc); // 10;
match({ language: 'javascript', scheme: 'file' }, doc); // 10;
match('*', doc); // 5
match('fooLang', doc); // 0
match(['fooLang', '*'], doc); // 5
// virtual document, e.g. from git-index
doc.uri; // 'git:/my/file.js'
doc.languageId; // 'javascript'
match('javascript', doc); // 10;
match({ language: 'javascript', scheme: 'git' }, doc); // 10;
match('*', doc); // 5
// notebook cell document
doc.uri; // `vscode-notebook-cell:///my/notebook.ipynb#gl65s2pmha`;
doc.languageId; // 'python'
match({ notebookType: 'jupyter-notebook' }, doc); // 10
match({ notebookType: 'fooNotebook', language: 'python' }, doc); // 0
match({ language: 'python' }, doc); // 10
match({ notebookType: '*' }, doc); // 5
引數 | 描述 |
---|---|
selector: DocumentSelector | 文件選擇器。 |
document: TextDocument | 一個文字文件。 |
返回 | 描述 |
number | 當選擇器匹配時為 |
registerCallHierarchyProvider(selector: DocumentSelector, provider: CallHierarchyProvider): Disposable
註冊一個呼叫層次結構提供程式。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: CallHierarchyProvider | 一個呼叫層次結構提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerCodeActionsProvider(selector: DocumentSelector, provider: CodeActionProvider<CodeAction>, metadata?: CodeActionProviderMetadata): Disposable
註冊一個程式碼操作提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: CodeActionProvider<CodeAction> | 程式碼操作提供程式。 |
metadata?: CodeActionProviderMetadata | 有關提供程式提供的程式碼操作型別元資料。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerCodeLensProvider(selector: DocumentSelector, provider: CodeLensProvider<CodeLens>): Disposable
註冊一個程式碼鏡頭提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: CodeLensProvider<CodeLens> | 一個程式碼鏡頭提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerColorProvider(selector: DocumentSelector, provider: DocumentColorProvider): Disposable
註冊一個顏色提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: DocumentColorProvider | 一個顏色提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerCompletionItemProvider(selector: DocumentSelector, provider: CompletionItemProvider<CompletionItem>, ...triggerCharacters: string[]): Disposable
註冊一個補全提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將根據其 分數 進行排序,並按順序請求相同分數的組提供補全項。當一個或多個組的提供程式返回結果時,該過程停止。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
補全項提供程式可以與一組 triggerCharacters
相關聯。當鍵入觸發字元時,會請求補全,但只從註冊了鍵入字元的提供程式請求。因此,觸發字元應不同於 單詞字元,常見的觸發字元是 .
以觸發成員補全。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: CompletionItemProvider<CompletionItem> | 一個補全提供程式。 |
...triggerCharacters: string[] | 當用戶鍵入其中一個字元時觸發補全。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerDeclarationProvider(selector: DocumentSelector, provider: DeclarationProvider): Disposable
註冊一個宣告提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: DeclarationProvider | 一個宣告提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerDefinitionProvider(selector: DocumentSelector, provider: DefinitionProvider): Disposable
註冊一個定義提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: DefinitionProvider | 一個定義提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerDocumentDropEditProvider(selector: DocumentSelector, provider: DocumentDropEditProvider<DocumentDropEdit>, metadata?: DocumentDropEditProviderMetadata): Disposable
註冊一個新的 DocumentDropEditProvider。
可以為一種語言註冊多個拖放提供程式。當內容拖放到編輯器中時,所有註冊的編輯器語言提供程式將根據其 DocumentDropEditProviderMetadata 指定的 mime 型別被呼叫。
每個提供程式可以返回一個或多個 DocumentDropEdit。編輯項根據 DocumentDropEdit.yieldTo 屬性排序。預設情況下,將應用第一個編輯項。如果有任何附加的編輯項,它們將作為可選擇的拖放選項顯示在拖放小部件中。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: DocumentDropEditProvider<DocumentDropEdit> | 一個拖放提供程式。 |
metadata?: DocumentDropEditProviderMetadata | 有關提供程式的附加元資料。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerDocumentFormattingEditProvider(selector: DocumentSelector, provider: DocumentFormattingEditProvider): Disposable
為文件註冊格式化提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將根據其 分數 進行排序,並使用最佳匹配的提供程式。所選提供程式的失敗將導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: DocumentFormattingEditProvider | 一個文件格式化編輯提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerDocumentHighlightProvider(selector: DocumentSelector, provider: DocumentHighlightProvider): Disposable
註冊一個文件高亮提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將根據其 分數 進行排序,並按順序請求文件高亮。當提供程式返回一個 非假值
或 非失敗
結果時,該過程停止。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: DocumentHighlightProvider | 一個文件高亮提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerDocumentLinkProvider(selector: DocumentSelector, provider: DocumentLinkProvider<DocumentLink>): Disposable
註冊一個文件連結提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: DocumentLinkProvider<DocumentLink> | 一個文件連結提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerDocumentPasteEditProvider(selector: DocumentSelector, provider: DocumentPasteEditProvider<DocumentPasteEdit>, metadata: DocumentPasteProviderMetadata): Disposable
註冊一個新的 DocumentPasteEditProvider。
可以為一種語言註冊多個提供程式。根據 DocumentPasteProviderMetadata 指定的處理的 MIME 型別,所有為該語言註冊的提供程式都將用於複製和貼上操作。
對於 複製操作,每個提供程式對 DataTransfer 所做的更改將合併到一個 DataTransfer 中,該 DataTransfer 用於填充剪貼簿。
對於 [DocumentPasteEditProvider.providerDocumentPasteEdits 貼上操作](#DocumentPasteEditProvider.providerDocumentPasteEdits 貼上操作),每個提供程式都將被呼叫,並且可以返回一個或多個 DocumentPasteEdit。編輯項根據 DocumentPasteEdit.yieldTo 屬性進行排序。預設情況下,將應用第一個編輯項,其餘編輯項將作為可選擇的貼上選項顯示在貼上小部件中。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: DocumentPasteEditProvider<DocumentPasteEdit> | 一個貼上編輯器提供程式。 |
metadata: DocumentPasteProviderMetadata | 有關提供程式的附加元資料。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerDocumentRangeFormattingEditProvider(selector: DocumentSelector, provider: DocumentRangeFormattingEditProvider): Disposable
為文件範圍註冊格式化提供程式。
注意: 文件範圍提供程式也是一個 文件格式化程式,這意味著在註冊範圍提供程式時無需 註冊 文件格式化程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將根據其 分數 進行排序,並使用最佳匹配的提供程式。所選提供程式的失敗將導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: DocumentRangeFormattingEditProvider | 一個文件範圍格式化編輯提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerDocumentRangeSemanticTokensProvider(selector: DocumentSelector, provider: DocumentRangeSemanticTokensProvider, legend: SemanticTokensLegend): Disposable
為文件範圍註冊語義令牌提供程式。
注意:如果文件同時具有 DocumentSemanticTokensProvider
和 DocumentRangeSemanticTokensProvider
,則範圍提供程式將僅在初始階段呼叫,即在完整文件提供程式解析第一個請求時。一旦完整文件提供程式解析了第一個請求,透過範圍提供程式提供的語義令牌將被丟棄,並且從那時起,將僅使用文件提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將根據其 分數 進行排序,並使用最佳匹配的提供程式。所選提供程式的失敗將導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: DocumentRangeSemanticTokensProvider | 一個文件範圍語義令牌提供程式。 |
legend: SemanticTokensLegend | |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerDocumentSemanticTokensProvider(selector: DocumentSelector, provider: DocumentSemanticTokensProvider, legend: SemanticTokensLegend): Disposable
為整個文件註冊語義令牌提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將根據其 分數 進行排序,並使用最佳匹配的提供程式。所選提供程式的失敗將導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: DocumentSemanticTokensProvider | 一個文件語義令牌提供程式。 |
legend: SemanticTokensLegend | |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerDocumentSymbolProvider(selector: DocumentSelector, provider: DocumentSymbolProvider, metaData?: DocumentSymbolProviderMetadata): Disposable
註冊一個文件符號提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: DocumentSymbolProvider | 一個文件符號提供程式。 |
metaData?: DocumentSymbolProviderMetadata | 關於提供程式的元資料 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerEvaluatableExpressionProvider(selector: DocumentSelector, provider: EvaluatableExpressionProvider): Disposable
註冊一個提供程式,用於在文字文件中查詢可評估的表示式。編輯器將在活動的除錯會話中評估表示式,並在除錯懸停中顯示結果。
如果為一種語言註冊了多個提供程式,將使用任意一個提供程式。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: EvaluatableExpressionProvider | 一個可評估表示式提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerFoldingRangeProvider(selector: DocumentSelector, provider: FoldingRangeProvider): Disposable
註冊一個摺疊範圍提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。如果多個摺疊範圍從相同位置開始,則僅使用第一個註冊提供程式的範圍。如果摺疊範圍與具有較小位置的另一個範圍重疊,則也會忽略它。
失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: FoldingRangeProvider | 一個摺疊範圍提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerHoverProvider(selector: DocumentSelector, provider: HoverProvider): Disposable
註冊一個懸停提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: HoverProvider | 一個懸停提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerImplementationProvider(selector: DocumentSelector, provider: ImplementationProvider): Disposable
註冊一個實現提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: ImplementationProvider | 一個實現提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerInlayHintsProvider(selector: DocumentSelector, provider: InlayHintsProvider<InlayHint>): Disposable
註冊一個內聯提示提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: InlayHintsProvider<InlayHint> | 一個內聯提示提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerInlineCompletionItemProvider(selector: DocumentSelector, provider: InlineCompletionItemProvider): Disposable
註冊一個內聯完成提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: InlineCompletionItemProvider | 一個內聯完成提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerInlineValuesProvider(selector: DocumentSelector, provider: InlineValuesProvider): Disposable
註冊一個提供程式,用於返回偵錯程式“內聯值”功能的資料。每當通用偵錯程式在原始檔中停止時,都會呼叫為該檔案語言註冊的提供程式,以返回將在行尾編輯器中顯示的文字資料。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: InlineValuesProvider | 一個內聯值提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerLinkedEditingRangeProvider(selector: DocumentSelector, provider: LinkedEditingRangeProvider): Disposable
註冊一個連結編輯範圍提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式按其分數排序,並使用最佳匹配且有結果的提供程式。所選提供程式的失敗將導致整個操作的失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: LinkedEditingRangeProvider | 一個連結編輯範圍提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerOnTypeFormattingEditProvider(selector: DocumentSelector, provider: OnTypeFormattingEditProvider, firstTriggerCharacter: string, ...moreTriggerCharacter: string[]): Disposable
註冊一個在鍵入時進行格式化的提供程式。當用戶啟用 `editor.formatOnType` 設定時,此提供程式將處於活動狀態。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將根據其 分數 進行排序,並使用最佳匹配的提供程式。所選提供程式的失敗將導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: OnTypeFormattingEditProvider | 一個按型別格式化編輯提供程式。 |
firstTriggerCharacter: string | 應觸發格式化的字元,例如 `}`。 |
...moreTriggerCharacter: string[] | 更多觸發字元。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerReferenceProvider(selector: DocumentSelector, provider: ReferenceProvider): Disposable
註冊一個引用提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: ReferenceProvider | 一個引用提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerRenameProvider(selector: DocumentSelector, provider: RenameProvider): Disposable
註冊一個重新命名提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式按其分數排序並按順序詢問。第一個產生結果的提供程式定義整個操作的結果。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: RenameProvider | 一個重新命名提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerSelectionRangeProvider(selector: DocumentSelector, provider: SelectionRangeProvider): Disposable
註冊一個選擇範圍提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: SelectionRangeProvider | 一個選擇範圍提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerSignatureHelpProvider(selector: DocumentSelector, provider: SignatureHelpProvider, ...triggerCharacters: string[]): Disposable
註冊一個簽名幫助提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式按其分數排序並按順序呼叫,直到某個提供程式返回有效結果。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: SignatureHelpProvider | 一個簽名幫助提供程式。 |
...triggerCharacters: string[] | 當用戶鍵入某個字元(例如 `,` 或 `(`)時,觸發簽名幫助。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerSignatureHelpProvider(selector: DocumentSelector, provider: SignatureHelpProvider, metadata: SignatureHelpProviderMetadata): Disposable
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: SignatureHelpProvider | 一個簽名幫助提供程式。 |
metadata: SignatureHelpProviderMetadata | 關於提供程式的資訊。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerTypeDefinitionProvider(selector: DocumentSelector, provider: TypeDefinitionProvider): Disposable
註冊一個型別定義提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: TypeDefinitionProvider | 一個型別定義提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerTypeHierarchyProvider(selector: DocumentSelector, provider: TypeHierarchyProvider): Disposable
註冊一個型別層次結構提供程式。
引數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供程式適用的文件的選擇器。 |
provider: TypeHierarchyProvider | 一個型別層次結構提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerWorkspaceSymbolProvider(provider: WorkspaceSymbolProvider<SymbolInformation>): Disposable
註冊一個工作區符號提供程式。
可以註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
引數 | 描述 |
---|---|
provider: WorkspaceSymbolProvider<SymbolInformation> | 一個工作區符號提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
setLanguageConfiguration(language: string, configuration: LanguageConfiguration): Disposable
為一種語言設定語言配置。
引數 | 描述 |
---|---|
language: string | 一個語言識別符號,例如 `typescript`。 |
configuration: LanguageConfiguration | 語言配置。 |
返回 | 描述 |
Disposable | 一個可釋放物件,用於取消設定此配置。 |
setTextDocumentLanguage(document: TextDocument, languageId: string): Thenable<TextDocument>
設定(並更改)與給定文件關聯的語言。
請注意,呼叫此函式將觸發 onDidCloseTextDocument 事件,然後觸發 onDidOpenTextDocument 事件。
引數 | 描述 |
---|---|
document: TextDocument | 要更改語言的文件 |
languageId: string | 新的語言識別符號。 |
返回 | 描述 |
Thenable<TextDocument> | 一個解析為更新文件的 thenable。 |
lm
用於語言模型相關功能的名稱空間。
變數
tools: readonly LanguageModelToolInformation[]
所有擴充套件透過lm.registerTool註冊的所有可用工具的列表。可以使用lm.invokeTool呼叫它們,輸入與它們宣告的`inputSchema`匹配。
事件
onDidChangeChatModels: Event<void>
當可用聊天模型的集合發生變化時觸發的事件。
函式
invokeTool(name: string, options: LanguageModelToolInvocationOptions<object>, token?: CancellationToken): Thenable<LanguageModelToolResult>
根據給定的輸入,按名稱呼叫lm.tools中列出的工具。輸入將根據工具宣告的`inputSchema`進行驗證
工具可以由聊天參與者在處理聊天請求的上下文中呼叫,也可以由任何擴充套件在全球範圍內在任何自定義流程中呼叫。
在前一種情況下,呼叫者應傳遞來自聊天請求的toolInvocationToken。這確保聊天 UI 為正確的對話顯示工具呼叫。
工具結果是文字和prompt-tsx部分組成的陣列。如果工具呼叫者使用`vscode/prompt-tsx`,它可以使用`ToolResult`將其響應部分合併到其提示中。如果不是,可以透過帶有LanguageModelToolResultPart的使用者訊息將這些部分傳遞給LanguageModelChat。
如果聊天參與者希望在多次互動中保留請求的工具結果,它可以將工具結果儲存在處理程式返回的ChatResult.metadata中,並在下次互動時從ChatResponseTurn.result中檢索它們。
引數 | 描述 |
---|---|
name: string | 要呼叫的工具的名稱。 |
options: LanguageModelToolInvocationOptions<object> | 呼叫工具時使用的選項。 |
token?: CancellationToken | 一個取消令牌。請參閱 CancellationTokenSource 瞭解如何建立它。 |
返回 | 描述 |
Thenable<LanguageModelToolResult> | 工具呼叫的結果。 |
registerLanguageModelChatProvider(vendor: string, provider: LanguageModelChatProvider<LanguageModelChatInformation>): Disposable
註冊一個LanguageModelChatProvider 注意:您還必須透過 package.json 中的 `languageModelChatProviders` 貢獻點定義語言模型聊天提供程式。
引數 | 描述 |
---|---|
vendor: string | 此提供商的供應商。必須是全域性唯一的。例如 `copilot` 或 `openai`。 |
provider: LanguageModelChatProvider<LanguageModelChatInformation> | 要註冊的提供程式 |
返回 | 描述 |
Disposable | 一個可釋放物件,在釋放時取消註冊提供程式。 |
registerMcpServerDefinitionProvider(id: string, provider: McpServerDefinitionProvider<McpServerDefinition>): Disposable
註冊一個提供程式,用於釋出模型上下文協議(Model Context Protocol)伺服器供編輯器使用。這允許 MCP 伺服器動態地提供給編輯器,除了使用者在其配置檔案中建立的那些之外。
在呼叫此方法之前,擴充套件必須使用相應的id註冊`contributes.mcpServerDefinitionProviders`擴充套件點,例如
"contributes": {
"mcpServerDefinitionProviders": [
{
"id": "cool-cloud-registry.mcp-servers",
"label": "Cool Cloud Registry",
}
]
}
當新的 McpServerDefinitionProvider 可用時,編輯器將向用戶顯示“重新整理”操作以發現新伺服器。為了啟用此流程,擴充套件應在啟用期間呼叫 `registerMcpServerDefinitionProvider`。
引數 | 描述 |
---|---|
id: string | 提供程式的 ID,對於擴充套件來說是唯一的。 |
provider: McpServerDefinitionProvider<McpServerDefinition> | 要註冊的提供程式 |
返回 | 描述 |
Disposable | 一個可釋放物件,在釋放時取消註冊提供程式。 |
registerTool<T>(name: string, tool: LanguageModelTool<T>): Disposable
註冊一個 LanguageModelTool。該工具還必須在 package.json 的 `languageModelTools` 貢獻點中註冊。註冊的工具可在 lm.tools 列表中供任何擴充套件檢視。但為了讓語言模型看到它,必須在 LanguageModelChatRequestOptions.tools 中將其作為可用工具列表傳遞。
引數 | 描述 |
---|---|
name: string | |
tool: LanguageModelTool<T> | |
返回 | 描述 |
Disposable | 一個可釋放物件,在釋放時取消註冊工具。 |
selectChatModels(selector?: LanguageModelChatSelector): Thenable<LanguageModelChat[]>
透過選擇器選擇聊天模型。這可能產生多個或沒有聊天模型,擴充套件必須優雅地處理這些情況,特別是在沒有聊天模型存在時。
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
}
選擇器可以廣泛匹配給定供應商或家族的所有模型,也可以透過 ID 精確選擇一個模型。請記住,可用模型的集合會隨時間變化,並且在不同模型中提示的效能可能會有所不同。
請注意,擴充套件可以保留此函式返回的結果並在以後使用它們。但是,當 onDidChangeChatModels 事件觸發時,聊天模型列表可能已更改,擴充套件應重新查詢。
引數 | 描述 |
---|---|
selector?: LanguageModelChatSelector | 聊天模型選擇器。省略時返回所有聊天模型。 |
返回 | 描述 |
Thenable<LanguageModelChat[]> | 一個聊天模型陣列,可以為空! |
notebooks
用於 Notebook 功能的名稱空間。
Notebook 功能由三個鬆散耦合的元件組成
- NotebookSerializer 允許編輯器開啟、顯示和儲存 Notebook
- NotebookController 擁有 Notebook 的執行,例如它們從程式碼單元格建立輸出。
- NotebookRenderer 在編輯器中顯示 Notebook 輸出。它們在單獨的上下文中執行。
函式
createNotebookController(id: string, notebookType: string, label: string, handler?: (cells: NotebookCell[], notebook: NotebookDocument, controller: NotebookController) => void | Thenable<void>): NotebookController
建立一個新的 Notebook 控制器。
引數 | 描述 |
---|---|
id: string | 控制器的識別符號。在每個擴充套件中必須是唯一的。 |
notebookType: string | 此控制器所屬的 Notebook 型別。 |
label: string | 控制器的標籤。 |
handler?: (cells: NotebookCell[], notebook: NotebookDocument, controller: NotebookController) => void | Thenable<void> | 控制器的執行處理程式。 |
返回 | 描述 |
NotebookController | 一個新 Notebook 控制器。 |
createRendererMessaging(rendererId: string): NotebookRendererMessaging
建立用於與特定渲染器通訊的新訊息傳遞例項。
- 注意 1: 擴充套件只能建立其在 `package.json` 檔案中定義的渲染器。
- 注意 2: 只有當 `requiresMessaging` 在其 `notebookRenderer` 貢獻中設定為 `always` 或 `optional` 時,渲染器才能訪問訊息傳遞。
引數 | 描述 |
---|---|
rendererId: string | 要與之通訊的渲染器 ID |
返回 | 描述 |
NotebookRendererMessaging | 一個新的 Notebook 渲染器訊息物件。 |
registerNotebookCellStatusBarItemProvider(notebookType: string, provider: NotebookCellStatusBarItemProvider): Disposable
為給定 Notebook 型別註冊一個單元格狀態列項提供程式。
引數 | 描述 |
---|---|
notebookType: string | 要註冊的 Notebook 型別。 |
provider: NotebookCellStatusBarItemProvider | 一個單元格狀態列提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
scm
用於原始碼控制管理的名稱空間。
變數
inputBox: SourceControlInputBox
擴充套件建立的最後一個原始碼控制的輸入框。
- 已棄用 - 請改用 SourceControl.inputBox
函式
createSourceControl(id: string, label: string, rootUri?: Uri): SourceControl
建立一個新的原始碼控制例項。
引數 | 描述 |
---|---|
id: string | 原始碼控制的 `id`。應簡短,例如:`git`。 |
label: string | 原始碼控制的人類可讀字串。例如:`Git`。 |
rootUri?: Uri | 原始碼控制根目錄的可選 Uri。例如:`Uri.parse(workspaceRoot)`。 |
返回 | 描述 |
SourceControl | 一個原始碼控制例項。 |
tasks
用於任務功能的名稱空間。
變數
taskExecutions: readonly TaskExecution[]
當前活動任務執行或空陣列。
事件
onDidEndTask: Event<TaskEndEvent>
任務結束時觸發。
onDidEndTaskProcess: Event<TaskProcessEndEvent>
當底層程序結束時觸發。對於不執行底層程序的任務,此事件不會觸發。
onDidStartTask: Event<TaskStartEvent>
任務開始時觸發。
onDidStartTaskProcess: Event<TaskProcessStartEvent>
當底層程序啟動時觸發。對於不執行底層程序的任務,此事件不會觸發。
函式
executeTask(task: Task): Thenable<TaskExecution>
執行由編輯器管理的一個任務。返回的任務執行可用於終止該任務。
- 丟擲 - 在無法啟動新程序的環境中執行 ShellExecution 或 ProcessExecution 任務時。在這種環境中,只能執行 CustomExecution 任務。
引數 | 描述 |
---|---|
task: Task | 要執行的任務 |
返回 | 描述 |
Thenable<TaskExecution> | 一個解析為任務執行的 thenable。 |
fetchTasks(filter?: TaskFilter): Thenable<Task[]>
獲取系統中所有可用的任務。這包括來自 `tasks.json` 檔案的任務以及透過擴充套件貢獻的任務提供程式提供的任務。
引數 | 描述 |
---|---|
filter?: TaskFilter | 可選的篩選器,用於選擇特定型別或版本的任務。 |
返回 | 描述 |
Thenable<Task[]> | 一個解析為任務陣列的 thenable。 |
registerTaskProvider(type: string, provider: TaskProvider<Task>): Disposable
註冊一個任務提供程式。
引數 | 描述 |
---|---|
type: string | 此提供程式註冊的任務種類型別。 |
provider: TaskProvider<Task> | 一個任務提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
tests
用於測試功能的名稱空間。透過註冊TestController例項,然後新增TestItems來發布測試。控制器還可以透過建立一個或多個TestRunProfile例項來描述如何執行測試。
函式
createTestController(id: string, label: string): TestController
建立一個新的測試控制器。
引數 | 描述 |
---|---|
id: string | 控制器的識別符號,必須全域性唯一。 |
label: string | 控制器的人類可讀標籤。 |
返回 | 描述 |
TestController | 一個TestController例項。 |
window
用於處理編輯器當前視窗的名稱空間。包括可見和活動的編輯器,以及用於顯示訊息、選擇和請求使用者輸入的 UI 元素。
變數
activeColorTheme: ColorTheme
設定中配置的當前活動顏色主題。可以透過 `workbench.colorTheme` 設定更改活動主題。
activeNotebookEditor: NotebookEditor | undefined
當前活動的筆記本編輯器或 `undefined`。活動編輯器是指當前獲得焦點的編輯器,或者在沒有焦點時,最近更改輸入的編輯器。
activeTerminal: Terminal | undefined
當前活動的終端或`undefined`。活動終端是指當前具有焦點或最近具有焦點的終端。
activeTextEditor: TextEditor | undefined
當前活動的編輯器或 `undefined`。活動編輯器是指當前獲得焦點的編輯器,或者在沒有焦點時,最近更改輸入的編輯器。
state: WindowState
表示當前視窗的狀態。
tabGroups: TabGroups
表示主編輯器區域內的網格小部件
terminals: readonly Terminal[]
當前開啟的終端或空陣列。
visibleNotebookEditors: readonly NotebookEditor[]
當前可見的筆記本編輯器或空陣列。
visibleTextEditors: readonly TextEditor[]
當前可見的編輯器或空陣列。
事件
onDidChangeActiveColorTheme: Event<ColorTheme>
當活動顏色主題更改或有更改時觸發的事件。
onDidChangeActiveNotebookEditor: Event<NotebookEditor | undefined>
當活動的 Notebook 編輯器發生變化時觸發的事件。注意,當活動編輯器變為`undefined`時,此事件也會觸發。
onDidChangeActiveTerminal: Event<Terminal | undefined>
onDidChangeActiveTextEditor: Event<TextEditor | undefined>
onDidChangeNotebookEditorSelection: Event<NotebookEditorSelectionChangeEvent>
onDidChangeNotebookEditorVisibleRanges: Event<NotebookEditorVisibleRangesChangeEvent>
當筆記本編輯器可見範圍發生變化時觸發的事件。
onDidChangeTerminalShellIntegration: Event<TerminalShellIntegrationChangeEvent>
當 shell 整合在終端中啟用或其屬性之一發生變化時觸發。
onDidChangeTerminalState: Event<Terminal>
onDidChangeTextEditorOptions: Event<TextEditorOptionsChangeEvent>
當編輯器選項發生更改時觸發的事件。
onDidChangeTextEditorSelection: Event<TextEditorSelectionChangeEvent>
當編輯器中的選擇發生更改時觸發的事件。
onDidChangeTextEditorViewColumn: Event<TextEditorViewColumnChangeEvent>
當編輯器檢視列發生更改時觸發的事件。
onDidChangeTextEditorVisibleRanges: Event<TextEditorVisibleRangesChangeEvent>
當編輯器可見範圍發生更改時觸發的事件。
onDidChangeVisibleNotebookEditors: Event<readonly NotebookEditor[]>
onDidChangeVisibleTextEditors: Event<readonly TextEditor[]>
onDidChangeWindowState: Event<WindowState>
噹噹前視窗的焦點或活動狀態發生變化時觸發的事件。事件的值表示視窗是否處於焦點。
onDidCloseTerminal: Event<Terminal>
當終端被釋放時觸發的事件。
onDidEndTerminalShellExecution: Event<TerminalShellExecutionEndEvent>
當終端命令結束時,此事件將被觸發。此事件僅在終端的shell 整合被啟用時才會觸發。
onDidOpenTerminal: Event<Terminal>
當終端被建立時觸發的事件,無論是透過 createTerminal API 還是命令。
onDidStartTerminalShellExecution: Event<TerminalShellExecutionStartEvent>
當終端命令啟動時,此事件將被觸發。此事件僅在終端的shell 整合被啟用時才會觸發。
函式
createInputBox(): InputBox
建立一個InputBox以讓使用者輸入一些文字。
請注意,在許多情況下,更方便的 window.showInputBox 更易於使用。window.createInputBox 應在 window.showInputBox 無法提供所需靈活性時使用。
createOutputChannel(name: string, languageId?: string): OutputChannel
建立一個具有給定名稱和語言 ID 的新輸出通道。如果未提供語言 ID,則預設使用 Log 作為語言 ID。
您可以從可見編輯器或活動編輯器訪問可見或活動的輸出通道作為文字文件,並使用語言 ID 貢獻語言功能,如語法著色、程式碼透鏡等。
引數 | 描述 |
---|---|
name: string | 人類可讀的字串,將用於在 UI 中表示通道。 |
languageId?: string | 與通道關聯的語言識別符號。 |
返回 | 描述 |
OutputChannel | 一個新的輸出通道。 |
createOutputChannel(name: string, options: {log: true}): LogOutputChannel
建立一個具有給定名稱的新日誌輸出通道。
引數 | 描述 |
---|---|
name: string | 人類可讀的字串,將用於在 UI 中表示通道。 |
options: {log: true} | 日誌輸出通道的選項。 |
返回 | 描述 |
LogOutputChannel | 一個新的日誌輸出通道。 |
createQuickPick<T extends QuickPickItem>(): QuickPick<T>
建立一個QuickPick,讓使用者從 T 型別專案列表中選擇一個專案。
請注意,在許多情況下,更方便的 window.showQuickPick 更易於使用。window.createQuickPick 應在 window.showQuickPick 無法提供所需靈活性時使用。
createStatusBarItem(id: string, alignment?: StatusBarAlignment, priority?: number): StatusBarItem
建立一個狀態列項。
引數 | 描述 |
---|---|
id: string | 該專案的識別符號。在擴充套件程式中必須是唯一的。 |
alignment?: StatusBarAlignment | 專案的對齊方式。 |
priority?: number | 專案的優先順序。值越高,專案應越靠左顯示。 |
返回 | 描述 |
StatusBarItem | 一個新的狀態列專案。 |
createStatusBarItem(alignment?: StatusBarAlignment, priority?: number): StatusBarItem
建立一個狀態列項。
另請參閱 createStatusBarItem,用於建立帶識別符號的狀態列項。
引數 | 描述 |
---|---|
alignment?: StatusBarAlignment | 專案的對齊方式。 |
priority?: number | 專案的優先順序。值越高,專案應越靠左顯示。 |
返回 | 描述 |
StatusBarItem | 一個新的狀態列專案。 |
createTerminal(name?: string, shellPath?: string, shellArgs?: string | readonly string[]): Terminal
建立一個帶有後端 shell 程序的終端。如果工作區目錄存在,終端的當前工作目錄將是工作區目錄。
- 丟擲 - 在無法啟動新程序的環境中執行時。
createTerminal(options: TerminalOptions): Terminal
建立一個帶有後端 shell 程序的終端。
- 丟擲 - 在無法啟動新程序的環境中執行時。
引數 | 描述 |
---|---|
options: TerminalOptions | 描述新終端特性的 TerminalOptions 物件。 |
返回 | 描述 |
終端 | 一個新的終端。 |
createTerminal(options: ExtensionTerminalOptions): Terminal
建立一個終端,其中擴充套件程式控制其輸入和輸出。
引數 | 描述 |
---|---|
options: ExtensionTerminalOptions | 描述新終端特性的ExtensionTerminalOptions物件。 |
返回 | 描述 |
終端 | 一個新的終端。 |
createTextEditorDecorationType(options: DecorationRenderOptions): TextEditorDecorationType
建立一個 TextEditorDecorationType,可用於向文字編輯器新增裝飾。
引數 | 描述 |
---|---|
options: DecorationRenderOptions | 裝飾型別的渲染選項。 |
返回 | 描述 |
TextEditorDecorationType | 一個新的裝飾型別例項。 |
createTreeView<T>(viewId: string, options: TreeViewOptions<T>): TreeView<T>
為使用擴充套件點`views`貢獻的檢視建立一個TreeView。
引數 | 描述 |
---|---|
viewId: string | 使用擴充套件點 `views` 貢獻的檢視 ID。 |
options: TreeViewOptions<T> | 建立TreeView的選項 |
返回 | 描述 |
TreeView<T> | 一個TreeView。 |
createWebviewPanel(viewType: string, title: string, showOptions: ViewColumn | {preserveFocus: boolean, viewColumn: ViewColumn}, options?: WebviewPanelOptions & WebviewOptions): WebviewPanel
建立並顯示一個新的 webview 面板。
引數 | 描述 |
---|---|
viewType: string | 標識 webview 面板的型別。 |
title: string | 面板標題。 |
showOptions: ViewColumn | {preserveFocus: boolean, viewColumn: ViewColumn} | 在編輯器中顯示 webview 的位置。如果設定了 `preserveFocus`,則新的 webview 不會獲得焦點。 |
options?: WebviewPanelOptions & WebviewOptions | 新面板的設定。 |
返回 | 描述 |
WebviewPanel | 新的網頁視圖面板。 |
registerCustomEditorProvider(viewType: string, provider: CustomTextEditorProvider | CustomReadonlyEditorProvider<CustomDocument> | CustomEditorProvider<CustomDocument>, options?: {supportsMultipleEditorsPerDocument: boolean, webviewOptions: WebviewPanelOptions}): Disposable
為 `customEditors` 擴充套件點貢獻的 `viewType` 註冊自定義編輯器提供程式。
當自定義編輯器開啟時,會觸發 `onCustomEditor:viewType` 啟用事件。您的擴充套件必須在啟用期間為 `viewType` 註冊一個 CustomTextEditorProvider、CustomReadonlyEditorProvider 或 CustomEditorProvider。
引數 | 描述 |
---|---|
viewType: string | 自定義編輯器提供程式的唯一識別符號。這應該與`customEditors`貢獻點中的`viewType`匹配。 |
provider: CustomTextEditorProvider | CustomReadonlyEditorProvider<CustomDocument> | CustomEditorProvider<CustomDocument> | 解析自定義編輯器的提供程式。 |
options?: {supportsMultipleEditorsPerDocument: boolean, webviewOptions: WebviewPanelOptions} | 提供程式的選項。 |
返回 | 描述 |
Disposable | 登出提供程式的 Disposable。 |
registerFileDecorationProvider(provider: FileDecorationProvider): Disposable
註冊一個檔案裝飾提供程式。
引數 | 描述 |
---|---|
provider: FileDecorationProvider | 一個檔案裝飾提供程式。 |
返回 | 描述 |
Disposable | 一個可釋放物件,用於登出提供程式。 |
registerTerminalLinkProvider(provider: TerminalLinkProvider<TerminalLink>): Disposable
註冊一個提供程式,用於在終端內檢測和處理連結。
引數 | 描述 |
---|---|
provider: TerminalLinkProvider<TerminalLink> | 提供終端連結的提供程式。 |
返回 | 描述 |
Disposable | 登出提供程式的 Disposable。 |
registerTerminalProfileProvider(id: string, provider: TerminalProfileProvider): Disposable
註冊一個貢獻終端配置檔案的提供程式。
引數 | 描述 |
---|---|
id: string | 貢獻終端配置檔案的 ID。 |
provider: TerminalProfileProvider | 終端配置檔案提供程式。 |
返回 | 描述 |
Disposable | 一個可釋放物件,用於取消註冊提供程式。 |
registerTreeDataProvider<T>(viewId: string, treeDataProvider: TreeDataProvider<T>): Disposable
為使用擴充套件點 `views` 貢獻的檢視註冊一個 TreeDataProvider。這將允許您向 TreeView 貢獻資料,並在資料更改時進行更新。
注意:要訪問TreeView並對其執行操作,請使用createTreeView。
引數 | 描述 |
---|---|
viewId: string | 使用擴充套件點 `views` 貢獻的檢視 ID。 |
treeDataProvider: TreeDataProvider<T> | 一個TreeDataProvider,為檢視提供樹形資料 |
返回 | 描述 |
Disposable | 一個可釋放物件,用於登出TreeDataProvider。 |
registerUriHandler(handler: UriHandler): Disposable
註冊一個能夠處理系統範圍URI的URI 處理程式。如果有多個視窗開啟,則最頂層的視窗將處理該 URI。URI 處理程式的作用域限定為其貢獻的擴充套件;它只能處理指向該擴充套件本身的 URI。URI 必須遵守以下規則:
- uri-scheme 必須是 `vscode.env.uriScheme`;
- uri-authority 必須是擴充套件 ID(例如 `my.extension`);
- uri-path、-query 和 -fragment 部分是任意的。
例如,如果 `my.extension` 擴充套件註冊了一個 uri 處理程式,它將只被允許處理帶有 `product-name://my.extension` 字首的 uri。
一個擴充套件在其整個啟用生命週期中只能註冊一個 URI 處理程式。
- 注意:當定向到當前擴充套件的 URI 即將處理時,會觸發 `onUri` 啟用事件。
引數 | 描述 |
---|---|
handler: UriHandler | 要為此擴充套件註冊的 URI 處理程式。 |
返回 | 描述 |
Disposable | 一個可釋放物件,用於登出處理程式。 |
registerWebviewPanelSerializer(viewType: string, serializer: WebviewPanelSerializer<unknown>): Disposable
註冊一個 webview 面板序列化程式。
支援恢復的擴充套件應具有 `“onWebviewPanel:viewType”` 啟用事件,並確保在啟用期間呼叫 `registerWebviewPanelSerializer`。
對於給定的 `viewType`,一次只能註冊一個序列化程式。
引數 | 描述 |
---|---|
viewType: string | 可序列化的 webview 面板型別。 |
serializer: WebviewPanelSerializer<unknown> | 網頁檢視序列化程式。 |
返回 | 描述 |
Disposable | 一個可釋放物件,用於登出序列化程式。 |
registerWebviewViewProvider(viewId: string, provider: WebviewViewProvider, options?: {webviewOptions: {retainContextWhenHidden: boolean}}): Disposable
註冊一個新的 webview 檢視提供程式。
引數 | 描述 |
---|---|
viewId: string | 檢視的唯一 ID。這應該與 package.json 中 `views` 貢獻的 `id` 匹配。 |
provider: WebviewViewProvider | 網頁檢視提供者。 |
options?: {webviewOptions: {retainContextWhenHidden: boolean}} | |
返回 | 描述 |
Disposable | 登出提供程式的 Disposable。 |
setStatusBarMessage(text: string, hideAfterTimeout: number): Disposable
向狀態列設定一條訊息。這是功能更強大的狀態列專案的簡寫。
引數 | 描述 |
---|---|
text: string | 要顯示的訊息,支援像狀態列專案一樣的圖示替換。 |
hideAfterTimeout: number | 訊息在多少毫秒後將被處置的超時時間。 |
返回 | 描述 |
Disposable | 一個可釋放物件,用於隱藏狀態列訊息。 |
setStatusBarMessage(text: string, hideWhenDone: Thenable<any>): Disposable
向狀態列設定一條訊息。這是功能更強大的狀態列專案的簡寫。
引數 | 描述 |
---|---|
text: string | 要顯示的訊息,支援像狀態列專案一樣的圖示替換。 |
hideWhenDone: Thenable<any> | 在完成(解決或拒絕)時將處置訊息的 Thenable。 |
返回 | 描述 |
Disposable | 一個可釋放物件,用於隱藏狀態列訊息。 |
setStatusBarMessage(text: string): Disposable
向狀態列設定一條訊息。這是功能更強大的狀態列專案的簡寫。
請注意,狀態列訊息是堆疊的,不再使用時必須釋放。
引數 | 描述 |
---|---|
text: string | 要顯示的訊息,支援像狀態列專案一樣的圖示替換。 |
返回 | 描述 |
Disposable | 一個可釋放物件,用於隱藏狀態列訊息。 |
showErrorMessage<T extends string>(message: string, ...items: T[]): Thenable<T | undefined>
顯示錯誤訊息。
引數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
...items: T[] | 一組將在訊息中呈現為操作的專案。 |
返回 | 描述 |
Thenable<T | undefined> | 一個解析為所選專案或在被駁回時解析為`undefined`的thenable。 |
showErrorMessage<T extends string>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
顯示錯誤訊息。
引數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
options: MessageOptions | 配置訊息的行為。 |
...items: T[] | 一組將在訊息中呈現為操作的專案。 |
返回 | 描述 |
Thenable<T | undefined> | 一個解析為所選專案或在被駁回時解析為`undefined`的thenable。 |
showErrorMessage<T extends MessageItem>(message: string, ...items: T[]): Thenable<T | undefined>
顯示錯誤訊息。
引數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
...items: T[] | 一組將在訊息中呈現為操作的專案。 |
返回 | 描述 |
Thenable<T | undefined> | 一個解析為所選專案或在被駁回時解析為`undefined`的thenable。 |
showErrorMessage<T extends MessageItem>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
顯示錯誤訊息。
引數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
options: MessageOptions | 配置訊息的行為。 |
...items: T[] | 一組將在訊息中呈現為操作的專案。 |
返回 | 描述 |
Thenable<T | undefined> | 一個解析為所選專案或在被駁回時解析為`undefined`的thenable。 |
showInformationMessage<T extends string>(message: string, ...items: T[]): Thenable<T | undefined>
向用戶顯示一條資訊訊息。可選地提供一組專案,這些專案將作為可點選按鈕呈現。
引數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
...items: T[] | 一組將在訊息中呈現為操作的專案。 |
返回 | 描述 |
Thenable<T | undefined> | 一個解析為所選專案或在被駁回時解析為`undefined`的thenable。 |
showInformationMessage<T extends string>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
向用戶顯示一條資訊訊息。可選地提供一組專案,這些專案將作為可點選按鈕呈現。
引數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
options: MessageOptions | 配置訊息的行為。 |
...items: T[] | 一組將在訊息中呈現為操作的專案。 |
返回 | 描述 |
Thenable<T | undefined> | 一個解析為所選專案或在被駁回時解析為`undefined`的thenable。 |
showInformationMessage<T extends MessageItem>(message: string, ...items: T[]): Thenable<T | undefined>
顯示一條資訊訊息。
引數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
...items: T[] | 一組將在訊息中呈現為操作的專案。 |
返回 | 描述 |
Thenable<T | undefined> | 一個解析為所選專案或在被駁回時解析為`undefined`的thenable。 |
showInformationMessage<T extends MessageItem>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
顯示一條資訊訊息。
引數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
options: MessageOptions | 配置訊息的行為。 |
...items: T[] | 一組將在訊息中呈現為操作的專案。 |
返回 | 描述 |
Thenable<T | undefined> | 一個解析為所選專案或在被駁回時解析為`undefined`的thenable。 |
showInputBox(options?: InputBoxOptions, token?: CancellationToken): Thenable<string | undefined>
開啟一個輸入框,要求使用者輸入。
如果輸入框被取消(例如按下 ESC 鍵),則返回值為 `undefined`。否則,返回值為使用者輸入的字串,如果使用者未輸入任何內容但透過“確定”關閉輸入框,則返回空字串。
引數 | 描述 |
---|---|
options?: InputBoxOptions | 配置輸入框的行為。 |
token?: CancellationToken | 可用於發出取消訊號的令牌。 |
返回 | 描述 |
Thenable<string | undefined> | 一個 promise,它解析為使用者提供的字串,或者在取消時解析為 `undefined`。 |
showNotebookDocument(document: NotebookDocument, options?: NotebookDocumentShowOptions): Thenable<NotebookEditor>
在筆記本編輯器中顯示給定的NotebookDocument。
引數 | 描述 |
---|---|
document: NotebookDocument | 要顯示的文字文件。 |
options?: NotebookDocumentShowOptions | |
返回 | 描述 |
Thenable<NotebookEditor> | 一個解析為筆記本編輯器的 Promise。 |
showOpenDialog(options?: OpenDialogOptions): Thenable<Uri[] | undefined>
向用戶顯示一個檔案開啟對話方塊,允許選擇要開啟的檔案。
引數 | 描述 |
---|---|
options?: OpenDialogOptions | 控制對話方塊的選項。 |
返回 | 描述 |
Thenable<Uri[] | undefined> | 一個 Promise,它解析為選定的資源或 |
showQuickPick(items: readonly string[] | Thenable<readonly string[]>, options: QuickPickOptions & {canPickMany: true}, token?: CancellationToken): Thenable<string[] | undefined>
顯示一個允許進行多項選擇的選擇列表。
引數 | 描述 |
---|---|
items: readonly string[] | Thenable<readonly string[]> | 字串陣列,或解析為字串陣列的 Promise。 |
options: QuickPickOptions & {canPickMany: true} | 配置選擇列表的行為。 |
token?: CancellationToken | 可用於發出取消訊號的令牌。 |
返回 | 描述 |
Thenable<string[] | undefined> | 一個 Promise,它解析為選定的專案或 |
showQuickPick(items: readonly string[] | Thenable<readonly string[]>, options?: QuickPickOptions, token?: CancellationToken): Thenable<string | undefined>
顯示一個選擇列表。
引數 | 描述 |
---|---|
items: readonly string[] | Thenable<readonly string[]> | 字串陣列,或解析為字串陣列的 Promise。 |
options?: QuickPickOptions | 配置選擇列表的行為。 |
token?: CancellationToken | 可用於發出取消訊號的令牌。 |
返回 | 描述 |
Thenable<string | undefined> | 一個 Promise,它解析為選定的項或 |
showQuickPick<T extends QuickPickItem>(items: readonly T[] | Thenable<readonly T[]>, options: QuickPickOptions & {canPickMany: true}, token?: CancellationToken): Thenable<T[] | undefined>
顯示一個允許進行多項選擇的選擇列表。
引數 | 描述 |
---|---|
items: readonly T[] | Thenable<readonly T[]> | 項陣列,或解析為項陣列的 Promise。 |
options: QuickPickOptions & {canPickMany: true} | 配置選擇列表的行為。 |
token?: CancellationToken | 可用於發出取消訊號的令牌。 |
返回 | 描述 |
Thenable<T[] | undefined> | 一個 Promise,它解析為選定的專案或 |
showQuickPick<T extends QuickPickItem>(items: readonly T[] | Thenable<readonly T[]>, options?: QuickPickOptions, token?: CancellationToken): Thenable<T | undefined>
顯示一個選擇列表。
引數 | 描述 |
---|---|
items: readonly T[] | Thenable<readonly T[]> | 項陣列,或解析為項陣列的 Promise。 |
options?: QuickPickOptions | 配置選擇列表的行為。 |
token?: CancellationToken | 可用於發出取消訊號的令牌。 |
返回 | 描述 |
Thenable<T | undefined> | 一個 Promise,它解析為選定的項或 |
showSaveDialog(options?: SaveDialogOptions): Thenable<Uri | undefined>
向用戶顯示一個檔案儲存對話方塊,允許選擇要儲存的檔案。
引數 | 描述 |
---|---|
options?: SaveDialogOptions | 控制對話方塊的選項。 |
返回 | 描述 |
Thenable<Uri | undefined> | 一個 Promise,它解析為選定的資源或 |
showTextDocument(document: TextDocument, column?: ViewColumn, preserveFocus?: boolean): Thenable<TextEditor>
引數 | 描述 |
---|---|
document: TextDocument | 要顯示的文字文件。 |
column?: ViewColumn | 應顯示 編輯器 的檢視列。預設為 活動 列。將根據需要建立不存在的列,最多可達 ViewColumn.Nine。使用 ViewColumn.Beside 在當前活動編輯器旁邊開啟編輯器。 |
preserveFocus?: boolean | 當為 |
返回 | 描述 |
Thenable<TextEditor> | 一個 Promise,它解析為 編輯器。 |
showTextDocument(document: TextDocument, options?: TextDocumentShowOptions): Thenable<TextEditor>
引數 | 描述 |
---|---|
document: TextDocument | 要顯示的文字文件。 |
options?: TextDocumentShowOptions | |
返回 | 描述 |
Thenable<TextEditor> | 一個 Promise,它解析為 編輯器。 |
showTextDocument(uri: Uri, options?: TextDocumentShowOptions): Thenable<TextEditor>
openTextDocument(uri).then(document => showTextDocument(document, options))
的簡寫。
引數 | 描述 |
---|---|
uri: Uri | 資源識別符號。 |
options?: TextDocumentShowOptions | |
返回 | 描述 |
Thenable<TextEditor> | 一個 Promise,它解析為 編輯器。 |
showWarningMessage<T extends string>(message: string, ...items: T[]): Thenable<T | undefined>
顯示警告訊息。
引數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
...items: T[] | 一組將在訊息中呈現為操作的專案。 |
返回 | 描述 |
Thenable<T | undefined> | 一個解析為所選專案或在被駁回時解析為`undefined`的thenable。 |
showWarningMessage<T extends string>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
顯示警告訊息。
引數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
options: MessageOptions | 配置訊息的行為。 |
...items: T[] | 一組將在訊息中呈現為操作的專案。 |
返回 | 描述 |
Thenable<T | undefined> | 一個解析為所選專案或在被駁回時解析為`undefined`的thenable。 |
showWarningMessage<T extends MessageItem>(message: string, ...items: T[]): Thenable<T | undefined>
顯示警告訊息。
引數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
...items: T[] | 一組將在訊息中呈現為操作的專案。 |
返回 | 描述 |
Thenable<T | undefined> | 一個解析為所選專案或在被駁回時解析為`undefined`的thenable。 |
showWarningMessage<T extends MessageItem>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
顯示警告訊息。
引數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
options: MessageOptions | 配置訊息的行為。 |
...items: T[] | 一組將在訊息中呈現為操作的專案。 |
返回 | 描述 |
Thenable<T | undefined> | 一個解析為所選專案或在被駁回時解析為`undefined`的thenable。 |
showWorkspaceFolderPick(options?: WorkspaceFolderPickOptions): Thenable<WorkspaceFolder | undefined>
顯示 工作區資料夾 的選擇列表以供選擇。如果未開啟任何資料夾,則返回 undefined
。
引數 | 描述 |
---|---|
options?: WorkspaceFolderPickOptions | 配置工作區資料夾列表的行為。 |
返回 | 描述 |
Thenable<WorkspaceFolder | undefined> | 一個 Promise,它解析為工作區資料夾或 |
withProgress<R>(options: ProgressOptions, task: (progress: Progress<{increment: number, message: string}>, token: CancellationToken) => Thenable<R>): Thenable<R>
在編輯器中顯示進度。進度會在執行給定回撥期間以及它返回的 Promise 既未解析也未拒絕期間顯示。進度的顯示位置(以及其他詳細資訊)透過傳遞的 ProgressOptions 定義。
引數 | 描述 |
---|---|
options: ProgressOptions | 一個 ProgressOptions-物件,描述用於顯示進度的選項,例如其位置 |
task: (progress: Progress<{increment: number, message: string}>, token: CancellationToken) => Thenable<R> | 一個返回 Promise 的回撥函式。進度狀態可以透過提供的 Progress-物件報告。 要報告離散進度,請使用 要監控使用者是否取消了操作,請使用提供的 CancellationToken。請注意,目前只有 |
返回 | 描述 |
Thenable<R> | 任務回撥返回的 Thenable。 |
withScmProgress<R>(task: (progress: Progress<number>) => Thenable<R>): Thenable<R>
在原始碼管理檢視中顯示進度,同時執行給定的回撥,並且其返回的 Promise 既未解析也未拒絕。
- 已棄用 - 請改用
withProgress
。
工作區
用於處理當前工作區的名稱空間。工作區是編輯器視窗(例項)中開啟的一個或多個資料夾的集合。
也可以在沒有工作區的情況下開啟編輯器。例如,當您透過從平臺的“檔案”選單中選擇檔案來開啟新的編輯器視窗時,您將不在工作區中。在此模式下,編輯器的某些功能會受到限制,但您仍然可以開啟文字檔案並對其進行編輯。
有關工作區概念的更多資訊,請參閱 https://vscode.com.tw/docs/editor/workspaces。
工作區支援 監聽 檔案系統事件和 查詢 檔案。兩者都表現良好,並在編輯器程序外部執行,因此應始終使用它們而不是 nodejs 等效項。
變數
fs: FileSystem
一個 檔案系統 例項,允許與本地和遠端檔案互動,例如 vscode.workspace.fs.readDirectory(someUri)
允許檢索目錄的所有條目,或 vscode.workspace.fs.stat(anotherUri)
返回檔案的元資料。
當為 true 時,使用者已明確信任工作區的內容。
工作區的名稱。當未開啟工作區時為 undefined
。
有關工作區概念的更多資訊,請參閱 https://vscode.com.tw/docs/editor/workspaces。
notebookDocuments: readonly NotebookDocument[]
編輯器當前已知的所有筆記本文件。
workspaceFolders 第一個條目的 uri 作為 string
。如果沒有第一個條目,則為 undefined
。
有關工作區的更多資訊,請參閱 https://vscode.com.tw/docs/editor/workspaces。
- 已棄用 - 請改用 workspaceFolders。
textDocuments: readonly TextDocument[]
編輯器當前已知的所有文字文件。
workspaceFile: Uri | undefined
工作區檔案的位置,例如
file:///Users/name/Development/myProject.code-workspace
或
untitled:1555503116870
對於未命名且尚未儲存的工作區。
根據開啟的工作區,該值將是:
- 當未開啟工作區時為
undefined
- 否則為工作區檔案的路徑作為
Uri
。如果工作區是未命名的,則返回的 URI 將使用untitled:
方案
該位置可以例如與 vscode.openFolder
命令一起使用,以便在關閉工作區後再次開啟它。
示例
vscode.commands.executeCommand('vscode.openFolder', uriOfWorkspace);
有關工作區概念的更多資訊,請參閱 https://vscode.com.tw/docs/editor/workspaces。
注意: 不建議使用 workspace.workspaceFile
將配置資料寫入檔案。為此,您可以使用 workspace.getConfiguration().update()
,它在開啟單個資料夾以及未命名或已儲存工作區時都有效。
workspaceFolders: readonly WorkspaceFolder[] | undefined
在編輯器中開啟的工作區資料夾列表(0-N)。當未開啟工作區時為 undefined
。
有關工作區的更多資訊,請參閱 https://vscode.com.tw/docs/editor/workspaces。
事件
onDidChangeConfiguration: Event<ConfigurationChangeEvent>
當 配置 更改時發出的事件。
onDidChangeNotebookDocument: Event<NotebookDocumentChangeEvent>
當 筆記本 更改時發出的事件。
onDidChangeTextDocument: Event<TextDocumentChangeEvent>
onDidChangeWorkspaceFolders: Event<WorkspaceFoldersChangeEvent>
新增或刪除工作區資料夾時發出的事件。
注意: 如果新增、刪除或更改了第一個工作區資料夾,則不會觸發此事件,因為在這種情況下,當前正在執行的擴充套件(包括監聽此事件的擴充套件)將被終止並重新啟動,以便(已棄用)rootPath
屬性更新為指向第一個工作區資料夾。
onDidCloseNotebookDocument: Event<NotebookDocument>
onDidCloseTextDocument: Event<TextDocument>
當 文字文件 被處理或文字文件的語言 ID 已更改 時發出的事件。
注意 1:無法保證在編輯器選項卡關閉時觸發此事件,請使用 onDidChangeVisibleTextEditors 事件來了解編輯器何時更改。
注意 2:文件可以開啟但未在編輯器中顯示,這意味著此事件可以為未在編輯器中顯示的文件觸發。
onDidCreateFiles: Event<FileCreateEvent>
當檔案被建立時發出的事件。
注意: 此事件由使用者手勢觸發,例如從資源管理器建立檔案,或透過 workspace.applyEdit-API 建立檔案,但當檔案在磁碟上更改時(例如由另一個應用程式觸發或使用 workspace.fs-API 時)不會觸發此事件。
onDidDeleteFiles: Event<FileDeleteEvent>
當檔案被刪除時發出的事件。
注意 1: 此事件由使用者手勢觸發,例如從資源管理器刪除檔案,或透過 workspace.applyEdit-API 刪除檔案,但當檔案在磁碟上更改時(例如由另一個應用程式觸發或使用 workspace.fs-API 時)不會觸發此事件。
注意 2: 刪除包含子資料夾的資料夾時,只會觸發一個事件。
onDidGrantWorkspaceTrust: Event<void>
當前工作區受到信任時觸發的事件。
onDidOpenNotebookDocument: Event<NotebookDocument>
當 筆記本 被開啟時發出的事件。
onDidOpenTextDocument: Event<TextDocument>
onDidRenameFiles: Event<FileRenameEvent>
當檔案被重新命名時發出的事件。
注意 1: 此事件由使用者手勢觸發,例如從資源管理器重新命名檔案,以及透過 workspace.applyEdit-API 重新命名檔案,但當檔案在磁碟上更改時(例如由另一個應用程式觸發或使用 workspace.fs-API 時)不會觸發此事件。
注意 2: 重新命名包含子資料夾的資料夾時,只會觸發一個事件。
onDidSaveNotebookDocument: Event<NotebookDocument>
當 筆記本 被儲存時發出的事件。
onDidSaveTextDocument: Event<TextDocument>
當 文字文件 儲存到磁碟時發出的事件。
onWillCreateFiles: Event<FileWillCreateEvent>
當檔案正在建立時發出的事件。
注意 1: 此事件由使用者手勢觸發,例如從資源管理器建立檔案,或透過 workspace.applyEdit-API 建立檔案。當檔案在磁碟上更改時(例如由另一個應用程式觸發或使用 workspace.fs-API 時)不會觸發此事件。
注意 2: 觸發此事件時,無法應用對正在建立的檔案所做的編輯。
onWillDeleteFiles: Event<FileWillDeleteEvent>
當檔案正在刪除時發出的事件。
注意 1: 此事件由使用者手勢觸發,例如從資源管理器刪除檔案,或透過 workspace.applyEdit-API 刪除檔案,但當檔案在磁碟上更改時(例如由另一個應用程式觸發或使用 workspace.fs-API 時)不會觸發此事件。
注意 2: 刪除包含子資料夾的資料夾時,只會觸發一個事件。
onWillRenameFiles: Event<FileWillRenameEvent>
當檔案正在重新命名時發出的事件。
注意 1: 此事件由使用者手勢觸發,例如從資源管理器重新命名檔案,以及透過 workspace.applyEdit-API 重新命名檔案,但當檔案在磁碟上更改時(例如由另一個應用程式觸發或使用 workspace.fs-API 時)不會觸發此事件。
注意 2: 重新命名包含子資料夾的資料夾時,只會觸發一個事件。
onWillSaveNotebookDocument: Event<NotebookDocumentWillSaveEvent>
onWillSaveTextDocument: Event<TextDocumentWillSaveEvent>
函式
applyEdit(edit: WorkspaceEdit, metadata?: WorkspaceEditMetadata): Thenable<boolean>
根據給定的 工作區編輯,對一個或多個資源進行更改或建立、刪除和重新命名資源。
工作區編輯的所有更改都按照它們新增的相同順序應用。如果在同一位置進行多次文字插入,這些字串將按照“插入”的順序出現在結果文字中,除非它們與資源編輯交錯。無效序列(如“刪除檔案 a”->“在檔案 a 中插入文字”)會導致操作失敗。
當應用僅包含文字編輯的工作區編輯時,採用“全有或全無”策略。如果單個編輯失敗,包含資源建立或刪除的工作區編輯將中止操作,例如,不會嘗試連續編輯。
引數 | 描述 |
---|---|
edit: WorkspaceEdit | 一個工作區編輯。 |
metadata?: WorkspaceEditMetadata | 編輯的可選 元資料。 |
返回 | 描述 |
Thenable<boolean> | 當編輯可以應用時解析的 thenable。 |
asRelativePath(pathOrUri: string | Uri, includeWorkspaceFolder?: boolean): string
返回相對於工作區資料夾的路徑。
當沒有 工作區資料夾 或路徑不包含在其中時,返回輸入。
createFileSystemWatcher(globPattern: GlobPattern, ignoreCreateEvents?: boolean, ignoreChangeEvents?: boolean, ignoreDeleteEvents?: boolean): FileSystemWatcher
建立檔案系統監視器,該監視器根據提供的引數在檔案事件(建立、更改、刪除)上收到通知。
預設情況下,所有開啟的 工作區資料夾 都將遞迴監視檔案更改。
可以透過提供具有 base
路徑的 相對模式 來新增其他路徑以進行檔案監視。如果路徑是資料夾且 pattern
複雜(例如包含 **
或路徑段),它將遞迴監視,否則將非遞迴監視(即只報告路徑第一級的更改)。
注意,檔案系統中不存在的路徑將延遲監視,直到建立,然後根據提供的引數進行監視。如果刪除監視的路徑,監視器將暫停,並且在路徑再次建立之前不會報告任何事件。
如果可能,請將遞迴監視器的使用保持在最低限度,因為遞迴檔案監視相當消耗資源。
提供 string
作為 globPattern
可作為在所有開啟的工作區資料夾中監視檔案事件的便捷方法。它不能用於新增更多資料夾以進行檔案監視,也不會報告來自不屬於開啟的工作區資料夾的任何檔案事件。
可選地,可以提供忽略某些型別事件的標誌。
要停止監聽事件,必須處置監視器。
注意,來自遞迴檔案監視器的檔案事件可能會根據使用者配置排除。files.watcherExclude
設定有助於減少已知會一次產生許多檔案更改的資料夾(例如 .git
資料夾)的檔案事件開銷。因此,強烈建議使用不需要遞迴監視器的簡單模式進行監視,在這些模式下,排除設定將被忽略,並且您可以完全控制事件。
注意,除非要監視的路徑本身是符號連結,否則符號連結不會自動跟隨檔案監視。
注意,在不區分大小寫的平臺上(通常是 macOS 和 Windows,但不是 Linux),報告已更改的檔案路徑可能與磁碟上的實際路徑大小寫不同。我們允許使用者以任何所需路徑大小寫開啟工作區資料夾,並嘗試保留該大小寫。這意味著
- 如果路徑在任何工作區資料夾內,則路徑將匹配工作區資料夾的大小寫,直到該路徑部分,並匹配子檔案在磁碟上的大小寫
- 如果路徑在任何工作區資料夾之外,則大小寫將匹配為監視提供的路徑的大小寫。以同樣的方式,符號連結將保留,即檔案事件將報告符號連結的路徑,因為它已用於監視而不是目標。
注意,刪除資料夾的檔案事件可能不包括包含檔案的事件。如果可能,事件將被聚合以減少發出的事件總數。
示例
檔案監視器的基本結構如下:
const watcher = vscode.workspace.createFileSystemWatcher(new vscode.RelativePattern(<folder>, <pattern>));
watcher.onDidChange(uri => { ... }); // listen to files being changed
watcher.onDidCreate(uri => { ... }); // listen to files/folders being created
watcher.onDidDelete(uri => { ... }); // listen to files/folders getting deleted
watcher.dispose(); // dispose after usage
工作區檔案監視
如果您只關心特定工作區資料夾中的檔案事件
vscode.workspace.createFileSystemWatcher(
new vscode.RelativePattern(vscode.workspace.workspaceFolders[0], '**/*.js')
);
如果您想監視所有開啟的工作區資料夾中的檔案事件
vscode.workspace.createFileSystemWatcher('**/*.js');
注意: 如果沒有開啟工作區(空視窗),工作區資料夾陣列可能為空。
工作區外檔案監視
要監視資料夾中 *.js 檔案的更改(非遞迴),請將 Uri
傳遞給此類資料夾
vscode.workspace.createFileSystemWatcher(new vscode.RelativePattern(vscode.Uri.file(<path to folder outside workspace>), '*.js'));
並使用複雜的 glob 模式進行遞迴監視
vscode.workspace.createFileSystemWatcher(new vscode.RelativePattern(vscode.Uri.file(<path to folder outside workspace>), '**/*.js'));
這是監視活動編輯器檔案更改的示例
vscode.workspace.createFileSystemWatcher(
new vscode.RelativePattern(vscode.window.activeTextEditor.document.uri, '*')
);
引數 | 描述 |
---|---|
globPattern: GlobPattern | 一個 glob 模式,用於控制監視器應報告哪些檔案事件。 |
ignoreCreateEvents?: boolean | 忽略檔案建立事件。 |
ignoreChangeEvents?: boolean | 忽略檔案更改事件。 |
ignoreDeleteEvents?: boolean | 忽略檔案刪除事件。 |
返回 | 描述 |
FileSystemWatcher | 一個新的檔案系統監視器例項。不再需要時必須進行處理。 |
decode(content: Uint8Array): Thenable<string>
將 Uint8Array
中的內容解碼為 string
。您必須一次性提供所有內容,以確保編碼能夠正確應用。請勿使用此方法分塊解碼內容,因為這可能導致不正確的結果。
將根據設定和緩衝區內容(例如位元組順序標記)選擇編碼。
注意,如果您解碼編碼不支援的內容,結果可能包含適當的替換字元。
- 丟擲 - 當內容為二進位制時,此方法將丟擲錯誤。
引數 | 描述 |
---|---|
content: Uint8Array | 要解碼的文字內容,作為 |
返回 | 描述 |
Thenable<string> | 一個解析為已解碼 |
decode(content: Uint8Array, options: {encoding: string}): Thenable<string>
使用提供的編碼將 Uint8Array
中的內容解碼為 string
。您必須一次性提供所有內容,以確保編碼能夠正確應用。請勿使用此方法分塊解碼內容,因為這可能導致不正確的結果。
注意,如果您解碼編碼不支援的內容,結果可能包含適當的替換字元。
- 丟擲 - 當內容為二進位制時,此方法將丟擲錯誤。
引數 | 描述 |
---|---|
content: Uint8Array | 要解碼的文字內容,作為 |
options: {encoding: string} | 選擇編碼的附加上下文。 |
返回 | 描述 |
Thenable<string> | 一個解析為已解碼 |
decode(content: Uint8Array, options: {uri: Uri}): Thenable<string>
將 Uint8Array
中的內容解碼為 string
。您必須一次性提供所有內容,以確保編碼能夠正確應用。請勿使用此方法分塊解碼內容,因為這可能導致不正確的結果。
編碼是根據設定和緩衝區內容(例如位元組順序標記)選擇的。
注意,如果您解碼編碼不支援的內容,結果可能包含適當的替換字元。
- 丟擲 - 當內容為二進位制時,此方法將丟擲錯誤。
引數 | 描述 |
---|---|
content: Uint8Array | 要解碼的內容,作為 |
options: {uri: Uri} | 選擇編碼的附加上下文。 |
返回 | 描述 |
Thenable<string> | 一個解析為已解碼 |
encode(content: string): Thenable<Uint8Array>
將 string
的內容編碼為 Uint8Array
。
將根據設定選擇編碼。
引數 | 描述 |
---|---|
content: string | 要解碼的內容,作為 |
返回 | 描述 |
Thenable<Uint8Array> | 一個解析為已編碼 |
encode(content: string, options: {encoding: string}): Thenable<Uint8Array>
使用提供的編碼將 string
的內容編碼為 Uint8Array
。
引數 | 描述 |
---|---|
content: string | 要解碼的內容,作為 |
options: {encoding: string} | 選擇編碼的附加上下文。 |
返回 | 描述 |
Thenable<Uint8Array> | 一個解析為已編碼 |
encode(content: string, options: {uri: Uri}): Thenable<Uint8Array>
將 string
的內容編碼為 Uint8Array
。
編碼是根據設定選擇的。
引數 | 描述 |
---|---|
content: string | 要解碼的內容,作為 |
options: {uri: Uri} | 選擇編碼的附加上下文。 |
返回 | 描述 |
Thenable<Uint8Array> | 一個解析為已編碼 |
findFiles(include: GlobPattern, exclude?: GlobPattern, maxResults?: number, token?: CancellationToken): Thenable<Uri[]>
引數 | 描述 |
---|---|
include: GlobPattern | |
exclude?: GlobPattern | 一個 glob 模式,定義要排除的檔案和資料夾。glob 模式將根據結果匹配的檔案路徑相對於其工作區進行匹配。當為 |
maxResults?: number | 結果的上限。 |
token?: CancellationToken | 可用於向底層搜尋引擎發出取消訊號的令牌。 |
返回 | 描述 |
Thenable<Uri[]> | 一個解析為資源識別符號陣列的 thenable。如果沒有開啟 工作區資料夾,將不返回任何結果。 |
getConfiguration(section?: string, scope?: ConfigurationScope): WorkspaceConfiguration
獲取工作區配置物件。
提供 section 識別符號時,只返回配置的該部分。section 識別符號中的點被解釋為子訪問,例如 { myExt: { setting: { doIt: true }}}
和 getConfiguration('myExt.setting').get('doIt') === true
。
提供範圍時,返回限於該範圍的配置。範圍可以是資源或語言識別符號,或兩者兼而有之。
引數 | 描述 |
---|---|
section?: string | 點分隔識別符號。 |
scope?: ConfigurationScope | 請求配置的範圍。 |
返回 | 描述 |
WorkspaceConfiguration | 完整配置或子集。 |
getWorkspaceFolder(uri: Uri): WorkspaceFolder | undefined
返回包含給定 uri 的 工作區資料夾。
- 當給定 uri 與任何工作區資料夾不匹配時返回
undefined
- 當給定 uri 本身是工作區資料夾時返回 輸入
引數 | 描述 |
---|---|
uri: Uri | 一個 uri。 |
返回 | 描述 |
WorkspaceFolder | undefined | 一個工作區資料夾或 |
openNotebookDocument(uri: Uri): Thenable<NotebookDocument>
開啟一個筆記本。如果此筆記本已 載入,則會提前返回。否則,筆記本將被載入,並觸發 onDidOpenNotebookDocument 事件。
注意,返回筆記本的生命週期由編輯器擁有,而不是由擴充套件擁有。這意味著 onDidCloseNotebookDocument 事件可能在任何時候發生。
注意,開啟筆記本不會顯示筆記本編輯器。此函式只返回一個筆記本文件,可以在筆記本編輯器中顯示,但也可以用於其他用途。
引數 | 描述 |
---|---|
uri: Uri | 要開啟的資源。 |
返回 | 描述 |
Thenable<NotebookDocument> | 一個解析為 筆記本 的 Promise |
openNotebookDocument(notebookType: string, content?: NotebookData): Thenable<NotebookDocument>
開啟一個未命名的筆記本。當文件要儲存時,編輯器將提示使用者輸入檔案路徑。
引數 | 描述 |
---|---|
notebookType: string | 應使用的筆記本型別。 |
content?: NotebookData | 筆記本的初始內容。 |
返回 | 描述 |
Thenable<NotebookDocument> | 一個解析為 筆記本 的 Promise。 |
openTextDocument(uri: Uri, options?: {encoding: string}): Thenable<TextDocument>
開啟一個文件。如果此文件已開啟,則會提前返回。否則,文件將被載入,並觸發 didOpen 事件。
file
方案:開啟磁碟上的檔案 (openTextDocument(Uri.file(path))
)。如果檔案不存在或無法載入,則會被拒絕。untitled
方案:開啟一個帶有相關路徑的空白未命名檔案 (openTextDocument(Uri.file(path).with({ scheme: 'untitled' }))
)。語言將從檔名派生。- 對於所有其他方案,將諮詢貢獻的 文字文件內容提供程式 和 檔案系統提供程式。
注意,返回文件的生命週期由編輯器擁有,而不是由擴充套件擁有。這意味著 onDidClose 事件可能在開啟它之後的任何時候發生。
引數 | 描述 |
---|---|
uri: Uri | 標識要開啟的資源。 |
options?: {encoding: string} | |
返回 | 描述 |
Thenable<TextDocument> | 一個解析為 文件 的 Promise。 |
openTextDocument(path: string, options?: {encoding: string}): Thenable<TextDocument>
openTextDocument(Uri.file(path))
的簡寫。
引數 | 描述 |
---|---|
path: string | 磁碟上檔案的路徑。 |
options?: {encoding: string} | |
返回 | 描述 |
Thenable<TextDocument> | 一個解析為 文件 的 Promise。 |
openTextDocument(options?: {content: string, encoding: string, language: string}): Thenable<TextDocument>
開啟一個未命名的文字文件。當文件要儲存時,編輯器將提示使用者輸入檔案路徑。options
引數允許指定文件的語言和/或內容。
引數 | 描述 |
---|---|
options?: {content: string, encoding: string, language: string} | 用於控制文件建立方式的選項。 |
返回 | 描述 |
Thenable<TextDocument> | 一個解析為 文件 的 Promise。 |
registerFileSystemProvider(scheme: string, provider: FileSystemProvider, options?: {isCaseSensitive: boolean, isReadonly: boolean | MarkdownString}): Disposable
為給定方案(例如 ftp
)註冊檔案系統提供程式。
每個方案只能有一個提供程式,當某個方案已被另一個提供程式佔用或已保留時,將丟擲錯誤。
引數 | 描述 |
---|---|
scheme: string | 提供程式註冊的 uri-方案。 |
provider: FileSystemProvider | 檔案系統提供程式。 |
options?: {isCaseSensitive: boolean, isReadonly: boolean | MarkdownString} | 關於提供程式的不可變元資料。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerNotebookSerializer(notebookType: string, serializer: NotebookSerializer, options?: NotebookDocumentContentOptions): Disposable
註冊一個 筆記本序列化器。
筆記本序列化器必須透過 notebooks
擴充套件點進行貢獻。開啟筆記本檔案時,編輯器將傳送 onNotebook:<notebookType>
啟用事件,擴充套件必須相應地註冊其序列化器。
引數 | 描述 |
---|---|
notebookType: string | 一個筆記本。 |
serializer: NotebookSerializer | 一個筆記本序列化器。 |
options?: NotebookDocumentContentOptions | 可選的上下文選項,定義筆記本的哪些部分應該持久化 |
返回 | 描述 |
Disposable | 一個 Disposable,在處理時登出此序列化器。 |
registerTaskProvider(type: string, provider: TaskProvider<Task>): Disposable
註冊一個任務提供程式。
- 已棄用 - 請改用
tasks
名稱空間中的相應函式
引數 | 描述 |
---|---|
type: string | 此提供程式註冊的任務種類型別。 |
provider: TaskProvider<Task> | 一個任務提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
registerTextDocumentContentProvider(scheme: string, provider: TextDocumentContentProvider): Disposable
註冊文字文件內容提供程式。
每個方案只能註冊一個提供程式。
引數 | 描述 |
---|---|
scheme: string | 要註冊的 uri 方案。 |
provider: TextDocumentContentProvider | 一個內容提供程式。 |
返回 | 描述 |
Disposable | 一個 Disposable,當被處置時,它會登出此提供程式。 |
save(uri: Uri): Thenable<Uri | undefined>
儲存由給定資源標識的編輯器,並返回結果資源,如果儲存不成功或取消,或者未找到具有給定資源的編輯器,則返回 undefined
。
注意,必須開啟具有所提供資源的編輯器才能儲存。
saveAll(includeUntitled?: boolean): Thenable<boolean>
儲存所有髒檔案。
引數 | 描述 |
---|---|
includeUntitled?: boolean | 同時儲存在此會話期間建立的檔案。 |
返回 | 描述 |
Thenable<boolean> | 一個 Thenable,當檔案儲存完成時解析。任何儲存失敗的檔案將返回 |
saveAs(uri: Uri): Thenable<Uri | undefined>
將由給定資源標識的編輯器儲存為使用者提供的新檔名,並返回結果資源,如果儲存不成功或取消,或者未找到具有給定資源的編輯器,則返回 undefined
。
注意,必須開啟具有所提供資源的編輯器才能另存為。
updateWorkspaceFolders(start: number, deleteCount: number, ...workspaceFoldersToAdd: Array<{name: string, uri: Uri}>): boolean
此方法在 vscode.workspace.workspaceFolders
陣列上用一組可選的 workspaceFoldersToAdd
替換從索引 start
開始的 deleteCount
個 工作區資料夾。此“拼接”行為可用於在一個操作中新增、刪除和更改工作區資料夾。
注意: 在某些情況下,呼叫此方法可能導致當前正在執行的擴充套件(包括呼叫此方法的擴充套件)被終止和重新啟動。例如,當新增、刪除或更改第一個工作區資料夾時,(已棄用)rootPath
屬性將更新為指向第一個工作區資料夾。另一個情況是從空工作區或單資料夾工作區過渡到多資料夾工作區(另請參閱:https://vscode.com.tw/docs/editor/workspaces)。
使用 onDidChangeWorkspaceFolders() 事件在工作區資料夾更新時收到通知。
示例: 在工作區資料夾末尾新增新的工作區資料夾
workspace.updateWorkspaceFolders(workspace.workspaceFolders ? workspace.workspaceFolders.length : 0, null, { uri: ...});
示例: 刪除第一個工作區資料夾
workspace.updateWorkspaceFolders(0, 1);
示例: 用新的工作區資料夾替換現有工作區資料夾
workspace.updateWorkspaceFolders(0, 1, { uri: ...});
刪除現有工作區資料夾並以不同名稱重新新增以重新命名該資料夾是有效的。
注意: 不建議在不等待 onDidChangeWorkspaceFolders() 觸發的情況下多次呼叫 updateWorkspaceFolders()。
AccessibilityInformation
控制螢幕閱讀器行為的可訪問性資訊。
屬性
當專案獲得焦點後,螢幕閱讀器將朗讀的標籤。
定義螢幕閱讀器如何與其互動的部件角色。只有在特殊情況下才應設定角色,例如當樹狀元素表現得像複選框時。如果未指定角色,編輯器將自動選擇適當的角色。有關 Aria 角色的更多資訊,請參閱此處:https://w3c.github.io/aria/#widget_roles
AuthenticationForceNewSessionOptions
當呼叫 authentication.getSession 並設定 forceNewSession
標誌時要使用的可選選項。
- 已棄用 - 請改用 AuthenticationGetSessionPresentationOptions。
AuthenticationForceNewSessionOptions: AuthenticationGetSessionPresentationOptions
AuthenticationGetSessionOptions
從 AuthenticationProvider 獲取 AuthenticationSession 時要使用的選項。
屬性
account?: AuthenticationSessionAccountInformation
要獲取會話的帳戶。此資訊將傳遞給身份驗證提供程式,用於建立正確的會話。
clearSessionPreference?: boolean
是否應清除現有會話首選項。
對於支援同時登入多個帳戶的身份驗證提供程式,當呼叫 getSession 時,將提示使用者選擇要使用的帳戶。此首選項將一直記住,直到使用此標誌呼叫 getSession。
注意:此首選項特定於擴充套件。因此,如果一個擴充套件呼叫 getSession,它不會影響另一個擴充套件呼叫 getSession 的會話首選項。此外,此首選項是為當前工作區和全域性設定的。這意味著新工作區將首先使用“全域性”值,然後當提供此標誌時,可以為該工作區設定一個新值。這也意味著如果新工作區設定此標誌,現有工作區不會丟失其首選項。
預設為 false。
createIfNone?: boolean | AuthenticationGetSessionPresentationOptions
如果沒有匹配的會話,是否應執行登入。
如果為 true,將顯示一個模式對話方塊,要求使用者登入。如果為 false,帳戶活動欄圖示上將顯示一個帶數字的徽章。選單下將新增一個用於登入的擴充套件條目。這允許靜默提示使用者登入。
如果提供了選項,也將看到對話方塊,但會提供額外的上下文。
如果存在匹配的會話但擴充套件尚未被授予訪問許可權,將其設定為 true 也會立即顯示一個模式對話方塊,而 false 將在帳戶圖示上新增一個帶數字的徽章。
預設為 false。
注意:不能將此選項與 silent 一起使用。
forceNewSession?: boolean | AuthenticationGetSessionPresentationOptions
即使已存在會話,是否應嘗試重新進行身份驗證。
如果為 true,將顯示一個模式對話方塊,要求使用者再次登入。這主要用於令牌需要重新生成因為丟失了某些授權的場景。
如果提供了選項,也將看到對話方塊,但會提供額外的上下文。
如果沒有現有會話且 forceNewSession 為 true,其行為將與 createIfNone 相同。
預設為 false。
是否應在“帳戶”選單中顯示登入指示。
如果為 false,使用者將在“帳戶”選單上看到一個徽章,其中包含一個用於擴充套件登入的選項。如果為 true,則不顯示任何指示。
預設為 false。
注意:不能將此選項與任何其他提示使用者的選項(例如 createIfNone)一起使用。
AuthenticationGetSessionPresentationOptions
當呼叫 authentication.getSession 並設定互動式選項 forceNewSession
和 createIfNone
時要使用的可選選項。
屬性
當請求重新身份驗證時,將向用戶顯示的可選訊息。提供有關請求使用者重新身份驗證的額外上下文可以幫助提高他們接受的可能性。
AuthenticationProvider
用於向服務執行身份驗證的提供程式。
事件
onDidChangeSessions: Event<AuthenticationProviderAuthenticationSessionsChangeEvent>
當會話陣列發生變化或會話內資料發生變化時觸發的 Event。
方法
createSession(scopes: readonly string[], options: AuthenticationProviderSessionOptions): Thenable<AuthenticationSession>
提示使用者登入。
如果登入成功,應觸發 onDidChangeSessions 事件。
如果登入失敗,應返回一個被拒絕的 Promise。
如果提供程式已指定不支援多個帳戶,則如果已存在與這些範圍匹配的會話,則不應呼叫此方法。
引數 | 描述 |
---|---|
scopes: readonly string[] | 應建立新會話的範圍(許可權)列表。 |
options: AuthenticationProviderSessionOptions | 建立會話的其他選項。 |
返回 | 描述 |
Thenable<AuthenticationSession> | 一個解析為身份驗證會話的 Thenable。 |
getSessions(scopes: readonly string[], options: AuthenticationProviderSessionOptions): Thenable<AuthenticationSession[]>
獲取會話列表。
引數 | 描述 |
---|---|
scopes: readonly string[] | 可選的範圍列表。如果提供,返回的會話應匹配這些許可權,否則應返回所有會話。 |
options: AuthenticationProviderSessionOptions | 獲取會話的其他選項。 |
返回 | 描述 |
Thenable<AuthenticationSession[]> | 一個解析為身份驗證會話陣列的 Thenable。 |
removeSession(sessionId: string): Thenable<void>
刪除與會話 ID 對應的會話。
如果刪除成功,應觸發 onDidChangeSessions 事件。
如果會話無法刪除,提供程式應拒絕並返回錯誤訊息。
引數 | 描述 |
---|---|
sessionId: string | 要刪除的會話的 ID。 |
返回 | 描述 |
Thenable<void> |
AuthenticationProviderAuthenticationSessionsChangeEvent
當 AuthenticationSession 被新增、刪除或更改時觸發的 Event。
屬性
added: readonly AuthenticationSession[]
changed: readonly AuthenticationSession[]
已更改的 AuthenticationProvider 的 AuthenticationSessions。當會話的資料(不包括 ID)更新時,會話會發生更改。例如,會話重新整理導致為會話設定新的訪問令牌。
removed: readonly AuthenticationSession[]
AuthenticationProviderInformation
有關 AuthenticationProvider 的基本資訊。
屬性
身份驗證提供程式的唯一識別符號。
身份驗證提供程式的可讀名稱。
AuthenticationProviderOptions
建立 AuthenticationProvider 的選項。
屬性
supportsMultipleAccounts?: boolean
此提供程式是否支援同時登入多個帳戶。如果未指定,則預設為 false。
AuthenticationProviderSessionOptions
屬性
account?: AuthenticationSessionAccountInformation
正在查詢的帳戶。如果傳入此引數,提供程式應嘗試返回僅與此帳戶相關的會話。
AuthenticationSession
表示當前登入使用者的會話。
屬性
訪問令牌。
account: AuthenticationSessionAccountInformation
與會話關聯的帳戶。
身份驗證會話的識別符號。
會話訪問令牌授予的許可權。可用範圍由 AuthenticationProvider 定義。
AuthenticationSessionAccountInformation
與 AuthenticationSession 關聯的帳戶資訊。
屬性
帳戶的唯一識別符號。
帳戶的可讀名稱。
AuthenticationSessionsChangeEvent
當 AuthenticationSession 被新增、刪除或更改時觸發的 Event。
屬性
provider: AuthenticationProviderInformation
其會話已更改的 AuthenticationProvider。
AutoClosingPair
描述當鍵入開始字串時自動插入結束字串的字串對。
屬性
當鍵入開始字串時將自動插入的結束字串。
notIn?: SyntaxTokenType[]
不應自動關閉對的標記集。
將觸發自動插入結束字串的字串。
BranchCoverage
包含 StatementCoverage 分支的覆蓋率資訊。
建構函式
new BranchCoverage(executed: number | boolean, location?: Range | Position, label?: string): BranchCoverage
引數 | 描述 |
---|---|
executed: number | boolean | 此分支執行的次數,如果確切計數未知,則為布林值表示是否執行。如果為零或 false,則此分支將被標記為未覆蓋。 |
location?: Range | Position | 分支位置。 |
label?: string | |
返回 | 描述 |
BranchCoverage |
屬性
此分支執行的次數,如果確切計數未知,則為布林值表示是否執行。如果為零或 false,則此分支將被標記為未覆蓋。
分支的標籤,例如在“${label} 分支未被採用”的上下文中。
分支位置。
Breakpoint
所有斷點型別的基類。
建構函式
new Breakpoint(enabled?: boolean, condition?: string, hitCondition?: string, logMessage?: string): Breakpoint
建立新斷點
引數 | 描述 |
---|---|
enabled?: boolean | 斷點是否啟用。 |
condition?: string | 條件斷點的表示式 |
hitCondition?: string | 控制忽略多少次斷點命中的表示式 |
logMessage?: string | 命中斷點時要顯示的日誌訊息 |
返回 | 描述 |
斷點 |
屬性
條件斷點的可選表示式。
斷點是否啟用。
控制忽略多少次斷點命中的可選表示式。
斷點的唯一 ID。
命中此斷點時記錄的可選訊息。大括號中的嵌入表示式由除錯介面卡進行插值。
BreakpointsChangeEvent
描述 斷點 集合變化的事件。
屬性
added: readonly Breakpoint[]
已新增的斷點。
changed: readonly Breakpoint[]
已更改的斷點。
removed: readonly Breakpoint[]
已刪除的斷點。
CallHierarchyIncomingCall
表示一個傳入呼叫,例如方法的呼叫者或建構函式。
建構函式
new CallHierarchyIncomingCall(item: CallHierarchyItem, fromRanges: Range[]): CallHierarchyIncomingCall
建立一個新的呼叫物件。
引數 | 描述 |
---|---|
item: CallHierarchyItem | 進行呼叫的項。 |
fromRanges: Range[] | 出現呼叫的範圍。 |
返回 | 描述 |
CallHierarchyIncomingCall |
屬性
from: CallHierarchyItem
進行呼叫的項。
fromRanges: Range[]
出現呼叫的範圍。這相對於 this.from 表示的呼叫者。
CallHierarchyItem
表示呼叫層次結構中的程式設計構造,如函式或建構函式。
建構函式
new CallHierarchyItem(kind: SymbolKind, name: string, detail: string, uri: Uri, range: Range, selectionRange: Range): CallHierarchyItem
建立一個新的呼叫層次結構項。
引數 | 描述 |
---|---|
kind: SymbolKind | |
name: string | |
detail: string | |
uri: Uri | |
range: Range | |
selectionRange: Range | |
返回 | 描述 |
CallHierarchyItem |
屬性
此項的更多詳細資訊,例如函式的簽名。
kind: SymbolKind
此項的型別。
此項的名稱。
range: Range
包含此符號的範圍,不包括前導/尾隨空白,但包括所有其他內容,例如註釋和程式碼。
selectionRange: Range
當選擇和顯示此符號時應選擇和顯示的範圍,例如函式的名稱。必須包含在 range 中。
tags?: readonly SymbolTag[]
此項的標籤。
uri: Uri
此項的資源識別符號。
CallHierarchyOutgoingCall
表示一個傳出呼叫,例如從方法呼叫 getter 或從建構函式呼叫方法等。
建構函式
new CallHierarchyOutgoingCall(item: CallHierarchyItem, fromRanges: Range[]): CallHierarchyOutgoingCall
建立一個新的呼叫物件。
引數 | 描述 |
---|---|
item: CallHierarchyItem | 正在呼叫的項 |
fromRanges: Range[] | 出現呼叫的範圍。 |
返回 | 描述 |
CallHierarchyOutgoingCall |
屬性
fromRanges: Range[]
呼叫此項的範圍。這是相對於呼叫者的範圍,例如傳遞給 provideCallHierarchyOutgoingCalls 的項,而不是 this.to。
被呼叫的項。
CallHierarchyProvider
呼叫層次結構提供程式介面描述了擴充套件與呼叫層次結構功能之間的約定,該功能允許瀏覽函式、方法、建構函式等的呼叫和呼叫者。
方法
prepareCallHierarchy(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<CallHierarchyItem | CallHierarchyItem[]>
透過返回由給定文件和位置表示的項來引導呼叫層次結構。此項將用作呼叫圖的入口。當給定位置沒有項時,提供程式應返回 undefined
或 null
。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
position: Position | 呼叫命令的位置。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<CallHierarchyItem | CallHierarchyItem[]> | 一個或多個呼叫層次結構項或解析為此類項的 thenable。可以透過返回 |
provideCallHierarchyIncomingCalls(item: CallHierarchyItem, token: CancellationToken): ProviderResult<CallHierarchyIncomingCall[]>
為項提供所有傳入呼叫,例如方法的所有呼叫者。在圖表術語中,這描述了呼叫圖內部的有向和帶註釋的邊,例如給定項是起始節點,結果是可以到達的節點。
引數 | 描述 |
---|---|
item: CallHierarchyItem | 應計算傳入呼叫的層次結構項。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<CallHierarchyIncomingCall[]> | 一組傳入呼叫或解析為此類呼叫的 thenable。可以透過返回 |
provideCallHierarchyOutgoingCalls(item: CallHierarchyItem, token: CancellationToken): ProviderResult<CallHierarchyOutgoingCall[]>
為項提供所有傳出呼叫,例如從給定項到函式、方法或建構函式的所有呼叫。在圖表術語中,這描述了呼叫圖內部的有向和帶註釋的邊,例如給定項是起始節點,結果是可以到達的節點。
引數 | 描述 |
---|---|
item: CallHierarchyItem | 應計算傳出呼叫的層次結構項。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<CallHierarchyOutgoingCall[]> | 一組傳出呼叫或解析為此類呼叫的 thenable。可以透過返回 |
CancellationError
應用於指示操作取消的錯誤型別。
此型別可用於響應 取消令牌 被取消或操作正在被該操作的執行者取消的情況。
建構函式
new CancellationError(): CancellationError
建立一個新的取消錯誤。
引數 | 描述 |
---|---|
返回 | 描述 |
CancellationError |
CancellationToken
取消令牌傳遞給非同步或長時間執行的操作,以請求取消,例如取消完成項請求,因為使用者繼續輸入。
要獲取 CancellationToken
例項,請使用 CancellationTokenSource。
屬性
isCancellationRequested: boolean
當令牌被取消時為 true
,否則為 false
。
onCancellationRequested: Event<any>
取消時觸發的 Event。
CancellationTokenSource
取消源建立並控制 取消令牌。
建構函式
new CancellationTokenSource(): CancellationTokenSource
引數 | 描述 |
---|---|
返回 | 描述 |
CancellationTokenSource |
屬性
token: CancellationToken
此源的取消令牌。
方法
發出令牌取消訊號。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
處置物件並釋放資源。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
CharacterPair
兩個字元的元組,例如一對括號。
CharacterPair: [string, string]
ChatContext
傳遞給參與者的額外上下文。
屬性
history: ReadonlyArray<ChatRequestTurn | ChatResponseTurn>
當前聊天會話中迄今為止的所有聊天訊息。目前,僅包含當前參與者的聊天訊息。
ChatErrorDetails
表示聊天請求的錯誤結果。
屬性
向用戶顯示的錯誤訊息。
如果設定為 true,響應將部分模糊。
ChatFollowup
參與者建議的後續問題。
屬性
預設情況下,後續操作會轉到相同的參與者/命令。但此屬性可以設定為呼叫不同的命令。
向用戶顯示的標題。如果未指定,將預設顯示提示。
預設情況下,後續操作會轉到相同的參與者/命令。但此屬性可以設定為透過 ID 呼叫不同的參與者。後續操作只能呼叫由同一擴充套件貢獻的參與者。
要傳送到聊天的訊息。
ChatFollowupProvider
每次請求後將被呼叫一次,以獲取建議的後續問題以顯示給使用者。使用者可以單擊後續問題以將其傳送到聊天。
方法
provideFollowups(result: ChatResult, context: ChatContext, token: CancellationToken): ProviderResult<ChatFollowup[]>
為給定結果提供後續問題。
引數 | 描述 |
---|---|
result: ChatResult | 此物件具有與參與者回撥返回的結果相同的屬性,包括 |
context: ChatContext | 傳遞給參與者的額外上下文。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<ChatFollowup[]> |
ChatLanguageModelToolReference
使用者手動將其請求附加到的工具的引用,無論是使用 #
語法內聯,還是透過回形針按鈕作為附件。
屬性
工具名稱。指 lm.tools 中列出的工具。
range?: [start: number, end: number]
引用在 prompt 中的起始和結束索引。如果未定義,則引用不屬於提示文字。
注意,索引考慮了前導 #
字元,這意味著它們可以用於按原樣修改提示。
ChatParticipant
聊天參與者可以透過使用者在聊天會話中使用 字首進行呼叫。當它被呼叫時,它處理聊天請求,並完全負責向用戶提供響應。ChatParticipant 是使用 chat.createChatParticipant 建立的。
事件
onDidReceiveFeedback: Event<ChatResultFeedback>
每當收到結果的反饋時(例如,當用戶對結果點贊或點踩時)觸發的事件。
傳遞的 result 保證具有與此聊天參與者的處理程式之前返回的結果相同的屬性。
屬性
followupProvider?: ChatFollowupProvider
此提供程式將在每個請求後呼叫一次,以檢索建議的後續問題。
iconPath?: IconPath
參與者在 UI 中顯示的圖示。
此參與者的唯一 ID。
requestHandler: ChatRequestHandler
此參與者的請求處理程式。
方法
處置此參與者並釋放資源。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
ChatParticipantToolToken
在處理聊天請求的上下文中呼叫工具時,可以傳遞給 lm.invokeTool 的令牌。
ChatParticipantToolToken: never
ChatPromptReference
使用者新增到其聊天請求中的值的引用。
屬性
此類引用的唯一識別符號。
此值的描述,可在 LLM 提示中使用。
range?: [start: number, end: number]
引用在 prompt 中的起始和結束索引。如果未定義,則引用不屬於提示文字。
注意,索引考慮了前導 #
字元,這意味著它們可以用於按原樣修改提示。
此引用的值。目前使用 string | Uri | Location
型別,但將來可能會擴充套件。
ChatRequest
對聊天參與者的請求。
屬性
為此請求選擇的 [ChatCommand 命令](#ChatCommand command) 的名稱。
model: LanguageModelChat
這是當前在 UI 中選擇的模型。擴充套件可以使用此模型,或者使用 lm.selectChatModels 選擇另一個模型。在請求生命週期結束後不要保留此模型。
使用者輸入的提示。
此請求中使用的引用的資訊儲存在 ChatRequest.references 中。
注意,參與者的 [ChatParticipant.name 名稱](#ChatParticipant.name name) 和 [ChatCommand.name 命令](#ChatCommand.name command) 不屬於提示。
references: readonly ChatPromptReference[]
提示中引用的引用及其值的列表。
注意,提示包含按原始方式編寫的引用,並且由參與者進一步修改提示,例如透過內聯引用值或建立到包含解析值的標題的連結。引用按其在提示中的範圍倒序排序。這意味著提示中的最後一個引用是此列表中的第一個。這簡化了提示的字串操作。
在處理聊天請求的上下文中呼叫工具時,可以傳遞給 lm.invokeTool 的令牌。這會將工具呼叫與聊天會話相關聯。
toolReferences: readonly ChatLanguageModelToolReference[]
使用者附加到其請求的工具列表。
當存在工具引用時,聊天參與者應使用 LanguageModelChatToolMode.Required 發出聊天請求,以強制語言模型為工具生成輸入。然後,參與者可以使用 lm.invokeTool 使用工具將其結果附加到使用者提示的請求。該工具可以為使用者的請求提供有用的額外上下文。
ChatRequestHandler
ChatRequestHandler: (request: ChatRequest, context: ChatContext, response: ChatResponseStream, token: CancellationToken) => ProviderResult<ChatResult | void>
ChatRequestTurn
表示聊天曆史中的使用者請求。
屬性
為此請求選擇的 [ChatCommand 命令](#ChatCommand command) 的名稱。
此請求定向到的聊天參與者的 ID。
使用者輸入的提示。
此請求中使用的引用的資訊儲存在 ChatRequestTurn.references 中。
注意,參與者的 [ChatParticipant.name 名稱](#ChatParticipant.name name) 和 [ChatCommand.name 命令](#ChatCommand.name command) 不屬於提示。
references: ChatPromptReference[]
此訊息中使用的引用。
toolReferences: readonly ChatLanguageModelToolReference[]
附加到此請求的工具列表。
ChatResponseAnchorPart
表示聊天響應的一部分,是一個錨點,渲染為指向目標的連結。
建構函式
new ChatResponseAnchorPart(value: Uri | Location, title?: string): ChatResponseAnchorPart
建立新的 ChatResponseAnchorPart。
引數 | 描述 |
---|---|
value: Uri | Location | URI 或位置。 |
title?: string | 與值一起渲染的可選標題。 |
返回 | 描述 |
ChatResponseAnchorPart |
屬性
與值一起渲染的可選標題。
此錨點的目標。
ChatResponseCommandButtonPart
表示聊天響應的一部分,是一個執行命令的按鈕。
建構函式
new ChatResponseCommandButtonPart(value: Command): ChatResponseCommandButtonPart
建立新的 ChatResponseCommandButtonPart。
引數 | 描述 |
---|---|
value: Command | 單擊按鈕時將執行的命令。 |
返回 | 描述 |
ChatResponseCommandButtonPart |
屬性
value: Command
單擊按鈕時將執行的命令。
ChatResponseFileTree
表示聊天響應中的檔案樹結構。
屬性
children?: ChatResponseFileTree[]
子檔案樹陣列(如果當前檔案樹是目錄)。
檔案或目錄的名稱。
ChatResponseFileTreePart
表示聊天響應中作為檔案樹的一部分。
建構函式
new ChatResponseFileTreePart(value: ChatResponseFileTree[], baseUri: Uri): ChatResponseFileTreePart
建立新的 ChatResponseFileTreePart。
引數 | 描述 |
---|---|
value: ChatResponseFileTree[] | 檔案樹資料。 |
baseUri: Uri | 此檔案樹所相對的基 URI。 |
返回 | 描述 |
ChatResponseFileTreePart |
屬性
baseUri: Uri
此檔案樹所相對的基 URI
value: ChatResponseFileTree[]
檔案樹資料。
ChatResponseMarkdownPart
表示聊天響應中格式化為 Markdown 的部分。
建構函式
new ChatResponseMarkdownPart(value: string | MarkdownString): ChatResponseMarkdownPart
建立新的 ChatResponseMarkdownPart。
引數 | 描述 |
---|---|
value: string | MarkdownString | Markdown 字串或應解釋為 Markdown 的字串。不支援 MarkdownString.isTrusted 的布林形式。 |
返回 | 描述 |
ChatResponseMarkdownPart |
屬性
value: MarkdownString
Markdown 字串或應解釋為 Markdown 的字串。
ChatResponsePart
表示不同的聊天響應型別。
ChatResponsePart: ChatResponseMarkdownPart | ChatResponseFileTreePart | ChatResponseAnchorPart | ChatResponseProgressPart | ChatResponseReferencePart | ChatResponseCommandButtonPart
ChatResponseProgressPart
表示聊天響應中進度訊息的部分。
建構函式
new ChatResponseProgressPart(value: string): ChatResponseProgressPart
建立一個新的 ChatResponseProgressPart。
引數 | 描述 |
---|---|
value: string | 一條進度訊息 |
返回 | 描述 |
ChatResponseProgressPart |
屬性
進度訊息
ChatResponseReferencePart
表示聊天響應中作為引用的一部分,與內容分開渲染。
建構函式
new ChatResponseReferencePart(value: Uri | Location, iconPath?: IconPath): ChatResponseReferencePart
建立新的 ChatResponseReferencePart。
引數 | 描述 |
---|---|
value: Uri | Location | URI 或位置 |
iconPath?: IconPath | UI 中顯示的引用圖示 |
返回 | 描述 |
ChatResponseReferencePart |
屬性
iconPath?: IconPath
引用的圖示。
引用目標。
ChatResponseStream
ChatResponseStream 是參與者將內容返回給聊天檢視的方式。它提供了幾種流式傳輸不同型別內容的方法,這些內容將在聊天檢視中以適當的方式渲染。參與者可以使用其要返回的內容型別的輔助方法,或者它可以例項化一個 ChatResponsePart 並使用通用的 ChatResponseStream.push 方法返回它。
方法
anchor(value: Uri | Location, title?: string): void
將錨點部分推送到此流。是 push(new ChatResponseAnchorPart(value, title))
的簡寫。錨點是對某種型別資源的內聯引用。
button(command: Command): void
將命令按鈕部分推送到此流。是 push(new ChatResponseCommandButtonPart(value, title))
的簡寫。
引數 | 描述 |
---|---|
command: Command | 單擊按鈕時將執行的命令。 |
返回 | 描述 |
void |
filetree(value: ChatResponseFileTree[], baseUri: Uri): void
將檔案樹部分推送到此流。是 push(new ChatResponseFileTreePart(value))
的簡寫。
引數 | 描述 |
---|---|
value: ChatResponseFileTree[] | 檔案樹資料。 |
baseUri: Uri | 此檔案樹所相對的基 URI。 |
返回 | 描述 |
void |
markdown(value: string | MarkdownString): void
將 Markdown 部分推送到此流。是 push(new ChatResponseMarkdownPart(value))
的簡寫。
引數 | 描述 |
---|---|
value: string | MarkdownString | Markdown 字串或應解釋為 Markdown 的字串。不支援 MarkdownString.isTrusted 的布林形式。 |
返回 | 描述 |
void |
將進度部分推送到此流。是 push(new ChatResponseProgressPart(value))
的簡寫。
引數 | 描述 |
---|---|
value: string | 一條進度訊息 |
返回 | 描述 |
void |
push(part: ChatResponsePart): void
將部分推送到此流。
引數 | 描述 |
---|---|
part: ChatResponsePart | 響應部分,渲染或元資料 |
返回 | 描述 |
void |
reference(value: Uri | Location, iconPath?: IconPath): void
將引用推送到此流。是 push(new ChatResponseReferencePart(value))
的簡寫。
注意,引用不會與響應內聯渲染。
ChatResponseTurn
表示聊天曆史中聊天參與者的響應。
屬性
此響應來自的命令名稱。
此響應來自的聊天參與者的 ID。
response: ReadonlyArray<ChatResponseMarkdownPart | ChatResponseFileTreePart | ChatResponseAnchorPart | ChatResponseCommandButtonPart>
從聊天參與者收到的內容。僅表示實際內容(非元資料)的流部分。
result: ChatResult
從聊天參與者收到的結果。
ChatResult
聊天請求的結果。
屬性
errorDetails?: ChatErrorDetails
如果請求導致錯誤,此屬性定義錯誤詳細資訊。
此結果的任意元資料。可以是任何內容,但必須是 JSON 可字串化的。
ChatResultFeedback
表示使用者對結果的反饋。
屬性
kind: ChatResultFeedbackKind
收到的反饋型別。
result: ChatResult
使用者正在提供反饋的 ChatResult。此物件具有與參與者回撥返回的結果相同的屬性,包括 metadata
,但不是相同的例項。
ChatResultFeedbackKind
表示收到的使用者反饋型別。
列舉成員
使用者將結果標記為無用。
使用者將結果標記為有用。
Clipboard
剪貼簿提供對系統剪貼簿的讀寫訪問。
方法
將當前剪貼簿內容讀取為文字。
引數 | 描述 |
---|---|
返回 | 描述 |
Thenable<string> | 一個解析為字串的 thenable。 |
writeText(value: string): Thenable<void>
將文字寫入剪貼簿。
引數 | 描述 |
---|---|
value: string | |
返回 | 描述 |
Thenable<void> | 一個在寫入發生時解析的 thenable。 |
CodeAction
建構函式
new CodeAction(title: string, kind?: CodeActionKind): CodeAction
引數 | 描述 |
---|---|
title: string | 程式碼操作的標題。 |
kind?: CodeActionKind | 程式碼操作的型別。 |
返回 | 描述 |
CodeAction |
屬性
command?: Command
此程式碼操作執行的 Command。
如果此命令丟擲異常,編輯器將在當前游標位置向用戶顯示異常訊息。
diagnostics?: Diagnostic[]
此程式碼操作解決的 Diagnostics。
標記程式碼操作當前無法應用。
引數 | 描述 |
---|---|
reason: string | 此程式碼操作當前被停用的可讀描述。 這顯示在程式碼操作 UI 中。 |
edit?: WorkspaceEdit
此程式碼操作執行的 工作區編輯。
將此標記為首選操作。首選操作由 自動修復
命令使用,並且可以透過按鍵繫結進行定位。
如果快速修復正確解決了底層錯誤,則應將其標記為首選。如果重構是採取行動的最合理選擇,則應將其標記為首選。
kind?: CodeActionKind
用於篩選程式碼操作。
此程式碼操作的簡短、易讀的標題。
CodeActionContext
包含有關執行程式碼操作的上下文的額外診斷資訊。
屬性
diagnostics: readonly Diagnostic[]
診斷陣列。
only: CodeActionKind
請求返回的操作型別。
不屬於此型別的操作會在透過燈泡圖示顯示之前被過濾掉。
triggerKind: CodeActionTriggerKind
請求程式碼操作的原因。
CodeActionKind
程式碼操作的種類。
種類是識別符號的分層列表,由.
分隔,例如"refactor.extract.function"
。
程式碼操作種類用於編輯器的UI元素,如重構上下文選單。使用者還可以透過editor.action.codeAction
命令觸發特定種類的程式碼操作。
靜態
Empty: CodeActionKind
空種類。
Notebook: CodeActionKind
所有適用於整個筆記本範圍的程式碼操作的基類。使用此類的CodeActionKind應始終以notebook.
開頭。
這要求為其建立新的CodeActions並透過擴充套件貢獻。現有的種類不能只新增新的notebook.
字首,因為其功能對於整個筆記本範圍是獨有的。
Notebook CodeActionKinds 可以按以下任一方式初始化(兩者都將導致 notebook.source.xyz
)
const newKind = CodeActionKind.Notebook.append(CodeActionKind.Source.append('xyz').value)
const newKind = CodeActionKind.Notebook.append('source.xyz')
示例種類/操作
notebook.source.organizeImports
(可能會將所有匯入移動到一個新的頂部單元格)notebook.source.normalizeVariableNames
(可能會將所有變數重新命名為標準化的命名格式)
QuickFix: CodeActionKind
快速修復操作的基類:quickfix
。
快速修復操作解決程式碼中的問題,並顯示在常規程式碼操作上下文選單中。
Refactor: CodeActionKind
重構操作的基類:refactor
重構操作顯示在重構上下文選單中。
RefactorExtract: CodeActionKind
重構提取操作的基類:refactor.extract
提取操作示例
- 提取方法
- 提取函式
- 提取變數
- 從類中提取介面
- ...
RefactorInline: CodeActionKind
重構內聯操作的基類:refactor.inline
內聯操作示例
- 行內函數
- 內聯變數
- 內聯常量
- ...
RefactorMove: CodeActionKind
重構移動操作的基類:refactor.move
移動操作示例
- 將函式移動到新檔案
- 在類之間移動屬性
- 將方法移動到基類
- ...
RefactorRewrite: CodeActionKind
重構重寫操作的基類:refactor.rewrite
重寫操作示例
- 將 JavaScript 函式轉換為類
- 新增或刪除引數
- 封裝欄位
- 將方法設為靜態
- ...
Source: CodeActionKind
源操作的基類:source
原始碼操作適用於整個檔案。它們必須明確請求,並且不會顯示在常規燈泡選單中。源操作可以使用editor.codeActionsOnSave
在儲存時執行,並且也顯示在source
上下文選單中。
SourceFixAll: CodeActionKind
自動修復源操作的基類:source.fixAll
。
“全部修復”操作會自動修復那些具有明確修復方案且無需使用者輸入的錯誤。它們不應抑制錯誤或執行不安全修復,例如生成新的型別或類。
SourceOrganizeImports: CodeActionKind
組織匯入源操作的基類:source.organizeImports
。
建構函式
new CodeActionKind(value: string): CodeActionKind
私有建構函式,使用靜態CodeActionKind.XYZ
從現有程式碼操作型別派生。
引數 | 描述 |
---|---|
value: string | 種類的值,例如 |
返回 | 描述 |
程式碼操作種類 |
屬性
種類的字串值,例如"refactor.extract.function"
。
方法
append(parts: string): CodeActionKind
透過向當前種類新增更具體的選擇器來建立新種類。
不修改當前種類。
引數 | 描述 |
---|---|
parts: string | |
返回 | 描述 |
程式碼操作種類 |
contains(other: CodeActionKind): boolean
檢查 `other` 是否為此 `CodeActionKind` 的子型別。
例如,型別"refactor.extract"
包含"refactor.extract"
和"refactor.extract.function"
,但不包含"unicorn.refactor.extract"
、"refactor.extractAll"
或refactor
。
引數 | 描述 |
---|---|
other: CodeActionKind | 要檢查的種類。 |
返回 | 描述 |
布林值 |
intersects(other: CodeActionKind): boolean
檢查此程式碼操作種類是否與 `other` 相交。
例如,型別"refactor.extract"
與refactor
、"refactor.extract"
和"refactor.extract.function"
相交,但不與"unicorn.refactor.extract"
或"refactor.extractAll"
相交。
引數 | 描述 |
---|---|
other: CodeActionKind | 要檢查的種類。 |
返回 | 描述 |
布林值 |
CodeActionProvider<T>
為程式碼提供上下文操作。程式碼操作通常用於修復問題或美化/重構程式碼。
程式碼操作以幾種不同的方式向用戶展示
方法
provideCodeActions(document: TextDocument, range: Range | Selection, context: CodeActionContext, token: CancellationToken): ProviderResult<Array<Command | T>>
獲取文件中給定範圍的程式碼操作。
僅返回與使用者在所請求範圍內相關的程式碼操作。同時請記住返回的程式碼操作在 UI 中的顯示方式。例如,燈泡小部件和“重構”命令會將返回的程式碼操作顯示為列表,因此請勿返回大量可能使使用者不知所措的程式碼操作。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
range: Range | Selection | 呼叫命令的選擇器或範圍。如果正在當前活動編輯器中請求操作,則這將始終是一個選擇。 |
context: CodeActionContext | 提供有關正在請求哪些程式碼操作的附加資訊。您可以使用此資訊檢視編輯器正在請求哪種特定型別的程式碼操作,以便返回更相關的操作並避免返回編輯器將丟棄的不相關程式碼操作。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<Array<Command | T>> | 程式碼運算元組,例如快速修復或重構。可以透過返回 出於歷史原因,我們也支援返回 |
resolveCodeAction(codeAction: T, token: CancellationToken): ProviderResult<T>
給定一個程式碼操作,填寫其編輯屬性。對所有其他屬性(如標題)的更改將被忽略。已具有編輯的程式碼操作將不會被解析。
注意:返回命令而不是程式碼操作的程式碼操作提供程式無法成功實現此函式。返回命令已被棄用,應改為返回程式碼操作。
引數 | 描述 |
---|---|
codeAction: T | 程式碼操作。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T> | 已解析的程式碼操作或解析為此的 thenable。可以返回給定的 |
CodeActionProviderMetadata
有關CodeActionProvider提供的程式碼操作型別的元資料。
屬性
documentation?: ReadonlyArray<{command: Command, kind: CodeActionKind}>
一類程式碼操作的靜態文件。
在以下兩種情況下,提供程式的文件會顯示在程式碼操作選單中:
編輯器請求了
kind
型別的程式碼操作。在這種情況下,編輯器將顯示與請求的程式碼操作型別最匹配的文件。例如,如果提供程式同時具有Refactor
和RefactorExtract
的文件,當用戶請求RefactorExtract
的程式碼操作時,編輯器將使用RefactorExtract
的文件而不是Refactor
的文件。提供者返回任何
kind
型別的程式碼操作。
每個提供程式最多顯示一個文件條目。
providedCodeActionKinds?: readonly CodeActionKind[]
CodeActionProvider可能返回的CodeActionKinds列表。
此列表用於確定是否應呼叫給定的CodeActionProvider
。為避免不必要的計算,每個CodeActionProvider
都應使用providedCodeActionKinds
。種類列表可以是通用的,例如[CodeActionKind.Refactor]
,也可以列出所有提供的種類,例如[CodeActionKind.Refactor.Extract.append('function'), CodeActionKind.Refactor.Extract.append('constant'), ...]
。
CodeActionTriggerKind
請求程式碼操作的原因。
列舉成員
程式碼操作是由使用者或擴充套件程式明確請求的。
程式碼操作是自動請求的。
這通常發生在檔案中的當前選擇發生變化時,但也可以在檔案內容發生變化時觸發。
CodeLens
建構函式
new CodeLens(range: Range, command?: Command): CodeLens
屬性
command?: Command
此程式碼透鏡表示的命令。
當有命令關聯時為true
。
range: Range
此程式碼透鏡有效的範圍。應只跨越一行。
CodeLensProvider<T>
程式碼透鏡提供程式向源文字新增命令。命令將作為專用水平線顯示在源文字之間。
事件
onDidChangeCodeLenses?: Event<void>
一個可選事件,用於指示此提供程式中的程式碼透鏡已更改。
方法
provideCodeLenses(document: TextDocument, token: CancellationToken): ProviderResult<T[]>
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T[]> | 程式碼透鏡陣列,或解析為程式碼透鏡陣列的 thenable。可以透過返回 |
resolveCodeLens(codeLens: T, token: CancellationToken): ProviderResult<T>
此函式將為每個可見的程式碼透鏡呼叫,通常在滾動和呼叫計算透鏡之後。
引數 | 描述 |
---|---|
codeLens: T | 必須解析的程式碼透鏡。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T> | 給定的已解析程式碼透鏡或解析為此的 thenable。可以返回給定的 |
Color
表示 RGBA 空間中的顏色。
建構函式
new Color(red: number, green: number, blue: number, alpha: number): Color
建立一個新的顏色例項。
引數 | 描述 |
---|---|
red: number | 紅色分量。 |
green: number | 綠色分量。 |
blue: number | 藍色分量。 |
alpha: number | Alpha 分量。 |
返回 | 描述 |
顏色 |
屬性
此顏色的 alpha 分量,範圍為[0-1]
。
此顏色的藍色分量,範圍為[0-1]
。
此顏色的綠色分量,範圍為[0-1]
。
此顏色的紅色分量,範圍為[0-1]
。
ColorInformation
表示文件中的顏色範圍。
建構函式
new ColorInformation(range: Range, color: Color): ColorInformation
屬性
color: Color
此顏色範圍的實際顏色值。
range: Range
此顏色在文件中出現的範圍。
ColorPresentation
顏色呈現物件描述瞭如何將顏色表示為文字,以及從原始碼引用它需要進行哪些編輯。
對於某些語言,一種顏色可以有多種表示形式,例如 css 可以用常量 Red
、十六進位制值 #ff0000
或 rgba 和 hsla 形式表示紅色。在 csharp 中,適用其他表示形式,例如 System.Drawing.Color.Red
。
建構函式
new ColorPresentation(label: string): ColorPresentation
建立一個新的顏色表示。
引數 | 描述 |
---|---|
label: string | 此顏色表示的標籤。 |
返回 | 描述 |
顏色呈現 |
屬性
additionalTextEdits?: TextEdit[]
此顏色表示的標籤。它將顯示在顏色選擇器標題上。預設情況下,這也是選擇此顏色表示時插入的文字。
textEdit?: TextEdit
ColorTheme
表示顏色主題。
屬性
kind: ColorThemeKind
此顏色主題的種類:淺色、深色、高對比度深色和高對比度淺色。
ColorThemeKind
表示顏色主題種類。
列舉成員
淺色主題。
深色主題。
深色高對比度主題。
淺色高對比度主題。
Command
表示對命令的引用。提供一個將在 UI 中表示命令的標題,以及可選的引數陣列,這些引數將在呼叫時傳遞給命令處理函式。
屬性
呼叫命令處理程式時應使用的引數。
實際命令處理程式的識別符號。
命令的標題,例如save
。
命令的工具提示,當在 UI 中表示時。
Comment
註釋顯示在編輯器或註釋面板中,具體取決於其提供方式。
屬性
author: CommentAuthorInformation
評論的作者資訊
body: string | MarkdownString
人類可讀的評論正文
註釋的上下文值。這可用於貢獻註釋特定的操作。例如,給註釋一個上下文值editable
。當使用menus
擴充套件點向comments/comment/title
貢獻操作時,您可以在when
表示式中為鍵comment
指定上下文值,例如comment == editable
。
"contributes": {
"menus": {
"comments/comment/title": [
{
"command": "extension.deleteComment",
"when": "comment == editable"
}
]
}
}
這將僅顯示contextValue
為editable
的評論的extension.deleteComment
操作。
可選標籤,描述註釋。如果存在,標籤將顯示在作者姓名旁邊。
mode: CommentMode
評論的評論模式
reactions?: CommentReaction[]
評論的可選反應
將在評論中顯示的可選時間戳。日期將根據使用者的區域設定和偏好進行格式化。
CommentAuthorInformation
評論的作者資訊
屬性
iconPath?: Uri
作者的可選圖示路徑
評論作者的顯示名稱
CommentController
評論控制器能夠為編輯器提供評論支援,併為使用者提供與評論互動的各種方式。
屬性
commentingRangeProvider?: CommentingRangeProvider
可選的評論範圍提供程式。為任何給定資源 URI 提供支援評論的範圍列表。
如果未提供,使用者將無法發表任何評論。
此評論控制器的 ID。
此評論控制器的易讀標籤。
options?: CommentOptions
評論控制器選項
reactionHandler?: (comment: Comment, reaction: CommentReaction) => Thenable<void>
用於建立和刪除評論上的反應的可選反應處理程式。
引數 | 描述 |
---|---|
comment: Comment | |
reaction: CommentReaction | |
返回 | 描述 |
Thenable<void> |
方法
createCommentThread(uri: Uri, range: Range, comments: readonly Comment[]): CommentThread
建立評論執行緒。評論執行緒建立後將顯示在可見文字編輯器(如果資源匹配)和評論面板中。
銷燬此評論控制器。
一旦銷燬,此評論控制器建立的所有評論執行緒也將從編輯器和評論面板中移除。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
CommentingRangeProvider
評論控制器的評論範圍提供程式。
方法
provideCommentingRanges(document: TextDocument, token: CancellationToken): ProviderResult<Range[] | CommentingRanges>
為給定文件提供允許建立新評論執行緒的範圍列表,如果不支援則為 null。
引數 | 描述 |
---|---|
document: TextDocument | |
token: CancellationToken | |
返回 | 描述 |
ProviderResult<Range[] | CommentingRanges> |
CommentingRanges
CommentingRangeProvider 允許評論的範圍。
屬性
允許在沒有特定範圍的檔案中添加註釋。
ranges?: Range[]
允許建立新評論執行緒的範圍。
CommentMode
評論的評論模式
列舉成員
顯示評論編輯器
顯示評論的預覽
CommentOptions
屬性
當評論輸入框獲得焦點時,可選的字串作為佔位符顯示。
當註釋輸入框摺疊時,可選的字串顯示在註釋輸入框上。
CommentReaction
評論的反應
屬性
評論作者是否對此反應作出反應
對此反應作出反應的使用者數量
iconPath: string | Uri
UI 中顯示的反應圖示。
反應的人類可讀標籤
CommentReply
為註冊在comments/commentThread/context
中的操作提供的命令引數。
屬性
評論編輯器中的值
thread: CommentThread
活動的評論執行緒
CommentRule
描述語言的註釋工作方式。
屬性
blockComment?: CharacterPair
塊註釋字元對,例如/* block comment */
行註釋標記,例如 // this is a comment
CommentThread
一組評論,代表文件中特定範圍的對話。
屬性
canReply: boolean | CommentAuthorInformation
執行緒是否支援回覆。預設為 true。
collapsibleState: CommentThreadCollapsibleState
開啟文件時執行緒應摺疊還是展開。預設為摺疊。
comments: readonly Comment[]
執行緒的有序評論。
評論執行緒的上下文值。這可用於貢獻執行緒特定的操作。例如,給評論執行緒一個上下文值editable
。當使用menus
擴充套件點向comments/commentThread/title
貢獻操作時,您可以在when
表示式中為鍵commentThread
指定上下文值,例如commentThread == editable
。
"contributes": {
"menus": {
"comments/commentThread/title": [
{
"command": "extension.deleteCommentThread",
"when": "commentThread == editable"
}
]
}
}
這將僅顯示contextValue
為editable
的評論執行緒的extension.deleteCommentThread
操作。
描述評論執行緒的可選人類可讀標籤
range: Range
評論執行緒在文件中的範圍。執行緒圖示將顯示在範圍的最後一行。如果設定為 undefined,則評論將與檔案關聯,而不是特定範圍。
state?: CommentThreadState
評論執行緒的可選狀態,可能會影響評論的顯示方式。
uri: Uri
建立執行緒的文件的 URI。
方法
銷燬此評論執行緒。
一旦銷燬,此評論執行緒將適當地從可見編輯器和評論面板中移除。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
CommentThreadCollapsibleState
評論執行緒的可摺疊狀態
列舉成員
確定專案是否摺疊
確定專案是否展開
CommentThreadState
評論執行緒的狀態。
列舉成員
未解決的執行緒狀態
已解決的執行緒狀態
CompletionContext
包含有關觸發完成提供程式的上下文的附加資訊。
屬性
觸發完成項提供程式的字元。
如果提供程式不是由字元觸發的,則為undefined
。
當完成提供程式被觸發時,觸發字元已在文件中。
triggerKind: CompletionTriggerKind
完成是如何觸發的。
CompletionItem
完成項表示建議完成正在輸入的文字的文字片段。
只需從標籤建立完成項即可。在這種情況下,完成項將使用給定的標籤或插入文字替換游標處的單詞。否則使用給定的編輯。
在編輯器中選擇一個完成項時,其定義或合成的文字編輯將應用於所有游標/選擇,而附加文字編輯將按提供的方式應用。
另請參閱
建構函式
new CompletionItem(label: string | CompletionItemLabel, kind?: CompletionItemKind): CompletionItem
建立一個新的完成項。
完成項至少必須有一個標籤,該標籤將用作插入文字以及排序和過濾。
引數 | 描述 |
---|---|
label: string | CompletionItemLabel | 完成的標籤。 |
kind?: CompletionItemKind | 完成的種類。 |
返回 | 描述 |
完成項 |
屬性
additionalTextEdits?: TextEdit[]
command?: Command
一個可選的命令,在此完成項插入後執行。注意,對當前文件的額外修改應使用additionalTextEdits屬性描述。
當此補全項處於活動狀態時,按下可選的字元集將首先接受它,然後輸入該字元。注意,所有提交字元的length
都應為1,多餘的字元將被忽略。
人類可讀的字串,包含此項的附加資訊,如型別或符號資訊。
documentation?: string | MarkdownString
表示文件註釋的人類可讀字串。
insertText?: string | SnippetString
在選擇此完成項時應插入文件的字串或片段。如果為falsy
,則使用標籤。
保留insertText的空白。預設情況下,編輯器會調整新行的前導空白,使其與接受專案的行的縮排匹配 - 將此設定為true
將阻止此操作。
kind?: CompletionItemKind
此完成項的種類。編輯器根據種類選擇圖示。
label: string | CompletionItemLabel
此完成項的標籤。預設情況下,這也是選擇此完成項時插入的文字。
顯示時選擇此項。注意,只能選擇一個完成項,並且編輯器會決定選擇哪個項。規則是,那些最匹配的項中的第一個項被選中。
range?: Range | {inserting: Range, replacing: Range}
tags?: readonly CompletionItemTag[]
此完成項的標籤。
textEdit?: TextEdit
- 已廢棄 - 請改用
CompletionItem.insertText
和CompletionItem.range
。
選擇此完成項時應用於文件的編輯。如果提供了編輯,則忽略insertText的值。
編輯的範圍必須是單行,並且與請求完成的行在同一行。
CompletionItemKind
完成項種類。
列舉成員
Text
完成項種類。
Method
完成項種類。
Function
完成項種類。
Constructor
完成項種類。
Field
完成項種類。
Variable
完成項種類。
Class
完成項種類。
Interface
完成項種類。
Module
完成項種類。
Property
完成項種類。
Unit
完成項種類。
Value
完成項種類。
Enum
完成項種類。
Keyword
完成項種類。
Snippet
完成項種類。
Color
完成項種類。
File
完成項種類。
Reference
完成項種類。
Folder
完成項種類。
EnumMember
完成項種類。
Constant
完成項種類。
Struct
完成項種類。
Event
完成項種類。
Operator
完成項種類。
TypeParameter
完成項種類。
User
完成項種類。
Issue
完成項種類。
CompletionItemLabel
完成項的結構化標籤。
屬性
一個可選的字串,顯示在CompletionItemLabel.detail之後,顯示得不那麼突出。應用於完全限定名或檔案路徑。
一個可選字串,在label後直接顯示,不帶任何空格,顯示得不那麼突出。應用於函式簽名或型別註解。
此完成項的標籤。
預設情況下,這也是選擇此完成項時插入的文字。
CompletionItemProvider<T>
完成項提供程式介面定義了擴充套件和IntelliSense之間的約定。
提供程式可以透過實現resolveCompletionItem函式來延遲detail和documentation屬性的計算。但是,用於初始排序和過濾的屬性(如sortText
、filterText
、insertText
和range
)在解析期間不得更改。
提供程式會根據使用者手勢明確請求或(取決於配置)在鍵入單詞或觸發字元時隱式請求完成。
方法
provideCompletionItems(document: TextDocument, position: Position, token: CancellationToken, context: CompletionContext): ProviderResult<CompletionList<T> | T[]>
為給定位置和文件提供完成項。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
position: Position | 呼叫命令的位置。 |
token: CancellationToken | 取消令牌。 |
context: CompletionContext | 完成是如何觸發的。 |
返回 | 描述 |
ProviderResult<CompletionList<T> | T[]> | 一個完成項陣列、一個完成列表,或解析為其中之一的 thenable。可以透過返回 |
resolveCompletionItem(item: T, token: CancellationToken): ProviderResult<T>
編輯器只會解析一次完成項。
注意,此函式在完成項已在 UI 中顯示時或在已選擇插入項時呼叫。因此,不能更改任何會改變顯示(標籤、排序、過濾等)或(主要)插入行為(插入文字)的屬性。
此函式可能會填充 additionalTextEdits。但是,這意味著項可能會在解析完成之前插入,在這種情況下,編輯器將盡力應用這些附加的文字編輯。
引數 | 描述 |
---|---|
item: T | UI 中當前處於活動狀態的補全項。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T> | 已解析的補全項或解析為該項的 Thenable。返回給定的 |
CompletionItemTag
補全項標籤是用於調整補全項渲染的額外註釋。
列舉成員
將補全渲染為已過時,通常使用刪除線。
CompletionList<T>
表示要在編輯器中呈現的 補全項 集合。
建構函式
new CompletionList<T extends CompletionItem>(items?: T[], isIncomplete?: boolean): CompletionList<T>
建立一個新的補全列表。
引數 | 描述 |
---|---|
items?: T[] | 補全項。 |
isIncomplete?: boolean | 列表不完整。 |
返回 | 描述 |
CompletionList<T> |
屬性
此列表不完整。進一步輸入應導致重新計算此列表。
補全項。
CompletionTriggerKind
觸發 補全提供程式 的方式
列舉成員
補全正常觸發。
補全由觸發字元觸發。
TriggerForIncompleteCompletions: 2
由於當前補全列表不完整,補全被重新觸發
ConfigurationChangeEvent
描述配置更改的事件
方法
affectsConfiguration(section: string, scope?: ConfigurationScope): boolean
檢查給定部分是否已更改。如果提供了作用域,則檢查給定作用域下的資源部分是否已更改。
引數 | 描述 |
---|---|
section: string | 配置名稱,支援點式名稱。 |
scope?: ConfigurationScope | 要檢查的作用域。 |
返回 | 描述 |
布林值 | 如果給定部分已更改,則為 |
ConfigurationScope
可用的配置作用域
- 表示資源的 Uri
- 表示開啟的文字文件的 TextDocument
- 表示工作區資料夾的 WorkspaceFolder
- 包含以下內容的物件
uri
:文字文件的可選 UrilanguageId
:文字文件的語言識別符號
ConfigurationScope: Uri | TextDocument | WorkspaceFolder | {languageId: string, uri: Uri}
ConfigurationTarget
配置目標
列舉成員
全域性配置
工作區配置
工作區資料夾配置
CustomDocument
表示 CustomEditorProvider 使用的自定義文件。
自定義文件僅在給定的 CustomEditorProvider
中使用。CustomDocument
的生命週期由編輯器管理。當 CustomDocument
沒有更多引用時,它將被釋放。
屬性
uri: Uri
此文件關聯的 uri。
方法
釋放自定義文件。
當給定 CustomDocument
沒有更多引用時(例如,當與文件關聯的所有編輯器都已關閉時),編輯器會呼叫此函式。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
CustomDocumentBackup
A CustomDocument 的備份。
屬性
備份的唯一識別符號。
當從備份開啟自定義編輯器時,此 ID 將傳遞迴擴充套件中的 openCustomDocument
。
方法
刪除當前備份。
噹噹前備份不再需要時(例如,建立新備份或儲存檔案時),編輯器會呼叫此函式。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
CustomDocumentBackupContext
用於實現 CustomDocumentBackup 的附加資訊。
屬性
destination: Uri
寫入新備份的建議檔案位置。
請注意,您的擴充套件程式可以忽略此項並使用自己的備份策略。
如果編輯器是來自當前工作區的資源,destination
將指向 ExtensionContext.storagePath
內的檔案。destination
的父資料夾可能不存在,因此請確保在將備份寫入此位置之前建立它。
CustomDocumentContentChangeEvent<T>
由擴充套件程式觸發的事件,用於向編輯器傳送 CustomDocument 內容已更改的訊號。
屬性
更改所針對的文件。
CustomDocumentEditEvent<T>
由擴充套件程式觸發的事件,用於向編輯器傳送 CustomDocument 已發生編輯的訊號。
屬性
編輯所針對的文件。
描述編輯的顯示名稱。
這將在 UI 中顯示給使用者,用於撤消/重做操作。
方法
重做編輯操作。
當用戶重做此編輯時,編輯器會呼叫此函式。要實現 redo
,您的擴充套件程式應將文件和編輯器恢復到此編輯透過 onDidChangeCustomDocument
新增到編輯器的內部編輯堆疊之後的狀態。
引數 | 描述 |
---|---|
返回 | 描述 |
void | Thenable<void> |
撤消編輯操作。
當用戶撤消此編輯時,編輯器會呼叫此函式。要實現 undo
,您的擴充套件程式應將文件和編輯器恢復到此編輯透過 onDidChangeCustomDocument
新增到編輯器的內部編輯堆疊之前的狀態。
引數 | 描述 |
---|---|
返回 | 描述 |
void | Thenable<void> |
CustomDocumentOpenContext
有關開啟自定義文件的附加資訊。
屬性
用於從備份恢復文件的 ID,如果沒有備份則為 undefined
。
如果提供了此項,您的擴充套件程式應從備份恢復編輯器,而不是從使用者工作區中的檔案讀取。
untitledDocumentData: Uint8Array
如果 URI 是一個無標題檔案,則會填充該檔案的位元組資料
如果提供了此項,您的擴充套件程式應利用此位元組資料,而不是對傳入的 URI 執行 fs API
CustomEditorProvider<T>
用於使用自定義文件模型的自定義可編輯編輯器的提供程式。
自定義編輯器使用 CustomDocument 作為其文件模型,而不是 TextDocument。這使擴充套件程式可以完全控制編輯、儲存和備份等操作。
在處理二進位制檔案或更復雜的場景時,您應該使用這種型別的自定義編輯器。對於簡單的基於文字的文件,請改用 CustomTextEditorProvider。
事件
onDidChangeCustomDocument: Event<CustomDocumentEditEvent<T>> | Event<CustomDocumentContentChangeEvent<T>>
訊號:自定義編輯器內部發生了編輯。
每當自定義編輯器中發生編輯時,您的擴充套件程式都必須觸發此事件。編輯可以是任何操作,從更改一些文字到裁剪影像,再到重新排序列表。您的擴充套件程式可以自由定義什麼是編輯以及每個編輯上儲存了哪些資料。
觸發 onDidChange
會導致編輯器被標記為髒。當用戶儲存或還原檔案時,此狀態將被清除。
支援撤消/重做的編輯器必須在每次編輯發生時觸發 CustomDocumentEditEvent
。這允許使用者使用編輯器的標準鍵盤快捷鍵撤消和重做編輯。如果使用者撤消所有編輯到上次儲存的狀態,編輯器還將把編輯器標記為不再髒。
支援編輯但無法使用編輯器標準撤消/重做機制的編輯器必須觸發 CustomDocumentContentChangeEvent
。使用者清除不支援撤消/重做的編輯器的髒狀態的唯一方法是 save
或 revert
檔案。
編輯器應該只觸發 CustomDocumentEditEvent
事件,或者只觸發 CustomDocumentContentChangeEvent
事件。
方法
backupCustomDocument(document: T, context: CustomDocumentBackupContext, cancellation: CancellationToken): Thenable<CustomDocumentBackup>
備份髒的自定義文件。
備份用於熱退出和防止資料丟失。您的 backup
方法應以其當前狀態持久化資源,即應用編輯後的狀態。最常見的情況是,這意味著將資源儲存到 ExtensionContext.storagePath
中的磁碟。當編輯器重新載入併為資源開啟自定義編輯器時,您的擴充套件程式應首先檢查資源是否存在任何備份。如果存在備份,您的擴充套件程式應從備份而不是工作區中的資源載入檔案內容。
backup
在使用者停止編輯文件後大約一秒鐘觸發。如果使用者快速編輯文件,則在編輯停止之前不會呼叫 backup
。
當啟用 auto save
時,不會呼叫 backup
(因為自動儲存已持久化資源)。
引數 | 描述 |
---|---|
document: T | 要備份的文件。 |
context: CustomDocumentBackupContext | 可用於備份文件的資訊。 |
cancellation: CancellationToken | 表示當前備份由於新備份即將到來而被取消的令牌。您的擴充套件程式如何響應取消取決於您。例如,如果您的擴充套件程式正在一個耗時操作中備份一個大檔案,您的擴充套件程式可能會決定完成正在進行的備份而不是取消它,以確保編輯器有一些有效的備份。 |
返回 | 描述 |
Thenable<CustomDocumentBackup> |
openCustomDocument(uri: Uri, openContext: CustomDocumentOpenContext, token: CancellationToken): T | Thenable<T>
為給定資源建立一個新文件。
當第一次開啟給定資源的編輯器時,會呼叫 openCustomDocument
。然後,開啟的文件將傳遞給 resolveCustomEditor
,以便向用戶顯示編輯器。
如果使用者打開了額外的編輯器,則會重新使用已開啟的 CustomDocument
。當給定資源的所有編輯器都關閉時,CustomDocument
將被釋放。此時開啟編輯器將再次觸發 openCustomDocument
呼叫。
引數 | 描述 |
---|---|
uri: Uri | 要開啟的文件的 Uri。 |
openContext: CustomDocumentOpenContext | 有關開啟自定義文件的附加資訊。 |
token: CancellationToken | 一個取消令牌,指示不再需要結果。 |
返回 | 描述 |
T | Thenable<T> | 自定義文件。 |
resolveCustomEditor(document: T, webviewPanel: WebviewPanel, token: CancellationToken): void | Thenable<void>
解析給定資源的自定義編輯器。
每當使用者為此 CustomEditorProvider
開啟新編輯器時,都會呼叫此函式。
引數 | 描述 |
---|---|
document: T | 正在解析的資源的文件。 |
webviewPanel: WebviewPanel | 用於顯示此資源的編輯器 UI 的 webview 面板。 在解析過程中,提供程式必須填充內容 webview 面板的初始 html,並連線它感興趣的所有事件監聽器。提供程式還可以持有 |
token: CancellationToken | 一個取消令牌,指示不再需要結果。 |
返回 | 描述 |
void | Thenable<void> | 可選的 thenable,指示自定義編輯器已解析。 |
revertCustomDocument(document: T, cancellation: CancellationToken): Thenable<void>
將自定義文件恢復到上次儲存的狀態。
當用戶在自定義編輯器中觸發 File: Revert File
時,編輯器會呼叫此方法。(請注意,這僅用於編輯器的 File: Revert File
命令,而不用於檔案的 git revert
)。
要實現 revert
,實現者必須確保 document
的所有編輯器例項(webview)都以相同的狀態顯示文件,即儲存狀態。這通常意味著從工作區重新載入檔案。
引數 | 描述 |
---|---|
document: T | 要恢復的文件。 |
cancellation: CancellationToken | 指示不再需要恢復的令牌。 |
返回 | 描述 |
Thenable<void> | 表示更改已完成的 Thenable。 |
saveCustomDocument(document: T, cancellation: CancellationToken): Thenable<void>
儲存自定義文件。
當用戶儲存自定義編輯器時,編輯器會呼叫此方法。這可能發生在使用者在自定義編輯器處於活動狀態時觸發儲存、透過 save all
等命令,或者如果啟用自動儲存。
要實現 save
,實現者必須持久化自定義編輯器。這通常意味著將自定義文件的檔案資料寫入磁碟。save
完成後,任何關聯的編輯器例項將不再標記為髒。
引數 | 描述 |
---|---|
document: T | 要儲存的文件。 |
cancellation: CancellationToken | 指示不再需要儲存的令牌(例如,如果觸發了另一個儲存)。 |
返回 | 描述 |
Thenable<void> | 表示儲存已完成的 Thenable。 |
saveCustomDocumentAs(document: T, destination: Uri, cancellation: CancellationToken): Thenable<void>
將自定義文件儲存到其他位置。
當用戶在自定義編輯器上觸發“另存為”時,編輯器會呼叫此方法。實現者必須將自定義編輯器持久化到 destination
。
當用戶接受另存為時,當前編輯器將被替換為新儲存檔案的非髒編輯器。
引數 | 描述 |
---|---|
document: T | 要儲存的文件。 |
destination: Uri | 儲存到位置。 |
cancellation: CancellationToken | 指示不再需要儲存的令牌。 |
返回 | 描述 |
Thenable<void> | 表示儲存已完成的 Thenable。 |
CustomExecution
用於將擴充套件回撥作為任務執行的類。
建構函式
new CustomExecution(callback: (resolvedDefinition: TaskDefinition) => Thenable<Pseudoterminal>): CustomExecution
構造一個 CustomExecution 任務物件。回撥將在任務執行時執行,屆時擴充套件應返回它將“執行”的 Pseudoterminal。任務應等待直到呼叫 Pseudoterminal.open 才進行進一步執行。任務取消應使用 Pseudoterminal.close 處理。任務完成後觸發 Pseudoterminal.onDidClose。
引數 | 描述 |
---|---|
callback: (resolvedDefinition: TaskDefinition) => Thenable<Pseudoterminal> | 當用戶啟動任務時將呼叫的回撥。任務定義中所有 ${} 樣式的變數都將解析並作為 |
返回 | 描述 |
CustomExecution |
CustomReadonlyEditorProvider<T>
用於使用自定義文件模型的只讀自定義編輯器的提供程式。
自定義編輯器使用 CustomDocument 作為其文件模型,而不是 TextDocument。
在處理二進位制檔案或更復雜的場景時,您應該使用這種型別的自定義編輯器。對於簡單的基於文字的文件,請改用 CustomTextEditorProvider。
方法
openCustomDocument(uri: Uri, openContext: CustomDocumentOpenContext, token: CancellationToken): T | Thenable<T>
為給定資源建立一個新文件。
當第一次開啟給定資源的編輯器時,會呼叫 openCustomDocument
。然後,開啟的文件將傳遞給 resolveCustomEditor
,以便向用戶顯示編輯器。
如果使用者打開了額外的編輯器,則會重新使用已開啟的 CustomDocument
。當給定資源的所有編輯器都關閉時,CustomDocument
將被釋放。此時開啟編輯器將再次觸發 openCustomDocument
呼叫。
引數 | 描述 |
---|---|
uri: Uri | 要開啟的文件的 Uri。 |
openContext: CustomDocumentOpenContext | 有關開啟自定義文件的附加資訊。 |
token: CancellationToken | 一個取消令牌,指示不再需要結果。 |
返回 | 描述 |
T | Thenable<T> | 自定義文件。 |
resolveCustomEditor(document: T, webviewPanel: WebviewPanel, token: CancellationToken): void | Thenable<void>
解析給定資源的自定義編輯器。
每當使用者為此 CustomEditorProvider
開啟新編輯器時,都會呼叫此函式。
引數 | 描述 |
---|---|
document: T | 正在解析的資源的文件。 |
webviewPanel: WebviewPanel | 用於顯示此資源的編輯器 UI 的 webview 面板。 在解析過程中,提供程式必須填充內容 webview 面板的初始 html,並連線它感興趣的所有事件監聽器。提供程式還可以持有 |
token: CancellationToken | 一個取消令牌,指示不再需要結果。 |
返回 | 描述 |
void | Thenable<void> | 可選的 thenable,指示自定義編輯器已解析。 |
CustomTextEditorProvider
用於基於文字的自定義編輯器的提供程式。
基於文字的自定義編輯器使用 TextDocument 作為其資料模型。這大大簡化了自定義編輯器的實現,因為它允許編輯器處理許多常見操作,例如撤消和備份。提供程式負責在 webview 和 TextDocument
之間同步文字更改。
方法
resolveCustomTextEditor(document: TextDocument, webviewPanel: WebviewPanel, token: CancellationToken): void | Thenable<void>
解析給定文字資源的自定義編輯器。
當用戶首次為 CustomTextEditorProvider
開啟資源,或者他們使用此 CustomTextEditorProvider
重新開啟現有編輯器時,會呼叫此函式。
引數 | 描述 |
---|---|
document: TextDocument | 要解析的資源的文件。 |
webviewPanel: WebviewPanel | 用於顯示此資源的編輯器 UI 的 webview 面板。 在解析過程中,提供程式必須填充內容 webview 面板的初始 html,並連線它感興趣的所有事件監聽器。提供程式還可以持有 |
token: CancellationToken | 一個取消令牌,指示不再需要結果。 |
返回 | 描述 |
void | Thenable<void> | 表示自定義編輯器已解析的 Thenable。 |
DataTransfer
一個對映,包含相應傳輸資料的 MIME 型別對映。
實現 handleDrag
的拖放控制器可以向資料傳輸新增額外的 MIME 型別。這些額外的 MIME 型別僅在拖動是從同一拖放控制器中的元素髮起時才包含在 handleDrop
中。
建構函式
new DataTransfer(): DataTransfer
引數 | 描述 |
---|---|
返回 | 描述 |
資料傳輸 |
方法
[iterator](): IterableIterator<[mimeType: string, item: DataTransferItem]>
獲取一個新的迭代器,其中包含此資料傳輸中每個元素的 [mime, item]
對。
引數 | 描述 |
---|---|
返回 | 描述 |
IterableIterator<[mimeType: string, item: DataTransferItem]> |
forEach(callbackfn: (item: DataTransferItem, mimeType: string, dataTransfer: DataTransfer) => void, thisArg?: any): void
允許遍歷資料傳輸項。
引數 | 描述 |
---|---|
callbackfn: (item: DataTransferItem, mimeType: string, dataTransfer: DataTransfer) => void | 用於遍歷資料傳輸項的回撥。 |
thisArg?: any | 呼叫處理函式時使用的 |
返回 | 描述 |
void |
get(mimeType: string): DataTransferItem
檢索給定 MIME 型別的資料傳輸項。
引數 | 描述 |
---|---|
mimeType: string | 要獲取資料傳輸項的 MIME 型別,例如 特殊 MIME 型別
|
返回 | 描述 |
DataTransferItem |
set(mimeType: string, value: DataTransferItem): void
設定 MIME 型別到資料傳輸項的對映。
引數 | 描述 |
---|---|
mimeType: string | 要設定資料的 MIME 型別。MIME 型別以小寫形式儲存,查詢不區分大小寫。 |
value: DataTransferItem | 給定 MIME 型別的資料傳輸項。 |
返回 | 描述 |
void |
DataTransferFile
與 DataTransferItem 關聯的檔案。
此型別的例項只能由編輯器建立,不能由擴充套件程式建立。
屬性
檔案的名稱。
uri?: Uri
檔案的完整檔案路徑。
在 web 上可能為 undefined
。
方法
檔案的完整檔案內容。
引數 | 描述 |
---|---|
返回 | 描述 |
Thenable<Uint8Array> |
DataTransferItem
封裝拖放操作期間傳輸的資料。
建構函式
new DataTransferItem(value: any): DataTransferItem
引數 | 描述 |
---|---|
value: any | 儲存在此專案上的自定義資料。可以使用 DataTransferItem.value 檢索。 |
返回 | 描述 |
DataTransferItem |
屬性
儲存在此專案上的自定義資料。
您可以使用 value
在操作之間共享資料。只要建立 DataTransferItem
的擴充套件程式在同一個擴充套件主機中執行,就可以檢索原始物件。
方法
asFile(): DataTransferFile
嘗試獲取與此資料傳輸項關聯的 檔案。
請注意,檔案物件僅在拖放操作的範圍內有效。
引數 | 描述 |
---|---|
返回 | 描述 |
DataTransferFile | 資料傳輸的檔案,如果專案不是檔案或無法訪問檔案資料,則為 |
獲取此專案的字串表示形式。
如果 DataTransferItem.value 是一個物件,則返回 json 字串化 DataTransferItem.value 結果。
引數 | 描述 |
---|---|
返回 | 描述 |
Thenable<string> |
DebugAdapter
如果除錯介面卡實現了 DebugAdapter 介面,則可以將其註冊到編輯器,該介面卡實現了除錯介面卡協議。
事件
onDidSendMessage: Event<DebugProtocolMessage>
除錯介面卡向編輯器傳送除錯介面卡協議訊息後觸發的事件。訊息可以是請求、響應或事件。
方法
釋放此物件。
引數 | 描述 |
---|---|
返回 | 描述 |
任意 |
handleMessage(message: DebugProtocolMessage): void
處理除錯介面卡協議訊息。訊息可以是請求、響應或事件。結果或錯誤透過 onSendMessage 事件返回。
引數 | 描述 |
---|---|
message: DebugProtocolMessage | 除錯介面卡協議訊息 |
返回 | 描述 |
void |
DebugAdapterDescriptor
表示不同型別的除錯介面卡
DebugAdapterDescriptor: DebugAdapterExecutable | DebugAdapterServer | DebugAdapterNamedPipeServer | DebugAdapterInlineImplementation
DebugAdapterDescriptorFactory
建立 除錯介面卡描述符 的除錯介面卡工廠。
方法
createDebugAdapterDescriptor(session: DebugSession, executable: DebugAdapterExecutable): ProviderResult<DebugAdapterDescriptor>
在除錯會話開始時呼叫 'createDebugAdapterDescriptor' 以提供要使用的除錯介面卡的詳細資訊。這些詳細資訊必須作為 DebugAdapterDescriptor 型別的物件返回。目前支援兩種型別的除錯介面卡
- 除錯介面卡可執行檔案指定為命令路徑和引數(參見 DebugAdapterExecutable),
- 可透過通訊埠訪問的除錯介面卡伺服器(參見 DebugAdapterServer)。如果未實現該方法,則預設行為是:createDebugAdapter(session: DebugSession, executable: DebugAdapterExecutable) { if (typeof session.configuration.debugServer === 'number') { return new DebugAdapterServer(session.configuration.debugServer); } return executable; }
引數 | 描述 |
---|---|
session: DebugSession | 將使用除錯介面卡的 除錯會話。 |
executable: DebugAdapterExecutable | package.json 中指定的除錯介面卡的可執行資訊(如果不存在此類資訊,則為 undefined)。 |
返回 | 描述 |
ProviderResult<DebugAdapterDescriptor> | 一個 除錯介面卡描述符 或 undefined。 |
DebugAdapterExecutable
表示除錯介面卡可執行檔案以及傳遞給它的可選引數和執行時選項。
建構函式
new DebugAdapterExecutable(command: string, args?: string[], options?: DebugAdapterExecutableOptions): DebugAdapterExecutable
基於可執行程式建立除錯介面卡的描述。
引數 | 描述 |
---|---|
command: string | 實現除錯介面卡的命令或可執行路徑。 |
args?: string[] | 傳遞給命令或可執行檔案的可選引數。 |
options?: DebugAdapterExecutableOptions | 啟動命令或可執行檔案時使用的可選選項。 |
返回 | 描述 |
DebugAdapterExecutable |
屬性
傳遞給除錯介面卡可執行檔案的引數。預設為空陣列。
除錯介面卡可執行檔案的命令或路徑。命令必須是可執行檔案的絕對路徑,或者是透過 PATH 環境變數查詢的命令名稱。特殊值“node”將對映到編輯器的內建 Node.js 執行時。
options?: DebugAdapterExecutableOptions
啟動除錯介面卡時使用的可選選項。預設為 undefined。
DebugAdapterExecutableOptions
除錯介面卡可執行檔案的選項。
屬性
已執行除錯介面卡的當前工作目錄。
已執行程式或 shell 的附加環境。如果省略,則使用父程序的環境。如果提供,則與父程序的環境合併。
DebugAdapterInlineImplementation
內聯實現的除錯介面卡描述符。
建構函式
new DebugAdapterInlineImplementation(implementation: DebugAdapter): DebugAdapterInlineImplementation
為除錯介面卡的內聯實現建立描述符。
引數 | 描述 |
---|---|
implementation: DebugAdapter | |
返回 | 描述 |
DebugAdapterInlineImplementation |
DebugAdapterNamedPipeServer
表示作為基於命名管道(Windows 上)/UNIX 域套接字(非 Windows 上)的伺服器執行的除錯介面卡。
建構函式
new DebugAdapterNamedPipeServer(path: string): DebugAdapterNamedPipeServer
為作為基於命名管道(Windows 上)/UNIX 域套接字(非 Windows 上)的伺服器執行的除錯介面卡建立描述。
引數 | 描述 |
---|---|
path: string | |
返回 | 描述 |
DebugAdapterNamedPipeServer |
屬性
命名管道/UNIX 域套接字的路徑。
DebugAdapterServer
表示作為基於套接字的伺服器執行的除錯介面卡。
建構函式
new DebugAdapterServer(port: number, host?: string): DebugAdapterServer
為作為基於套接字的伺服器執行的除錯介面卡建立描述。
引數 | 描述 |
---|---|
port: number | |
host?: string | |
返回 | 描述 |
DebugAdapterServer |
屬性
主機。
埠。
DebugAdapterTracker
除錯介面卡跟蹤器是跟蹤編輯器和除錯介面卡之間通訊的一種方式。
事件
onDidSendMessage(message: any): void
除錯介面卡已向編輯器傳送除錯介面卡協議訊息。
引數 | 描述 |
---|---|
message: any | |
返回 | 描述 |
void |
onWillReceiveMessage(message: any): void
除錯介面卡即將從編輯器接收除錯介面卡協議訊息。
引數 | 描述 |
---|---|
message: any | |
返回 | 描述 |
void |
與除錯介面卡的會話即將啟動。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
除錯介面卡會話即將停止。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
方法
除錯介面卡發生錯誤。
引數 | 描述 |
---|---|
error: Error | |
返回 | 描述 |
void |
onExit(code: number, signal: string): void
除錯介面卡已退出,並帶有給定的退出程式碼或訊號。
引數 | 描述 |
---|---|
code: number | |
signal: string | |
返回 | 描述 |
void |
DebugAdapterTrackerFactory
建立 除錯介面卡跟蹤器 的除錯介面卡工廠。
方法
createDebugAdapterTracker(session: DebugSession): ProviderResult<DebugAdapterTracker>
在除錯會話開始時呼叫方法 'createDebugAdapterTracker',以返回一個“跟蹤器”物件,該物件提供對編輯器和除錯介面卡之間通訊的讀取訪問許可權。
引數 | 描述 |
---|---|
session: DebugSession | 將使用除錯介面卡跟蹤器的 除錯會話。 |
返回 | 描述 |
ProviderResult<DebugAdapterTracker> | 一個 除錯介面卡跟蹤器 或 undefined。 |
DebugConfiguration
除錯會話的配置。
屬性
除錯會話的名稱。
除錯會話的請求型別。
除錯會話的型別。
DebugConfigurationProvider
除錯配置提供程式允許向除錯服務新增除錯配置,並在使用啟動配置啟動除錯會話之前解析它們。除錯配置提供程式透過 debug.registerDebugConfigurationProvider 註冊。
方法
provideDebugConfigurations(folder: WorkspaceFolder, token?: CancellationToken): ProviderResult<DebugConfiguration[]>
向除錯服務提供 除錯配置。如果為同一型別註冊了多個除錯配置提供程式,則除錯配置會以任意順序連線。
引數 | 描述 |
---|---|
folder: WorkspaceFolder | 使用配置的工作區資料夾,或對於無資料夾設定,為 |
token?: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<DebugConfiguration[]> | 一個 除錯配置 陣列。 |
resolveDebugConfiguration(folder: WorkspaceFolder, debugConfiguration: DebugConfiguration, token?: CancellationToken): ProviderResult<DebugConfiguration>
透過填充缺失值或新增/更改/刪除屬性來解析 除錯配置。如果為同一型別註冊了多個除錯配置提供程式,則 resolveDebugConfiguration 呼叫將以任意順序連結,並且初始除錯配置將透過鏈傳遞。返回值“undefined”會阻止除錯會話啟動。返回值“null”會阻止除錯會話啟動並改為開啟底層除錯配置。
引數 | 描述 |
---|---|
folder: WorkspaceFolder | 配置來源的工作區資料夾,或對於無資料夾設定,為 |
debugConfiguration: DebugConfiguration | 要解析的 除錯配置。 |
token?: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<DebugConfiguration> | 已解析的除錯配置,或 undefined 或 null。 |
resolveDebugConfigurationWithSubstitutedVariables(folder: WorkspaceFolder, debugConfiguration: DebugConfiguration, token?: CancellationToken): ProviderResult<DebugConfiguration>
此鉤子在“resolveDebugConfiguration”之後直接呼叫,但所有變數都已替換。它可以用於透過填充缺失值或新增/更改/刪除屬性來解析或驗證 除錯配置。如果為同一型別註冊了多個除錯配置提供程式,則“resolveDebugConfigurationWithSubstitutedVariables”呼叫將以任意順序連結,並且初始除錯配置將透過鏈傳遞。返回“undefined”值將阻止除錯會話啟動。返回“null”值將阻止除錯會話啟動並改為開啟底層除錯配置。
引數 | 描述 |
---|---|
folder: WorkspaceFolder | 配置來源的工作區資料夾,或對於無資料夾設定,為 |
debugConfiguration: DebugConfiguration | 要解析的 除錯配置。 |
token?: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<DebugConfiguration> | 已解析的除錯配置,或 undefined 或 null。 |
DebugConfigurationProviderTriggerKind
DebugConfigurationProviderTriggerKind 指定何時觸發 DebugConfigurationProvider
的 provideDebugConfigurations
方法。目前有兩種情況:為新建立的 launch.json 提供初始除錯配置,或在使用者透過 UI(例如,透過“選擇並開始除錯”命令)請求時提供動態生成的除錯配置。在透過 debug.registerDebugConfigurationProvider 註冊 DebugConfigurationProvider
時使用觸發器型別。
列舉成員
呼叫 DebugConfigurationProvider.provideDebugConfigurations
以提供新建立的 launch.json 的初始除錯配置。
當用戶透過 UI(例如,透過“選擇並開始除錯”命令)請求時,呼叫 DebugConfigurationProvider.provideDebugConfigurations
以提供動態生成的除錯配置。
DebugConsole
表示除錯控制檯。
方法
將給定值追加到除錯控制檯。
引數 | 描述 |
---|---|
value: string | 一個字串,虛假值將不會列印。 |
返回 | 描述 |
void |
appendLine(value: string): void
將給定值和換行符追加到除錯控制檯。
引數 | 描述 |
---|---|
value: string | 一個字串,虛假值也將列印。 |
返回 | 描述 |
void |
DebugConsoleMode
除錯會話使用的除錯控制檯模式,請參閱 選項。
列舉成員
除錯會話應有獨立的除錯控制檯。
除錯會話應與其父會話共享除錯控制檯。此值對沒有父會話的會話無效。
DebugProtocolBreakpoint
DebugProtocolBreakpoint 是除錯介面卡協議中定義的 Breakpoint 型別的非透明替代型別。
DebugProtocolMessage
DebugProtocolMessage 是除錯介面卡協議中定義的 ProtocolMessage 型別的非透明替代型別。
DebugProtocolSource
DebugProtocolSource 是除錯介面卡協議中定義的 Source 型別的非透明替代型別。
DebugSession
除錯會話。
屬性
configuration: DebugConfiguration
此會話的“已解析” 除錯配置。“已解析”表示
- 所有變數都已替換,並且
- 平臺特定屬性部分已針對匹配平臺“扁平化”,併為不匹配平臺刪除。
此除錯會話的唯一 ID。
除錯會話的名稱最初取自 除錯配置。任何更改都將正確反映在 UI 中。
parentSession?: DebugSession
此除錯會話的父會話,如果它是作為子會話建立的。
另請參閱 DebugSessionOptions.parentSession
來自 除錯配置 的除錯會話型別。
workspaceFolder: WorkspaceFolder
此會話的工作區資料夾,或對於無資料夾設定,為 undefined
。
方法
customRequest(command: string, args?: any): Thenable<any>
向除錯介面卡傳送自定義請求。
引數 | 描述 |
---|---|
command: string | |
args?: any | |
返回 | 描述 |
Thenable<any> |
getDebugProtocolBreakpoint(breakpoint: Breakpoint): Thenable<DebugProtocolBreakpoint>
將編輯器中的斷點對映到除錯會話的除錯介面卡管理的相應除錯介面卡協議 (DAP) 斷點。如果不存在 DAP 斷點(因為編輯器斷點尚未註冊,或者除錯介面卡對該斷點不感興趣),則返回 undefined
。
引數 | 描述 |
---|---|
breakpoint: Breakpoint | 編輯器中的 斷點。 |
返回 | 描述 |
Thenable<DebugProtocolBreakpoint> | 一個解析為除錯介面卡協議斷點或 |
DebugSessionCustomEvent
從 除錯會話 接收到的自定義除錯介面卡協議事件。
屬性
事件特定資訊。
事件型別。
session: DebugSession
接收自定義事件的 除錯會話。
DebugSessionOptions
啟動除錯會話 的選項。
屬性
控制除錯會話的父會話是否顯示在 CALL STACK 檢視中,即使它只有一個子會話。預設情況下,除錯會話從不隱藏其父會話。如果 compact 為 true,則具有單個子會話的除錯會話將在 CALL STACK 檢視中隱藏,以使樹更緊湊。
consoleMode?: DebugConsoleMode
控制此會話是應該有獨立的除錯控制檯還是與父會話共享除錯控制檯。對於沒有父會話的會話無效。預設為 Separate。
lifecycleManagedByParent?: boolean
控制是否將“重新啟動”等生命週期請求傳送到新建立的會話或其父會話。預設情況下(如果該屬性為 false 或缺失),生命週期請求將傳送到新會話。如果會話沒有父會話,則忽略此屬性。
控制此會話是否應在不除錯的情況下執行,從而忽略斷點。如果未指定此屬性,則使用父會話(如果存在)的值。
parentSession?: DebugSession
指定時,新建立的除錯會話將註冊為此“父”除錯會話的“子”會話。
suppressDebugStatusbar?: boolean
如果為 true,則此會話的視窗狀態列顏色不會更改。
suppressDebugToolbar?: boolean
如果為 true,則此會話不會顯示除錯工具欄。
如果為 true,則此會話不會自動顯示除錯檢視。
suppressSaveBeforeStart?: boolean
如果為 true,則在啟動除錯會話時不會為開啟的編輯器觸發儲存,無論 debug.saveBeforeStart
設定的值如何。
testRun?: TestRun
向編輯器發出訊號,表示除錯會話是從測試執行請求啟動的。這用於在 UI 操作中連結除錯會話和測試執行的生命週期。
DebugStackFrame
表示除錯會話中的堆疊幀。
屬性
除錯協議中的堆疊幀 ID。
session: DebugSession
執行緒的除錯會話。
除錯協議中關聯執行緒的 ID。
DebugThread
表示除錯會話中的執行緒。
屬性
session: DebugSession
執行緒的除錯會話。
除錯協議中關聯執行緒的 ID。
Declaration
Declaration: Location | Location[] | LocationLink[]
DeclarationCoverage
包含宣告的覆蓋資訊。根據報告器和語言,這可能是函式、方法或名稱空間等型別。
建構函式
new DeclarationCoverage(name: string, executed: number | boolean, location: Range | Position): DeclarationCoverage
引數 | 描述 |
---|---|
name: string | |
executed: number | boolean | 此宣告的執行次數,如果確切計數未知,則為布林值,指示其是否已執行。如果為零或 false,則此宣告將標記為未覆蓋。 |
location: Range | Position | 宣告位置。 |
返回 | 描述 |
DeclarationCoverage |
屬性
此宣告的執行次數,如果確切計數未知,則為布林值,指示其是否已執行。如果為零或 false,則此宣告將標記為未覆蓋。
宣告位置。
宣告的名稱。
DeclarationProvider
宣告提供程式介面定義了擴充套件和“轉到宣告”功能之間的約定。
方法
provideDeclaration(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<Declaration>
在給定位置和文件處提供符號的宣告。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
position: Position | 呼叫命令的位置。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<Declaration> | 一個宣告或解析為宣告的 thenable。可以透過返回 |
DecorationInstanceRenderOptions
表示裝飾例項的渲染選項。請參見DecorationOptions.renderOptions。
屬性
after?: ThemableDecorationAttachmentRenderOptions
定義裝飾文字後插入的附件的渲染選項。
before?: ThemableDecorationAttachmentRenderOptions
定義裝飾文字前插入的附件的渲染選項。
dark?: ThemableDecorationInstanceRenderOptions
深色主題的覆蓋選項。
light?: ThemableDecorationInstanceRenderOptions
淺色主題的覆蓋選項。
DecorationOptions
表示裝飾集中特定裝飾的選項。
屬性
hoverMessage?: MarkdownString | MarkedString | Array<MarkdownString | MarkedString>
將滑鼠懸停在裝飾上時應渲染的訊息。
range: Range
此裝飾應用的範圍。該範圍不能為空。
renderOptions?: DecorationInstanceRenderOptions
應用於當前裝飾的渲染選項。出於效能原因,請將裝飾特定選項的數量保持較小,並儘可能使用裝飾型別。
DecorationRangeBehavior
描述在裝飾邊緣進行鍵入/編輯時的行為。
列舉成員
當在開始或結束處發生編輯時,裝飾的範圍將擴大。
當在開始或結束處發生編輯時,裝飾的範圍不會擴大。
當在開始處發生編輯時,裝飾的範圍將擴大,但在結束處不會。
當在結束處發生編輯時,裝飾的範圍將擴大,但在開始處不會。
DecorationRenderOptions
表示文字編輯器裝飾的渲染樣式。
屬性
after?: ThemableDecorationAttachmentRenderOptions
定義裝飾文字後插入的附件的渲染選項。
backgroundColor?: string | ThemeColor
裝飾的背景顏色。使用 rgba() 並定義透明背景顏色以與其他裝飾良好配合。或者,可以引用顏色登錄檔中的顏色。
before?: ThemableDecorationAttachmentRenderOptions
定義裝飾文字前插入的附件的渲染選項。
將應用於裝飾包圍的文字的 CSS 樣式屬性。
borderColor?: string | ThemeColor
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
color?: string | ThemeColor
將應用於裝飾包圍的文字的 CSS 樣式屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。
dark?: ThemableDecorationRenderOptions
深色主題的覆蓋選項。
將應用於裝飾包圍的文字的 CSS 樣式屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。
gutterIconPath?: string | Uri
要渲染在側邊欄中的影像的**絕對路徑**或 URI。
指定側邊欄圖示的大小。可用值包括“auto”、“contain”、“cover”和任何百分比值。有關更多資訊:https://msdn.microsoft.com/en-us/library/jj127316(v=vs.85).aspx
裝飾是否也應渲染在行文字後的空白處。預設為 false
。
將應用於裝飾包圍的文字的 CSS 樣式屬性。
light?: ThemableDecorationRenderOptions
淺色主題的覆蓋選項。
將應用於裝飾包圍的文字的 CSS 樣式屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。
outlineColor?: string | ThemeColor
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“outline”來設定一個或多個單獨的輪廓屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“outline”來設定一個或多個單獨的輪廓屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“outline”來設定一個或多個單獨的輪廓屬性。
overviewRulerColor?: string | ThemeColor
概覽標尺中裝飾的顏色。使用 rgba() 並定義透明顏色以與其他裝飾良好配合。
overviewRulerLane?: OverviewRulerLane
裝飾應渲染在概覽標尺中的位置。
rangeBehavior?: DecorationRangeBehavior
在裝飾範圍邊緣發生編輯時,自定義裝飾的擴充套件行為。預設為 DecorationRangeBehavior.OpenOpen
。
將應用於裝飾包圍的文字的 CSS 樣式屬性。
Definition
符號的定義,表示為一個或多個位置。對於大多數程式語言,符號只在一個位置定義。
Definition: Location | Location[]
DefinitionLink
關於符號定義位置的資訊。
提供比普通位置定義更多的元資料,包括定義符號的範圍。
DefinitionLink: LocationLink
DefinitionProvider
定義提供程式介面定義了擴充套件與轉到定義和檢視定義功能之間的約定。
方法
provideDefinition(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<Definition | LocationLink[]>
在給定位置和文件處提供符號的定義。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
position: Position | 呼叫命令的位置。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<Definition | LocationLink[]> | 一個定義或解析為定義的 thenable。可以透過返回 |
Diagnostic
表示診斷,例如編譯器錯誤或警告。診斷物件僅在檔案範圍內有效。
建構函式
new Diagnostic(range: Range, message: string, severity?: DiagnosticSeverity): Diagnostic
建立一個新的診斷物件。
引數 | 描述 |
---|---|
range: Range | 此診斷適用的範圍。 |
message: string | 人類可讀的訊息。 |
severity?: DiagnosticSeverity | 嚴重性,預設為錯誤。 |
返回 | 描述 |
Diagnostic |
屬性
code?: string | number | {target: Uri, value: string | number}
此診斷的程式碼或識別符號。應將其用於後續處理,例如在提供程式碼操作時。
人類可讀的訊息。
range: Range
此診斷適用的範圍。
relatedInformation?: DiagnosticRelatedInformation[]
相關診斷資訊的陣列,例如,當作用域內的符號名衝突時,所有定義都可以透過此屬性標記。
severity: DiagnosticSeverity
嚴重性,預設為錯誤。
描述此診斷來源的人類可讀字串,例如“typescript”或“super lint”。
tags?: DiagnosticTag[]
有關診斷的附加元資料。
DiagnosticChangeEvent
診斷更改時觸發的事件。
屬性
uris: readonly Uri[]
診斷已更改的資源陣列。
DiagnosticCollection
診斷集合是一個管理一組診斷的容器。診斷始終限定於診斷集合和資源。
要獲取 DiagnosticCollection
的例項,請使用 createDiagnosticCollection。
屬性
此診斷集合的名稱,例如 typescript
。來自此集合的每個診斷都將與此名稱關聯。此外,任務框架在定義問題匹配器時使用此名稱。
方法
從此集合中移除所有診斷。與呼叫 #set(undefined)
相同;
引數 | 描述 |
---|---|
返回 | 描述 |
void |
delete(uri: Uri): void
從此集合中移除所有屬於所提供 uri
的診斷。與 #set(uri, undefined)
相同。
引數 | 描述 |
---|---|
uri: Uri | 資源識別符號。 |
返回 | 描述 |
void |
釋放並釋放關聯的資源。呼叫clear。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
forEach(callback: (uri: Uri, diagnostics: readonly Diagnostic[], collection: DiagnosticCollection) => any, thisArg?: any): void
迭代此集合中的每個條目。
引數 | 描述 |
---|---|
callback: (uri: Uri, diagnostics: readonly Diagnostic[], collection: DiagnosticCollection) => any | 對每個條目執行的函式。 |
thisArg?: any | 呼叫處理函式時使用的 |
返回 | 描述 |
void |
get(uri: Uri): readonly Diagnostic[]
獲取給定資源的診斷。*注意*,您無法修改此呼叫返回的診斷陣列。
引數 | 描述 |
---|---|
uri: Uri | 資源識別符號。 |
返回 | 描述 |
readonly Diagnostic[] | 不可變的診斷陣列或 |
has(uri: Uri): boolean
檢查此集合是否包含給定資源的診斷。
引數 | 描述 |
---|---|
uri: Uri | 資源識別符號。 |
返回 | 描述 |
布林值 | 如果此集合具有給定資源的診斷,則為 |
set(uri: Uri, diagnostics: readonly Diagnostic[]): void
為給定資源分配診斷。將替換該資源的現有診斷。
引數 | 描述 |
---|---|
uri: Uri | 資源識別符號。 |
diagnostics: readonly Diagnostic[] | 診斷陣列或 |
返回 | 描述 |
void |
set(entries: ReadonlyArray<[Uri, readonly Diagnostic[]]>): void
替換此集合中多個資源的診斷。
注意,相同 uri 的多個元組將被合併,例如 [[file1, [d1]], [file1, [d2]]]
等效於 [[file1, [d1, d2]]]
。如果診斷項為 undefined
,如 [file1, undefined]
,則刪除所有之前但未刪除後續的診斷。
引數 | 描述 |
---|---|
entries: ReadonlyArray<[Uri, readonly Diagnostic[]]> | 元組陣列,如 |
返回 | 描述 |
void |
DiagnosticRelatedInformation
表示診斷的相關訊息和原始碼位置。這應在指向導致或與診斷相關的程式碼位置時使用,例如在作用域中重複符號時。
建構函式
new DiagnosticRelatedInformation(location: Location, message: string): DiagnosticRelatedInformation
建立新的相關診斷資訊物件。
引數 | 描述 |
---|---|
location: Location | 位置。 |
message: string | 訊息。 |
返回 | 描述 |
DiagnosticRelatedInformation |
屬性
location: Location
此相關診斷資訊的位置。
此相關診斷資訊的訊息。
DiagnosticSeverity
表示診斷的嚴重性。
列舉成員
語言規則或其他方式不允許的某些內容。
某些可疑但允許的內容。
某些要告知的資訊,但不是問題。
提示更好的做法,例如建議重構。
DiagnosticTag
有關診斷型別的附加元資料。
列舉成員
未使用或不必要的程式碼。
帶有此標記的診斷將以淡出顯示。淡出程度由 "editorUnnecessaryCode.opacity"
主題顏色控制。例如,"editorUnnecessaryCode.opacity": "#000000c0"
將以 75% 的不透明度渲染程式碼。對於高對比度主題,請使用 "editorUnnecessaryCode.border"
主題顏色下劃線不必要的程式碼,而不是淡出。
已棄用或過時的程式碼。
帶有此標記的診斷將以刪除線顯示。
Disposable
表示可以釋放資源(例如事件監聽或計時器)的型別。
靜態
from(...disposableLikes: Array<{dispose: () => any}>): Disposable
將許多可處置物件合併為一個。當您擁有具有 dispose 函式但不是 Disposable
例項的物件時,可以使用此方法。
引數 | 描述 |
---|---|
...disposableLikes: Array<{dispose: () => any}> | 至少具有 |
返回 | 描述 |
Disposable | 返回一個新的可處置物件,該物件在處置時將處置所有提供的可處置物件。 |
建構函式
new Disposable(callOnDispose: () => any): Disposable
建立一個新的可處置物件,在處置時呼叫所提供的函式。
注意,非同步函式不會被等待。
引數 | 描述 |
---|---|
callOnDispose: () => any | 處置某物的函式。 |
返回 | 描述 |
Disposable |
方法
釋放此物件。
引數 | 描述 |
---|---|
返回 | 描述 |
任意 |
DocumentColorProvider
文件顏色提供程式定義了擴充套件與編輯器中拾取和修改顏色功能之間的約定。
方法
provideColorPresentations(color: Color, context: {document: TextDocument, range: Range}, token: CancellationToken): ProviderResult<ColorPresentation[]>
提供顏色的表示。
引數 | 描述 |
---|---|
color: Color | 要顯示和插入的顏色。 |
context: {document: TextDocument, range: Range} | 包含附加資訊的上下文物件 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<ColorPresentation[]> | 一個顏色表示陣列或解析為此類的 thenable。可以透過返回 |
provideDocumentColors(document: TextDocument, token: CancellationToken): ProviderResult<ColorInformation[]>
為給定文件提供顏色。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<ColorInformation[]> | 一個顏色資訊陣列或解析為此類的 thenable。可以透過返回 |
DocumentDropEdit
在拖放時應用的編輯操作。
建構函式
new DocumentDropEdit(insertText: string | SnippetString, title?: string, kind?: DocumentDropOrPasteEditKind): DocumentDropEdit
引數 | 描述 |
---|---|
insertText: string | SnippetString | 要插入到拖放位置的文字或程式碼片段。 |
title?: string | 描述編輯的人類可讀標籤。 |
kind?: DocumentDropOrPasteEditKind | 編輯的型別。 |
返回 | 描述 |
DocumentDropEdit |
屬性
additionalEdit?: WorkspaceEdit
在拖放時應用的附加可選編輯。
insertText: string | SnippetString
要插入到拖放位置的文字或程式碼片段。
kind?: DocumentDropOrPasteEditKind
編輯的型別。
描述編輯的人類可讀標籤。
yieldTo?: readonly DocumentDropOrPasteEditKind[]
控制多個編輯的排序。如果此提供程式屈服於編輯,它將顯示在列表的下方。
DocumentDropEditProvider<T>
處理資源拖放到文字編輯器中的提供程式。
這允許使用者將資源(包括來自外部應用程式的資源)拖放到編輯器中。在拖放檔案時,使用者可以按住 shift
將檔案拖放到編輯器中,而不是開啟它。需要啟用 editor.dropIntoEditor.enabled
。
方法
provideDocumentDropEdits(document: TextDocument, position: Position, dataTransfer: DataTransfer, token: CancellationToken): ProviderResult<T | T[]>
提供將拖放內容插入到文件中的編輯。
引數 | 描述 |
---|---|
document: TextDocument | 發生拖放的文件。 |
position: Position | 文件中發生拖放的位置。 |
dataTransfer: DataTransfer | 一個DataTransfer物件,其中包含有關正在拖放的資料的資訊。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T | T[]> | 一個DocumentDropEdit或解析為此類的 thenable。可以透過返回 |
resolveDocumentDropEdit(edit: T, token: CancellationToken): ProviderResult<T>
在應用編輯之前,填充DocumentDropEdit.additionalEdit的可選方法。
此方法每個編輯只調用一次,如果生成完整編輯可能需要很長時間,則應使用此方法。Resolve 只能用於更改DocumentDropEdit.additionalEdit。
引數 | 描述 |
---|---|
edit: T | 要解析的DocumentDropEdit。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T> | 已解析的編輯或解析為此類的 thenable。返回給定的 |
DocumentDropEditProviderMetadata
提供有關DocumentDropEditProvider如何工作的附加元資料。
屬性
dropMimeTypes: readonly string[]
提供程式可以處理的DataTransfer MIME 型別列表。
這可以是精確的 MIME 型別,例如 image/png
,也可以是萬用字元模式,例如 image/*
。
對於從資源管理器或工作臺中其他樹檢視拖放的資源,請使用 text/uri-list
。
使用 files
表示如果DataTransfer中存在任何檔案,則應呼叫提供程式。請注意,DataTransferFile 條目僅在從編輯器外部(例如從作業系統)拖放內容時建立。
providedDropEditKinds?: readonly DocumentDropOrPasteEditKind[]
提供程式在provideDocumentDropEdits中可能返回的型別列表。
這用於在請求特定型別的編輯時篩選掉提供程式。
DocumentDropOrPasteEditKind
靜態
Empty: DocumentDropOrPasteEditKind
Text: DocumentDropOrPasteEditKind
基本文字編輯的根型別。
此型別應用於將基本文字插入到文件中的編輯。一個很好的例子是貼上剪貼簿文字同時根據貼上的文字更新檔案中匯入的編輯。為此,我們可以使用 text.updateImports.someLanguageId
等型別。
即使大多數拖放/貼上編輯最終都插入文字,您也不應將Text用作每個編輯的基本型別,因為這會產生冗餘。相反,應使用更具體地描述要插入內容型別的型別。例如,如果編輯添加了 Markdown 連結,請使用 markdown.link
,因為即使插入的內容是文字,更重要的是要知道編輯插入了 Markdown 語法。
TextUpdateImports: DocumentDropOrPasteEditKind
除了插入文字外,還更新文件中匯入的編輯的根型別。
建構函式
new DocumentDropOrPasteEditKind(value: string): DocumentDropOrPasteEditKind
引數 | 描述 |
---|---|
value: string | |
返回 | 描述 |
DocumentDropOrPasteEditKind |
屬性
型別的原始字串值。
方法
append(...parts: string[]): DocumentDropOrPasteEditKind
透過向當前型別新增附加範圍來建立新型別。
不修改當前種類。
引數 | 描述 |
---|---|
...parts: string[] | |
返回 | 描述 |
DocumentDropOrPasteEditKind |
contains(other: DocumentDropOrPasteEditKind): boolean
檢查 other
是否是此 DocumentDropOrPasteEditKind
的子型別。
例如,型別 "text.plain"
包含 "text.plain"
和 "text.plain.list"
,但不包含 "text"
或 "unicorn.text.plain"
。
引數 | 描述 |
---|---|
other: DocumentDropOrPasteEditKind | 要檢查的種類。 |
返回 | 描述 |
布林值 |
intersects(other: DocumentDropOrPasteEditKind): boolean
檢查此型別是否與 other
相交。
例如,型別 "text.plain"
與 text
、"text.plain"
和 "text.plain.list"
相交,但不與 "unicorn"
或 "textUnicorn.plain"
相交。
引數 | 描述 |
---|---|
other: DocumentDropOrPasteEditKind | 要檢查的種類。 |
返回 | 描述 |
布林值 |
DocumentFilter
文件篩選器透過不同的屬性(如語言、其資源的方案或應用於路徑的 glob 模式)表示文件。
示例 適用於磁碟上的 TypeScript 檔案的語言篩選器
{ language: 'typescript', scheme: 'file' }
示例 適用於所有 package.json 路徑的語言篩選器
{ language: 'json', pattern: '**/package.json' }
屬性
語言 ID,例如 typescript
。
pattern?: GlobPattern
Uri 方案,例如 file
或 untitled
。
DocumentFormattingEditProvider
文件格式化提供程式介面定義了擴充套件和格式化功能之間的約定。
方法
provideDocumentFormattingEdits(document: TextDocument, options: FormattingOptions, token: CancellationToken): ProviderResult<TextEdit[]>
為整個文件提供格式化編輯。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
options: FormattingOptions | 控制格式化的選項。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<TextEdit[]> | 一組文字編輯或解析為此類的 thenable。可以透過返回 |
DocumentHighlight
文件高亮是文字文件中值得特別注意的範圍。通常,文件高亮透過更改其範圍的背景顏色來視覺化。
建構函式
new DocumentHighlight(range: Range, kind?: DocumentHighlightKind): DocumentHighlight
建立一個新的文件高亮物件。
引數 | 描述 |
---|---|
range: Range | 高亮適用的範圍。 |
kind?: DocumentHighlightKind | 高亮型別,預設為文字。 |
返回 | 描述 |
DocumentHighlight |
屬性
kind?: DocumentHighlightKind
高亮型別,預設為文字。
range: Range
此高亮適用的範圍。
DocumentHighlightKind
文件高亮型別。
列舉成員
文字出現。
符號的讀取訪問,例如讀取變數。
符號的寫入訪問,例如寫入變數。
DocumentHighlightProvider
文件高亮提供程式介面定義了擴充套件和單詞高亮功能之間的約定。
方法
provideDocumentHighlights(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<DocumentHighlight[]>
提供一組文件高亮,例如變數的所有出現或函式的所有退出點。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
position: Position | 呼叫命令的位置。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<DocumentHighlight[]> | 一個文件高亮陣列或解析為此類的 thenable。可以透過返回 |
DocumentLink
文件連結是文字文件中連結到內部或外部資源(如另一個文字文件或網站)的範圍。
建構函式
new DocumentLink(range: Range, target?: Uri): DocumentLink
建立一個新的文件連結。
引數 | 描述 |
---|---|
range: Range | 文件連結適用的範圍。不能為空。 |
target?: Uri | 文件連結指向的 URI。 |
返回 | 描述 |
DocumentLink |
屬性
range: Range
此連結適用的範圍。
target?: Uri
此連結指向的 URI。
將滑鼠懸停在此連結上時顯示的工具提示文字。
如果提供了工具提示,它將顯示在一個字串中,其中包括如何觸發連結的說明,例如 {0} (ctrl + click)
。具體說明因作業系統、使用者設定和本地化而異。
DocumentLinkProvider<T>
文件連結提供程式定義了擴充套件與編輯器中顯示連結功能之間的約定。
方法
provideDocumentLinks(document: TextDocument, token: CancellationToken): ProviderResult<T[]>
為給定文件提供連結。請注意,編輯器附帶了一個預設提供程式,用於檢測 http(s)
和 file
連結。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T[]> | 一個文件連結陣列或解析為此類的 thenable。可以透過返回 |
resolveDocumentLink(link: T, token: CancellationToken): ProviderResult<T>
給定一個連結,填充其目標。當在 UI 中選擇不完整連結時,會呼叫此方法。提供程式可以實現此方法並從provideDocumentLinks方法返回不完整連結(沒有目標),這通常有助於提高效能。
引數 | 描述 |
---|---|
link: T | 要解析的文件連結。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T> |
DocumentPasteEdit
應用貼上操作的編輯。
建構函式
new DocumentPasteEdit(insertText: string | SnippetString, title: string, kind: DocumentDropOrPasteEditKind): DocumentPasteEdit
建立一個新的貼上編輯。
引數 | 描述 |
---|---|
insertText: string | SnippetString | 要插入到貼上位置的文字或程式碼片段。 |
title: string | 描述編輯的人類可讀標籤。 |
kind: DocumentDropOrPasteEditKind | 編輯的型別。 |
返回 | 描述 |
DocumentPasteEdit |
屬性
additionalEdit?: WorkspaceEdit
貼上時應用的附加可選編輯。
insertText: string | SnippetString
要插入到貼上位置的文字或程式碼片段。
如果您的編輯需要更高階的插入邏輯,請將其設定為空字串,並改為提供附加編輯。
kind: DocumentDropOrPasteEditKind
編輯的型別。
描述編輯的人類可讀標籤。
yieldTo?: readonly DocumentDropOrPasteEditKind[]
控制當可以應用多個貼上編輯時,它們的排序。
如果此編輯讓步於另一個編輯,它將在向用戶顯示的可能貼上編輯列表中顯示在較低位置。
DocumentPasteEditContext
關於貼上操作的附加資訊。
屬性
only: DocumentDropOrPasteEditKind
請求返回的貼上編輯型別。
當透過 PasteAs 請求顯式型別時,鼓勵提供者在生成所請求型別的編輯時更加靈活。
triggerKind: DocumentPasteTriggerKind
請求貼上編輯的原因。
DocumentPasteEditProvider<T>
當用戶在 TextDocument 中複製或貼上時呼叫的提供程式。
方法
prepareDocumentPaste(document: TextDocument, ranges: readonly Range[], dataTransfer: DataTransfer, token: CancellationToken): void | Thenable<void>
使用者從 文字編輯器 複製後呼叫的可選方法。
這允許提供程式將有關複製文字的元資料附加到 DataTransfer。然後,此資料傳輸在 provideDocumentPasteEdits 中傳遞迴提供程式。
請注意,目前對 DataTransfer 的任何更改都隔離在當前編輯器視窗中。這意味著其他編輯器視窗或其他應用程式無法看到任何新增的元資料。
引數 | 描述 |
---|---|
document: TextDocument | 發生複製的文字文件。 |
ranges: readonly Range[] | 在 document 中複製的範圍。 |
dataTransfer: DataTransfer | 與複製關聯的資料傳輸。您可以將附加值儲存在此處,以供稍後在 provideDocumentPasteEdits 中使用。此物件僅在此方法持續期間有效。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
void | Thenable<void> | 當 |
provideDocumentPasteEdits(document: TextDocument, ranges: readonly Range[], dataTransfer: DataTransfer, context: DocumentPasteEditContext, token: CancellationToken): ProviderResult<T[]>
使用者在 文字編輯器 中貼上之前呼叫。
返回的編輯可以替換標準貼上行為。
引數 | 描述 |
---|---|
document: TextDocument | 貼上到的文件。 |
ranges: readonly Range[] | 要貼上到的 文件 中的範圍。 |
dataTransfer: DataTransfer | 與貼上相關聯的 資料傳輸。此物件僅在貼上操作期間有效。 |
context: DocumentPasteEditContext | 貼上的附加上下文。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T[]> | 可以應用貼上的潛在 編輯 集。一次只應用一個返回的 DocumentPasteEdit。如果所有提供程式返回多個編輯,則自動應用第一個編輯,並顯示一個小部件,允許使用者切換到其他編輯。 |
resolveDocumentPasteEdit(pasteEdit: T, token: CancellationToken): ProviderResult<T>
在應用編輯之前填充 DocumentPasteEdit.additionalEdit 的可選方法。
此方法為每個編輯呼叫一次,如果生成完整編輯可能需要很長時間,則應使用此方法。Resolve 只能用於更改 DocumentPasteEdit.insertText 或 DocumentPasteEdit.additionalEdit。
引數 | 描述 |
---|---|
pasteEdit: T | 要解析的 DocumentPasteEdit。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T> | 已解析的貼上編輯或解析為該編輯的 thenable。返回給定的 |
DocumentPasteProviderMetadata
提供有關 DocumentPasteEditProvider 如何工作的附加元資料。
屬性
copyMimeTypes?: readonly string[]
prepareDocumentPaste 在複製時可能新增的 MIME 型別。
pasteMimeTypes?: readonly string[]
應為其呼叫 provideDocumentPasteEdits 的 MIME 型別。
這可以是精確的 MIME 型別,例如 image/png
,也可以是萬用字元模式,例如 image/*
。
對於從資源管理器或工作臺中其他樹檢視拖放的資源,請使用 text/uri-list
。
使用 files
表示如果 DataTransfer 中存在任何 檔案,則應呼叫提供程式。請注意,DataTransferFile 條目僅在從編輯器外部(例如從作業系統)貼上內容時建立。
providedPasteEditKinds: readonly DocumentDropOrPasteEditKind[]
提供程式可在 provideDocumentPasteEdits 中返回的 種類 列表。
這用於在請求特定型別的編輯時篩選掉提供程式。
DocumentPasteTriggerKind
請求貼上編輯的原因。
列舉成員
作為正常貼上操作的一部分請求貼上。
使用者透過 paste as
命令請求貼上。
DocumentRangeFormattingEditProvider
文件格式化提供程式介面定義了擴充套件和格式化功能之間的約定。
方法
provideDocumentRangeFormattingEdits(document: TextDocument, range: Range, options: FormattingOptions, token: CancellationToken): ProviderResult<TextEdit[]>
為文件中的範圍提供格式化編輯。
給定的範圍是一個提示,提供者可以決定格式化更小或更大的範圍。通常,這是透過將範圍的開始和結束調整到完整的語法節點來完成的。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
range: Range | 應格式化的範圍。 |
options: FormattingOptions | 控制格式化的選項。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<TextEdit[]> | 一組文字編輯或解析為此類的 thenable。可以透過返回 |
provideDocumentRangesFormattingEdits(document: TextDocument, ranges: Range[], options: FormattingOptions, token: CancellationToken): ProviderResult<TextEdit[]>
為文件中的多個範圍提供格式化編輯。
此函式是可選的,但允許格式化程式在僅格式化修改的範圍或格式化大量選擇時執行得更快。
給定的範圍是提示,提供者可以決定格式化更小或更大的範圍。通常,這是透過將範圍的開始和結束調整到完整的語法節點來完成的。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
ranges: Range[] | 應格式化的範圍。 |
options: FormattingOptions | 控制格式化的選項。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<TextEdit[]> | 一組文字編輯或解析為此類的 thenable。可以透過返回 |
DocumentRangeSemanticTokensProvider
文件範圍語義標記提供程式介面定義了擴充套件和語義標記之間的契約。
方法
provideDocumentRangeSemanticTokens(document: TextDocument, range: Range, token: CancellationToken): ProviderResult<SemanticTokens>
引數 | 描述 |
---|---|
document: TextDocument | |
range: Range | |
token: CancellationToken | |
返回 | 描述 |
ProviderResult<SemanticTokens> |
DocumentSelector
語言選擇器是一個或多個語言識別符號和 語言過濾器 的組合。
請注意,僅包含語言識別符號的文件選擇器會選擇 所有 文件,即使是那些未儲存在磁碟上的文件。僅當功能在沒有進一步上下文的情況下(例如無需解析相關“檔案”)工作時才使用此類選擇器。
示例
let sel: DocumentSelector = { scheme: 'file', language: 'typescript' };
DocumentSelector: DocumentFilter | string | ReadonlyArray<DocumentFilter | string>
DocumentSemanticTokensProvider
文件語義標記提供程式介面定義了擴充套件和語義標記之間的契約。
事件
onDidChangeSemanticTokens?: Event<void>
一個可選事件,用於指示此提供程式的語義標記已更改。
方法
provideDocumentSemanticTokens(document: TextDocument, token: CancellationToken): ProviderResult<SemanticTokens>
檔案中的標記表示為一個整數陣列。每個標記的位置相對於它之前的標記表示,因為在檔案中進行編輯時,大多數標記之間保持相對穩定。
簡而言之,每個標記需要 5 個整數來表示,因此檔案中特定標記 i
由以下陣列索引組成
- 在索引
5*i
處 -deltaLine
:標記行號,相對於前一個標記 - 在索引
5*i+1
處 -deltaStart
:標記開始字元,相對於前一個標記(如果它們在同一行,則相對於 0 或前一個標記的開始) - 在索引
5*i+2
處 -length
:標記的長度。標記不能是多行。 - 在索引
5*i+3
處 -tokenType
:將在SemanticTokensLegend.tokenTypes
中查詢。我們目前要求tokenType
< 65536。 - 在索引
5*i+4
處 -tokenModifiers
:每個設定位將在SemanticTokensLegend.tokenModifiers
中查詢
如何編碼標記
這是一個使用 uint32 陣列編碼包含 3 個標記的檔案的示例
{ 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: [] }
- 首先,必須設計一個圖例。此圖例必須提前提供並捕獲所有可能的標記型別。對於此示例,我們將選擇以下圖例,該圖例必須在註冊提供程式時傳入
tokenTypes: ['property', 'type', 'class'],
tokenModifiers: ['private', 'static']
- 第一個轉換步驟是使用圖例將
tokenType
和tokenModifiers
編碼為整數。標記型別按索引查詢,因此tokenType
值為1
表示tokenTypes[1]
。可以透過使用位標誌設定多個標記修飾符,因此tokenModifier
值為3
首先被視為二進位制0b00000011
,這意味著[tokenModifiers[0], tokenModifiers[1]]
,因為位 0 和 1 已設定。使用此圖例,標記現在是
{ 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 }
- 下一步是表示檔案中每個標記相對於前一個標記。在這種情況下,第二個標記與第一個標記在同一行,因此第二個標記的
startChar
相對於第一個標記的startChar
,因此它將是10 - 5
。第三個標記與第二個標記在不同的行,因此第三個標記的startChar
不會被更改
{ 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 }
- 最後,最後一步是將標記的 5 個欄位內聯到單個數組中,這是一種記憶體友好的表示。
// 1st token, 2nd token, 3rd token
[ 2,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ]
另請參閱 SemanticTokensBuilder 以獲取將標記編碼為整數的幫助程式。注意:在進行編輯時,可能會發生多次編輯,直到編輯器決定呼叫語義標記提供程式。注意:如果提供程式暫時無法計算語義標記,它可以透過丟擲訊息為“Busy”的錯誤來指示。
引數 | 描述 |
---|---|
document: TextDocument | |
token: CancellationToken | |
返回 | 描述 |
ProviderResult<SemanticTokens> |
provideDocumentSemanticTokensEdits(document: TextDocument, previousResultId: string, token: CancellationToken): ProviderResult<SemanticTokens | SemanticTokensEdits>
DocumentSemanticTokensProvider
可以實現此方法 (provideDocumentSemanticTokensEdits
),然後返回對先前提供的語義標記的增量更新,而不是始終返回檔案中的所有標記。
文件更改時標記如何更改
假設 provideDocumentSemanticTokens
先前已返回以下語義標記
// 1st token, 2nd token, 3rd token
[ 2,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ]
還假設在一些編輯之後,檔案中的新語義標記是
// 1st token, 2nd token, 3rd token
[ 3,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ]
可以將這些新標記表示為應用於先前標記的編輯
[ 2,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ] // old tokens
[ 3,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ] // new tokens
edit: { start: 0, deleteCount: 1, data: [3] } // replace integer at offset 0 with 3
注意:如果提供程式無法計算 SemanticTokensEdits
,它可以“放棄”並再次返回文件中的所有標記。注意:SemanticTokensEdits
中的所有編輯都包含舊整數陣列中的索引,因此它們都引用了以前的結果狀態。
引數 | 描述 |
---|---|
document: TextDocument | |
previousResultId: string | |
token: CancellationToken | |
返回 | 描述 |
ProviderResult<SemanticTokens | SemanticTokensEdits> |
DocumentSymbol
表示文件中出現的程式設計結構,如變數、類、介面等。文件符號可以是分層的,它們有兩個範圍:一個包含其定義,一個指向其最有趣的範圍,例如識別符號的範圍。
建構函式
new DocumentSymbol(name: string, detail: string, kind: SymbolKind, range: Range, selectionRange: Range): DocumentSymbol
建立一個新的文件符號。
引數 | 描述 |
---|---|
name: string | 符號的名稱。 |
detail: string | 符號的詳細資訊。 |
kind: SymbolKind | 符號的種類。 |
range: Range | 符號的完整範圍。 |
selectionRange: Range | 應該顯示選擇的範圍。 |
返回 | 描述 |
文件符號 |
屬性
children: DocumentSymbol[]
此符號的子節點,例如類的屬性。
此符號的更多詳細資訊,例如函式的簽名。
kind: SymbolKind
此符號的種類。
此符號的名稱。
range: Range
包含此符號的範圍,不包括前導/尾隨空白,但包括所有其他內容,例如註釋和程式碼。
selectionRange: Range
當選擇此符號時應選擇和顯示的範圍,例如函式的名稱。必須包含在 range 中。
tags?: readonly SymbolTag[]
此符號的標籤。
DocumentSymbolProvider
文件符號提供程式介面定義了擴充套件與 轉到符號 功能之間的契約。
方法
provideDocumentSymbols(document: TextDocument, token: CancellationToken): ProviderResult<DocumentSymbol[] | SymbolInformation[]>
為給定文件提供符號資訊。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<DocumentSymbol[] | SymbolInformation[]> | 一個文件高亮陣列或解析為此類的 thenable。可以透過返回 |
DocumentSymbolProviderMetadata
有關文件符號提供程式的元資料。
屬性
當一個文件顯示多個大綱樹時顯示的易讀字串。
EndOfLine
表示 文件 中的行結束字元序列。
列舉成員
換行符 \n
字元。
回車換行符 \r\n
序列。
EnterAction
描述按 Enter 鍵時執行的操作。
屬性
描述在新行和縮排之後要附加的文字。
indentAction: IndentAction
描述如何處理縮排。
描述從新行的縮排中移除的字元數。
EnvironmentVariableCollection
擴充套件可以應用於程序環境的突變集合。
屬性
description: string | MarkdownString
環境變數集合的描述,這將用於在 UI 中描述更改。
集合是否應為工作區快取並在視窗重新載入時應用於終端。當為 true 時,集合將在視窗重新載入時立即啟用。此外,如果存在快取版本,此 API 將返回快取版本。當擴充套件被解除安裝或集合被清除時,集合將失效。預設為 true。
方法
append(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
將值附加到環境變數。
請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前的所有替換、附加或前置呼叫。
引數 | 描述 |
---|---|
variable: string | 要附加到的變數。 |
value: string | 要附加到變數的值。 |
options?: EnvironmentVariableMutatorOptions | 應用於修改器的選項,如果未提供任何選項,則預設為 |
返回 | 描述 |
void |
清除此集合中的所有修改器。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
delete(variable: string): void
刪除此集合中變數的修改器。
引數 | 描述 |
---|---|
variable: string | 要刪除修改器的變數。 |
返回 | 描述 |
void |
forEach(callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any, thisArg?: any): void
遍歷此集合中的每個修改器。
引數 | 描述 |
---|---|
callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any | 對每個條目執行的函式。 |
thisArg?: any | 呼叫處理函式時使用的 |
返回 | 描述 |
void |
get(variable: string): EnvironmentVariableMutator
獲取此集合應用於變數的修改器(如果有)。
引數 | 描述 |
---|---|
variable: string | 要獲取修改器的變數。 |
返回 | 描述 |
環境變數修改器 |
prepend(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
將值前置到環境變數。
請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前的所有替換、附加或前置呼叫。
引數 | 描述 |
---|---|
variable: string | 要前置的變數。 |
value: string | 要前置到變數的值。 |
options?: EnvironmentVariableMutatorOptions | 應用於修改器的選項,如果未提供任何選項,則預設為 |
返回 | 描述 |
void |
replace(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
用值替換環境變數。
請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前的所有替換、附加或前置呼叫。
引數 | 描述 |
---|---|
variable: string | 要替換的變數。 |
value: string | 替換變數的值。 |
options?: EnvironmentVariableMutatorOptions | 應用於修改器的選項,如果未提供任何選項,則預設為 |
返回 | 描述 |
void |
EnvironmentVariableMutator
應用於環境變數的突變型別及其值。
屬性
options: EnvironmentVariableMutatorOptions
應用於修改器的選項。
type: EnvironmentVariableMutatorType
將對變數發生的突變型別。
用於變數的值。
EnvironmentVariableMutatorOptions
應用於修改器的選項。
屬性
applyAtProcessCreation?: boolean
在程序建立之前立即應用於環境。預設為 false。
applyAtShellIntegration?: boolean
應用於 shell 整合指令碼中的環境。請注意,如果 shell 整合被停用或由於某種原因不起作用,這將 不會 應用修改器。預設為 false。
EnvironmentVariableMutatorType
可以應用於環境變數的突變型別。
列舉成員
替換變數的現有值。
附加到變數現有值的末尾。
前置到變數現有值的開頭。
EnvironmentVariableScope
環境變數集合適用的範圍物件。
屬性
workspaceFolder?: WorkspaceFolder
要獲取集合的任何特定工作區資料夾。
EvaluatableExpression
一個可評估表示式表示文件中可由活動的偵錯程式或執行時評估的表示式。此評估的結果將顯示在類似工具提示的部件中。如果只指定了一個範圍,則將從底層文件中提取表示式。可選表示式可用於覆蓋提取的表示式。在這種情況下,範圍仍用於突出顯示文件中的範圍。
建構函式
new EvaluatableExpression(range: Range, expression?: string): EvaluatableExpression
建立一個新的可評估表示式物件。
屬性
如果指定,表示式將覆蓋提取的表示式。
range: Range
該範圍用於從底層文件中提取可評估表示式並突出顯示它。
EvaluatableExpressionProvider
可評估表示式提供程式介面定義了擴充套件和除錯懸停之間的契約。在此契約中,提供程式返回文件中給定位置的可評估表示式,編輯器在活動的除錯會話中評估此表示式,並在除錯懸停中顯示結果。
方法
provideEvaluatableExpression(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<EvaluatableExpression>
為給定文件和位置提供可評估表示式。編輯器將在活動的除錯會話中評估此表示式,並在除錯懸停中顯示結果。表示式可以透過底層文件中的範圍隱式指定,也可以透過顯式返回表示式來指定。
引數 | 描述 |
---|---|
document: TextDocument | 除錯懸停即將出現的文件。 |
position: Position | 除錯懸停即將出現的文件中的行和字元位置。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<EvaluatableExpression> | 可評估表示式或解析為該表示式的 thenable。可以透過返回 |
Event<T>
表示一個型別化事件。
一個表示事件的函式,您可以透過將監聽器函式作為引數呼叫它來訂閱它。
示例
item.onDidChange(function(event) {
console.log('Event happened: ' + event);
});
(listener: (e: T) => any, thisArgs?: any, disposables?: Disposable[]): Disposable
一個表示事件的函式,您可以透過將監聽器函式作為引數呼叫它來訂閱它。
引數 | 描述 |
---|---|
listener: (e: T) => any | 事件發生時將呼叫監聽器函式。 |
thisArgs?: any | 呼叫事件監聽器時將使用的 |
disposables?: Disposable[] | 將新增 Disposable 的陣列。 |
返回 | 描述 |
Disposable | 取消訂閱事件監聽器的 disposable。 |
EventEmitter<T>
事件發射器可用於建立和管理 Event,供其他人訂閱。一個發射器始終擁有一個事件。
如果您想從擴充套件內部提供事件,例如在 TextDocumentContentProvider 內部或向其他擴充套件提供 API 時,請使用此C++類。
建構函式
new EventEmitter<T>(): EventEmitter<T>
引數 | 描述 |
---|---|
返回 | 描述 |
EventEmitter<T> |
屬性
event: Event<T>
事件監聽器可以訂閱的事件。
方法
釋放此物件並釋放資源。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
通知 event 的所有訂閱者。一個或多個監聽器的失敗不會導致此函式呼叫失敗。
引數 | 描述 |
---|---|
data: T | 事件物件。 |
返回 | 描述 |
void |
Extension<T>
表示一個擴充套件。
要獲取 Extension
例項,請使用 getExtension。
屬性
此擴充套件匯出的公共 API(activate
的返回值)。在此擴充套件被啟用之前訪問此欄位是無效的操作。
extensionKind: ExtensionKind
擴充套件型別描述了擴充套件是在 UI 執行的地方執行,還是在遠端擴充套件主機執行的地方執行。擴充套件型別在擴充套件的 package.json
檔案中定義,但也可以透過 remote.extensionKind
設定進行細化。當不存在遠端擴充套件主機時,值為 ExtensionKind.UI。
包含此擴充套件的目錄的絕對檔案路徑。是 Extension.extensionUri.fsPath 的簡寫符號(獨立於 uri 方案)。
extensionUri: Uri
包含擴充套件的目錄的 uri。
規範的擴充套件識別符號,格式為:publisher.name
。
如果擴充套件已被啟用,則為 true
。
擴充套件的 package.json 的解析內容。
方法
啟用此擴充套件並返回其公共 API。
引數 | 描述 |
---|---|
返回 | 描述 |
Thenable<T> | 一個 promise,當此擴充套件被啟用時將解析。 |
ExtensionContext
擴充套件上下文是擴充套件私有實用程式的集合。
ExtensionContext
例項作為第一個引數提供給擴充套件的 activate
呼叫。
屬性
environmentVariableCollection: GlobalEnvironmentVariableCollection
獲取此工作區的擴充套件的全域性環境變數集合,從而可以對終端環境變數進行更改。
extension: Extension<any>
當前的 Extension
例項。
extensionMode: ExtensionMode
擴充套件執行的模式。有關可能的值和場景,請參閱 ExtensionMode。
包含擴充套件的目錄的絕對檔案路徑。是 ExtensionContext.extensionUri.fsPath 的簡寫符號(獨立於 uri 方案)。
extensionUri: Uri
包含擴充套件的目錄的 uri。
globalState: Memento & {setKeysForSync}
一個 memento 物件,用於儲存獨立於當前開啟的 工作區 的狀態。
一個絕對檔案路徑,擴充套件可以在其中儲存全域性狀態。該目錄可能不存在於磁碟上,建立由擴充套件決定。但是,父目錄保證存在。
使用 globalState 儲存鍵值資料。
- 已棄用 - 請改用 globalStorageUri。
globalStorageUri: Uri
一個目錄的 URI,擴充套件可以在其中儲存全域性狀態。該目錄可能不存在於磁碟上,建立由擴充套件決定。但是,父目錄保證存在。
使用 globalState 儲存鍵值資料。
另請參閱 workspace.fs,瞭解如何從 URI 讀取和寫入檔案和資料夾。
languageModelAccessInformation: LanguageModelAccessInformation
一個物件,其中包含有關此擴充套件如何使用語言模型的資訊。
一個絕對檔案路徑,擴充套件可以在其中建立日誌檔案。該目錄可能不存在於磁碟上,建立由擴充套件決定。但是,父目錄保證存在。
- 已棄用 - 請改用 logUri。
logUri: Uri
一個目錄的 URI,擴充套件可以在其中建立日誌檔案。該目錄可能不存在於磁碟上,建立由擴充套件決定。但是,父目錄保證存在。
另請參閱 workspace.fs,瞭解如何從 URI 讀取和寫入檔案和資料夾。
secrets: SecretStorage
一個秘密儲存物件,用於儲存獨立於當前開啟的 工作區 的狀態。
一個工作區特定目錄的絕對檔案路徑,擴充套件可以在其中儲存私有狀態。該目錄可能不存在於磁碟上,建立由擴充套件決定。但是,父目錄保證存在。
使用 workspaceState 或 globalState 儲存鍵值資料。
- 已棄用 - 請改用 storageUri。
storageUri: Uri
一個工作區特定目錄的 URI,擴充套件可以在其中儲存私有狀態。該目錄可能不存在,建立由擴充套件決定。但是,父目錄保證存在。當沒有開啟工作區或資料夾時,值為 undefined
。
使用 workspaceState 或 globalState 儲存鍵值資料。
另請參閱 workspace.fs,瞭解如何從 URI 讀取和寫入檔案和資料夾。
subscriptions: Array<{dispose}>
一個數組,disposable 可以新增到其中。當此擴充套件停用時,disposable 將被釋放。
注意:非同步釋放函式不會被等待。
workspaceState: Memento
一個 memento 物件,用於在當前開啟的 工作區 的上下文中儲存狀態。
方法
asAbsolutePath(relativePath: string): string
獲取擴充套件中包含的資源的絕對路徑。
注意:絕對 uri 可以透過 Uri.joinPath 和 extensionUri 構建,例如 vscode.Uri.joinPath(context.extensionUri, relativePath);
引數 | 描述 |
---|---|
relativePath: string | 擴充套件中包含的資源的相對路徑。 |
返回 | 描述 |
字串 | 資源的絕對路徑。 |
ExtensionKind
在遠端視窗中,擴充套件型別描述了擴充套件是在 UI(視窗)執行的地方執行,還是在遠端執行。
列舉成員
擴充套件在 UI 執行的地方執行。
擴充套件在遠端擴充套件主機執行的地方執行。
ExtensionMode
ExtensionMode 在 ExtensionContext
上提供,指示特定擴充套件執行的模式。
列舉成員
擴充套件在編輯器中正常安裝(例如,從市場或 VSIX)。
擴充套件正在從啟動編輯器時提供的 --extensionDevelopmentPath
執行。
擴充套件正在從 --extensionTestsPath
執行,並且擴充套件主機正在執行單元測試。
ExtensionTerminalOptions
描述虛擬程序終端應使用哪些選項的值物件。
屬性
color?: ThemeColor
終端的圖示 ThemeColor。建議使用標準 terminal.ansi*
主題鍵,以在不同主題之間獲得最佳對比度和一致性。
iconPath?: IconPath
終端的圖示路徑或 ThemeIcon。
選擇退出在重啟和重新載入時預設終端永續性。這僅在啟用 terminal.integrated.enablePersistentSessions
時生效。
location?: TerminalEditorLocationOptions | TerminalSplitLocationOptions | TerminalLocation
一個人類可讀的字串,將用於在 UI 中表示終端。
pty: Pseudoterminal
允許擴充套件控制終端的 Pseudoterminal 的實現。
shellIntegrationNonce?: string
用於驗證 shell 整合序列是否來自可信來源的 nonce。這在使用者體驗方面的一個影響是,如果命令列帶有 nonce,則在透過 shell 整合命令裝飾 重新執行它之前,不需要與使用者驗證命令列是否正確。
如果終端包含 自定義 shell 整合支援,則應使用此選項。它應設定為隨機 GUID。在 Pseudoterminal 實現中,此值可以在相關序列中傳遞,以使其受信任。
FileChangeEvent
檔案系統提供程式必須用來發出文件更改訊號的事件。
屬性
type: FileChangeType
更改的型別。
uri: Uri
已更改檔案的 uri。
FileChangeType
檔案更改型別的列舉。
列舉成員
檔案的內容或元資料已更改。
已建立檔案。
檔案已被刪除。
FileCoverage
包含檔案的覆蓋率元資料。
靜態
fromDetails(uri: Uri, details: readonly FileCoverageDetail[]): FileCoverage
建立一個 FileCoverage 例項,其計數從覆蓋率詳細資訊中填充。
引數 | 描述 |
---|---|
uri: Uri | 已覆蓋檔案的 URI |
details: readonly FileCoverageDetail[] | 詳細的覆蓋率資訊 |
返回 | 描述 |
檔案覆蓋率 |
建構函式
new FileCoverage(uri: Uri, statementCoverage: TestCoverageCount, branchCoverage?: TestCoverageCount, declarationCoverage?: TestCoverageCount, includesTests?: TestItem[]): FileCoverage
引數 | 描述 |
---|---|
uri: Uri | 已覆蓋檔案的 URI |
statementCoverage: TestCoverageCount | 語句覆蓋率資訊。如果報告器不提供語句覆蓋率資訊,則可以將其用於表示行覆蓋率。 |
branchCoverage?: TestCoverageCount | 分支覆蓋率資訊 |
declarationCoverage?: TestCoverageCount | 宣告覆蓋率資訊 |
includesTests?: TestItem[] | 此覆蓋率報告中包含的測試用例,請參閱 FileCoverage.includesTests |
返回 | 描述 |
檔案覆蓋率 |
屬性
branchCoverage?: TestCoverageCount
分支覆蓋率資訊。
declarationCoverage?: TestCoverageCount
宣告覆蓋率資訊。根據報告器和語言,這可能是函式、方法或名稱空間等型別。
includesTests?: TestItem[]
在此檔案中生成覆蓋率的 測試用例 列表。如果設定,則還應定義 TestRunProfile.loadDetailedCoverageForTest 以檢索詳細的覆蓋率資訊。
statementCoverage: TestCoverageCount
語句覆蓋率資訊。如果報告器不提供語句覆蓋率資訊,則可以將其用於表示行覆蓋率。
uri: Uri
檔案 URI。
FileCoverageDetail
從 TestRunProfile.loadDetailedCoverage 返回的覆蓋率詳細資訊。
FileCoverageDetail: StatementCoverage | DeclarationCoverage
FileCreateEvent
檔案建立後觸發的事件。
屬性
files: readonly Uri[]
已建立的檔案。
FileDecoration
檔案裝飾表示可以與檔案一起呈現的元資料。
建構函式
new FileDecoration(badge?: string, tooltip?: string, color?: ThemeColor): FileDecoration
建立一個新的裝飾。
引數 | 描述 |
---|---|
badge?: string | 表示裝飾的字母。 |
tooltip?: string | 裝飾的工具提示。 |
color?: ThemeColor | 裝飾的顏色。 |
返回 | 描述 |
檔案裝飾 |
屬性
表示此裝飾的非常短的字串。
color?: ThemeColor
此裝飾的顏色。
一個標誌,表示此裝飾應傳播到其父級。
此裝飾的人類可讀工具提示。
FileDecorationProvider
裝飾提供程式介面定義了擴充套件和檔案裝飾之間的契約。
事件
onDidChangeFileDecorations?: Event<Uri | Uri[]>
方法
provideFileDecoration(uri: Uri, token: CancellationToken): ProviderResult<FileDecoration>
為給定的 uri 提供裝飾。
注意:此函式僅在檔案在 UI 中呈現時呼叫。這意味著從子孫向上傳播的裝飾必須透過 onDidChangeFileDecorations 事件通知編輯器。
引數 | 描述 |
---|---|
uri: Uri | 要提供裝飾的檔案的 uri。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<FileDecoration> | 一個裝飾或一個可解析為該裝飾的 thenable。 |
FileDeleteEvent
檔案刪除後觸發的事件。
屬性
files: readonly Uri[]
被刪除的檔案。
FilePermission
檔案的許可權。
列舉成員
檔案為只讀。
注意:所有透過選項 isReadonly: true
註冊的 FileSystemProvider
中的 FileStat
都將被隱式處理為已設定 FilePermission.Readonly
。因此,不可能註冊一個只讀檔案系統提供程式,其中某些 FileStat
不是隻讀的。
FileRenameEvent
檔案重新命名後觸發的事件。
屬性
files: ReadonlyArray<{newUri: Uri, oldUri: Uri}>
被重新命名的檔案。
FileStat
FileStat
型別表示關於檔案的元資料。
屬性
自 1970 年 1 月 1 日 00:00:00 UTC 以來經過的建立時間戳(毫秒)。
自 1970 年 1 月 1 日 00:00:00 UTC 以來經過的修改時間戳(毫秒)。
注意:如果檔案發生更改,提供一個從先前值提前的更新 mtime
是很重要的。否則,可能會有一些最佳化措施,例如,在編輯器中不會顯示更新的檔案內容。
permissions?: FilePermission
檔案的許可權,例如檔案是否只讀。
注意:此值可能是位掩碼,例如 FilePermission.Readonly | FilePermission.Other
。
大小(位元組)。
注意:如果檔案發生更改,提供一個更新的 size
是很重要的。否則,可能會有一些最佳化措施,例如,在編輯器中不會顯示更新的檔案內容。
type: FileType
檔案型別,例如是常規檔案、目錄還是指向檔案的符號連結。
注意:此值可能是位掩碼,例如 FileType.File | FileType.SymbolicLink
。
FileSystem
檔案系統介面公開了編輯器的內建和貢獻的檔案系統提供程式。它允許擴充套件處理本地磁碟檔案以及遠端位置(如遠端擴充套件主機或 FTP 伺服器)的檔案。
注意,此介面的一個例項可作為 workspace.fs 使用。
方法
copy(source: Uri, target: Uri, options?: {overwrite: boolean}): Thenable<void>
複製檔案或資料夾。
createDirectory(uri: Uri): Thenable<void>
建立新目錄(注意,新檔案透過 write
呼叫建立)。
注意,缺少的目錄會自動建立,即此呼叫具有 mkdirp
語義。
引數 | 描述 |
---|---|
uri: Uri | 新資料夾的 URI。 |
返回 | 描述 |
Thenable<void> |
delete(uri: Uri, options?: {recursive: boolean, useTrash: boolean}): Thenable<void>
刪除檔案。
引數 | 描述 |
---|---|
uri: Uri | 要刪除的資源。 |
options?: {recursive: boolean, useTrash: boolean} | 定義是否應使用回收站以及是否遞迴刪除資料夾。 |
返回 | 描述 |
Thenable<void> |
isWritableFileSystem(scheme: string): boolean
檢查給定檔案系統是否支援寫入檔案。
請記住,即使檔案系統支援寫入,也並不意味著寫入總是成功的。可能會存在許可權問題或其他阻止寫入檔案的錯誤。
引數 | 描述 |
---|---|
scheme: string | 檔案系統的方案,例如 |
返回 | 描述 |
布林值 | 如果檔案系統支援寫入,則為 |
readDirectory(uri: Uri): Thenable<Array<[string, FileType]>>
檢索目錄的所有條目。
readFile(uri: Uri): Thenable<Uint8Array>
讀取檔案的全部內容。
引數 | 描述 |
---|---|
uri: Uri | 檔案的 URI。 |
返回 | 描述 |
Thenable<Uint8Array> | 位元組陣列或解析為位元組陣列的 thenable。 |
rename(source: Uri, target: Uri, options?: {overwrite: boolean}): Thenable<void>
重新命名檔案或資料夾。
stat(uri: Uri): Thenable<FileStat>
writeFile(uri: Uri, content: Uint8Array): Thenable<void>
將資料寫入檔案,替換其全部內容。
引數 | 描述 |
---|---|
uri: Uri | 檔案的 URI。 |
content: Uint8Array | 檔案的新內容。 |
返回 | 描述 |
Thenable<void> |
FileSystemError
檔案系統提供程式應使用此型別來指示錯誤。
此類別為常見的錯誤情況提供了工廠方法,例如當檔案或資料夾不存在時使用 FileNotFound
,使用方式如下:throw vscode.FileSystemError.FileNotFound(someUri);
靜態
FileExists(messageOrUri?: string | Uri): FileSystemError
FileIsADirectory(messageOrUri?: string | Uri): FileSystemError
FileNotADirectory(messageOrUri?: string | Uri): FileSystemError
FileNotFound(messageOrUri?: string | Uri): FileSystemError
NoPermissions(messageOrUri?: string | Uri): FileSystemError
Unavailable(messageOrUri?: string | Uri): FileSystemError
建構函式
new FileSystemError(messageOrUri?: string | Uri): FileSystemError
屬性
標識此錯誤的程式碼。
可能的值是錯誤的名稱,例如 FileNotFound,或針對未指定錯誤的 Unknown
。
FileSystemProvider
檔案系統提供程式定義了編輯器讀取、寫入、發現和管理檔案和資料夾所需的功能。它允許擴充套件從遠端位置(如 ftp 伺服器)提供檔案,並將這些檔案無縫整合到編輯器中。
事件
onDidChangeFile: Event<FileChangeEvent[]>
方法
copy(source: Uri, destination: Uri, options: {overwrite: boolean}): void | Thenable<void>
複製檔案或資料夾。實現此函式是可選的,但它會加快複製操作。
- 丟擲 - 當
source
不存在時丟擲 FileNotFound。
- 丟擲 - 當
destination
的父級不存在時丟擲 FileNotFound,例如無需 mkdirp 邏輯。
- 丟擲 - 當
destination
存在且overwrite
選項不為true
時丟擲 FileExists。
- 丟擲 - 當權限不足時丟擲 NoPermissions。
createDirectory(uri: Uri): void | Thenable<void>
建立新目錄(注意,新檔案透過 write
呼叫建立)。
- 丟擲 - 當
uri
的父級不存在時丟擲 FileNotFound,例如無需 mkdirp 邏輯。
- 丟擲 - 當
uri
已存在時丟擲 FileExists。
- 丟擲 - 當權限不足時丟擲 NoPermissions。
引數 | 描述 |
---|---|
uri: Uri | 新資料夾的 URI。 |
返回 | 描述 |
void | Thenable<void> |
delete(uri: Uri, options: {recursive: boolean}): void | Thenable<void>
引數 | 描述 |
---|---|
uri: Uri | 要刪除的資源。 |
options: {recursive: boolean} | 定義資料夾刪除是否遞迴。 |
返回 | 描述 |
void | Thenable<void> |
readDirectory(uri: Uri): Array<[string, FileType]> | Thenable<Array<[string, FileType]>>
檢索目錄的所有條目。
- 丟擲 - 當
uri
不存在時丟擲 FileNotFound。
readFile(uri: Uri): Uint8Array | Thenable<Uint8Array>
讀取檔案的全部內容。
- 丟擲 - 當
uri
不存在時丟擲 FileNotFound。
引數 | 描述 |
---|---|
uri: Uri | 檔案的 URI。 |
返回 | 描述 |
Uint8Array | Thenable<Uint8Array> | 位元組陣列或解析為位元組陣列的 thenable。 |
rename(oldUri: Uri, newUri: Uri, options: {overwrite: boolean}): void | Thenable<void>
重新命名檔案或資料夾。
- 丟擲 - 當
oldUri
不存在時丟擲 FileNotFound。
- 丟擲 - 當
newUri
的父級不存在時丟擲 FileNotFound,例如無需 mkdirp 邏輯。
- 丟擲 - 當
newUri
存在且overwrite
選項不為true
時丟擲 FileExists。
- 丟擲 - 當權限不足時丟擲 NoPermissions。
stat(uri: Uri): FileStat | Thenable<FileStat>
檢索檔案的元資料。
請注意,符號連結的元資料應是它們所引用的檔案的元資料。但是,除了實際型別外,還必須使用 SymbolicLink 型別,例如 FileType.SymbolicLink | FileType.Directory
。
- 丟擲 - 當
uri
不存在時丟擲 FileNotFound。
watch(uri: Uri, options: {excludes: readonly string[], recursive: boolean}): Disposable
訂閱由 uri
表示的檔案或資料夾中的檔案更改事件。對於資料夾,選項 recursive
指示是否也應監視子資料夾、子子資料夾等中的檔案更改。使用 recursive: false
,只有資料夾的直接子檔案中的更改才應觸發事件。
excludes
陣列用於指示應從檔案監視中排除的路徑。它通常派生自使用者可配置的 files.watcherExclude
設定。每個條目可以是:
- 要排除的絕對路徑
- 要排除的相對路徑(例如
build/output
) - 簡單的 glob 模式(例如
**/build
,output/**
)
檔案系統提供程式的職責是根據這些規則對每個更改呼叫 onDidChangeFile。對於與任何提供的排除項匹配的檔案,不應發出事件。
引數 | 描述 |
---|---|
uri: Uri | 要監視的檔案或資料夾的 URI。 |
options: {excludes: readonly string[], recursive: boolean} | 配置監視。 |
返回 | 描述 |
Disposable | 一個可釋放的物件,它告訴提供程式停止監視 |
writeFile(uri: Uri, content: Uint8Array, options: {create: boolean, overwrite: boolean}): void | Thenable<void>
將資料寫入檔案,替換其全部內容。
- 丟擲 - 當
uri
不存在且未設定create
時丟擲 FileNotFound。
- 丟擲 - 當
uri
的父級不存在且設定了create
時丟擲 FileNotFound,例如無需 mkdirp 邏輯。
- 丟擲 - 當
uri
已存在,設定了create
但未設定overwrite
時丟擲 FileExists。
- 丟擲 - 當權限不足時丟擲 NoPermissions。
引數 | 描述 |
---|---|
uri: Uri | 檔案的 URI。 |
content: Uint8Array | 檔案的新內容。 |
options: {create: boolean, overwrite: boolean} | 定義是否應或必須建立缺失檔案。 |
返回 | 描述 |
void | Thenable<void> |
FileSystemWatcher
檔案系統觀察器通知磁碟上或來自其他 FileSystemProviders 的檔案和資料夾的更改。
要獲取 FileSystemWatcher
的例項,請使用 createFileSystemWatcher。
事件
在檔案/資料夾更改時觸發的事件。
在檔案/資料夾建立時觸發的事件。
在檔案/資料夾刪除時觸發的事件。
屬性
如果此檔案系統觀察器已建立為忽略更改檔案系統事件,則為 true。
如果此檔案系統觀察器已建立為忽略建立檔案系統事件,則為 true。
如果此檔案系統觀察器已建立為忽略刪除檔案系統事件,則為 true。
方法
釋放此物件。
引數 | 描述 |
---|---|
返回 | 描述 |
任意 |
FileType
檔案型別列舉。File
和 Directory
型別也可以是符號連結,在這種情況下使用 FileType.File | FileType.SymbolicLink
和 FileType.Directory | FileType.SymbolicLink
。
列舉成員
檔案型別未知。
常規檔案。
目錄。
指向檔案的符號連結。
FileWillCreateEvent
屬性
files: readonly Uri[]
即將建立的檔案。
token: CancellationToken
取消令牌。
方法
waitUntil(thenable: Thenable<WorkspaceEdit>): void
允許暫停事件並應用 工作區編輯。
注意:此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫。
workspace.onWillCreateFiles(event => {
// async, will *throw* an error
setTimeout(() => event.waitUntil(promise));
// sync, OK
event.waitUntil(promise);
});
引數 | 描述 |
---|---|
thenable: Thenable<WorkspaceEdit> | 延遲儲存的 thenable。 |
返回 | 描述 |
void |
waitUntil(thenable: Thenable<any>): void
允許暫停事件直到提供的 thenable 解析。
注意:此函式只能在事件分派期間呼叫。
引數 | 描述 |
---|---|
thenable: Thenable<any> | 延遲儲存的 thenable。 |
返回 | 描述 |
void |
FileWillDeleteEvent
屬性
files: readonly Uri[]
即將刪除的檔案。
token: CancellationToken
取消令牌。
方法
waitUntil(thenable: Thenable<WorkspaceEdit>): void
允許暫停事件並應用 工作區編輯。
注意:此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫。
workspace.onWillCreateFiles(event => {
// async, will *throw* an error
setTimeout(() => event.waitUntil(promise));
// sync, OK
event.waitUntil(promise);
});
引數 | 描述 |
---|---|
thenable: Thenable<WorkspaceEdit> | 延遲儲存的 thenable。 |
返回 | 描述 |
void |
waitUntil(thenable: Thenable<any>): void
允許暫停事件直到提供的 thenable 解析。
注意:此函式只能在事件分派期間呼叫。
引數 | 描述 |
---|---|
thenable: Thenable<any> | 延遲儲存的 thenable。 |
返回 | 描述 |
void |
FileWillRenameEvent
屬性
files: ReadonlyArray<{newUri: Uri, oldUri: Uri}>
即將重新命名的檔案。
token: CancellationToken
取消令牌。
方法
waitUntil(thenable: Thenable<WorkspaceEdit>): void
允許暫停事件並應用 工作區編輯。
注意:此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫。
workspace.onWillCreateFiles(event => {
// async, will *throw* an error
setTimeout(() => event.waitUntil(promise));
// sync, OK
event.waitUntil(promise);
});
引數 | 描述 |
---|---|
thenable: Thenable<WorkspaceEdit> | 延遲儲存的 thenable。 |
返回 | 描述 |
void |
waitUntil(thenable: Thenable<any>): void
允許暫停事件直到提供的 thenable 解析。
注意:此函式只能在事件分派期間呼叫。
引數 | 描述 |
---|---|
thenable: Thenable<any> | 延遲儲存的 thenable。 |
返回 | 描述 |
void |
FoldingContext
摺疊上下文(供將來使用)
FoldingRange
基於行的摺疊範圍。為有效,起始行和結束行必須大於零且小於文件中的行數。無效範圍將被忽略。
建構函式
new FoldingRange(start: number, end: number, kind?: FoldingRangeKind): FoldingRange
建立新的摺疊範圍。
引數 | 描述 |
---|---|
start: number | 摺疊範圍的起始行。 |
end: number | 摺疊範圍的結束行。 |
kind?: FoldingRangeKind | 摺疊範圍的型別。 |
返回 | 描述 |
摺疊範圍 |
屬性
要摺疊範圍的基於零的結束行。摺疊區域以該行的最後一個字元結束。為有效,結束行必須為零或更大,並小於文件中的行數。
kind?: FoldingRangeKind
描述摺疊範圍的 Kind,例如 Comment 或 Region。該 kind 用於對摺疊範圍進行分類,並由“摺疊所有註釋”等命令使用。有關所有型別的列舉,請參閱 FoldingRangeKind。如果未設定,則該範圍源自語法元素。
要摺疊範圍的基於零的起始行。摺疊區域從該行的最後一個字元之後開始。為有效,結束行必須為零或更大,並小於文件中的行數。
FoldingRangeKind
特定摺疊範圍型別的列舉。型別是 FoldingRange 的可選欄位,用於區分特定的摺疊範圍,例如源自注釋的範圍。該型別由 Fold all comments
或 Fold all regions
等命令使用。如果未在範圍內設定型別,則該範圍源自注釋、匯入或區域標記以外的語法元素。
列舉成員
表示註釋的摺疊範圍型別。
表示匯入的摺疊範圍型別。
表示源自摺疊標記(如 #region
和 #endregion
)的區域的摺疊範圍型別。
FoldingRangeProvider
摺疊範圍提供程式介面定義了擴充套件和編輯器中摺疊功能之間的契約。
事件
onDidChangeFoldingRanges?: Event<void>
一個可選事件,用於指示此提供程式中的摺疊範圍已更改。
方法
provideFoldingRanges(document: TextDocument, context: FoldingContext, token: CancellationToken): ProviderResult<FoldingRange[]>
返回摺疊範圍列表,如果提供程式不想參與或被取消,則返回 null 和 undefined。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
context: FoldingContext | 附加上下文資訊(供將來使用) |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<FoldingRange[]> |
FormattingOptions
描述格式化應使用哪些選項的值物件。
屬性
優先使用空格而不是製表符。
製表符的大小(以空格為單位)。
FunctionBreakpoint
由函式名稱指定的斷點。
建構函式
new FunctionBreakpoint(functionName: string, enabled?: boolean, condition?: string, hitCondition?: string, logMessage?: string): FunctionBreakpoint
建立新的函式斷點。
引數 | 描述 |
---|---|
functionName: string | |
enabled?: boolean | |
condition?: string | |
hitCondition?: string | |
logMessage?: string | |
返回 | 描述 |
函式斷點 |
屬性
條件斷點的可選表示式。
斷點是否啟用。
此斷點所附加的函式的名稱。
控制忽略多少次斷點命中的可選表示式。
斷點的唯一 ID。
命中此斷點時記錄的可選訊息。大括號中的嵌入表示式由除錯介面卡進行插值。
GlobalEnvironmentVariableCollection
擴充套件可以應用於程序環境的突變集合。適用於所有作用域。
屬性
description: string | MarkdownString
環境變數集合的描述,這將用於在 UI 中描述更改。
集合是否應為工作區快取並在視窗重新載入時應用於終端。當為 true 時,集合將在視窗重新載入時立即啟用。此外,如果存在快取版本,此 API 將返回快取版本。當擴充套件被解除安裝或集合被清除時,集合將失效。預設為 true。
方法
append(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
將值附加到環境變數。
請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前的所有替換、附加或前置呼叫。
引數 | 描述 |
---|---|
variable: string | 要附加到的變數。 |
value: string | 要附加到變數的值。 |
options?: EnvironmentVariableMutatorOptions | 應用於修改器的選項,如果未提供任何選項,則預設為 |
返回 | 描述 |
void |
清除此集合中的所有修改器。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
delete(variable: string): void
刪除此集合中變數的修改器。
引數 | 描述 |
---|---|
variable: string | 要刪除修改器的變數。 |
返回 | 描述 |
void |
forEach(callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any, thisArg?: any): void
遍歷此集合中的每個修改器。
引數 | 描述 |
---|---|
callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any | 對每個條目執行的函式。 |
thisArg?: any | 呼叫處理函式時使用的 |
返回 | 描述 |
void |
get(variable: string): EnvironmentVariableMutator
獲取此集合應用於變數的修改器(如果有)。
引數 | 描述 |
---|---|
variable: string | 要獲取修改器的變數。 |
返回 | 描述 |
環境變數修改器 |
getScoped(scope: EnvironmentVariableScope): EnvironmentVariableCollection
獲取擴充套件的作用域特定的環境變數集合。這允許僅在指定作用域內更改終端環境變數,並在此全域性集合之後(和額外)應用。
透過此方法獲取的每個物件都是獨立的,不影響其他作用域的物件,包括全域性集合。
引數 | 描述 |
---|---|
scope: EnvironmentVariableScope | 環境變數集合適用的作用域。 如果省略 scope 引數,則返回適用於該引數所有相關 scope 的集合。例如,如果未指定 'workspaceFolder' 引數,則將返回適用於所有工作區資料夾的集合。 |
返回 | 描述 |
環境變數集合 | 傳遞作用域的環境變數集合。 |
prepend(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
將值前置到環境變數。
請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前的所有替換、附加或前置呼叫。
引數 | 描述 |
---|---|
variable: string | 要前置的變數。 |
value: string | 要前置到變數的值。 |
options?: EnvironmentVariableMutatorOptions | 應用於修改器的選項,如果未提供任何選項,則預設為 |
返回 | 描述 |
void |
replace(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
用值替換環境變數。
請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前的所有替換、附加或前置呼叫。
引數 | 描述 |
---|---|
variable: string | 要替換的變數。 |
value: string | 替換變數的值。 |
options?: EnvironmentVariableMutatorOptions | 應用於修改器的選項,如果未提供任何選項,則預設為 |
返回 | 描述 |
void |
GlobPattern
用於匹配檔案路徑的檔案 glob 模式。這可以是一個 glob 模式字串(如 **/*.{ts,js}
或 *.{ts,js}
)或一個 相對模式。
Glob 模式可以有以下語法:
*
匹配路徑段中的零個或多個字元?
匹配路徑段中的一個字元**
匹配任意數量的路徑段,包括零個{}
用於分組條件(例如**/*.{ts,js}
匹配所有 TypeScript 和 JavaScript 檔案)[]
用於宣告路徑段中要匹配的字元範圍(例如,example.[0-9]
匹配example.0
,example.1
, ...)[!...]
用於否定路徑段中要匹配的字元範圍(例如,example.[!0-9]
匹配example.a
,example.b
,但不匹配example.0
)
注意:反斜槓 (``) 在 glob 模式中無效。如果您有現有的檔案路徑要匹配,請考慮使用 相對模式 支援,它負責將任何反斜槓轉換為正斜槓。否則,請確保在建立 glob 模式時將任何反斜槓轉換為正斜槓。
GlobPattern: string | RelativePattern
Hover
懸停表示符號或單詞的附加資訊。懸停以類似工具提示的小部件呈現。
建構函式
new Hover(contents: MarkdownString | MarkedString | Array<MarkdownString | MarkedString>, range?: Range): Hover
建立新的懸停物件。
引數 | 描述 |
---|---|
contents: MarkdownString | MarkedString | Array<MarkdownString | MarkedString> | 懸停的內容。 |
range?: Range | 懸停適用的範圍。 |
返回 | 描述 |
Hover |
屬性
contents: Array<MarkdownString | MarkedString>
此懸停的內容。
range?: Range
此懸停適用的範圍。如果缺失,編輯器將使用當前位置的單詞範圍或當前位置本身。
HoverProvider
懸停提供程式介面定義了擴充套件與懸停功能之間的契約。
方法
provideHover(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<Hover>
為給定位置和文件提供懸停。同一位置的多個懸停將由編輯器合併。懸停可以有一個範圍,如果省略,則預設為該位置的單詞範圍。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
position: Position | 呼叫命令的位置。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<Hover> | 懸停或解析為懸停的 thenable。可以透過返回 |
IconPath
表示 UI 中的一個圖示。這可以是一個 URI,或者是用於淺色和深色主題的單獨 URI,或者是一個 主題圖示。
IconPath: Uri | {dark: Uri, light: Uri} | ThemeIcon
ImplementationProvider
實現提供程式介面定義了擴充套件和跳轉到實現功能之間的契約。
方法
provideImplementation(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<Definition | LocationLink[]>
提供給定位置和文件中符號的實現。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
position: Position | 呼叫命令的位置。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<Definition | LocationLink[]> | 一個定義或解析為定義的 thenable。可以透過返回 |
IndentAction
描述按 Enter 鍵時縮排應如何處理。
列舉成員
插入新行並複製上一行的縮排。
插入新行並縮排一次(相對於上一行的縮排)。
插入兩行新行
- 第一行縮排,游標將停留在該行
- 第二行保持相同的縮排級別
插入新行並取消縮排一次(相對於上一行的縮排)。
IndentationRule
描述語言的縮排規則。
屬性
如果某行匹配此模式,則其後的所有行應取消縮排一次(直到匹配另一個規則)。
如果某行匹配此模式,則其後的所有行應縮排一次(直到匹配另一個規則)。
indentNextLinePattern?: RegExp
如果某行匹配此模式,則其下一行應僅縮排一次。
unIndentedLinePattern?: RegExp
如果某行匹配此模式,則其縮排不應更改,並且不應根據其他規則進行評估。
InlayHint
內聯提示資訊。
建構函式
new InlayHint(position: Position, label: string | InlayHintLabelPart[], kind?: InlayHintKind): InlayHint
建立一個新的內聯提示。
引數 | 描述 |
---|---|
position: Position | 提示的位置。 |
label: string | InlayHintLabelPart[] | 提示的標籤。 |
kind?: InlayHintKind | 提示的 型別。 |
返回 | 描述 |
內聯提示 |
屬性
kind?: InlayHintKind
此提示的型別。內聯提示型別定義此內聯提示的外觀。
label: string | InlayHintLabelPart[]
此提示的標籤。可讀字串或 標籤部分 陣列。
注意 字串和標籤部分都不能為空。
在提示前渲染填充。填充將使用編輯器的背景顏色,而不是提示本身的背景顏色。這意味著填充可用於視覺上對齊/分隔內聯提示。
在提示後渲染填充。填充將使用編輯器的背景顏色,而不是提示本身的背景顏色。這意味著填充可用於視覺上對齊/分隔內聯提示。
position: Position
此提示的位置。
textEdits?: TextEdit[]
tooltip?: string | MarkdownString
懸停在此專案上時顯示的工具提示文字。
注意,此屬性可以在解析內聯提示的 後期 設定。
InlayHintKind
內聯提示型別。
內聯提示的型別定義其外觀,例如使用相應的文字和背景顏色。
列舉成員
用於型別註釋的內聯提示。
用於引數的內聯提示。
InlayHintLabelPart
內聯提示標籤部分允許內聯提示的互動式和複合標籤。
建構函式
new InlayHintLabelPart(value: string): InlayHintLabelPart
建立新的內聯提示標籤部分。
引數 | 描述 |
---|---|
value: string | 部分的價值。 |
返回 | 描述 |
內聯提示標籤部分 |
屬性
command?: Command
location?: Location
tooltip?: string | MarkdownString
懸停在此標籤部分時顯示的工具提示文字。
注意,此屬性可以在解析內聯提示的 後期 設定。
此標籤部分的值。
InlayHintsProvider<T>
內聯提示提供程式介面定義了擴充套件與內聯提示功能之間的契約。
事件
onDidChangeInlayHints?: Event<void>
一個可選事件,用於指示此提供程式中的內聯提示已更改。
方法
provideInlayHints(document: TextDocument, range: Range, token: CancellationToken): ProviderResult<T[]>
為給定的範圍和文件提供內聯提示。
注意,不被給定範圍 包含 的內聯提示將被忽略。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
range: Range | 應計算內聯提示的範圍。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T[]> | 一個內聯提示陣列,或者一個能解析為該陣列的 Thenable。 |
resolveInlayHint(hint: T, token: CancellationToken): ProviderResult<T>
引數 | 描述 |
---|---|
hint: T | 一個內聯提示。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T> | 已解析的內聯提示,或者一個能解析為該提示的 Thenable。返回給定的 |
InlineCompletionContext
提供有關請求內聯補全的上下文資訊。
屬性
selectedCompletionInfo: SelectedCompletionInfo
如果自動補全小部件可見,則提供有關當前選定專案的資訊。
如果已設定,提供的內聯補全必須擴充套件所選專案的文字並使用相同的範圍,否則它們將不顯示為預覽。例如,如果文件文字是 console.
並且所選專案是替換文件中 .
的 .log
,則內聯補全也必須替換 .
並以 .log
開頭,例如 .log()
。
每當所選專案更改時,內聯補全提供程式會再次被請求。
triggerKind: InlineCompletionTriggerKind
描述內聯補全是如何觸發的。
InlineCompletionItem
一個內聯補全項表示一個文字片段,建議內聯以補全正在輸入的文字。
另請參閱 InlineCompletionItemProvider.provideInlineCompletionItems
建構函式
new InlineCompletionItem(insertText: string | SnippetString, range?: Range, command?: Command): InlineCompletionItem
建立一個新的內聯補全項。
引數 | 描述 |
---|---|
insertText: string | SnippetString | 用於替換範圍的文字。 |
range?: Range | 要替換的範圍。如果未設定,將使用請求位置的單詞。 |
command?: Command | 一個可選的 Command,在插入此補全後執行。 |
返回 | 描述 |
InlineCompletionItem |
屬性
command?: Command
一個可選的 Command,在插入此補全後執行。
用於決定是否顯示此內聯補全的文字。當 falsy
時,使用 InlineCompletionItem.insertText。
如果替換的文字是篩選文字的字首,則顯示內聯補全。
insertText: string | SnippetString
用於替換範圍的文字。必須設定。用於預覽和接受操作。
range?: Range
要替換的範圍。必須在同一行開始和結束。
當用戶刪除已鍵入的文字時,優先使用替換而不是插入以提供更好的體驗。
InlineCompletionItemProvider
內聯補全項提供程式介面定義了擴充套件與內聯補全功能之間的契約。
提供程式會根據使用者手勢顯式請求補全,或在鍵入時隱式請求。
方法
provideInlineCompletionItems(document: TextDocument, position: Position, context: InlineCompletionContext, token: CancellationToken): ProviderResult<InlineCompletionList | InlineCompletionItem[]>
為給定位置和文件提供內聯補全項。如果啟用了內聯補全,則當用戶停止鍵入時,將呼叫此方法。當用戶顯式觸發內聯補全或顯式請求下一個或上一個內聯補全時,也會呼叫此方法。在這種情況下,應返回所有可用的內聯補全。context.triggerKind
可用於區分這些場景。
引數 | 描述 |
---|---|
document: TextDocument | 請求內聯補全的文件。 |
position: Position | 請求內聯補全的位置。 |
context: InlineCompletionContext | 帶有附加資訊的上下文物件。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<InlineCompletionList | InlineCompletionItem[]> | 一個補全項陣列,或者一個能解析為補全項陣列的 Thenable。 |
InlineCompletionList
表示要在編輯器中顯示的 內聯補全項 集合。
建構函式
new InlineCompletionList(items: InlineCompletionItem[]): InlineCompletionList
建立一個新的內聯補全項列表。
引數 | 描述 |
---|---|
items: InlineCompletionItem[] | |
返回 | 描述 |
InlineCompletionList |
屬性
items: InlineCompletionItem[]
內聯補全項。
InlineCompletionTriggerKind
描述 內聯補全提供程式 是如何觸發的。
列舉成員
補全由使用者手勢顯式觸發。返回多個補全項以實現迴圈切換。
補全在編輯時自動觸發。在這種情況下,返回單個補全項就足夠了。
InlineValue
內聯值資訊可以透過不同的方式提供
- 直接作為文字值(InlineValueText 類)。
- 作為用於變數查詢的名稱(InlineValueVariableLookup 類)
- 作為可求值表示式(InlineValueEvaluatableExpression 類)InlineValue 型別將所有內聯值型別組合為一個型別。
InlineValue: InlineValueText | InlineValueVariableLookup | InlineValueEvaluatableExpression
InlineValueContext
一個值物件,其中包含從 InlineValuesProvider 請求內聯值時的上下文資訊。
屬性
執行停止的堆疊幀(以 DAP ID 表示)。
stoppedLocation: Range
執行停止的文件範圍。通常,範圍的結束位置表示顯示內聯值的行。
InlineValueEvaluatableExpression
透過表示式求值提供內聯值。如果只指定了範圍,表示式將從基礎文件中提取。一個可選的表示式可用於覆蓋提取的表示式。
建構函式
new InlineValueEvaluatableExpression(range: Range, expression?: string): InlineValueEvaluatableExpression
建立一個新的 InlineValueEvaluatableExpression 物件。
引數 | 描述 |
---|---|
range: Range | 從中提取可評估表示式的底層文件中的範圍。 |
expression?: string | 如果指定,則覆蓋提取的表示式。 |
返回 | 描述 |
InlineValueEvaluatableExpression |
屬性
如果指定,表示式將覆蓋提取的表示式。
range: Range
內聯值適用的文件範圍。該範圍用於從基礎文件中提取可求值表示式。
InlineValuesProvider
內聯值提供程式介面定義了擴充套件與編輯器的偵錯程式內聯值功能之間的契約。在此契約中,提供程式為給定的文件範圍返回內聯值資訊,編輯器在行末顯示此資訊。
事件
onDidChangeInlineValues?: Event<void>
一個可選事件,用於指示內聯值已更改。
另請參閱 EventEmitter
方法
provideInlineValues(document: TextDocument, viewPort: Range, context: InlineValueContext, token: CancellationToken): ProviderResult<InlineValue[]>
為給定的文件和範圍提供“內聯值”資訊。當除錯在給定文件中停止時,編輯器會呼叫此方法。返回的內聯值資訊將在編輯器中的行末呈現。
引數 | 描述 |
---|---|
document: TextDocument | 需要內聯值資訊的文件。 |
viewPort: Range | 應計算內聯值的可見文件範圍。 |
context: InlineValueContext | 一個包含上下文資訊(如當前位置)的包。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<InlineValue[]> | 一個 InlineValueDescriptor 陣列,或者一個能解析為該陣列的 Thenable。可以透過返回 |
InlineValueText
以文字形式提供內聯值。
建構函式
new InlineValueText(range: Range, text: string): InlineValueText
建立一個新的 InlineValueText 物件。
引數 | 描述 |
---|---|
range: Range | 顯示內聯值的文件行。 |
text: string | 為該行顯示的值。 |
返回 | 描述 |
InlineValueText |
屬性
range: Range
內聯值適用的文件範圍。
內聯值的文字。
InlineValueVariableLookup
透過變數查詢提供內聯值。如果只指定了範圍,變數名將從基礎文件中提取。一個可選的變數名可用於覆蓋提取的名稱。
建構函式
new InlineValueVariableLookup(range: Range, variableName?: string, caseSensitiveLookup?: boolean): InlineValueVariableLookup
建立一個新的 InlineValueVariableLookup 物件。
引數 | 描述 |
---|---|
range: Range | 顯示內聯值的文件行。 |
variableName?: string | 要查詢的變數的名稱。 |
caseSensitiveLookup?: boolean | 如何執行查詢。如果缺失,查詢區分大小寫。 |
返回 | 描述 |
InlineValueVariableLookup |
屬性
如何執行查詢。
range: Range
內聯值適用的文件範圍。該範圍用於從基礎文件中提取變數名。
如果指定,要查詢的變數的名稱。
InputBox
一個具體的 QuickInput,允許使用者輸入文字值。
請注意,在許多情況下,更方便的 window.showInputBox 更易於使用。window.createInputBox 應在 window.showInputBox 無法提供所需靈活性時使用。
事件
onDidAccept: Event<void>
當用戶表示接受輸入值時發出的事件。
onDidChangeValue: Event<string>
當值發生變化時發出的事件。
onDidHide: Event<void>
當此輸入 UI 隱藏時發出的事件。
此 UI 可能因多種原因而隱藏,擴充套件將透過 QuickInput.onDidHide 收到通知。(示例包括:顯式呼叫 QuickInput.hide,使用者按下 Esc,開啟其他輸入 UI 等)。
onDidTriggerButton: Event<QuickInputButton>
當按鈕被觸發時發出的事件。
屬性
如果 UI 應顯示進度指示器。預設為 false。
將其更改為 true,例如,在載入更多資料或驗證使用者輸入時。
buttons: readonly QuickInputButton[]
UI 中的操作按鈕。
如果 UI 應該允許使用者輸入。預設為 true。
將其更改為 false,例如,在驗證使用者輸入或為使用者輸入的下一步載入資料時。
如果 UI 即使失去 UI 焦點也應保持開啟狀態。預設為 false。此設定在 iPad 上被忽略,始終為 false。
如果輸入值應隱藏。預設為 false。
未輸入值時顯示的可選佔位符。
一個可選的提示文字,向用戶提供一些要求或解釋。
一個可選的當前步數。
一個可選標題。
一個可選的總步數。
validationMessage: string | InputBoxValidationMessage
一個可選的驗證訊息,指示當前輸入值的問題。透過返回字串,InputBox 將使用預設的 InputBoxValidationSeverity (Error)。返回 undefined 清除驗證訊息。
當前輸入值。
valueSelection: readonly [number, number]
輸入值中的選定範圍。定義為兩個數字的元組,其中第一個是包含的起始索引,第二個是排他的結束索引。當 undefined
時,將選擇整個預填充值;當為空(起始等於結束)時,只設置游標;否則,將選擇定義的範圍。
當用戶鍵入或進行選擇時,此屬性不會更新,但可以透過擴充套件進行更新。
方法
處理此輸入 UI 和任何相關資源。如果它仍然可見,則首先隱藏它。在此呼叫之後,輸入 UI 不再具有功能,不應再訪問其上的其他方法或屬性。相反,應建立一個新的輸入 UI。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
隱藏此輸入 UI。這還將觸發一個 QuickInput.onDidHide 事件。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
使輸入 UI 以其當前配置可見。任何其他輸入 UI 將首先觸發一個 QuickInput.onDidHide 事件。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
InputBoxOptions
用於配置輸入框 UI 行為的選項。
屬性
設定為 true
,以便當焦點移到編輯器的其他部分或另一個視窗時,輸入框仍保持開啟狀態。此設定在 iPad 上被忽略,始終為 false。
控制是否顯示密碼輸入。密碼輸入會隱藏鍵入的文字。
一個可選字串,在輸入框中顯示為佔位符,以指導使用者輸入。
顯示在輸入框下方的文字。
一個可選字串,表示輸入框的標題。
用於預填充輸入框的值。
valueSelection?: [number, number]
預填充 值 的選擇。定義為兩個數字的元組,其中第一個是包含的起始索引,第二個是排他的結束索引。當 undefined
時,將選擇整個預填充值;當為空(起始等於結束)時,只設置游標;否則,將選擇定義的範圍。
方法
validateInput(value: string): string | InputBoxValidationMessage | Thenable<string | InputBoxValidationMessage>
一個可選函式,將呼叫該函式以驗證輸入並向用戶提供提示。
引數 | 描述 |
---|---|
value: string | 輸入框的當前值。 |
返回 | 描述 |
string | InputBoxValidationMessage | Thenable<string | InputBoxValidationMessage> | 一個人類可讀的字串,作為錯誤訊息呈現,或者一個 InputBoxValidationMessage,可以提供特定的訊息嚴重性。當“value”有效時,返回 |
InputBoxValidationMessage
用於配置驗證訊息行為的物件。
屬性
要顯示的驗證訊息。
severity: InputBoxValidationSeverity
驗證訊息的嚴重性。注意:當使用 InputBoxValidationSeverity.Error
時,將不允許使用者接受(按 ENTER 鍵)輸入。Info
和 Warning
仍將允許 InputBox 接受輸入。
InputBoxValidationSeverity
輸入框驗證的嚴重性級別。
列舉成員
資訊性嚴重性級別。
警告嚴重性級別。
錯誤嚴重性級別。
LanguageConfiguration
語言配置介面定義了擴充套件與各種編輯器功能之間的契約,例如自動括號插入、自動縮排等。
屬性
__characterPairSupport?: {autoClosingPairs: Array<{close: string, notIn: string[], open: string}>}
已棄用 請勿使用。
- 已棄用 - * 請改用語言配置檔案中的 autoClosingPairs 屬性。
引數 | 描述 |
---|---|
autoClosingPairs: Array<{close: string, notIn: string[], open: string}> |
|
__electricCharacterSupport?: {brackets: any, docComment: {close: string, lineStart: string, open: string, scope: string}}
已棄用 請勿使用。
- 已棄用 - 將很快被更好的 API 替換。
引數 | 描述 |
---|---|
brackets: any | 此屬性已棄用,並且編輯器將忽略。
|
docComment: {close: string, lineStart: string, open: string, scope: string} | 此屬性已棄用,且編輯器不再完全支援(scope 和 lineStart 被忽略)。請改用語言配置檔案中的 autoClosingPairs 屬性。
|
autoClosingPairs?: AutoClosingPair[]
該語言的自動閉合對。
brackets?: CharacterPair[]
該語言的括號。此配置隱式影響在這些括號周圍按 Enter 鍵。
comments?: CommentRule
該語言的註釋設定。
indentationRules?: IndentationRule
該語言的縮排設定。
onEnterRules?: OnEnterRule[]
按 Enter 鍵時要評估的語言規則。
該語言的單詞定義。如果該語言支援 Unicode 識別符號(例如 JavaScript),最好提供一個使用已知分隔符排除的單詞定義。例如:一個匹配除已知分隔符之外的任何內容的正則表示式(點號允許出現在浮點數中)
/(-?\d*\.\d\w*)|([^\`\~\!\\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>/\?\s]+)/g
LanguageModelAccessInformation
表示有關語言模型訪問的擴充套件特定資訊。
事件
onDidChange: Event<void>
當訪問資訊更改時觸發的事件。
方法
canSendRequest(chat: LanguageModelChat): boolean
檢查是否可以向語言模型發出請求。
注意 呼叫此函式不會觸發同意 UI,而只是檢查持久化狀態。
引數 | 描述 |
---|---|
chat: LanguageModelChat | 一個語言模型聊天物件。 |
返回 | 描述 |
布林值 | 如果可以發出請求,則為 |
LanguageModelChat
表示用於發出聊天請求的語言模型。
另請參閱 lm.selectChatModels
屬性
語言模型的不透明族名。值可能是 gpt-3.5-turbo
、gpt4
、phi2
或 llama
,但它們由貢獻語言的擴充套件定義,並且可能會更改。
語言模型的不透明識別符號。
在單個請求中可以傳送到模型的最大令牌數。
語言模型的人類可讀名稱。
語言模型供應商的知名識別符號。例如 copilot
,但值由貢獻聊天模型的擴充套件定義,需要與它們一起查詢。
模型的不透明版本字串。這由貢獻語言模型的擴充套件定義,並且可能會更改。
方法
countTokens(text: string | LanguageModelChatMessage, token?: CancellationToken): Thenable<number>
使用模型特定的分詞器邏輯計算訊息中的令牌數。
引數 | 描述 |
---|---|
text: string | LanguageModelChatMessage | 字串或訊息例項。 |
token?: CancellationToken | 可選的取消令牌。有關如何建立取消令牌,請參閱 CancellationTokenSource。 |
返回 | 描述 |
Thenable<number> | 一個解析為令牌數的 Thenable。 |
sendRequest(messages: LanguageModelChatMessage[], options?: LanguageModelChatRequestOptions, token?: CancellationToken): Thenable<LanguageModelChatResponse>
使用語言模型發出聊天請求。
注意 語言模型的使用可能受訪問限制和使用者同意的限制。首次呼叫此函式(對於擴充套件)將向用戶顯示同意對話方塊,因此此函式只能在響應使用者操作時呼叫!擴充套件可以使用 LanguageModelAccessInformation.canSendRequest 來檢查它們是否具有發出請求所需的許可權。
如果無法向語言模型發出請求,此函式將返回被拒絕的 promise。原因可能包括
- 未獲得使用者同意,請參閱
NoPermissions
- 模型不再存在,請參閱
NotFound
- 超出配額限制,請參閱
Blocked
- 其他問題,在這種情況下擴充套件必須檢查 [LanguageModelError.cause
LanguageModelError.cause
](#LanguageModelError.causeLanguageModelError.cause
)
擴充套件可以透過將一組工具傳遞給 LanguageModelChatRequestOptions.tools 來利用語言模型工具呼叫。語言模型將返回一個 LanguageModelToolCallPart,擴充套件可以呼叫該工具並使用結果發出另一個請求。
引數 | 描述 |
---|---|
messages: LanguageModelChatMessage[] | 訊息例項陣列。 |
options?: LanguageModelChatRequestOptions | 控制請求的選項。 |
token?: CancellationToken | 控制請求的取消令牌。有關如何建立取消令牌,請參閱 CancellationTokenSource。 |
返回 | 描述 |
Thenable<LanguageModelChatResponse> | 一個解析為 LanguageModelChatResponse 的 Thenable。如果請求無法發出,promise 將被拒絕。 |
LanguageModelChatInformation
表示由 LanguageModelChatProvider 提供的語言模型。
屬性
capabilities: {imageInput: boolean, toolCalling: number | boolean}
模型支援的各種功能,例如工具呼叫或影像輸入。
引數 | 描述 |
---|---|
imageInput: boolean | 模型是否支援影像輸入。通常支援的影像是 jpg 和 png,但每個模型支援的 MIME 型別會有所不同。 |
toolCalling: number | boolean | 模型是否支援工具呼叫。如果提供了數字,則表示單個請求中可以提供給模型的最大工具數量。 |
一個可選的、人類可讀的字串,將與模型一起呈現。對於在 UI 中區分同名模型很有用。
語言模型的不透明族名。值可能是 gpt-3.5-turbo
、gpt4
、phi2
或 llama
語言模型的唯一識別符號。每個提供程式必須唯一,但不需要全域性唯一。
模型可以接受作為輸入的最大令牌數。
模型能夠生成的最大令牌數。
語言模型的人類可讀名稱。
將滑鼠懸停在模型上時要呈現的工具提示。用於提供有關模型的更多資訊。
模型的不透明版本字串。這用作 LanguageModelChatSelector.version 中的查詢值。例如 GPT 4o 有多個版本,如 2024-11-20 和 2024-08-06
LanguageModelChatMessage
表示聊天中的一條訊息。可以扮演不同的角色,例如使用者或助手。
靜態
Assistant(content: string | Array<LanguageModelTextPart | LanguageModelToolCallPart>, name?: string): LanguageModelChatMessage
用於建立新助手訊息的實用程式。
引數 | 描述 |
---|---|
content: string | Array<LanguageModelTextPart | LanguageModelToolCallPart> | 訊息的內容。 |
name?: string | 訊息的可選使用者名稱稱。 |
返回 | 描述 |
LanguageModelChatMessage |
User(content: string | Array<LanguageModelTextPart | LanguageModelToolResultPart>, name?: string): LanguageModelChatMessage
用於建立新使用者訊息的實用程式。
引數 | 描述 |
---|---|
content: string | Array<LanguageModelTextPart | LanguageModelToolResultPart> | 訊息的內容。 |
name?: string | 訊息的可選使用者名稱稱。 |
返回 | 描述 |
LanguageModelChatMessage |
建構函式
new LanguageModelChatMessage(role: LanguageModelChatMessageRole, content: string | LanguageModelInputPart[], name?: string): LanguageModelChatMessage
建立新的使用者訊息。
引數 | 描述 |
---|---|
role: LanguageModelChatMessageRole | 訊息的角色。 |
content: string | LanguageModelInputPart[] | 訊息的內容。 |
name?: string | 訊息的可選使用者名稱稱。 |
返回 | 描述 |
LanguageModelChatMessage |
屬性
content: LanguageModelInputPart[]
一個字串或異構陣列,其中包含訊息內容。某些部分可能對於某些模型是訊息型別特定的。
此訊息的可選使用者名稱稱。
role: LanguageModelChatMessageRole
此訊息的角色。
LanguageModelChatMessageRole
表示聊天訊息的角色。這可以是使用者或助手。
列舉成員
使用者角色,例如與語言模型互動的人類。
助手角色,例如生成響應的語言模型。
LanguageModelChatProvider<T>
LanguageModelChatProvider 實現了對語言模型的訪問,使用者可以透過聊天檢視或透過獲取 LanguageModelChat 的擴充套件 API 來使用。例如,OpenAI 提供程式可以提供 gpt-5、o3 等模型。
事件
onDidChangeLanguageModelChatInformation?: Event<void>
當可用語言模型集發生更改時觸發的可選事件。
方法
provideLanguageModelChatInformation(options: PrepareLanguageModelChatModelOptions, token: CancellationToken): ProviderResult<T[]>
獲取此提供程式提供的可用語言模型列表
引數 | 描述 |
---|---|
options: PrepareLanguageModelChatModelOptions | 指定此函式呼叫上下文的選項 |
token: CancellationToken | 取消令牌 |
返回 | 描述 |
ProviderResult<T[]> | 可用語言模型列表 |
provideLanguageModelChatResponse(model: T, messages: readonly LanguageModelChatRequestMessage[], options: ProvideLanguageModelChatResponseOptions, progress: Progress<LanguageModelResponsePart>, token: CancellationToken): Thenable<void>
返回聊天請求的響應,並將結果傳遞給進度回撥。 LanguageModelChatProvider 必須將收到的語言模型響應部分發射到進度回撥。
引數 | 描述 |
---|---|
model: T | 要使用的語言模型 |
messages: readonly LanguageModelChatRequestMessage[] | 要包含在請求中的訊息 |
options: ProvideLanguageModelChatResponseOptions | 請求選項 |
progress: Progress<LanguageModelResponsePart> | 用於發射流式響應塊的進度 |
token: CancellationToken | 取消令牌 |
返回 | 描述 |
Thenable<void> | 當響應完成時解析的 promise。結果實際上會傳遞給進度回撥。 |
provideTokenCount(model: T, text: string | LanguageModelChatRequestMessage, token: CancellationToken): Thenable<number>
使用模型特定的分詞器邏輯,返回給定文字的令牌數。
引數 | 描述 |
---|---|
model: T | 要使用的語言模型 |
text: string | LanguageModelChatRequestMessage | 要計算令牌的文字 |
token: CancellationToken | 取消令牌 |
返回 | 描述 |
Thenable<number> | 令牌數 |
LanguageModelChatRequestMessage
提供程式版本的 LanguageModelChatMessage。
屬性
一個異構陣列,其中包含訊息內容。某些部分可能對於某些模型是訊息型別特定的。
此訊息的可選使用者名稱稱。
role: LanguageModelChatMessageRole
此訊息的角色。
LanguageModelChatRequestOptions
使用語言模型發出聊天請求的選項。
屬性
一個人類可讀的訊息,解釋為什麼需要訪問語言模型以及它啟用了哪些功能。
控制語言模型行為的一組選項。這些選項特定於語言模型,需要查閱相應的文件。
toolMode?: LanguageModelChatToolMode
要使用的工具選擇模式。預設為 LanguageModelChatToolMode.Auto。
tools?: LanguageModelChatTool[]
語言模型可用的工具可選列表。這些可以是已透過 lm.tools 註冊的工具,也可以是僅在呼叫擴充套件中實現的私有工具。
如果 LLM 請求呼叫其中一個工具,它將在 LanguageModelChatResponse.stream 中返回 LanguageModelToolCallPart。呼叫方負責呼叫該工具。如果它是透過 lm.tools 註冊的工具,則意味著呼叫 lm.invokeTool。
然後,可以透過建立一個帶有 LanguageModelToolCallPart 的 Assistant 型別 LanguageModelChatMessage,然後是一個帶有 LanguageModelToolResultPart 的 User 型別訊息,將工具結果提供給 LLM。
LanguageModelChatResponse
表示語言模型響應。
另請參閱 ChatRequest
屬性
stream: AsyncIterable<unknown>
一個非同步迭代器,它是文字和工具呼叫部分組成的流,形成整體響應。 LanguageModelTextPart 是助手響應的一部分,將顯示給使用者。 LanguageModelToolCallPart 是語言模型呼叫工具的請求。後者僅在透過 LanguageModelChatRequestOptions.tools 在請求中傳遞工具時返回。 unknown
型別用作未來部分(如影像資料部分)的佔位符。
注意 當資料接收過程中發生錯誤時,此流將出錯。流的消費者應相應地處理錯誤。
要取消流,消費者可以 取消 用於發出請求的令牌或從 for 迴圈中斷開。
示例
try {
// consume stream
for await (const chunk of response.stream) {
if (chunk instanceof LanguageModelTextPart) {
console.log('TEXT', chunk);
} else if (chunk instanceof LanguageModelToolCallPart) {
console.log('TOOL CALL', chunk);
}
}
} catch (e) {
// stream ended with an error
console.error(e);
}
這相當於從 LanguageModelChatResponse.stream 過濾掉除了文字部分之外的所有內容。
LanguageModelChatSelector
描述如何選擇用於聊天請求的語言模型。
另請參閱 lm.selectChatModels
屬性
語言模型家族。
語言模型的識別符號。
另請參閱 LanguageModelChat.id
語言模型的供應商。
語言模型的版本。
LanguageModelChatTool
一個工具,透過 LanguageModelChatRequestOptions 可供語言模型呼叫。語言模型使用此介面的所有屬性來決定呼叫哪個工具以及如何呼叫。
屬性
工具的描述。
此工具接受的輸入的 JSON 模式。
工具的名稱。
LanguageModelChatToolMode
語言模型使用的工具呼叫模式。
列舉成員
語言模型可以選擇呼叫工具或生成訊息。這是預設設定。
語言模型必須呼叫所提供的工具之一。注意 - 某些模型在使用此模式時只支援單個工具。
LanguageModelError
語言模型特定錯誤的錯誤型別。
語言模型的消費者應檢查 code 屬性以確定特定的失敗原因,例如,當引用未知語言模型時,if(someError.code === vscode.LanguageModelError.NotFound.name) {...}
。對於未指定的錯誤,cause
屬性將包含實際錯誤。
靜態
Blocked(message?: string): LanguageModelError
請求者被阻止使用此語言模型。
引數 | 描述 |
---|---|
message?: string | |
返回 | 描述 |
LanguageModelError |
NoPermissions(message?: string): LanguageModelError
請求者沒有使用此語言模型的許可權
引數 | 描述 |
---|---|
message?: string | |
返回 | 描述 |
LanguageModelError |
NotFound(message?: string): LanguageModelError
語言模型不存在。
引數 | 描述 |
---|---|
message?: string | |
返回 | 描述 |
LanguageModelError |
建構函式
new LanguageModelError(message?: string): LanguageModelError
引數 | 描述 |
---|---|
message?: string | |
返回 | 描述 |
LanguageModelError |
屬性
標識此錯誤的程式碼。
可能的值是錯誤名稱,例如 NotFound,或者對於語言模型本身未指定的錯誤,為 Unknown
。在後一種情況下,cause
屬性將包含實際錯誤。
LanguageModelInputPart
可透過 LanguageModelChat.sendRequest 傳送並由 LanguageModelChatProvider 處理的各種訊息型別。
LanguageModelInputPart: LanguageModelTextPart | LanguageModelToolResultPart | LanguageModelToolCallPart
LanguageModelPromptTsxPart
一個語言模型響應部分,包含來自 vscode/prompt-tsx
的 PromptElementJSON。
建構函式
new LanguageModelPromptTsxPart(value: unknown): LanguageModelPromptTsxPart
使用給定內容構造一個 prompt-tsx 部分。
引數 | 描述 |
---|---|
value: unknown | 部分的值,即 |
返回 | 描述 |
LanguageModelPromptTsxPart |
屬性
部分的價值。
LanguageModelResponsePart
LanguageModelChatProvider 可以在聊天響應流中發出的各種訊息型別
LanguageModelResponsePart: LanguageModelTextPart | LanguageModelToolResultPart | LanguageModelToolCallPart
LanguageModelTextPart
一個語言模型響應部分,包含一段文字,從 LanguageModelChatResponse 返回。
建構函式
new LanguageModelTextPart(value: string): LanguageModelTextPart
使用給定內容構造文字部分。
引數 | 描述 |
---|---|
value: string | 部分的文字內容。 |
返回 | 描述 |
LanguageModelTextPart |
屬性
部分的文字內容。
LanguageModelTool<T>
一個工具,可以透過呼叫 LanguageModelChat 來呼叫。
方法
invoke(options: LanguageModelToolInvocationOptions<T>, token: CancellationToken): ProviderResult<LanguageModelToolResult>
使用給定輸入呼叫工具並返回結果。
提供的 LanguageModelToolInvocationOptions.input 已根據宣告的模式進行了驗證。
引數 | 描述 |
---|---|
options: LanguageModelToolInvocationOptions<T> | |
token: CancellationToken | |
返回 | 描述 |
ProviderResult<LanguageModelToolResult> |
prepareInvocation(options: LanguageModelToolInvocationPrepareOptions<T>, token: CancellationToken): ProviderResult<PreparedToolInvocation>
在呼叫工具之前呼叫一次。建議實現此方法以自定義工具執行時出現的進度訊息,並提供更具上下文的有用訊息。如果適用,還可以指示工具在執行前需要使用者確認。
- 注意 1:必須沒有副作用。
- 注意 2:對
prepareInvocation
的呼叫不一定後跟對invoke
的呼叫。
引數 | 描述 |
---|---|
options: LanguageModelToolInvocationPrepareOptions<T> | |
token: CancellationToken | |
返回 | 描述 |
ProviderResult<PreparedToolInvocation> |
LanguageModelToolCallPart
一個語言模型響應部分,指示工具呼叫,從 LanguageModelChatResponse 返回,也可以作為內容部分包含在 LanguageModelChatMessage 中,表示聊天請求中的先前工具呼叫。
建構函式
new LanguageModelToolCallPart(callId: string, name: string, input: object): LanguageModelToolCallPart
建立一個新的 LanguageModelToolCallPart。
引數 | 描述 |
---|---|
callId: string | 工具呼叫的 ID。 |
name: string | 要呼叫的工具的名稱。 |
input: object | 用於呼叫工具的輸入。 |
返回 | 描述 |
LanguageModelToolCallPart |
屬性
工具呼叫的 ID。這是聊天請求中工具呼叫的唯一識別符號。
用於呼叫工具的輸入。
要呼叫的工具的名稱。
LanguageModelToolConfirmationMessages
當在 PreparedToolInvocation 中返回此項時,系統會要求使用者在執行工具前確認。這些訊息將與“繼續”和“取消”按鈕一起顯示。
屬性
message: string | MarkdownString
確認訊息的正文。
確認訊息的標題。
LanguageModelToolInformation
關於 lm.tools 中可用註冊工具的資訊。
屬性
此工具的描述,可能會傳遞給語言模型。
此工具接受的輸入的 JSON 模式。
工具的唯一名稱。
由工具宣告的一組標籤,大致描述了工具的功能。工具使用者可以使用這些標籤過濾工具集,只選擇與手頭任務相關的工具。
LanguageModelToolInvocationOptions<T>
為工具呼叫提供的選項。
屬性
用於呼叫工具的輸入。輸入必須與 LanguageModelToolInformation.inputSchema 中定義的架構匹配
tokenizationOptions?: LanguageModelToolTokenizationOptions
用於提示工具應在其響應中返回多少個令牌的選項,並使工具能夠準確計算令牌。
toolInvocationToken: undefined
一個不透明物件,將工具呼叫與來自 聊天參與者 的聊天請求繫結。
獲取有效工具呼叫令牌的唯一方法是使用聊天請求中提供的 toolInvocationToken。在這種情況下,聊天響應檢視中將自動顯示工具呼叫的進度條,如果工具需要使用者確認,則會在聊天檢視中以內聯方式顯示。
如果工具在聊天請求之外呼叫,則應傳入 undefined
,除了確認之外,不會顯示任何特殊 UI。
請注意,在呼叫過程中呼叫另一個工具的工具,可以傳遞其收到的 toolInvocationToken
。
LanguageModelToolInvocationPrepareOptions<T>
屬性
呼叫工具時使用的輸入。
LanguageModelToolResult
工具呼叫返回的結果。如果使用 vscode/prompt-tsx
,此結果可以使用 ToolResult
渲染。
建構函式
new LanguageModelToolResult(content: Array<LanguageModelTextPart | LanguageModelPromptTsxPart>): LanguageModelToolResult
建立 LanguageModelToolResult
引數 | 描述 |
---|---|
content: Array<LanguageModelTextPart | LanguageModelPromptTsxPart> | 工具結果內容部分的列表 |
返回 | 描述 |
LanguageModelToolResult |
屬性
工具結果內容部分的列表。包含 unknown
,因為此列表將來可能會擴充套件新的內容型別。
另請參閱 lm.invokeTool。
LanguageModelToolResultPart
工具呼叫的結果。這是 工具呼叫 的對應部分,只能包含在使用者訊息的內容中。
建構函式
new LanguageModelToolResultPart(callId: string, content: unknown[]): LanguageModelToolResultPart
引數 | 描述 |
---|---|
callId: string | 工具呼叫的 ID。 |
content: unknown[] | 工具結果的內容。 |
返回 | 描述 |
LanguageModelToolResultPart |
屬性
工具呼叫的 ID。
請注意,這應與工具呼叫部分的 callId 匹配。
工具結果的值。
LanguageModelToolTokenizationOptions
與工具呼叫令牌化相關的選項。
屬性
如果已知,工具在其結果中應發出的最大令牌數。
方法
countTokens(text: string, token?: CancellationToken): Thenable<number>
使用模型特定的分詞器邏輯計算訊息中的令牌數。
引數 | 描述 |
---|---|
text: string | 一個字串。 |
token?: CancellationToken | 可選的取消令牌。有關如何建立取消令牌,請參閱 CancellationTokenSource。 |
返回 | 描述 |
Thenable<number> | 一個解析為令牌數的 Thenable。 |
LanguageStatusItem
語言狀態項是為活動文字編輯器顯示語言狀態報告的首選方式,例如選定的 lint 工具或配置問題通知。
屬性
accessibilityInformation?: AccessibilityInformation
螢幕閱讀器與此項互動時使用的輔助功能資訊
控制專案是否顯示為“忙碌”。預設為 false
。
command: Command
此項的 命令。
可選,此項的人類可讀詳細資訊。
此項的識別符號。
此項的簡稱,例如“Java 語言狀態”等。
selector: DocumentSelector
定義此項顯示哪些編輯器的 選擇器。
severity: LanguageStatusSeverity
此項的嚴重性。
預設為 資訊。您可以使用此屬性向使用者發出需要注意的問題訊號,例如缺少可執行檔案或無效配置。
條目顯示的文字。您可以透過以下語法在文字中嵌入圖示:
我的文字 $(icon-name) 包含像 $(icon-name) 這樣的圖示。
其中 icon-name 取自 ThemeIcon 圖示集,例如 light-bulb
、thumbsup
、zap
等。
方法
釋放並解除關聯的資源。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
LanguageStatusSeverity
表示語言狀態的嚴重級別。
列舉成員
資訊性嚴重性級別。
警告嚴重性級別。
錯誤嚴重性級別。
LinkedEditingRangeProvider
連結編輯範圍提供程式介面定義了擴充套件和連結編輯功能之間的契約。
方法
provideLinkedEditingRanges(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<LinkedEditingRanges>
對於文件中的給定位置,返回該位置符號的範圍以及所有內容相同的範圍。如果新內容有效,則對其中一個範圍的更改可以應用於所有其他範圍。結果可以返回一個可選的詞語模式來描述有效內容。如果沒有提供特定於結果的詞語模式,則使用語言配置中的詞語模式。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫提供程式的文件。 |
position: Position | 呼叫提供程式的位置。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<LinkedEditingRanges> | 可以一起編輯的範圍列表 |
LinkedEditingRanges
表示可以一起編輯的範圍列表以及描述有效範圍內容的詞語模式。
建構函式
new LinkedEditingRanges(ranges: Range[], wordPattern?: RegExp): LinkedEditingRanges
建立新的連結編輯範圍物件。
引數 | 描述 |
---|---|
ranges: Range[] | 可以一起編輯的範圍列表 |
wordPattern?: RegExp | 一個可選的詞語模式,描述給定範圍的有效內容 |
返回 | 描述 |
LinkedEditingRanges |
屬性
ranges: Range[]
可以一起編輯的範圍列表。這些範圍必須具有相同的長度和文字內容。這些範圍不能重疊。
一個可選的詞語模式,描述給定範圍的有效內容。如果未提供模式,則將使用語言配置的詞語模式。
Location
表示資源內的位置,例如文字檔案中的一行。
建構函式
new Location(uri: Uri, rangeOrPosition: Range | Position): Location
屬性
range: Range
此位置的文件範圍。
uri: Uri
此位置的資源識別符號。
LocationLink
表示兩個位置的連線。提供比普通 位置 更多的元資料,包括一個源範圍。
屬性
originSelectionRange?: Range
此連結源的跨度。
用作滑鼠定義懸停的下劃線跨度。預設為定義位置處的單詞範圍。
targetRange: Range
此連結的完整目標範圍。
targetSelectionRange?: Range
此連結的跨度。
targetUri: Uri
此連結的目標資源識別符號。
LogLevel
日誌級別
列舉成員
此級別不記錄任何訊息。
此級別記錄所有訊息。
此級別記錄除錯及更高級別的訊息。
此級別記錄資訊及更高級別的訊息。
此級別記錄警告及更高級別的訊息。
此級別只記錄錯誤訊息。
LogOutputChannel
用於包含日誌輸出的通道。
要獲取 LogOutputChannel
的例項,請使用 createOutputChannel。
事件
onDidChangeLogLevel: Event<LogLevel>
當通道的日誌級別更改時觸發的 事件。
屬性
logLevel: LogLevel
通道的當前日誌級別。預設為 編輯器日誌級別。
此輸出通道的人類可讀名稱。
方法
將給定值附加到通道。
引數 | 描述 |
---|---|
value: string | 一個字串,虛假值將不會列印。 |
返回 | 描述 |
void |
appendLine(value: string): void
將給定值和換行符附加到通道。
引數 | 描述 |
---|---|
value: string | 一個字串,虛假值也將列印。 |
返回 | 描述 |
void |
從通道中刪除所有輸出。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
debug(message: string, ...args: any[]): void
將給定的除錯訊息輸出到通道。
僅當通道配置為顯示 除錯 日誌級別或更低時,才記錄該訊息。
引數 | 描述 |
---|---|
message: string | 要記錄的除錯訊息 |
...args: any[] | |
返回 | 描述 |
void |
釋放並解除關聯的資源。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
error(error: string | Error, ...args: any[]): void
將給定的錯誤或錯誤訊息輸出到通道。
僅當通道配置為顯示 錯誤 日誌級別或更低時,才記錄該訊息。
引數 | 描述 |
---|---|
error: string | Error | 要記錄的錯誤或錯誤訊息 |
...args: any[] | |
返回 | 描述 |
void |
從 UI 中隱藏此通道。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
info(message: string, ...args: any[]): void
將給定的資訊訊息輸出到通道。
僅當通道配置為顯示 資訊 日誌級別或更低時,才記錄該訊息。
引數 | 描述 |
---|---|
message: string | 要記錄的資訊訊息 |
...args: any[] | |
返回 | 描述 |
void |
將通道中的所有輸出替換為給定值。
引數 | 描述 |
---|---|
value: string | 一個字串,虛假值將不會列印。 |
返回 | 描述 |
void |
show(preserveFocus?: boolean): void
在 UI 中顯示此通道。
引數 | 描述 |
---|---|
preserveFocus?: boolean | 當為 |
返回 | 描述 |
void |
show(column?: ViewColumn, preserveFocus?: boolean): void
在 UI 中顯示此通道。
- 已棄用 - 使用只有一個引數的過載(
show(preserveFocus?: boolean): void
)。
引數 | 描述 |
---|---|
column?: ViewColumn | 此引數已棄用,將被忽略。 |
preserveFocus?: boolean | 當為 |
返回 | 描述 |
void |
trace(message: string, ...args: any[]): void
將給定的跟蹤訊息輸出到通道。使用此方法記錄詳細資訊。
僅當通道配置為顯示 跟蹤 日誌級別時,才記錄該訊息。
引數 | 描述 |
---|---|
message: string | 要記錄的跟蹤訊息 |
...args: any[] | |
返回 | 描述 |
void |
warn(message: string, ...args: any[]): void
將給定的警告訊息輸出到通道。
僅當通道配置為顯示 警告 日誌級別或更低時,才記錄該訊息。
引數 | 描述 |
---|---|
message: string | 要記錄的警告訊息 |
...args: any[] | |
返回 | 描述 |
void |
MarkdownString
支援透過 markdown 語法 進行格式化的人類可讀文字。
當 supportThemeIcons 設定為 true
時,支援透過 $(<name>)
語法渲染 主題圖示。
當 supportHtml 設定為 true
時,支援渲染嵌入式 html。
建構函式
new MarkdownString(value?: string, supportThemeIcons?: boolean): MarkdownString
使用給定值建立一個新的 markdown 字串。
引數 | 描述 |
---|---|
value?: string | 可選,初始值。 |
supportThemeIcons?: boolean | 可選,指定 MarkdownString 中是否支援 ThemeIcons。 |
返回 | 描述 |
MarkdownString |
屬性
baseUri?: Uri
相對路徑解析的基 URI。
如果 baseUri
以 /
結尾,則被視為目錄,markdown 中的相對路徑將相對於該目錄解析
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'
如果 baseUri
是檔案,markdown 中的相對路徑將相對於該檔案的父目錄解析
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'
isTrusted?: boolean | {enabledCommands: readonly string[]}
表示此 markdown 字串來自受信任的源。只有受信任的 markdown 支援執行命令的連結,例如 [Run it](command:myCommandId)
。
預設為 false
(命令已停用)。
指示此 markdown 字串可以包含原始 html 標籤。預設為 false
。
當 supportHtml
為 false 時,markdown 渲染器將從 markdown 文字中刪除所有原始 html 標籤。這意味著您只能使用 markdown 語法進行渲染。
當 supportHtml
為 true 時,markdown 渲染器還將允許渲染 html 標籤和屬性的安全子集。有關所有支援的標籤和屬性的列表,請參閱 https://github.com/microsoft/vscode/blob/6d2920473c6f13759c978dd89104c4270a83422d/src/vs/base/browser/markdownRenderer.ts#L296。
指示此 markdown 字串可以包含 ThemeIcons,例如 $(zap)
。
markdown 字串。
方法
appendCodeblock(value: string, language?: string): MarkdownString
使用提供的語言將給定字串作為程式碼塊附加。
引數 | 描述 |
---|---|
value: string | 程式碼片段。 |
language?: string | 可選的 語言識別符號。 |
返回 | 描述 |
MarkdownString |
appendMarkdown(value: string): MarkdownString
將給定字串“原樣”附加到此 markdown 字串。當 supportThemeIcons 為 true
時,value
中的 ThemeIcons 將被圖示化。
引數 | 描述 |
---|---|
value: string | Markdown 字串。 |
返回 | 描述 |
MarkdownString |
appendText(value: string): MarkdownString
將給定字串附加並轉義到此 markdown 字串。
引數 | 描述 |
---|---|
value: string | 純文字。 |
返回 | 描述 |
MarkdownString |
MarkedString
MarkedString 可用於渲染人類可讀文字。它既可以是 markdown 字串,也可以是提供語言和程式碼片段的程式碼塊。請注意,markdown 字串將被清理 - 這意味著 html 將被轉義。
- 已棄用 - 此型別已棄用,請改用 MarkdownString。
MarkedString: string | {language: string, value: string}
McpHttpServerDefinition
McpHttpServerDefinition 表示透過可流式 HTTP 傳輸可用的 MCP 伺服器。
建構函式
new McpHttpServerDefinition(label: string, uri: Uri, headers?: Record<string, string>, version?: string): McpHttpServerDefinition
引數 | 描述 |
---|---|
label: string | 伺服器的人類可讀名稱。 |
uri: Uri | 伺服器的 URI。 |
headers?: Record<string, string> | 每次向伺服器請求時包含的可選附加標頭。 |
version?: string | |
返回 | 描述 |
McpHttpServerDefinition |
屬性
headers: Record<string, string>
每次向伺服器請求時包含的可選附加標頭。
伺服器的人類可讀名稱。
uri: Uri
伺服器的 URI。編輯器將向此 URI 傳送 POST 請求以開始每個會話。
伺服器的可選版本標識。如果此值更改,編輯器將指示工具已更改並提示重新整理它們。
McpServerDefinition
描述不同型別模型上下文協議伺服器的定義,可以從 McpServerDefinitionProvider 返回。
McpServerDefinition: McpStdioServerDefinition | McpHttpServerDefinition
McpServerDefinitionProvider<T>
可以提供模型上下文協議伺服器定義的型別。這應該在擴充套件啟用期間使用 lm.registerMcpServerDefinitionProvider 註冊。
事件
onDidChangeMcpServerDefinitions?: Event<void>
可選事件,用於指示可用伺服器集已更改。
方法
provideMcpServerDefinitions(token: CancellationToken): ProviderResult<T[]>
提供可用的 MCP 伺服器。編輯器將急切地呼叫此方法以確保語言模型伺服器的可用性,因此擴充套件不應執行需要使用者互動的操作,例如身份驗證。
引數 | 描述 |
---|---|
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T[]> | 可用的 MCP 伺服器陣列 |
resolveMcpServerDefinition(server: T, token: CancellationToken): ProviderResult<T>
當編輯器需要啟動 MCP 伺服器時將呼叫此函式。此時,擴充套件可以執行任何可能需要使用者互動的操作,例如身份驗證。伺服器的任何非 readonly
屬性都可以修改,並且擴充套件應返回已解析的伺服器。
擴充套件可以返回 undefined 以指示不應啟動伺服器,或丟擲錯誤。如果存在待處理的工具呼叫,編輯器將取消它並向語言模型返回錯誤訊息。
引數 | 描述 |
---|---|
server: T | 要解析的 MCP 伺服器 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T> | 已解析的伺服器或解析為該伺服器的 Thenable。這可能是給定的 |
McpStdioServerDefinition
McpStdioServerDefinition 表示透過執行本地程序並在其 stdin 和 stdout 流上操作而可用的 MCP 伺服器。該程序將作為擴充套件主機的一個子程序生成,並且預設情況下不會在 shell 環境中執行。
建構函式
new McpStdioServerDefinition(label: string, command: string, args?: string[], env?: Record<string, string | number>, version?: string): McpStdioServerDefinition
引數 | 描述 |
---|---|
label: string | 伺服器的人類可讀名稱。 |
command: string | 用於啟動伺服器的命令。 |
args?: string[] | 傳遞給伺服器的附加命令列引數。 |
env?: Record<string, string | number> | 伺服器的可選附加環境資訊。 |
version?: string | 伺服器的可選版本標識。 |
返回 | 描述 |
McpStdioServerDefinition |
屬性
傳遞給伺服器的附加命令列引數。
用於啟動伺服器的命令。基於 Node.js 的伺服器可以使用 process.execPath
來使用編輯器的 Node.js 版本執行指令碼。
cwd?: Uri
用於啟動伺服器的工作目錄。
env: Record<string, string | number>
伺服器的可選附加環境資訊。此環境中的變數將覆蓋或刪除(如果為 null)編輯器擴充套件主機的預設環境變數。
伺服器的人類可讀名稱。
伺服器的可選版本標識。如果此值更改,編輯器將指示工具已更改並提示重新整理它們。
Memento
備忘錄表示儲存實用程式。它可以儲存和檢索值。
方法
返回值。
引數 | 描述 |
---|---|
key: string | 一個字串。 |
返回 | 描述 |
T | 儲存的值或 |
get<T>(key: string, defaultValue: T): T
返回值。
引數 | 描述 |
---|---|
key: string | 一個字串。 |
defaultValue: T | 當沒有給定鍵的值( |
返回 | 描述 |
T | 儲存的值或 defaultValue。 |
返回儲存的鍵。
引數 | 描述 |
---|---|
返回 | 描述 |
readonly string[] | 儲存的鍵。 |
update(key: string, value: any): Thenable<void>
儲存一個值。該值必須是可 JSON 字串化的。
請注意,將 undefined
作為值會從底層儲存中刪除鍵。
引數 | 描述 |
---|---|
key: string | 一個字串。 |
value: any | 一個值。不得包含迴圈引用。 |
返回 | 描述 |
Thenable<void> |
MessageItem
屬性
對於模態對話方塊的提示,當用戶取消對話方塊(例如,透過按 ESC 鍵)時,應觸發該項。
注意:此選項對於非模態訊息將被忽略。
一個簡短的標題,如“重試”、“開啟日誌”等。
MessageOptions
屬性
以不太顯眼的方式呈現的人類可讀詳細訊息。注意,詳細資訊僅顯示在 模態 訊息中。
指示此訊息應為模態訊息。
NotebookCell
屬性
document: TextDocument
此單元格的 文字,表示為文字文件。
executionSummary: NotebookCellExecutionSummary
此單元格的最新 執行摘要。
此單元格在其 包含筆記本 中的索引。當單元格在其筆記本中移動時,索引會更新。當單元格從其筆記本中刪除時,索引為 -1
。
kind: NotebookCellKind
此單元格的型別。
此單元格的元資料。可以是任何東西,但必須是可 JSON 字串化的。
notebook: NotebookDocument
包含此單元格的 筆記本。
outputs: readonly NotebookCellOutput[]
此單元格的輸出。
NotebookCellData
NotebookCellData 是筆記本單元格的原始表示。它是 NotebookData 的一部分。
建構函式
new NotebookCellData(kind: NotebookCellKind, value: string, languageId: string): NotebookCellData
建立新的單元格資料。最小單元格資料指定其型別、其源值和其源的語言識別符號。
引數 | 描述 |
---|---|
kind: NotebookCellKind | 型別。 |
value: string | 源值。 |
languageId: string | 源值的語言識別符號。 |
返回 | 描述 |
NotebookCellData |
屬性
executionSummary?: NotebookCellExecutionSummary
此單元格資料的執行摘要。
kind: NotebookCellKind
此單元格資料的 型別。
此單元格資料來源值的語言識別符號。任何 getLanguages 的值都可能。
此單元格資料的任意元資料。可以是任何東西,但必須是可 JSON 字串化的。
outputs?: NotebookCellOutput[]
此單元格資料的輸出。
此單元格資料的源值 - 原始碼或格式化文字。
NotebookCellExecution
NotebookCellExecution 是 筆記本控制器 在執行時修改筆記本單元格的方式。
當建立單元格執行物件時,單元格進入 [NotebookCellExecutionState.Pending Pending](#NotebookCellExecutionState.Pending Pending) 狀態。當在執行任務上呼叫 start(...) 時,它進入 [NotebookCellExecutionState.Executing Executing](#NotebookCellExecutionState.Executing Executing) 狀態。當呼叫 end(...) 時,它進入 [NotebookCellExecutionState.Idle Idle](#NotebookCellExecutionState.Idle Idle) 狀態。
屬性
cell: NotebookCell
為此執行建立的 單元格。
設定和取消設定此單元格執行的順序。
token: CancellationToken
方法
appendOutput(out: NotebookCellOutput | readonly NotebookCellOutput[], cell?: NotebookCell): Thenable<void>
附加到正在執行的單元格的輸出或受此執行影響的其他單元格的輸出。
引數 | 描述 |
---|---|
out: NotebookCellOutput | readonly NotebookCellOutput[] | 附加到當前輸出的輸出。 |
cell?: NotebookCell | 清除輸出的單元格。預設為此執行的 單元格。 |
返回 | 描述 |
Thenable<void> | 操作完成後解析的 thenable。 |
appendOutputItems(items: NotebookCellOutputItem | readonly NotebookCellOutputItem[], output: NotebookCellOutput): Thenable<void>
將輸出項附加到現有單元格輸出。
引數 | 描述 |
---|---|
items: NotebookCellOutputItem | readonly NotebookCellOutputItem[] | 附加到現有輸出的輸出項。 |
output: NotebookCellOutput | 已存在的輸出物件。 |
返回 | 描述 |
Thenable<void> | 操作完成後解析的 thenable。 |
clearOutput(cell?: NotebookCell): Thenable<void>
清除正在執行的單元格或受此執行影響的其他單元格的輸出。
引數 | 描述 |
---|---|
cell?: NotebookCell | 清除輸出的單元格。預設為此執行的 單元格。 |
返回 | 描述 |
Thenable<void> | 操作完成後解析的 thenable。 |
end(success: boolean, endTime?: number): void
訊號執行已結束。
引數 | 描述 |
---|---|
success: boolean | 如果為 true,單元格狀態列上顯示綠色勾選。如果為 false,顯示紅色 X。如果為 undefined,不顯示勾選或 X 圖示。 |
endTime?: number | 執行結束的時間,以 Unix 紀元毫秒為單位。 |
返回 | 描述 |
void |
replaceOutput(out: NotebookCellOutput | readonly NotebookCellOutput[], cell?: NotebookCell): Thenable<void>
替換正在執行的單元格或受此執行影響的其他單元格的輸出。
引數 | 描述 |
---|---|
out: NotebookCellOutput | readonly NotebookCellOutput[] | 替換當前輸出的輸出。 |
cell?: NotebookCell | 清除輸出的單元格。預設為此執行的 單元格。 |
返回 | 描述 |
Thenable<void> | 操作完成後解析的 thenable。 |
replaceOutputItems(items: NotebookCellOutputItem | readonly NotebookCellOutputItem[], output: NotebookCellOutput): Thenable<void>
替換現有單元格輸出的所有輸出項。
引數 | 描述 |
---|---|
items: NotebookCellOutputItem | readonly NotebookCellOutputItem[] | 替換現有輸出項的輸出項。 |
output: NotebookCellOutput | 已存在的輸出物件。 |
返回 | 描述 |
Thenable<void> | 操作完成後解析的 thenable。 |
start(startTime?: number): void
訊號執行已開始。
引數 | 描述 |
---|---|
startTime?: number | 執行開始的時間,以 Unix 紀元毫秒為單位。用於驅動顯示單元格已執行多長時間的時鐘。如果未給出,則不顯示時鐘。 |
返回 | 描述 |
void |
NotebookCellExecutionSummary
筆記本單元格執行的摘要。
屬性
執行發生的順序。
如果執行成功完成。
timing?: {endTime: number, startTime: number}
執行開始和結束的時間,以 Unix 時間戳表示。
引數 | 描述 |
---|---|
endTime: number | 執行結束時間。 |
startTime: number | 執行開始時間。 |
NotebookCellKind
筆記本單元格型別。
列舉成員
標記單元格是用於顯示的格式化原始碼。
NotebookCellOutput
筆記本單元格輸出表示執行單元格的結果。它是一個包含多個 輸出項 的容器型別,其中包含的項表示相同的結果但使用不同的 MIME 型別。
建構函式
new NotebookCellOutput(items: NotebookCellOutputItem[], metadata?: ): NotebookCellOutput
建立新的筆記本輸出。
引數 | 描述 |
---|---|
items: NotebookCellOutputItem[] | 筆記本輸出項。 |
metadata?: | 可選元資料。 |
返回 | 描述 |
NotebookCellOutput |
屬性
items: NotebookCellOutputItem[]
此輸出的輸出項。每個項必須表示相同的結果。請注意,每個輸出重複的 MIME 型別是無效的,編輯器只會選擇其中一個。
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
]);
此單元格輸出的任意元資料。可以是任何東西,但必須是可 JSON 字串化的。
NotebookCellOutputItem
由 MIME 型別和資料定義的 筆記本輸出 的一種表示。
靜態
error(value: Error): NotebookCellOutputItem
工廠函式,用於建立使用 application/vnd.code.notebook.error
mime 型別的 NotebookCellOutputItem
。
引數 | 描述 |
---|---|
value: Error | 錯誤物件。 |
返回 | 描述 |
NotebookCellOutputItem | 一個新的輸出項物件。 |
json(value: any, mime?: string): NotebookCellOutputItem
工廠函式,用於從 JSON 物件建立 NotebookCellOutputItem
。
請注意,此函式不期望“字串化的 JSON”,而是可以字串化的物件。如果傳入的值無法進行 JSON 字串化,此函式將丟擲錯誤。
引數 | 描述 |
---|---|
value: any | 可 JSON 字串化的值。 |
mime?: string | 可選的 MIME 型別,預設為 |
返回 | 描述 |
NotebookCellOutputItem | 一個新的輸出項物件。 |
stderr(value: string): NotebookCellOutputItem
工廠函式,用於建立使用 application/vnd.code.notebook.stderr
mime 型別的 NotebookCellOutputItem
。
引數 | 描述 |
---|---|
value: string | 一個字串。 |
返回 | 描述 |
NotebookCellOutputItem | 一個新的輸出項物件。 |
stdout(value: string): NotebookCellOutputItem
工廠函式,用於建立使用 application/vnd.code.notebook.stdout
mime 型別的 NotebookCellOutputItem
。
引數 | 描述 |
---|---|
value: string | 一個字串。 |
返回 | 描述 |
NotebookCellOutputItem | 一個新的輸出項物件。 |
text(value: string, mime?: string): NotebookCellOutputItem
工廠函式,用於從字串建立 NotebookCellOutputItem
。
請注意,使用 UTF-8 編碼器為字串建立位元組。
引數 | 描述 |
---|---|
value: string | 一個字串。 |
mime?: string | 可選的 MIME 型別,預設為 |
返回 | 描述 |
NotebookCellOutputItem | 一個新的輸出項物件。 |
建構函式
new NotebookCellOutputItem(data: Uint8Array, mime: string): NotebookCellOutputItem
建立新的筆記本單元格輸出項。
引數 | 描述 |
---|---|
data: Uint8Array | 輸出項的值。 |
mime: string | 輸出項的 mime 型別。 |
返回 | 描述 |
NotebookCellOutputItem |
屬性
此輸出項的資料。必須始終是 8 位無符號整數陣列。
Mime 型別,它決定了 data 屬性如何解釋。
筆記本對某些 mime 型別有內建支援,擴充套件可以新增對新型別的支援並覆蓋現有型別。
NotebookCellStatusBarAlignment
表示狀態列項的對齊方式。
列舉成員
左對齊。
右對齊。
NotebookCellStatusBarItem
對單元格狀態列的貢獻
建構函式
new NotebookCellStatusBarItem(text: string, alignment: NotebookCellStatusBarAlignment): NotebookCellStatusBarItem
建立一個新的 NotebookCellStatusBarItem。
引數 | 描述 |
---|---|
text: string | 專案顯示的文字。 |
alignment: NotebookCellStatusBarAlignment | 專案是左對齊還是右對齊。 |
返回 | 描述 |
NotebookCellStatusBarItem |
屬性
accessibilityInformation?: AccessibilityInformation
螢幕閱讀器與此項互動時使用的輔助功能資訊。
alignment: NotebookCellStatusBarAlignment
專案是左對齊還是右對齊。
command?: string | Command
專案的優先順序。值越高的專案越靠左顯示。
專案顯示的文字。
懸停專案時顯示的工具提示。
NotebookCellStatusBarItemProvider
一個提供程式,可以向單元格編輯器下方顯示的狀態列貢獻項。
事件
onDidChangeCellStatusBarItems?: Event<void>
一個可選事件,用於指示狀態列項已更改。將再次呼叫 provide 方法。
方法
provideCellStatusBarItems(cell: NotebookCell, token: CancellationToken): ProviderResult<NotebookCellStatusBarItem | NotebookCellStatusBarItem[]>
當單元格滾動到檢視中、其內容、輸出、語言或元資料發生變化以及其執行狀態發生變化時,將呼叫提供程式。
引數 | 描述 |
---|---|
cell: NotebookCell | 要返回項的單元格。 |
token: CancellationToken | 如果此請求應取消,則觸發的令牌。 |
返回 | 描述 |
ProviderResult<NotebookCellStatusBarItem | NotebookCellStatusBarItem[]> | 一個或多個單元格狀態列項 |
NotebookController
筆記本控制器表示一個可以執行筆記本單元格的實體。這通常被稱為核心。
可以有多個控制器,編輯器將允許使用者選擇哪個控制器用於特定的筆記本。notebookType 屬性定義了控制器適用於哪種筆記本,而 updateNotebookAffinity 函式允許控制器為特定的筆記本文件設定偏好。當控制器被選中時,其 onDidChangeSelectedNotebooks 事件會觸發。
當單元格執行時,編輯器將呼叫 executeHandler,控制器應該建立並完成 筆記本單元格執行。但是,控制器也可以自由地自行建立執行。
事件
onDidChangeSelectedNotebooks: Event<{notebook: NotebookDocument, selected: boolean}>
屬性
以不太顯眼的方式呈現的人類可讀描述。
以不太顯眼的方式呈現的人類可讀細節。
executeHandler: (cells: NotebookCell[], notebook: NotebookDocument, controller: NotebookController) => void | Thenable<void>
當 UI 中的執行手勢(例如“執行單元格”、“全部執行”、“執行選擇”等)被選中時,會呼叫執行處理程式。執行處理程式負責建立和管理 執行 物件。
引數 | 描述 |
---|---|
cells: NotebookCell[] | |
notebook: NotebookDocument | |
controller: NotebookController | |
返回 | 描述 |
void | Thenable<void> |
此筆記本控制器的識別符號。
注意,控制器透過其識別符號記住,擴充套件應在不同會話中使用穩定的識別符號。
interruptHandler?: (notebook: NotebookDocument) => void | Thenable<void>
可選的中斷處理程式。
預設情況下,單元格執行透過 令牌 取消。取消令牌要求控制器能夠跟蹤其執行,以便在稍後取消特定的執行。並非所有場景都允許這樣做,例如,REPL 風格的控制器通常透過中斷當前正在執行的任何內容來工作。對於這些情況,中斷處理程式存在 - 可以將其視為終端中 SIGINT
或 Control+C
的等效項。
注意,支援 取消令牌 是首選的,只有在無法支援令牌時才應使用中斷處理程式。
引數 | 描述 |
---|---|
notebook: NotebookDocument | |
返回 | 描述 |
void | Thenable<void> |
此筆記本控制器的人類可讀標籤。
此控制器適用的筆記本型別。
此控制器支援的語言識別符號陣列。可以使用 getLanguages 中的任何語言識別符號。如果為假,則支援所有語言。
示例
// support JavaScript and TypeScript
myController.supportedLanguages = ['javascript', 'typescript'];
// support all languages
myController.supportedLanguages = undefined; // falsy
myController.supportedLanguages = []; // falsy
supportsExecutionOrder?: boolean
此控制器是否支援執行順序,以便編輯器可以為其渲染佔位符。
方法
createNotebookCellExecution(cell: NotebookCell): NotebookCellExecution
建立單元格執行任務。
注意,每個單元格一次只能有一個執行,如果在另一個單元格執行仍在活動時建立單元格執行,則會丟擲錯誤。
這應該在呼叫 執行處理程式 或單元格執行已從其他來源(例如,單元格已在執行或單元格執行已從其他來源觸發)開始時使用。
引數 | 描述 |
---|---|
cell: NotebookCell | 為其建立執行的筆記本單元格。 |
返回 | 描述 |
NotebookCellExecution | 筆記本單元格執行。 |
釋放並解除關聯的資源。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
updateNotebookAffinity(notebook: NotebookDocument, affinity: NotebookControllerAffinity): void
控制器可以為特定的筆記本文件設定親和性。這允許控制器在某些筆記本中更顯眼地顯示。
引數 | 描述 |
---|---|
notebook: NotebookDocument | 為其設定優先順序的筆記本。 |
affinity: NotebookControllerAffinity | 控制器親和性 |
返回 | 描述 |
void |
NotebookControllerAffinity
筆記本控制器對筆記本文件的親和性。
列舉成員
預設親和性。
控制器是筆記本的首選。
NotebookData
建構函式
new NotebookData(cells: NotebookCellData[]): NotebookData
建立新的筆記本資料。
引數 | 描述 |
---|---|
cells: NotebookCellData[] | 單元格資料陣列。 |
返回 | 描述 |
NotebookData |
屬性
cells: NotebookCellData[]
此筆記本資料的單元格資料。
筆記本資料的任意元資料。
NotebookDocument
屬性
筆記本中單元格的數量。
如果筆記本已關閉,則為 true
。已關閉的筆記本不再同步,當再次開啟相同的資源時也不會被重新使用。
如果存在未持久化的更改,則為 true
。
此筆記本是否表示尚未儲存的無標題檔案。
此筆記本的任意元資料。可以是任何內容,但必須是 JSON 字串化的。
筆記本的型別。
uri: Uri
此筆記本關聯的 URI。
注意,大多數筆記本使用 file
方案,這意味著它們是磁碟上的檔案。但是,並非所有筆記本都儲存在磁碟上,因此在嘗試訪問底層檔案或磁碟上的同級檔案之前必須檢查 scheme
。
另請參閱 FileSystemProvider
此筆記本的版本號(每次更改後都會嚴格增加,包括撤消/重做)。
方法
cellAt(index: number): NotebookCell
返回指定索引處的單元格。索引將根據筆記本進行調整。
引數 | 描述 |
---|---|
index: number | 要檢索的單元格的索引。 |
返回 | 描述 |
NotebookCell | 一個 單元格。 |
getCells(range?: NotebookRange): NotebookCell[]
獲取此筆記本的單元格。可以透過提供範圍來檢索子集。範圍將根據筆記本進行調整。
引數 | 描述 |
---|---|
range?: NotebookRange | 筆記本範圍。 |
返回 | 描述 |
NotebookCell[] | 範圍包含的單元格或所有單元格。 |
儲存文件。儲存將由相應的 序列化程式 處理。
引數 | 描述 |
---|---|
返回 | 描述 |
Thenable<boolean> | 一個 Promise,當文件儲存成功時解析為 true。如果檔案未修改或儲存失敗,則返回 false。 |
NotebookDocumentCellChange
描述對筆記本單元格的更改。
屬性
cell: NotebookCell
受影響的單元格。
document: TextDocument
單元格的文件,如果未更改則為 undefined
。
注意,您應該使用 onDidChangeTextDocument 事件來獲取詳細的更改資訊,例如已執行的編輯。
executionSummary: NotebookCellExecutionSummary
單元格的新執行摘要,如果未更改則為 undefined
。
單元格的新元資料,如果未更改則為 undefined
。
outputs: readonly NotebookCellOutput[]
單元格的新輸出,如果未更改則為 undefined
。
NotebookDocumentChangeEvent
描述事務性 筆記本 更改的事件。
屬性
cellChanges: readonly NotebookDocumentCellChange[]
一個 單元格更改 陣列。
contentChanges: readonly NotebookDocumentContentChange[]
描述新增或刪除 單元格 的內容更改陣列。
筆記本的新元資料,如果未更改則為 undefined
。
notebook: NotebookDocument
受影響的筆記本。
NotebookDocumentContentChange
描述筆記本文件的結構性更改,例如新新增和刪除的單元格。
屬性
addedCells: readonly NotebookCell[]
已新增到文件中的單元格。
range: NotebookRange
removedCells: readonly NotebookCell[]
已從文件中刪除的單元格。
NotebookDocumentContentOptions
筆記本內容選項定義了筆記本的哪些部分被持久化。注意
例如,筆記本序列化器可以選擇不儲存輸出,在這種情況下,當筆記本的輸出發生變化時,編輯器不會將筆記本標記為 髒。
屬性
控制單元格元資料屬性更改事件是否會觸發筆記本文件內容更改事件,以及是否會在差異編輯器中使用,預設為 false。如果內容提供程式未在檔案文件中持久化元資料屬性,則應將其設定為 true。
控制文件元資料屬性更改事件是否會觸發筆記本文件內容更改事件,以及是否會在差異編輯器中使用,預設為 false。如果內容提供程式未在檔案文件中持久化元資料屬性,則應將其設定為 true。
控制輸出更改事件是否會觸發筆記本文件內容更改事件以及是否會在差異編輯器中使用,預設為 false。如果內容提供程式未在檔案文件中持久化輸出,則應將其設定為 true。
NotebookDocumentShowOptions
屬性
一個可選標誌,當 true
時,將阻止 筆記本編輯器 獲取焦點。
一個可選標誌,用於控制 筆記本編輯器 選項卡是否顯示為預覽。預覽選項卡將被替換和重複使用,直到明確或透過編輯設定為保留。預設行為取決於 workbench.editor.enablePreview
設定。
selections?: readonly NotebookRange[]
在 筆記本編輯器 中應用於文件的可選選擇。
viewColumn?: ViewColumn
一個可選的檢視列,用於顯示 筆記本編輯器。預設是 活動 列。如果列不存在,將根據需要建立,最多可達 ViewColumn.Nine。使用 ViewColumn.Beside 在當前活動編輯器旁邊開啟編輯器。
NotebookDocumentWillSaveEvent
屬性
notebook: NotebookDocument
將要儲存的 筆記本文件。
reason: TextDocumentSaveReason
觸發儲存的原因。
token: CancellationToken
取消令牌。
方法
waitUntil(thenable: Thenable<WorkspaceEdit>): void
允許暫停事件迴圈並應用 工作區編輯。後續呼叫此函式所做的編輯將按順序應用。如果筆記本文件發生併發修改,則這些編輯將被“忽略”。
注意:此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫。
workspace.onWillSaveNotebookDocument(event => {
// async, will *throw* an error
setTimeout(() => event.waitUntil(promise));
// sync, OK
event.waitUntil(promise);
});
引數 | 描述 |
---|---|
thenable: Thenable<WorkspaceEdit> | 一個解析為 工作區編輯 的 thenable。 |
返回 | 描述 |
void |
waitUntil(thenable: Thenable<any>): void
允許暫停事件迴圈直到提供的 thenable 解析完成。
注意:此函式只能在事件分派期間呼叫。
引數 | 描述 |
---|---|
thenable: Thenable<any> | 延遲儲存的 thenable。 |
返回 | 描述 |
void |
NotebookEdit
筆記本編輯表示應該應用於筆記本內容的編輯。
靜態
deleteCells(range: NotebookRange): NotebookEdit
用於建立刪除筆記本中單元格的編輯的實用程式。
引數 | 描述 |
---|---|
range: NotebookRange | 要刪除的單元格範圍。 |
返回 | 描述 |
NotebookEdit |
insertCells(index: number, newCells: NotebookCellData[]): NotebookEdit
用於建立替換筆記本中單元格的編輯的實用程式。
引數 | 描述 |
---|---|
index: number | 要插入單元格的索引。 |
newCells: NotebookCellData[] | 新的筆記本單元格。 |
返回 | 描述 |
NotebookEdit |
replaceCells(range: NotebookRange, newCells: NotebookCellData[]): NotebookEdit
用於建立替換筆記本中單元格的編輯的實用程式。
引數 | 描述 |
---|---|
range: NotebookRange | 要替換的單元格範圍 |
newCells: NotebookCellData[] | 新的筆記本單元格。 |
返回 | 描述 |
NotebookEdit |
updateCellMetadata(index: number, newCellMetadata: ): NotebookEdit
用於建立更新單元格元資料的編輯的實用程式。
引數 | 描述 |
---|---|
index: number | 要更新的單元格的索引。 |
newCellMetadata: | 單元格的新元資料。 |
返回 | 描述 |
NotebookEdit |
updateNotebookMetadata(newNotebookMetadata: ): NotebookEdit
用於建立更新筆記本元資料的編輯的實用程式。
引數 | 描述 |
---|---|
newNotebookMetadata: | 筆記本的新元資料。 |
返回 | 描述 |
NotebookEdit |
建構函式
new NotebookEdit(range: NotebookRange, newCells: NotebookCellData[]): NotebookEdit
建立新的筆記本編輯。
引數 | 描述 |
---|---|
range: NotebookRange | 筆記本範圍。 |
newCells: NotebookCellData[] | 新單元格資料陣列。 |
返回 | 描述 |
NotebookEdit |
屬性
單元格的可選新元資料。
newCells: NotebookCellData[]
正在插入的新單元格。可能為空。
筆記本的可選新元資料。
range: NotebookRange
正在編輯的單元格範圍。可能為空。
NotebookEditor
表示附加到 筆記本 的筆記本編輯器。NotebookEditor 的其他屬性在提議的 API 中可用,該 API 將在以後最終確定。
屬性
notebook: NotebookDocument
與此筆記本編輯器關聯的 筆記本文件。
selection: NotebookRange
此筆記本編輯器中的主選擇。
selections: readonly NotebookRange[]
此筆記本編輯器中的所有選擇。
主選擇(或焦點範圍)是 selections[0]
。當文件沒有單元格時,主選擇為空 { start: 0, end: 0 }
;
viewColumn?: ViewColumn
此編輯器顯示的列。
visibleRanges: readonly NotebookRange[]
編輯器中當前可見的範圍(垂直)。
方法
revealRange(range: NotebookRange, revealType?: NotebookEditorRevealType): void
按照 revealType
指示滾動以顯示給定範圍。
引數 | 描述 |
---|---|
range: NotebookRange | 一個範圍。 |
revealType?: NotebookEditorRevealType | 顯示 |
返回 | 描述 |
void |
NotebookEditorRevealType
表示附加到 筆記本 的筆記本編輯器。
列舉成員
該範圍將以儘可能少的滾動量顯示。
該範圍將始終顯示在視口中心。
如果範圍在視口外,它將顯示在視口中心。否則,它將以儘可能少的滾動量顯示。
該範圍將始終顯示在視口頂部。
NotebookEditorSelectionChangeEvent
表示描述 筆記本編輯器選擇 變化的事件。
屬性
notebookEditor: NotebookEditor
選擇已更改的 筆記本編輯器。
selections: readonly NotebookRange[]
筆記本編輯器選擇 的新值。
NotebookEditorVisibleRangesChangeEvent
表示描述 筆記本編輯器可見範圍 變化的事件。
屬性
notebookEditor: NotebookEditor
可見範圍已更改的 筆記本編輯器。
visibleRanges: readonly NotebookRange[]
筆記本編輯器可見範圍 的新值。
NotebookRange
筆記本範圍表示兩個單元格索引的有序對。保證開始小於或等於結束。
建構函式
new NotebookRange(start: number, end: number): NotebookRange
建立新的筆記本範圍。如果 start
不在 end
之前或等於 end
,則值將交換。
引數 | 描述 |
---|---|
start: number | 起始索引 |
end: number | 結束索引。 |
返回 | 描述 |
NotebookRange |
屬性
此範圍的獨佔結束索引(從零開始)。
如果 start
和 end
相等,則為 true
。
此範圍的從零開始的起始索引。
方法
with(change: {end: number, start: number}): NotebookRange
從此範圍派生一個新範圍。
引數 | 描述 |
---|---|
change: {end: number, start: number} | 描述此範圍更改的物件。 |
返回 | 描述 |
NotebookRange | 反映給定更改的範圍。如果更改未更改任何內容,則返回 |
NotebookRendererMessaging
渲染器訊息用於與單個渲染器通訊。它從 notebooks.createRendererMessaging 返回。
事件
onDidReceiveMessage: Event<{editor: NotebookEditor, message: any}>
從渲染器接收到訊息時觸發的事件。
方法
postMessage(message: any, editor?: NotebookEditor): Thenable<boolean>
向一個或所有渲染器傳送訊息。
引數 | 描述 |
---|---|
message: any | 要傳送的訊息 |
editor?: NotebookEditor | 要用訊息定位的編輯器。如果未提供,則將訊息傳送給所有渲染器。 |
返回 | 描述 |
Thenable<boolean> | 一個布林值,指示訊息是否已成功傳遞到任何渲染器。 |
NotebookSerializer
筆記本序列化器使編輯器能夠開啟筆記本檔案。
其核心是編輯器只知道 筆記本資料結構,但不知道該資料結構如何寫入檔案,也不知道如何從檔案讀取。筆記本序列化器透過將位元組反序列化為筆記本資料,反之亦然來彌合這一差距。
方法
deserializeNotebook(content: Uint8Array, token: CancellationToken): NotebookData | Thenable<NotebookData>
將筆記本檔案內容反序列化為筆記本資料結構。
引數 | 描述 |
---|---|
content: Uint8Array | 筆記本檔案內容。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
NotebookData | Thenable<NotebookData> | 筆記本資料或解析為該型別的 thenable。 |
serializeNotebook(data: NotebookData, token: CancellationToken): Uint8Array | Thenable<Uint8Array>
將筆記本資料序列化為檔案內容。
引數 | 描述 |
---|---|
data: NotebookData | 一個筆記本資料結構。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
Uint8Array | Thenable<Uint8Array> | 位元組陣列或解析為位元組陣列的 thenable。 |
OnEnterRule
描述在按 Enter 鍵時要評估的規則。
屬性
action: EnterAction
要執行的操作。
此規則僅在游標後的文字與此正則表示式匹配時執行。
此規則僅在游標前的文字與此正則表示式匹配時執行。
此規則僅在當前行上方的文字與此正則表示式匹配時執行。
OnTypeFormattingEditProvider
文件格式化提供程式介面定義了擴充套件和格式化功能之間的約定。
方法
provideOnTypeFormattingEdits(document: TextDocument, position: Position, ch: string, options: FormattingOptions, token: CancellationToken): ProviderResult<TextEdit[]>
在輸入字元後提供格式化編輯。
給定的位置和字元應向提供者提示將位置擴充套件到哪個範圍,例如在輸入 }
時查詢匹配的 {
。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
position: Position | 呼叫命令的位置。 |
ch: string | 已輸入的字元。 |
options: FormattingOptions | 控制格式化的選項。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<TextEdit[]> | 一組文字編輯或解析為此類的 thenable。可以透過返回 |
OpenDialogOptions
配置檔案開啟對話方塊行為的選項。
- 注意 1:在 Windows 和 Linux 上,檔案對話方塊不能同時是檔案選擇器和資料夾選擇器,因此如果您在這些平臺上同時將
canSelectFiles
和canSelectFolders
設定為true
,將顯示資料夾選擇器。 - 注意 2:明確將
canSelectFiles
和canSelectFolders
設定為false
是徒勞的,編輯器會默默地調整選項以選擇檔案。
屬性
允許選擇檔案,預設為 true
。
允許選擇資料夾,預設為 false
。
允許選擇多個檔案或資料夾。
defaultUri?: Uri
開啟時對話方塊顯示的資源。
對話方塊使用的一組檔案過濾器。每個條目都是人類可讀的標籤,例如“TypeScript”,以及一個擴充套件陣列,例如
{
'Images': ['png', 'jpg'],
'TypeScript': ['ts', 'tsx']
}
開啟按鈕的人類可讀字串。
對話方塊標題。
此引數可能會被忽略,因為並非所有作業系統都在開啟對話方塊上顯示標題(例如 macOS)。
OutputChannel
輸出通道是隻讀文字資訊的容器。
要獲取 OutputChannel
例項,請使用 createOutputChannel。
屬性
此輸出通道的人類可讀名稱。
方法
將給定值附加到通道。
引數 | 描述 |
---|---|
value: string | 一個字串,虛假值將不會列印。 |
返回 | 描述 |
void |
appendLine(value: string): void
將給定值和換行符附加到通道。
引數 | 描述 |
---|---|
value: string | 一個字串,虛假值也將列印。 |
返回 | 描述 |
void |
從通道中刪除所有輸出。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
釋放並解除關聯的資源。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
從 UI 中隱藏此通道。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
將通道中的所有輸出替換為給定值。
引數 | 描述 |
---|---|
value: string | 一個字串,虛假值將不會列印。 |
返回 | 描述 |
void |
show(preserveFocus?: boolean): void
在 UI 中顯示此通道。
引數 | 描述 |
---|---|
preserveFocus?: boolean | 當為 |
返回 | 描述 |
void |
show(column?: ViewColumn, preserveFocus?: boolean): void
在 UI 中顯示此通道。
- 已棄用 - 使用只有一個引數的過載(
show(preserveFocus?: boolean): void
)。
引數 | 描述 |
---|---|
column?: ViewColumn | 此引數已棄用,將被忽略。 |
preserveFocus?: boolean | 當為 |
返回 | 描述 |
void |
OverviewRulerLane
表示在 概覽尺 中渲染裝飾的不同位置。概覽尺支援三個通道。
列舉成員
概覽尺的左通道。
概覽尺的中央通道。
概覽尺的右通道。
概覽尺的所有通道。
ParameterInformation
表示可呼叫簽名的引數。引數可以有一個標籤和一段文件註釋。
建構函式
new ParameterInformation(label: string | [number, number], documentation?: string | MarkdownString): ParameterInformation
建立一個新的引數資訊物件。
引數 | 描述 |
---|---|
label: string | [number, number] | 一個標籤字串或其包含簽名標籤內的包含起始和獨佔結束偏移量。 |
documentation?: string | MarkdownString | 文件字串。 |
返回 | 描述 |
ParameterInformation |
屬性
documentation?: string | MarkdownString
此簽名的人類可讀文件註釋。將顯示在 UI 中,但可以省略。
label: string | [number, number]
Position
建構函式
new Position(line: number, character: number): Position
引數 | 描述 |
---|---|
line: number | 一個從零開始的行值。 |
character: number | 一個從零開始的字元值。 |
返回 | 描述 |
Position |
屬性
從零開始的字元值。
字元偏移量使用 UTF-16 程式碼單元 表示。
從零開始的行值。
方法
compareTo(other: Position): number
將此與 other
進行比較。
引數 | 描述 |
---|---|
other: Position | 一個位置。 |
返回 | 描述 |
number | 如果此位置在給定位置之前,則小於零;如果此位置在給定位置之後,則大於零;如果此位置與給定位置相等,則為零。 |
isAfter(other: Position): boolean
檢查此位置是否在 other
之後。
引數 | 描述 |
---|---|
other: Position | 一個位置。 |
返回 | 描述 |
布林值 | 如果位置在更大的行上或在同一行上但字元位置更大,則為 |
isAfterOrEqual(other: Position): boolean
檢查此位置是否在 other
之後或等於 other
。
引數 | 描述 |
---|---|
other: Position | 一個位置。 |
返回 | 描述 |
布林值 | 如果位置在更大的行上或在同一行上但字元位置更大或相等,則為 |
isBefore(other: Position): boolean
檢查此位置是否在 other
之前。
引數 | 描述 |
---|---|
other: Position | 一個位置。 |
返回 | 描述 |
布林值 | 如果位置在較小的行上或在同一行上但字元位置較小,則為 |
isBeforeOrEqual(other: Position): boolean
檢查此位置是否在 other
之前或等於 other
。
引數 | 描述 |
---|---|
other: Position | 一個位置。 |
返回 | 描述 |
布林值 | 如果位置在較小的行上或在同一行上但字元位置較小或相等,則為 |
isEqual(other: Position): boolean
檢查此位置是否等於 other
。
引數 | 描述 |
---|---|
other: Position | 一個位置。 |
返回 | 描述 |
布林值 | 如果給定位置的行和字元與此位置的行和字元相等,則為 |
translate(lineDelta?: number, characterDelta?: number): Position
建立相對於此位置的新位置。
引數 | 描述 |
---|---|
lineDelta?: number | 行值的增量值,預設為 |
characterDelta?: number | 字元值的增量值,預設為 |
返回 | 描述 |
Position | 一個位置,其行和字元是當前行和字元以及相應增量的總和。 |
translate(change: {characterDelta: number, lineDelta: number}): Position
派生一個相對於此位置的新位置。
引數 | 描述 |
---|---|
change: {characterDelta: number, lineDelta: number} | 描述此位置增量的物件。 |
返回 | 描述 |
Position | 反映給定增量的位置。如果更改未更改任何內容,則返回 |
with(line?: number, character?: number): Position
建立從此位置派生的新位置。
with(change: {character: number, line: number}): Position
從此位置派生一個新位置。
引數 | 描述 |
---|---|
change: {character: number, line: number} | 描述此位置更改的物件。 |
返回 | 描述 |
Position | 反映給定更改的位置。如果更改未更改任何內容,則返回 |
PreparedToolInvocation
屬性
confirmationMessages?: LanguageModelToolConfirmationMessages
此屬性的存在表示在執行工具之前應要求使用者確認。對於任何具有副作用或可能具有危險性的工具,應要求使用者確認。
invocationMessage?: string | MarkdownString
在工具執行時顯示自定義進度訊息。
PrepareLanguageModelChatModelOptions
屬性
是否應透過某種 UI 流程提示使用者,或者是否應嘗試靜默解析模型。如果 silent 為 true,由於缺少 API 金鑰等資訊,可能無法解析所有模型。
ProcessExecution
任務的執行以外部程序形式進行,無需 shell 互動。
建構函式
new ProcessExecution(process: string, options?: ProcessExecutionOptions): ProcessExecution
建立程序執行。
引數 | 描述 |
---|---|
process: string | 要啟動的程序。 |
options?: ProcessExecutionOptions | 啟動程序的可選選項。 |
返回 | 描述 |
ProcessExecution |
new ProcessExecution(process: string, args: string[], options?: ProcessExecutionOptions): ProcessExecution
建立程序執行。
引數 | 描述 |
---|---|
process: string | 要啟動的程序。 |
args: string[] | 要傳遞給程序的引數。 |
options?: ProcessExecutionOptions | 啟動程序的可選選項。 |
返回 | 描述 |
ProcessExecution |
屬性
傳遞給程序的引數。預設為空陣列。
options?: ProcessExecutionOptions
執行程序時使用的程序選項。預設為 undefined。
要執行的程序。
ProcessExecutionOptions
程序執行選項
屬性
執行程式或 shell 的當前工作目錄。如果省略,則使用工具的當前工作區根目錄。
已執行程式或 shell 的附加環境。如果省略,則使用父程序的環境。如果提供,則與父程序的環境合併。
Progress<T>
定義了一種通用的進度更新報告方式。
方法
報告進度更新。
引數 | 描述 |
---|---|
value: T | 一個進度項,例如訊息和/或已完成工作的報告。 |
返回 | 描述 |
void |
ProgressLocation
編輯器中可以顯示進度資訊的位置。進度的視覺表示方式取決於位置。
列舉成員
在原始碼管理檢視中顯示進度,作為圖示的疊加層和檢視中的進度條(可見時)。不支援取消、不連續進度或描述操作的標籤。
在編輯器的狀態列中顯示進度。不支援取消或離散進度。支援透過進度標籤中的 $(
語法渲染 主題圖示。
顯示帶可選取消按鈕的通知進度。支援顯示無限和離散進度,但不支援渲染圖示。
ProgressOptions
描述進度應如何顯示的值物件。
屬性
控制是否顯示取消按鈕,以允許使用者取消長時間執行的操作。請注意,目前只有 ProgressLocation.Notification
支援顯示取消按鈕。
location: ProgressLocation | {viewId: string}
進度應顯示的位置。
用於描述操作的人類可讀字串。
ProvideLanguageModelChatResponseOptions
LanguageModelChatRequestOptions 的提供程式版本
屬性
一組控制語言模型行為的選項。這些選項特定於語言模型。
toolMode: LanguageModelChatToolMode
要使用的工具選擇模式。提供程式必須實現尊重此模式。
tools?: readonly LanguageModelChatTool[]
語言模型可用的工具可選列表。這些可以是已透過 lm.tools 註冊的工具,也可以是僅在呼叫擴充套件中實現的私有工具。
如果 LLM 請求呼叫其中一個工具,它將在 LanguageModelChatResponse.stream 中返回 LanguageModelToolCallPart。呼叫方負責呼叫該工具。如果它是透過 lm.tools 註冊的工具,則意味著呼叫 lm.invokeTool。
然後,可以透過建立一個帶有 LanguageModelToolCallPart 的 Assistant 型別 LanguageModelChatMessage,然後是一個帶有 LanguageModelToolResultPart 的 User 型別訊息,將工具結果提供給 LLM。
ProviderResult<T>
提供程式結果表示提供程式(例如 HoverProvider)可能返回的值。這可以是實際的結果型別 T
(例如 Hover
),也可以是解析為該型別 T
的 thenable。此外,可以直接或從 thenable 返回 null
和 undefined
。
以下程式碼段都是 HoverProvider 的有效實現。
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
}
};
ProviderResult: T | undefined | null | Thenable<T | undefined | null>
Pseudoterminal
定義終端 pty 的介面,使擴充套件能夠控制終端。
事件
onDidChangeName?: Event<string>
一個事件,當它觸發時允許更改終端的名稱。
在呼叫 Pseudoterminal.open 之前觸發的事件將被忽略。
示例: 將終端名稱更改為“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 });
onDidClose?: Event<number | void>
一個事件,當它觸發時將表示 pty 已關閉並處置終端。
在呼叫 Pseudoterminal.open 之前觸發的事件將被忽略。
可以使用數字來提供終端的退出程式碼。退出程式碼必須為正數,非零退出程式碼表示失敗,這會為常規終端顯示通知,並在與 CustomExecution
API 一起使用時允許依賴任務繼續。
示例: 按“y”鍵退出終端,否則顯示通知。
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);
onDidOverrideDimensions?: Event<TerminalDimensions>
一個事件,當它被觸發時,允許覆蓋終端的尺寸。請注意,當設定時,覆蓋的尺寸只有在它們小於終端的實際尺寸時才會生效(即,永遠不會有捲軸)。設定為undefined
,終端將恢復到常規尺寸(適應面板大小)。
在呼叫 Pseudoterminal.open 之前觸發的事件將被忽略。
示例: 將終端尺寸覆蓋為 20 列 10 行
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 });
onDidWrite: Event<string>
一個事件,當它被觸發時會將資料寫入終端。與將文字傳送到底層子偽裝置(子裝置)的Terminal.sendText不同,這將把文字寫入父偽裝置(終端本身)。
注意,寫入\n
只會將游標向下移動 1 行,您還需要寫入\r
才能將游標移動到最左側的單元格。
在呼叫 Pseudoterminal.open 之前觸發的事件將被忽略。
示例: 在終端中寫入紅色文字
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 });
示例: 將游標移動到第 10 行第 20 列並寫入一個星號
writeEmitter.fire('\x1b[10;20H*');
方法
實現此方法以處理使用者操作關閉終端的情況。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
handleInput(data: string): void
實現此方法以處理終端中的傳入擊鍵或擴充套件程式呼叫Terminal.sendText時的情況。data
包含序列化為其相應 VT 序列表示的擊鍵/文字。
引數 | 描述 |
---|---|
data: string | 傳入資料。 示例: 在終端中回顯輸入。回車符(
|
返回 | 描述 |
void |
open(initialDimensions: TerminalDimensions): void
實現此方法以處理 pty 開啟並準備好觸發事件的情況。
引數 | 描述 |
---|---|
initialDimensions: TerminalDimensions | 終端的尺寸,如果在呼叫此方法之前終端面板尚未開啟,則此值將為 undefined。 |
返回 | 描述 |
void |
setDimensions(dimensions: TerminalDimensions): void
實現此方法以處理終端面板中可容納的行數和列數發生變化的情況,例如當字型大小發生變化或面板被調整大小時。終端的初始尺寸應視為undefined
,直到此事件觸發,因為在終端顯示在使用者介面之前,其大小是未知的。
當尺寸被onDidOverrideDimensions覆蓋時,setDimensions
將繼續以常規面板尺寸被呼叫,允許擴充套件程式繼續對尺寸變化做出反應。
引數 | 描述 |
---|---|
dimensions: TerminalDimensions | 新尺寸。 |
返回 | 描述 |
void |
QuickDiffProvider
快速差異提供程式提供一個uri,指向已修改資源的原始狀態。編輯器將使用此資訊在文字中渲染即時差異。
方法
provideOriginalResource(uri: Uri, token: CancellationToken): ProviderResult<Uri>
為任何給定的資源 URI 提供一個Uri到原始資源。
引數 | 描述 |
---|---|
uri: Uri | 在文字編輯器中開啟的資源的 URI。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<Uri> | 一個可解析為匹配原始資源 URI 的 Thenable。 |
QuickInput
一個輕量級的使用者輸入 UI,初始不可見。透過其屬性進行配置後,擴充套件可以透過呼叫QuickInput.show使其可見。
此 UI 可能因多種原因而隱藏,擴充套件將透過 QuickInput.onDidHide 收到通知。(示例包括:顯式呼叫 QuickInput.hide,使用者按下 Esc,開啟其他輸入 UI 等)。
使用者按下 Enter 鍵或表示接受當前狀態的其他手勢不會自動隱藏此 UI 元件。由擴充套件決定是否接受使用者的輸入,以及是否應透過呼叫QuickInput.hide來隱藏 UI。
當擴充套件不再需要此輸入 UI 時,應QuickInput.dispose它以釋放與其相關的任何資源。
事件
onDidHide: Event<void>
當此輸入 UI 隱藏時發出的事件。
此 UI 可能因多種原因而隱藏,擴充套件將透過 QuickInput.onDidHide 收到通知。(示例包括:顯式呼叫 QuickInput.hide,使用者按下 Esc,開啟其他輸入 UI 等)。
屬性
如果 UI 應顯示進度指示器。預設為 false。
將其更改為 true,例如,在載入更多資料或驗證使用者輸入時。
如果 UI 應該允許使用者輸入。預設為 true。
將其更改為 false,例如,在驗證使用者輸入或為使用者輸入的下一步載入資料時。
如果 UI 即使失去 UI 焦點也應保持開啟狀態。預設為 false。此設定在 iPad 上被忽略,始終為 false。
一個可選的當前步數。
一個可選標題。
一個可選的總步數。
方法
處理此輸入 UI 和任何相關資源。如果它仍然可見,則首先隱藏它。在此呼叫之後,輸入 UI 不再具有功能,不應再訪問其上的其他方法或屬性。相反,應建立一個新的輸入 UI。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
隱藏此輸入 UI。這還將觸發一個 QuickInput.onDidHide 事件。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
使輸入 UI 以其當前配置可見。任何其他輸入 UI 將首先觸發一個 QuickInput.onDidHide 事件。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
QuickInputButton
屬性
iconPath: IconPath
按鈕圖示。
一個可選的工具提示。
QuickInputButtons
靜態
Back: QuickInputButton
QuickPick<T>
一個具體的QuickInput,用於讓使用者從 T 型別的項列表中選擇一個項。這些項可以透過過濾文字欄位進行過濾,並且有一個選項canSelectMany來允許選擇多個項。
請注意,在許多情況下,更方便的 window.showQuickPick 更易於使用。window.createQuickPick 應在 window.showQuickPick 無法提供所需靈活性時使用。
事件
onDidAccept: Event<void>
一個事件,表示使用者接受了選定的項。
onDidChangeActive: Event<readonly T[]>
一個事件,表示活動項已更改。
onDidChangeSelection: Event<readonly T[]>
一個事件,表示選定的項已更改。
onDidChangeValue: Event<string>
一個事件,表示篩選文字的值已更改。
onDidHide: Event<void>
當此輸入 UI 隱藏時發出的事件。
此 UI 可能因多種原因而隱藏,擴充套件將透過 QuickInput.onDidHide 收到通知。(示例包括:顯式呼叫 QuickInput.hide,使用者按下 Esc,開啟其他輸入 UI 等)。
onDidTriggerButton: Event<QuickInputButton>
一個事件,表示觸發了頂級按鈕(儲存在buttons中的按鈕)。此事件不會針對QuickPickItem上的按鈕觸發。
onDidTriggerItemButton: Event<QuickPickItemButtonEvent<T>>
一個事件,表示觸發了特定QuickPickItem中的按鈕。此事件不會針對標題欄中的按鈕觸發。
屬性
活動項。這可以由擴充套件讀取和更新。
如果 UI 應顯示進度指示器。預設為 false。
將其更改為 true,例如,在載入更多資料或驗證使用者輸入時。
buttons: readonly QuickInputButton[]
UI 中的操作按鈕。
是否可以同時選擇多個項。預設為 false。
如果 UI 應該允許使用者輸入。預設為 true。
將其更改為 false,例如,在驗證使用者輸入或為使用者輸入的下一步載入資料時。
如果 UI 即使失去 UI 焦點也應保持開啟狀態。預設為 false。此設定在 iPad 上被忽略,始終為 false。
可供選擇的項。這可以由擴充套件讀取和更新。
一個可選標誌,用於在更新快速選擇項時保持快速選擇的滾動位置。預設為 false。
篩選文字是否也應與項的描述匹配。預設為 false。
篩選文字是否也應與項的詳細資訊匹配。預設為 false。
可選的佔位符,當未輸入篩選條件時顯示在篩選文字框中。
選定的項。這可以由擴充套件讀取和更新。
一個可選的當前步數。
一個可選標題。
一個可選的總步數。
篩選文字的當前值。
方法
處理此輸入 UI 和任何相關資源。如果它仍然可見,則首先隱藏它。在此呼叫之後,輸入 UI 不再具有功能,不應再訪問其上的其他方法或屬性。相反,應建立一個新的輸入 UI。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
隱藏此輸入 UI。這還將觸發一個 QuickInput.onDidHide 事件。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
使輸入 UI 以其當前配置可見。任何其他輸入 UI 將首先觸發一個 QuickInput.onDidHide 事件。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
QuickPickItem
表示可以從項列表中選擇的項。
屬性
始終顯示此項。
注意:當kind設定為QuickPickItemKind.Separator時,此屬性將被忽略
buttons?: readonly QuickInputButton[]
將在此特定項上渲染的可選按鈕。這些按鈕在點選時將觸發QuickPickItemButtonEvent。按鈕僅在使用createQuickPick() API 建立的快速選擇器時渲染。在使用showQuickPick() API 時,按鈕不渲染。
注意:當kind設定為QuickPickItemKind.Separator時,此屬性將被忽略
一個人類可讀的字串,在同一行中以不那麼顯眼的方式渲染。支援透過$(<name>)
語法渲染主題圖示。
注意:當kind設定為QuickPickItemKind.Separator時,此屬性將被忽略
一個人類可讀的字串,在單獨的行中以不那麼顯眼的方式渲染。支援透過$(<name>)
語法渲染主題圖示。
注意:當kind設定為QuickPickItemKind.Separator時,此屬性將被忽略
iconPath?: IconPath
QuickPickItem 的圖示路徑或ThemeIcon。
kind?: QuickPickItemKind
QuickPickItem 的型別,它將決定此項在快速選擇中的渲染方式。如果未指定,預設值為QuickPickItemKind.Default。
一個人類可讀的字串,以醒目方式渲染。支援透過$(<name>)
語法渲染主題圖示。
注意:當kind設定為QuickPickItemKind.Default(即常規項而不是分隔符)時,它支援透過$(<name>)
語法渲染主題圖示。
可選標誌,指示此項是否最初被選中。此標誌僅在使用showQuickPick() API 時有效。要使用createQuickPick() API 實現相同的功能,只需將QuickPick.selectedItems設定為您希望最初選中的項。(注意:此標誌僅在選擇器允許多選時有效。)
另請參閱QuickPickOptions.canPickMany
注意:當kind設定為QuickPickItemKind.Separator時,此屬性將被忽略
QuickPickItemButtonEvent<T>
一個事件,表示觸發了特定QuickPickItem中的按鈕。此事件不會針對標題欄中的按鈕觸發。
屬性
button: QuickInputButton
被點選的按鈕。
按鈕所屬的項。
QuickPickItemKind
快速選擇項的型別。
列舉成員
當QuickPickItem的型別為Separator時,該項僅是一個視覺分隔符,不代表實際項。唯一適用的屬性是label。所有其他QuickPickItem上的屬性都將被忽略,不起作用。
預設的QuickPickItem.kind是可以在快速選擇中選擇的項。
QuickPickOptions
用於配置快速選擇 UI 行為的選項。
事件
onDidSelectItem(item: string | QuickPickItem): any
一個可選函式,每當選擇一個項時都會呼叫它。
引數 | 描述 |
---|---|
item: string | QuickPickItem | |
返回 | 描述 |
任意 |
屬性
一個可選標誌,使選擇器接受多項選擇,如果為 true,則結果是選擇陣列。
設定為true
可在焦點移至編輯器的其他部分或另一個視窗時保持選擇器開啟。此設定在 iPad 上將被忽略,並始終為 false。
一個可選標誌,用於在篩選選擇項時包含描述。
一個可選標誌,用於在篩選選擇項時包含詳細資訊。
一個可選字串,在輸入框中顯示為佔位符,以指導使用者選擇什麼。
一個可選字串,表示快速選擇的標題。
Range
一個範圍表示一對有序的兩個位置。保證start.isBeforeOrEqual(end)
Range 物件是不可變的。使用with、intersection或union方法從現有範圍派生新範圍。
建構函式
new Range(start: Position, end: Position): Range
new Range(startLine: number, startCharacter: number, endLine: number, endCharacter: number): Range
從數字座標建立一個新範圍。它相當於使用new Range(new Position(startLine, startCharacter), new Position(endLine, endCharacter))
的更短版本。
引數 | 描述 |
---|---|
startLine: number | 一個從零開始的行值。 |
startCharacter: number | 一個從零開始的字元值。 |
endLine: number | 一個從零開始的行值。 |
endCharacter: number | 一個從零開始的字元值。 |
返回 | 描述 |
Range |
屬性
end: Position
結束位置。它在start之後或與之相等。
如果 start
和 end
相等,則為 true
。
如果start.line
和end.line
相等,則為true
。
start: Position
起始位置。它在end之前或與之相等。
方法
contains(positionOrRange: Range | Position): boolean
檢查此範圍是否包含某個位置或範圍。
intersection(range: Range): Range
將range
與此範圍相交,並返回一個新範圍,如果範圍沒有重疊,則返回undefined
。
isEqual(other: Range): boolean
with(start?: Position, end?: Position): Range
從此範圍派生一個新範圍。
with(change: {end: Position, start: Position}): Range
從此範圍派生一個新範圍。
ReferenceContext
值物件,包含請求引用時的額外資訊。
屬性
包含當前符號的宣告。
ReferenceProvider
引用提供程式介面定義了擴充套件和查詢引用功能之間的契約。
方法
provideReferences(document: TextDocument, position: Position, context: ReferenceContext, token: CancellationToken): ProviderResult<Location[]>
為給定位置和文件提供一組專案範圍的引用。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
position: Position | 呼叫命令的位置。 |
context: ReferenceContext | 關於引用請求的附加資訊。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<Location[]> | 一個位置陣列或一個解析為位置陣列的 Thenable。可以透過返回 |
RelativePattern
相對模式是一個輔助工具,用於構建相對於基本檔案路徑匹配的 glob 模式。基本路徑可以是字串或 URI 形式的絕對檔案路徑,也可以是工作區資料夾,這是建立相對模式的首選方式。
建構函式
new RelativePattern(base: string | Uri | WorkspaceFolder, pattern: string): RelativePattern
建立具有基本檔案路徑和匹配模式的新相對模式物件。此模式將匹配相對於基本路徑的檔案路徑。
示例
const folder = vscode.workspace.workspaceFolders?.[0];
if (folder) {
// Match any TypeScript file in the root of this workspace folder
const pattern1 = new vscode.RelativePattern(folder, '*.ts');
// Match any TypeScript file in `someFolder` inside this workspace folder
const pattern2 = new vscode.RelativePattern(folder, 'someFolder/*.ts');
}
引數 | 描述 |
---|---|
base: string | Uri | WorkspaceFolder | 此模式將相對於其進行匹配的基礎。如果模式應在工作區內匹配,建議傳入工作區資料夾。否則,只有當模式用於工作區外的檔案路徑時,才應使用 URI 或字串。 |
pattern: string | 一個檔案 glob 模式,例如 |
返回 | 描述 |
RelativePattern |
屬性
此模式將相對於其匹配的基本檔案路徑。
這匹配RelativePattern.baseUri的fsPath
值。
注意:更新此值將更新RelativePattern.baseUri,使其成為具有file
方案的 URI。
- 已棄用 - 此屬性已棄用,請改用RelativePattern.baseUri。
baseUri: Uri
此模式將相對於其匹配的基本檔案路徑。檔案路徑必須是絕對路徑,不應有任何尾隨路徑分隔符,並且不應包含任何相對段(.
或..
)。
一個檔案 glob 模式,例如*.{ts,js}
,它將匹配相對於基本路徑的檔案路徑。
示例:給定一個基本路徑/home/work/folder
和一個檔案路徑/home/work/folder/index.js
,檔案 glob 模式將匹配index.js
。
RenameProvider
重新命名提供程式介面定義了擴充套件和重新命名功能之間的契約。
方法
prepareRename(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<Range | {placeholder: string, range: Range}>
在執行重新命名之前,用於解析和驗證位置的可選函式。結果可以是一個範圍,或者一個範圍和一個佔位符文字。佔位符文字應為正在重新命名的符號的識別符號 - 如果省略,則使用返回範圍中的文字。
注意:當提供的位置不允許重新命名時,此函式應丟擲錯誤或返回一個被拒絕的 Thenable。
引數 | 描述 |
---|---|
document: TextDocument | 將呼叫重新命名的文件。 |
position: Position | 將呼叫重新命名的位置。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<Range | {placeholder: string, range: Range}> | 要重新命名的識別符號的範圍或範圍和佔位符文字。可以透過返回 |
provideRenameEdits(document: TextDocument, position: Position, newName: string, token: CancellationToken): ProviderResult<WorkspaceEdit>
提供一個編輯,描述必須對一個或多個資源進行的更改,以將符號重新命名為不同的名稱。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
position: Position | 呼叫命令的位置。 |
newName: string | 符號的新名稱。如果給定的名稱無效,提供程式必須返回一個被拒絕的 Promise。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<WorkspaceEdit> | 一個工作區編輯或一個解析為工作區編輯的 thenable。可以透過返回 |
RunOptions
任務的執行選項。
屬性
控制任務變數是否在重新執行時重新評估。
SaveDialogOptions
配置檔案儲存對話方塊行為的選項。
屬性
defaultUri?: Uri
開啟時對話方塊顯示的資源。
對話方塊使用的一組檔案過濾器。每個條目都是人類可讀的標籤,例如“TypeScript”,以及一個擴充套件陣列,例如
{
'Images': ['png', 'jpg'],
'TypeScript': ['ts', 'tsx']
}
儲存按鈕的人類可讀字串。
對話方塊標題。
此引數可能會被忽略,因為並非所有作業系統都在儲存對話方塊上顯示標題(例如 macOS)。
SecretStorage
表示用於儲存加密的機密(或任何敏感資訊)的儲存實用程式。機密儲存的實現將在每個平臺上有所不同,並且機密不會在機器之間同步。
事件
onDidChange: Event<SecretStorageChangeEvent>
當機密被儲存或刪除時觸發。
方法
delete(key: string): Thenable<void>
從儲存中刪除機密。
引數 | 描述 |
---|---|
key: string | 機密儲存的鍵。 |
返回 | 描述 |
Thenable<void> |
get(key: string): Thenable<string>
檢索用鍵儲存的機密。如果沒有與該鍵匹配的密碼,則返回 undefined。
引數 | 描述 |
---|---|
key: string | 機密儲存的鍵。 |
返回 | 描述 |
Thenable<string> | 儲存的值或 |
store(key: string, value: string): Thenable<void>
將機密儲存在給定鍵下。
引數 | 描述 |
---|---|
key: string | 儲存機密的鍵。 |
value: string | 機密。 |
返回 | 描述 |
Thenable<void> |
SecretStorageChangeEvent
當機密新增或刪除時觸發的事件資料。
屬性
已更改的機密的鍵。
SelectedCompletionInfo
描述當前選定的補全項。
屬性
range: Range
如果接受此補全項,將被替換的範圍。
如果接受此補全項,將替換範圍的文字。
Selection
表示編輯器中的文字選擇。
建構函式
new Selection(anchor: Position, active: Position): Selection
new Selection(anchorLine: number, anchorCharacter: number, activeLine: number, activeCharacter: number): Selection
從四個座標建立選擇。
引數 | 描述 |
---|---|
anchorLine: number | 一個從零開始的行值。 |
anchorCharacter: number | 一個從零開始的字元值。 |
activeLine: number | 一個從零開始的行值。 |
activeCharacter: number | 一個從零開始的字元值。 |
返回 | 描述 |
Selection |
屬性
active: Position
游標的位置。此位置可能在anchor之前或之後。
anchor: Position
選擇開始的位置。此位置可能在active之前或之後。
end: Position
結束位置。它在start之後或與之相等。
如果 start
和 end
相等,則為 true
。
如果start.line
和end.line
相等,則為true
。
start: Position
起始位置。它在end之前或與之相等。
方法
contains(positionOrRange: Range | Position): boolean
檢查此範圍是否包含某個位置或範圍。
intersection(range: Range): Range
將range
與此範圍相交,並返回一個新範圍,如果範圍沒有重疊,則返回undefined
。
isEqual(other: Range): boolean
with(start?: Position, end?: Position): Range
從此範圍派生一個新範圍。
with(change: {end: Position, start: Position}): Range
從此範圍派生一個新範圍。
SelectionRange
選擇範圍表示選擇層次結構的一部分。一個選擇範圍可以有一個包含它的父選擇範圍。
建構函式
new SelectionRange(range: Range, parent?: SelectionRange): SelectionRange
建立新的選擇範圍。
引數 | 描述 |
---|---|
range: Range | 選擇範圍的範圍。 |
parent?: SelectionRange | 選擇範圍的父級。 |
返回 | 描述 |
SelectionRange |
屬性
parent?: SelectionRange
包含此範圍的父選擇範圍。
range: Range
此選擇範圍的Range。
SelectionRangeProvider
選擇範圍提供程式介面定義了擴充套件和“擴充套件和收縮選擇”功能之間的契約。
方法
provideSelectionRanges(document: TextDocument, positions: readonly Position[], token: CancellationToken): ProviderResult<SelectionRange[]>
為給定位置提供選擇範圍。
選擇範圍應針對每個位置單獨且獨立地計算。編輯器將合併並去重範圍,但提供程式必須返回選擇範圍的層次結構,以便一個範圍被其父級包含。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
positions: readonly Position[] | 呼叫命令時的位置。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<SelectionRange[]> | 選擇範圍或解析為選擇範圍的 thenable。可以透過返回 |
SemanticTokens
表示語義標記,無論是在一個範圍中還是在整個文件中。
另請參閱
- 有關格式的說明,請參閱provideDocumentSemanticTokens。
- 有關建立例項的幫助程式,請參閱SemanticTokensBuilder。
建構函式
new SemanticTokens(data: Uint32Array, resultId?: string): SemanticTokens
建立新的語義標記。
引數 | 描述 |
---|---|
data: Uint32Array | 標記資料。 |
resultId?: string | 結果識別符號。 |
返回 | 描述 |
SemanticTokens |
屬性
實際的令牌資料。
另請參閱provideDocumentSemanticTokens以瞭解格式說明。
標記的結果 ID。
這是將傳遞給DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits
(如果已實現)的 ID。
SemanticTokensBuilder
語義標記構建器可以幫助建立包含增量編碼語義標記的SemanticTokens
例項。
建構函式
new SemanticTokensBuilder(legend?: SemanticTokensLegend): SemanticTokensBuilder
建立一個語義標記構建器。
引數 | 描述 |
---|---|
legend?: SemanticTokensLegend | 語義標記圖例。 |
返回 | 描述 |
SemanticTokensBuilder |
方法
build(resultId?: string): SemanticTokens
完成並建立SemanticTokens
例項。
引數 | 描述 |
---|---|
resultId?: string | |
返回 | 描述 |
SemanticTokens |
push(line: number, char: number, length: number, tokenType: number, tokenModifiers?: number): void
新增另一個標記。
引數 | 描述 |
---|---|
line: number | 標記起始行號(絕對值)。 |
char: number | 標記起始字元(絕對值)。 |
length: number | 標記的字元長度。 |
tokenType: number | 編碼的標記型別。 |
tokenModifiers?: number | 編碼的標記修飾符。 |
返回 | 描述 |
void |
push(range: Range, tokenType: string, tokenModifiers?: readonly string[]): void
新增另一個令牌。僅在提供圖例時使用。
引數 | 描述 |
---|---|
range: Range | 令牌的範圍。必須是單行。 |
tokenType: string | 令牌型別。 |
tokenModifiers?: readonly string[] | 令牌修飾符。 |
返回 | 描述 |
void |
SemanticTokensEdit
表示對語義標記的編輯。
有關格式的說明,請參閱provideDocumentSemanticTokensEdits。
建構函式
new SemanticTokensEdit(start: number, deleteCount: number, data?: Uint32Array): SemanticTokensEdit
建立語義令牌編輯。
引數 | 描述 |
---|---|
start: number | 起始偏移量 |
deleteCount: number | 要刪除的元素數量。 |
data?: Uint32Array | 要插入的元素 |
返回 | 描述 |
SemanticTokensEdit |
屬性
要插入的元素。
要刪除的元素數量。
編輯的起始偏移量。
SemanticTokensEdits
表示對語義標記的編輯。
有關格式的說明,請參閱provideDocumentSemanticTokensEdits。
建構函式
new SemanticTokensEdits(edits: SemanticTokensEdit[], resultId?: string): SemanticTokensEdits
建立新的語義令牌編輯。
引數 | 描述 |
---|---|
edits: SemanticTokensEdit[] | 語義令牌編輯陣列 |
resultId?: string | 結果識別符號。 |
返回 | 描述 |
SemanticTokensEdits |
屬性
edits: SemanticTokensEdit[]
對令牌資料的編輯。所有編輯都指初始資料狀態。
標記的結果 ID。
這是將傳遞給DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits
(如果已實現)的 ID。
SemanticTokensLegend
語義令牌圖例包含解析語義令牌整數編碼表示所需的資訊。
建構函式
new SemanticTokensLegend(tokenTypes: string[], tokenModifiers?: string[]): SemanticTokensLegend
建立一個語義令牌圖例。
引數 | 描述 |
---|---|
tokenTypes: string[] | 令牌型別陣列。 |
tokenModifiers?: string[] | 令牌修飾符陣列。 |
返回 | 描述 |
SemanticTokensLegend |
屬性
可能的令牌修飾符。
可能的令牌型別。
ShellExecution
表示在 shell 中發生的任務執行。
建構函式
new ShellExecution(commandLine: string, options?: ShellExecutionOptions): ShellExecution
使用完整命令列建立 shell 執行。
引數 | 描述 |
---|---|
commandLine: string | 要執行的命令列。 |
options?: ShellExecutionOptions | 啟動 shell 的可選選項。 |
返回 | 描述 |
ShellExecution |
new ShellExecution(command: string | ShellQuotedString, args: Array<string | ShellQuotedString>, options?: ShellExecutionOptions): ShellExecution
使用命令和引數建立 shell 執行。對於實際執行,編輯器將從命令和引數構建命令列。這可能會受到解釋的影響,尤其是在引用方面。如果需要對命令列進行完全控制,請使用建立帶有完整命令列的ShellExecution
的建構函式。
引數 | 描述 |
---|---|
command: string | ShellQuotedString | 要執行的命令。 |
args: Array<string | ShellQuotedString> | 命令引數。 |
options?: ShellExecutionOptions | 啟動 shell 的可選選項。 |
返回 | 描述 |
ShellExecution |
屬性
args: Array<string | ShellQuotedString>
shell 引數。如果使用完整命令列建立,則為undefined
。
command: string | ShellQuotedString
shell 命令。如果使用命令和引數建立,則為undefined
。
shell 命令列。如果使用命令和引數建立,則為undefined
。
options?: ShellExecutionOptions
在 shell 中執行命令列時使用的 shell 選項。預設為 undefined。
ShellExecutionOptions
shell 執行的選項
屬性
執行的 shell 的當前工作目錄。如果省略,則使用工具的當前工作區根目錄。
執行的 shell 的額外環境。如果省略,則使用父程序的環境。如果提供,它將與父程序的環境合併。
shell 可執行檔案。
要傳遞給用於執行任務的 shell 可執行檔案的引數。大多數 shell 需要特殊的引數來執行命令。例如,bash
需要-c
引數來執行命令,PowerShell
需要-Command
,而cmd
需要/d
和/c
。
shellQuoting?: ShellQuotingOptions
此 shell 支援的 shell 引用。
ShellQuotedString
根據所使用的 shell 進行引用的字串。
屬性
quoting: ShellQuoting
要使用的引用樣式。
實際字串值。
ShellQuoting
定義如果引數包含空格或不支援的字元,應如何引用。
列舉成員
應使用字元轉義。例如,這在 bash 中使用 \,在 PowerShell 中使用 `。
應使用強字串引用。例如,這在 Windows cmd 中使用 ",在 bash 和 PowerShell 中使用 '。強引用將引數視為字面字串。在 PowerShell 下,echo 'The value is $(2 * 3)' 將列印The value is $(2 * 3)
。
應使用弱字串引用。例如,這在 Windows cmd、bash 和 PowerShell 中都使用 "。弱引用仍然在引用字串中執行某種型別的評估。在 PowerShell 下,echo "The value is $(2 * 3)" 將列印The value is 6
。
ShellQuotingOptions
shell 引用選項。
屬性
escape?: string | {charsToEscape: string, escapeChar: string}
用於字元轉義的字元。如果提供了字串,則只轉義空格。如果提供了{ escapeChar, charsToEscape }
字面量,則charsToEscape
中的所有字元都將使用escapeChar
進行轉義。
用於強引用的字元。字串的長度必須為 1。
用於弱引用的字元。字串的長度必須為 1。
SignatureHelp
簽名幫助表示某個可呼叫內容的簽名。可以有多個簽名,但只有一個是活動的,並且只有一個活動引數。
建構函式
new SignatureHelp(): SignatureHelp
引數 | 描述 |
---|---|
返回 | 描述 |
SignatureHelp |
屬性
活動簽名的活動引數。
活動簽名。
signatures: SignatureInformation[]
一個或多個簽名。
SignatureHelpContext
關於觸發SignatureHelpProvider的上下文的附加資訊。
屬性
activeSignatureHelp: SignatureHelp
當前活動的SignatureHelp。
activeSignatureHelp
的activeSignature欄位會根據使用者透過可用簽名進行切換而更新。
如果簽名幫助在觸發時已顯示,則為 true
。
當簽名幫助已啟用時會發生重新觸發,這可能是由於輸入觸發字元、游標移動或文件內容更改等操作引起的。
導致簽名幫助被觸發的字元。
當簽名幫助不是透過打字觸發時(例如手動呼叫簽名幫助或移動游標時),此值為 undefined
。
triggerKind: SignatureHelpTriggerKind
導致簽名幫助被觸發的操作。
SignatureHelpProvider
簽名幫助提供程式介面定義了擴充套件和引數提示功能之間的契約。
方法
provideSignatureHelp(document: TextDocument, position: Position, token: CancellationToken, context: SignatureHelpContext): ProviderResult<SignatureHelp>
在給定位置和文件中提供簽名幫助。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
position: Position | 呼叫命令的位置。 |
token: CancellationToken | 取消令牌。 |
context: SignatureHelpContext | 關於簽名幫助如何觸發的資訊。 |
返回 | 描述 |
ProviderResult<SignatureHelp> | 簽名幫助或解析為簽名的 Thenable。可以透過返回 |
SignatureHelpProviderMetadata
關於已註冊的 SignatureHelpProvider 的元資料。
屬性
retriggerCharacters: readonly string[]
重新觸發簽名幫助的字元列表。
這些觸發字元僅在簽名幫助已顯示時才有效。所有觸發字元也都計為重新觸發字元。
triggerCharacters: readonly string[]
觸發簽名幫助的字元列表。
SignatureHelpTriggerKind
如何觸發 SignatureHelpProvider。
列舉成員
簽名幫助由使用者或命令手動呼叫。
簽名幫助由觸發字元觸發。
簽名幫助由游標移動或文件內容更改觸發。
SignatureInformation
表示可呼叫項的簽名。簽名可以有標籤(如函式名)、文件註釋和一組引數。
建構函式
new SignatureInformation(label: string, documentation?: string | MarkdownString): SignatureInformation
建立一個新的簽名信息物件。
引數 | 描述 |
---|---|
label: string | 一個標籤字串。 |
documentation?: string | MarkdownString | 文件字串。 |
返回 | 描述 |
SignatureInformation |
屬性
活動引數的索引。
如果提供,將取代 SignatureHelp.activeParameter。
documentation?: string | MarkdownString
此簽名的人類可讀文件註釋。將顯示在 UI 中,但可以省略。
此簽名的標籤。將顯示在 UI 中。
parameters: ParameterInformation[]
此簽名的引數。
SnippetString
程式碼片段字串是一個模板,允許插入文字並在插入時控制編輯器游標。
程式碼片段可以使用 $1
、$2
和 ${3:foo}
定義製表位和佔位符。$0
定義最終的製表位,預設為程式碼片段的末尾。變數使用 $name
和 ${name:default value}
定義。另請參閱完整的程式碼片段語法。
建構函式
new SnippetString(value?: string): SnippetString
建立一個新的程式碼片段字串。
引數 | 描述 |
---|---|
value?: string | 一個程式碼片段字串。 |
返回 | 描述 |
SnippetString |
屬性
程式碼片段字串。
方法
appendChoice(values: readonly string[], number?: number): SnippetString
構建器函式,將一個選擇(${1|a,b,c|}
)附加到此程式碼片段字串的 value。
引數 | 描述 |
---|---|
values: readonly string[] | 選擇的值 - 字串陣列 |
number?: number | 此製表位的編號,預設為從 1 開始的自增值。 |
返回 | 描述 |
SnippetString | 此程式碼片段字串。 |
appendPlaceholder(value: string | (snippet: SnippetString) => any, number?: number): SnippetString
構建器函式,將一個佔位符(${1:value}
)附加到此程式碼片段字串的 value。
引數 | 描述 |
---|---|
value: string | (snippet: SnippetString) => any | 此佔位符的值 - 可以是字串,也可以是用於建立巢狀程式碼片段的函式。 |
number?: number | 此製表位的編號,預設為從 1 開始的自增值。 |
返回 | 描述 |
SnippetString | 此程式碼片段字串。 |
appendTabstop(number?: number): SnippetString
構建器函式,將一個製表位($1
、$2
等)附加到此程式碼片段字串的 value。
引數 | 描述 |
---|---|
number?: number | 此製表位的編號,預設為從 1 開始的自增值。 |
返回 | 描述 |
SnippetString | 此程式碼片段字串。 |
appendText(string: string): SnippetString
構建器函式,將給定字串附加到此程式碼片段字串的 value。
引數 | 描述 |
---|---|
string: string | 要“按原樣”附加的值。字串將被轉義。 |
返回 | 描述 |
SnippetString | 此程式碼片段字串。 |
appendVariable(name: string, defaultValue: string | (snippet: SnippetString) => any): SnippetString
構建器函式,將一個變數(${VAR}
)附加到此程式碼片段字串的 value。
引數 | 描述 |
---|---|
name: string | 變數的名稱 - 不包括 |
defaultValue: string | (snippet: SnippetString) => any | 當無法解析變數名時使用的預設值 - 可以是字串,也可以是用於建立巢狀程式碼片段的函式。 |
返回 | 描述 |
SnippetString | 此程式碼片段字串。 |
SnippetTextEdit
程式碼片段編輯表示由編輯器執行的互動式編輯。
注意,程式碼片段編輯始終可以作為常規文字編輯執行。當沒有匹配的編輯器開啟時,或者當工作區編輯包含多個檔案的程式碼片段編輯時,就會發生這種情況。在這種情況下,只有與活動編輯器匹配的程式碼片段編輯才會作為程式碼片段編輯執行,而其他則作為常規文字編輯執行。
靜態
insert(position: Position, snippet: SnippetString): SnippetTextEdit
用於建立插入程式碼片段編輯的實用程式。
引數 | 描述 |
---|---|
position: Position | 一個位置,將成為一個空範圍。 |
snippet: SnippetString | 一個程式碼片段字串。 |
返回 | 描述 |
SnippetTextEdit | 一個新的程式碼片段編輯物件。 |
replace(range: Range, snippet: SnippetString): SnippetTextEdit
用於建立替換程式碼片段編輯的實用程式。
引數 | 描述 |
---|---|
range: Range | 一個範圍。 |
snippet: SnippetString | 一個程式碼片段字串。 |
返回 | 描述 |
SnippetTextEdit | 一個新的程式碼片段編輯物件。 |
建構函式
new SnippetTextEdit(range: Range, snippet: SnippetString): SnippetTextEdit
建立一個新的程式碼片段編輯。
引數 | 描述 |
---|---|
range: Range | 一個範圍。 |
snippet: SnippetString | 一個程式碼片段字串。 |
返回 | 描述 |
SnippetTextEdit |
屬性
是否應在保留現有空白的情況下應用程式碼片段編輯。
range: Range
此編輯適用的範圍。
snippet: SnippetString
此編輯將執行的 程式碼片段。
SourceBreakpoint
由源位置指定的斷點。
建構函式
new SourceBreakpoint(location: Location, enabled?: boolean, condition?: string, hitCondition?: string, logMessage?: string): SourceBreakpoint
為源位置建立一個新斷點。
引數 | 描述 |
---|---|
location: Location | |
enabled?: boolean | |
condition?: string | |
hitCondition?: string | |
logMessage?: string | |
返回 | 描述 |
SourceBreakpoint |
屬性
條件斷點的可選表示式。
斷點是否啟用。
控制忽略多少次斷點命中的可選表示式。
斷點的唯一 ID。
location: Location
此斷點的源和行位置。
命中此斷點時記錄的可選訊息。大括號中的嵌入表示式由除錯介面卡進行插值。
SourceControl
一個原始碼控制能夠向編輯器提供 資源狀態,並以幾種與原始碼控制相關的方式與編輯器進行互動。
屬性
acceptInputCommand?: Command
可選的接受輸入命令。
當用戶在原始碼控制輸入中接受值時,將呼叫此命令。
可選的提交模板字串。
原始碼控制檢視將在適當的時候使用此值填充原始碼控制輸入。
此原始碼控制的 ID。
inputBox: SourceControlInputBox
此原始碼控制的 輸入框。
此原始碼控制的人類可讀標籤。
quickDiffProvider?: QuickDiffProvider
可選的 快速差異提供程式。
rootUri: Uri
此原始碼控制根目錄的(可選)Uri。
statusBarCommands?: Command[]
可選的狀態列命令。
這些命令將顯示在編輯器的狀態列中。
方法
createResourceGroup(id: string, label: string): SourceControlResourceGroup
建立一個新的 資源組。
引數 | 描述 |
---|---|
id: string | |
label: string | |
返回 | 描述 |
SourceControlResourceGroup |
處置此原始碼控制。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
SourceControlInputBox
表示原始碼控制檢視中的輸入框。
屬性
控制輸入框是否啟用(預設為 true
)。
在輸入框中顯示為佔位符的字串,用於引導使用者。
輸入框內容的設定器和獲取器。
控制輸入框是否可見(預設為 true
)。
SourceControlResourceDecorations
原始碼控制資源狀態的裝飾。可以為亮色和暗色主題獨立指定。
屬性
dark?: SourceControlResourceThemableDecorations
暗色主題裝飾。
在 UI 中是否應淡化 原始碼控制資源狀態。
iconPath?: string | Uri | ThemeIcon
特定 原始碼控制資源狀態 的圖示路徑。
light?: SourceControlResourceThemableDecorations
亮色主題裝飾。
在 UI 中是否應劃掉 原始碼控制資源狀態。
特定 原始碼控制資源狀態 的標題。
SourceControlResourceGroup
原始碼控制資源組是 原始碼控制資源狀態 的集合。
屬性
資源組的上下文值。這可用於貢獻資源組特定的操作。例如,如果資源組被賦予上下文值 exportable
,則在使用 menus
擴充套件點向 scm/resourceGroup/context
貢獻操作時,可以在 when
表示式中指定鍵 scmResourceGroupState
的上下文值,例如 scmResourceGroupState == exportable
。
"contributes": {
"menus": {
"scm/resourceGroup/context": [
{
"command": "extension.export",
"when": "scmResourceGroupState == exportable"
}
]
}
}
這將僅對 contextValue
等於 exportable
的資源組顯示操作 extension.export
。
當此原始碼控制資源組不包含任何 原始碼控制資源狀態 時是否隱藏。
此原始碼控制資源組的 ID。
此原始碼控制資源組的標籤。
resourceStates: SourceControlResourceState[]
此組的 原始碼控制資源狀態 集合。
方法
處置此原始碼控制資源組。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
SourceControlResourceState
原始碼控制資源狀態表示特定 原始碼控制組 中基礎工作區資源的狀態。
屬性
command?: Command
當資源狀態在原始碼控制檢視中開啟時應執行的 命令。
資源狀態的上下文值。這可用於貢獻資源特定的操作。例如,如果資源被賦予上下文值 diffable
。當使用 menus
擴充套件點向 scm/resourceState/context
貢獻操作時,可以在 when
表示式中指定鍵 scmResourceState
的上下文值,例如 scmResourceState == diffable
。
"contributes": {
"menus": {
"scm/resourceState/context": [
{
"command": "extension.diff",
"when": "scmResourceState == diffable"
}
]
}
}
這將僅對 contextValue
為 diffable
的資源顯示操作 extension.diff
。
decorations?: SourceControlResourceDecorations
此原始碼控制資源狀態的 裝飾。
resourceUri: Uri
工作區中底層資源的 Uri。
SourceControlResourceThemableDecorations
原始碼控制資源狀態 的主題感知裝飾。
屬性
iconPath?: string | Uri | ThemeIcon
特定 原始碼控制資源狀態 的圖示路徑。
StatementCoverage
包含單個語句或行的覆蓋資訊。
建構函式
new StatementCoverage(executed: number | boolean, location: Range | Position, branches?: BranchCoverage[]): StatementCoverage
引數 | 描述 |
---|---|
executed: number | boolean | 此語句的執行次數,如果確切計數未知,則為布林值,指示是否已執行。如果為零或 false,則此語句將被標記為未覆蓋。 |
location: Range | Position | 語句位置。 |
branches?: BranchCoverage[] | 此行分支的覆蓋率。如果不是條件語句,則應省略。 |
返回 | 描述 |
StatementCoverage |
屬性
branches: BranchCoverage[]
此行或語句分支的覆蓋率。如果不是條件語句,則為空。
此語句的執行次數,如果確切計數未知,則為布林值,指示是否已執行。如果為零或 false,則此語句將被標記為未覆蓋。
語句位置。
StatusBarAlignment
表示狀態列項的對齊方式。
列舉成員
左對齊。
右對齊。
StatusBarItem
狀態列項是狀態列貢獻,可以顯示文字和圖示,並單擊時執行命令。
屬性
accessibilityInformation: AccessibilityInformation
當螢幕閱讀器與此狀態列項互動時使用的輔助功能資訊。
alignment: StatusBarAlignment
此項的對齊方式。
backgroundColor: ThemeColor
此條目的背景顏色。
注意:僅支援以下顏色
new ThemeColor('statusBarItem.errorBackground')
new ThemeColor('statusBarItem.warningBackground')
將來可能會支援更多背景顏色。
注意:當設定背景顏色時,狀態列可能會覆蓋 color
選擇,以確保條目在所有主題中都可讀。
color: string | ThemeColor
此條目的前景色。
command: string | Command
此項的識別符號。
注意:如果 window.createStatusBarItem 方法未提供識別符號,則該識別符號將與 擴充套件識別符號 匹配。
條目的名稱,如“Python 語言指示器”、“Git 狀態”等。嘗試保持名稱長度簡短,但足以描述狀態列項的用途。
此項的優先順序。值越高表示該項應更多地顯示在左側。
條目顯示的文字。您可以透過以下語法在文字中嵌入圖示:
我的文字 $(icon-name) 包含像 $(icon-name) 這樣的圖示。
其中 icon-name 取自 ThemeIcon 圖示集,例如 light-bulb
、thumbsup
、zap
等。
tooltip: string | MarkdownString
將滑鼠懸停在此條目上時顯示的工具提示文字。
方法
處置並釋放相關資源。呼叫 hide。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
隱藏狀態列中的條目。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
顯示狀態列中的條目。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
SymbolInformation
表示有關變數、類、介面等程式設計構造的資訊。
建構函式
new SymbolInformation(name: string, kind: SymbolKind, containerName: string, location: Location): SymbolInformation
建立一個新的符號資訊物件。
引數 | 描述 |
---|---|
name: string | 符號的名稱。 |
kind: SymbolKind | 符號的種類。 |
containerName: string | 包含此符號的符號的名稱。 |
location: Location | 符號的位置。 |
返回 | 描述 |
SymbolInformation |
new SymbolInformation(name: string, kind: SymbolKind, range: Range, uri?: Uri, containerName?: string): SymbolInformation
建立一個新的符號資訊物件。
- 已棄用 - 請使用接受 Location 物件的建構函式。
引數 | 描述 |
---|---|
name: string | 符號的名稱。 |
kind: SymbolKind | 符號的種類。 |
range: Range | 符號位置的範圍。 |
uri?: Uri | 符號位置的資源,預設為當前文件。 |
containerName?: string | 包含此符號的符號的名稱。 |
返回 | 描述 |
SymbolInformation |
屬性
包含此符號的符號的名稱。
kind: SymbolKind
此符號的種類。
location: Location
此符號的位置。
此符號的名稱。
tags?: readonly SymbolTag[]
此符號的標籤。
SymbolKind
一種符號型別。
列舉成員
File
符號型別。
Module
符號型別。
Namespace
符號型別。
Package
符號型別。
Class
符號型別。
Method
符號型別。
Property
符號型別。
Field
符號型別。
Constructor
符號型別。
Enum
符號型別。
Interface
符號型別。
Function
符號型別。
Variable
符號型別。
Constant
符號型別。
String
符號型別。
Number
符號型別。
Boolean
符號型別。
Array
符號型別。
Object
符號型別。
Key
符號型別。
Null
符號型別。
EnumMember
符號型別。
Struct
符號型別。
Event
符號型別。
Operator
符號型別。
TypeParameter
符號型別。
SymbolTag
符號標籤是額外註釋,可調整符號的呈現方式。
列舉成員
將符號渲染為已過時,通常使用刪除線。
SyntaxTokenType
常見語法令牌型別的列舉。
列舉成員
除註釋、字串文字和正則表示式中的令牌以外的所有內容。
註釋。
字串文字。
正則表示式。
Tab
表示 選項卡組 中的一個選項卡。選項卡僅僅是編輯器區域內的圖形表示。不能保證有後臺編輯器。
屬性
group: TabGroup
選項卡所屬的組。
定義選項卡的結構,即文字、筆記本、自定義等。資源和其他有用的屬性在選項卡型別上定義。
選項卡當前是否處於活動狀態。這由組中選定的選項卡決定。
選項卡上是否存在髒指示器。
選項卡是否已固定(存在圖釘圖示)。
選項卡是否處於預覽模式。
選項卡上顯示的文字。
TabChangeEvent
描述選項卡更改的事件。
屬性
changed: readonly Tab[]
已更改的選項卡,例如已更改其 活動 狀態。
closed: readonly Tab[]
已關閉的選項卡。
opened: readonly Tab[]
已開啟的選項卡。
TabGroup
表示一組選項卡。選項卡組本身由多個選項卡組成。
屬性
activeTab: Tab
tabs: readonly Tab[]
組中包含的選項卡列表。如果組中沒有開啟的選項卡,則此列表可以為空。
viewColumn: ViewColumn
組的檢視列。
TabGroupChangeEvent
描述選項卡組更改的事件。
屬性
changed: readonly TabGroup[]
已更改的選項卡組,例如已更改其 活動 狀態。
closed: readonly TabGroup[]
已關閉的選項卡組。
opened: readonly TabGroup[]
已開啟的選項卡組。
TabGroups
表示由多個包含選項卡的組組成的主編輯器區域。
事件
onDidChangeTabGroups: Event<TabGroupChangeEvent>
onDidChangeTabs: Event<TabChangeEvent>
屬性
activeTabGroup: TabGroup
當前活動組。
all: readonly TabGroup[]
組容器中的所有組。
方法
close(tab: Tab | readonly Tab[], preserveFocus?: boolean): Thenable<boolean>
關閉選項卡。這將使選項卡物件無效,並且不應再將該選項卡用於進一步操作。注意:如果選項卡未儲存,將顯示確認對話方塊,該對話方塊可能會被取消。如果取消,選項卡仍然有效。
close(tabGroup: TabGroup | readonly TabGroup[], preserveFocus?: boolean): Thenable<boolean>
關閉選項卡組。這將使選項卡組物件無效,並且不應再將該選項卡組用於進一步操作。
TabInputCustom
該選項卡表示一個自定義編輯器。
建構函式
new TabInputCustom(uri: Uri, viewType: string): TabInputCustom
構造自定義編輯器選項卡輸入。
引數 | 描述 |
---|---|
uri: Uri | 選項卡的 Uri。 |
viewType: string | 自定義編輯器的檢視型別。 |
返回 | 描述 |
TabInputCustom |
屬性
uri: Uri
選項卡所代表的 uri。
自定義編輯器的型別。
TabInputNotebook
該選項卡表示一個筆記本。
建構函式
new TabInputNotebook(uri: Uri, notebookType: string): TabInputNotebook
為筆記本構造一個新的選項卡輸入。
引數 | 描述 |
---|---|
uri: Uri | 筆記本的 Uri。 |
notebookType: string | 筆記本的型別。對映到 NotebookDocuments 的 notebookType。 |
返回 | 描述 |
TabInputNotebook |
屬性
筆記本的型別。對映到 NotebookDocuments 的 notebookType。
uri: Uri
選項卡所代表的 uri。
TabInputNotebookDiff
選項卡表示以差異配置顯示的兩個筆記本。
建構函式
new TabInputNotebookDiff(original: Uri, modified: Uri, notebookType: string): TabInputNotebookDiff
構造筆記本差異選項卡輸入。
引數 | 描述 |
---|---|
original: Uri | 原始未修改筆記本的 uri。 |
modified: Uri | 修改後筆記本的 uri。 |
notebookType: string | 筆記本的型別。對映到 NotebookDocuments 的 notebookType。 |
返回 | 描述 |
TabInputNotebookDiff |
屬性
modified: Uri
修改後筆記本的 uri。
筆記本的型別。對映到 NotebookDocuments 的 notebookType。
original: Uri
原始筆記本的 uri。
TabInputTerminal
該選項卡表示編輯器區域中的一個終端。
建構函式
new TabInputTerminal(): TabInputTerminal
構造終端選項卡輸入。
引數 | 描述 |
---|---|
返回 | 描述 |
TabInputTerminal |
TabInputText
該選項卡表示單個基於文字的資源。
建構函式
new TabInputText(uri: Uri): TabInputText
用給定的 URI 構造一個文字選項卡輸入。
引數 | 描述 |
---|---|
uri: Uri | 選項卡的 URI。 |
返回 | 描述 |
TabInputText |
屬性
uri: Uri
選項卡表示的 uri。
TabInputTextDiff
選項卡表示兩個文字資源以差異形式呈現。
建構函式
new TabInputTextDiff(original: Uri, modified: Uri): TabInputTextDiff
用給定的 URI 構造一個新的文字差異選項卡輸入。
引數 | 描述 |
---|---|
original: Uri | 原始文字資源的 uri。 |
modified: Uri | 修改後的文字資源的 uri。 |
返回 | 描述 |
TabInputTextDiff |
屬性
modified: Uri
修改後的文字資源的 uri。
original: Uri
原始文字資源的 uri。
TabInputWebview
該選項卡表示一個 Webview。
建構函式
new TabInputWebview(viewType: string): TabInputWebview
用給定的檢視型別構造一個 Webview 選項卡輸入。
引數 | 描述 |
---|---|
viewType: string | Webview 的型別。對映到 WebviewPanel 的 viewType。 |
返回 | 描述 |
TabInputWebview |
屬性
Webview 的型別。對映到 WebviewPanel 的 viewType。
Task
要執行的任務。
建構函式
new Task(taskDefinition: TaskDefinition, scope: WorkspaceFolder | Global | Workspace, name: string, source: string, execution?: ProcessExecution | ShellExecution | CustomExecution, problemMatchers?: string | string[]): Task
建立新任務。
引數 | 描述 |
---|---|
taskDefinition: TaskDefinition | 在 taskDefinitions 擴充套件點中定義的任務定義。 |
scope: WorkspaceFolder | Global | Workspace | 指定任務的範圍。它可以是全域性任務、工作區任務或特定工作區資料夾的任務。目前不支援全域性任務。 |
name: string | 任務的名稱。顯示在使用者介面中。 |
source: string | 任務的來源(例如,“gulp”、“npm”等)。顯示在使用者介面中。 |
execution?: ProcessExecution | ShellExecution | CustomExecution | 程序或 shell 執行。 |
problemMatchers?: string | string[] | 要使用的問題匹配器名稱,如“$tsc”或“$eslint”。問題匹配器可以透過擴充套件使用 |
返回 | 描述 |
Task |
new Task(taskDefinition: TaskDefinition, name: string, source: string, execution?: ProcessExecution | ShellExecution, problemMatchers?: string | string[]): Task
建立新任務。
- 已棄用 - 請使用允許為任務指定範圍的新建構函式。
引數 | 描述 |
---|---|
taskDefinition: TaskDefinition | 在 taskDefinitions 擴充套件點中定義的任務定義。 |
name: string | 任務的名稱。顯示在使用者介面中。 |
source: string | 任務的來源(例如,“gulp”、“npm”等)。顯示在使用者介面中。 |
execution?: ProcessExecution | ShellExecution | 程序或 shell 執行。 |
problemMatchers?: string | string[] | 要使用的問題匹配器名稱,如“$tsc”或“$eslint”。問題匹配器可以透過擴充套件使用 |
返回 | 描述 |
Task |
屬性
definition: TaskDefinition
任務的定義。
一個人類可讀的字串,在顯示任務名稱的位置以單獨的行不太突出地呈現。支援透過 $(<name>)
語法渲染 主題圖示。
execution?: ProcessExecution | ShellExecution | CustomExecution
任務的執行引擎。
group?: TaskGroup
此任務所屬的任務組。有關預定義可用組,請參閱 TaskGroup。預設為 undefined,表示任務不屬於任何特殊組。
任務是否為後臺任務。
任務的名稱。
presentationOptions: TaskPresentationOptions
呈現選項。預設為空字面量。
附加到任務的問題匹配器。預設為空陣列。
runOptions: RunOptions
任務的執行選項。
scope: WorkspaceFolder | Global | Workspace
任務的範圍。
一個人類可讀的字串,描述此 shell 任務的來源,例如“gulp”或“npm”。支援透過 $(<name>)
語法渲染 主題圖示。
TaskDefinition
定義系統中任務型別(Task Kind)的結構。該值必須可 JSON 字串化。
屬性
由擴充套件提供的描述任務的任務定義。通常,任務提供程式定義更多屬性來識別任務。它們需要在擴充套件的 package.json 檔案中的“taskDefinitions”擴充套件點下定義。例如,npm 任務定義如下所示。
interface NpmTaskDefinition extends TaskDefinition {
script: string;
}
請注意,以“$”開頭的型別識別符號保留供內部使用,擴充套件不應使用。
TaskEndEvent
表示已執行任務結束的事件。
此介面不打算實現。
屬性
execution: TaskExecution
表示已完成任務的任務項。
TaskExecution
表示已執行任務的物件。可用於終止任務。
此介面不打算實現。
屬性
task: Task
已啟動的任務。
方法
終止任務執行。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
TaskFilter
任務篩選器根據其版本和型別來表示任務。
屬性
要返回的任務型別;
任務的 version,如 tasks.json 檔案中所用。該字串支援 package.json semver 符號。
TaskGroup
任務的分組。編輯器預設支援“Clean”、“Build”、“RebuildAll”和“Test”組。
靜態
Build: TaskGroup
構建任務組;
Clean: TaskGroup
清理任務組;
Rebuild: TaskGroup
重建所有任務組;
Test: TaskGroup
測試所有任務組;
建構函式
new TaskGroup(id: string, label: string): TaskGroup
私有建構函式
引數 | 描述 |
---|---|
id: string | 任務組的識別符號。 |
label: string | 任務組的人類可讀名稱。 |
返回 | 描述 |
任務組 |
屬性
任務組的 ID。是 TaskGroup.Clean.id、TaskGroup.Build.id、TaskGroup.Rebuild.id 或 TaskGroup.Test.id 之一。
屬於此組的任務是否為該組的預設任務。此屬性無法透過 API 設定,由使用者的任務配置控制。
TaskPanelKind
控制任務通道在任務之間如何使用
列舉成員
與其他任務共享一個面板。這是預設設定。
為此任務使用專用面板。該面板不與其他任務共享。
每次執行此任務時都會建立一個新面板。
TaskPresentationOptions
控制任務在 UI 中的呈現方式。
屬性
控制在執行任務之前是否清除終端。
控制在執行任務後是否關閉終端。
控制是否在使用者介面中回顯與任務關聯的命令。
控制顯示任務輸出的面板是否獲得焦點。
panel?: TaskPanelKind
控制任務面板是僅用於此任務(專用)、在任務之間共享(共享)還是在每次任務執行時建立一個新面板(新建)。預設為 TaskInstanceKind.Shared
reveal?: TaskRevealKind
控制是否在使用者介面中顯示任務輸出。預設為 RevealKind.Always
。
控制是否顯示“終端將被任務重用,按任意鍵關閉它”訊息。
TaskProcessEndEvent
透過任務觸發的程序執行結束的事件訊號
屬性
execution: TaskExecution
程序啟動的任務執行。
程序的退出程式碼。當任務終止時將為 undefined
。
TaskProcessStartEvent
透過任務觸發的程序執行開始的事件訊號
屬性
execution: TaskExecution
程序啟動的任務執行。
底層程序 ID。
TaskProvider<T>
任務提供程式允許將任務新增到任務服務。任務提供程式透過 tasks.registerTaskProvider 註冊。
方法
provideTasks(token: CancellationToken): ProviderResult<T[]>
提供任務。
引數 | 描述 |
---|---|
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T[]> | 任務陣列 |
resolveTask(task: T, token: CancellationToken): ProviderResult<T>
解析沒有設定 execution 的任務。任務通常是從 tasks.json
檔案中找到的資訊建立的。此類任務缺少如何執行它們的資訊,任務提供程式必須在 resolveTask
方法中填寫缺失的資訊。此方法不會為從上述 provideTasks
方法返回的任務呼叫,因為這些任務總是完全解析的。resolveTask
方法的有效預設實現是返回 undefined
。
請注意,在填寫 task
的屬性時,您*必須*確保使用完全相同的 TaskDefinition
,而不是建立一個新的。其他屬性可能會更改。
引數 | 描述 |
---|---|
task: T | 要解析的任務。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T> | 已解析的任務 |
TaskRevealKind
控制終端可見性的行為。
列舉成員
如果任務執行,始終將終端置於前臺。
僅當執行任務時檢測到問題(例如,任務無法啟動)時才將終端置於前臺。
任務執行時終端永不置於前臺。
TaskScope
任務的範圍。
列舉成員
該任務是一個全域性任務。目前不支援全域性任務。
該任務是一個工作區任務
TaskStartEvent
任務執行開始的事件訊號。
此介面不打算實現。
屬性
execution: TaskExecution
表示已啟動任務的任務項。
TelemetryLogger
遙測記錄器,可供擴充套件用於記錄使用情況和錯誤遙測。
記錄器包裝了 傳送器,但它保證
- 尊重停用或調整遙測的使用者設定,並且
- 潛在敏感資料被刪除
它還啟用了“回顯 UI”,用於打印發送的任何資料,並允許編輯器將未處理的錯誤轉發給相應的擴充套件。
要獲取 TelemetryLogger
例項,請使用 createTelemetryLogger
。
事件
onDidChangeEnableStates: Event<TelemetryLogger>
當使用情況或錯誤遙測的啟用狀態更改時觸發的 Event。
屬性
此記錄器是否啟用了錯誤遙測。
此記錄器是否啟用了使用情況遙測。
方法
釋放此物件並釋放資源。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
logError(eventName: string, data?: Record<string, any>): void
記錄錯誤事件。
完成清理、遙測設定檢查和資料混入後,呼叫 TelemetrySender.sendEventData
記錄事件。與 logUsage
的區別在於,如果遙測設定為 Error+,它將記錄事件。自動支援回顯到擴充套件遙測輸出通道。
引數 | 描述 |
---|---|
eventName: string | 要記錄的事件名稱 |
data?: Record<string, any> | 要記錄的資料 |
返回 | 描述 |
void |
logError(error: Error, data?: Record<string, any>): void
記錄錯誤事件。
呼叫 TelemetrySender.sendErrorData
。進行清理、遙測檢查和資料混入。自動支援回顯到擴充套件遙測輸出通道。還將自動記錄擴充套件主機程序中丟擲的任何異常。
引數 | 描述 |
---|---|
error: Error | 包含已清除 PII 的堆疊跟蹤的錯誤物件 |
data?: Record<string, any> | 與堆疊跟蹤一起記錄的額外資料 |
返回 | 描述 |
void |
logUsage(eventName: string, data?: Record<string, any>): void
記錄使用情況事件。
完成清理、遙測設定檢查和資料混入後,呼叫 TelemetrySender.sendEventData
記錄事件。自動支援回顯到擴充套件遙測輸出通道。
引數 | 描述 |
---|---|
eventName: string | 要記錄的事件名稱 |
data?: Record<string, any> | 要記錄的資料 |
返回 | 描述 |
void |
TelemetryLoggerOptions
建立 TelemetryLogger 的選項
屬性
additionalCommonProperties?: Record<string, any>
應注入資料物件的任何其他通用屬性。
ignoreBuiltInCommonProperties?: boolean
是否避免將內建通用屬性(如作業系統、副檔名等)注入資料物件。如果未定義,則預設為 false
。
ignoreUnhandledErrors?: boolean
是否將您的擴充套件導致的擴充套件主機上未處理的錯誤記錄到您的傳送器。如果未定義,則預設為 false
。
TelemetrySender
遙測傳送器是遙測記錄器和某些遙測服務之間的約定。**注意**,擴充套件不得直接呼叫其傳送器的方法,因為記錄器提供了額外的保護和清理。
const sender: vscode.TelemetrySender = {...};
const logger = vscode.env.createTelemetryLogger(sender);
// GOOD - uses the logger
logger.logUsage('myEvent', { myData: 'myValue' });
// BAD - uses the sender directly: no data cleansing, ignores user settings, no echoing to the telemetry output channel etc
sender.logEvent('myEvent', { myData: 'myValue' });
方法
flush(): void | Thenable<void>
可選的重新整理功能,它將使此傳送器有機會在其 TelemetryLogger 被處理時傳送任何剩餘的事件
引數 | 描述 |
---|---|
返回 | 描述 |
void | Thenable<void> |
sendErrorData(error: Error, data?: Record<string, any>): void
傳送錯誤的功能。在 TelemetryLogger 中使用
引數 | 描述 |
---|---|
error: Error | 正在記錄的錯誤 |
data?: Record<string, any> | 隨異常一起收集的任何額外資料 |
返回 | 描述 |
void |
sendEventData(eventName: string, data?: Record<string, any>): void
傳送不帶堆疊跟蹤的事件資料的功能。在 TelemetryLogger 中使用
引數 | 描述 |
---|---|
eventName: string | 您正在記錄的事件名稱 |
data?: Record<string, any> | 正在記錄的可序列化鍵值對 |
返回 | 描述 |
void |
TelemetryTrustedValue<T>
一個特殊的包裝值,表示一個安全值,無需清理。當您能夠保證值中不包含任何可識別資訊,並且清理不當導致其被編輯時,應使用此值。
建構函式
new TelemetryTrustedValue<T>(value: T): TelemetryTrustedValue<T>
建立一個新的遙測信任值。
引數 | 描述 |
---|---|
value: T | 要信任的值 |
返回 | 描述 |
TelemetryTrustedValue<T> |
屬性
被信任不包含 PII 的值。
Terminal
整合終端中的單個終端例項。
屬性
creationOptions: Readonly<TerminalOptions | ExtensionTerminalOptions>
用於初始化終端的物件,例如,這對於檢測終端未由此擴充套件啟動時的 shell 型別或檢測 shell 啟動的資料夾很有用。
exitStatus: TerminalExitStatus
終端的退出狀態,當終端處於活動狀態時,此項將為 undefined。
示例: 當終端以非零退出程式碼退出時,顯示帶有退出程式碼的通知。
window.onDidCloseTerminal(t => {
if (t.exitStatus && t.exitStatus.code) {
vscode.window.showInformationMessage(`Exit code: ${t.exitStatus.code}`);
}
});
終端的名稱。
shell 程序的程序 ID。
shellIntegration: TerminalShellIntegration
一個包含由 shell 整合 提供支援的終端功能的 Shell 整合物件。在終端建立後,此項將始終為 undefined
。監聽 window.onDidChangeTerminalShellIntegration 以在終端啟用 shell 整合時獲得通知。
請注意,如果 shell 整合從未啟用,此物件可能仍為 undefined。例如,命令提示符不支援 shell 整合,並且使用者的 shell 設定可能與自動 shell 整合啟用衝突。
state: TerminalState
終端 的當前狀態。
方法
釋放並解除關聯的資源。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
如果此終端當前正在顯示,則隱藏終端面板。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
sendText(text: string, shouldExecute?: boolean): void
向終端傳送文字。文字被寫入終端底層 pty 程序 (shell) 的標準輸入。
引數 | 描述 |
---|---|
text: string | 要傳送的文字。 |
shouldExecute?: boolean | 指示正在傳送的文字應該執行,而不是僅僅插入到終端中。新增的字元為 |
返回 | 描述 |
void |
show(preserveFocus?: boolean): void
顯示終端面板並在 UI 中顯示此終端。
引數 | 描述 |
---|---|
preserveFocus?: boolean | 當 |
返回 | 描述 |
void |
TerminalDimensions
表示終端的尺寸。
屬性
終端中的列數。
終端中的行數。
TerminalEditorLocationOptions
假定 TerminalLocation 為編輯器,並允許指定 ViewColumn 和 preserveFocus 屬性
屬性
一個可選標誌,當設定為 true
時,將阻止 終端 獲得焦點。
viewColumn: ViewColumn
終端在編輯器區域中顯示的檢視列。預設值為 活動 列。如果需要,將建立不存在的列,最多可達 ViewColumn.Nine。使用 ViewColumn.Beside 在當前活動編輯器的旁邊開啟編輯器。
TerminalExitReason
終端退出原因型別。
列舉成員
未知原因。
視窗已關閉/重新載入。
shell 程序已退出。
使用者關閉了終端。
擴充套件程式處理了終端。
TerminalExitStatus
表示終端如何退出。
屬性
終端退出的退出程式碼,它可以有以下值
- 零:終端程序或自定義執行成功。
- 非零:終端程序或自定義執行失敗。
undefined
:使用者強制關閉終端或自定義執行退出時未提供退出程式碼。
reason: TerminalExitReason
觸發終端退出的原因。
TerminalLink
終端行上的一個連結。
建構函式
new TerminalLink(startIndex: number, length: number, tooltip?: string): TerminalLink
建立新的終端連結。
引數 | 描述 |
---|---|
startIndex: number | 連結在 TerminalLinkContext.line 上的起始索引。 |
length: number | 連結在 TerminalLinkContext.line 上的長度。 |
tooltip?: string | 將滑鼠懸停在此連結上時顯示的工具提示文字。 如果提供了工具提示,它將顯示在一個字串中,其中包括如何觸發連結的說明,例如 |
返回 | 描述 |
終端連結 |
屬性
連結在 TerminalLinkContext.line 上的長度。
連結在 TerminalLinkContext.line 上的起始索引。
將滑鼠懸停在此連結上時顯示的工具提示文字。
如果提供了工具提示,它將顯示在一個字串中,其中包括如何觸發連結的說明,例如 {0} (ctrl + click)
。具體說明因作業系統、使用者設定和本地化而異。
TerminalLinkContext
提供終端行上的資訊,以便為其提供連結。
屬性
這是終端中未包裝行的文字。
terminal: Terminal
連結所屬的終端。
TerminalLinkProvider<T>
一個提供程式,用於在終端內檢測和處理連結。
方法
handleTerminalLink(link: T): ProviderResult<void>
處理已啟用的終端連結。
引數 | 描述 |
---|---|
link: T | 要處理的連結。 |
返回 | 描述 |
ProviderResult<void> |
provideTerminalLinks(context: TerminalLinkContext, token: CancellationToken): ProviderResult<T[]>
為給定上下文提供終端連結。請注意,即使在之前的呼叫解析之前,此方法也可以多次呼叫,請確保不要共享在非同步使用可能重疊時可能出現問題的全域性物件(例如 RegExp
)。
引數 | 描述 |
---|---|
context: TerminalLinkContext | 有關正在為其提供連結的資訊。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T[]> | 給定行的終端連結列表。 |
TerminalLocation
終端的位置。
列舉成員
在終端檢視中
在編輯器區域中
TerminalOptions
描述終端應使用哪些選項的值物件。
屬性
color?: ThemeColor
終端的圖示 ThemeColor。建議使用 terminal.ansi*
主題鍵以實現最佳對比度和跨主題的一致性。
cwd?: string | Uri
要用於終端的當前工作目錄的路徑或 URI。
將新增到編輯器程序的環境變數物件。
啟用後,終端將正常執行程序,但在呼叫 Terminal.show
之前不會向用戶顯示。典型的用法是當您需要執行可能需要互動但只在需要互動時才告知使用者的情況。請注意,終端仍將像往常一樣暴露給所有擴充套件。下次開啟工作區時,隱藏的終端將不會恢復。
iconPath?: IconPath
終端的圖示路徑或 ThemeIcon。
選擇退出在重啟和重新載入時預設終端永續性。這僅在啟用 terminal.integrated.enablePersistentSessions
時生效。
location?: TerminalEditorLocationOptions | TerminalSplitLocationOptions | TerminalLocation
第一次啟動時要寫入終端的訊息,請注意,此訊息不會發送到程序,而是直接寫入終端。這支援轉義序列,例如設定文字樣式。
一個人類可讀的字串,將用於在 UI 中表示終端。
自定義 shell 可執行檔案的引數。在 Windows 上只能使用字串,它允許以 命令列格式 指定 shell 引數。
shellIntegrationNonce?: string
用於驗證 shell 整合序列是否來自可信來源的 nonce。這在使用者體驗方面的一個影響是,如果命令列帶有 nonce,則在透過 shell 整合命令裝飾 重新執行它之前,不需要與使用者驗證命令列是否正確。
如果終端包含 自定義 shell 整合支援,則應使用此選項。它應設定為一個隨機 GUID,然後將設定 VSCODE_NONCE
環境變數。在 shell 內部,應將其從環境中移除,以保護其免受一般訪問。完成此操作後,可以在相關序列中傳遞它以使其受信任。
終端中要使用的自定義 shell 可執行檔案的路徑。
終端程序環境是否應與 TerminalOptions.env
中提供的完全一致。當此為 false(預設值)時,環境將基於視窗環境,並且還將應用配置的平臺設定,例如 terminal.integrated.env.windows
。當此為 true 時,必須提供完整的環境,因為不會從程序或任何配置繼承任何內容。
TerminalProfile
終端配置檔案定義了終端將如何啟動。
建構函式
new TerminalProfile(options: TerminalOptions | ExtensionTerminalOptions): TerminalProfile
建立一個新的終端配置檔案。
引數 | 描述 |
---|---|
options: TerminalOptions | ExtensionTerminalOptions | 終端將啟動的選項。 |
返回 | 描述 |
終端配置檔案 |
屬性
options: TerminalOptions | ExtensionTerminalOptions
終端將啟動的選項。
TerminalProfileProvider
在透過 UI 或命令啟動時,為貢獻的終端配置檔案提供終端配置檔案。
方法
provideTerminalProfile(token: CancellationToken): ProviderResult<TerminalProfile>
提供終端配置檔案。
引數 | 描述 |
---|---|
token: CancellationToken | 一個取消令牌,指示不再需要結果。 |
返回 | 描述 |
ProviderResult<TerminalProfile> | 終端配置檔案。 |
TerminalShellExecution
在終端中執行的命令。
屬性
commandLine: TerminalShellExecutionCommandLine
已執行的命令列。此值的 置信度 取決於特定 shell 的 shell 整合實現。此值在 window.onDidEndTerminalShellExecution 觸發後可能會變得更準確。
示例
// 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');
}
cwd: Uri
此命令執行時 shell 報告的工作目錄。此 Uri 可能表示另一臺機器上的檔案(例如,SSH 到另一臺機器)。這需要 shell 整合支援工作目錄報告。
方法
建立寫入終端的原始資料流(包括轉義序列)。這將僅包含在第一次呼叫 read
之後寫入的資料,即,您必須在透過 TerminalShellIntegration.executeCommand 或 window.onDidStartTerminalShellExecution 執行命令後立即呼叫 read
,以免錯過任何資料。
示例
// 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);
}
引數 | 描述 |
---|---|
返回 | 描述 |
AsyncIterable<string> |
TerminalShellExecutionCommandLine
在終端中執行的命令列。
屬性
confidence: TerminalShellExecutionCommandLineConfidence
命令列值的置信度,由獲取值的方式決定。這取決於 shell 整合指令碼的實現。
命令列值是否來自受信任的源,因此可以安全執行而無需使用者額外確認,例如詢問“是否要執行(命令)?”的通知。這種驗證可能只有在您打算再次執行命令時才需要。
僅當命令列由 shell 整合指令碼顯式報告(即 高置信度)並且它使用隨機數進行驗證時,此項才為 true
。
已執行的完整命令列,包括命令及其引數。
TerminalShellExecutionCommandLineConfidence
列舉成員
命令列值的置信度較低。這意味著該值是從終端緩衝區中使用 shell 整合指令碼報告的標記讀取的。此外,將滿足以下條件之一
- 命令從最左列開始,這不尋常,或者
- 命令是多行,由於行連線字元和右側提示符,更難以準確檢測。
- shell 整合指令碼未報告命令列標記。
命令列值的置信度為中等。這意味著該值是從終端緩衝區中使用 shell 整合指令碼報告的標記讀取的。該命令是單行且不從最左列開始(這不尋常)。
命令列值的置信度很高。這意味著該值是由 shell 整合指令碼明確傳送的,或者該命令是透過 TerminalShellIntegration.executeCommand API 執行的。
TerminalShellExecutionEndEvent
表示終端中執行已結束的事件。
屬性
execution: TerminalShellExecution
已結束的終端 shell 執行。
shell 報告的退出程式碼。
當此值為 undefined
時,可能意味著幾件事
- shell 未報告退出程式碼(即 shell 整合指令碼行為異常)
- shell 在命令完成之前報告命令已啟動(例如,打開了子 shell)。
- 使用者透過 ctrl+c 取消了命令。
- 使用者在沒有輸入時按下了 enter。
通常這不應該發生。根據用例,最好將其視為失敗。
示例
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');
}
}
});
shellIntegration: TerminalShellIntegration
shell 整合物件。
terminal: Terminal
已啟用 shell 整合的終端。
TerminalShellExecutionStartEvent
表示終端中執行已開始的事件。
屬性
execution: TerminalShellExecution
已結束的終端 shell 執行。
shellIntegration: TerminalShellIntegration
shell 整合物件。
terminal: Terminal
已啟用 shell 整合的終端。
TerminalShellIntegration
由終端擁有的 Shell 整合 功能。
屬性
cwd: Uri
終端的當前工作目錄。此 Uri 可能表示另一臺機器上的檔案(例如,SSH 到另一臺機器)。這需要 shell 整合支援工作目錄報告。
方法
executeCommand(commandLine: string): TerminalShellExecution
執行命令,必要時傳送 ^C 以中斷任何正在執行的命令。
示例
// 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);
示例
// 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.
}
引數 | 描述 |
---|---|
commandLine: string | 要執行的命令列,這是將傳送到終端的精確文字。 |
返回 | 描述 |
終端 shell 執行 |
executeCommand(executable: string, args: string[]): TerminalShellExecution
執行命令,必要時傳送 ^C 以中斷任何正在執行的命令。
注意 這不能保證有效,因為必須啟用 shell 整合。檢查 TerminalShellExecution.exitCode 是否被拒絕以驗證是否成功。
示例
// 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);
示例
// 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.
}
引數 | 描述 |
---|---|
executable: string | 要執行的命令。 |
args: string[] | 啟動可執行檔案的引數。引數將被轉義,使得當引數既包含空格又未包含任何單引號、雙引號或反引號字元時,它們被解釋為單個引數。 請注意,此轉義並非旨在作為安全措施,在將不受信任的資料傳遞給此 API 時請務必小心,因為像 |
返回 | 描述 |
終端 shell 執行 |
TerminalShellIntegrationChangeEvent
表示終端的 shell 整合已更改的事件。
屬性
shellIntegration: TerminalShellIntegration
shell 整合物件。
terminal: Terminal
已啟用 shell 整合的終端。
TerminalSplitLocationOptions
使用父 終端 的位置作為終端
屬性
parentTerminal: Terminal
要將此終端拆分到旁邊的父終端。無論父終端是在面板中還是在編輯器區域中,這都有效。
TerminalState
表示 Terminal 的狀態。
屬性
終端 是否已互動。互動意味著終端已根據終端的*模式*向程序傳送資料。預設情況下,當按下鍵或當命令或擴充套件傳送文字時傳送輸入,但根據終端的模式,它也可以在以下情況發生
- 指標點選事件
- 指標滾動事件
- 指標移動事件
- 終端焦點進入/退出
有關可能傳送資料的事件的更多資訊,請參閱 https://invisible-island.net/xterm/ctlseqs/ctlseqs.html 上的“DEC Private Mode Set (DECSET)”
檢測到的 終端 的 shell 型別。當沒有明確的訊號表明 shell 是什麼,或者 shell 尚未受支援時,此值將為 undefined
。當啟動子 shell 時(例如,在 zsh
中執行 bash
),此值應更改為子 shell 的 shell 型別。
請注意,可能的值目前定義為以下任何一種:“bash”、“cmd”、“csh”、“fish”、“gitbash”、“julia”、“ksh”、“node”、“nu”、“pwsh”、“python”、“sh”、“wsl”、“zsh”。
TestController
發現和執行測試的入口點。它包含 TestController.items,用於填充編輯器 UI,並與 執行配置檔案 關聯,以允許執行測試。
屬性
在 tests.createTestController 中傳入的控制器的 ID。這必須是全域性唯一的。
items: TestItemCollection
“頂級” TestItem 例項的集合,這些例項又可以擁有自己的 子項 以形成“測試樹”。
擴充套件控制何時新增測試。例如,擴充套件應在 workspace.onDidOpenTextDocument 觸發時新增檔案的測試,以便檔案內測試的裝飾可見。
但是,編輯器有時可能會使用 resolveHandler 顯式請求子項。有關詳細資訊,請參閱該方法的文件。
測試控制器的可讀標籤。
refreshHandler: (token: CancellationToken) => void | Thenable<void>
如果存在此方法,則 UI 中將顯示重新整理按鈕,並在單擊時呼叫此方法。呼叫時,擴充套件應掃描工作區以查詢任何新建、更改或刪除的測試。
建議擴充套件嘗試即時更新測試,例如使用 FileSystemWatcher,並將此方法用作備用。
引數 | 描述 |
---|---|
token: CancellationToken | |
返回 | 描述 |
void | Thenable<void> | 當測試已重新整理時解析的 Thenable。 |
resolveHandler?: (item: TestItem) => void | Thenable<void>
一個由擴充套件提供的函式,如果 TestItem.canResolveChildren 為 true
,編輯器可以呼叫此函式來請求測試項的子項。呼叫時,項應發現子項並在發現子項時呼叫 TestController.createTestItem。
通常,擴充套件管理測試項的生命週期,但在某些情況下,編輯器可能會請求載入特定項的子項。例如,如果使用者在重新載入編輯器後請求重新執行測試,編輯器可能需要呼叫此方法來解析先前執行的測試。
在函式返回或返回的 thenable 解析之前,資源管理器中的項將自動標記為“忙碌”。
方法
createRunProfile(label: string, kind: TestRunProfileKind, runHandler: (request: TestRunRequest, token: CancellationToken) => void | Thenable<void>, isDefault?: boolean, tag?: TestTag, supportsContinuousRun?: boolean): TestRunProfile
建立用於執行測試的配置檔案。擴充套件必須建立至少一個配置檔案才能執行測試。
引數 | 描述 |
---|---|
label: string | 此配置檔案的可讀標籤。 |
kind: TestRunProfileKind | 配置此配置檔案管理的執行型別。 |
runHandler: (request: TestRunRequest, token: CancellationToken) => void | Thenable<void> | 呼叫以開始測試執行的函式。 |
isDefault?: boolean | 這是否是其型別的預設操作。 |
tag?: TestTag | 配置檔案測試標籤。 |
supportsContinuousRun?: boolean | 配置檔案是否支援持續執行。 |
返回 | 描述 |
測試執行配置檔案 | 一個 TestRunProfile 例項,它自動與此控制器關聯。 |
createTestItem(id: string, label: string, uri?: Uri): TestItem
建立一個新的託管 TestItem 例項。它可以新增到現有項的 TestItem.children 中,或新增到 TestController.items 中。
引數 | 描述 |
---|---|
id: string | TestItem 的識別符號。TestItem 的 ID 在它所屬的 TestItemCollection 中必須是唯一的。 |
label: string | 測試項的可讀標籤。 |
uri?: Uri | 此 TestItem 關聯的 URI。可以是檔案或目錄。 |
返回 | 描述 |
測試項 |
createTestRun(request: TestRunRequest, name?: string, persist?: boolean): TestRun
建立一個 TestRun。這應該由 TestRunProfile 在發出執行測試的請求時呼叫,也可以在外部檢測到測試執行後呼叫。建立後,請求中包含的測試將進入排隊狀態。
所有使用相同 request
例項建立的執行將分組在一起。例如,這在單個測試套件在多個平臺上執行時很有用。
引數 | 描述 |
---|---|
request: TestRunRequest | 測試執行請求。只有 |
name?: string | 執行的人類可讀名稱。這可用於區分測試執行中的多組結果。例如,如果測試在多個平臺上執行,這很有用。 |
persist?: boolean | 執行建立的結果是否應持久儲存在編輯器中。如果結果來自已外部儲存的檔案,例如覆蓋率資訊檔案,則此項可能為 false。 |
返回 | 描述 |
TestRun | TestRun 的一個例項。從呼叫此方法到呼叫 TestRun.end 為止,它將被視為“正在執行”。 |
登出測試控制器,處置其關聯的測試和未持久化的結果。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
invalidateTestResults(items?: TestItem | readonly TestItem[]): void
將專案的結果標記為已過時。這通常在程式碼或配置更改且以前的結果不再被視為相關時呼叫。用於將結果標記為過時的相同邏輯可用於驅動 連續測試執行。
如果將專案傳遞給此方法,則該專案及其所有子項的測試結果都將標記為過時。如果沒有傳遞專案,則 TestController 擁有的所有測試都將標記為過時。
在此方法呼叫之前開始的任何測試執行,包括可能仍在進行的執行,都將標記為過時並在編輯器的 UI 中降低優先順序。
TestCoverageCount
一個類,其中包含有關已覆蓋資源的資訊。可以為檔案中的行、分支和宣告提供計數。
建構函式
new TestCoverageCount(covered: number, total: number): TestCoverageCount
引數 | 描述 |
---|---|
covered: number | |
total: number | |
返回 | 描述 |
TestCoverageCount |
屬性
檔案中已覆蓋專案的數量。
檔案中已覆蓋專案的總數。
TestItem
在“測試資源管理器”檢視中顯示的專案。
TestItem
可以表示測試套件或測試本身,因為它們都具有相似的功能。
屬性
控制專案是否在測試資源管理器檢視中顯示為“忙碌”。這對於在發現子項時顯示狀態很有用。
預設為 false
。
指示此測試專案是否可以透過解析發現子項。
如果為 true,則此專案在測試資源管理器檢視中顯示為可展開,並且展開該專案將導致呼叫 TestController.resolveHandler 並傳入該專案。
預設為 false
。
children: TestItemCollection
此測試專案的子項。對於測試套件,這可能包含單個測試用例或巢狀套件。
顯示在標籤旁邊的可選描述。
error: string | MarkdownString
載入測試時遇到的可選錯誤。
請注意,這不是測試結果,僅應用於表示測試發現中的錯誤,例如語法錯誤。
TestItem
的識別符號。這用於將文件中的測試結果和測試與工作區(測試資源管理器)中的測試關聯起來。在 TestItem
的生命週期內,此識別符號不能更改,並且在其父項的直接子項中必須是唯一的。
描述測試用例的顯示名稱。
parent: TestItem
此專案的父項。它是自動設定的,並且對於 TestController.items 中的頂級專案以及尚未包含在其他專案的 children 中的專案,它是未定義的。
range: Range
測試專案在 uri 中的位置。
這僅當 uri
指向檔案時才有意義。
與其他專案比較時應使用的字串。當 falsy
時,使用 label。
tags: readonly TestTag[]
與此測試專案關聯的標籤。可與 tags 結合使用,或僅作為組織功能。
uri: Uri
此 TestItem
關聯的 URI。可以是檔案或目錄。
TestItemCollection
測試專案集合,可在 TestItem.children 和 TestController.items 中找到。
屬性
獲取集合中專案的數量。
方法
add(item: TestItem): void
將測試專案新增到子項。如果已存在具有相同 ID 的專案,則會被替換。
引數 | 描述 |
---|---|
item: TestItem | 要新增的專案。 |
返回 | 描述 |
void |
從集合中刪除單個測試專案。
引數 | 描述 |
---|---|
itemId: string | 要刪除的專案 ID。 |
返回 | 描述 |
void |
forEach(callback: (item: TestItem, collection: TestItemCollection) => unknown, thisArg?: any): void
迭代此集合中的每個條目。
引數 | 描述 |
---|---|
callback: (item: TestItem, collection: TestItemCollection) => unknown | 對每個條目執行的函式。 |
thisArg?: any | 呼叫處理函式時使用的 |
返回 | 描述 |
void |
get(itemId: string): TestItem
如果存在,則高效地按 ID 獲取子項中的測試專案。
引數 | 描述 |
---|---|
itemId: string | 要獲取的專案 ID。 |
返回 | 描述 |
測試項 | 找到的專案或如果不存在則為 undefined。 |
replace(items: readonly TestItem[]): void
替換集合儲存的專案。
引數 | 描述 |
---|---|
items: readonly TestItem[] | 要儲存的專案。 |
返回 | 描述 |
void |
TestMessage
與測試狀態關聯的訊息。可以連結到特定的源範圍——例如,對於斷言失敗很有用。
靜態
diff(message: string | MarkdownString, expected: string, actual: string): TestMessage
建立新的 TestMessage,它將在編輯器中顯示為差異。
引數 | 描述 |
---|---|
message: string | MarkdownString | 顯示給使用者的訊息。 |
expected: string | 預期輸出。 |
actual: string | 實際輸出。 |
返回 | 描述 |
TestMessage |
建構函式
new TestMessage(message: string | MarkdownString): TestMessage
建立新的 TestMessage 例項。
引數 | 描述 |
---|---|
message: string | MarkdownString | 顯示給使用者的訊息。 |
返回 | 描述 |
TestMessage |
屬性
實際測試輸出。如果與 expectedOutput 一起提供,將顯示差異檢視。
測試專案的上下文值。這可用於向測試預覽檢視提供訊息特定操作。此處設定的值可在以下 menus
貢獻點的 testMessage
屬性中找到
testing/message/context
- 結果樹中訊息的上下文選單testing/message/content
- 覆蓋顯示訊息的編輯器內容的突出按鈕。
例如
"contributes": {
"menus": {
"testing/message/content": [
{
"command": "extension.deleteCommentThread",
"when": "testMessage == canApplyRichDiff"
}
]
}
}
命令將使用包含以下內容的物件呼叫
test
: 與訊息關聯的 TestItem,*如果*它仍在 TestController.items 集合中。message
: TestMessage 例項。
預期測試輸出。如果與 actualOutput 一起提供,將顯示差異檢視。
location?: Location
關聯的檔案位置。
message: string | MarkdownString
要顯示的人類可讀訊息文字。
stackTrace?: TestMessageStackFrame[]
與訊息或故障關聯的堆疊跟蹤。
TestMessageStackFrame
在 TestMessage.stackTrace 中找到的堆疊幀。
建構函式
new TestMessageStackFrame(label: string, uri?: Uri, position?: Position): TestMessageStackFrame
引數 | 描述 |
---|---|
label: string | 堆疊幀的名稱 |
uri?: Uri | |
position?: Position | 堆疊幀在檔案中的位置 |
返回 | 描述 |
TestMessageStackFrame |
屬性
堆疊幀的名稱,通常是方法或函式名。
position?: Position
堆疊幀在檔案中的位置。
uri?: Uri
此堆疊幀的位置。如果編輯器可以訪問呼叫幀的位置,則應以 URI 形式提供。
TestRun
TestRun 表示正在進行或已完成的測試執行,並提供報告執行中單個測試狀態的方法。
事件
onDidDispose: Event<void>
當編輯器不再對與測試執行關聯的資料感興趣時觸發的事件。
屬性
測試執行是否會由編輯器持久化到重新載入。
執行的人類可讀名稱。這可用於區分測試執行中的多組結果。例如,如果測試在多個平臺上執行,這很有用。
token: CancellationToken
當從 UI 取消測試執行時,將觸發的取消令牌。
方法
addCoverage(fileCoverage: FileCoverage): void
新增檔案中檔案的覆蓋率。
引數 | 描述 |
---|---|
fileCoverage: FileCoverage | |
返回 | 描述 |
void |
appendOutput(output: string, location?: Location, test?: TestItem): void
追加測試執行器的原始輸出。根據使用者的請求,輸出將顯示在終端中。支援 ANSI 轉義序列,例如顏色和文字樣式。新行必須以 CRLF (\r\n
) 而不是 LF (\n
) 的形式給出。
表示測試執行結束。執行中包含的任何狀態尚未更新的測試都將重置其狀態。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
enqueued(test: TestItem): void
表示測試已排隊等待稍後執行。
引數 | 描述 |
---|---|
test: TestItem | 要更新的測試項。 |
返回 | 描述 |
void |
errored(test: TestItem, message: TestMessage | readonly TestMessage[], duration?: number): void
表示測試出錯。您應該傳遞一個或多個 TestMessages 來描述故障。這與“失敗”狀態不同,它表示由於編譯錯誤等原因根本無法執行的測試。
引數 | 描述 |
---|---|
test: TestItem | 要更新的測試項。 |
message: TestMessage | readonly TestMessage[] | 與測試失敗關聯的訊息。 |
duration?: number | 測試執行所需的時間(以毫秒為單位)。 |
返回 | 描述 |
void |
failed(test: TestItem, message: TestMessage | readonly TestMessage[], duration?: number): void
表示測試失敗。您應該傳遞一個或多個 TestMessages 來描述故障。
引數 | 描述 |
---|---|
test: TestItem | 要更新的測試項。 |
message: TestMessage | readonly TestMessage[] | 與測試失敗關聯的訊息。 |
duration?: number | 測試執行所需的時間(以毫秒為單位)。 |
返回 | 描述 |
void |
passed(test: TestItem, duration?: number): void
表示測試已透過。
引數 | 描述 |
---|---|
test: TestItem | 要更新的測試項。 |
duration?: number | 測試執行所需的時間(以毫秒為單位)。 |
返回 | 描述 |
void |
skipped(test: TestItem): void
表示測試已被跳過。
引數 | 描述 |
---|---|
test: TestItem | 要更新的測試項。 |
返回 | 描述 |
void |
started(test: TestItem): void
表示測試已開始執行。
引數 | 描述 |
---|---|
test: TestItem | 要更新的測試項。 |
返回 | 描述 |
void |
TestRunProfile
TestRunProfile 描述了在 TestController 中執行測試的一種方式。
事件
onDidChangeDefault: Event<boolean>
當用戶更改此配置檔案是否為預設配置檔案時觸發的事件。事件包含 isDefault 的新值
屬性
如果此方法存在,則 UI 中將出現配置齒輪,單擊它時將呼叫此方法。呼叫時,您可以執行其他編輯器操作,例如顯示快速選擇或開啟配置檔案。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
控制此配置檔案是否為執行其型別時將採取的預設操作。例如,如果使用者單擊通用“執行所有”按鈕,則將執行 TestRunProfileKind.Run 的預設配置檔案,儘管使用者可以配置此項。
使用者對其預設配置檔案所做的更改將在 onDidChangeDefault 事件後反映在此屬性中。
kind: TestRunProfileKind
配置此配置檔案控制的執行型別。如果某種型別沒有配置檔案,則它在 UI 中將不可用。
在 UI 中顯示給使用者的標籤。
請注意,如果使用者以某種方式請求重新執行測試,則該標籤具有一定的意義。例如,如果測試正常執行,並且使用者請求以除錯模式重新執行它們,則編輯器將嘗試使用具有相同標籤的 Debug
型別配置。如果不存在此類配置,則將使用預設配置。
loadDetailedCoverage?: (testRun: TestRun, fileCoverage: FileCoverage, token: CancellationToken) => Thenable<FileCoverageDetail[]>
一個由擴充套件提供的函式,用於提供檔案的詳細語句和函式級覆蓋率。當檔案需要更多詳細資訊時(例如在編輯器中開啟或在“**測試覆蓋率**”檢視中展開時),編輯器將呼叫此函式。
傳遞給此函式的 FileCoverage 物件是與此配置檔案關聯的 TestRun.addCoverage 呼叫中發出的相同例項。
引數 | 描述 |
---|---|
testRun: TestRun | |
fileCoverage: FileCoverage | |
token: CancellationToken | |
返回 | 描述 |
Thenable<FileCoverageDetail[]> |
loadDetailedCoverageForTest?: (testRun: TestRun, fileCoverage: FileCoverage, fromTestItem: TestItem, token: CancellationToken) => Thenable<FileCoverageDetail[]>
一個由擴充套件提供的函式,用於提供檔案中單個測試的詳細語句和函式級覆蓋率。這是 TestRunProfile.loadDetailedCoverage 的按測試兄弟函式,僅當在 FileCoverage.includesTests 中提供了測試項時才呼叫,並且僅適用於報告此類資料的檔案。
通常,當用戶開啟檔案時,會首先呼叫 TestRunProfile.loadDetailedCoverage,然後如果他們深入檢視特定的按測試覆蓋率資訊,則會呼叫此方法。此方法應僅返回在執行期間由特定測試執行的語句和宣告的覆蓋率資料。
傳遞給此函式的 FileCoverage 物件是與此配置檔案關聯的 TestRun.addCoverage 呼叫中發出的相同例項。
引數 | 描述 |
---|---|
testRun: TestRun | 生成覆蓋率資料的測試執行。 |
fileCoverage: FileCoverage | 要載入詳細覆蓋率的檔案覆蓋率物件。 |
fromTestItem: TestItem | 要請求覆蓋率資訊的測試項。 |
token: CancellationToken | 指示操作應取消的取消令牌。 |
返回 | 描述 |
Thenable<FileCoverageDetail[]> |
runHandler: (request: TestRunRequest, token: CancellationToken) => void | Thenable<void>
呼叫此處理程式以啟動測試執行。呼叫時,函式應至少呼叫一次 TestController.createTestRun,並且與請求關聯的所有測試執行都應在函式返回或返回的 Promise 解析之前建立。
如果設定了 supportsContinuousRun,則 TestRunRequest.continuous 可能為 true
。在這種情況下,配置檔案應觀察原始碼更改並透過呼叫 TestController.createTestRun 建立新的測試執行,直到請求取消 token
。
引數 | 描述 |
---|---|
request: TestRunRequest | 測試執行的請求資訊。 |
token: CancellationToken | |
返回 | 描述 |
void | Thenable<void> |
supportsContinuousRun: boolean
此配置檔案是否支援請求的連續執行。如果是,則 TestRunRequest.continuous 可以設定為 true
。預設為 false。
tag: TestTag
配置檔案的關聯標籤。如果設定此項,則只有在 TestItem.tags 陣列中包含相同標籤的 TestItem 例項才能在此配置檔案中執行。
方法
刪除執行配置檔案。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
TestRunProfileKind
TestRunProfiles 控制的執行型別。
列舉成員
Run
測試配置檔案型別。
Debug
測試配置檔案型別。
Coverage
測試配置檔案型別。
TestRunRequest
TestRunRequest 是 TestRun 的前身,TestRun 又是透過將請求傳遞給 TestController.createTestRun 建立的。TestRunRequest 包含有關應執行哪些測試、不應執行哪些測試以及如何執行它們的資訊(透過 profile)。
通常,TestRunRequests 由編輯器建立並傳遞給 TestRunProfile.runHandler,但是您也可以在 runHandler
之外建立測試請求和執行。
建構函式
new TestRunRequest(include?: readonly TestItem[], exclude?: readonly TestItem[], profile?: TestRunProfile, continuous?: boolean, preserveFocus?: boolean): TestRunRequest
引數 | 描述 |
---|---|
include?: readonly TestItem[] | 要執行的特定測試陣列,或 undefined 以執行所有測試 |
exclude?: readonly TestItem[] | 從執行中排除的測試陣列。 |
profile?: TestRunProfile | 此請求使用的執行配置檔案。 |
continuous?: boolean | 原始碼更改時是否連續執行測試。 |
preserveFocus?: boolean | 執行開始時是否保留使用者的焦點 |
返回 | 描述 |
TestRunRequest |
屬性
配置檔案是否應隨著原始碼更改而連續執行。僅與設定了 TestRunProfile.supportsContinuousRun 的配置檔案相關。
exclude: readonly TestItem[]
使用者標記為從本次執行中排除的測試陣列;排除項應在包含項之後應用。
如果沒有請求排除,則可以省略。測試控制器不應執行被排除的測試或被排除測試的任何子項。
include: readonly TestItem[]
用於執行特定測試的篩選器。如果給定,擴充套件應執行所有包含的測試及其所有子項,排除任何出現在 TestRunRequest.exclude 中的測試。如果此屬性未定義,則擴充套件應簡單地執行所有測試。
執行測試的過程應解析所有尚未解析的測試項的子項。
控制測試結果檢視如何聚焦。如果為 true,編輯器將保持使用者的焦點。如果為 false,編輯器將傾向於將焦點移動到測試結果檢視,儘管這可以由使用者配置。
profile: TestRunProfile
此請求使用的配置檔案。對於從編輯器 UI 發出的請求,此項將始終定義,儘管擴充套件可以透過程式設計方式建立不與任何配置檔案關聯的請求。
TestTag
標籤可以與 TestItems 和 TestRunProfiles 關聯。帶標籤的配置檔案只能執行在其 TestItem.tags 陣列中包含該標籤的測試。
建構函式
new TestTag(id: string): TestTag
建立新的 TestTag 例項。
引數 | 描述 |
---|---|
id: string | 測試標籤的 ID。 |
返回 | 描述 |
TestTag |
屬性
測試標籤的 ID。具有相同 ID 的 TestTag
例項被認為是相同的。
TextDocument
表示文字文件,例如原始檔。文字文件具有 行 和有關底層資源(如檔案)的知識。
屬性
此文件的檔案編碼,將在儲存文件時使用。
使用 onDidChangeTextDocument 事件在文件編碼更改時收到通知。
請注意,可能的編碼值目前定義為以下任何一種:“utf8”、“utf8bom”、“utf16le”、“utf16be”、“windows1252”、“iso88591”、“iso88593”、“iso885915”、“macroman”、“cp437”、“windows1256”、“iso88596”、“windows1257”、“iso88594”、“iso885914”、“windows1250”、“iso88592”、“cp852”、“windows1251”、“cp866”、“cp1125”、“iso88595”、“koi8r”、“koi8u”、“iso885913”、“windows1253”、“iso88597”、“windows1255”、“iso88598”、“iso885910”、“iso885916”、“windows1254”、“iso88599”、“windows1258”、“gbk”、“gb18030”、“cp950”、“big5hkscs”、“shiftjis”、“eucjp”、“euckr”、“windows874”、“iso885911”、“koi8ru”、“koi8t”、“gb2312”、“cp865”、“cp850”。
eol: EndOfLine
此文件中主要使用的 行結束 序列。
關聯資源的檔案系統路徑。TextDocument.uri.fsPath 的簡寫符號。與 uri 方案無關。
如果文件已關閉,則為 true
。關閉的文件不再同步,並且當再次開啟同一資源時不會重複使用。
如果存在未持久化的更改,則為 true
。
此文件是否表示尚未儲存的無標題檔案。*注意*,這並不意味著文件將儲存到磁碟,請使用 Uri.scheme 來確定文件將儲存到何處(例如 file
、ftp
等)。
與此文件關聯的語言的識別符號。
此文件中的行數。
uri: Uri
此文件關聯的 uri。
*請注意*,大多數文件使用 file
方案,這意味著它們是磁碟上的檔案。但是,**並非**所有文件都儲存在磁碟上,因此在嘗試訪問底層檔案或磁碟上的兄弟檔案之前,必須檢查 scheme
。
另請參閱
此文件的版本號(每次更改後嚴格遞增,包括撤消/重做)。
方法
getText(range?: Range): string
getWordRangeAtPosition(position: Position, regex?: RegExp): Range
在給定位置獲取單詞範圍。預設情況下,單詞由常見的分隔符(如空格、-、_ 等)定義。此外,可以定義每種語言的自定義 [單詞定義]。也可以提供自定義正則表示式。
- *注意 1:*自定義正則表示式不得匹配空字串,如果匹配,則將被忽略。
- *注意 2:*自定義正則表示式將無法匹配多行字串,並且為了速度,正則表示式不應匹配帶空格的單詞。對於更復雜、非單詞的場景,請使用 TextLine.text。
位置將是 調整 的。
lineAt(line: number): TextLine
返回由行號表示的文字行。請注意,返回的物件*不是*即時的,並且文件的更改不會反映出來。
lineAt(position: Position): TextLine
offsetAt(position: Position): number
positionAt(offset: number): Position
儲存底層檔案。
引數 | 描述 |
---|---|
返回 | 描述 |
Thenable<boolean> | 一個 Promise,當檔案儲存成功時解析為 |
validatePosition(position: Position): Position
validateRange(range: Range): Range
TextDocumentChangeEvent
描述事務性 文件 更改的事件。
屬性
contentChanges: readonly TextDocumentContentChangeEvent[]
內容更改陣列。
document: TextDocument
受影響的文件。
reason: TextDocumentChangeReason
文件更改的原因。如果原因未知,則為 undefined
。
TextDocumentChangeReason
文字文件更改的原因。
列舉成員
文字更改是由撤消操作引起的。
文字更改是由重做操作引起的。
TextDocumentContentChangeEvent
描述 文件 文字中單個更改的事件。
屬性
range: Range
被替換的範圍。
被替換範圍的長度。
被替換範圍的偏移量。
範圍的新文字。
TextDocumentContentProvider
事件
指示資源已更改的事件。
方法
provideTextDocumentContent(uri: Uri, token: CancellationToken): ProviderResult<string>
為給定 URI 提供文字內容。
編輯器將使用返回的字串內容建立只讀 文件。當相應的文件已 關閉 時,應釋放分配的資源。
**注意**:由於行尾序列標準化,建立的 文件 的內容可能與提供的文字不完全相同。
引數 | 描述 |
---|---|
uri: Uri | 一個 URI,其方案與此提供程式 註冊 的方案匹配。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<string> | 一個字串或一個解析為字串的 thenable。 |
TextDocumentSaveReason
表示儲存文字文件的原因。
列舉成員
手動觸發,例如由使用者按下儲存、開始除錯或 API 呼叫。
延遲後自動。
當編輯器失去焦點時。
TextDocumentShowOptions
屬性
一個可選標誌,當 true
時,將阻止 編輯器 獲取焦點。
一個可選標誌,控制 編輯器 選項卡是否顯示為預覽。預覽選項卡將被替換和重用,直到設定為保持——無論是顯式還是透過編輯。
*注意*,如果使用者在設定中停用了預覽編輯器,則該標誌將被忽略。
selection?: Range
用於在 編輯器 中為文件應用的可選選區。
viewColumn?: ViewColumn
可選的檢視列,用於顯示 編輯器。預設值為 活動列。不存在的列將根據需要建立,最多不超過 ViewColumn.Nine。使用 ViewColumn.Beside 將編輯器開啟在當前活動列的旁邊。
TextDocumentWillSaveEvent
屬性
document: TextDocument
將要儲存的文件。
reason: TextDocumentSaveReason
觸發儲存的原因。
方法
waitUntil(thenable: Thenable<readonly TextEdit[]>): void
允許暫停事件迴圈並應用 預儲存編輯。此函式的後續呼叫中的編輯將按順序應用。如果文件發生併發修改,則編輯將*被忽略*。
注意:此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫。
workspace.onWillSaveTextDocument(event => {
// async, will *throw* an error
setTimeout(() => event.waitUntil(promise));
// sync, OK
event.waitUntil(promise);
});
waitUntil(thenable: Thenable<any>): void
允許暫停事件迴圈直到提供的 thenable 解析完成。
注意:此函式只能在事件分派期間呼叫。
引數 | 描述 |
---|---|
thenable: Thenable<any> | 延遲儲存的 thenable。 |
返回 | 描述 |
void |
TextEdit
文字編輯表示應應用於文件的編輯。
靜態
delete(range: Range): TextEdit
insert(position: Position, newText: string): TextEdit
replace(range: Range, newText: string): TextEdit
setEndOfLine(eol: EndOfLine): TextEdit
建構函式
new TextEdit(range: Range, newText: string): TextEdit
屬性
newEol?: EndOfLine
文件中使用的行尾序列。
*注意*,行尾序列將應用於整個文件。
此編輯將插入的字串。
range: Range
此編輯適用的範圍。
TextEditor
表示附加到 文件 的編輯器。
屬性
document: TextDocument
與此文字編輯器關聯的文件。文件在此文字編輯器的整個生命週期內將保持不變。
options: TextEditorOptions
文字編輯器選項。
selection: Selection
此文字編輯器上的主選區。TextEditor.selections[0]
的簡寫。
selections: readonly Selection[]
此文字編輯器中的選區。主選區始終在索引 0 處。
viewColumn: ViewColumn
此編輯器顯示的列。如果這不是主要編輯器之一(例如嵌入式編輯器),或者編輯器列大於三,則為 undefined
。
visibleRanges: readonly Range[]
編輯器中當前可見的範圍(垂直方向)。這僅考慮垂直滾動,不考慮水平滾動。
方法
edit(callback: (editBuilder: TextEditorEdit) => void, options?: {undoStopAfter: boolean, undoStopBefore: boolean}): Thenable<boolean>
對此文字編輯器關聯的文件執行編輯。
給定回撥函式將使用 編輯構建器 呼叫,該構建器必須用於進行編輯。請注意,編輯構建器僅在回撥執行期間有效。
引數 | 描述 |
---|---|
callback: (editBuilder: TextEditorEdit) => void | 一個可以使用 編輯構建器 建立編輯的函式。 |
options?: {undoStopAfter: boolean, undoStopBefore: boolean} | 此編輯前後的撤消/重做行為。預設情況下,將在此編輯之前和之後建立撤消停止點。 |
返回 | 描述 |
Thenable<boolean> | 一個 Promise,其解析值指示編輯是否可以應用。 |
隱藏文字編輯器。
- *已棄用* - 請改用命令
workbench.action.closeActiveEditor
。此方法顯示意外行為,並將在下一次主要更新中刪除。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
insertSnippet(snippet: SnippetString, location?: Range | Position | readonly Range[] | readonly Position[], options?: {keepWhitespace: boolean, undoStopAfter: boolean, undoStopBefore: boolean}): Thenable<boolean>
插入一個 程式碼段 並使編輯器進入程式碼段模式。“程式碼段模式”表示編輯器會新增佔位符和額外的游標,以便使用者可以完成或接受程式碼段。
引數 | 描述 |
---|---|
snippet: SnippetString | 此編輯中要插入的程式碼段。 |
location?: Range | Position | readonly Range[] | readonly Position[] | 插入程式碼段的位置或範圍,預設為當前編輯器選區或多個選區。 |
選項?: {keepWhitespace: boolean, undoStopAfter: boolean, undoStopBefore: boolean} | 此編輯前後的撤消/重做行為。預設情況下,將在此編輯之前和之後建立撤消停止點。 |
返回 | 描述 |
Thenable<boolean> | 一個 Promise,它會解析一個值,指示是否可以插入程式碼片段。請注意,該 Promise 不表示程式碼片段已完全填充或接受。 |
revealRange(range: Range, revealType?: TextEditorRevealType): void
按照 revealType
指示滾動以顯示給定範圍。
引數 | 描述 |
---|---|
range: Range | 一個範圍。 |
revealType?: TextEditorRevealType | 顯示 |
返回 | 描述 |
void |
setDecorations(decorationType: TextEditorDecorationType, rangesOrOptions: readonly Range[] | readonly DecorationOptions[]): void
引數 | 描述 |
---|---|
decorationType: TextEditorDecorationType | 一個裝飾型別。 |
rangesOrOptions: readonly Range[] | readonly DecorationOptions[] | |
返回 | 描述 |
void |
show(column?: ViewColumn): void
顯示文字編輯器。
- 已棄用 - 請改用window.showTextDocument。
引數 | 描述 |
---|---|
column?: ViewColumn | 顯示此編輯器的列。此方法顯示意外行為,並將在下一次主要更新中刪除。 |
返回 | 描述 |
void |
TextEditorCursorStyle
游標的渲染樣式。
列舉成員
將游標渲染為垂直粗線。
將游標渲染為填充塊。
將游標渲染為水平粗線。
將游標渲染為垂直細線。
將游標渲染為塊輪廓。
將游標渲染為水平細線。
TextEditorDecorationType
表示指向一組裝飾的控制代碼,這些裝飾在文字編輯器中共享相同的樣式選項。
要獲取TextEditorDecorationType
例項,請使用createTextEditorDecorationType。
屬性
控制代碼的內部表示。
方法
移除此裝飾型別以及所有使用它的文字編輯器上的所有裝飾。
引數 | 描述 |
---|---|
返回 | 描述 |
void |
TextEditorEdit
方法
delete(location: Range | Selection): void
insert(location: Position, value: string): void
引數 | 描述 |
---|---|
location: Position | 應插入新文字的位置。 |
value: string | 此操作應插入的新文字。 |
返回 | 描述 |
void |
replace(location: Range | Position | Selection, value: string): void
用新值替換某個文字區域。您可以在value
中使用\r\n
或\n
,它們將被標準化為當前文件。
setEndOfLine(endOfLine: EndOfLine): void
TextEditorLineNumbersStyle
行號的渲染樣式。
列舉成員
不渲染行號。
渲染行號。
渲染相對於主游標位置的行號。
每隔10行渲染行號。
TextEditorOptions
屬性
cursorStyle?: TextEditorCursorStyle
此編輯器中游標的渲染樣式。獲取文字編輯器選項時,此屬性將始終存在。設定文字編輯器選項時,此屬性是可選的。
當insertSpaces為true時插入的空格數。
獲取文字編輯器選項時,此屬性將始終是數字(已解析)。設定文字編輯器選項時,此屬性是可選的,可以是數字或"tabSize"
。
insertSpaces?: string | boolean
按Tab鍵時插入n個空格。獲取文字編輯器選項時,此屬性將始終是布林值(已解析)。設定文字編輯器選項時,此屬性是可選的,可以是布林值或"auto"
。
lineNumbers?: TextEditorLineNumbersStyle
渲染相對於當前行號的行號。獲取文字編輯器選項時,此屬性將始終存在。設定文字編輯器選項時,此屬性是可選的。
一個製表符佔用的空格大小。這用於兩個目的:
- 製表符字元的渲染寬度;
- 當insertSpaces為 true 且
indentSize
設定為"tabSize"
時要插入的空格數。
獲取文字編輯器選項時,此屬性將始終為數字(已解析)。設定文字編輯器選項時,此屬性是可選的,可以是數字或"auto"
。
TextEditorOptionsChangeEvent
表示描述文字編輯器選項更改的事件。
屬性
options: TextEditorOptions
文字編輯器選項的新值。
textEditor: TextEditor
選項已更改的文字編輯器。
TextEditorRevealType
表示文字編輯器中不同的顯示策略。
列舉成員
該範圍將以儘可能少的滾動量顯示。
該範圍將始終顯示在視口中心。
如果範圍在視口外,它將顯示在視口中心。否則,它將以儘可能少的滾動量顯示。
該範圍將始終顯示在視口頂部。
TextEditorSelectionChangeEvent
表示描述文字編輯器選擇更改的事件。
屬性
kind: TextEditorSelectionChangeKind
觸發此事件的更改型別。可以為undefined
。
selections: readonly Selection[]
文字編輯器選擇的新值。
textEditor: TextEditor
選擇已更改的文字編輯器。
TextEditorSelectionChangeKind
表示可能導致選擇更改事件的來源。
列舉成員
由於在編輯器中鍵入而導致的選擇更改。
由於在編輯器中單擊而導致的選擇更改。
由於執行命令而導致的選擇更改。
TextEditorViewColumnChangeEvent
表示描述文字編輯器檢視列更改的事件。
屬性
textEditor: TextEditor
檢視列已更改的文字編輯器。
viewColumn: ViewColumn
文字編輯器檢視列的新值。
TextEditorVisibleRangesChangeEvent
表示描述文字編輯器可見範圍更改的事件。
屬性
textEditor: TextEditor
可見範圍已更改的文字編輯器。
visibleRanges: readonly Range[]
文字編輯器可見範圍的新值。
TextLine
表示一行文字,例如一行原始碼。
TextLine 物件是**不可變**的。當文件更改時,先前檢索到的行將不代表最新狀態。
屬性
firstNonWhitespaceCharacterIndex: number
根據/\s/
定義,第一個非空白字元的偏移量。注意,如果一行全是空白,則返回行的長度。
此行是否只包含空白,是TextLine.firstNonWhitespaceCharacterIndex === TextLine.text.length的簡寫。
從零開始的行號。
range: Range
此行覆蓋的範圍,不包括行分隔符。
rangeIncludingLineBreak: Range
此行覆蓋的範圍,包括行分隔符。
此行的文字,不包括行分隔符。
ThemableDecorationAttachmentRenderOptions
屬性
backgroundColor?: string | ThemeColor
將應用於裝飾附件的 CSS 樣式屬性。
將應用於裝飾附件的 CSS 樣式屬性。
borderColor?: string | ThemeColor
將應用於裝飾包圍的文字的 CSS 樣式屬性。
color?: string | ThemeColor
將應用於裝飾附件的 CSS 樣式屬性。
contentIconPath?: string | Uri
將在附件中渲染的影像的**絕對路徑**或 URI。可以顯示圖示或文字,但不能同時顯示兩者。
定義在附件中顯示的文字內容。可以顯示圖示或文字,但不能同時顯示兩者。
將應用於裝飾附件的 CSS 樣式屬性。
將應用於裝飾附件的 CSS 樣式屬性。
將應用於裝飾附件的 CSS 樣式屬性。
將應用於裝飾附件的 CSS 樣式屬性。
將應用於裝飾附件的 CSS 樣式屬性。
將應用於裝飾附件的 CSS 樣式屬性。
ThemableDecorationInstanceRenderOptions
表示裝飾例項的主題渲染選項。
屬性
after?: ThemableDecorationAttachmentRenderOptions
定義裝飾文字後插入的附件的渲染選項。
before?: ThemableDecorationAttachmentRenderOptions
定義裝飾文字前插入的附件的渲染選項。
ThemableDecorationRenderOptions
表示文字編輯器裝飾的主題特定渲染樣式。
屬性
after?: ThemableDecorationAttachmentRenderOptions
定義裝飾文字後插入的附件的渲染選項。
backgroundColor?: string | ThemeColor
裝飾的背景顏色。使用 rgba() 並定義透明背景顏色以與其他裝飾良好配合。或者,可以引用顏色登錄檔中的顏色。
before?: ThemableDecorationAttachmentRenderOptions
定義裝飾文字前插入的附件的渲染選項。
將應用於裝飾包圍的文字的 CSS 樣式屬性。
borderColor?: string | ThemeColor
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
color?: string | ThemeColor
將應用於裝飾包圍的文字的 CSS 樣式屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。
gutterIconPath?: string | Uri
要渲染在側邊欄中的影像的**絕對路徑**或 URI。
指定側邊欄圖示的大小。可用值包括“auto”、“contain”、“cover”和任何百分比值。有關更多資訊:https://msdn.microsoft.com/en-us/library/jj127316(v=vs.85).aspx
將應用於裝飾包圍的文字的 CSS 樣式屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。
outlineColor?: string | ThemeColor
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“outline”來設定一個或多個單獨的輪廓屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“outline”來設定一個或多個單獨的輪廓屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用“outline”來設定一個或多個單獨的輪廓屬性。
overviewRulerColor?: string | ThemeColor
概覽標尺中裝飾的顏色。使用 rgba() 並定義透明顏色以與其他裝飾良好配合。
將應用於裝飾包圍的文字的 CSS 樣式屬性。
ThemeColor
對工作臺顏色之一的引用,如https://vscode.com.tw/api/references/theme-color中定義。使用主題顏色優於自定義顏色,因為它允許主題作者和使用者更改顏色。
建構函式
new ThemeColor(id: string): ThemeColor
建立對主題顏色的引用。
引數 | 描述 |
---|---|
id: string | 顏色。可用顏色列表請參見https://vscode.com.tw/api/references/theme-color。 |
返回 | 描述 |
ThemeColor |
屬性
此顏色的 ID。
ThemeIcon
對命名圖示的引用。目前支援File、Folder和ThemeIcon ids。使用主題圖示優於自定義圖示,因為它允許產品主題作者更改圖示。
注意,主題圖示也可以在標籤和描述中呈現。支援主題圖示的地方會明確說明,並使用$(<name>)
語法,例如quickPick.label = "Hello World $(globe)"
。
靜態
File: ThemeIcon
對錶示檔案的圖示的引用。該圖示取自當前檔案圖示主題,或者使用佔位符圖示。
Folder: ThemeIcon
對錶示資料夾的圖示的引用。該圖示取自當前檔案圖示主題,或者使用佔位符圖示。
建構函式
new ThemeIcon(id: string, color?: ThemeColor): ThemeIcon
建立對主題圖示的引用。
引數 | 描述 |
---|---|
id: string | 圖示的 ID。可用圖示列表請參見https://vscode.com.tw/api/references/icons-in-labels#icon-listing。 |
color?: ThemeColor | 圖示的可選 |
返回 | 描述 |
ThemeIcon |
屬性
color?: ThemeColor
圖示的可選 ThemeColor。顏色目前僅用於TreeItem。
圖示的 ID。可用圖示列表請參見https://vscode.com.tw/api/references/icons-in-labels#icon-listing。
TreeCheckboxChangeEvent<T>
描述樹項複選框狀態更改的事件。
屬性
items: ReadonlyArray<[T, TreeItemCheckboxState]>
被選中或取消選中的專案。
TreeDataProvider<T>
提供樹資料的資料提供程式。
事件
onDidChangeTreeData?: Event<void | T | T[]>
一個可選事件,用於指示元素或根已更改。這將觸發檢視更新更改的元素/根及其子項(如果已顯示)的遞迴。要指示根已更改,請不要傳遞任何引數或傳遞undefined
或null
。
方法
getChildren(element?: T): ProviderResult<T[]>
獲取element
的子項,如果未傳遞元素,則獲取根的子項。
引數 | 描述 |
---|---|
element?: T | 提供者獲取子項的元素。可以為 |
返回 | 描述 |
ProviderResult<T[]> |
|
getParent(element: T): ProviderResult<T>
可選方法,返回element
的父級。如果element
是根的子級,則返回null
或undefined
。
注意: 必須實現此方法才能訪問reveal API。
引數 | 描述 |
---|---|
element: T | 需要返回其父級的元素。 |
返回 | 描述 |
ProviderResult<T> |
|
getTreeItem(element: T): TreeItem | Thenable<TreeItem>
獲取element
的TreeItem表示。
resolveTreeItem(item: TreeItem, element: T, token: CancellationToken): ProviderResult<TreeItem>
在懸停時呼叫以解析TreeItem屬性(如果它未定義)。在單擊/開啟樹項時呼叫以解析TreeItem屬性(如果它未定義)。只有未定義的屬性才能在resolveTreeItem
中解析。功能可能會在以後擴充套件,以包括在選擇和/或開啟時呼叫以解析其他缺失屬性。
每個 TreeItem 只會呼叫一次。
不應從 resolveTreeItem 內部觸發 onDidChangeTreeData。
注意,此函式在樹項已顯示在 UI 中時呼叫。因此,任何改變呈現(標籤、描述等)的屬性都不能更改。
引數 | 描述 |
---|---|
item: TreeItem |
|
element: T | 與 TreeItem 關聯的物件。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<TreeItem> | 已解析的樹項,或解析為該樹項的Thenable。返回給定的 |
TreeDragAndDropController<T>
在TreeView
中提供拖放支援。
屬性
dragMimeTypes: readonly string[]
此TreeDragAndDropController
的handleDrag
方法可能新增到樹資料傳輸中的 MIME 型別。這可以是定義良好的、現有的 MIME 型別,也可以是擴充套件定義的 MIME 型別。
樹的推薦 MIME 型別(application/vnd.code.tree.<treeidlowercase>
)將自動新增。
dropMimeTypes: readonly string[]
此DragAndDropController
的handleDrop
方法支援的 MIME 型別。這可以是定義良好的、現有的 MIME 型別,也可以是擴充套件定義的 MIME 型別。
為了支援從樹中拖放,您需要新增該樹的 MIME 型別。這包括在同一樹內的拖放。樹的 MIME 型別建議格式為application/vnd.code.tree.<treeidlowercase>
。
使用特殊的files
MIME 型別來支援所有型別的拖放檔案,無論檔案的實際 MIME 型別如何。
要了解拖動項的 MIME 型別:
- 設定您的
DragAndDropController
- 使用“開發者:設定日誌級別...”命令將級別設定為“除錯”
- 開啟開發者工具並將具有未知 MIME 型別的項拖到您的樹上。MIME 型別將記錄到開發者控制檯
請注意,無法傳送到擴充套件的 MIME 型別將被省略。
方法
handleDrag(source: readonly T[], dataTransfer: DataTransfer, token: CancellationToken): void | Thenable<void>
當用戶開始從此DragAndDropController
拖動專案時,將呼叫handleDrag
。擴充套件可以使用handleDrag
將其DataTransferItem
專案新增到拖放操作中。
在handleDrag
中新增的MIME型別在應用程式外部將不可用。
當專案被拖放到**同一棵樹**中的**另一個樹項**上時,您的DataTransferItem
物件將被保留。使用樹的推薦 MIME 型別(`application/vnd.code.tree.
要新增一個可以拖到編輯器中的資料傳輸項,請使用應用程式特定的 MIME 型別“text/uri-list”。“text/uri-list”的資料應該是一個字串,其中包含由\r\n
分隔的toString()
ed Uris。要指定檔案中游標的位置,請將 Uri 的片段設定為L3,5
,其中 3 是行號,5 是列號。
引數 | 描述 |
---|---|
source: readonly T[] | 拖放操作的源專案。 |
dataTransfer: DataTransfer | 與此拖動關聯的資料傳輸。 |
token: CancellationToken | 指示拖動已被取消的取消令牌。 |
返回 | 描述 |
void | Thenable<void> |
handleDrop(target: T, dataTransfer: DataTransfer, token: CancellationToken): void | Thenable<void>
當拖放操作導致拖放到此DragAndDropController
所屬的樹上時呼叫。
擴充套件應為任何需要重新整理的元素觸發onDidChangeTreeData。
引數 | 描述 |
---|---|
target: T | 發生拖放的目標樹元素。如果未定義,則目標為根。 |
dataTransfer: DataTransfer | 拖動源的資料傳輸項。 |
token: CancellationToken | 指示拖放已被取消的取消令牌。 |
返回 | 描述 |
void | Thenable<void> |
TreeItem
樹項是樹的 UI 元素。樹項由資料提供程式建立。
建構函式
new TreeItem(label: string | TreeItemLabel, collapsibleState?: TreeItemCollapsibleState): TreeItem
引數 | 描述 |
---|---|
label: string | TreeItemLabel | 描述此專案的可讀字串 |
collapsibleState?: TreeItemCollapsibleState | |
返回 | 描述 |
TreeItem |
new TreeItem(resourceUri: Uri, collapsibleState?: TreeItemCollapsibleState): TreeItem
引數 | 描述 |
---|---|
resourceUri: Uri | 表示此專案的資源的Uri。 |
collapsibleState?: TreeItemCollapsibleState | |
返回 | 描述 |
TreeItem |
屬性
accessibilityInformation?: AccessibilityInformation
螢幕閱讀器與此樹項互動時使用的輔助功能資訊。通常,TreeItem 不需要設定輔助功能資訊的role
;但是,在某些情況下,TreeItem 未以樹狀方式顯示,此時設定role
可能才有意義。
checkboxState?: TreeItemCheckboxState | {accessibilityInformation: AccessibilityInformation, state: TreeItemCheckboxState, tooltip: string}
collapsibleState?: TreeItemCollapsibleState
command?: Command
選擇樹項時應執行的命令。
當樹項在編輯器中開啟某些內容時,請使用vscode.open
或vscode.diff
作為命令 ID。使用這些命令可確保生成的編輯器將與內建樹開啟編輯器的方式保持一致。
樹項的上下文值。這可用於在樹中提供專案特定操作。例如,樹項被賦予上下文值folder
。當使用menus
擴充套件點向view/item/context
提供操作時,您可以在when
表示式中為鍵viewItem
指定上下文值,例如viewItem == folder
。
"contributes": {
"menus": {
"view/item/context": [
{
"command": "extension.deleteFolder",
"when": "viewItem == folder"
}
]
}
}
這隻會為contextValue
為folder
的項顯示操作extension.deleteFolder
。
description?: string | boolean
一個可讀字串,渲染時不太突出。當為true
時,它派生自resourceUri;當為falsy
時,它不顯示。
iconPath?: string | IconPath
樹項的圖示路徑或ThemeIcon。如果為falsy
,則如果項可摺疊,則分配資料夾主題圖示,否則分配檔案主題圖示。當指定檔案或資料夾主題圖示時,圖示將從當前檔案圖示主題中為指定的圖示派生(如果提供resourceUri)。
樹項的可選 ID,在整個樹中必須是唯一的。ID 用於保留樹項的選擇和展開狀態。
如果未提供,則使用樹項的標籤生成 ID。**注意**,當標籤更改時,ID 也會更改,並且選擇和展開狀態將無法保持穩定。
label?: string | TreeItemLabel
描述此專案的可讀字串。如果為falsy
,則派生自resourceUri。
resourceUri?: Uri
tooltip?: string | MarkdownString
懸停在此專案上時顯示的工具提示文字。
TreeItemCheckboxState
樹項的複選框狀態
列舉成員
確定專案未選中
確定專案已選中
TreeItemCollapsibleState
樹項的可摺疊狀態
列舉成員
確定項既不能摺疊也不能展開。意味著它沒有子項。
確定專案是否摺疊
確定專案是否展開
TreeItemLabel
描述樹項的標籤
屬性
highlights?: Array<[number, number]>
要在標籤中突出顯示的範圍。範圍定義為兩個數字的元組,第一個是包含的開始索引,第二個是獨佔的結束索引
描述樹項的可讀字串。
TreeView<T>
表示樹檢視
事件
onDidChangeCheckboxState: Event<TreeCheckboxChangeEvent<T>>
一個事件,用於指示元素或根已被選中或取消選中。
onDidChangeSelection: Event<TreeViewSelectionChangeEvent<T>>
當選擇發生更改時觸發的事件
onDidChangeVisibility: Event<TreeViewVisibilityChangeEvent>
當可見性發生更改時觸發的事件
onDidCollapseElement: Event<TreeViewExpansionEvent<T>>
元素摺疊時觸發的事件
onDidExpandElement: Event<TreeViewExpansionEvent<T>>
元素展開時觸發的事件
屬性
badge?: ViewBadge
此 TreeView 要顯示的徽章。要刪除徽章,請設定為 undefined。
一個可選的可讀描述,在檢視標題中渲染時不太突出。將標題描述設定為 null、undefined 或空字串將從檢視中移除描述。
一個可選的可讀訊息,將在檢視中呈現。將訊息設定為 null、undefined 或空字串將從檢視中刪除訊息。
當前選定的元素。
樹檢視標題最初取自擴充套件包.json。標題屬性的更改將正確反映在 UI 檢視的標題中。
如果樹檢視可見,則為true
,否則為false
。
方法
釋放此物件。
引數 | 描述 |
---|---|
返回 | 描述 |
任意 |
reveal(element: T, options?: {expand: number | boolean, focus: boolean, select: boolean}): Thenable<void>
在樹檢視中顯示給定的元素。如果樹檢視不可見,則顯示樹檢視並顯示元素。
預設情況下,顯示的元素會被選中。為了不選中,將選項select
設定為false
。為了聚焦,將選項focus
設定為true
。為了展開顯示的元素,將選項expand
設定為true
。要遞迴展開,將expand
設定為要展開的級別數。
- 注意: 您最多隻能展開到 3 層。
- 注意: 註冊
TreeView
的TreeDataProvider必須實現getParent方法才能訪問此 API。
引數 | 描述 |
---|---|
element: T | |
options?: {expand: number | boolean, focus: boolean, select: boolean} | |
返回 | 描述 |
Thenable<void> |
TreeViewExpansionEvent<T>
當TreeView中的元素展開或摺疊時觸發的事件
屬性
展開或摺疊的元素。
TreeViewOptions<T>
建立TreeView的選項
屬性
樹是否支援多選。當樹支援多選並從樹中執行命令時,命令的第一個引數是執行命令的樹項,第二個引數是包含所有選定樹項的陣列。
dragAndDropController?: TreeDragAndDropController<T>
在樹檢視中實現拖放的可選介面。
manageCheckboxStateManually?: boolean
預設情況下,當樹項的子項已被獲取時,子複選框將根據父樹項的選中狀態自動管理。如果樹項預設是摺疊的(這意味著子項尚未獲取),則子複選框將不會更新。要覆蓋此行為並在擴充套件中手動管理子項和父項複選框狀態,請將其設定為true
。
TreeViewOptions.manageCheckboxStateManually為 false(預設行為)的示例
一個樹項被選中,然後其子項被獲取。子項將被選中。
如果樹形專案的父項被選中,則該樹形專案及其所有同級專案都將被選中。
- 父項
- 子項 1
- 子項 2 當用戶選中父項時,樹形結構將如下所示
- 父項
- 子項 1
- 子項 2
- 如果樹形專案及其所有同級專案都被選中,則父項將被選中。
- 父項
- 子項 1
- 子項 2 當用戶選中子項 1 和子項 2 時,樹形結構將如下所示
- 父項
- 子項 1
- 子項 2
- 如果樹形專案被取消選中,則父項將被取消選中。
- 父項
- 子項 1
- 子項 2 當用戶取消選中子項 1 時,樹形結構將如下所示
- 父項
- 子項 1
- 子項 2
是否顯示“全部摺疊”操作。
treeDataProvider: TreeDataProvider<T>
提供樹形資料的資料提供者。
TreeViewSelectionChangeEvent<T>
當樹形檢視的選中項發生變化時觸發的事件
屬性
選中的元素。
TreeViewVisibilityChangeEvent
當樹形檢視的可見性發生變化時觸發的事件
屬性
如果樹檢視可見,則為true
,否則為false
。
TypeDefinitionProvider
型別定義提供者定義了擴充套件和“轉到型別定義”功能之間的約定。
方法
provideTypeDefinition(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<Definition | LocationLink[]>
提供給定位置和文件中符號的型別定義。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
position: Position | 呼叫命令的位置。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<Definition | LocationLink[]> | 一個定義或解析為定義的 thenable。可以透過返回 |
TypeHierarchyItem
表示型別層次結構中的一個項,如類或介面。
建構函式
new TypeHierarchyItem(kind: SymbolKind, name: string, detail: string, uri: Uri, range: Range, selectionRange: Range): TypeHierarchyItem
建立一個新的型別層次結構項。
引數 | 描述 |
---|---|
kind: SymbolKind | 此項的種類。 |
name: string | 此項的名稱。 |
detail: string | 此項的詳細資訊。 |
uri: Uri | 此項的Uri。 |
range: Range | 此項的整個範圍。 |
selectionRange: Range | 此項的選中範圍。 |
返回 | 描述 |
TypeHierarchyItem |
屬性
此項的更多詳細資訊,例如函式的簽名。
kind: SymbolKind
此項的型別。
此項的名稱。
range: Range
包含此符號的範圍,不包括前導/尾隨空白,但包括所有其他內容,例如註釋和程式碼。
selectionRange: Range
當此符號被選中時應被選中和顯示出來的範圍,例如類的名稱。必須包含在range屬性中。
tags?: readonly SymbolTag[]
此項的標籤。
uri: Uri
此項的資源識別符號。
TypeHierarchyProvider
型別層次結構提供者介面描述了擴充套件與型別層次結構功能之間的約定。
方法
prepareTypeHierarchy(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<TypeHierarchyItem | TypeHierarchyItem[]>
透過返回給定文件和位置所表示的項來引導型別層次結構。此項將用作型別圖的入口。如果給定位置沒有項,提供者應返回undefined
或null
。
引數 | 描述 |
---|---|
document: TextDocument | 呼叫命令的文件。 |
position: Position | 呼叫命令的位置。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<TypeHierarchyItem | TypeHierarchyItem[]> | 一個或多個型別層次結構項,或者一個解析為這種項的thenable。可以透過返回 |
provideTypeHierarchySubtypes(item: TypeHierarchyItem, token: CancellationToken): ProviderResult<TypeHierarchyItem[]>
為某個項提供所有子型別,例如從給定項派生/繼承的所有型別。在圖論術語中,這描述了型別圖中的有向帶註釋邊,例如給定項是起始節點,結果是可到達的節點。
引數 | 描述 |
---|---|
item: TypeHierarchyItem | 應計算子型別的層次結構項。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<TypeHierarchyItem[]> | 一組直接子型別或解析為這類子型別的thenable。可以透過返回 |
provideTypeHierarchySupertypes(item: TypeHierarchyItem, token: CancellationToken): ProviderResult<TypeHierarchyItem[]>
為某個項提供所有超型別,例如某個型別從中派生/繼承的所有型別。在圖論術語中,這描述了型別圖中的有向帶註釋邊,例如給定項是起始節點,結果是可到達的節點。
引數 | 描述 |
---|---|
item: TypeHierarchyItem | 應計算超型別的層次結構項。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<TypeHierarchyItem[]> | 一組直接超型別或解析為這類超型別的thenable。可以透過返回 |
UIKind
可使用擴充套件的UI的可能種類。
列舉成員
從桌面應用程式訪問擴充套件。
從網路瀏覽器訪問擴充套件。
Uri
一個通用資源識別符號,表示磁碟上的檔案或另一個資源,如無標題資源。
靜態
file(path: string): Uri
從檔案系統路徑建立URI。scheme將為file
。
Uri.parse和Uri.file之間的區別在於,後者將引數視為路徑,而不是字串化的uri。例如,Uri.file(path)
與Uri.parse('file://' + path)
不同,因為路徑可能包含被解釋的字元(#和?)。請參見以下示例
const good = URI.file('/coding/c#/project1');
good.scheme === 'file';
good.path === '/coding/c#/project1';
good.fragment === '';
const bad = URI.parse('file://' + '/coding/c#/project1');
bad.scheme === 'file';
bad.path === '/coding/c'; // path is now broken
bad.fragment === '/project1';
引數 | 描述 |
---|---|
path: string | 檔案系統或UNC路徑。 |
返回 | 描述 |
Uri | 一個新的Uri例項。 |
from(components: {authority: string, fragment: string, path: string, query: string, scheme: string}): Uri
從其組成部分建立URI
另請參見Uri.toString
引數 | 描述 |
---|---|
components: {authority: string, fragment: string, path: string, query: string, scheme: string} | Uri的組成部分。 |
返回 | 描述 |
Uri | 一個新的Uri例項。 |
joinPath(base: Uri, ...pathSegments: string[]): Uri
建立一個新的uri,其路徑是基本uri的路徑與所提供的路徑段連線的結果。
- 注意1:
joinPath
隻影響路徑元件,所有其他元件(scheme、authority、query和fragment)保持不變。 - 注意2:基本uri必須有路徑;否則會丟擲錯誤。
路徑段按以下方式規範化
- 路徑分隔符(
/
或\
)序列替換為單個分隔符 - 對於Windows上的
file
-uris,反斜槓字元(``)被視為路徑分隔符 ..
-段表示父段,.
表示當前段- 路徑有一個始終保留的根,例如在Windows上,驅動器號是根,所以
joinPath(Uri.file('file:///c:/root'), '../../other').fsPath === 'c:/other'
為真
parse(value: string, strict?: boolean): Uri
從字串建立URI,例如http://www.example.com/some/path
、file:///usr/home
或scheme:with/path
。
注意,在一段時間內,沒有scheme
的uri被接受。這是不正確的,因為所有uri都應該有一個scheme。為了避免現有程式碼的破壞,添加了可選的strict
引數。我們強烈建議使用它,例如Uri.parse('my:uri', true)
另請參見Uri.toString
引數 | 描述 |
---|---|
value: string | Uri的字串值。 |
strict?: boolean | 當 |
返回 | 描述 |
Uri | 一個新的Uri例項。 |
建構函式
new Uri(scheme: string, authority: string, path: string, query: string, fragment: string): Uri
使用file
和parse
工廠函式建立新的Uri
物件。
引數 | 描述 |
---|---|
scheme: string | |
authority: string | |
path: string | |
query: string | |
fragment: string | |
返回 | 描述 |
Uri |
屬性
Authority 是 http://www.example.com/some/path?query#fragment
中的 www.example.com
部分。位於第一個雙斜槓和下一個斜槓之間的部分。
Fragment 是 http://www.example.com/some/path?query#fragment
中的 fragment
部分。
表示此Uri的相應檔案系統路徑的字串。
將處理UNC路徑並將Windows驅動器號規範化為小寫。還使用平臺特定的路徑分隔符。
- 將不會驗證路徑中的無效字元和語義。
- 將不會檢視此Uri的方案。
- 結果字串不應用於顯示目的,而應用於磁碟操作,如
readFile
等。
與path屬性的區別在於使用了平臺特定的路徑分隔符和UNC路徑的處理。以下示例概述了這種區別
const u = URI.parse('file://server/c$/folder/file.txt');
u.authority === 'server';
u.path === '/c$/folder/file.txt';
u.fsPath === '\\serverc$\folder\file.txt';
Path 是 http://www.example.com/some/path?query#fragment
中的 /some/path
部分。
Query 是 http://www.example.com/some/path?query#fragment
中的 query
部分。
Scheme 是 http://www.example.com/some/path?query#fragment
中的 http
部分。位於第一個冒號之前的部分。
方法
返回此Uri的JSON表示。
引數 | 描述 |
---|---|
返回 | 描述 |
任意 | 一個物件。 |
toString(skipEncoding?: boolean): string
返回此Uri的字串表示。URI的表示和規範化取決於方案。
- 結果字串可以安全地與Uri.parse一起使用。
- 結果字串不應用於顯示目的。
請注意,實現將進行積極的編碼,這通常會導致意想不到但並非不正確的結果。例如,冒號被編碼為%3A
,這在檔案uri中可能出乎意料。此外,&
和=
將被編碼,這對於http-uris可能出乎意料。由於穩定性原因,這無法再更改。如果您遇到過於積極的編碼問題,應使用skipEncoding
引數:uri.toString(true)
。
引數 | 描述 |
---|---|
skipEncoding?: boolean | 不進行百分比編碼,預設為 |
返回 | 描述 |
字串 | 此Uri的字串表示。 |
with(change: {authority: string, fragment: string, path: string, query: string, scheme: string}): Uri
從此Uri派生一個新的Uri。
let file = Uri.parse('before:some/file/path');
let other = file.with({ scheme: 'after' });
assert.ok(other.toString() === 'after:some/file/path');
引數 | 描述 |
---|---|
change: {authority: string, fragment: string, path: string, query: string, scheme: string} | 描述此Uri更改的物件。要取消設定元件,請使用 |
返回 | 描述 |
Uri | 反映給定更改的新Uri。如果更改沒有任何影響,將返回 |
UriHandler
URI處理程式負責處理系統範圍的URIs。
方法
handleUri(uri: Uri): ProviderResult<void>
處理提供的系統範圍Uri。
引數 | 描述 |
---|---|
uri: Uri | |
返回 | 描述 |
ProviderResult<void> |
ViewBadge
一個表示檢視值的徽章
屬性
在徽章工具提示中顯示的標籤。
在徽章中顯示的值。
ViewColumn
表示視窗中編輯器的位置。編輯器可以排列成網格,每個列透過按其出現的順序計數編輯器來表示網格中的一個編輯器位置。
列舉成員
一個符號化的編輯器列,表示活動列旁邊的一列。該值可以在開啟編輯器時使用,但編輯器的已解析viewColumn值將始終是One
、Two
、Three
、...或undefined
,但絕不會是Beside
。
一個符號化的編輯器列,表示當前活動列。該值可以在開啟編輯器時使用,但編輯器的已解析viewColumn值將始終是One
、Two
、Three
、...或undefined
,但絕不會是Active
。
第一個編輯器列。
第二個編輯器列。
第三個編輯器列。
第四個編輯器列。
第五個編輯器列。
第六個編輯器列。
第七個編輯器列。
第八個編輯器列。
第九個編輯器列。
Webview
顯示HTML內容,類似於iframe。
事件
onDidReceiveMessage: Event<any>
當webview內容傳送訊息時觸發。
Webview 內容可以將字串或 JSON 可序列化物件回發到擴充套件。它們不能傳送 `Blob`、`File`、`ImageData` 和其他 DOM 特定物件,因為接收訊息的擴充套件不在瀏覽器環境中執行。
屬性
webview資源的Content Security Policy源。
這是內容安全策略規則中應使用的來源
`img-src https: ${webview.cspSource} ...;`;
webview的HTML內容。
這應該是一個完整的、有效的html文件。更改此屬性會導致webview重新載入。
Webview與正常的擴充套件程序隔離,因此所有與webview的通訊都必須使用訊息傳遞。要從擴充套件向webview傳送訊息,請使用postMessage。要從webview向擴充套件傳送訊息,請在webview內部使用acquireVsCodeApi
函式獲取編輯器的API控制代碼,然後呼叫.postMessage()
<script>
const vscode = acquireVsCodeApi(); // acquireVsCodeApi can only be invoked once
vscode.postMessage({ message: 'hello!' });
</script>
要在webview中載入工作區中的資源,請使用asWebviewUri方法,並確保資源的目錄已列在WebviewOptions.localResourceRoots中。
請記住,即使webview是沙盒化的,它們仍然允許執行指令碼和載入任意內容,因此擴充套件在處理webview時必須遵循所有標準Web安全最佳實踐。這包括正確清理所有不受信任的輸入(包括來自工作區的內容)並設定內容安全策略。
options: WebviewOptions
webview的內容設定。
方法
asWebviewUri(localResource: Uri): Uri
將本地檔案系統的 uri 轉換為可在 webview 中使用的 uri。
Webviews不能直接使用file:
uri從工作區或本地檔案系統載入資源。asWebviewUri
函式接受一個本地file:
uri,並將其轉換為可在webview中用於載入相同資源的uri
webview.html = `<img src="${webview.asWebviewUri(
vscode.Uri.file('/Users/codey/workspace/cat.gif')
)}">`;
postMessage(message: any): Thenable<boolean>
向webview內容傳送訊息。
僅當webview處於活動狀態(可見或在後臺啟用retainContextWhenHidden
)時才傳送訊息。
引數 | 描述 |
---|---|
message: any | 訊息正文。這必須是字串或其他JSON可序列化物件。 對於舊版本的VSCode,如果 但是,如果您的擴充套件在 |
返回 | 描述 |
Thenable<boolean> | 一個在訊息釋出到webview時或因訊息無法送達而被丟棄時解析的Promise。 如果訊息已釋出到webview,則返回 返回 如果您想確認訊息已實際收到,您可以嘗試讓您的webview向您的擴充套件回發確認訊息。 |
WebviewOptions
webview的內容設定。
屬性
enableCommandUris?: boolean | readonly string[]
控制是否在webview內容中啟用命令uri。
預設為false
(停用命令uri)。
如果傳入陣列,則只允許陣列中的命令。
控制是否在webview內容中啟用表單。
如果指令碼已啟用,則預設為true。否則預設為false。明確將此屬性設定為true或false會覆蓋預設值。
控制是否在webview內容中啟用指令碼。
預設為false(停用指令碼)。
localResourceRoots?: readonly Uri[]
webview可以使用asWebviewUri
中的uri載入本地(檔案系統)資源的根路徑
預設為當前工作區的根資料夾以及擴充套件的安裝目錄。
傳入一個空陣列以禁止訪問任何本地資源。
portMapping?: readonly WebviewPortMapping[]
webview內部使用的localhost埠對映。
埠對映允許webview透明地定義如何解析localhost埠。這可用於允許在webview內部使用靜態localhost埠,該埠解析為服務正在執行的隨機埠。
如果webview訪問localhost內容,即使webviewPort
和extensionHostPort
埠相同,我們也建議您指定埠對映。
請注意,埠對映僅適用於http
或https
URL。Websocket URL(例如ws://:3000
)無法對映到另一個埠。
WebviewPanel
包含一個webview的面板。
事件
onDidChangeViewState: Event<WebviewPanelOnDidChangeViewStateEvent>
當面板的檢視狀態改變時觸發。
onDidDispose: Event<void>
面板被釋放時觸發。
這可能是因為使用者關閉了面板,也可能是因為對其呼叫了.dispose()
。
在面板被釋放後嘗試使用它會丟擲異常。
屬性
面板是否處於活動狀態(使用者聚焦)。
iconPath?: Uri | {dark: Uri, light: Uri}
在UI中顯示的面板圖示。
options: WebviewPanelOptions
webview面板的內容設定。
在UI中顯示的面板標題。
viewColumn: ViewColumn
面板的編輯器位置。此屬性僅在webview位於編輯器檢視列之一時設定。
標識webview面板的型別,例如'markdown.preview'
。
面板是否可見。
webview: Webview
面板所屬的Webview。
方法
銷燬webview面板。
如果面板正在顯示,此操作會關閉它,並釋放webview擁有的資源。當用戶關閉webview面板時,webview面板也會被銷燬。這兩種情況都會觸發onDispose
事件。
引數 | 描述 |
---|---|
返回 | 描述 |
任意 |
reveal(viewColumn?: ViewColumn, preserveFocus?: boolean): void
在給定列中顯示webview面板。
一個webview面板一次只能顯示在一個列中。如果它已經顯示,此方法將其移動到新列。
引數 | 描述 |
---|---|
viewColumn?: ViewColumn | 顯示面板的檢視列。如果未定義,則在當前 |
preserveFocus?: boolean | 當為 |
返回 | 描述 |
void |
WebviewPanelOnDidChangeViewStateEvent
當webview面板的檢視狀態改變時觸發的事件。
屬性
webviewPanel: WebviewPanel
檢視狀態發生變化的Webview面板。
WebviewPanelOptions
webview面板的內容設定。
屬性
控制是否在面板中啟用查詢小部件。
預設為 false
。
retainContextWhenHidden?: boolean
控制即使面板不再可見,是否保留webview面板的內容(iframe)。
通常,當面板變為可見時,會建立其HTML上下文,並在隱藏時銷燬。具有複雜狀態或UI的擴充套件可以設定retainContextWhenHidden
,使編輯器保留webview上下文,即使webview移動到後臺選項卡。當使用retainContextWhenHidden
的webview變為隱藏時,其指令碼和其他動態內容將被暫停。當面板再次變為可見時,上下文會自動恢復到與原始狀態完全相同的狀態。即使啟用了retainContextWhenHidden
,您也無法向隱藏的webview傳送訊息。
retainContextWhenHidden
的記憶體開銷很高,只有在面板的上下文無法快速儲存和恢復時才應使用。
WebviewPanelSerializer<T>
當vscode關閉時恢復已持久化的webview面板。
Webview持久化有兩種型別
- 會話內持久化。
- 跨會話(跨編輯器重啟)持久化。
WebviewPanelSerializer
僅在第二種情況下需要:跨會話持久化webview。
會話內持久化允許webview在隱藏時儲存其狀態,並在再次可見時從該狀態恢復其內容。它完全由webview內容本身提供支援。要儲存持久化狀態,請使用任何json可序列化物件呼叫acquireVsCodeApi().setState()
。要再次恢復狀態,請呼叫getState()
// Within the webview
const vscode = acquireVsCodeApi();
// Get existing state
const oldState = vscode.getState() || { value: 0 };
// Update state
setState({ value: oldState.value + 1 });
WebviewPanelSerializer
將此持久化擴充套件到編輯器重啟。當編輯器關閉時,它將儲存所有具有序列化器的webview的setState
中的狀態。當webview在重啟後首次變為可見時,此狀態將傳遞給deserializeWebviewPanel
。擴充套件隨後可以從該狀態恢復舊的WebviewPanel
。
方法
deserializeWebviewPanel(webviewPanel: WebviewPanel, state: T): Thenable<void>
從其序列化的state
恢復webview面板。
當序列化的webview首次變為可見時呼叫。
引數 | 描述 |
---|---|
webviewPanel: WebviewPanel | 要恢復的webview面板。序列化器應擁有此面板。序列化器必須恢復webview的 |
state: T | 來自webview內容的持久化狀態。 |
返回 | 描述 |
Thenable<void> | 表示webview已完全恢復的Thenable。 |
WebviewPortMapping
定義用於webview內部localhost的埠對映。
屬性
目標埠。webviewPort
被解析為此埠。
在webview內部重新對映的localhost埠。
WebviewView
一個基於webview的檢視。
事件
onDidChangeVisibility: Event<void>
當檢視的可見性發生變化時觸發的事件。
觸發可見性更改的操作
- 檢視被摺疊或展開。
- 使用者切換到側邊欄或面板中不同的檢視組。
請注意,使用上下文選單隱藏檢視會銷燬檢視並觸發onDidDispose
。
onDidDispose: Event<void>
檢視被釋放時觸發的事件。
當用戶明確隱藏檢視時(當用戶在檢視中右鍵單擊並取消選中webview檢視時),檢視將被釋放。
在檢視被釋放後嘗試使用它會丟擲異常。
屬性
badge?: ViewBadge
此webview檢視要顯示的徽章。要刪除徽章,請設定為undefined。
在標題中不那麼突出地呈現的人類可讀字串。
在UI中顯示的檢視標題。
檢視標題最初取自擴充套件的package.json
貢獻。
標識webview檢視的型別,例如'hexEditor.dataView'
。
跟蹤webview是否當前可見。
當檢視在螢幕上且已展開時,它們是可見的。
webview: Webview
檢視底層的webview。
方法
show(preserveFocus?: boolean): void
在UI中顯示檢視。
如果檢視已摺疊,這將展開它。
引數 | 描述 |
---|---|
preserveFocus?: boolean | 當 |
返回 | 描述 |
void |
WebviewViewProvider
用於建立WebviewView
元素的提供者。
方法
resolveWebviewView(webviewView: WebviewView, context: WebviewViewResolveContext<unknown>, token: CancellationToken): void | Thenable<void>
解析webview檢視。
當檢視首次變為可見時,會呼叫resolveWebviewView
。這可能發生在檢視首次載入時,或使用者隱藏然後再次顯示檢視時。
引數 | 描述 |
---|---|
webviewView: WebviewView | 要恢復的webview檢視。提供者應擁有此檢視。提供者必須設定webview的 |
context: WebviewViewResolveContext<unknown> | 有關正在解析的檢視的其他元資料。 |
token: CancellationToken | 取消令牌,指示不再需要提供的檢視。 |
返回 | 描述 |
void | Thenable<void> | 可選的thenable,指示檢視已完全解析。 |
WebviewViewResolveContext<T>
有關正在解析的webview檢視的其他資訊。
屬性
來自webview內容的持久化狀態。
為了節省資源,編輯器通常會取消分配不可見的webview文件(iframe內容)。例如,當用戶摺疊檢視或切換到側邊欄中另一個頂級活動時,WebviewView
本身會保持活動狀態,但webview的底層文件會被取消分配。當檢視再次變為可見時,它會被重新建立。
您可以透過在WebviewOptions
中設定retainContextWhenHidden
來防止此行為。但是,這會增加資源使用,應儘可能避免。相反,您可以使用持久化狀態來儲存webview的狀態,以便在需要時可以快速重新建立。
要儲存持久化狀態,請在webview內部使用任何json可序列化物件呼叫acquireVsCodeApi().setState()
。要再次恢復狀態,請呼叫getState()
。例如
// Within the webview
const vscode = acquireVsCodeApi();
// Get existing state
const oldState = vscode.getState() || { value: 0 };
// Update state
setState({ value: oldState.value + 1 });
編輯器確保在webview隱藏時和編輯器重啟時正確儲存持久化狀態。
WindowState
表示視窗的狀態。
屬性
視窗最近是否進行了互動。這將在活動時立即更改,或在使用者不活動一小段時間後更改。
當前視窗是否獲得焦點。
WorkspaceConfiguration
表示配置。它是以下各項的合併檢視
- 預設設定
- 全域性(使用者)設定
- 工作區設定
- 工作區資料夾設定 - 來自請求資源所屬的工作區資料夾之一。
- 語言設定 - 在請求語言下定義的設定。
有效值(由get返回)透過以下順序覆蓋或合併值來計算
defaultValue
(如果在package.json
中定義,否則從值的型別派生)globalValue
(如果已定義)workspaceValue
(如果已定義)workspaceFolderValue
(如果已定義)defaultLanguageValue
(如果已定義)globalLanguageValue
(如果已定義)workspaceLanguageValue
(如果已定義)workspaceFolderLanguageValue
(如果已定義)
注意:只有object
值型別會合並,所有其他值型別都會被覆蓋。
示例 1:覆蓋
defaultValue = 'on';
globalValue = 'relative';
workspaceFolderValue = 'off';
value = 'off';
示例 2:語言值
defaultValue = 'on';
globalValue = 'relative';
workspaceFolderValue = 'off';
globalLanguageValue = 'on';
value = 'on';
示例 3:物件值
defaultValue = { a: 1, b: 2 };
globalValue = { b: 3, c: 4 };
value = { a: 1, b: 3, c: 4 };
注意:工作區和工作區資料夾配置包含launch
和tasks
設定。它們的基名將是節識別符號的一部分。以下程式碼片段顯示瞭如何從launch.json
中檢索所有配置
// launch.json configuration
const config = workspace.getConfiguration(
'launch',
vscode.workspace.workspaceFolders[0].uri
);
// retrieve values
const values = config.get('configurations');
有關更多資訊,請參閱設定。
方法
從此配置返回一個值。
引數 | 描述 |
---|---|
section: string | 配置名稱,支援點式名稱。 |
返回 | 描述 |
T | 值 |
get<T>(section: string, defaultValue: T): T
從此配置返回一個值。
引數 | 描述 |
---|---|
section: string | 配置名稱,支援點式名稱。 |
defaultValue: T | 當找不到值時應返回一個值,即 |
返回 | 描述 |
T | 值 |
檢查此配置是否具有某個值。
引數 | 描述 |
---|---|
section: string | 配置名稱,支援點式名稱。 |
返回 | 描述 |
布林值 | 如果節未解析為 |
inspect<T>(section: string): {defaultLanguageValue: T, defaultValue: T, globalLanguageValue: T, globalValue: T, key: string, languageIds: string[], workspaceFolderLanguageValue: T, workspaceFolderValue: T, workspaceLanguageValue: T, workspaceValue: T}
檢索有關配置設定的所有資訊。配置值通常由預設值、全域性或安裝範圍值、工作區特定值、資料夾特定值和語言特定值(如果WorkspaceConfiguration作用於某種語言)組成。
還提供定義給定配置設定的所有語言ID。
注意:配置名稱必須表示配置樹中的葉節點(editor.fontSize
而非editor
),否則不返回結果。
引數 | 描述 |
---|---|
section: string | 配置名稱,支援點式名稱。 |
返回 | 描述 |
{defaultLanguageValue: T, defaultValue: T, globalLanguageValue: T, globalValue: T, key: string, languageIds: string[], workspaceFolderLanguageValue: T, workspaceFolderValue: T, workspaceLanguageValue: T, workspaceValue: T} | 有關配置設定的資訊或 |
update(section: string, value: any, configurationTarget?: boolean | ConfigurationTarget, overrideInLanguage?: boolean): Thenable<void>
更新配置值。更新後的配置值會持久化。
值可以在以下位置更改
注意:要刪除配置值,請使用undefined
,如下所示:config.update('somekey', undefined)
- 丟擲 - 更新時出錯
- 未註冊的配置。
- 視窗配置到工作區資料夾
- 在沒有開啟工作區時配置到工作區或工作區資料夾。
- 在沒有工作區資料夾設定時配置到工作區資料夾。
- 當WorkspaceConfiguration未限定到資源時配置到工作區資料夾。
引數 | 描述 |
---|---|
section: string | 配置名稱,支援點式名稱。 |
value: any | 新值。 |
configurationTarget?: boolean | ConfigurationTarget | |
overrideInLanguage?: boolean | 是否在請求的languageId範圍內更新值。- 如果為 |
返回 | 描述 |
Thenable<void> |
WorkspaceEdit
工作區編輯是多個資源和文件的文字和檔案更改的集合。
使用applyEdit函式應用工作區編輯。
建構函式
new WorkspaceEdit(): WorkspaceEdit
引數 | 描述 |
---|---|
返回 | 描述 |
WorkspaceEdit |
屬性
受文字或資源更改影響的資源數量。
方法
createFile(uri: Uri, options?: {contents: Uint8Array | DataTransferFile, ignoreIfExists: boolean, overwrite: boolean}, metadata?: WorkspaceEditEntryMetadata): void
建立一個普通檔案。
引數 | 描述 |
---|---|
uri: Uri | 新檔案的Uri。 |
options?: {contents: Uint8Array | DataTransferFile, ignoreIfExists: boolean, overwrite: boolean} | 定義是否應覆蓋或忽略現有檔案。當 |
metadata?: WorkspaceEditEntryMetadata | 條目的可選元資料。 |
返回 | 描述 |
void |
delete(uri: Uri, range: Range, metadata?: WorkspaceEditEntryMetadata): void
刪除給定範圍的文字。
引數 | 描述 |
---|---|
uri: Uri | 資源識別符號。 |
range: Range | 一個範圍。 |
metadata?: WorkspaceEditEntryMetadata | 條目的可選元資料。 |
返回 | 描述 |
void |
deleteFile(uri: Uri, options?: {ignoreIfNotExists: boolean, recursive: boolean}, metadata?: WorkspaceEditEntryMetadata): void
刪除檔案或資料夾。
引數 | 描述 |
---|---|
uri: Uri | 要刪除的檔案的URI。 |
options?: {ignoreIfNotExists: boolean, recursive: boolean} | |
metadata?: WorkspaceEditEntryMetadata | 條目的可選元資料。 |
返回 | 描述 |
void |
entries(): Array<[Uri, TextEdit[]]>
has(uri: Uri): boolean
檢查資源是否存在文字編輯。
引數 | 描述 |
---|---|
uri: Uri | 資源識別符號。 |
返回 | 描述 |
布林值 | 如果給定資源將受到此編輯的影響,則為 |
insert(uri: Uri, position: Position, newText: string, metadata?: WorkspaceEditEntryMetadata): void
在給定位置插入給定文字。
引數 | 描述 |
---|---|
uri: Uri | 資源識別符號。 |
position: Position | 一個位置。 |
newText: string | 一個字串。 |
metadata?: WorkspaceEditEntryMetadata | 條目的可選元資料。 |
返回 | 描述 |
void |
renameFile(oldUri: Uri, newUri: Uri, options?: {ignoreIfExists: boolean, overwrite: boolean}, metadata?: WorkspaceEditEntryMetadata): void
重新命名檔案或資料夾。
引數 | 描述 |
---|---|
oldUri: Uri | 現有檔案。 |
newUri: Uri | 新位置。 |
options?: {ignoreIfExists: boolean, overwrite: boolean} | 定義是否應覆蓋或忽略現有檔案。當 `overwrite` 和 `ignoreIfExists` 都設定時,`overwrite` 優先。 |
metadata?: WorkspaceEditEntryMetadata | 條目的可選元資料。 |
返回 | 描述 |
void |
replace(uri: Uri, range: Range, newText: string, metadata?: WorkspaceEditEntryMetadata): void
用給定文字替換給定資源的給定範圍。
引數 | 描述 |
---|---|
uri: Uri | 資源識別符號。 |
range: Range | 一個範圍。 |
newText: string | 一個字串。 |
metadata?: WorkspaceEditEntryMetadata | 條目的可選元資料。 |
返回 | 描述 |
void |
set(uri: Uri, edits: ReadonlyArray<TextEdit | SnippetTextEdit>): void
為資源設定(和替換)文字編輯或程式碼片段編輯。
引數 | 描述 |
---|---|
uri: Uri | 資源識別符號。 |
edits: ReadonlyArray<TextEdit | SnippetTextEdit> | 編輯陣列。 |
返回 | 描述 |
void |
set(uri: Uri, edits: ReadonlyArray<[TextEdit | SnippetTextEdit, WorkspaceEditEntryMetadata]>): void
為資源設定(和替換)帶有元資料的文字編輯或程式碼片段編輯。
引數 | 描述 |
---|---|
uri: Uri | 資源識別符號。 |
edits: ReadonlyArray<[TextEdit | SnippetTextEdit, WorkspaceEditEntryMetadata]> | 編輯陣列。 |
返回 | 描述 |
void |
set(uri: Uri, edits: readonly NotebookEdit[]): void
為資源設定(和替換)筆記本編輯。
引數 | 描述 |
---|---|
uri: Uri | 資源識別符號。 |
edits: readonly NotebookEdit[] | 編輯陣列。 |
返回 | 描述 |
void |
set(uri: Uri, edits: ReadonlyArray<[NotebookEdit, WorkspaceEditEntryMetadata]>): void
為資源設定(和替換)帶有元資料的筆記本編輯。
引數 | 描述 |
---|---|
uri: Uri | 資源識別符號。 |
edits: ReadonlyArray<[NotebookEdit, WorkspaceEditEntryMetadata]> | 編輯陣列。 |
返回 | 描述 |
void |
WorkspaceEditEntryMetadata
工作區編輯條目的附加資料。支援標記條目並將其標記為需要使用者確認。編輯器將具有相同標籤的編輯分組到樹節點中,例如,所有標記為“字串更改”的編輯將是一個樹節點。
屬性
一個人類可讀的字串,在同一行上以不那麼顯眼的方式呈現。
iconPath?: IconPath
編輯的圖示路徑或 ThemeIcon。
一個人類可讀的突出顯示的字串。
一個標誌,表示需要使用者確認。
WorkspaceEditMetadata
有關工作區編輯的附加資料。
屬性
向編輯器發出訊號,此編輯是重構。
WorkspaceFolder
工作區資料夾是編輯器開啟的眾多根目錄之一。所有工作區資料夾都是平等的,這意味著沒有活動或主要工作區資料夾的概念。
屬性
此工作區資料夾的序數。
此工作區資料夾的名稱。預設為其 URI 路徑的基本名稱。
uri: Uri
此工作區資料夾關聯的 URI。
注意: 特意選擇了 Uri 型別,以便編輯器的未來版本可以支援不儲存在本地磁碟上的工作區資料夾,例如 ftp://server/workspaces/foo
。
WorkspaceFolderPickOptions
配置 工作區資料夾 選擇 UI 行為的選項。
屬性
設定為true
可在焦點移至編輯器的其他部分或另一個視窗時保持選擇器開啟。此設定在 iPad 上將被忽略,並始終為 false。
一個可選字串,在輸入框中顯示為佔位符,以指導使用者選擇什麼。
WorkspaceFoldersChangeEvent
描述 工作區資料夾 集合變化的事件。
屬性
added: readonly WorkspaceFolder[]
新增的工作區資料夾。
removed: readonly WorkspaceFolder[]
移除的工作區資料夾。
WorkspaceSymbolProvider<T>
工作區符號提供程式介面定義了擴充套件和 符號搜尋 功能之間的約定。
方法
provideWorkspaceSymbols(query: string, token: CancellationToken): ProviderResult<T[]>
在專案範圍內搜尋與給定查詢字串匹配的符號。
query
引數應以寬鬆的方式解釋,因為編輯器將對結果應用其自己的高亮顯示和評分。一個好的經驗法則是不區分大小寫地匹配,並簡單地檢查query的字元是否按其順序出現在候選符號中。不要使用字首、子字串或類似的嚴格匹配。
為了提高效能,實現者可以實現 resolveWorkspaceSymbol
,然後提供具有部分 位置 物件的符號,而不定義 range
。編輯器將僅針對選定的符號呼叫 resolveWorkspaceSymbol
,例如在開啟工作區符號時。
引數 | 描述 |
---|---|
query: string | 一個查詢字串,可以是空字串,在這種情況下應返回所有符號。 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T[]> | 一個文件高亮陣列或解析為此類的 thenable。可以透過返回 |
resolveWorkspaceSymbol(symbol: T, token: CancellationToken): ProviderResult<T>
給定一個符號,填充其 位置。每當在 UI 中選擇一個符號時,都會呼叫此方法。提供程式可以實現此方法並從 provideWorkspaceSymbols 返回不完整的符號,這通常有助於提高效能。
引數 | 描述 |
---|---|
symbol: T | 待解析的符號。保證是先前對 |
token: CancellationToken | 取消令牌。 |
返回 | 描述 |
ProviderResult<T> | 已解析的符號或解析為該符號的 thenable。如果沒有返回結果,則使用給定的 |
API 模式
這些是我們用於 VS Code API 的一些常見模式。
Promises(承諾)
VS Code API 使用 promises 表示非同步操作。從擴充套件中,可以返回任何型別的 Promise,例如 ES6、WinJS、A+ 等。
透過 Thenable
型別在 API 中表達了與特定 Promise 庫無關的特性。Thenable
代表了公共的介面,即 then 方法。
在大多數情況下,使用 Promise 是可選的,當 VS Code 呼叫擴充套件時,它可以處理結果型別以及結果型別的 Thenable
。當使用 Promise 是可選的時,API 透過返回 or
型別來表示這一點。
provideNumber(): number | Thenable<number>
Cancellation Tokens(取消令牌)
通常,操作是在易變狀態下啟動的,在操作完成之前狀態會發生變化。例如,計算智慧感知啟動,使用者繼續輸入,使該操作的結果過時。
暴露於此類行為的 API 將傳遞一個 CancellationToken
,您可以在其上檢查取消(isCancellationRequested
)或在發生取消時得到通知(onCancellationRequested
)。取消令牌通常是函式呼叫的最後一個引數,並且是可選的。
Disposables(可釋放物件)
VS Code API 使用 dispose pattern 處理從 VS Code 獲取的資源。這適用於事件監聽、命令、與 UI 互動以及各種語言貢獻。
例如,setStatusBarMessage(value: string)
函式返回一個 Disposable
,在呼叫 dispose
後會再次移除訊息。
事件
VS Code API 中的事件作為函式暴露,您可以使用偵聽器函式呼叫它們以進行訂閱。訂閱呼叫返回一個 Disposable
,它在 dispose 時移除事件偵聽器。
var listener = function(event) {
console.log('It happened', event);
};
// start listening
var subscription = fsWatcher.onDidDelete(listener);
// do more stuff
subscription.dispose(); // stop listening
事件名稱遵循 on[Will|Did]VerbNoun?
模式。該名稱表示事件是即將發生 (onWill) 還是已經發生 (onDid),發生了什麼 (verb),以及上下文 (noun),除非從上下文中顯而易見。
VS Code API 中的一個示例是 window.onDidChangeActiveTextEditor
,這是一個當活動文字編輯器(noun)已(onDid)更改(verb)時觸發的事件。
嚴格的空值
VS Code API 在適當的地方使用 undefined
和 null
TypeScript 型別,以支援 嚴格的空值檢查。
身份驗證的名稱空間。