VS Code API
VS Code API 是一組您可以在 Visual Studio Code 擴充功能中調用的 JavaScript API。此頁面列出擴充功能作者可用的所有 VS Code API。
API 命名空間與類別
此列表是從 VS Code 儲存庫的 vscode.d.ts 檔案編譯而來。
身分驗證
事件
onDidChangeSessions: Event<AuthenticationSessionsChangeEvent>
當身分驗證提供者的身分驗證工作階段已新增、移除或變更時觸發的 事件。
函式
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
註冊可以透過鍵盤快速鍵、選單項目、動作或直接叫用的文字編輯器命令。
文字編輯器命令與一般 命令 不同,因為它們只在呼叫命令時有作用中的編輯器時執行。此外,編輯器命令的命令處理常式可以存取作用中的編輯器和 edit 建置器。請注意,edit 建置器僅在回呼執行時有效。
參數 | 描述 |
---|---|
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 | 註解控制器的執行個體。 |
偵錯
偵錯功能的命名空間。
變數
activeDebugConsole: DebugConsole
目前作用中的 偵錯主控台。如果沒有作用中的偵錯工作階段,則不會顯示傳送至偵錯主控台的輸出。
activeDebugSession: DebugSession | undefined
目前作用中的 偵錯工作階段 或 undefined
。作用中的偵錯工作階段是由偵錯動作浮動視窗表示的工作階段,或是目前顯示在偵錯動作浮動視窗下拉式選單中的工作階段。如果沒有作用中的偵錯工作階段,則值為 undefined
。
activeStackItem: DebugThread | DebugStackFrame | undefined
目前焦點所在的執行緒或堆疊框架,如果沒有執行緒或堆疊為焦點,則為 undefined
。只要有作用中的偵錯工作階段,執行緒隨時都可以成為焦點,而堆疊框架只有在工作階段暫停且已擷取呼叫堆疊時才能成為焦點。
breakpoints: readonly Breakpoint[]
中斷點清單。
事件
onDidChangeActiveDebugSession: Event<DebugSession | undefined>
當 作用中的偵錯工作階段 變更時觸發的 事件。注意,當作用中的偵錯工作階段變更為 undefined
時,也會觸發事件。
onDidChangeActiveStackItem: Event<DebugThread | DebugStackFrame | undefined>
當 debug.activeStackItem 變更時觸發的事件。
onDidChangeBreakpoints: Event<BreakpointsChangeEvent>
當中斷點集合已新增、移除或變更時發出的 事件。
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。如果來源描述元使用參考編號,則會建構特定的偵錯 Uri (配置 'debug'),這需要對應的 ContentProvider 和執行中的偵錯工作階段
如果 "Source" 描述元沒有足夠的資訊來建立 Uri,則會擲回錯誤。
參數 | 描述 |
---|---|
source: DebugProtocolSource | 符合偵錯配接器通訊協定中定義的 Source 類型的物件。 |
session?: DebugSession | 當來源描述元使用參考編號從作用中的偵錯工作階段載入內容時,將使用的選用偵錯工作階段。 |
傳回 | 描述 |
Uri | 可用於載入來源內容的 Uri。 |
registerDebugAdapterDescriptorFactory(debugType: string, factory: DebugAdapterDescriptorFactory): Disposable
為特定的偵錯類型註冊 偵錯配接器描述元 Factory。擴充功能僅允許為擴充功能定義的偵錯類型註冊 DebugAdapterDescriptorFactory。否則會擲回錯誤。為偵錯類型註冊多個 DebugAdapterDescriptorFactory 會導致錯誤。
參數 | 描述 |
---|---|
debugType: string | Factory 註冊的偵錯類型。 |
factory: DebugAdapterDescriptorFactory | 要註冊的 偵錯配接器描述元 Factory。 |
傳回 | 描述 |
Disposable | 處置時會取消註冊此 Factory 的 Disposable。 |
registerDebugAdapterTrackerFactory(debugType: string, factory: DebugAdapterTrackerFactory): Disposable
為給定的偵錯類型註冊偵錯配接器追蹤器 Factory。
參數 | 描述 |
---|---|
debugType: string | Factory 註冊的偵錯類型,或 '*' 以符合所有偵錯類型。 |
factory: DebugAdapterTrackerFactory | 要註冊的 偵錯配接器追蹤器 Factory。 |
傳回 | 描述 |
Disposable | 處置時會取消註冊此 Factory 的 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,當工作階段已停止時解析。 |
環境
描述編輯器執行環境的命名空間。
變數
應用程式的託管位置。在桌面上,這是 'desktop'。在網頁中,這是指定的嵌入器,例如 'github.dev'、'codespaces',如果嵌入器未提供該資訊,則為 'web'
編輯器的應用程式名稱,例如 'VS Code'。
編輯器從中執行的應用程式根資料夾。
注意:當在沒有應用程式根資料夾表示法的環境中執行時,此值為空字串。
clipboard: Clipboard
系統剪貼簿。
表示這是應用程式的全新安裝。如果是安裝後的第一天內,則為 true
,否則為 false
。
指出使用者是否已啟用遙測功能。可以觀察以判斷擴充功能是否應傳送遙測資料。
代表慣用的使用者語言,例如 de-CH
、fr
或 en-US
。
logLevel: LogLevel
編輯器目前的記錄層級。
電腦的唯一識別碼。
remoteName: string | undefined
遠端名稱。由擴充功能定義,常見範例包括適用於 Linux 的 Windows 子系統的 wsl
,或適用於使用安全 Shell 的遠端的 ssh-remote
。
注意:當沒有遠端擴充功能主機時,此值為 undefined
,但當遠端擴充功能主機存在時,所有擴充功能主機(本機和遠端)中都會定義此值。使用 Extension.extensionKind 來了解特定擴充功能是否在遠端執行。
目前工作階段的唯一識別碼。每次啟動編輯器時都會變更。
偵測到的擴充功能主機預設 Shell,這會被擴充功能主機平台的 terminal.integrated.defaultProfile
設定覆寫。請注意,在不支援 Shell 的環境中,此值為空字串。
uiKind: UIKind
UI 種類屬性指出從哪個 UI 存取擴充功能。例如,可以從桌面應用程式或網頁瀏覽器存取擴充功能。
編輯器在作業系統中註冊的自訂 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。
如果擴充功能在用戶端電腦上執行,則這是 no-op。
如果擴充功能在遠端執行,此函式會自動建立從本機電腦到遠端 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。 |
擴充功能
用於處理已安裝擴充功能的命名空間。擴充功能由 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 時,請將 extensionDependencies
項目新增至 package.json
,並使用 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> | 要在本地化字串中使用的引數。引數的索引用於比對本地化字串中的範本預留位置。 |
傳回 | 描述 |
string | 具有注入引數的本地化字串。 |
t(message: string, args: Record<string, any>): string
標記要本地化的字串。如果 env.language 指定的語言有本地化組合,且該組合具有此訊息的本地化值,則將傳回該本地化值 (並針對任何範本化值注入 args 值)。
範例
l10n.t('Hello {name}', { name: 'Erich' });
參數 | 描述 |
---|---|
message: string | 要本地化的訊息。支援具名範本化,其中 |
args: Record<string, any> | 要在本地化字串中使用的引數。記錄中索引鍵的名稱用於比對本地化字串中的範本預留位置。 |
傳回 | 描述 |
string | 具有注入引數的本地化字串。 |
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} | 本地化訊息時要使用的選項。 |
傳回 | 描述 |
string | 具有注入引數的本地化字串。 |
語言
用於參與語言特定編輯器功能的命名空間,例如 IntelliSense、程式碼動作、診斷等。
存在許多程式設計語言,並且在語法、語意和範例中存在巨大差異。儘管如此,自動單字完成、程式碼導覽或程式碼檢查等功能已在不同程式設計語言的不同工具中變得普及。
編輯器提供了一個 API,透過讓所有 UI 和動作都已就位,並允許您僅透過提供資料來參與,從而簡化了提供此類常見功能的方式。例如,若要貢獻懸停功能,您只需提供一個可以使用 TextDocument 和 Position 呼叫的函式,以傳回懸停資訊。其餘的 (例如追蹤滑鼠、定位懸停、保持懸停穩定等) 由編輯器負責處理。
languages.registerHoverProvider('javascript', {
provideHover(document, position, token) {
return new Hover('I am a hover!');
}
});
註冊是使用 文件選取器 完成的,文件選取器可以是語言 ID (例如 javascript
),也可以是更複雜的 篩選器 (例如 { language: 'typescript', scheme: 'file' }
)。將文件與此類選取器比對將產生一個 分數,用於判斷是否以及如何使用提供者。當分數相等時,最後出現的提供者獲勝。對於允許完全元數的功能 (例如 hover),僅檢查分數是否 >0
,對於其他功能 (例如 IntelliSense),分數用於判斷要求提供者參與的順序。
事件
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 類型,呼叫編輯器語言的所有已註冊提供者。
每個供應商可以回傳一個或多個 DocumentDropEdits。這些編輯會使用 DocumentDropEdit.yieldTo 屬性進行排序。預設情況下,第一個編輯會被套用。如果還有其他編輯,這些編輯將會以可選取的下拉選項顯示在下拉小工具中,供使用者選擇。
參數 | 描述 |
---|---|
selector: DocumentSelector | 定義此供應商適用文件的選取器。 |
provider: DocumentDropEditProvider<DocumentDropEdit> | 一個下拉供應商。 |
metadata?: DocumentDropEditProviderMetadata | 關於供應商的其他元資料。 |
傳回 | 描述 |
Disposable | 一個 Disposable,當被處置時,會取消註冊此供應商。 |
registerDocumentFormattingEditProvider(selector: DocumentSelector, provider: DocumentFormattingEditProvider): Disposable
為文件註冊格式化供應商。
可以為一種語言註冊多個供應商。在這種情況下,供應商會依據其 score 進行排序,並使用最佳匹配的供應商。選定供應商的失敗將導致整個操作失敗。
參數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供者適用文件的選取器。 |
provider: DocumentFormattingEditProvider | 一個文件格式化編輯供應商。 |
傳回 | 描述 |
Disposable | 處置時會取消註冊此提供者的 Disposable。 |
registerDocumentHighlightProvider(selector: DocumentSelector, provider: DocumentHighlightProvider): Disposable
註冊文件反白供應商。
可以為一種語言註冊多個供應商。在這種情況下,供應商會依據其 score 進行排序,並依序詢問群組以取得文件反白。當供應商回傳 non-falsy
或 non-failure
結果時,程序會停止。
參數 | 描述 |
---|---|
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 指定的它們處理的 mimetype,針對複製和貼上操作調用所有已註冊的語言供應商。
對於 複製操作,每個供應商對 DataTransfer 所做的變更將會合併到單一的 DataTransfer 中,該 DataTransfer 用於填充剪貼簿。
對於 [DocumentPasteEditProvider.providerDocumentPasteEdits 貼上操作](#DocumentPasteEditProvider.providerDocumentPasteEdits paste operations),每個供應商都會被調用,並且可以回傳一個或多個 DocumentPasteEdits。這些編輯會使用 DocumentPasteEdit.yieldTo 屬性進行排序。預設情況下,第一個編輯會被套用,其餘的編輯將會以可選取的貼上選項顯示在貼上小工具中,供使用者選擇。
參數 | 描述 |
---|---|
selector: DocumentSelector | 定義此供應商適用文件的選取器。 |
provider: DocumentPasteEditProvider<DocumentPasteEdit> | 一個貼上編輯器供應商。 |
metadata: DocumentPasteProviderMetadata | 關於供應商的其他元資料。 |
傳回 | 描述 |
Disposable | 一個 Disposable,當被處置時,會取消註冊此供應商。 |
registerDocumentRangeFormattingEditProvider(selector: DocumentSelector, provider: DocumentRangeFormattingEditProvider): Disposable
為文件範圍註冊格式化供應商。
注意: 文件範圍供應商也是一個 文件格式化器,這表示當同時註冊範圍供應商時,無需 註冊 文件格式化器。
可以為一種語言註冊多個供應商。在這種情況下,供應商會依據其 score 進行排序,並使用最佳匹配的供應商。選定供應商的失敗將導致整個操作失敗。
參數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供者適用文件的選取器。 |
provider: DocumentRangeFormattingEditProvider | 一個文件範圍格式化編輯供應商。 |
傳回 | 描述 |
Disposable | 處置時會取消註冊此提供者的 Disposable。 |
registerDocumentRangeSemanticTokensProvider(selector: DocumentSelector, provider: DocumentRangeSemanticTokensProvider, legend: SemanticTokensLegend): Disposable
為文件範圍註冊語意符記供應商。
注意: 如果文件同時具有 DocumentSemanticTokensProvider
和 DocumentRangeSemanticTokensProvider
,則範圍供應商只會在初始階段被調用,這段時間是完整文件供應商解析第一個請求所需的時間。一旦完整文件供應商解析了第一個請求,透過範圍供應商提供的語意符記將會被丟棄,並且從那時起,只會使用文件供應商。
可以為一種語言註冊多個供應商。在這種情況下,供應商會依據其 score 進行排序,並使用最佳匹配的供應商。選定供應商的失敗將導致整個操作失敗。
參數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供者適用文件的選取器。 |
provider: DocumentRangeSemanticTokensProvider | 一個文件範圍語意符記供應商。 |
legend: SemanticTokensLegend | |
傳回 | 描述 |
Disposable | 處置時會取消註冊此提供者的 Disposable。 |
registerDocumentSemanticTokensProvider(selector: DocumentSelector, provider: DocumentSemanticTokensProvider, legend: SemanticTokensLegend): Disposable
為整個文件註冊語意符記供應商。
可以為一種語言註冊多個供應商。在這種情況下,供應商會依據其 score 進行排序,並使用最佳匹配的供應商。選定供應商的失敗將導致整個操作失敗。
參數 | 描述 |
---|---|
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
註冊連結編輯範圍供應商。
可以為一種語言註冊多個供應商。在這種情況下,供應商會依據其 score 進行排序,並使用結果最佳匹配的供應商。選定供應商的失敗將導致整個操作失敗。
參數 | 描述 |
---|---|
selector: DocumentSelector | 定義此提供者適用文件的選取器。 |
provider: LinkedEditingRangeProvider | 一個連結編輯範圍供應商。 |
傳回 | 描述 |
Disposable | 處置時會取消註冊此提供者的 Disposable。 |
registerOnTypeFormattingEditProvider(selector: DocumentSelector, provider: OnTypeFormattingEditProvider, firstTriggerCharacter: string, ...moreTriggerCharacter: string[]): Disposable
註冊一個在輸入時工作的格式化供應商。當使用者啟用 editor.formatOnType
設定時,供應商會處於活動狀態。
可以為一種語言註冊多個供應商。在這種情況下,供應商會依據其 score 進行排序,並使用最佳匹配的供應商。選定供應商的失敗將導致整個操作失敗。
參數 | 描述 |
---|---|
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
註冊重新命名供應商。
可以為一種語言註冊多個供應商。在這種情況下,供應商會依據其 score 進行排序,並依序詢問。第一個產生結果的供應商會定義整個操作的結果。
參數 | 描述 |
---|---|
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
註冊簽名提示供應商。
可以為一種語言註冊多個供應商。在這種情況下,供應商會依據其 score 進行排序,並依序調用,直到供應商回傳有效的結果。
參數 | 描述 |
---|---|
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 | 語言識別碼,例如 |
configuration: LanguageConfiguration | 語言組態。 |
傳回 | 描述 |
Disposable | 一個 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 中列出的工具。輸入將根據工具宣告的結構描述進行驗證
工具可以由聊天參與者在處理聊天請求的上下文中調用,也可以由任何擴充功能在任何自訂流程中全域調用。
在前一種情況下,呼叫者應傳遞 toolInvocationToken,它隨附於 聊天請求。這確保聊天 UI 為正確的對話顯示工具調用。
工具 結果 是一個 text- 和 prompt-tsx-parts 的陣列。如果工具呼叫者正在使用 vscode/prompt-tsx
,它可以將回應部分合併到其提示中,使用 ToolResult
。如果不是,則可以將部分傳遞給 LanguageModelChat,透過帶有 LanguageModelToolResultPart 的使用者訊息。
如果聊天參與者想要跨多個回合保留請求的工具結果,它可以將工具結果儲存在從處理常式回傳的 ChatResult.metadata 中,並在下一個回合從 ChatResponseTurn.result 中檢索它們。
參數 | 描述 |
---|---|
name: string | 要呼叫的工具名稱。 |
options: LanguageModelToolInvocationOptions<object> | 調用工具時要使用的選項。 |
token?: CancellationToken | 取消符記。請參閱 CancellationTokenSource 以了解如何建立一個。 |
傳回 | 描述 |
Thenable<LanguageModelToolResult> | 工具調用的結果。 |
registerTool<T>(name: string, tool: LanguageModelTool<T>): Disposable
註冊 LanguageModelTool。工具也必須在 package.json languageModelTools
貢獻點中註冊。已註冊的工具在 lm.tools 列表中可供任何擴充功能查看。但是為了讓語言模型看到它,它必須在 LanguageModelChatRequestOptions.tools 中可用的工具列表中傳遞。
參數 | 描述 |
---|---|
name: string | |
tool: LanguageModelTool<T> | |
傳回 | 描述 |
Disposable | 一個 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[]> | 聊天模型陣列,可以為空! |
筆記本
筆記本的命名空間。
筆記本功能由三個鬆散耦合的組件組成
- NotebookSerializer 使編輯器能夠開啟、顯示和儲存筆記本
- NotebookController 擁有筆記本的執行權,例如它們從程式碼儲存格建立輸出。
- NotebookRenderer 在編輯器中呈現筆記本輸出。它們在不同的上下文中執行。
函式
createNotebookController(id: string, notebookType: string, label: string, handler?: (cells: NotebookCell[], notebook: NotebookDocument, controller: NotebookController) => void | Thenable<void>): NotebookController
建立新的筆記本控制器。
參數 | 描述 |
---|---|
id: string | 控制器的識別碼。每個擴充功能必須是唯一的。 |
notebookType: string | 此控制器適用的筆記本類型。 |
label: string | 控制器的標籤。 |
handler?: (cells: NotebookCell[], notebook: NotebookDocument, controller: NotebookController) => void | Thenable<void> | 控制器的執行處理常式。 |
傳回 | 描述 |
NotebookController | 一個新的筆記本控制器。 |
createRendererMessaging(rendererId: string): NotebookRendererMessaging
建立新的訊息傳遞實例,用於與特定渲染器通訊。
- 注意 1: 擴充功能只能建立它們在其
package.json
檔案中定義的渲染器 - 注意 2: 只有在其
notebookRenderer
貢獻中將requiresMessaging
設定為always
或optional
時,渲染器才能存取訊息傳遞。
參數 | 描述 |
---|---|
rendererId: 字串 | 用於溝通的 renderer ID |
傳回 | 描述 |
NotebookRendererMessaging | 一個新的 notebook renderer messaging 物件。 |
registerNotebookCellStatusBarItemProvider(notebookType: 字串, provider: NotebookCellStatusBarItemProvider): Disposable
為指定的 notebook 類型註冊 cell statusbar item provider。
參數 | 描述 |
---|---|
notebookType: string | 要註冊的 notebook 類型。 |
provider: NotebookCellStatusBarItemProvider | 一個 cell status bar provider。 |
傳回 | 描述 |
Disposable | 處置時會取消註冊此提供者的 Disposable。 |
scm
原始檔控制管理的命名空間。
變數
inputBox: SourceControlInputBox
擴充功能建立的最後一個 原始檔控制輸入框。
- 已過時 - 請改用 SourceControl.inputBox
函式
createSourceControl(id: 字串, label: 字串, rootUri?: Uri): SourceControl
建立新的 原始檔控制 實例。
參數 | 描述 |
---|---|
id: string | 原始檔控制的 |
label: string | 原始檔控制的人性化可讀字串。 例如: |
rootUri?: Uri | 原始檔控制根目錄的可選 Uri。 例如: |
傳回 | 描述 |
SourceControl | 原始檔控制 的實例。 |
工作
工作功能命名空間。
變數
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: 字串, provider: TaskProvider<Task>): Disposable
註冊工作提供者。
參數 | 描述 |
---|---|
type: 字串 | 此提供者註冊的工作種類類型。 |
provider: TaskProvider<Task> | 一個工作提供者。 |
傳回 | 描述 |
Disposable | 處置時會取消註冊此提供者的 Disposable。 |
測試
測試功能命名空間。 測試是透過註冊 TestController 實例發佈,然後新增 TestItem。 控制器也可以透過建立一個或多個 TestRunProfile 實例來描述如何執行測試。
函式
createTestController(id: 字串, label: 字串): TestController
建立新的測試控制器。
參數 | 描述 |
---|---|
id: string | 控制器的識別碼,必須是全域唯一的。 |
label: string | 控制器的人性化可讀標籤。 |
傳回 | 描述 |
TestController | TestController 的實例。 |
視窗
用於處理編輯器目前視窗的命名空間。 也就是可見和啟用的編輯器,以及用於顯示訊息、選取範圍和要求使用者輸入的 UI 元素。
變數
activeColorTheme: ColorTheme
目前在設定中配置的啟用色彩主題。 可以透過 workbench.colorTheme
設定變更啟用主題。
activeNotebookEditor: NotebookEditor | undefined
目前啟用的 notebook 編輯器 或 undefined
。 啟用編輯器是目前具有焦點的編輯器,或者在沒有焦點時,是最近變更輸入的編輯器。
activeTerminal: Terminal | undefined
目前啟用的終端機或 undefined
。 啟用終端機是目前具有焦點或最近具有焦點的終端機。
activeTextEditor: TextEditor | undefined
目前啟用的編輯器或 undefined
。 啟用編輯器是目前具有焦點的編輯器,或者在沒有焦點時,是最近變更輸入的編輯器。
state: WindowState
代表目前視窗的狀態。
tabGroups: TabGroups
代表主要編輯器區域內的網格小工具
terminals: readonly Terminal[]
目前開啟的終端機或空陣列。
visibleNotebookEditors: readonly NotebookEditor[]
目前可見的 notebook 編輯器 或空陣列。
visibleTextEditors: readonly TextEditor[]
目前可見的編輯器或空陣列。
事件
onDidChangeActiveColorTheme: Event<ColorTheme>
當啟用色彩主題變更或有變更時觸發的 Event。
onDidChangeActiveNotebookEditor: Event<NotebookEditor | undefined>
當 啟用 notebook 編輯器 變更時觸發的 Event。 *注意*,當啟用編輯器變更為 undefined
時,也會觸發事件。
onDidChangeActiveTerminal: Event<Terminal | undefined>
onDidChangeActiveTextEditor: Event<TextEditor | undefined>
onDidChangeNotebookEditorSelection: Event<NotebookEditorSelectionChangeEvent>
當 notebook 編輯器選取範圍 變更時觸發的 Event。
onDidChangeNotebookEditorVisibleRanges: Event<NotebookEditorVisibleRangesChangeEvent>
當 notebook 編輯器可見範圍 變更時觸發的 Event。
onDidChangeTerminalShellIntegration: Event<TerminalShellIntegrationChangeEvent>
當 shell 整合啟動或其屬性之一在終端機中變更時觸發。
onDidChangeTerminalState: Event<Terminal>
onDidChangeTextEditorOptions: Event<TextEditorOptionsChangeEvent>
當編輯器的選項變更時觸發的 Event。
onDidChangeTextEditorSelection: Event<TextEditorSelectionChangeEvent>
當編輯器中的選取範圍變更時觸發的 Event。
onDidChangeTextEditorViewColumn: Event<TextEditorViewColumnChangeEvent>
當編輯器的檢視欄變更時觸發的 Event。
onDidChangeTextEditorVisibleRanges: Event<TextEditorVisibleRangesChangeEvent>
當編輯器的可見範圍變更時觸發的 Event。
onDidChangeVisibleNotebookEditors: Event<readonly NotebookEditor[]>
當 可見 notebook 編輯器 變更時觸發的 Event。
onDidChangeVisibleTextEditors: Event<readonly TextEditor[]>
onDidChangeWindowState: Event<WindowState>
當目前視窗的焦點或活動狀態變更時觸發的 Event。 事件的值代表視窗是否具有焦點。
onDidCloseTerminal: Event<Terminal>
當終端機被處置時觸發的 Event。
onDidEndTerminalShellExecution: Event<TerminalShellExecutionEndEvent>
這會在終端機命令結束時觸發。 只有在終端機啟用 shell 整合 時,才會觸發此事件。
onDidOpenTerminal: Event<Terminal>
當終端機已建立時觸發的 Event,無論是透過 createTerminal API 或命令。
onDidStartTerminalShellExecution: Event<TerminalShellExecutionStartEvent>
這會在終端機命令啟動時觸發。 只有在終端機啟用 shell 整合 時,才會觸發此事件。
函式
createInputBox(): InputBox
建立 InputBox 以讓使用者輸入一些文字輸入。
請注意,在許多情況下,更方便的 window.showInputBox 更容易使用。 當 window.showInputBox 無法提供所需的彈性時,應使用 window.createInputBox。
createOutputChannel(name: 字串, languageId?: 字串): OutputChannel
使用給定的名稱和語言 ID 建立新的 輸出通道。 如果未提供語言 ID,則會使用 Log 作為預設語言 ID。
您可以從 可見編輯器 或 啟用編輯器 以 文字文件 形式存取可見或啟用的輸出通道,並使用語言 ID 來貢獻語言功能,例如語法色彩標示、程式碼鏡頭等。
參數 | 描述 |
---|---|
name: string | 人性化可讀字串,將用於在 UI 中表示通道。 |
languageId?: 字串 | 與通道關聯的語言識別碼。 |
傳回 | 描述 |
OutputChannel | 一個新的輸出通道。 |
createOutputChannel(name: 字串, options: {log: true}): LogOutputChannel
使用給定的名稱建立新的 記錄輸出通道。
參數 | 描述 |
---|---|
name: string | 人性化可讀字串,將用於在 UI 中表示通道。 |
options: {log: true} | 記錄輸出通道的選項。 |
傳回 | 描述 |
LogOutputChannel | 一個新的記錄輸出通道。 |
createQuickPick<T extends QuickPickItem>(): QuickPick<T>
建立 QuickPick 以讓使用者從 T 類型的項目清單中選取項目。
請注意,在許多情況下,更方便的 window.showQuickPick 更容易使用。 當 window.showQuickPick 無法提供所需的彈性時,應使用 window.createQuickPick。
createStatusBarItem(id: 字串, 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?: 字串, shellPath?: 字串, shellArgs?: 字串 | readonly 字串[]): Terminal
建立具有後端 shell 程序的 Terminal。 如果工作區目錄存在,則終端機的 cwd 將會是工作區目錄。
- 拋出 - 在無法啟動新程序的環境中執行時。
createTerminal(options: TerminalOptions): Terminal
建立具有後端 shell 程序的 Terminal。
- 拋出 - 在無法啟動新程序的環境中執行時。
參數 | 描述 |
---|---|
options: TerminalOptions | 描述新終端機特性的 TerminalOptions 物件。 |
傳回 | 描述 |
Terminal | 一個新的 Terminal。 |
createTerminal(options: ExtensionTerminalOptions): Terminal
建立 Terminal,其中擴充功能控制其輸入和輸出。
參數 | 描述 |
---|---|
options: ExtensionTerminalOptions | 描述新終端機特性的 ExtensionTerminalOptions 物件。 |
傳回 | 描述 |
Terminal | 一個新的 Terminal。 |
createTextEditorDecorationType(options: DecorationRenderOptions): TextEditorDecorationType
建立 TextEditorDecorationType,可用於將裝飾新增至文字編輯器。
參數 | 描述 |
---|---|
options: DecorationRenderOptions | 裝飾類型的呈現選項。 |
傳回 | 描述 |
TextEditorDecorationType | 一個新的裝飾類型實例。 |
createTreeView<T>(viewId: 字串, options: TreeViewOptions<T>): TreeView<T>
為使用擴充功能點 views
貢獻的檢視建立 TreeView。
參數 | 描述 |
---|---|
viewId: 字串 | 使用擴充功能點 |
options: TreeViewOptions<T> | 建立 TreeView 的選項 |
傳回 | 描述 |
TreeView<T> | 一個 TreeView。 |
createWebviewPanel(viewType: 字串, title: 字串, showOptions: ViewColumn | {preserveFocus: boolean, viewColumn: ViewColumn}, options?: WebviewPanelOptions & WebviewOptions): WebviewPanel
建立並顯示新的 webview 面板。
參數 | 描述 |
---|---|
viewType: 字串 | 識別 webview 面板的類型。 |
title: 字串 | 面板的標題。 |
showOptions: ViewColumn | {preserveFocus: boolean, viewColumn: ViewColumn} | 在編輯器中顯示 webview 的位置。 如果設定 preserveFocus,則新的 webview 將不會取得焦點。 |
options?: WebviewPanelOptions & WebviewOptions | 新面板的設定。 |
傳回 | 描述 |
WebviewPanel | 新的 webview 面板。 |
registerCustomEditorProvider(viewType: 字串, provider: CustomTextEditorProvider | CustomReadonlyEditorProvider<CustomDocument> | CustomEditorProvider<CustomDocument>, options?: {supportsMultipleEditorsPerDocument: boolean, webviewOptions: WebviewPanelOptions}): Disposable
為 customEditors
擴充功能點貢獻的 viewType
註冊自訂編輯器提供者。
當自訂編輯器開啟時,會觸發 onCustomEditor:viewType
啟動事件。 您的擴充功能必須註冊 CustomTextEditorProvider、CustomReadonlyEditorProvider、CustomEditorProvider 以作為啟動的一部分。
參數 | 描述 |
---|---|
viewType: 字串 | 自訂編輯器提供者的唯一識別碼。 這應符合 |
provider: CustomTextEditorProvider | CustomReadonlyEditorProvider<CustomDocument> | CustomEditorProvider<CustomDocument> | 解析自訂編輯器的提供者。 |
options?: {supportsMultipleEditorsPerDocument: boolean, webviewOptions: WebviewPanelOptions} | 提供者的選項。 |
傳回 | 描述 |
Disposable | 取消註冊提供者的 Disposable。 |
registerFileDecorationProvider(provider: FileDecorationProvider): Disposable
註冊檔案裝飾提供者。
參數 | 描述 |
---|---|
provider: FileDecorationProvider | |
傳回 | 描述 |
Disposable | 取消註冊提供者的 Disposable。 |
registerTerminalLinkProvider(provider: TerminalLinkProvider<TerminalLink>): Disposable
註冊提供者,以啟用終端機內連結的偵測和處理。
參數 | 描述 |
---|---|
provider: TerminalLinkProvider<TerminalLink> | 提供終端機連結的提供者。 |
傳回 | 描述 |
Disposable | 取消註冊提供者的 Disposable。 |
registerTerminalProfileProvider(id: 字串, provider: TerminalProfileProvider): Disposable
為貢獻的終端機設定檔註冊提供者。
參數 | 描述 |
---|---|
id: string | 貢獻的終端機設定檔的 ID。 |
provider: TerminalProfileProvider | 終端機設定檔提供者。 |
傳回 | 描述 |
Disposable | 取消註冊提供者的 disposable。 |
registerTreeDataProvider<T>(viewId: 字串, treeDataProvider: TreeDataProvider<T>): Disposable
為使用擴充功能點 views
貢獻的檢視註冊 TreeDataProvider。 這可讓您將資料貢獻給 TreeView,並在資料變更時更新。
注意: 若要存取 TreeView 並對其執行操作,請使用 createTreeView。
參數 | 描述 |
---|---|
viewId: 字串 | 使用擴充功能點 |
treeDataProvider: TreeDataProvider<T> | 用於檢視畫面的 TreeDataProvider,提供樹狀結構資料。 |
傳回 | 描述 |
Disposable | 用於取消註冊 TreeDataProvider 的 disposable 物件。 |
registerUriHandler(handler: UriHandler): Disposable
註冊一個 uri 處理常式,用於處理系統範圍的 uri。如果有多個視窗開啟,最上層的視窗會處理該 uri。uri 處理常式的範圍限定於提供它的擴充功能;它只能處理導向至該擴充功能本身的 uri。uri 必須遵守以下規則
- uri 協定必須是
vscode.env.uriScheme
; - uri 授權單位必須是擴充功能 ID (例如
my.extension
); - uri 路徑、查詢和片段部分是任意的。
例如,如果 my.extension
擴充功能註冊了一個 uri 處理常式,則只允許它處理具有前綴 product-name://my.extension
的 uri。
一個擴充功能在其整個啟動生命週期中只能註冊一個 uri 處理常式。
- 注意: 有一個啟動事件
onUri
,當導向至目前擴充功能的 uri 即將被處理時,會觸發該事件。
參數 | 描述 |
---|---|
handler: UriHandler | 要為此擴充功能註冊的 uri 處理常式。 |
傳回 | 描述 |
Disposable | 用於取消註冊處理常式的 disposable 物件。 |
registerWebviewPanelSerializer(viewType: string, serializer: WebviewPanelSerializer<unknown>): Disposable
註冊一個 webview 面板序列化器。
支援還原的擴充功能應該具有 "onWebviewPanel:viewType"
啟動事件,並確保在啟動期間呼叫 registerWebviewPanelSerializer
。
對於給定的 viewType
,一次只能註冊一個序列化器。
參數 | 描述 |
---|---|
viewType: 字串 | 可以序列化的 webview 面板類型。 |
serializer: WebviewPanelSerializer<unknown> | Webview 序列化器。 |
傳回 | 描述 |
Disposable | 用於取消註冊序列化器的 disposable 物件。 |
registerWebviewViewProvider(viewId: string, provider: WebviewViewProvider, options?: {webviewOptions: {retainContextWhenHidden: boolean}}): Disposable
為 webview 檢視畫面註冊新的提供者。
參數 | 描述 |
---|---|
viewId: 字串 | 檢視畫面的唯一 ID。這應該與 package.json 中 |
provider: WebviewViewProvider | webview 檢視畫面的提供者。 |
options?: {webviewOptions: {retainContextWhenHidden: boolean}} | |
傳回 | 描述 |
Disposable | 取消註冊提供者的 Disposable。 |
setStatusBarMessage(text: string, hideAfterTimeout: number): Disposable
設定狀態列訊息。這是更強大的狀態列項目的簡寫。
參數 | 描述 |
---|---|
text: string | 要顯示的訊息,支援狀態列項目中的圖示替換。 |
hideAfterTimeout: number | 訊息將在多少毫秒後處置的逾時時間。 |
傳回 | 描述 |
Disposable | 用於隱藏狀態列訊息的 disposable 物件。 |
setStatusBarMessage(text: string, hideWhenDone: Thenable<any>): Disposable
設定狀態列訊息。這是更強大的狀態列項目的簡寫。
參數 | 描述 |
---|---|
text: string | 要顯示的訊息,支援狀態列項目中的圖示替換。 |
hideWhenDone: Thenable<any> | 當 Thenable 完成 (解析或拒絕) 時,訊息將被處置。 |
傳回 | 描述 |
Disposable | 用於隱藏狀態列訊息的 disposable 物件。 |
setStatusBarMessage(text: string): Disposable
設定狀態列訊息。這是更強大的狀態列項目的簡寫。
注意 狀態列訊息會堆疊,且在不再使用時必須處置。
參數 | 描述 |
---|---|
text: string | 要顯示的訊息,支援狀態列項目中的圖示替換。 |
傳回 | 描述 |
Disposable | 用於隱藏狀態列訊息的 disposable 物件。 |
showErrorMessage<T extends string>(message: string, ...items: T[]): Thenable<T | undefined>
顯示錯誤訊息。
參數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
...items: T[] | 將在訊息中呈現為動作的一組項目。 |
傳回 | 描述 |
Thenable<T | undefined> | 一個 thenable,解析為選取的項目,或在被關閉時解析為 |
showErrorMessage<T extends string>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
顯示錯誤訊息。
參數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
options: MessageOptions | 設定訊息的行為。 |
...items: T[] | 將在訊息中呈現為動作的一組項目。 |
傳回 | 描述 |
Thenable<T | undefined> | 一個 thenable,解析為選取的項目,或在被關閉時解析為 |
showErrorMessage<T extends MessageItem>(message: string, ...items: T[]): Thenable<T | undefined>
顯示錯誤訊息。
參數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
...items: T[] | 將在訊息中呈現為動作的一組項目。 |
傳回 | 描述 |
Thenable<T | undefined> | 一個 thenable,解析為選取的項目,或在被關閉時解析為 |
showErrorMessage<T extends MessageItem>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
顯示錯誤訊息。
參數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
options: MessageOptions | 設定訊息的行為。 |
...items: T[] | 將在訊息中呈現為動作的一組項目。 |
傳回 | 描述 |
Thenable<T | undefined> | 一個 thenable,解析為選取的項目,或在被關閉時解析為 |
showInformationMessage<T extends string>(message: string, ...items: T[]): Thenable<T | undefined>
向使用者顯示資訊訊息。選擇性地提供一個項目陣列,這些項目將呈現為可點擊的按鈕。
參數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
...items: T[] | 將在訊息中呈現為動作的一組項目。 |
傳回 | 描述 |
Thenable<T | undefined> | 一個 thenable,解析為選取的項目,或在被關閉時解析為 |
showInformationMessage<T extends string>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
向使用者顯示資訊訊息。選擇性地提供一個項目陣列,這些項目將呈現為可點擊的按鈕。
參數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
options: MessageOptions | 設定訊息的行為。 |
...items: T[] | 將在訊息中呈現為動作的一組項目。 |
傳回 | 描述 |
Thenable<T | undefined> | 一個 thenable,解析為選取的項目,或在被關閉時解析為 |
showInformationMessage<T extends MessageItem>(message: string, ...items: T[]): Thenable<T | undefined>
顯示資訊訊息。
參數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
...items: T[] | 將在訊息中呈現為動作的一組項目。 |
傳回 | 描述 |
Thenable<T | undefined> | 一個 thenable,解析為選取的項目,或在被關閉時解析為 |
showInformationMessage<T extends MessageItem>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
顯示資訊訊息。
參數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
options: MessageOptions | 設定訊息的行為。 |
...items: T[] | 將在訊息中呈現為動作的一組項目。 |
傳回 | 描述 |
Thenable<T | undefined> | 一個 thenable,解析為選取的項目,或在被關閉時解析為 |
showInputBox(options?: InputBoxOptions, token?: CancellationToken): Thenable<string | undefined>
開啟輸入框以詢問使用者輸入。
如果輸入框被取消 (例如按下 ESC 鍵),則傳回值將為 undefined
。否則,傳回值將是使用者輸入的字串,如果使用者未輸入任何內容但按一下 [確定] 關閉輸入框,則傳回空字串。
參數 | 描述 |
---|---|
options?: InputBoxOptions | 設定輸入框的行為。 |
token?: CancellationToken | 可用於發出取消訊號的 token。 |
傳回 | 描述 |
Thenable<string | undefined> | 一個 promise,解析為使用者提供的字串,或在關閉時解析為 |
showNotebookDocument(document: NotebookDocument, options?: NotebookDocumentShowOptions): Thenable<NotebookEditor>
在 notebook 編輯器中顯示指定的 NotebookDocument。
參數 | 描述 |
---|---|
document: NotebookDocument | 要顯示的文字文件。 |
options?: NotebookDocumentShowOptions | 編輯器選項,用於設定顯示 notebook 編輯器的行為。 |
傳回 | 描述 |
Thenable<NotebookEditor> | 一個 promise,解析為 notebook 編輯器。 |
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 | 可用於發出取消訊號的 token。 |
傳回 | 描述 |
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 | 可用於發出取消訊號的 token。 |
傳回 | 描述 |
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 | 可用於發出取消訊號的 token。 |
傳回 | 描述 |
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 | 可用於發出取消訊號的 token。 |
傳回 | 描述 |
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> | 一個 thenable,解析為選取的項目,或在被關閉時解析為 |
showWarningMessage<T extends string>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
顯示警告訊息。
參數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
options: MessageOptions | 設定訊息的行為。 |
...items: T[] | 將在訊息中呈現為動作的一組項目。 |
傳回 | 描述 |
Thenable<T | undefined> | 一個 thenable,解析為選取的項目,或在被關閉時解析為 |
showWarningMessage<T extends MessageItem>(message: string, ...items: T[]): Thenable<T | undefined>
顯示警告訊息。
參數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
...items: T[] | 將在訊息中呈現為動作的一組項目。 |
傳回 | 描述 |
Thenable<T | undefined> | 一個 thenable,解析為選取的項目,或在被關閉時解析為 |
showWarningMessage<T extends MessageItem>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
顯示警告訊息。
參數 | 描述 |
---|---|
message: string | 要顯示的訊息。 |
options: MessageOptions | 設定訊息的行為。 |
...items: T[] | 將在訊息中呈現為動作的一組項目。 |
傳回 | 描述 |
Thenable<T | 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> | task 回呼函式傳回的 thenable。 |
withScmProgress<R>(task: (progress: Progress<number>) => Thenable<R>): Thenable<R>
在執行給定的回呼函式且其傳回的 promise 尚未解析或拒絕時,在原始檔控制檢視區中顯示進度。
- 已過時 - 請改用
withProgress
。
工作區
用於處理目前工作區的命名空間。工作區是在編輯器視窗 (執行個體) 中開啟的一個或多個資料夾的集合。
也可以在沒有工作區的情況下開啟編輯器。例如,當您從平台的 [檔案] 功能表選取檔案來開啟新的編輯器視窗時,您將不會在工作區內。在此模式下,編輯器的某些功能會減少,但您仍然可以開啟文字檔並進行編輯。
請參閱 https://vscode.dev.org.tw/docs/editor/workspaces 以取得有關工作區概念的詳細資訊。
工作區提供支援來接聽 fs 事件,以及尋找檔案。兩者都執行良好,且在編輯器程序外部執行,因此應始終使用它們來取代 nodejs 等效項目。
變數
fs: FileSystem
一個 檔案系統 執行個體,允許與本機和遠端檔案互動,例如 vscode.workspace.fs.readDirectory(someUri)
允許擷取目錄的所有項目,或 vscode.workspace.fs.stat(anotherUri)
傳回檔案的中繼資料。
當為 true 時,使用者已明確信任工作區的內容。
工作區的名稱。當沒有開啟任何工作區時為 undefined
。
請參閱 https://vscode.dev.org.tw/docs/editor/workspaces 以取得有關工作區概念的詳細資訊。
notebookDocuments: readonly NotebookDocument[]
編輯器目前已知的所有 notebook 文件。
workspaceFolders 第一個項目的 uri 為 string
。如果沒有第一個項目,則為 undefined
。
請參閱 https://vscode.dev.org.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.dev.org.tw/docs/editor/workspaces 以取得有關工作區概念的詳細資訊。
注意:不建議使用 workspace.workspaceFile
將組態資料寫入檔案。您可以為此目的使用 workspace.getConfiguration().update()
,這在單一資料夾開啟以及未命名或已儲存的工作區中都適用。
workspaceFolders: readonly WorkspaceFolder[] | undefined
在編輯器中開啟的工作區資料夾 (0-N) 清單。當沒有開啟任何工作區時為 undefined
。
請參閱 https://vscode.dev.org.tw/docs/editor/workspaces 以取得有關工作區的詳細資訊。
事件
onDidChangeConfiguration: Event<ConfigurationChangeEvent>
當 組態 變更時發出的事件。
onDidChangeNotebookDocument: Event<NotebookDocumentChangeEvent>
當 notebook 變更時發出的事件。
onDidChangeTextDocument: Event<TextDocumentChangeEvent>
onDidChangeWorkspaceFolders: Event<WorkspaceFoldersChangeEvent>
當新增或移除工作區資料夾時發出的事件。
注意:如果新增、移除或變更第一個工作區資料夾,則不會觸發此事件,因為在這種情況下,目前執行的擴充功能 (包括接聽此事件的擴充功能) 將會終止並重新啟動,以便 (已過時的) rootPath
屬性更新為指向第一個工作區資料夾。
onDidCloseNotebookDocument: Event<NotebookDocument>
當 notebook 處置時發出的事件。
注意 1: 無法保證在編輯器索引標籤關閉時會觸發此事件。
注意 2: notebook 可以開啟但未在編輯器中顯示,這表示此事件可能會針對未在編輯器中顯示的 notebook 觸發。
onDidCloseTextDocument: Event<TextDocument>
當 文字文件 處置或文字文件的語言 ID 已變更時發出的事件。
注意 1: 無法保證在編輯器索引標籤關閉時會觸發此事件,請使用 onDidChangeVisibleTextEditors 事件來瞭解編輯器何時變更。
注意 2: 文件可以開啟但未在編輯器中顯示,這表示此事件可能會針對未在編輯器中顯示的文件觸發。
onDidCreateFiles: Event<FileCreateEvent>
當檔案已建立時發出的事件。
Note: 此事件由使用者手勢觸發,例如從檔案總管建立檔案,或從 workspace.applyEdit API 觸發,但當檔案在磁碟上變更時,不會觸發此事件,例如由另一個應用程式觸發,或使用 workspace.fs API 時。
onDidDeleteFiles: Event<FileDeleteEvent>
當檔案被刪除時發出的事件。
Note 1: 此事件由使用者手勢觸發,例如從檔案總管刪除檔案,或從 workspace.applyEdit API 觸發,但當檔案在磁碟上變更時,不會觸發此事件,例如由另一個應用程式觸發,或使用 workspace.fs API 時。
Note 2: 當刪除包含子資料夾的資料夾時,只會觸發一個事件。
onDidGrantWorkspaceTrust: Event<void>
當目前工作區已授與信任時觸發的事件。
onDidOpenNotebookDocument: Event<NotebookDocument>
當 notebook 開啟時發出的事件。
onDidOpenTextDocument: Event<TextDocument>
onDidRenameFiles: Event<FileRenameEvent>
當檔案被重新命名時發出的事件。
Note 1: 此事件由使用者手勢觸發,例如從檔案總管重新命名檔案,以及從 workspace.applyEdit API 觸發,但當檔案在磁碟上變更時,不會觸發此事件,例如由另一個應用程式觸發,或使用 workspace.fs API 時。
Note 2: 當重新命名包含子資料夾的資料夾時,只會觸發一個事件。
onDidSaveNotebookDocument: Event<NotebookDocument>
當 notebook 儲存時發出的事件。
onDidSaveTextDocument: Event<TextDocument>
當 文字文件 儲存到磁碟時發出的事件。
onWillCreateFiles: Event<FileWillCreateEvent>
當檔案正在建立時發出的事件。
Note 1: 此事件由使用者手勢觸發,例如從檔案總管建立檔案,或從 workspace.applyEdit API 觸發。當檔案在磁碟上變更時,不會觸發此事件,例如由另一個應用程式觸發,或使用 workspace.fs API 時。
Note 2: 當此事件發出時,無法套用對正在建立的檔案的編輯。
onWillDeleteFiles: Event<FileWillDeleteEvent>
當檔案正在刪除時發出的事件。
Note 1: 此事件由使用者手勢觸發,例如從檔案總管刪除檔案,或從 workspace.applyEdit API 觸發,但當檔案在磁碟上變更時,不會觸發此事件,例如由另一個應用程式觸發,或使用 workspace.fs API 時。
Note 2: 當刪除包含子資料夾的資料夾時,只會觸發一個事件。
onWillRenameFiles: Event<FileWillRenameEvent>
當檔案正在重新命名時發出的事件。
Note 1: 此事件由使用者手勢觸發,例如從檔案總管重新命名檔案,以及從 workspace.applyEdit API 觸發,但當檔案在磁碟上變更時,不會觸發此事件,例如由另一個應用程式觸發,或使用 workspace.fs API 時。
Note 2: 當重新命名包含子資料夾的資料夾時,只會觸發一個事件。
onWillSaveNotebookDocument: Event<NotebookDocumentWillSaveEvent>
當 notebook 文件 即將儲存到磁碟時發出的事件。
Note 1: 訂閱者可以透過註冊非同步工作來延遲儲存。為了資料完整性,編輯器可能會在不觸發此事件的情況下儲存。例如,在關閉且有未儲存檔案時。
Note 2: 訂閱者會依序呼叫,他們可以透過註冊非同步工作來 延遲 儲存。防止行為異常的監聽器機制如下
- 所有監聽器共用一個整體時間預算,如果預算耗盡,則不再呼叫其他監聽器
- 長時間執行或頻繁產生錯誤的監聽器將不再被呼叫
目前的閾值為整體時間預算 1.5 秒,而監聽器在被忽略之前可能會發生 3 次行為異常。
onWillSaveTextDocument: Event<TextDocumentWillSaveEvent>
函式
applyEdit(edit: WorkspaceEdit, metadata?: WorkspaceEditMetadata): Thenable<boolean>
根據給定的 工作區編輯,對一個或多個資源進行變更,或建立、刪除和重新命名資源。
工作區編輯的所有變更都會按照新增的順序套用。如果多個文字插入在相同位置,則這些字串會以「插入」的順序出現在結果文字中,除非它們與資源編輯交錯。無效的順序,例如「刪除檔案 a」->「在檔案 a 中插入文字」會導致操作失敗。
當套用僅包含文字編輯的工作區編輯時,會使用「全有或全無」策略。當單一編輯失敗時,包含資源建立或刪除的工作區編輯會中止操作,例如,不會嘗試連續編輯。
參數 | 描述 |
---|---|
edit: WorkspaceEdit | 工作區編輯。 |
metadata?: WorkspaceEditMetadata | 編輯的選用 metadata。 |
傳回 | 描述 |
Thenable<boolean> | 一個 promise,當編輯可以套用時解析。 |
asRelativePath(pathOrUri: string | Uri, includeWorkspaceFolder?: boolean): string
傳回相對於工作區資料夾或多個資料夾的路徑。
當沒有 工作區資料夾 或路徑未包含在其中時,會傳回輸入值。
createFileSystemWatcher(globPattern: GlobPattern, ignoreCreateEvents?: boolean, ignoreChangeEvents?: boolean, ignoreDeleteEvents?: boolean): FileSystemWatcher
建立檔案系統監看器,該監看器會根據提供的參數在檔案事件 (建立、變更、刪除) 時收到通知。
預設情況下,所有開啟的 工作區資料夾 都會被遞迴監看檔案變更。
可以透過提供具有要監看之 base
路徑的 RelativePattern 來新增其他路徑以進行檔案監看。如果路徑是資料夾且 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 | 新的檔案系統監看器執行個體。不再需要時必須處置。 |
findFiles(include: GlobPattern, exclude?: GlobPattern, maxResults?: number, token?: CancellationToken): Thenable<Uri[]>
參數 | 描述 |
---|---|
include: GlobPattern | |
exclude?: GlobPattern | 一個 glob 模式,用於定義要排除的檔案和資料夾。glob 模式將會與相對於其工作區的結果相符的檔案路徑進行比對。當為 |
maxResults?: number | 結果的上限。 |
token?: CancellationToken | 可用於向基礎搜尋引擎發出取消訊號的 token。 |
傳回 | 描述 |
Thenable<Uri[]> | 一個 promise,解析為資源識別碼陣列。如果沒有開啟 工作區資料夾,將不會傳回任何結果。 |
getConfiguration(section?: string, scope?: ConfigurationScope): WorkspaceConfiguration
取得工作區組態物件。
當提供區段識別碼時,只會傳回組態的該部分。區段識別碼中的點會被解譯為子存取,例如 { 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>
開啟 notebook。如果此 notebook 已 載入,將會提早傳回。否則,notebook 會載入,並且 onDidOpenNotebookDocument 事件會觸發。
注意,傳回的 notebook 的生命週期由編輯器擁有,而不是由擴充功能擁有。這表示 onDidCloseNotebookDocument 事件可能會在之後的任何時間發生。
注意,開啟 notebook 不會顯示 notebook 編輯器。此函數只會傳回 notebook 文件,該文件可以在 notebook 編輯器中顯示,但也可以用於其他用途。
參數 | 描述 |
---|---|
uri: Uri | 要開啟的資源。 |
傳回 | 描述 |
Thenable<NotebookDocument> | 解析為 notebook 的 promise |
openNotebookDocument(notebookType: string, content?: NotebookData): Thenable<NotebookDocument>
開啟未命名的 notebook。當要儲存文件時,編輯器會提示使用者輸入檔案路徑。
參數 | 描述 |
---|---|
notebookType: string | 應使用的 notebook 類型。 |
content?: NotebookData | notebook 的初始內容。 |
傳回 | 描述 |
Thenable<NotebookDocument> | 解析為 notebook 的 promise。 |
openTextDocument(uri: Uri): Thenable<TextDocument>
開啟文件。如果此文件已開啟,將會提早傳回。否則,文件會載入,並且 didOpen 事件會觸發。
file
-scheme:開啟磁碟上的檔案 (openTextDocument(Uri.file(path))
)。如果檔案不存在或無法載入,將會被拒絕。untitled
-scheme:開啟具有關聯路徑的空白未命名檔案 (openTextDocument(Uri.file(path).with({ scheme: 'untitled' }))
)。語言將會從檔案名稱衍生。- 對於所有其他 scheme,將會諮詢貢獻的 文字文件內容提供者 和 檔案系統提供者。
注意,傳回的文件的生命週期由編輯器擁有,而不是由擴充功能擁有。這表示 onDidClose 事件可能會在開啟之後的任何時間發生。
參數 | 描述 |
---|---|
uri: Uri | 識別要開啟的資源。 |
傳回 | 描述 |
Thenable<TextDocument> | 解析為 文件 的 promise。 |
openTextDocument(path: string): Thenable<TextDocument>
openTextDocument(Uri.file(path))
的簡寫。
參數 | 描述 |
---|---|
path: string | 磁碟上檔案的路徑。 |
傳回 | 描述 |
Thenable<TextDocument> | 解析為 文件 的 promise。 |
openTextDocument(options?: {content: string, language: string}): Thenable<TextDocument>
開啟未命名的文字文件。當要儲存文件時,編輯器會提示使用者輸入檔案路徑。options
參數允許指定文件的語言和/或內容。
參數 | 描述 |
---|---|
options?: {content: string, language: string} | 控制文件建立方式的選項。 |
傳回 | 描述 |
Thenable<TextDocument> | 解析為 文件 的 promise。 |
registerFileSystemProvider(scheme: string, provider: FileSystemProvider, options?: {isCaseSensitive: boolean, isReadonly: boolean | MarkdownString}): Disposable
為給定的 scheme 註冊檔案系統提供者,例如 ftp
。
每個 scheme 只能有一個提供者,當 scheme 已被另一個提供者宣告或保留時,會擲回錯誤。
參數 | 描述 |
---|---|
scheme: string | 提供者註冊的 URI-scheme。 |
provider: FileSystemProvider | 檔案系統提供者。 |
options?: {isCaseSensitive: boolean, isReadonly: boolean | MarkdownString} | 關於提供者的不可變 metadata。 |
傳回 | 描述 |
Disposable | 處置時會取消註冊此提供者的 Disposable。 |
registerNotebookSerializer(notebookType: string, serializer: NotebookSerializer, options?: NotebookDocumentContentOptions): Disposable
註冊 notebook 序列化程式。
notebook 序列化程式必須透過 notebooks
擴充點貢獻。開啟 notebook 檔案時,編輯器將會傳送 onNotebook:<notebookType>
啟用事件,而擴充功能必須傳回其序列化程式。
參數 | 描述 |
---|---|
notebookType: string | 一個 notebook。 |
serializer: NotebookSerializer | notebook 序列化程式。 |
options?: NotebookDocumentContentOptions | 選用的內容選項,用於定義應持久保存 notebook 的哪些部分 |
傳回 | 描述 |
Disposable | 一個 Disposable,用於在處置時取消註冊此序列化程式。 |
registerTaskProvider(type: string, provider: TaskProvider<Task>): Disposable
註冊工作提供者。
- 已棄用 - 請改為使用
tasks
命名空間上的對應函數
參數 | 描述 |
---|---|
type: 字串 | 此提供者註冊的工作種類類型。 |
provider: TaskProvider<Task> | 一個工作提供者。 |
傳回 | 描述 |
Disposable | 處置時會取消註冊此提供者的 Disposable。 |
registerTextDocumentContentProvider(scheme: string, provider: TextDocumentContentProvider): Disposable
註冊文字文件內容提供者。
每個 scheme 只能註冊一個提供者。
參數 | 描述 |
---|---|
scheme: string | 要註冊的 URI-scheme。 |
provider: TextDocumentContentProvider | 內容提供者。 |
傳回 | 描述 |
Disposable | 處置時會取消註冊此提供者的 Disposable。 |
save(uri: Uri): Thenable<Uri | undefined>
儲存由給定資源識別的編輯器,並傳回結果資源,如果儲存不成功或找不到具有給定資源的編輯器,則傳回 undefined
。
注意,必須開啟具有提供的資源的編輯器才能儲存。
saveAll(includeUntitled?: boolean): Thenable<boolean>
儲存所有未儲存的檔案。
參數 | 描述 |
---|---|
includeUntitled?: boolean | 也儲存在此工作階段期間建立的檔案。 |
傳回 | 描述 |
Thenable<boolean> | 一個 promise,當檔案已儲存時解析。對於任何儲存失敗的檔案,將傳回 |
saveAs(uri: Uri): Thenable<Uri | undefined>
將由給定資源識別的編輯器儲存到使用者提供的新檔案名稱,並傳回結果資源,如果儲存不成功或已取消,或找不到具有給定資源的編輯器,則傳回 undefined
。
注意,必須開啟具有提供的資源的編輯器才能另存為。
updateWorkspaceFolders(start: number, deleteCount: number, ...workspaceFoldersToAdd: Array<{name: string, uri: Uri}>): boolean
此方法會在 vscode.workspace.workspaceFolders
陣列中,從索引 start
開始,以選用的 workspaceFoldersToAdd
集合取代 deleteCount
個 工作區資料夾。此「splice」行為可用於在單一操作中新增、移除和變更工作區資料夾。
注意: 在某些情況下,呼叫此方法可能會導致目前正在執行的擴充功能 (包括呼叫此方法的擴充功能) 終止並重新啟動。例如,當新增、移除或變更第一個工作區資料夾時,(已棄用的) rootPath
屬性會更新為指向第一個工作區資料夾。另一種情況是從空白或單一資料夾工作區轉換為多資料夾工作區 (另請參閱:https://vscode.dev.org.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 事件。
如果登入失敗,則應傳回 rejected promise。
如果提供者已指定它不支援多個帳戶,則如果已經存在符合這些範圍的現有工作階段,則永遠不應呼叫此方法。
參數 | 描述 |
---|---|
scopes: readonly string[] | 新工作階段應使用建立的範圍、權限清單。 |
options: AuthenticationProviderSessionOptions | 用於建立工作階段的其他選項。 |
傳回 | 描述 |
Thenable<AuthenticationSession> | 解析為驗證工作階段的 promise。 |
getSessions(scopes: readonly string[], options: AuthenticationProviderSessionOptions): Thenable<AuthenticationSession[]>
取得工作階段清單。
參數 | 描述 |
---|---|
scopes: readonly string[] | 選用的範圍清單。如果提供,則傳回的工作階段應符合這些權限,否則應傳回所有工作階段。 |
options: AuthenticationProviderSessionOptions | 用於取得工作階段的其他選項。 |
傳回 | 描述 |
Thenable<AuthenticationSession[]> | 解析為驗證工作階段陣列的 promise。 |
removeSession(sessionId: string): Thenable<void>
移除與工作階段 ID 對應的工作階段。
如果移除成功,則應觸發 onDidChangeSessions 事件。
如果無法移除工作階段,提供者應拒絕並顯示錯誤訊息。
參數 | 描述 |
---|---|
sessionId: string | 要移除的工作階段 ID。 |
傳回 | 描述 |
Thenable<void> |
AuthenticationProviderAuthenticationSessionsChangeEvent
當 AuthenticationSession 新增、移除或變更時觸發的 Event。
屬性
added: readonly AuthenticationSession[]
changed: readonly AuthenticationSession[]
AuthenticationProvider 的已變更 AuthenticationSession。當其資料(不包括 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 | 命中中斷點時要顯示的記錄訊息 |
傳回 | 描述 |
Breakpoint |
屬性
條件式中斷點的選用運算式。
是否啟用中斷點。
控制忽略多少次中斷點命中的選用運算式。
中斷點的唯一 ID。
命中此中斷點時記錄的選用訊息。{} 內的嵌入式運算式由偵錯配接器內插。
BreakpointsChangeEvent
描述 breakpoints 集合變更的事件。
屬性
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
應該用於表示操作取消的錯誤類型。
此類型可用於回應 cancellation token 已取消或在操作被該操作的執行器取消時。
建構函式
new CancellationError(): CancellationError
建立新的取消錯誤。
參數 | 描述 |
---|---|
傳回 | 描述 |
CancellationError |
CancellationToken
取消權杖會傳遞至非同步或長時間執行的操作,以請求取消,例如因為使用者繼續輸入而取消完成項目的請求。
若要取得 CancellationToken
的執行個體,請使用 CancellationTokenSource。
屬性
isCancellationRequested: boolean
當權杖已取消時為 true
,否則為 false
。
onCancellationRequested: Event<any>
取消時觸發的 Event。
CancellationTokenSource
取消來源建立和控制 cancellation token。
建構函式
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
對聊天參與者的請求。
屬性
為此請求選取的 [聊天命令 command](#ChatCommand command) 的名稱。
model: LanguageModelChat
這是目前在 UI 中選取的模型。擴充功能可以使用此模型,或使用 lm.selectChatModels 來選取另一個模型。請勿將其保留超過請求的生命週期。
使用者輸入的提示。
關於此請求中使用的參考資訊儲存在 ChatRequest.references 中。
注意:參與者的 [ChatParticipant.name name](#ChatParticipant.name name) 和 [ChatCommand.name command](#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
表示聊天記錄中的使用者請求。
屬性
為此請求選取的 [聊天命令 command](#ChatCommand command) 的名稱。
此請求導向的聊天參與者的 ID。
使用者輸入的提示。
關於此請求中使用的參考資訊儲存在 ChatRequestTurn.references 中。
注意:參與者的 [ChatParticipant.name name](#ChatParticipant.name name) 和 [ChatCommand.name command](#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
程式碼動作表示可以在程式碼中執行的變更,例如,修正問題或重構程式碼。
CodeAction
必須設定 edit 和/或 command。如果兩者皆有提供,會先套用 edit
,然後再執行 command。
建構函式
new CodeAction(title: string, kind?: CodeActionKind): CodeAction
參數 | 描述 |
---|---|
title: 字串 | 程式碼動作的標題。 |
kind?: CodeActionKind | 程式碼動作的種類。 |
傳回 | 描述 |
CodeAction |
屬性
command?: Command
此程式碼動作執行的 Command。
如果此命令拋出例外,編輯器會在目前游標位置的編輯器中向使用者顯示例外訊息。
diagnostics?: Diagnostic[]
此程式碼動作解決的 Diagnostics。
標記程式碼動作目前無法套用。
參數 | 描述 |
---|---|
reason: string | 人類可讀的描述,說明程式碼動作目前停用的原因。 這會顯示在程式碼動作 UI 中。 |
edit?: WorkspaceEdit
此程式碼動作執行的 workspace edit。
將此標記為慣用動作。慣用動作由 auto fix
命令使用,並且可以透過快速鍵繫結為目標。
如果快速修正能適當地解決根本錯誤,則應標記為慣用。如果重構是採取動作最合理的選擇,則應標記為慣用。
kind?: CodeActionKind
Kind 的程式碼動作。
用於篩選程式碼動作。
此程式碼動作的簡短、人類可讀標題。
CodeActionContext
包含有關執行 程式碼動作 的內容的其他診斷資訊。
屬性
diagnostics: readonly Diagnostic[]
診斷陣列。
only: CodeActionKind
要求傳回的動作種類。
非此種類的動作會在 lightbulb 顯示之前篩選掉。
triggerKind: CodeActionTriggerKind
要求程式碼動作的原因。
CodeActionKind
程式碼動作的種類。
種類是以 .
分隔的識別碼階層式清單,例如 "refactor.extract.function"
。
編輯器會將程式碼動作種類用於 UI 元素,例如重構內容選單。使用者也可以使用 editor.action.codeAction
命令觸發特定種類的程式碼動作。
靜態
Empty: CodeActionKind
空的種類。
Notebook: CodeActionKind
適用於整個 Notebook 範圍的所有程式碼動作的基本種類。使用此種類的 CodeActionKinds 應一律以 notebook.
開頭。
這需要為其建立新的 CodeActions 並透過擴充功能貢獻。預先存在的種類不能僅僅將新的 notebook.
字首新增至其中,因為此功能對於完整的 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
來源程式碼動作適用於整個檔案。必須明確要求它們,且不會顯示在一般的 lightbulb 選單中。來源動作可以使用 editor.codeActionsOnSave
在儲存時執行,也會顯示在 source
內容選單中。
SourceFixAll: CodeActionKind
自動修正來源動作的基本種類:source.fixAll
。
全部修正動作會自動修正具有明確修正且不需要使用者輸入的錯誤。它們不應隱藏錯誤或執行不安全的修正,例如產生新的類型或類別。
SourceOrganizeImports: CodeActionKind
組織匯入來源動作的基本種類:source.organizeImports
。
建構函式
new CodeActionKind(value: string): CodeActionKind
私有建構函式,使用靜態 CodeActionKind.XYZ
從現有的程式碼動作種類衍生。
參數 | 描述 |
---|---|
value: string | 種類的值,例如 |
傳回 | 描述 |
CodeActionKind |
屬性
種類的字串值,例如 "refactor.extract.function"
。
方法
append(parts: string): CodeActionKind
透過將更具體的選取器附加到目前的種類來建立新的種類。
不會修改目前的種類。
參數 | 描述 |
---|---|
parts: string | |
傳回 | 描述 |
CodeActionKind |
contains(other: CodeActionKind): boolean
檢查 other
是否為此 CodeActionKind
的子種類。
例如,種類 "refactor.extract"
包含 "refactor.extract"
和 "refactor.extract.function"
,但不包含 "unicorn.refactor.extract"
或 "refactor.extractAll"
或 refactor
。
參數 | 描述 |
---|---|
other: CodeActionKind | 要檢查的種類。 |
傳回 | 描述 |
boolean |
intersects(other: CodeActionKind): boolean
檢查此程式碼動作種類是否與 other
相交。
例如,種類 "refactor.extract"
與 refactor
、"refactor.extract"
和 "refactor.extract.function"
相交,但不與 "unicorn.refactor.extract"
或 "refactor.extractAll"
相交。
參數 | 描述 |
---|---|
other: CodeActionKind | 要檢查的種類。 |
傳回 | 描述 |
boolean |
CodeActionProvider<T>
為程式碼提供內容動作。程式碼動作通常會修正問題或美化/重構程式碼。
程式碼動作會透過幾種不同的方式呈現給使用者
方法
provideCodeActions(document: TextDocument, range: Range | Selection, context: CodeActionContext, token: CancellationToken): ProviderResult<Array<Command | T>>
取得文件中給定範圍的程式碼動作。
僅傳回與使用者要求範圍相關的程式碼動作。同時請記住傳回的程式碼動作將如何在 UI 中顯示。例如,lightbulb 小工具和 Refactor
命令會將傳回的程式碼動作顯示為清單,因此請勿傳回大量會讓使用者感到不知所措的程式碼動作。
參數 | 描述 |
---|---|
document: TextDocument | 叫用命令的文件。 |
range: Range | Selection | 叫用命令的選取器或範圍。如果動作是在目前使用中的編輯器中要求,則這將一律為 selection。 |
context: CodeActionContext | 提供有關要求哪些程式碼動作的其他資訊。您可以使用此資訊來查看編輯器要求哪些特定類型的程式碼動作,以便傳回更相關的動作,並避免傳回編輯器將捨棄的不相關程式碼動作。 |
token: CancellationToken | 取消權杖。 |
傳回 | 描述 |
ProviderResult<Array<Command | T>> | 程式碼動作陣列,例如快速修正或重構。缺少結果可以透過傳回 基於舊版原因,我們也支援傳回 |
resolveCodeAction(codeAction: T, token: CancellationToken): ProviderResult<T>
給定程式碼動作,填入其 edit 屬性。對所有其他屬性 (例如標題) 的變更都會遭到忽略。具有 edit 的程式碼動作將不會被解析。
注意:傳回命令而非程式碼動作的程式碼動作提供者無法成功實作此函式。傳回命令已被取代,應改為傳回程式碼動作。
參數 | 描述 |
---|---|
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
程式碼鏡頭代表應與原始文字一起顯示的 Command,例如參考次數、執行測試的方式等等。
當沒有與程式碼鏡頭相關聯的命令時,程式碼鏡頭會未解析。基於效能考量,程式碼鏡頭的建立和解析應分為兩個階段完成。
另請參閱
建構函式
new CodeLens(range: Range, command?: Command): CodeLens
屬性
command?: Command
此程式碼鏡頭代表的命令。
當有相關聯的命令時為 true
。
range: Range
此程式碼鏡頭有效的範圍。應僅跨越單行。
CodeLensProvider<T>
程式碼鏡頭提供者會將 commands 新增至原始文字。命令將顯示為原始文字之間專用的水平線。
事件
onDidChangeCodeLenses?: Event<void>
選用事件,用於發出此提供者的程式碼鏡頭已變更的訊號。
方法
provideCodeLenses(document: TextDocument, token: CancellationToken): ProviderResult<T[]>
參數 | 描述 |
---|---|
document: TextDocument | 叫用命令的文件。 |
token: CancellationToken | 取消權杖。 |
傳回 | 描述 |
ProviderResult<T[]> | 程式碼鏡頭陣列或可解析為此陣列的 thenable。缺少結果可以透過傳回 |
resolveCodeLens(codeLens: T, token: CancellationToken): ProviderResult<T>
將針對每個可見的程式碼鏡頭呼叫此函式,通常在捲動之後以及呼叫 compute-lenses 之後。
參數 | 描述 |
---|---|
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 元件。 |
傳回 | 描述 |
Color |
屬性
此色彩的 Alpha 元件,範圍為 [0-1]
。
此色彩的藍色元件,範圍為 [0-1]
。
此色彩的綠色元件,範圍為 [0-1]
。
此色彩的紅色元件,範圍為 [0-1]
。
ColorInformation
表示文件中色彩範圍。
建構函式
new ColorInformation(range: Range, color: Color): ColorInformation
建立新的色彩範圍。
參數 | 描述 |
---|---|
range: Range | 色彩顯示所在的範圍。不得為空。 |
color: Color | 色彩的值。 |
傳回 | 描述 |
ColorInformation |
屬性
color: Color
此色彩範圍的實際色彩值。
range: Range
文件中此色彩顯示所在的範圍。
ColorPresentation
色彩簡報物件描述應如何以文字表示 Color,以及從原始程式碼參考它所需的編輯。
對於某些語言,一種色彩可以有多種簡報方式,例如 css 可以使用常數 Red
、十六進位值 #ff0000
或 rgba 和 hsla 形式來表示紅色。在 csharp 中,則適用其他表示方式,例如 System.Drawing.Color.Red
。
建構函式
new ColorPresentation(label: string): ColorPresentation
建立新的色彩簡報。
參數 | 描述 |
---|---|
label: string | 此色彩簡報的標籤。 |
傳回 | 描述 |
ColorPresentation |
屬性
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
。
描述 Comment 的選用標籤。如果存在,標籤將在 authorName 旁邊呈現。
mode: CommentMode
註解的 Comment mode
reactions?: CommentReaction[]
Comment 的選用反應
將顯示在註解中的選用時間戳記。日期將根據使用者的地區設定和設定來格式化。
CommentAuthorInformation
Comment 的作者資訊
屬性
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
建立註解執行緒。註解執行緒將會在可見的文字編輯器中顯示 (如果資源符合),並在建立後顯示於「註解」面板中。
參數 | 描述 |
---|---|
uri: 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
區塊註解字元組,例如 /* 區塊註解 */
行註解符號,例如 // 這是一行註解
CommentThread
代表文件中特定範圍對話的 註解 集合。
屬性
執行緒是否支援回覆。預設為 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
。
描述 CommentThread 的選用性易讀標籤
range: Range
註解執行緒在文件中所在範圍。執行緒圖示會顯示在範圍的最後一行。若設定為 undefined,註解會與檔案關聯,而非特定範圍。
state?: CommentThreadState
註解執行緒的選用性狀態,可能會影響註解的顯示方式。
uri: Uri
執行緒已在其上建立的文件 URI。
方法
處置此註解執行緒。
一旦處置,此註解執行緒將會在適當時機從可見的編輯器和「註解」面板中移除。
參數 | 描述 |
---|---|
傳回 | 描述 |
void |
CommentThreadCollapsibleState
註解執行緒的摺疊狀態
列舉成員
判斷項目是否已摺疊
判斷項目是否已展開
CommentThreadState
註解執行緒的狀態。
列舉成員
未解決的執行緒狀態
已解決的執行緒狀態
CompletionContext
包含觸發完成項目提供者的內容的其他資訊。
屬性
觸發完成項目提供者的字元。
如果提供者不是由字元觸發,則為 undefined
。
觸發字元在觸發完成項目提供者時已存在於文件中。
triggerKind: CompletionTriggerKind
完成項目的觸發方式。
CompletionItem
完成項目代表建議用來完成正在輸入文字的文字片段。
只要從 label 建立完成項目即可。在這種情況下,完成項目會使用給定的標籤或 insertText 取代游標之前的 word。否則,會使用給定的 edit。
當在編輯器中選取完成項目時,其定義或合成的文字編輯會套用至所有游標/選取範圍,而 additionalTextEdits 則會依提供的內容套用。
另請參閱
建構函式
new CompletionItem(label: string | CompletionItemLabel, kind?: CompletionItemKind): CompletionItem
建立新的完成項目。
完成項目必須至少有一個 label,然後該標籤會同時用作插入文字以及排序和篩選。
參數 | 描述 |
---|---|
label: string | CompletionItemLabel | 完成項目的標籤。 |
kind?: CompletionItemKind | 完成項目的 種類。 |
傳回 | 描述 |
CompletionItem |
屬性
additionalTextEdits?: TextEdit[]
command?: Command
選用性的 Command,會在插入此完成項目之後執行。請注意,目前文件的其他修改應使用 additionalTextEdits 屬性描述。
選用性的字元集,當在完成項目作用中時按下這些字元,會先接受完成項目,然後輸入該字元。請注意,所有認可字元的 length
都應該是 1
,而且會忽略多餘的字元。
人類可讀的字串,包含此項目的其他資訊,例如類型或符號資訊。
documentation?: string | MarkdownString
代表文件註解的人類可讀字串。
insertText?: string | SnippetString
選取此完成項目時,應在文件中插入的字串或程式碼片段。當 falsy
時,會使用 label。
保持 insertText 的空白字元不變。根據預設,編輯器會調整新行的前導空白字元,使其符合接受項目之行的縮排 - 將此設定為 `true` 將會防止這種情況。
kind?: CompletionItemKind
此完成項目的種類。編輯器會根據種類選擇圖示。
label: string | CompletionItemLabel
此完成項目的標籤。根據預設,這也是選取此完成項目時插入的文字。
顯示時選取此項目。請注意,只能選取一個完成項目,而且編輯器會決定要選取哪個項目。規則是選取最符合的項目中的第一個項目。
range?: Range | {inserting: Range, replacing: Range}
選取應由此完成項目取代之文字的範圍或插入和取代範圍。
省略時,current word 的範圍會用作取代範圍,而 current word 的開頭到目前位置則會用作插入範圍。
注意 1: 範圍必須是單行,而且必須包含已要求完成的位置。注意 2: 插入範圍必須是取代範圍的前置詞,這表示它必須包含在內且從相同位置開始。
tags?: readonly CompletionItemTag[]
此完成項目的標籤。
textEdit?: TextEdit
- 已過時 - 請改用 `CompletionItem.insertText` 和 `CompletionItem.range`。
選取此完成項目時套用至文件的 edit。如果提供編輯,則會忽略 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 中,或項目已被選取準備插入時呼叫。因此,任何會變更呈現方式(標籤、排序、篩選等)或(主要)插入行為(insertText)的屬性都不能被變更。
此函式可能會填入 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 | 要檢查的範圍。 |
傳回 | 描述 |
boolean | 如果給定的區段已變更,則為 |
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
用於 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
。
如果提供此 ID,您的擴充功能應從備份還原編輯器,而不是從使用者的工作區讀取檔案。
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 | 表示目前備份的 Token,因為新的備份即將到來。您的擴充功能可以自行決定如何回應取消。例如,如果您的擴充功能正在備份一個大型檔案,並且該操作需要時間才能完成,則您的擴充功能可能會決定完成正在進行的備份,而不是取消它,以確保編輯器具有一些有效的備份。 |
傳回 | 描述 |
Thenable<CustomDocumentBackup> |
openCustomDocument(uri: Uri, openContext: CustomDocumentOpenContext, token: CancellationToken): T | Thenable<T>
為給定的資源建立新的文件。
第一次開啟給定資源的編輯器時,會呼叫 openCustomDocument
。然後,開啟的文件會傳遞給 resolveCustomEditor
,以便將編輯器顯示給使用者。
如果使用者開啟其他編輯器,則會重複使用已開啟的 CustomDocument
。當給定資源的所有編輯器都關閉時,CustomDocument
會被處置。此時開啟編輯器將會觸發另一次對 openCustomDocument
的呼叫。
參數 | 描述 |
---|---|
uri: Uri | 要開啟的文件的 Uri。 |
openContext: CustomDocumentOpenContext | 關於開啟自訂文件的其他資訊。 |
token: CancellationToken | 表示不再需要結果的取消 Token。 |
傳回 | 描述 |
T | Thenable<T> | 自訂文件。 |
resolveCustomEditor(document: T, webviewPanel: WebviewPanel, token: CancellationToken): void | Thenable<void>
為給定的資源解析自訂編輯器。
每當使用者為此 CustomEditorProvider
開啟新的編輯器時,都會呼叫此方法。
參數 | 描述 |
---|---|
document: T | 要解析的資源的文件。 |
webviewPanel: WebviewPanel | 用於顯示此資源的編輯器 UI 的 webview 面板。 在解析期間,提供者必須填入內容 webview 面板的初始 html,並掛鉤它感興趣的所有事件接聽器。提供者也可以保留 |
token: CancellationToken | 表示不再需要結果的取消 Token。 |
傳回 | 描述 |
void | Thenable<void> | 選用的 thenable,表示自訂編輯器已解析。 |
revertCustomDocument(document: T, cancellation: CancellationToken): Thenable<void>
將自訂文件還原到其上次儲存的狀態。
當使用者在自訂編輯器中觸發 檔案:還原檔案
時,編輯器會呼叫此方法。(請注意,這僅在使用編輯器的 檔案:還原檔案
命令時使用,而不是在檔案的 git revert
時使用)。
為了實作 revert
,實作者必須確保 document
的所有編輯器執行個體 (webview) 都以與儲存狀態相同的狀態顯示文件。這通常表示從工作區重新載入檔案。
參數 | 描述 |
---|---|
document: T | 要還原的文件。 |
cancellation: CancellationToken | 表示不再需要還原的 Token。 |
傳回 | 描述 |
Thenable<void> | 表示變更已完成的 Thenable。 |
saveCustomDocument(document: T, cancellation: CancellationToken): Thenable<void>
儲存自訂文件。
當使用者儲存自訂編輯器時,編輯器會呼叫此方法。當使用者在自訂編輯器處於活動狀態時觸發儲存、透過 全部儲存
等命令,或在啟用自動儲存時,都可能發生這種情況。
為了實作 save
,實作者必須保存自訂編輯器。這通常表示將自訂文件的檔案資料寫入磁碟。save
完成後,任何相關聯的編輯器執行個體都不再被標記為已修改。
參數 | 描述 |
---|---|
document: T | 要儲存的文件。 |
cancellation: CancellationToken | 表示不再需要儲存的 Token(例如,如果觸發了另一次儲存)。 |
傳回 | 描述 |
Thenable<void> | 表示儲存已完成的 Thenable。 |
saveCustomDocumentAs(document: T, destination: Uri, cancellation: CancellationToken): Thenable<void>
將自訂文件儲存到不同的位置。
當使用者在自訂編輯器上觸發「另存新檔」時,編輯器會呼叫此方法。實作者必須將自訂編輯器保存到 destination
。
當使用者接受另存新檔時,目前的編輯器將被新儲存檔案的非修改編輯器取代。
參數 | 描述 |
---|---|
document: T | 要儲存的文件。 |
destination: Uri | 要儲存到的位置。 |
cancellation: CancellationToken | 表示不再需要儲存的 Token。 |
傳回 | 描述 |
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 | 表示不再需要結果的取消 Token。 |
傳回 | 描述 |
T | Thenable<T> | 自訂文件。 |
resolveCustomEditor(document: T, webviewPanel: WebviewPanel, token: CancellationToken): void | Thenable<void>
為給定的資源解析自訂編輯器。
每當使用者為此 CustomEditorProvider
開啟新的編輯器時,都會呼叫此方法。
參數 | 描述 |
---|---|
document: T | 要解析的資源的文件。 |
webviewPanel: WebviewPanel | 用於顯示此資源的編輯器 UI 的 webview 面板。 在解析期間,提供者必須填入內容 webview 面板的初始 html,並掛鉤它感興趣的所有事件接聽器。提供者也可以保留 |
token: CancellationToken | 表示不再需要結果的取消 Token。 |
傳回 | 描述 |
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 | 表示不再需要結果的取消 Token。 |
傳回 | 描述 |
void | Thenable<void> | 表示自訂編輯器已解析的 Thenable。 |
DataTransfer
包含對應傳輸資料的 mime 類型對應的 map。
實作 handleDrag
的拖放控制器可以將其他 mime 類型新增至資料傳輸。這些額外的 mime 類型只會在從相同拖放控制器中的元素起始拖曳時包含在 handleDrop
中。
建構函式
new DataTransfer(): 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
檔案的完整檔案路徑。
在網頁上可能為 undefined
。
方法
檔案的完整內容。
參數 | 描述 |
---|---|
傳回 | 描述 |
Thenable<Uint8Array> |
DataTransferItem
封裝拖放操作期間傳輸的資料。
建構函式
new DataTransferItem(value: any): DataTransferItem
參數 | 描述 |
---|---|
value: any | 儲存在此項目上的自訂資料。可以使用 DataTransferItem.value 檢索。 |
傳回 | 描述 |
DataTransferItem |
屬性
儲存在此項目上的自訂資料。
您可以使用 value
在操作之間共享資料。只要建立 DataTransferItem
的擴充功能在相同的擴充功能主機中執行,就可以檢索原始物件。
方法
asFile(): DataTransferFile
嘗試取得與此資料傳輸項目關聯的 檔案。
請注意,檔案物件僅在拖放操作的範圍內有效。
參數 | 描述 |
---|---|
傳回 | 描述 |
DataTransferFile | 資料傳輸的檔案,如果該項目不是檔案或無法存取檔案資料,則為 |
取得此項目的字串表示形式。
如果 DataTransferItem.value 是物件,則這會傳回將 DataTransferItem.value 值轉換為 JSON 字串的結果。
參數 | 描述 |
---|---|
傳回 | 描述 |
Thenable<string> |
DebugAdapter
如果除錯配接器實作 DebugAdapter 介面,則實作除錯配接器協議的除錯配接器可以向編輯器註冊。
事件
onDidSendMessage: Event<DebugProtocolMessage>
在除錯配接器將除錯配接器協議訊息傳送至編輯器後觸發的事件。訊息可以是請求、回應或事件。
方法
處置此物件。
參數 | 描述 |
---|---|
傳回 | 描述 |
any |
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
除錯工作階段使用的除錯主控台模式,請參閱 options。
列舉成員
除錯工作階段應具有個別的除錯主控台。
除錯工作階段應與其父工作階段共用除錯主控台。此值對於沒有父工作階段的工作階段沒有作用。
DebugProtocolBreakpoint
DebugProtocolBreakpoint 是 Debug Adapter Protocol 中定義的 Breakpoint 類型的不透明預留位置類型。
DebugProtocolMessage
DebugProtocolMessage 是 Debug Adapter Protocol 中定義的 ProtocolMessage 類型的不透明預留位置類型。
DebugProtocolSource
DebugProtocolSource 是 Debug Adapter Protocol 中定義的 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
用於 啟動除錯工作階段 的選項。
屬性
控制是否在 [呼叫堆疊] 檢視中顯示除錯工作階段的父工作階段,即使它只有一個子工作階段。根據預設,除錯工作階段永遠不會隱藏其父工作階段。如果 compact 為 true,則在 [呼叫堆疊] 檢視中會隱藏只有一個子工作階段的除錯工作階段,以使樹狀結構更精簡。
consoleMode?: DebugConsoleMode
控制此工作階段應具有個別的除錯主控台還是與父工作階段共用。對於沒有父工作階段的工作階段沒有作用。預設值為 Separate。
lifecycleManagedByParent?: boolean
控制是否將 'restart' 等生命週期請求傳送至新建立的工作階段或其父工作階段。根據預設 (如果屬性為 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 | 資源識別碼。 |
傳回 | 描述 |
boolean | 如果此集合具有給定資源的診斷,則為 |
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
將多個類似 disposable 的物件組合成一個。當您擁有具有 dispose 函式但不是 Disposable
實例的物件時,可以使用此方法。
參數 | 描述 |
---|---|
...disposableLikes: Array<{dispose: () => any}> | 至少具有 |
傳回 | 描述 |
Disposable | 返回一個新的 disposable,它在處置時將處置所有提供的 disposables。 |
建構函式
new Disposable(callOnDispose: () => any): Disposable
建立一個新的 disposable,它會在處置時呼叫提供的函式。
請注意,非同步函式不會被等待。
參數 | 描述 |
---|---|
callOnDispose: () => any | 處置某些內容的函式。 |
傳回 | 描述 |
Disposable |
方法
處置此物件。
參數 | 描述 |
---|---|
傳回 | 描述 |
any |
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。
每個編輯會呼叫此方法一次,如果產生完整的編輯可能需要很長時間,則應使用此方法。解析只能用於變更 DocumentDropEdit.additionalEdit。
參數 | 描述 |
---|---|
edit: T | 要解析的 DocumentDropEdit。 |
token: CancellationToken | 取消權杖。 |
傳回 | 描述 |
ProviderResult<T> | 已解析的編輯或解析為此的 thenable。可以回傳給定的 |
DocumentDropEditProviderMetadata
提供關於 DocumentDropEditProvider 如何運作的額外元數據。
屬性
dropMimeTypes: readonly string[]
提供者可以處理的 DataTransfer MIME 類型清單。
這可以是精確的 MIME 類型,例如 image/png
,或萬用字元模式,例如 image/*
。
針對從檔案總管或其他工作台中樹狀檢視拖放的資源,請使用 text/uri-list
。
如果 DataTransfer 中存在任何 files,請使用 files
來指示應調用提供者。請注意,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 | 要檢查的種類。 |
傳回 | 描述 |
boolean |
intersects(other: DocumentDropOrPasteEditKind): boolean
檢查此種類是否與 other
相交。
例如,種類 "text.plain"
與 text
、"text.plain"
和 "text.plain.list"
相交,但不與 "unicorn"
或 "textUnicorn.plain"
相交。
參數 | 描述 |
---|---|
other: DocumentDropOrPasteEditKind | 要檢查的種類。 |
傳回 | 描述 |
boolean |
DocumentFilter
文件篩選器透過不同的屬性來表示文件,例如語言、其資源的 scheme,或套用於 路徑的 glob 模式。
範例 適用於磁碟上 typescript 檔案的語言篩選器
{ language: 'typescript', scheme: 'file' }
範例 適用於所有 package.json 路徑的語言篩選器
{ language: 'json', pattern: '**/package.json' }
屬性
語言 ID,例如 typescript
。
pattern?: GlobPattern
URI scheme,例如 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 | 醒目提示種類,預設為 text。 |
傳回 | 描述 |
DocumentHighlight |
屬性
kind?: DocumentHighlightKind
醒目提示種類,預設為 text。
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>
給定一個連結,填入其 target。當在 UI 中選取不完整的連結時,會呼叫此方法。提供者可以實作此方法,並從 provideDocumentLinks 方法回傳不完整的連結 (不含 target),這通常有助於提升效能。
參數 | 描述 |
---|---|
link: T | 要解析的連結。 |
token: CancellationToken | 取消權杖。 |
傳回 | 描述 |
ProviderResult<T> |
DocumentPasteEdit
套用貼上操作的編輯。
建構函式
new DocumentPasteEdit(insertText: string | SnippetString, title: string, kind: DocumentDropOrPasteEditKind): DocumentPasteEdit
建立新的貼上編輯。
參數 | 描述 |
---|---|
insertText: string | SnippetString | 要插入到貼上位置的文字或程式碼片段。 |
title: 字串 | 描述編輯的易於理解的標籤。 |
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。如果從所有提供者回傳多個編輯,則會自動套用第一個編輯,並顯示一個 widget,讓使用者可以切換到其他編輯。 |
resolveDocumentPasteEdit(pasteEdit: T, token: CancellationToken): ProviderResult<T>
選用方法,在編輯套用之前填入 DocumentPasteEdit.additionalEdit。
每個編輯會呼叫此方法一次,如果產生完整的編輯可能需要很長時間,則應使用此方法。解析只能用於變更 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
。
如果 DataTransfer 中存在任何 files,請使用 files
來指示應調用提供者。請注意,DataTransferFile 條目僅在從編輯器外部貼上內容時建立,例如從作業系統貼上。
providedPasteEditKinds: readonly DocumentDropOrPasteEditKind[]
提供者可能在 provideDocumentPasteEdits 中回傳的 種類清單。
用於在請求特定 種類 的編輯時過濾掉提供者。
DocumentPasteTriggerKind
請求貼上編輯的原因。
列舉成員
貼上是作為正常貼上操作的一部分請求的。
貼上是由使用者使用「貼上為」命令請求的。
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 | 應顯示的範圍。 |
傳回 | 描述 |
DocumentSymbol |
屬性
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
將值附加到環境變數。
請注意,擴充功能只能對任何一個變數進行單一變更,因此這將覆寫先前對 replace、append 或 prepend 的任何呼叫。
參數 | 描述 |
---|---|
variable: string | 要附加到的變數。 |
value: string | 要附加到變數的值。 |
options?: EnvironmentVariableMutatorOptions | 套用至 mutator 的選項,當未提供選項時,這將預設為 |
傳回 | 描述 |
void |
從此集合中清除所有 mutator。
參數 | 描述 |
---|---|
傳回 | 描述 |
void |
delete(variable: string): void
刪除此集合的變數 mutator。
參數 | 描述 |
---|---|
variable: string | 要刪除 mutator 的變數。 |
傳回 | 描述 |
void |
forEach(callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any, thisArg?: any): void
在此集合中迭代每個 mutator。
參數 | 描述 |
---|---|
callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any | 要為每個條目執行的函式。 |
thisArg?: any | 叫用處理常式函式時使用的 |
傳回 | 描述 |
void |
get(variable: string): EnvironmentVariableMutator
取得此集合套用至變數的 mutator (如果有的話)。
參數 | 描述 |
---|---|
variable: string | 要取得 mutator 的變數。 |
傳回 | 描述 |
EnvironmentVariableMutator |
prepend(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
將值前置到環境變數。
請注意,擴充功能只能對任何一個變數進行單一變更,因此這將覆寫先前對 replace、append 或 prepend 的任何呼叫。
參數 | 描述 |
---|---|
variable: string | 要前置的變數。 |
value: string | 要前置到變數的值。 |
options?: EnvironmentVariableMutatorOptions | 套用至 mutator 的選項,當未提供選項時,這將預設為 |
傳回 | 描述 |
void |
replace(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
以值取代環境變數。
請注意,擴充功能只能對任何一個變數進行單一變更,因此這將覆寫先前對 replace、append 或 prepend 的任何呼叫。
參數 | 描述 |
---|---|
variable: string | 要取代的變數。 |
value: string | 用來取代變數的值。 |
options?: EnvironmentVariableMutatorOptions | 套用至 mutator 的選項,當未提供選項時,這將預設為 |
傳回 | 描述 |
void |
EnvironmentVariableMutator
要套用至環境變數的變更類型及其值。
屬性
options: EnvironmentVariableMutatorOptions
套用至 mutator 的選項。
type: EnvironmentVariableMutatorType
將對變數進行的變更類型。
要用於變數的值。
EnvironmentVariableMutatorOptions
套用至 mutator 的選項。
屬性
applyAtProcessCreation?: boolean
在建立程序之前立即套用至環境。預設為 false。
applyAtShellIntegration?: boolean
在 Shell 整合腳本中套用至環境。請注意,如果 Shell 整合已停用或由於某些原因而無法運作,則不會套用 mutator。預設為 false。
EnvironmentVariableMutatorType
可以套用至環境變數的變更類型。
列舉成員
取代變數的現有值。
附加到變數現有值的末尾。
前置到變數現有值的開頭。
EnvironmentVariableScope
環境變數集合套用的範圍物件。
屬性
workspaceFolder?: WorkspaceFolder
要取得集合的任何特定工作區資料夾。
EvaluatableExpression
EvaluatableExpression 表示文件中可以由活動偵錯工具或執行階段評估的運算式。此評估的結果會顯示在工具提示狀的小工具中。如果僅指定範圍,則將從基礎文件中擷取運算式。可以使用可選的運算式來覆寫擷取的運算式。在這種情況下,範圍仍用於醒目提示文件中的範圍。
建構函式
new EvaluatableExpression(range: Range, expression?: string): 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> | 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 時,請使用此類別。
建構函式
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}
一個備忘錄物件,用於儲存獨立於目前開啟的 工作區 的狀態。
擴充功能可以儲存全域狀態的絕對檔案路徑。目錄可能不存在於磁碟上,且建立與否取決於擴充功能。但是,保證父目錄存在。
使用 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}>
一個陣列,可將可釋放物件新增至其中。當此擴充功能停用時,將會釋放這些可釋放物件。
注意 非同步釋放函式不會被等待。
workspaceState: Memento
一個備忘錄物件,用於儲存在目前開啟的 工作區 內容中的狀態。
方法
asAbsolutePath(relativePath: string): string
取得擴充功能中包含的資源之絕對路徑。
注意 可以透過 Uri.joinPath 和 extensionUri 建構絕對 URI,例如 vscode.Uri.joinPath(context.extensionUri, relativePath);
參數 | 描述 |
---|---|
relativePath: string | 擴充功能中包含的資源之相對路徑。 |
傳回 | 描述 |
string | 資源的絕對路徑。 |
ExtensionKind
在遠端視窗中,擴充功能種類描述擴充功能是在 UI (視窗) 執行,還是在遠端執行。
列舉成員
擴充功能在 UI 執行。
擴充功能在遠端擴充功能主機執行。
ExtensionMode
ExtensionMode 在 ExtensionContext
上提供,並指示特定擴充功能執行的模式。
列舉成員
擴充功能已正常安裝在編輯器中(例如,從 Marketplace 或 VSIX)。
擴充功能從啟動編輯器時提供的 --extensionDevelopmentPath
執行。
擴充功能從 --extensionTestsPath
執行,且擴充功能主機正在執行單元測試。
ExtensionTerminalOptions
值物件,描述虛擬程序終端機應使用的選項。
屬性
color?: ThemeColor
終端機的圖示 ThemeColor。建議使用標準 terminal.ansi*
主題金鑰,以在不同主題之間獲得最佳對比度和一致性。
iconPath?: IconPath
終端機的圖示路徑或 ThemeIcon。
選擇退出重新啟動和重新載入時的預設終端機持久性。這僅在啟用 terminal.integrated.enablePersistentSessions
時生效。
location?: TerminalEditorLocationOptions | TerminalSplitLocationOptions | TerminalLocation
人類可讀的字串,將用於在 UI 中表示終端機。
pty: Pseudoterminal
Pseudoterminal
的實作,允許擴充功能控制終端機。
FileChangeEvent
檔案系統提供者必須用來發出檔案變更訊號的事件。
屬性
type: FileChangeType
變更類型。
uri: Uri
已變更檔案的 URI。
FileChangeType
檔案變更類型列舉。
列舉成員
檔案的內容或 metadata 已變更。
已建立檔案。
已刪除檔案。
FileCoverage
包含檔案的覆蓋率 metadata。
靜態
fromDetails(uri: Uri, details: readonly FileCoverageDetail[]): FileCoverage
建立一個 FileCoverage 實例,其計數從覆蓋率詳細資訊填入。
參數 | 描述 |
---|---|
uri: Uri | 涵蓋檔案 URI |
details: readonly FileCoverageDetail[] | |
傳回 | 描述 |
FileCoverage |
建構函式
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 |
傳回 | 描述 |
FileCoverage |
屬性
branchCoverage?: TestCoverageCount
分支覆蓋率資訊。
declarationCoverage?: TestCoverageCount
宣告覆蓋率資訊。根據報告器和語言,這可能是諸如函式、方法或命名空間之類的類型。
includesTests?: TestItem[]
在此檔案中產生覆蓋率的 測試案例 列表。如果已設定,則也應定義 TestRunProfile.loadDetailedCoverageForTest,以便檢索詳細的覆蓋率資訊。
statementCoverage: TestCoverageCount
語句覆蓋率資訊。如果報告器未提供語句覆蓋率資訊,則可以使用此資訊來表示行覆蓋率。
uri: Uri
檔案 URI。
FileCoverageDetail
從 TestRunProfile.loadDetailedCoverage 傳回的覆蓋率詳細資訊。
FileCoverageDetail: StatementCoverage | DeclarationCoverage
FileCreateEvent
在建立檔案後觸發的事件。
屬性
files: readonly Uri[]
已建立的檔案。
FileDecoration
檔案裝飾表示可以與檔案一起呈現的 metadata。
建構函式
new FileDecoration(badge?: string, tooltip?: string, color?: ThemeColor): FileDecoration
建立新的裝飾。
參數 | 描述 |
---|---|
badge?: string | 代表裝飾的字母。 |
tooltip?: string | 裝飾的工具提示。 |
color?: ThemeColor | 裝飾的色彩。 |
傳回 | 描述 |
FileDecoration |
屬性
一個非常簡短的字串,代表此裝飾。
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
類型表示有關檔案的 metadata
屬性
自 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 | 檔案系統的協定,例如 |
傳回 | 描述 |
boolean | 如果檔案系統支援寫入,則為 |
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
檔案系統供應商應用於發出錯誤訊號的類型。
此類別具有常用錯誤案例的 factory 方法,例如當檔案或資料夾不存在時的 FileNotFound
,使用方式如下:throw vscode.FileSystemError.FileNotFound(someUri);
靜態
FileExists(messageOrUri?: string | Uri): FileSystemError
建立一個錯誤,以表示檔案或資料夾已存在,例如在建立檔案但未覆寫時。
參數 | 描述 |
---|---|
messageOrUri?: string | Uri | 訊息或 uri。 |
傳回 | 描述 |
FileSystemError |
FileIsADirectory(messageOrUri?: string | Uri): FileSystemError
建立一個錯誤,以表示檔案為資料夾。
參數 | 描述 |
---|---|
messageOrUri?: string | Uri | 訊息或 uri。 |
傳回 | 描述 |
FileSystemError |
FileNotADirectory(messageOrUri?: string | Uri): FileSystemError
建立一個錯誤,以表示檔案不是資料夾。
參數 | 描述 |
---|---|
messageOrUri?: string | Uri | 訊息或 uri。 |
傳回 | 描述 |
FileSystemError |
FileNotFound(messageOrUri?: string | Uri): FileSystemError
建立一個錯誤,以表示找不到檔案或資料夾。
參數 | 描述 |
---|---|
messageOrUri?: string | Uri | 訊息或 uri。 |
傳回 | 描述 |
FileSystemError |
NoPermissions(messageOrUri?: string | Uri): FileSystemError
建立一個錯誤,以表示某個操作缺少必要的權限。
參數 | 描述 |
---|---|
messageOrUri?: string | Uri | 訊息或 uri。 |
傳回 | 描述 |
FileSystemError |
Unavailable(messageOrUri?: string | Uri): FileSystemError
建立一個錯誤,以表示檔案系統無法使用或過於忙碌而無法完成請求。
參數 | 描述 |
---|---|
messageOrUri?: string | Uri | 訊息或 uri。 |
傳回 | 描述 |
FileSystemError |
建構函式
new FileSystemError(messageOrUri?: string | Uri): FileSystemError
建立新的檔案系統錯誤。
參數 | 描述 |
---|---|
messageOrUri?: string | Uri | 訊息或 uri。 |
傳回 | 描述 |
FileSystemError |
屬性
識別此錯誤的代碼。
可能的值為錯誤名稱,例如 FileNotFound,或未指定錯誤的 Unknown
。
FileSystemProvider
檔案系統供應商定義編輯器讀取、寫入、探索和管理檔案及資料夾所需的功能。它允許擴充功能從遠端位置(如 ftp 伺服器)提供檔案,並將它們無縫整合到編輯器中。
事件
onDidChangeFile: Event<FileChangeEvent[]>
方法
copy(source: Uri, destination: Uri, options: {overwrite: boolean}): void | Thenable<void>
複製檔案或資料夾。實作此函式是選用的,但它將加速複製操作。
- throws - 當
source
不存在時,FileNotFound。
- throws - 當
destination
的父項不存在時,FileNotFound,例如,不需要 mkdirp 邏輯。
- throws - 當
destination
存在且overwrite
選項不是true
時,FileExists。
- throws - 當權限不足時,NoPermissions。
createDirectory(uri: Uri): void | Thenable<void>
建立新的目錄(注意,新檔案是透過 write
呼叫建立的)。
- throws - 當
uri
的父項不存在時,FileNotFound,例如,不需要 mkdirp 邏輯。
- throws - 當
uri
已存在時,FileExists。
- throws - 當權限不足時,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]>>
檢索 目錄 的所有項目。
- throws - 當
uri
不存在時,FileNotFound。
readFile(uri: Uri): Uint8Array | Thenable<Uint8Array>
讀取檔案的完整內容。
- throws - 當
uri
不存在時,FileNotFound。
參數 | 描述 |
---|---|
uri: Uri | 檔案的 URI。 |
傳回 | 描述 |
Uint8Array | Thenable<Uint8Array> | 位元組陣列,或解析為此陣列的 Thenable。 |
rename(oldUri: Uri, newUri: Uri, options: {overwrite: boolean}): void | Thenable<void>
重新命名檔案或資料夾。
- throws - 當
oldUri
不存在時,FileNotFound。
- throws - 當
newUri
的父項不存在時,FileNotFound,例如,不需要 mkdirp 邏輯。
- throws - 當
newUri
存在且overwrite
選項不是true
時,FileExists。
- throws - 當權限不足時,NoPermissions。
stat(uri: Uri): FileStat | Thenable<FileStat>
檢索有關檔案的 metadata。
請注意,符號連結的中繼資料應為它們參照的檔案的中繼資料。儘管如此,除了實際類型之外,還必須使用 SymbolicLink 類型,例如 FileType.SymbolicLink | FileType.Directory
。
- throws - 當
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 | 一個 disposable,告知供應商停止監看 |
writeFile(uri: Uri, content: Uint8Array, options: {create: boolean, overwrite: boolean}): void | Thenable<void>
將資料寫入檔案,取代其完整內容。
- throws - 當
uri
不存在且未設定create
時,FileNotFound。
- throws - 當
uri
的父項不存在且已設定create
時,FileNotFound,例如,不需要 mkdirp 邏輯。
- throws - 當
uri
已存在、已設定create
但未設定overwrite
時,FileExists。
- throws - 當權限不足時,NoPermissions。
參數 | 描述 |
---|---|
uri: Uri | 檔案的 URI。 |
content: Uint8Array | 檔案的新內容。 |
options: {create: boolean, overwrite: boolean} | 定義是否應或必須建立遺失的檔案。 |
傳回 | 描述 |
void | Thenable<void> |
FileSystemWatcher
檔案系統監看器通知磁碟上或來自其他 FileSystemProviders 的檔案和資料夾的變更。
若要取得 FileSystemWatcher
的執行個體,請使用 createFileSystemWatcher。
事件
檔案/資料夾變更時觸發的事件。
檔案/資料夾建立時觸發的事件。
檔案/資料夾刪除時觸發的事件。
屬性
如果此檔案系統監看器在建立時被設定為忽略變更檔案系統事件,則為 true。
如果此檔案系統監看器在建立時被設定為忽略建立檔案系統事件,則為 true。
如果此檔案系統監看器在建立時被設定為忽略刪除檔案系統事件,則為 true。
方法
處置此物件。
參數 | 描述 |
---|---|
傳回 | 描述 |
any |
FileType
檔案類型列舉。類型 File
和 Directory
也可以是符號連結,在這種情況下,請使用 FileType.File | FileType.SymbolicLink
和 FileType.Directory | FileType.SymbolicLink
。
列舉成員
檔案類型未知。
一般檔案。
目錄。
檔案的符號連結。
FileWillCreateEvent
檔案即將建立時觸發的事件。
若要在建立檔案之前對工作區進行修改,請使用 thenable 呼叫 waitUntil 函式,該 thenable 會解析為 workspace edit。
屬性
files: readonly Uri[]
即將建立的檔案。
token: CancellationToken
取消權杖。
方法
waitUntil(thenable: Thenable<WorkspaceEdit>): void
允許暫停事件並套用 workspace edit。
注意: 此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫
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
檔案即將刪除時觸發的事件。
若要在刪除檔案之前對工作區進行修改,請使用 thenable 呼叫 waitUntil
函式,該 thenable 會解析為 workspace edit。
屬性
files: readonly Uri[]
即將刪除的檔案。
token: CancellationToken
取消權杖。
方法
waitUntil(thenable: Thenable<WorkspaceEdit>): void
允許暫停事件並套用 workspace edit。
注意: 此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫
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
檔案即將重新命名時觸發的事件。
若要在重新命名檔案之前對工作區進行修改,請使用 thenable 呼叫 waitUntil
函式,該 thenable 會解析為 workspace edit。
屬性
files: ReadonlyArray<{newUri: Uri, oldUri: Uri}>
即將重新命名的檔案。
token: CancellationToken
取消權杖。
方法
waitUntil(thenable: Thenable<WorkspaceEdit>): void
允許暫停事件並套用 workspace edit。
注意: 此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫
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 | 摺疊範圍的種類。 |
傳回 | 描述 |
FoldingRange |
屬性
要摺疊的範圍之從零開始的結束行。摺疊區域以該行的最後一個字元結束。為了有效,結束行必須為零或更大,且小於文件中的行數。
kind?: FoldingRangeKind
描述摺疊範圍的種類,例如 Comment 或 Region。種類用於分類摺疊範圍,並由諸如「摺疊所有註解」之類的命令使用。請參閱 FoldingRangeKind 以取得所有種類的列舉。如果未設定,則範圍源自語法元素。
要摺疊的範圍之從零開始的開始行。摺疊區域從該行的最後一個字元之後開始。為了有效,結束行必須為零或更大,且小於文件中的行數。
FoldingRangeKind
特定摺疊範圍種類的列舉。種類是 FoldingRange 的選用欄位,用於區分特定的摺疊範圍,例如源自註解的範圍。種類由諸如 摺疊所有註解
或 摺疊所有區域
之類的命令使用。如果範圍上未設定種類,則範圍源自語法元素,而非註解、匯入或區域標記。
列舉成員
表示註解的摺疊範圍種類。
表示匯入的摺疊範圍種類。
表示源自摺疊標記(如 #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
描述格式化應使用哪些選項的值物件。
屬性
偏好使用空格而不是 Tab 字元。
Tab 字元在空格中的大小。
FunctionBreakpoint
由函式名稱指定的斷點。
建構函式
new FunctionBreakpoint(functionName: string, enabled?: boolean, condition?: string, hitCondition?: string, logMessage?: string): FunctionBreakpoint
建立新的函式斷點。
參數 | 描述 |
---|---|
functionName: string | |
enabled?: boolean | |
condition?: string | |
hitCondition?: string | |
logMessage?: string | |
傳回 | 描述 |
FunctionBreakpoint |
屬性
條件式中斷點的選用運算式。
是否啟用中斷點。
此斷點所附加的函式名稱。
控制忽略多少次中斷點命中的選用運算式。
中斷點的唯一 ID。
命中此中斷點時記錄的選用訊息。{} 內的嵌入式運算式由偵錯配接器內插。
GlobalEnvironmentVariableCollection
擴充功能可以套用至程序環境的變更集合。適用於所有範圍。
屬性
description: string | MarkdownString
環境變數集合的描述,這將用於描述 UI 中的變更。
集合是否應針對工作區快取,並在視窗重新載入時套用至終端機。當為 true 時,集合將在視窗重新載入時立即啟動。此外,如果快取版本存在,此 API 將傳回快取版本。當擴充功能解除安裝或集合清除時,集合將失效。預設為 true。
方法
append(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
將值附加到環境變數。
請注意,擴充功能只能對任何一個變數進行單一變更,因此這將覆寫先前對 replace、append 或 prepend 的任何呼叫。
參數 | 描述 |
---|---|
variable: string | 要附加到的變數。 |
value: string | 要附加到變數的值。 |
options?: EnvironmentVariableMutatorOptions | 套用至 mutator 的選項,當未提供選項時,這將預設為 |
傳回 | 描述 |
void |
從此集合中清除所有 mutator。
參數 | 描述 |
---|---|
傳回 | 描述 |
void |
delete(variable: string): void
刪除此集合的變數 mutator。
參數 | 描述 |
---|---|
variable: string | 要刪除 mutator 的變數。 |
傳回 | 描述 |
void |
forEach(callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any, thisArg?: any): void
在此集合中迭代每個 mutator。
參數 | 描述 |
---|---|
callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any | 要為每個條目執行的函式。 |
thisArg?: any | 叫用處理常式函式時使用的 |
傳回 | 描述 |
void |
get(variable: string): EnvironmentVariableMutator
取得此集合套用至變數的 mutator (如果有的話)。
參數 | 描述 |
---|---|
variable: string | 要取得 mutator 的變數。 |
傳回 | 描述 |
EnvironmentVariableMutator |
getScoped(scope: EnvironmentVariableScope): EnvironmentVariableCollection
取得擴充功能特定範圍的環境變數集合。這允許僅在指定的範圍內修改終端機環境變數,並應用於全域集合之後(及附加於全域集合)。
透過此方法取得的每個物件都是隔離的,並且不會影響其他範圍的物件,包括全域集合。
參數 | 描述 |
---|---|
scope: EnvironmentVariableScope | 環境變數集合應用於的範圍。 如果省略 scope 參數,則會傳回適用於該參數所有相關範圍的集合。例如,如果未指定 'workspaceFolder' 參數,則會傳回適用於所有工作區資料夾的集合。 |
傳回 | 描述 |
EnvironmentVariableCollection | 傳入範圍的環境變數集合。 |
prepend(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
將值前置到環境變數。
請注意,擴充功能只能對任何一個變數進行單一變更,因此這將覆寫先前對 replace、append 或 prepend 的任何呼叫。
參數 | 描述 |
---|---|
variable: string | 要前置的變數。 |
value: string | 要前置到變數的值。 |
options?: EnvironmentVariableMutatorOptions | 套用至 mutator 的選項,當未提供選項時,這將預設為 |
傳回 | 描述 |
void |
replace(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
以值取代環境變數。
請注意,擴充功能只能對任何一個變數進行單一變更,因此這將覆寫先前對 replace、append 或 prepend 的任何呼叫。
參數 | 描述 |
---|---|
variable: string | 要取代的變數。 |
value: string | 用來取代變數的值。 |
options?: EnvironmentVariableMutatorOptions | 套用至 mutator 的選項,當未提供選項時,這將預設為 |
傳回 | 描述 |
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
懸停 (Hover) 代表符號或單字的額外資訊。懸停會在類似工具提示的小工具中呈現。
建構函式
new Hover(contents: MarkdownString | MarkedString | Array<MarkdownString | MarkedString>, range?: Range): Hover
建立新的懸停 (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 | 提示的種類。 |
傳回 | 描述 |
InlayHint |
屬性
kind?: InlayHintKind
此提示的種類。內嵌提示種類定義了此外觀提示,例如,將使用對應的前景和背景顏色。
label: string | InlayHintLabelPart[]
此提示的標籤。人類可讀的字串或標籤部分的陣列。
注意 字串和標籤部分都不能為空。
在提示之前呈現邊距。邊距將使用編輯器的背景顏色,而不是提示本身的背景顏色。這表示邊距可用於視覺上對齊/分隔內嵌提示。
在提示之後呈現邊距。邊距將使用編輯器的背景顏色,而不是提示本身的背景顏色。這表示邊距可用於視覺上對齊/分隔內嵌提示。
position: Position
此提示的位置。
textEdits?: TextEdit[]
tooltip?: string | MarkdownString
當您將滑鼠游標停留在該項目上方時的工具提示文字。
注意 此屬性可以在解析內嵌提示期間稍後設定。
InlayHintKind
內嵌提示種類。
內嵌提示的種類定義了其外觀,例如,正在使用對應的前景和背景顏色。
列舉成員
用於類型註釋的內嵌提示。
用於參數的內嵌提示。
InlayHintLabelPart
內嵌提示標籤部分允許內嵌提示的互動式和複合標籤。
建構函式
new InlayHintLabelPart(value: string): InlayHintLabelPart
建立新的內嵌提示標籤部分。
參數 | 描述 |
---|---|
value: string | 部分的數值。 |
傳回 | 描述 |
InlayHintLabelPart |
屬性
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[]> | InlineValueDescriptors 的陣列,或解析為此陣列的 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.showInputBox 無法提供所需的彈性時,應使用 window.createInputBox。
事件
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 錯誤。傳回 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]
預先填入的 value 的選取範圍。定義為兩個數字的元組,其中第一個是包含的起始索引,第二個是排除的結束索引。當 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 | 語言模型聊天物件。 |
傳回 | 描述 |
boolean | 如果可以提出請求,則為 |
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 將會拒絕。 |
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 | Array<LanguageModelTextPart | LanguageModelToolResultPart | LanguageModelToolCallPart>, name?: string): LanguageModelChatMessage
建立新的使用者訊息。
參數 | 描述 |
---|---|
role: LanguageModelChatMessageRole | 訊息的角色。 |
content: string | Array<LanguageModelTextPart | LanguageModelToolResultPart | LanguageModelToolCallPart> | 訊息的內容。 |
name?: string | 訊息的使用者可選名稱。 |
傳回 | 描述 |
LanguageModelChatMessage |
屬性
content: Array<LanguageModelTextPart | LanguageModelToolResultPart | LanguageModelToolCallPart>
訊息可作為內容包含的字串或異質陣列。某些部分可能為某些模型特定的訊息類型。
此訊息的使用者可選名稱。
role: LanguageModelChatMessageRole
此訊息的角色。
LanguageModelChatMessageRole
代表聊天訊息的角色。 可能是使用者或助理。
列舉成員
使用者角色,例如與語言模型互動的人。
助理角色,例如產生回應的語言模型。
LanguageModelChatRequestOptions
使用語言模型發出聊天請求的選項。
屬性
人類可讀的訊息,說明為何需要存取語言模型以及由其啟用的功能。
一組控制語言模型行為的選項。 這些選項特定於語言模型,需要在各自的文件中查找。
toolMode?: LanguageModelChatToolMode
要使用的工具選擇模式。 預設為 LanguageModelChatToolMode.Auto。
tools?: LanguageModelChatTool[]
語言模型可用的可選工具列表。 這些可以是透過 lm.tools 提供的已註冊工具,或僅在呼叫擴充功能中實作的私有工具。
如果 LLM 請求呼叫其中一個工具,它將在 LanguageModelChatResponse.stream 中傳回 LanguageModelToolCallPart。 呼叫者有責任調用該工具。 如果它是註冊在 lm.tools 中的工具,則表示呼叫 lm.invokeTool。
然後,可以透過建立具有 LanguageModelToolCallPart 的助理類型 LanguageModelChatMessage,然後建立具有 LanguageModelToolResultPart 的使用者類型訊息,將工具結果提供給 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 schema。
工具的名稱。
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
屬性將包含實際錯誤。
LanguageModelPromptTsxPart
包含來自 vscode/prompt-tsx
的 PromptElementJSON 的語言模型回應部分。
建構函式
new LanguageModelPromptTsxPart(value: unknown): LanguageModelPromptTsxPart
使用給定的內容建構 prompt-tsx 部分。
參數 | 描述 |
---|---|
value: unknown | 部分的數值,來自 |
傳回 | 描述 |
LanguageModelPromptTsxPart |
屬性
部分的數值。
LanguageModelTextPart
包含一段文字的語言模型回應部分,從 LanguageModelChatResponse 傳回。
建構函式
new LanguageModelTextPart(value: string): LanguageModelTextPart
使用給定的內容建構文字部分。
參數 | 描述 |
---|---|
value: string | 部分的文字內容。 |
傳回 | 描述 |
LanguageModelTextPart |
屬性
部分的文字內容。
LanguageModelTool<T>
可透過呼叫 LanguageModelChat 叫用的工具。
方法
invoke(options: LanguageModelToolInvocationOptions<T>, token: CancellationToken): ProviderResult<LanguageModelToolResult>
使用給定的輸入調用工具並傳回結果。
提供的 LanguageModelToolInvocationOptions.input 已根據宣告的 schema 驗證。
參數 | 描述 |
---|---|
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 schema。
工具的唯一名稱。
工具宣告的一組標籤,大致描述工具的功能。 工具使用者可以使用這些標籤來篩選工具集,僅保留與手邊任務相關的工具。
LanguageModelToolInvocationOptions<T>
為工具調用提供的選項。
屬性
用於調用工具的輸入。 輸入必須符合 LanguageModelToolInformation.inputSchema 中定義的 schema
tokenizationOptions?: LanguageModelToolTokenizationOptions
提示工具應在其回應中傳回多少個 token 的選項,並使工具能夠準確地計算 token。
toolInvocationToken: undefined
一個不透明的物件,將工具調用連結到來自 chat participant 的聊天請求。
取得有效工具調用權杖的唯一方法是使用來自聊天請求的提供的 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
工具呼叫的結果。 這是 tool call 的對應部分,它只能包含在使用者訊息的內容中
建構函式
new LanguageModelToolResultPart(callId: string, content: unknown[]): LanguageModelToolResultPart
參數 | 描述 |
---|---|
callId: string | 工具呼叫的 ID。 |
content: unknown[] | 工具結果的內容。 |
傳回 | 描述 |
LanguageModelToolResultPart |
屬性
工具呼叫的 ID。
請注意,這應與工具呼叫部分的 callId 相符。
工具結果的數值。
LanguageModelToolTokenizationOptions
與工具調用的 tokenization 相關的選項。
屬性
如果已知,工具應在其結果中發出的最大 token 數。
方法
countTokens(text: string, token?: CancellationToken): Thenable<number>
使用模型特定的權杖化器邏輯計算訊息中的權杖數。
參數 | 描述 |
---|---|
text: string | 字串。 |
token?: CancellationToken | 可選的取消權杖。請參閱 CancellationTokenSource 了解如何建立一個。 |
傳回 | 描述 |
Thenable<number> | 解析為權杖數的 thenable。 |
LanguageStatusItem
語言狀態項目是呈現作用中文字編輯器的語言狀態報告的慣用方式,例如選取的 linter 或通知組態問題。
屬性
accessibilityInformation?: AccessibilityInformation
當螢幕閱讀器與此項目互動時使用的輔助功能資訊
控制項目是否顯示為「忙碌」。 預設為 false
。
command: Command
此項目的 command。
此項目的可選人類可讀詳細資訊。
此項目的識別碼。
此項目的簡短名稱,例如「Java 語言狀態」等。
selector: DocumentSelector
定義此項目針對哪些編輯器顯示的 selector。
severity: LanguageStatusSeverity
此項目的嚴重性。
預設為 information。 您可以使用此屬性向使用者發出訊號,表示存在需要注意的問題,例如遺失的可執行檔或無效的組態。
要顯示為條目的文字。 您可以利用以下語法將圖示嵌入到文字中
My text $(icon-name) contains icons like $(icon-name) this one.
其中 icon-name 取自 ThemeIcon icon set,例如 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
建立新的位置物件。
參數 | 描述 |
---|---|
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
將給定的偵錯訊息輸出到通道。
只有在通道設定為顯示 debug 記錄層級或更低時,才會記錄此訊息。
參數 | 描述 |
---|---|
message: string | 要記錄的偵錯訊息 |
...args: any[] | |
傳回 | 描述 |
void |
處置並釋放相關資源。
參數 | 描述 |
---|---|
傳回 | 描述 |
void |
error(error: string | Error, ...args: any[]): void
將給定的錯誤或錯誤訊息輸出到通道。
只有在通道設定為顯示 error 記錄層級或更低時,才會記錄此訊息。
參數 | 描述 |
---|---|
error: string | Error | 要記錄的錯誤或錯誤訊息 |
...args: any[] | |
傳回 | 描述 |
void |
從 UI 隱藏此通道。
參數 | 描述 |
---|---|
傳回 | 描述 |
void |
info(message: string, ...args: any[]): void
將給定的資訊訊息輸出到通道。
只有在通道設定為顯示 info 記錄層級或更低時,才會記錄此訊息。
參數 | 描述 |
---|---|
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
將給定的追蹤訊息輸出到通道。使用此方法記錄詳細資訊。
只有在通道設定為顯示 trace 記錄層級時,才會記錄此訊息。
參數 | 描述 |
---|---|
message: string | 要記錄的追蹤訊息 |
...args: any[] | |
傳回 | 描述 |
void |
warn(message: string, ...args: any[]): void
將給定的警告訊息輸出到通道。
只有在通道設定為顯示 warning 記錄層級或更低時,才會記錄此訊息。
參數 | 描述 |
---|---|
message: string | 要記錄的警告訊息 |
...args: any[] | |
傳回 | 描述 |
void |
MarkdownString (Markdown 字串)
人類可讀的文字,支援透過 markdown 語法 進行格式化。
當 supportThemeIcons 設定為 true
時,支援透過 $(<name>)
語法呈現 主題圖示。
當 supportHtml 設定為 true
時,支援呈現嵌入式 html。
建構函式
new MarkdownString(value?: string, supportThemeIcons?: boolean): MarkdownString
使用給定值建立新的 markdown 字串。
參數 | 描述 |
---|---|
value?: string | 可選的初始值。 |
supportThemeIcons?: boolean | 可選的,指定 ThemeIcons 是否在 MarkdownString 中受到支援。 |
傳回 | 描述 |
MarkdownString (Markdown 字串) |
屬性
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 (Markdown 字串) |
appendMarkdown(value: string): MarkdownString
將給定字串「依原樣」附加到此 markdown 字串。當 supportThemeIcons 為 true
時,value
中的 ThemeIcons 將會圖示化。
參數 | 描述 |
---|---|
value: string | Markdown 字串。 |
傳回 | 描述 |
MarkdownString (Markdown 字串) |
appendText(value: string): MarkdownString
附加並逸出給定字串到此 markdown 字串。
參數 | 描述 |
---|---|
value: string | 純文字。 |
傳回 | 描述 |
MarkdownString (Markdown 字串) |
MarkedString (標記字串)
MarkedString 可用於呈現人類可讀的文字。它可以是 markdown 字串或程式碼區塊,提供語言和程式碼片段。請注意,markdown 字串將會經過清理 - 這表示 html 將會逸出。
- 已棄用 - 此類型已棄用,請改用 MarkdownString。
MarkedString: string | {language: string, value: string}
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 擱置中](#NotebookCellExecutionState.Pending Pending) 狀態。當在執行任務上呼叫 start(...) 時,它會進入 [NotebookCellExecutionState.Executing 執行中](#NotebookCellExecutionState.Executing Executing) 狀態。當呼叫 end(...) 時,它會進入 [NotebookCellExecutionState.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。如果未定義,則不顯示勾號或 X 圖示。 |
endTime?: number | 執行完成的時間,以 Unix epoch 的毫秒為單位。 |
傳回 | 描述 |
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 epoch 的毫秒為單位。用於驅動顯示儲存格已執行多久的時鐘。如果未給定,則不會顯示時鐘。 |
傳回 | 描述 |
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
的 Factory 函數。
參數 | 描述 |
---|---|
value: Error | 錯誤物件。 |
傳回 | 描述 |
NotebookCellOutputItem | 新的輸出項目物件。 |
json(value: any, mime?: string): NotebookCellOutputItem
用於從 JSON 物件建立 NotebookCellOutputItem
的 Factory 函數。
請注意,此函數不是預期「字串化的 JSON」,而是可以字串化的物件。當傳遞的值無法 JSON 字串化時,此函數將擲回錯誤。
參數 | 描述 |
---|---|
value: any | 可 JSON 字串化的值。 |
mime?: string | 可選的 MIME 類型,預設為 |
傳回 | 描述 |
NotebookCellOutputItem | 新的輸出項目物件。 |
stderr(value: string): NotebookCellOutputItem
用於建立使用 application/vnd.code.notebook.stderr
MIME 類型的 NotebookCellOutputItem
的 Factory 函數。
參數 | 描述 |
---|---|
value: string | 字串。 |
傳回 | 描述 |
NotebookCellOutputItem | 新的輸出項目物件。 |
stdout(value: string): NotebookCellOutputItem
用於建立使用 application/vnd.code.notebook.stdout
MIME 類型的 NotebookCellOutputItem
的 Factory 函數。
參數 | 描述 |
---|---|
value: string | 字串。 |
傳回 | 描述 |
NotebookCellOutputItem | 新的輸出項目物件。 |
text(value: string, mime?: string): NotebookCellOutputItem
用於從字串建立 NotebookCellOutputItem
的 Factory 函數。
請注意,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 | 如果應取消此請求,則會觸發 Token。 |
傳回 | 描述 |
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 中的執行手勢被選取時,例如「執行儲存格」、「執行全部」、「執行選取範圍」等,會調用執行處理常式。執行處理常式負責建立和管理 execution 物件。
參數 | 描述 |
---|---|
cells: NotebookCell[] | |
notebook: NotebookDocument | |
controller: NotebookController | |
傳回 | 描述 |
void | Thenable<void> |
此筆記本控制器的識別碼。
請注意,控制器會依其識別碼記住,且擴充功能應在不同會話中使用穩定的識別碼。
interruptHandler?: (notebook: NotebookDocument) => void | Thenable<void>
可選的中斷處理常式。
預設情況下,儲存格執行會透過 tokens 取消。取消 Token 要求控制器可以追蹤其執行,以便稍後取消特定執行。並非所有情況都允許這樣做,例如,REPL 樣式的控制器通常透過中斷目前正在執行的任何內容來運作。對於這些情況,存在中斷處理常式 - 可以將其視為終端機中 SIGINT
或 Control+C
的等效項。
請注意,支援 取消 Token 是首選,並且只有在無法支援 Token 時才應使用中斷處理常式。
參數 | 描述 |
---|---|
notebook: NotebookDocument | |
傳回 | 描述 |
void | Thenable<void> |
此筆記本控制器的人類可讀標籤。
此控制器適用的筆記本類型。
此控制器支援的語言識別碼陣列。可以使用 getLanguages 中的任何語言識別碼。當為 falsy 時,支援所有語言。
範例
// 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
筆記本內容選項定義筆記本的哪些部分會被持久保存。請注意
例如,筆記本序列化程式可以選擇不儲存輸出,在這種情況下,當筆記本的輸出已變更時,編輯器不會將筆記本標記為 dirty。
屬性
控制儲存格中繼資料屬性變更事件是否會觸發筆記本文件內容變更事件,以及是否會用於差異編輯器,預設值為 false。如果內容提供者未將中繼資料屬性持久儲存在檔案文件中,則應將其設定為 true。
控制文件的中繼資料屬性變更事件是否會觸發筆記本文件內容變更事件,以及是否會用於差異編輯器,預設值為 false。如果內容提供者未將中繼資料屬性持久儲存在檔案文件中,則應將其設定為 true。
控制輸出變更事件是否會觸發筆記本文件內容變更事件,以及是否會用於差異編輯器,預設值為 false。如果內容提供者未將輸出持久儲存在檔案文件中,則應將其設定為 true。
NotebookDocumentShowOptions
屬性
一個選用旗標,當設定為 true
時,將停止 筆記本編輯器 取得焦點。
一個選用旗標,用於控制 筆記本編輯器 索引標籤是否顯示為預覽。預覽索引標籤將會被取代和重複使用,直到設定為保持不變 - 無論是明確地設定或透過編輯。預設行為取決於 workbench.editor.enablePreview
設定。
selections?: readonly NotebookRange[]
要在 筆記本編輯器 中為文件套用的選取範圍 (選用)。
viewColumn?: ViewColumn
應在其中顯示 筆記本編輯器 的選用檢視欄。預設值為 active。不存在的欄會視需要建立,最多可達 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 中取得,稍後會完成。
屬性
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 | 一個位置。 |
傳回 | 描述 |
boolean | 如果位置在較大的行上,或在同一行上但字元較大,則為 |
isAfterOrEqual(other: Position): boolean
檢查此位置是否在 other
之後或與 other
相等。
參數 | 描述 |
---|---|
other: Position | 一個位置。 |
傳回 | 描述 |
boolean | 如果位置在較大的行上,或在同一行上但字元較大或相等,則為 |
isBefore(other: Position): boolean
檢查此位置是否在 other
之前。
參數 | 描述 |
---|---|
other: Position | 一個位置。 |
傳回 | 描述 |
boolean | 如果位置在較小的行上,或在同一行上但字元較小,則為 |
isBeforeOrEqual(other: Position): boolean
檢查此位置是否在 other
之前或與 other
相等。
參數 | 描述 |
---|---|
other: Position | 一個位置。 |
傳回 | 描述 |
boolean | 如果位置在較小的行上,或在同一行上但字元較小或相等,則為 |
isEqual(other: Position): boolean
檢查此位置是否與 other
相等。
參數 | 描述 |
---|---|
other: Position | 一個位置。 |
傳回 | 描述 |
boolean | 如果給定位置的行和字元與此位置的行和字元相等,則為 |
translate(lineDelta?: number, characterDelta?: number): Position
建立相對於此位置的新位置。
參數 | 描述 |
---|---|
lineDelta?: number | 行數值的 Delta 值,預設值為 |
characterDelta?: number | 字元數值的 Delta 值,預設值為 |
傳回 | 描述 |
Position | 一個位置,其行和字元是目前行和字元與對應 Delta 值的總和。 |
translate(change: {characterDelta: number, lineDelta: number}): Position
衍生一個相對於此位置的新位置。
參數 | 描述 |
---|---|
change: {characterDelta: number, lineDelta: number} | 描述此位置的 Delta 值的物件。 |
傳回 | 描述 |
Position | 一個反映給定 Delta 值的位置。如果變更沒有任何作用,將傳回 |
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
在工具執行時顯示的自訂進度訊息。
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
編輯器中可以顯示進度資訊的位置。進度的視覺呈現方式取決於位置。
列舉成員
顯示原始檔控制 Viewlet 的進度,作為圖示的覆疊,以及 Viewlet 內部的進度列 (可見時)。兩者皆不支援取消或離散進度,也不支援描述作業的標籤。
在編輯器的狀態列中顯示進度。兩者皆不支援取消或離散進度。支援透過進度標籤中的 $(<name>)
語法,轉譯佈景主題圖示。
將進度顯示為具有選用取消按鈕的通知。支援顯示無限和離散進度,但不支援轉譯圖示。
ProgressOptions
描述應在何處以及如何顯示進度的值物件。
屬性
控制是否應顯示取消按鈕,以允許使用者取消長時間執行的作業。請注意,目前只有 ProgressLocation.Notification
支援顯示取消按鈕。
location: ProgressLocation | {viewId: string}
應顯示進度的位置。
人類可讀的字串,將用於描述作業。
ProviderResult<T>
提供者結果代表提供者 (例如 HoverProvider) 可能傳回的值。首先,這是實際結果類型 T
,例如 Hover
,或可解析為該類型 T
的 Thenable。此外,可以傳回 null
和 undefined
- 無論是直接傳回還是從 Thenable 傳回。
以下程式碼片段都是 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 | 傳入的資料。 範例: 在終端機中回顯輸入。Enter 鍵 (
|
傳回 | 描述 |
void |
open(initialDimensions: TerminalDimensions): void
實作以處理 pty 開啟並準備好開始觸發事件時的情況。
參數 | 描述 |
---|---|
initialDimensions: TerminalDimensions | 終端機的尺寸,如果終端機面板在呼叫此方法之前尚未開啟,則此值將為 undefined。 |
傳回 | 描述 |
void |
setDimensions(dimensions: TerminalDimensions): void
實作以處理符合終端機面板的列數和欄數變更時的情況,例如當字型大小變更或面板大小調整時。終端機尺寸的初始狀態應視為 undefined
,直到觸發此狀態為止,因為終端機的大小在使用者介面中顯示之前是未知的。
當尺寸被 onDidOverrideDimensions 覆寫時,setDimensions
將繼續使用一般面板尺寸呼叫,允許擴充功能繼續對尺寸變更做出反應。
參數 | 描述 |
---|---|
dimensions: TerminalDimensions | 新的尺寸。 |
傳回 | 描述 |
void |
QuickDiffProvider
快速差異提供者提供 uri 給已修改資源的原始狀態。編輯器將使用此資訊在文字中轉譯 Ad'hoc 差異。
方法
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.showQuickPick 無法提供所需的彈性時,應使用 window.createQuickPick。
事件
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 建立的 quickpick 時才會呈現。當使用 showQuickPick() API 時,不會呈現按鈕。
注意:當 kind 設定為 QuickPickItemKind.Separator 時,此屬性會被忽略
人類可讀的字串,在同一行中以較不明顯的方式呈現。支援透過 $(<name>)
語法呈現 主題圖示。
注意:當 kind 設定為 QuickPickItemKind.Separator 時,此屬性會被忽略
人類可讀的字串,在不同的行中以較不明顯的方式呈現。支援透過 $(<name>)
語法呈現 主題圖示。
注意:當 kind 設定為 QuickPickItemKind.Separator 時,此屬性會被忽略
iconPath?: IconPath
QuickPickItem 的圖示路徑或 ThemeIcon。
kind?: QuickPickItemKind
QuickPickItem 的種類,將決定此項目在 quick pick 中如何呈現。若未指定,預設值為 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 是一個可以在 quick pick 中選取的項目。
QuickPickOptions
用於設定 quick pick UI 行為的選項。
事件
onDidSelectItem(item: string | QuickPickItem): any
選用函數,每當選取項目時就會調用。
參數 | 描述 |
---|---|
item: string | QuickPickItem | |
傳回 | 描述 |
any |
屬性
選用旗標,使選擇器接受多重選取,如果為 true,則結果為選取項目的陣列。
設定為 true
可在焦點移至編輯器的另一部分或另一個視窗時保持選擇器開啟。此設定在 iPad 上會被忽略,且始終為 false。
選用旗標,用於在篩選選取項目時包含描述。
選用旗標,用於在篩選選取項目時包含詳細資訊。
選用字串,在輸入框中顯示為預留位置,以引導使用者選取內容。
選用字串,代表 quick pick 的標題。
Range
範圍代表兩個位置的有序對。保證 start.isBeforeOrEqual(end)
範圍物件是不可變的。使用 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 | 一個從零開始的字元數值。 |
傳回 | 描述 |
範圍 |
屬性
end: Position
如果 start
和 end
相等,則為 true
。
如果 start.line
和 end.line
相等,則為 true
。
start: Position
方法
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。
- deprecated - 此屬性已過時,請改用 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}>
用於在執行重新命名之前解析和驗證位置的選用函數。結果可以是範圍或範圍和預留位置文字。預留位置文字應為正在重新命名的符號的識別碼 - 省略時,將使用傳回範圍中的文字。
注意: 當提供的位置不允許重新命名時,此函數應擲回錯誤或傳回 rejected 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 | 符號的新名稱。如果給定的名稱無效,提供者必須傳回 rejected 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 | 一個從零開始的字元數值。 |
傳回 | 描述 |
選取範圍 |
屬性
active: Position
游標的位置。此位置可能在 anchor 之前或之後。
anchor: Position
選取範圍開始的位置。此位置可能在 active 之前或之後。
end: Position
如果 start
和 end
相等,則為 true
。
如果 start.line
和 end.line
相等,則為 true
。
start: Position
方法
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 }
常值,則使用 escapeChar
跳脫 charsToEscape
中的所有字元。
用於強引號的字元。字串長度必須為 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:預設值}
定義。另請參閱 完整的程式碼片段語法。
建構函式
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
程式碼片段編輯 (snippet edit) 代表由編輯器執行的互動式編輯。
請注意,程式碼片段編輯始終可以作為一般的 文字編輯 執行。當沒有符合的編輯器開啟,或者當 工作區編輯 包含多個檔案的程式碼片段編輯時,就會發生這種情況。在這種情況下,只有那些與活動編輯器匹配的程式碼片段編輯才會作為程式碼片段編輯執行,而其他的則作為普通的文字編輯執行。
靜態
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
可選的接受輸入命令。
當使用者接受原始檔控制輸入中的值時,將會調用此命令。
可選的提交範本字串。
原始檔控制檢視區 (viewlet) 將在適當的時候使用此值填充原始檔控制輸入。
此原始檔控制的 ID。
inputBox: SourceControlInputBox
此原始檔控制的 輸入框。
此原始檔控制的人類可讀標籤。
quickDiffProvider?: QuickDiffProvider
可選的 快速差異提供者。
rootUri: Uri
此原始檔控制根目錄的 (可選) Uri。
statusBarCommands?: Command[]
可選的狀態列命令。
這些命令將顯示在編輯器的狀態列中。
方法
createResourceGroup(id: string, label: string): SourceControlResourceGroup
建立新的 資源群組。
參數 | 描述 |
---|---|
id: string | |
label: string | |
傳回 | 描述 |
SourceControlResourceGroup |
處理此原始檔控制。
參數 | 描述 |
---|---|
傳回 | 描述 |
void |
SourceControlInputBox
代表原始檔控制檢視區中的輸入框。
屬性
控制是否啟用輸入框 (預設為 true
)。
要在輸入框中顯示為預留位置以引導使用者的字串。
輸入框內容的 Setter 和 Getter。
控制輸入框是否可見 (預設為 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 狀態」等。 盡量保持名稱簡短,但描述性要足夠,讓使用者可以理解狀態列項目是關於什麼的。
此項目的優先順序。 值越高表示項目應更靠左顯示。
要顯示為條目的文字。 您可以利用以下語法將圖示嵌入到文字中
My text $(icon-name) contains icons like $(icon-name) this one.
其中 icon-name 取自 ThemeIcon icon set,例如 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: 字串 | 自訂編輯器的檢視類型。 |
傳回 | 描述 |
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: 字串 | 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 以取得一組預先定義的可用群組。預設為未定義,表示任務不屬於任何特殊群組。
任務是否為背景任務。
任務的名稱
presentationOptions: TaskPresentationOptions
呈現選項。預設為空的常值。
附加到任務的問題比對器。預設為空陣列。
runOptions: RunOptions
任務的執行選項
scope: WorkspaceFolder | Global | Workspace
任務的範圍。
描述此 Shell 任務來源的人類可讀字串,例如 'gulp' 或 'npm'。支援透過 $(<name>)
語法呈現主題圖示。
TaskDefinition
定義系統中任務種類的結構。該值必須可 JSON 字串化。
屬性
任務定義,描述由擴充功能提供的任務。通常,任務提供者會定義更多屬性來識別任務。它們需要在擴充功能的 package.json 中,在 'taskDefinitions' 擴充點下定義。例如,npm 任務定義看起來像這樣
interface NpmTaskDefinition extends TaskDefinition {
script: string;
}
請注意,以 '$' 開頭的類型識別碼保留供內部使用,不應由擴充功能使用。
TaskEndEvent
表示已執行任務結束的事件。
此介面不應實作。
屬性
execution: TaskExecution
代表已完成任務的任務項目。
TaskExecution
代表已執行 Task 的物件。可用於終止任務。
此介面不應實作。
屬性
task: Task
已啟動的任務。
方法
終止任務執行。
參數 | 描述 |
---|---|
傳回 | 描述 |
void |
TaskFilter
任務篩選器依其版本和類型表示任務
屬性
要傳回的任務類型;
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 | 任務群組的人類可讀名稱。 |
傳回 | 描述 |
TaskGroup |
屬性
任務群組的 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
遙測記錄器,擴充功能可用於記錄使用情況和錯誤遙測。
記錄器包裝在 sender 周圍,但它保證
- 使用者停用或調整遙測的設定會受到尊重,並且
- 潛在的敏感資料會被移除
它也啟用「echo 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
是否應將擴充功能主機上由您的擴充功能造成的未處理錯誤記錄到您的 sender。如果未定義,則預設為 false
。
TelemetrySender
遙測 sender 是遙測記錄器和某些遙測服務之間的合約。請注意,擴充功能「不得」直接呼叫其 sender 的方法,因為記錄器提供額外的防護和清除。
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>
選用的 flush 函式,當其 TelemetryLogger 正在處置時,將讓此 sender 有機會傳送任何剩餘的事件
參數 | 描述 |
---|---|
傳回 | 描述 |
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
終端機的結束狀態,當終端機處於活動中時,這將是未定義的。
範例:當終端機以非零結束代碼結束時,顯示包含結束代碼的通知。
window.onDidCloseTerminal(t => {
if (t.exitStatus && t.exitStatus.code) {
vscode.window.showInformationMessage(`Exit code: ${t.exitStatus.code}`);
}
});
終端機的名稱。
shell 處理程序的處理程序識別碼。
shellIntegration: TerminalShellIntegration
包含終端機 shell 整合 技術的功能物件。這在終端機建立後會立即是 undefined
。聆聽 window.onDidChangeTerminalShellIntegration 以在終端機啟用 shell 整合時收到通知。
請注意,如果 shell 整合永遠未啟用,此物件可能會保持未定義。例如,命令提示字元不支援 shell 整合,且使用者的 shell 設定可能會與自動 shell 整合啟用衝突。
state: TerminalState
Terminal 的目前狀態。
方法
處置並釋放相關資源。
參數 | 描述 |
---|---|
傳回 | 描述 |
void |
如果目前顯示此終端機,則隱藏終端機面板。
參數 | 描述 |
---|---|
傳回 | 描述 |
void |
sendText(text: string, shouldExecute?: boolean): void
將文字傳送到終端機。文字會寫入終端機基礎 pty 處理程序 (shell) 的 stdin。
參數 | 描述 |
---|---|
text: string | 要傳送的文字。 |
shouldExecute?: boolean | 表示要傳送的文字應執行,而不是僅插入終端機。新增的字元為 |
傳回 | 描述 |
void |
show(preserveFocus?: boolean): void
顯示終端機面板,並在 UI 中顯示此終端機。
參數 | 描述 |
---|---|
preserveFocus?: boolean | 當 |
傳回 | 描述 |
void |
TerminalDimensions
代表終端機的尺寸。
屬性
終端機中的欄數。
終端機中的列數。
TerminalEditorLocationOptions
假設 TerminalLocation 為編輯器,並允許指定 ViewColumn 和 preserveFocus 屬性
屬性
選用旗標,當 true
時,將停止 Terminal 取得焦點。
viewColumn: ViewColumn
要在編輯器區域中顯示 terminal 的檢視欄。預設值為 active。不存在的欄會視需要建立,最多為 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 | 當您將滑鼠游標停留在這個連結上時顯示的工具提示文字。 如果提供工具提示,則會顯示在字串中,其中包含如何觸發連結的指示,例如 |
傳回 | 描述 |
TerminalLink |
屬性
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 引數。
要用於終端機的自訂 shell 可執行檔的路徑。
終端機處理程序環境是否應與 TerminalOptions.env
中提供的環境完全相同。當此值為 false (預設值) 時,環境將以視窗的環境為基礎,並套用已設定的平台設定,例如頂端的 terminal.integrated.env.windows
。當此值為 true 時,必須提供完整的環境,因為不會從處理程序或任何組態繼承任何項目。
TerminalProfile
終端機設定檔定義終端機的啟動方式。
建構函式
new TerminalProfile(options: TerminalOptions | ExtensionTerminalOptions): TerminalProfile
建立新的終端機設定檔。
參數 | 描述 |
---|---|
options: TerminalOptions | ExtensionTerminalOptions | 終端機將使用其啟動的選項。 |
傳回 | 描述 |
TerminalProfile |
屬性
options: TerminalOptions | ExtensionTerminalOptions
終端機將使用其啟動的選項。
TerminalProfileProvider
在透過 UI 或命令啟動時,為貢獻的終端機設定檔提供終端機設定檔。
方法
provideTerminalProfile(token: CancellationToken): ProviderResult<TerminalProfile>
提供終端機設定檔。
參數 | 描述 |
---|---|
token: CancellationToken | 表示不再需要結果的取消 Token。 |
傳回 | 描述 |
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 整合腳本的實作。
指出命令列值是否來自受信任的來源,因此可以安全執行,而無需使用者額外確認,例如詢問「您是否要執行 (command)?」的通知。只有在您要再次執行命令時,才可能需要此驗證。
只有當命令列是由 shell 整合腳本明確回報時(即 高可信度),且它使用 nonce 進行驗證時,此值才為 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 | 要執行的命令列,這是將傳送到終端機的確切文字。 |
傳回 | 描述 |
TerminalShellExecution |
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 時請小心,因為像 |
傳回 | 描述 |
TerminalShellExecution |
TerminalShellIntegrationChangeEvent
表示終端機的 shell 整合已變更的事件。
屬性
shellIntegration: TerminalShellIntegration
Shell 整合物件。
terminal: Terminal
已在其中啟用 shell 整合的終端機。
TerminalSplitLocationOptions
針對終端機使用父 Terminal 的位置
屬性
parentTerminal: Terminal
要將此終端機在其旁邊分割的父終端機。無論父終端機是在面板還是編輯器區域中,這都有效。
TerminalState
代表 Terminal 的狀態。
屬性
指出是否已與 Terminal 互動。互動表示終端機已將資料傳送到程序,這取決於終端機的模式。依預設,當按下按鍵或命令或擴充功能傳送文字時,就會傳送輸入,但根據終端機的模式,也可能在以下情況發生:
- 指標點擊事件
- 指標捲動事件
- 指標移動事件
- 終端機焦點移入/移出
如需有關可能傳送資料的事件的詳細資訊,請參閱 https://invisible-island.net/xterm/ctlseqs/ctlseqs.html 上的「DEC 私人模式設定 (DECSET)」。
偵測到的 Terminal 的 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 執行個體的集合,這些執行個體又可以有自己的 children 來形成「測試樹狀結構」。
擴充功能控制何時新增測試。例如,擴充功能應在 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 | TestRunProfile 的執行個體,會自動與此控制器建立關聯。 |
createTestItem(id: string, label: string, uri?: Uri): TestItem
建立新的受管理 TestItem 執行個體。可以將其新增至現有項目的 TestItem.children 中,或新增至 TestController.items 中。
參數 | 描述 |
---|---|
id: string | TestItem 的識別碼。測試項目的 ID 在其新增到的 TestItemCollection 中必須是唯一的。 |
label: string | 測試項目的使用者可讀標籤。 |
uri?: Uri | 與此 TestItem 建立關聯的 URI。可能是檔案或目錄。 |
傳回 | 描述 |
TestItem |
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。 |
傳回 | 描述 |
TestItem | 找到的項目;如果不存在,則為 undefined。 |
replace(items: readonly TestItem[]): void
取代集合儲存的項目。
參數 | 描述 |
---|---|
items: readonly TestItem[] | 要儲存的項目。 |
傳回 | 描述 |
void |
TestMessage
與測試狀態相關聯的訊息。可以連結到特定的原始碼範圍 -- 例如,對於斷言失敗很有用。
靜態
diff(message: string | MarkdownString, expected: string, actual: string): TestMessage
建立新的 TestMessage,將在編輯器中以差異 (diff) 形式呈現。
參數 | 描述 |
---|---|
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 取消測試執行時將觸發的取消 token。
方法
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 來描述失敗。這與「failed」狀態不同,因為它指示測試根本無法執行,例如來自編譯錯誤。
參數 | 描述 |
---|---|
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 | 指示應取消操作的取消 token。 |
傳回 | 描述 |
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 實例才有資格在此設定檔中執行。
方法
刪除執行設定檔。
參數 | 描述 |
---|---|
傳回 | 描述 |
void |
TestRunProfileKind
TestRunProfiles 控制的執行種類。
列舉成員
Run
測試設定檔種類。
Debug
測試設定檔種類。
Coverage
測試設定檔種類。
TestRunRequest
TestRunRequest 是 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[] | 要執行的特定測試陣列,或未定義以執行所有測試 |
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
代表文字文件,例如原始碼檔案。文字文件具有 lines 以及關於底層資源(如檔案)的知識。
屬性
eol: EndOfLine
此文件中主要使用的 行尾 序列。
關聯資源的檔案系統路徑。 TextDocument.uri.fsPath 的簡寫表示法。與 uri 方案無關。
如果文件已關閉,則為 true
。關閉的文件不再同步,並且在再次開啟相同資源時不會重複使用。
如果有未持久保存的變更,則為 true
。
此文件是否代表尚未儲存過的未命名檔案。請注意,這並不表示文件將儲存到磁碟,請使用 Uri.scheme 來確定文件將 儲存 到何處,例如 file
、ftp
等。
與此文件關聯的語言識別碼。
此文件中的行數。
uri: Uri
此文件的相關聯 uri。
請注意,大多數文件使用 file
方案,這表示它們是磁碟上的檔案。但是,並非所有文件都儲存在磁碟上,因此在嘗試存取底層檔案或磁碟上的同層級檔案之前,必須檢查 scheme
。
另請參閱
此文件的版本號碼(在每次變更後都會嚴格遞增,包括 undo/redo)。
方法
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> | 當檔案已儲存時,將解析為 |
validatePosition(position: Position): Position
validateRange(range: Range): Range
TextDocumentChangeEvent
描述交易式 文件 變更的事件。
屬性
contentChanges: readonly TextDocumentContentChangeEvent[]
內容變更的陣列。
document: TextDocument
受影響的文件。
reason: TextDocumentChangeReason
文件變更的原因。如果原因不明,則為 undefined
。
TextDocumentChangeReason
文字文件變更的原因。
列舉成員
文字變更是由復原操作引起的。
文字變更是由重做操作引起的。
TextDocumentContentChangeEvent
描述 文件 文字中個別變更的事件。
屬性
range: Range
被取代的範圍。
被取代範圍的長度。
被取代範圍的偏移量。
該範圍的新文字。
TextDocumentContentProvider
文字文件內容提供者允許將唯讀文件新增至編輯器,例如來自 dll 的原始碼或來自 md 產生的 html。
事件
資源已變更的訊號事件。
方法
provideTextDocumentContent(uri: Uri, token: CancellationToken): ProviderResult<string>
參數 | 描述 |
---|---|
uri: Uri | 其協定符合此提供者 註冊 的協定的 uri。 |
token: CancellationToken | 取消權杖。 |
傳回 | 描述 |
ProviderResult<string> | 字串或可解析為字串的 thenable 物件。 |
TextDocumentSaveReason
表示文字文件儲存的原因。
列舉成員
手動觸發,例如使用者按下儲存、開始偵錯或 API 呼叫。
延遲後自動儲存。
當編輯器失去焦點時。
TextDocumentShowOptions
屬性
一個可選標誌,當為 true
時,將阻止 編輯器 取得焦點。
一個可選標誌,控制 編輯器 標籤是否顯示為預覽。預覽標籤將被替換和重複使用,直到設定為保持不變 - 無論是明確地還是透過編輯。
注意,如果使用者已在設定中停用預覽編輯器,則此標誌會被忽略。
selection?: Range
要在 編輯器 中為文件套用的可選選取範圍。
viewColumn?: ViewColumn
應在其中顯示 編輯器 的可選檢視欄。預設值為 active。不存在的欄將根據需要建立,最多為 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
文件中使用的 eol 序列。
注意,eol 序列將套用於整個文件。
此編輯將插入的字串。
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[] | 插入程式碼片段的位置或範圍,預設為目前的編輯器選取範圍或多個選取範圍。 |
options?: {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
在某個位置插入文字。您可以在 value
中使用 \r\n
或 \n
,它們將被正規化為目前的 文件。雖然可以使用 replace 進行等效的文字編輯,但 insert
會產生不同的結果選取範圍(它將被移動)。
參數 | 描述 |
---|---|
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
相對於目前行號呈現相對行號。當取得文字編輯器的選項時,此屬性將始終存在。當設定文字編輯器的選項時,此屬性為可選。
Tab 鍵佔用的空格大小。這用於兩個目的:
- Tab 字元的呈現寬度;
- 當 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.dev.org.tw/api/references/theme-color 中所定義。使用主題色彩優於自訂色彩,因為它讓主題作者和使用者可以變更色彩。
建構函式
new ThemeColor(id: string): ThemeColor
建立主題色彩的參照。
參數 | 描述 |
---|---|
id: string | 色彩的參照。可用的色彩列於 https://vscode.dev.org.tw/api/references/theme-color。 |
傳回 | 描述 |
ThemeColor |
屬性
此色彩的 ID。
ThemeIcon
具名圖示的參照。目前支援 File、Folder 和 ThemeIcon ID。使用主題圖示優於自訂圖示,因為它讓產品主題作者可以變更圖示。
請注意,主題圖示也可以在標籤和描述中呈現。支援主題圖示的位置會明確說明,且它們使用 $(<name>)
語法,例如 quickPick.label = "Hello World $(globe)"
。
靜態
File: ThemeIcon
檔案代表圖示的參照。圖示取自目前的檔案圖示主題,或使用預留位置圖示。
Folder: ThemeIcon
資料夾代表圖示的參照。圖示取自目前的檔案圖示主題,或使用預留位置圖示。
建構函式
new ThemeIcon(id: string, color?: ThemeColor): ThemeIcon
建立主題圖示的參照。
參數 | 描述 |
---|---|
id: string | |
color?: ThemeColor | 圖示的選用 |
傳回 | 描述 |
ThemeIcon |
屬性
color?: ThemeColor
圖示的選用 ThemeColor。色彩目前僅用於 TreeItem 中。
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 類型來支援所有類型的拖放檔案 files,無論檔案的實際 MIME 類型為何。
若要了解拖曳項目的 MIME 類型
- 設定您的
DragAndDropController
- 使用「開發人員:設定記錄層級...」命令將層級設定為「偵錯」
- 開啟開發人員工具,並將具有未知 MIME 類型的項目拖曳到您的樹狀結構上方。MIME 類型將會記錄到開發人員主控台中
請注意,無法傳送至擴充功能的 MIME 類型將會省略。
方法
handleDrag(source: readonly T[], dataTransfer: DataTransfer, token: CancellationToken): void | Thenable<void>
當使用者開始從此 DragAndDropController
拖曳項目時,將會呼叫 handleDrag
。擴充功能可以使用 handleDrag
將其 DataTransferItem
項目新增至拖放。
當項目拖放到相同樹狀結構中的另一個樹狀項目時,您的 DataTransferItem
物件將會保留。使用建議的樹狀 MIME 類型 (application/vnd.code.tree.<treeidlowercase>
) 在資料傳輸中新增樹狀物件。請參閱 DataTransferItem
的文件,以了解如何充分利用此功能。
若要新增可以拖曳到編輯器中的資料傳輸項目,請使用應用程式特定的 MIME 類型「text/uri-list」。 「text/uri-list」的資料應為字串,其中包含以 \r\n
分隔的 toString()
編碼 URI。若要在檔案中指定游標位置,請將 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 不需要設定 accessibilityInformation 的 role
;但是,在 TreeItem 並非以樹狀方式顯示的情況下,設定 role
可能有意義。
checkboxState?: TreeItemCheckboxState | {accessibilityInformation: AccessibilityInformation, state: TreeItemCheckboxState, tooltip: string}
樹狀項目的 TreeItemCheckboxState。onDidChangeTreeData 應在 checkboxState 變更時觸發。
collapsibleState?: TreeItemCollapsibleState
樹狀項目的 TreeItemCollapsibleState。
command?: 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
時,如果項目可折疊,則會指派 資料夾主題圖示,否則會指派 檔案主題圖示。當指定檔案或資料夾 ThemeIcon 時,圖示會從目前檔案圖示主題衍生而來,並針對指定的佈景主題圖示使用 resourceUri (如果提供)。
樹狀項目的選用 ID,在整個樹狀結構中必須是唯一的。ID 用於保留樹狀項目的選取和展開狀態。
如果未提供,則會使用樹狀項目的標籤產生 ID。請注意,當標籤變更時,ID 也會變更,且選取和展開狀態將無法再保持穩定。
label?: string | TreeItemLabel
描述此項目的易讀字串。當 falsy
時,它衍生自 resourceUri。
resourceUri?: Uri
tooltip?: string | MarkdownString
當您將滑鼠游標停留在該項目上方時的工具提示文字。
TreeItemCheckboxState
樹狀項目的核取方塊狀態
列舉成員
判斷項目為未核取
判斷項目為已核取
TreeItemCollapsibleState
樹狀項目的可折疊狀態
列舉成員
判斷項目既無法摺疊也無法展開。表示它沒有子系。
判斷項目是否已摺疊
判斷項目是否已展開
TreeItemLabel
描述 Tree item 的標籤
屬性
highlights?: Array<[number, number]>
要在標籤中醒目提示的範圍。範圍定義為兩個數字的元組,其中第一個是包含的開始索引,第二個是不包含的結束索引
描述 Tree item 的易讀字串。
TreeView<T>
代表樹狀檢視
事件
onDidChangeCheckboxState: Event<TreeCheckboxChangeEvent<T>>
發出元素或根目錄已核取或取消核取的訊號事件。
onDidChangeSelection: Event<TreeViewSelectionChangeEvent<T>>
當 selection 變更時觸發的事件
onDidChangeVisibility: Event<TreeViewVisibilityChangeEvent>
當 visibility 變更時觸發的事件
onDidCollapseElement: Event<TreeViewExpansionEvent<T>>
當元素被摺疊時觸發的事件
onDidExpandElement: Event<TreeViewExpansionEvent<T>>
當元素被展開時觸發的事件
屬性
badge?: ViewBadge
要在此 TreeView 中顯示的徽章。若要移除徽章,請設定為 undefined。
在視圖標題中以較不明顯方式呈現的選用人類可讀描述。將標題描述設定為 null、undefined 或空字串將從視圖中移除描述。
將在視圖中呈現的選用人類可讀訊息。將訊息設定為 null、undefined 或空字串將從視圖中移除訊息。
目前選取的元素。
樹狀檢視標題最初取自擴充功能 package.json。對標題屬性的變更將正確反映在 UI 視圖的標題中。
如果 樹狀檢視 可見則為 true
,否則為 false
。
方法
處置此物件。
參數 | 描述 |
---|---|
傳回 | 描述 |
any |
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 上,磁碟機代號是根目錄,因此以下為 true:
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
的 uris。這是錯誤的,因為所有 uris 都應該有 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 的 scheme。
- 產生的字串不應用於顯示用途,而應用於磁碟作業,例如
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 表示法。
參數 | 描述 |
---|---|
傳回 | 描述 |
any | 物件。 |
toString(skipEncoding?: boolean): string
傳回此 Uri 的字串表示法。URI 的表示法和正規化取決於 scheme。
- 產生的字串可以安全地與 Uri.parse 一起使用。
- 產生的字串不應用於顯示用途。
注意,實作將會積極編碼,這通常會導致非預期但並非不正確的結果。例如,冒號會編碼為 %3A
,這在 file-uri 中可能出乎意料。此外,&
和 =
也會編碼,這對於 http-uris 可能出乎意料。基於穩定性原因,這無法再變更。如果您因過於積極的編碼而受苦,則應使用 skipEncoding
引數:uri.toString(true)
。
參數 | 描述 |
---|---|
skipEncoding?: boolean | 請勿對結果進行百分比編碼,預設為 |
傳回 | 描述 |
string | 此 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 資源的內容安全策略來源。
這是應該在內容安全策略規則中使用的來源。
`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>
若要從 workspace 載入資源到 webview 內,請使用 asWebviewUri 方法,並確保資源的目錄已列在 WebviewOptions.localResourceRoots 中。
請記住,即使 webview 是隔離的,它們仍然允許執行腳本和載入任意內容,因此擴充功能在使用 webview 時必須遵循所有標準的網路安全最佳實務。這包括正確地清理所有不受信任的輸入(包括來自 workspace 的內容)並設定 內容安全策略。
options: WebviewOptions
webview 的內容設定。
方法
asWebviewUri(localResource: Uri): Uri
將本機檔案系統的 URI 轉換為可在 webview 內使用的 URI。
Webview 無法使用 file:
URI 直接從 workspace 或本機檔案系統載入資源。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 可序列化物件。 對於舊版本的 VS Code,如果 但是,如果您的擴充功能在其 |
傳回 | 描述 |
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 從中載入本機(檔案系統)資源的根路徑。
預設為目前 workspace 的根資料夾加上擴充功能的安裝目錄。
傳入空陣列以禁止存取任何本機資源。
portMapping?: readonly WebviewPortMapping[]
在 webview 內部使用的 localhost 連接埠的對應。
連接埠對應允許 webview 透明地定義如何解析 localhost 連接埠。這可用於允許在 webview 內部使用靜態 localhost 連接埠,該連接埠會解析為服務正在執行的隨機連接埠。
如果 webview 存取 localhost 內容,我們建議您指定連接埠對應,即使 webviewPort
和 extensionHostPort
連接埠相同。
注意:連接埠對應僅適用於 http
或 https
URL。Websocket URL(例如 ws://localhost: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
事件。
參數 | 描述 |
---|---|
傳回 | 描述 |
any |
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) 是否保留。
通常,webview 面板的 HTML 內容在面板變得可見時建立,並在隱藏時銷毀。具有複雜狀態或 UI 的擴充功能可以設定 retainContextWhenHidden
,使編輯器保持 webview 內容存在,即使 webview 移動到背景索引標籤。當使用 retainContextWhenHidden
的 webview 變成隱藏時,其腳本和其他動態內容會暫停。當面板再次變得可見時,內容會自動還原到原始狀態。
retainContextWhenHidden
具有很高的記憶體開銷,只有在面板的內容無法快速儲存和還原時才應使用。
WebviewPanelSerializer<T>
還原在 VS Code 關閉時已持久化的 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> | Thenable,表示 webview 已完全還原。 |
WebviewPortMapping
定義用於 webview 內部 localhost 的連接埠對應。
屬性
目的地連接埠。webviewPort
會解析為此連接埠。
要在 webview 內部重新對應的 localhost 連接埠。
WebviewView
基於 webview 的檢視。
事件
onDidChangeVisibility: Event<void>
當檢視的能見度變更時觸發的事件。
觸發能見度變更的動作:
- 檢視已摺疊或展開。
- 使用者切換到側邊欄或面板中的不同檢視群組。
請注意,使用上下文選單隱藏檢視會處置檢視並觸發 onDidDispose
。
onDidDispose: Event<void>
當檢視被處置時觸發的事件。
當使用者明確隱藏檢視時,檢視會被處置(當使用者在檢視中按一下滑鼠右鍵並取消選取 webview 檢視時,會發生這種情況)。
嘗試在使用後已處置的檢視會擲回例外狀況。
屬性
badge?: ViewBadge
要為此 webview 檢視顯示的徽章。若要移除徽章,請設定為未定義。
人類可讀的字串,在標題中以較不明顯的方式呈現。
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
表示組態。它是以下項目的合併檢視:
- 預設設定
- 全域(使用者)設定
- Workspace 設定
- Workspace 資料夾設定 - 來自請求資源所屬的 Workspace 資料夾 之一。
- 語言設定 - 在請求語言下定義的設定。
有效值(由 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 };
注意: Workspace 和 Workspace 資料夾組態包含 launch
和 tasks
設定。它們的 basename 將成為區段識別碼的一部分。以下程式碼片段示範如何從 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 | 組態名稱,支援點狀名稱。 |
傳回 | 描述 |
boolean | 如果區段未解析為 |
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>
更新組態值。更新後的組態值將會被持久儲存。
值可以在以下位置變更:
- 全域設定:變更編輯器的所有執行個體的值。
- 工作區設定:變更目前工作區的值(如果可用的話)。
- 工作區資料夾設定:變更請求資源所屬的 工作區資料夾 之一的設定值。
- 語言設定:變更請求的 languageId 的值。
注意: 若要移除組態值,請使用 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 | 資源識別碼。 |
傳回 | 描述 |
boolean | 如果給定資源將被此編輯觸及,則為 |
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 (承諾) 來表示非同步操作。從擴充功能,可以傳回 任何 類型的承諾,例如 ES6、WinJS、A+ 等。
API 中使用 Thenable
類型來表示獨立於特定承諾程式庫。Thenable
代表通用分母,即 then 方法。
在大多數情況下,承諾的使用是選用的,當 VS Code 呼叫擴充功能時,它可以處理結果類型以及結果類型的 Thenable
。當承諾的使用是選用時,API 會透過傳回 or
類型來指示這一點。
provideNumber(): number | Thenable<number>
取消 Token
操作通常在不穩定的狀態下啟動,而狀態會在操作完成之前變更。例如,IntelliSense 計算開始,而使用者繼續輸入,導致該操作的結果過時。
暴露於此行為的 API 將傳遞一個 CancellationToken
,您可以在其上檢查取消 (isCancellationRequested
) 或在發生取消時收到通知 (onCancellationRequested
)。取消 token 通常是函數呼叫的最後一個參數,並且是選用的。
Disposables (可支配物件)
VS Code API 對於從 VS Code 取得的資源使用 dispose 模式。這適用於事件監聽、命令、與 UI 互動以及各種語言貢獻。
例如,setStatusBarMessage(value: string)
函數傳回一個 Disposable
,在呼叫 dispose
時,它會再次移除訊息。
事件
VS Code API 中的事件公開為函數,您可以使用接聽器函數呼叫它們以進行訂閱。訂閱呼叫會傳回一個 Disposable
,它會在處置時移除事件接聽器。
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) 時觸發的事件。
Strict null (嚴格 Null)
VS Code API 在適當的地方使用 undefined
和 null
TypeScript 類型,以支援 嚴格 null 檢查。
身分驗證的命名空間。