🚀 在 VS Code 中取得

VS Code API

VS Code API 是一組 JavaScript API,您可以在 Visual Studio Code 擴充功能中調用。本頁列出所有擴充功能作者可用的 VS Code API。

API 命名空間與類別

此列表編譯自 VS Code 儲存庫中的 vscode.d.ts 檔案。

身份驗證

身份驗證的命名空間。

事件

當身份驗證提供者的身份驗證會話已新增、移除或變更時觸發的 事件

函數

取得使用者登入指定提供者的所有帳戶。搭配 getSession 使用以取得特定帳戶的身份驗證會話。

目前,只有兩個內建擴充功能貢獻的身份驗證提供者實作 GitHub 和 Microsoft 身份驗證:它們的 providerId 分別是 'github' 和 'microsoft'。

注意:取得帳戶並不表示您的擴充功能有權存取該帳戶或其身份驗證會話。您可以透過呼叫 getSession 來驗證對帳戶的存取權。

參數描述
providerId: string

要使用的提供者 ID

回傳描述
Thenable<readonly AuthenticationSessionAccountInformation[]>

一個 thenable,解析為身份驗證帳戶的唯讀陣列。

取得符合所需範圍的身份驗證會話。如果未註冊具有 providerId 的提供者,或使用者不同意與擴充功能共用身份驗證資訊,則拒絕。如果有多個具有相同範圍的會話,則會向使用者顯示快速選取器,以選擇他們想要使用的帳戶。

目前,只有兩個內建擴充功能貢獻的身份驗證提供者實作 GitHub 和 Microsoft 身份驗證:它們的 providerId 分別是 'github' 和 'microsoft'。

參數描述
providerId: string

要使用的提供者 ID

scopes: readonly string[]

代表請求權限的範圍列表。這些範圍取決於身份驗證提供者

options: AuthenticationGetSessionOptions & {createIfNone: true}
回傳描述
Thenable<AuthenticationSession>

一個 thenable,解析為身份驗證會話

取得符合所需範圍的身份驗證會話。如果未註冊具有 providerId 的提供者,或使用者不同意與擴充功能共用身份驗證資訊,則拒絕。如果有多個具有相同範圍的會話,則會向使用者顯示快速選取器,以選擇他們想要使用的帳戶。

目前,只有兩個內建擴充功能貢獻的身份驗證提供者實作 GitHub 和 Microsoft 身份驗證:它們的 providerId 分別是 'github' 和 'microsoft'。

參數描述
providerId: string

要使用的提供者 ID

scopes: readonly string[]

代表請求權限的範圍列表。這些範圍取決於身份驗證提供者

options: AuthenticationGetSessionOptions & {forceNewSession: true | AuthenticationForceNewSessionOptions}
回傳描述
Thenable<AuthenticationSession>

一個 thenable,解析為身份驗證會話

取得符合所需範圍的身份驗證會話。如果未註冊具有 providerId 的提供者,或使用者不同意與擴充功能共用身份驗證資訊,則拒絕。如果有多個具有相同範圍的會話,則會向使用者顯示快速選取器,以選擇他們想要使用的帳戶。

目前,只有兩個內建擴充功能貢獻的身份驗證提供者實作 GitHub 和 Microsoft 身份驗證:它們的 providerId 分別是 'github' 和 'microsoft'。

參數描述
providerId: string

要使用的提供者 ID

scopes: readonly string[]

代表請求權限的範圍列表。這些範圍取決於身份驗證提供者

options?: AuthenticationGetSessionOptions
回傳描述
Thenable<AuthenticationSession | undefined>

一個 thenable,如果可用則解析為身份驗證會話,如果沒有會話則解析為 undefined

註冊身份驗證提供者。

每個 ID 只能有一個提供者,並且當 ID 已被另一個提供者使用時,會拋出錯誤。ID 區分大小寫。

參數描述
id: string

提供者的唯一識別碼。

label: string

提供者的易讀名稱。

provider: AuthenticationProvider

身份驗證提供者提供者。

options?: AuthenticationProviderOptions

提供者的其他選項。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

聊天

聊天功能的命名空間。使用者透過在聊天視圖中向聊天參與者發送訊息來與他們互動。聊天參與者可以透過 ChatResponseStream 回應 markdown 或其他類型的內容。

函數

建立新的 聊天參與者實例。

參數描述
id: string

參與者的唯一識別碼。

handler: ChatRequestHandler

參與者的請求處理程式。

回傳描述
ChatParticipant

一個新的聊天參與者

命令

用於處理命令的命名空間。簡而言之,命令是一個具有唯一識別碼的函數。該函數有時也稱為命令處理程式

可以使用 registerCommandregisterTextEditorCommand 函數將命令新增至編輯器。命令可以手動執行或從 UI 手勢執行。這些是

  • palette - 使用 package.json 中的 commands 區段,使命令顯示在命令選取區中。
  • keybinding - 使用 package.json 中的 keybindings 區段,為您的擴充功能啟用 快速鍵

來自其他擴充功能和編輯器本身的命令可以被擴充功能存取。但是,當調用編輯器命令時,並非所有參數類型都受支援。

這是一個範例,註冊命令處理程式並將該命令的項目新增至選取區。首先使用識別碼 extension.sayHello 註冊命令處理程式。

commands.registerCommand('extension.sayHello', () => {
  window.showInformationMessage('Hello World!');
});

其次,將命令識別碼綁定到標題,該標題將顯示在選取區中 (package.json)。

{
  "contributes": {
    "commands": [
      {
        "command": "extension.sayHello",
        "title": "Hello World"
      }
    ]
  }
}

函數

執行由給定命令識別碼表示的命令。

  • 注意 1: 當執行編輯器命令時,並非所有類型都允許作為參數傳遞。允許的類型為原始類型 stringbooleannumberundefinednull,以及 PositionRangeUriLocation
  • 注意 2: 當執行由擴充功能貢獻的命令時,沒有任何限制。
參數描述
command: string

要執行的命令的識別碼。

...rest: any[]

傳遞給命令函數的參數。

回傳描述
Thenable<T>

一個 thenable,解析為給定命令的回傳值。當命令處理程式函數未回傳任何內容時,回傳 undefined

檢索所有可用命令的列表。以下底線開頭的命令被視為內部命令。

參數描述
filterInternal?: boolean

設定為 true 以不顯示內部命令 (以下底線開頭)

回傳描述
Thenable<string[]>

Thenable,解析為命令 ID 的列表。

註冊一個可以透過鍵盤快速鍵、選單項目、動作或直接調用的命令。

再次使用現有命令識別碼註冊命令將導致錯誤。

參數描述
command: string

命令的唯一識別碼。

callback: (args: any[]) => any

命令處理程式函數。

thisArg?: any

調用處理程式函數時使用的 this 上下文。

回傳描述
Disposable

Disposable,在處置時取消註冊此命令。

註冊一個可以透過鍵盤快速鍵、選單項目、動作或直接調用的文字編輯器命令。

文字編輯器命令與普通 命令 不同,因為它們僅在調用命令時存在活動編輯器時執行。此外,編輯器命令的命令處理程式可以存取活動編輯器和 edit-builder。請注意,edit-builder 僅在回呼執行時有效。

參數描述
command: string

命令的唯一識別碼。

callback: (textEditor: TextEditor, edit: TextEditorEdit, args: any[]) => void

一個可以存取 編輯器編輯 的命令處理程式函數。

thisArg?: any

調用處理程式函數時使用的 this 上下文。

回傳描述
Disposable

Disposable,在處置時取消註冊此命令。

註解

函數

建立新的 註解控制器實例。

參數描述
id: string

註解控制器的 id

label: string

註解控制器的易讀字串。

回傳描述
CommentController

註解控制器的實例。

除錯

除錯功能的命名空間。

變數

目前活動的 除錯主控台。如果沒有活動的除錯會話,則不會顯示傳送到除錯主控台的輸出。

目前活動的 除錯會話undefined。活動的除錯會話是由除錯動作浮動視窗表示的會話,或是目前顯示在除錯動作浮動視窗下拉選單中的會話。如果沒有活動的除錯會話,則值為 undefined

目前焦點所在的執行緒或堆疊框架,如果沒有執行緒或堆疊成為焦點,則為 undefined。只要有活動的除錯會話,執行緒就可以成為焦點,而堆疊框架只能在會話暫停且已檢索呼叫堆疊時才能成為焦點。

中斷點列表。

事件

活動的除錯會話 已變更時觸發的 事件請注意,當活動的除錯會話變更為 undefined 時,也會觸發該事件。

debug.activeStackItem 已變更時觸發的事件。

當新增、移除或變更中斷點集合時發出的 事件

當從 除錯會話 收到自訂 DAP 事件時觸發的 事件

當新的 除錯會話 已啟動時觸發的 事件

除錯會話 已終止時觸發的 事件

函數

新增中斷點。

參數描述
breakpoints: readonly Breakpoint[]

要新增的中斷點。

回傳描述
void

將透過除錯配接器協定接收的 "Source" 描述符物件轉換為可用於載入其內容的 Uri。如果來源描述符基於路徑,則回傳檔案 Uri。如果來源描述符使用參考編號,則會建構特定的除錯 Uri (scheme 'debug'),這需要對應的 ContentProvider 和正在執行的除錯會話

如果 "Source" 描述符沒有足夠的資訊來建立 Uri,則會拋出錯誤。

參數描述
source: DebugProtocolSource

一個符合除錯配接器協定中定義的 Source 類型的物件。

session?: DebugSession

一個可選的除錯會話,當來源描述符使用參考編號從活動的除錯會話載入內容時將使用。

回傳描述
Uri

一個可用於載入來源內容的 uri。

為特定除錯類型註冊 除錯配接器描述符工廠。擴充功能僅允許為擴充功能定義的除錯類型註冊 DebugAdapterDescriptorFactory。否則會拋出錯誤。為除錯類型註冊多個 DebugAdapterDescriptorFactory 會導致錯誤。

參數描述
debugType: string

工廠註冊的除錯類型。

factory: DebugAdapterDescriptorFactory
回傳描述
Disposable

一個 Disposable,在處置時取消註冊此工廠。

為給定的除錯類型註冊除錯配接器追蹤器工廠。

參數描述
debugType: string

工廠註冊的除錯類型,或 '*' 以比對所有除錯類型。

factory: DebugAdapterTrackerFactory
回傳描述
Disposable

一個 Disposable,在處置時取消註冊此工廠。

為特定除錯類型註冊 除錯組態提供者。可選的 triggerKind 可用於指定何時觸發提供者的 provideDebugConfigurations 方法。目前有兩種觸發類型是可能的:使用值 Initial(或如果未給出觸發類型參數),則 provideDebugConfigurations 方法用於提供初始除錯組態,以複製到新建立的 launch.json 中。使用觸發類型 Dynamic,則 provideDebugConfigurations 方法用於動態決定要呈現給使用者的除錯組態(除了 launch.json 中的靜態組態之外)。請注意,triggerKind 參數僅適用於 provideDebugConfigurations 方法:因此 resolveDebugConfiguration 方法完全不受影響。為不同觸發類型註冊具有解析方法的單一提供者,會導致多次調用相同的解析方法。可以為同一類型註冊多個提供者。

參數描述
debugType: string

提供者註冊的除錯類型。

provider: DebugConfigurationProvider

要註冊的 除錯組態提供者

triggerKind?: DebugConfigurationProviderTriggerKind

提供者的 'provideDebugConfiguration' 方法註冊的 觸發器。如果缺少 triggerKind,則假定值為 DebugConfigurationProviderTriggerKind.Initial

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

移除中斷點。

參數描述
breakpoints: readonly Breakpoint[]

要移除的中斷點。

回傳描述
void

通過使用命名啟動或命名複合組態,或直接傳遞 DebugConfiguration 來開始除錯。命名的組態在給定資料夾中找到的 '.vscode/launch.json' 中查找。在除錯開始之前,所有未儲存的檔案都會儲存,並且啟動組態會更新至最新狀態。組態中使用的資料夾特定變數(例如 '${workspaceFolder}')會針對給定資料夾解析。

參數描述
folder: WorkspaceFolder

用於查找命名組態和解析變數的 工作區資料夾,或用於非資料夾設定的 undefined

nameOrConfiguration: string | DebugConfiguration

除錯或複合組態的名稱,或 DebugConfiguration 物件。

parentSessionOrOptions?: DebugSession | DebugSessionOptions

除錯會話選項。當傳遞父 除錯會話 時,假定選項僅包含此父會話。

回傳描述
Thenable<boolean>

一個 thenable,當除錯可以成功啟動時解析。

停止給定的除錯會話,如果省略會話,則停止所有除錯會話。

參數描述
session?: DebugSession

要停止的 除錯會話;如果省略,則停止所有會話。

回傳描述
Thenable<void>

一個 thenable,當會話已停止時解析。

環境

描述編輯器運行的環境的命名空間。

變數

應用程式的託管位置。在桌面上,這是 'desktop'。在網路上,這是指定的嵌入器,即 'github.dev'、'codespaces',如果嵌入器未提供該資訊,則為 'web'

編輯器的應用程式名稱,例如 'VS Code'。

編輯器運行的應用程式根資料夾。

請注意,當在沒有應用程式根資料夾表示法的環境中運行時,該值為空字串。

系統剪貼簿。

指示這是應用程式的全新安裝。如果在安裝的第一天內,則為 true,否則為 false

指示使用者是否已啟用遙測。可以觀察以確定擴充功能是否應發送遙測。

代表首選使用者語言,例如 de-CHfren-US

編輯器目前的日誌等級。

電腦的唯一識別碼。

遠端的名稱。由擴充功能定義,常見範例是適用於 Windows Subsystem for Linux 的 wsl 或適用於使用安全 shell 的遠端的 ssh-remote

請注意,當沒有遠端擴充功能主機時,該值為 undefined,但如果存在遠端擴充功能主機,則在所有擴充功能主機(本機和遠端)中都定義了該值。使用 Extension.extensionKind 以了解特定擴充功能是否在遠端運行。

當前會話的唯一識別碼。每次啟動編輯器時都會變更。

偵測到的擴充功能主機的預設 shell,這會被擴充功能主機平台的 terminal.integrated.defaultProfile 設定覆寫。請注意,在不支援 shell 的環境中,該值為空字串。

UI 種類屬性指示從哪個 UI 存取擴充功能。例如,可以從桌面應用程式或網頁瀏覽器存取擴充功能。

編輯器在作業系統中註冊的自訂 URI 結構描述。

事件

一個事件,會在編輯器的記錄層級變更時觸發。

一個事件,會在預設 Shell 變更時觸發。這會在新的 Shell 路徑時觸發。

一個事件,會在使用者啟用或停用遙測時觸發。如果使用者已啟用遙測,則為 true,如果使用者已停用遙測,則為 false

函數

將 URI 解析為可從外部存取的格式。

http:https: 結構描述

外部 URI(例如 http:https: 連結)從擴充功能執行的位置解析為用戶端電腦上相同資源的 URI。

如果擴充功能在用戶端電腦上執行,則此操作無效。

如果擴充功能遠端執行,此函式會自動建立從本機電腦到遠端 target 的連接埠轉送通道,並傳回通道的本機 URI。連接埠轉送通道的存留期由編輯器管理,且通道可由使用者關閉。

請注意,透過 openExternal 傳遞的 URI 會自動解析,您不應對它們呼叫 asExternalUri

vscode.env.uriScheme

建立一個 URI,如果在瀏覽器中開啟 (例如透過 openExternal),將會導致觸發已註冊的 UriHandler

擴充功能不應對產生的 URI 做出任何假設,也不應以任何方式變更它。相反地,擴充功能可以例如在驗證流程中使用此 URI,方法是將 URI 新增為回呼查詢引數到伺服器以進行驗證。

請注意,如果伺服器決定將其他查詢參數新增至 URI (例如權杖或密碼),則它將會出現在傳遞至 UriHandler 的 URI 中。

驗證流程範例

vscode.window.registerUriHandler({
  handleUri(uri: vscode.Uri): vscode.ProviderResult<void> {
    if (uri.path === '/did-authenticate') {
      console.log(uri.toString());
    }
  }
});

const callableUri = await vscode.env.asExternalUri(
  vscode.Uri.parse(vscode.env.uriScheme + '://my.extension/did-authenticate')
);
await vscode.env.openExternal(callableUri);

請注意,擴充功能不應快取 asExternalUri 的結果,因為已解析的 URI 可能會因為系統或使用者動作而失效 — 例如,在遠端案例中,使用者可能會關閉由 asExternalUri 開啟的連接埠轉送通道。

任何其他結構描述

任何其他結構描述都將被視為提供的 URI 是工作區 URI。在這種情況下,此方法將傳回一個 URI,當處理該 URI 時,將會使編輯器開啟工作區。

參數描述
target: Uri
回傳描述
Thenable<Uri>

一個可在用戶端電腦上使用的 URI。

建立新的 遙測記錄器

參數描述
sender: TelemetrySender

遙測記錄器使用的遙測傳送者。

options?: TelemetryLoggerOptions

遙測記錄器的選項。

回傳描述
TelemetryLogger

一個新的遙測記錄器

使用預設應用程式從外部開啟連結。根據使用的結構描述,這可以是

  • 瀏覽器 (http:, https:)
  • 郵件用戶端 (mailto:)
  • VSCode 本身 (vscode:,來自 vscode.env.uriScheme)

請注意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));

變數

系統目前已知的所有擴充功能。

事件

一個事件,會在 extensions.all 變更時觸發。這可能會在擴充功能安裝、解除安裝、啟用或停用時發生。

函數

依其完整識別碼取得擴充功能,格式為:publisher.name

參數描述
extensionId: string

擴充功能識別碼。

回傳描述
Extension<T> | undefined

一個擴充功能或 undefined

本地化

擴充功能 API 中用於處理本地化相關功能的命名空間。若要正確使用此功能,您必須在擴充功能資訊清單中定義 l10n,並擁有 bundle.l10n。.json 檔案。如需有關如何產生 bundle.l10n 的詳細資訊。.json 檔案,請查看 vscode-l10n repo

注意:內建擴充功能 (例如,Git、TypeScript 語言功能、GitHub 驗證) 不受 l10n 屬性要求的限制。換句話說,它們不需要在擴充功能資訊清單中指定 l10n,因為它們的翻譯字串來自語言套件。

變數

已載入擴充功能的本地化字串組合包。如果未載入任何組合包,則為 undefined。如果找不到組合包或我們正在使用預設語言執行,則通常不會載入組合包。

已載入擴充功能的本地化組合包 URI。如果未載入任何組合包,則為 undefined。如果找不到組合包或我們正在使用預設語言執行,則通常不會載入組合包。

函數

將字串標記為本地化。如果 env.language 指定的語言有可用的本地化組合包,且該組合包具有此訊息的本地化值,則會傳回該本地化值 (並為任何範本值注入 args 值)。

範例

l10n.t('Hello {0}!', 'World');
參數描述
message: string

要本地化的訊息。支援索引範本,其中 {0}{1} 之類的字串會由 args 陣列中該索引的項目取代。

...args: Array<string | number | boolean>

要在本地化字串中使用的引數。引數的索引用於比對本地化字串中的範本預留位置。

回傳描述
string

具有注入引數的本地化字串。

將字串標記為本地化。如果 env.language 指定的語言有可用的本地化組合包,且該組合包具有此訊息的本地化值,則會傳回該本地化值 (並為任何範本值注入 args 值)。

範例

l10n.t('Hello {name}', { name: 'Erich' });
參數描述
message: string

要本地化的訊息。支援具名範本,其中 {foo}{bar} 之類的字串會由 Record 中該金鑰的值 (foo、bar 等) 取代。

args: Record<string, any>

要在本地化字串中使用的引數。記錄中金鑰的名稱用於比對本地化字串中的範本預留位置。

回傳描述
string

具有注入引數的本地化字串。

將字串標記為本地化。如果 env.language 指定的語言有可用的本地化組合包,且該組合包具有此訊息的本地化值,則會傳回該本地化值 (並為任何範本值注入 args 值)。

參數描述
options: {args: Array<string | number | boolean> | Record<string, any>, comment: string | string[], message: string}

本地化訊息時要使用的選項。

回傳描述
string

具有注入引數的本地化字串。

語言

用於參與語言特定編輯器 功能的命名空間,例如 IntelliSense、程式碼動作、診斷等。

存在許多程式設計語言,並且在語法、語意和範例中存在巨大差異。儘管如此,自動單字完成、程式碼導覽或程式碼檢查等功能已在不同程式設計語言的不同工具中變得流行。

編輯器提供了一個 API,透過讓所有 UI 和動作都已就緒,並允許您僅透過提供資料來參與,從而簡化了提供此類常見功能的方式。例如,若要貢獻 hover,您只需提供一個可以使用 TextDocumentPosition 呼叫的函式,以傳回 hover 資訊。其餘部分,例如追蹤滑鼠、定位 hover、保持 hover 穩定等,都由編輯器處理。

languages.registerHoverProvider('javascript', {
  provideHover(document, position, token) {
    return new Hover('I am a hover!');
  }
});

註冊是使用 文件選取器 完成的,該選取器可以是語言 ID (例如 javascript) 或更複雜的 篩選器 (例如 { language: 'typescript', scheme: 'file' })。將文件與此類選取器比對將產生一個 分數,該分數用於判斷是否以及如何使用提供者。當分數相等時,最後出現的提供者獲勝。對於允許完整元數的功能 (例如 hover),僅檢查分數是否 >0,對於其他功能 (例如 IntelliSense),分數用於判斷要求提供者參與的順序。

事件

一個 事件,會在診斷的整體集合變更時觸發。這是新增和移除的診斷。

函數

建立診斷集合。

參數描述
name?: string

集合的 名稱

回傳描述
DiagnosticCollection

一個新的診斷集合。

建立新的 語言狀態項目

參數描述
id: string

項目的識別碼。

selector: DocumentSelector

文件選取器,定義項目顯示的編輯器。

回傳描述
LanguageStatusItem

一個新的語言狀態項目。

取得指定資源的所有診斷。

參數描述
resource: Uri

一個資源

回傳描述
Diagnostic[]

診斷 物件的陣列或空陣列。

取得所有診斷。

參數描述
回傳描述
Array<[Uri, Diagnostic[]]>

URI-診斷組的陣列或空陣列。

傳回所有已知語言的識別碼。

參數描述
回傳描述
Thenable<string[]>

Promise 解析為識別碼字串陣列。

計算文件 選取器 與文件之間的相符項。大於零的值表示選取器與文件相符。

相符項是根據這些規則計算的

  1. DocumentSelector 是陣列時,計算每個包含的 DocumentFilter 或語言識別碼的相符項,並取最大值。
  2. 字串將會被語法糖化,成為 DocumentFilterlanguage 部分,因此 "fooLang" 就像 { language: "fooLang" }
  3. DocumentFilter 將會透過將其部分與文件進行比較,來與文件比對。以下規則適用
    1. DocumentFilter 為空 ({}) 時,結果為 0
    2. 當定義了 schemelanguagepatternnotebook,但其中一個不相符時,結果為 0
    3. 比對 * 會得到 5 分,透過相等或透過 glob 模式比對會得到 10
    4. 結果是每個相符項的最大值

範例

// 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

當選取器相符時,數字 >0,當選取器不相符時,數字為 0

註冊呼叫階層提供者。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: CallHierarchyProvider

一個呼叫階層提供者。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊程式碼動作提供者。

可以為一種語言註冊多個提供者。在這種情況下,提供者會並行詢問,且結果會合併。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: CodeActionProvider<CodeAction>

一個程式碼動作提供者。

metadata?: CodeActionProviderMetadata

關於提供者提供的程式碼動作種類的中繼資料。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊程式碼鏡頭提供者。

可以為一種語言註冊多個提供者。在這種情況下,提供者會並行詢問,且結果會合併。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: CodeLensProvider<CodeLens>

一個程式碼鏡頭提供者。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊色彩提供者。

可以為一種語言註冊多個提供者。在這種情況下,提供者會並行詢問,且結果會合併。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: DocumentColorProvider

一個色彩提供者。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊完成提供者。

可以為一種語言註冊多個提供者。在這種情況下,提供者會依其 分數 排序,且分數相等的群組會依序要求完成項目。當群組中的一個或多個提供者傳回結果時,程序會停止。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

完成項目提供者可以與一組 triggerCharacters 關聯。當輸入觸發字元時,會要求完成,但僅從註冊了輸入字元的提供者要求完成。因此,觸發字元應與 單字字元 不同,常見的觸發字元是 .,以觸發成員完成。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: CompletionItemProvider<CompletionItem>

一個完成提供者。

...triggerCharacters: string[]

當使用者輸入其中一個字元時觸發完成。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊宣告提供者。

可以為一種語言註冊多個提供者。在這種情況下,提供者會並行詢問,且結果會合併。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: DeclarationProvider

一個宣告提供者。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊定義提供者。

可以為一種語言註冊多個提供者。在這種情況下,提供者會並行詢問,且結果會合併。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: DefinitionProvider

一個定義提供者。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊新的 DocumentDropEditProvider

可以為一種語言註冊多個拖放提供者。當將內容拖放到編輯器中時,將會根據其 DocumentDropEditProviderMetadata 指定的處理 MIME 類型,叫用編輯器語言的所有已註冊提供者。

每個提供者可以傳回一個或多個 DocumentDropEdits。編輯會使用 DocumentDropEdit.yieldTo 屬性排序。預設會套用第一個編輯。如果有任何其他編輯,這些編輯將會在拖放小工具中向使用者顯示為可選取的拖放選項。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: DocumentDropEditProvider<DocumentDropEdit>

一個拖放提供者。

metadata?: DocumentDropEditProviderMetadata

關於提供者的其他中繼資料。

回傳描述
Disposable

一個 Disposable,在處置時會取消註冊此提供者。

註冊文件的格式化提供者。

可以為一種語言註冊多個提供者。在這種情況下,提供者會依其 分數 排序,並使用最相符的提供者。選取的提供者失敗將會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: DocumentFormattingEditProvider

一個文件格式化編輯提供者。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊文件醒目提示提供者。

可以為一種語言註冊多個提供者。在這種情況下,提供者會依其 分數 排序,且群組會依序要求文件醒目提示。當提供者傳回 non-falsynon-failure 結果時,程序會停止。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: DocumentHighlightProvider

一個文件醒目提示提供者。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊文件連結提供者。

可以為一種語言註冊多個提供者。在這種情況下,提供者會並行詢問,且結果會合併。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: DocumentLinkProvider<DocumentLink>

一個文件連結提供者。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊新的 DocumentPasteEditProvider

可以為一種語言註冊多個提供者。對於複製和貼上操作,將會根據 DocumentPasteProviderMetadata 指定的處理 MIME 類型,叫用語言的所有已註冊提供者。

對於 複製操作,每個提供者對 DataTransfer 所做的變更將會合併到單一 DataTransfer 中,用於填入剪貼簿。

對於 [DocumentPasteEditProvider.providerDocumentPasteEdits 貼上操作](#DocumentPasteEditProvider.providerDocumentPasteEdits 貼上操作),將會叫用每個提供者,且每個提供者可以傳回一個或多個 DocumentPasteEdits。編輯會使用 DocumentPasteEdit.yieldTo 屬性排序。預設會套用第一個編輯,其餘編輯將會在貼上小工具中向使用者顯示為可選取的貼上選項。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: DocumentPasteEditProvider<DocumentPasteEdit>

一個貼上編輯器提供者。

metadata: DocumentPasteProviderMetadata

關於提供者的其他中繼資料。

回傳描述
Disposable

一個 Disposable,在處置時會取消註冊此提供者。

註冊文件範圍的格式化提供者。

注意: 文件範圍提供者也是 文件格式器,這表示在同時註冊範圍提供者時,不需要 註冊 文件格式器。

可以為一種語言註冊多個提供者。在這種情況下,提供者會依其 分數 排序,並使用最相符的提供者。選取的提供者失敗將會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: DocumentRangeFormattingEditProvider

一個文件範圍格式化編輯提供者。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊文件範圍的語意符號提供者。

注意: 如果文件同時具有 DocumentSemanticTokensProviderDocumentRangeSemanticTokensProvider,則範圍提供者只會在初始時叫用,在完整文件提供者解析第一個請求所需的時間內。一旦完整文件提供者解析第一個請求,透過範圍提供者提供的語意符號將會被捨棄,並且從那時起,只會使用文件提供者。

可以為一種語言註冊多個提供者。在這種情況下,提供者會依其 分數 排序,並使用最相符的提供者。選取的提供者失敗將會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: DocumentRangeSemanticTokensProvider

一個文件範圍語意符號提供者。

legend: SemanticTokensLegend
回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊整個文件的語意符號提供者。

可以為一種語言註冊多個提供者。在這種情況下,提供者會依其 分數 排序,並使用最相符的提供者。選取的提供者失敗將會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: DocumentSemanticTokensProvider

一個文件語意符號提供者。

legend: SemanticTokensLegend
回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊文件符號提供者。

可以為一種語言註冊多個提供者。在這種情況下,提供者會並行詢問,且結果會合併。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: DocumentSymbolProvider

一個文件符號提供者。

metaData?: DocumentSymbolProviderMetadata

關於提供者的中繼資料

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個供應器,用於在文字文件中定位可評估的表達式。編輯器將在活動的偵錯會話中評估表達式,並在偵錯懸停視窗中顯示結果。

如果為一種語言註冊了多個供應器,則將使用任意一個供應器。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: EvaluatableExpressionProvider

一個可評估表達式供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個摺疊範圍供應器。

可以為一種語言註冊多個供應器。在這種情況下,將並行詢問供應器並合併結果。如果多個摺疊範圍在同一位置開始,則僅使用第一個註冊供應器的範圍。如果摺疊範圍與另一個位置較小的範圍重疊,則也會被忽略。

失敗的供應器(拒絕的 Promise 或異常)不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: FoldingRangeProvider

一個摺疊範圍供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個懸停供應器。

可以為一種語言註冊多個提供者。在這種情況下,提供者會並行詢問,且結果會合併。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: HoverProvider

一個懸停供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個實作供應器。

可以為一種語言註冊多個提供者。在這種情況下,提供者會並行詢問,且結果會合併。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: ImplementationProvider

一個實作供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個內嵌提示供應器。

可以為一種語言註冊多個提供者。在這種情況下,提供者會並行詢問,且結果會合併。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: InlayHintsProvider<InlayHint>

一個內嵌提示供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個內嵌完成項目供應器。

可以為一種語言註冊多個提供者。在這種情況下,提供者會並行詢問,且結果會合併。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: InlineCompletionItemProvider

一個內嵌完成項目供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個供應器,該供應器為偵錯工具的「內嵌值」功能傳回資料。每當通用偵錯工具在原始程式碼檔案中停止時,將呼叫為檔案語言註冊的供應器,以傳回將在行尾的編輯器中顯示的文字資料。

可以為一種語言註冊多個提供者。在這種情況下,提供者會並行詢問,且結果會合併。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: InlineValuesProvider

一個內嵌值供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個連結編輯範圍供應器。

可以為一種語言註冊多個供應器。在這種情況下,供應器會按其 score 排序,並使用具有結果的最佳匹配供應器。選定供應器失敗將導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: LinkedEditingRangeProvider

一個連結編輯範圍供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個在輸入時工作的格式化供應器。當使用者啟用設定 editor.formatOnType 時,此供應器處於活動狀態。

可以為一種語言註冊多個提供者。在這種情況下,提供者會依其 分數 排序,並使用最相符的提供者。選取的提供者失敗將會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: OnTypeFormattingEditProvider

一個輸入時格式化編輯供應器。

firstTriggerCharacter: string

應觸發格式化的字元,例如 }

...moreTriggerCharacter: string[]

更多觸發字元。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個參考供應器。

可以為一種語言註冊多個提供者。在這種情況下,提供者會並行詢問,且結果會合併。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: ReferenceProvider

一個參考供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個重新命名供應器。

可以為一種語言註冊多個供應器。在這種情況下,供應器會按其 score 排序並按順序詢問。第一個產生結果的供應器將定義整個操作的結果。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: RenameProvider

一個重新命名供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個選取範圍供應器。

可以為一種語言註冊多個提供者。在這種情況下,提供者會並行詢問,且結果會合併。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: SelectionRangeProvider

一個選取範圍供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個簽名幫助供應器。

可以為一種語言註冊多個供應器。在這種情況下,供應器會按其 score 排序,並依序呼叫,直到供應器傳回有效結果。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: SignatureHelpProvider

一個簽名幫助供應器。

...triggerCharacters: string[]

當使用者輸入其中一個字元(例如 ,()時,觸發簽名幫助。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: SignatureHelpProvider

一個簽名幫助供應器。

metadata: SignatureHelpProviderMetadata

關於供應器的資訊。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個類型定義供應器。

可以為一種語言註冊多個提供者。在這種情況下,提供者會並行詢問,且結果會合併。失敗的提供者 (拒絕的 Promise 或例外狀況) 不會導致整個操作失敗。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: TypeDefinitionProvider

一個類型定義供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個類型階層供應器。

參數描述
selector: DocumentSelector

一個選取器,定義此提供者適用的文件。

provider: TypeHierarchyProvider

一個類型階層供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊一個工作區符號供應器。

可以註冊多個供應器。在這種情況下,將並行詢問供應器並合併結果。失敗的供應器(拒絕的 Promise 或異常)不會導致整個操作失敗。

參數描述
provider: WorkspaceSymbolProvider<SymbolInformation>

一個工作區符號供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

為語言設定語言組態

參數描述
language: string

語言識別碼,例如 typescript

configuration: LanguageConfiguration

語言組態。

回傳描述
Disposable

一個 Disposable,用於取消設定此組態。

設定(和變更)與給定文件相關聯的 語言

注意:呼叫此函式將觸發 onDidCloseTextDocument 事件,然後觸發 onDidOpenTextDocument 事件。

參數描述
document: TextDocument

要變更語言的文件

languageId: string

新的語言識別碼。

回傳描述
Thenable<TextDocument>

一個 thenable,它會解析為更新的文件。

語言模型 (lm)

語言模型相關功能的命名空間。

變數

所有擴充功能使用 lm.registerTool 註冊的所有可用工具的清單。可以使用 lm.invokeTool 和符合其宣告的 inputSchema 的輸入來呼叫它們。

事件

當可用聊天模型的集合變更時觸發的事件。

函數

使用給定的輸入,依名稱呼叫 lm.tools 中列出的工具。輸入將根據工具宣告的結構描述進行驗證

工具可以由聊天參與者在處理聊天請求的上下文中呼叫,也可以由任何擴充功能在任何自訂流程中全域呼叫。

在前一種情況下,呼叫者應傳遞 toolInvocationToken,它隨附於 聊天請求。這可確保聊天 UI 顯示正確對話的工具調用。

工具結果文字提示-tsx 部件的陣列。如果工具呼叫者正在使用 vscode/prompt-tsx,它可以將回應部件合併到其提示中,使用 ToolResult。如果沒有,則可以透過使用者訊息將部件與 LanguageModelToolResultPart 一起傳遞給 LanguageModelChat

如果聊天參與者想要跨多個回合保留請求的工具結果,它可以將工具結果儲存在從處理常式傳回的 ChatResult.metadata 中,並在下一個回合從 ChatResponseTurn.result 中檢索它們。

參數描述
name: string

要呼叫的工具名稱。

options: LanguageModelToolInvocationOptions<object>

呼叫工具時要使用的選項。

token?: CancellationToken

取消符號。請參閱 CancellationTokenSource 以瞭解如何建立一個。

回傳描述
Thenable<LanguageModelToolResult>

工具調用的結果。

註冊 LanguageModelTool。該工具也必須在 package.json languageModelTools 貢獻點中註冊。註冊的工具在 lm.tools 清單中可供任何擴充功能查看。但是,為了讓語言模型看到它,它必須在 LanguageModelChatRequestOptions.tools 中可用的工具清單中傳遞。

參數描述
name: string
tool: LanguageModelTool<T>
回傳描述
Disposable

一個 Disposable,用於在處置時取消註冊工具。

selector 選取聊天模型。這可能會產生多個或零個聊天模型,並且擴充功能必須優雅地處理這些情況,尤其是在沒有聊天模型存在時。

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[]>

聊天模型陣列,可以為空!

筆記本

筆記本的命名空間。

筆記本功能由三個鬆散耦合的元件組成

  1. NotebookSerializer 使編輯器能夠開啟、顯示和儲存筆記本
  2. NotebookController 擁有筆記本的執行權,例如,它們從程式碼儲存格建立輸出。
  3. NotebookRenderer 在編輯器中呈現筆記本輸出。它們在不同的上下文中執行。

函數

建立新的筆記本控制器。

參數描述
id: string

控制器的識別碼。每個擴充功能必須是唯一的。

notebookType: string

此控制器適用的筆記本類型。

label: string

控制器的標籤。

handler?: (cells: NotebookCell[], notebook: NotebookDocument, controller: NotebookController) => void | Thenable<void>

控制器的執行處理常式。

回傳描述
NotebookController

一個新的筆記本控制器。

建立新的訊息傳遞執行個體,用於與特定轉譯器通訊。

  • 注意 1: 擴充功能只能建立它們在其 package.json 檔案中定義的轉譯器
  • 注意 2: 只有在其 notebookRenderer 貢獻中將 requiresMessaging 設定為 alwaysoptional 時,轉譯器才能存取訊息傳遞。
參數描述
rendererId: string

要與之通訊的轉譯器 ID

回傳描述
NotebookRendererMessaging

一個新的筆記本轉譯器訊息傳遞物件。

為給定的筆記本類型註冊 儲存格狀態列項目供應器

參數描述
notebookType: string

要註冊的筆記本類型。

provider: NotebookCellStatusBarItemProvider

儲存格狀態列供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

原始碼控制 (scm)

原始碼控制管理的命名空間。

變數

擴充功能建立的最後一個原始碼控制的輸入框

  • 已過時 - 請改用 SourceControl.inputBox

函數

建立新的 原始碼控制 執行個體。

參數描述
id: string

原始碼控制的 id。簡短的內容,例如:git

label: string

原始碼控制的人類可讀字串。例如:Git

rootUri?: Uri

原始碼控制根目錄的可選 Uri。例如:Uri.parse(workspaceRoot)

回傳描述
SourceControl

原始碼控制的執行個體。

工作任務

任務功能的命名空間。

變數

目前活動的任務執行或空陣列。

事件

任務結束時觸發。

當基礎程序結束時觸發。此事件不會針對未執行基礎程序的任務觸發。

任務開始時觸發。

當基礎程序已啟動時觸發。此事件不會針對未執行基礎程序的任務觸發。

函數

執行由編輯器管理的任務。傳回的任務執行可用於終止任務。

  • 擲回 - 在無法啟動新程序的環境中執行 ShellExecution 或 ProcessExecution 任務時。在這種環境中,只能執行 CustomExecution 任務。
參數描述
task: Task

要執行的任務

回傳描述
Thenable<TaskExecution>

一個 thenable,它會解析為任務執行。

擷取系統中所有可用的任務。這包括來自 tasks.json 檔案的任務以及透過擴充功能貢獻的任務供應器中的任務。

參數描述
filter?: TaskFilter

用於選取特定類型或版本的任務的可選篩選器。

回傳描述
Thenable<Task[]>

一個 thenable,它會解析為任務陣列。

註冊一個任務供應器。

參數描述
type: string

此供應器註冊的任務種類類型。

provider: TaskProvider<Task>

一個任務供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

測試

測試功能的命名空間。測試透過註冊 TestController 執行個體,然後新增 TestItems 來發佈。控制器也可以透過建立一個或多個 TestRunProfile 執行個體來描述如何執行測試。

函數

建立新的測試控制器。

參數描述
id: string

控制器的識別碼,必須是全域唯一的。

label: string

控制器的易讀標籤。

回傳描述
TestController

TestController 的執行個體。

視窗

用於處理編輯器目前視窗的命名空間。即是可見和活動的編輯器,以及用於顯示訊息、選取範圍和要求使用者輸入的 UI 元素。

變數

目前在設定中配置的活動色彩主題。活動主題可以透過 workbench.colorTheme 設定變更。

目前活動的 筆記本編輯器undefined。活動編輯器是目前具有焦點的編輯器,或者,在沒有焦點的情況下,是最近變更輸入的編輯器。

目前活動的終端機或 undefined。活動終端機是目前具有焦點或最近具有焦點的終端機。

目前活動的編輯器或 undefined。活動編輯器是目前具有焦點的編輯器,或者,在沒有焦點的情況下,是最近變更輸入的編輯器。

表示目前視窗的狀態。

表示主編輯器區域內的網格小工具

目前開啟的終端機或空陣列。

目前可見的 筆記本編輯器 或空陣列。

目前可見的編輯器或空陣列。

事件

一個 Event,當活動色彩主題變更或有變更時觸發。

一個 Event,當 活動筆記本編輯器 變更時觸發。注意:當活動編輯器變更為 undefined 時,也會觸發事件。

事件使用中終端機變更時觸發。請注意,當使用中終端機變更為 undefined 時,此事件也會觸發。

事件使用中編輯器變更時觸發。請注意,當使用中編輯器變更為 undefined 時,此事件也會觸發。

事件筆記本編輯器選取範圍變更時觸發。

事件筆記本編輯器可見範圍變更時觸發。

當終端機中的 Shell 整合啟用或其屬性之一變更時觸發。

事件終端機的狀態變更時觸發。

事件在編輯器的選項變更時觸發。

事件在編輯器中的選取範圍變更時觸發。

事件在編輯器的檢視欄變更時觸發。

事件在編輯器的可見範圍變更時觸發。

事件可見的筆記本編輯器變更時觸發。

事件可見編輯器陣列變更時觸發。

事件在目前視窗的焦點或活動狀態變更時觸發。事件的值表示視窗是否取得焦點。

事件在終端機被處置時觸發。

當終端機命令結束時,將會觸發此事件。此事件僅在終端機啟用 Shell 整合 時觸發。

事件在終端機已建立時觸發,無論是透過 createTerminal API 或命令。

當終端機命令開始時,將會觸發此事件。此事件僅在終端機啟用 Shell 整合 時觸發。

函數

建立 InputBox 以讓使用者輸入一些文字輸入。

請注意,在許多情況下,更方便的 window.showInputBox 更容易使用。window.createInputBox 應在 window.showInputBox 無法提供所需彈性時使用。

參數描述
回傳描述
InputBox

新的 InputBox

使用給定的名稱和語言 ID 建立新的 輸出通道。如果未提供語言 ID,則會使用 Log 作為預設語言 ID。

您可以從 可見編輯器使用中編輯器 存取可見或使用中的輸出通道作為 文字文件,並使用語言 ID 來貢獻語法色彩標示、程式碼鏡頭等語言功能。

參數描述
name: string

人類可讀的字串,將用於在 UI 中表示通道。

languageId?: string

與通道相關聯的語言識別碼。

回傳描述
OutputChannel

新的輸出通道。

使用給定的名稱建立新的 記錄輸出通道

參數描述
name: string

人類可讀的字串,將用於在 UI 中表示通道。

options: {log: true}

記錄輸出通道的選項。

回傳描述
LogOutputChannel

新的記錄輸出通道。

建立 QuickPick 以讓使用者從類型 T 的項目清單中選取項目。

請注意,在許多情況下,更方便的 window.showQuickPick 更容易使用。window.createQuickPick 應在 window.showQuickPick 無法提供所需彈性時使用。

參數描述
回傳描述
QuickPick<T>

新的 QuickPick

建立狀態列 項目

參數描述
id: string

項目的識別碼。在擴充功能內必須是唯一的。

alignment?: StatusBarAlignment

項目的對齊方式。

priority?: number

項目的優先順序。值越高表示項目應更靠左顯示。

回傳描述
StatusBarItem

新的狀態列項目。

建立狀態列 項目

另請參閱 createStatusBarItem,以建立具有識別碼的狀態列項目。

參數描述
alignment?: StatusBarAlignment

項目的對齊方式。

priority?: number

項目的優先順序。值越高表示項目應更靠左顯示。

回傳描述
StatusBarItem

新的狀態列項目。

建立具有後端 Shell 程序的 Terminal。如果工作區目錄存在,則終端機的 cwd 將會是該目錄。

  • throws - 在無法啟動新程序的環境中執行時。
參數描述
name?: string

選用的人類可讀字串,將用於在 UI 中表示終端機。

shellPath?: string

要用於終端機中的自訂 Shell 可執行檔的選用路徑。

shellArgs?: string | readonly string[]

自訂 Shell 可執行檔的選用引數。字串僅可在 Windows 上使用,允許以 命令列格式 指定 Shell 引數。

回傳描述
Terminal

新的 Terminal。

建立具有後端 Shell 程序的 Terminal

  • throws - 在無法啟動新程序的環境中執行時。
參數描述
options: TerminalOptions

描述新終端機特性的 TerminalOptions 物件。

回傳描述
Terminal

新的 Terminal。

建立 Terminal,其中擴充功能控制其輸入和輸出。

參數描述
options: ExtensionTerminalOptions

描述新終端機特性的 ExtensionTerminalOptions 物件。

回傳描述
Terminal

新的 Terminal。

建立可用於將裝飾新增至文字編輯器的 TextEditorDecorationType。

參數描述
options: DecorationRenderOptions

裝飾類型的轉譯選項。

回傳描述
TextEditorDecorationType

新的裝飾類型執行個體。

為使用擴充功能點 views 貢獻的檢視建立 TreeView

參數描述
viewId: string

使用擴充功能點 views 貢獻的檢視 ID。

options: TreeViewOptions<T>

用於建立 TreeView 的選項

回傳描述
TreeView<T>

一個 TreeView

建立並顯示新的 Webview 面板。

參數描述
viewType: string

識別 Webview 面板的類型。

title: string

面板的標題。

showOptions: ViewColumn | {preserveFocus: boolean, viewColumn: ViewColumn}

在編輯器中顯示 Webview 的位置。如果設定 preserveFocus,則新的 Webview 將不會取得焦點。

options?: WebviewPanelOptions & WebviewOptions

新面板的設定。

回傳描述
WebviewPanel

新的 Webview 面板。

customEditors 擴充功能點貢獻的 viewType 註冊自訂編輯器提供者。

當自訂編輯器開啟時,會觸發 onCustomEditor:viewType 啟動事件。您的擴充功能必須註冊 CustomTextEditorProviderCustomReadonlyEditorProviderCustomEditorProvider 作為啟動的一部分以用於 viewType

參數描述
viewType: string

自訂編輯器提供者的唯一識別碼。這應與 customEditors 貢獻點中的 viewType 相符。

provider: CustomTextEditorProvider | CustomReadonlyEditorProvider<CustomDocument> | CustomEditorProvider<CustomDocument>

解析自訂編輯器的提供者。

options?: {supportsMultipleEditorsPerDocument: boolean, webviewOptions: WebviewPanelOptions}

提供者的選項。

回傳描述
Disposable

取消註冊提供者的 Disposable。

註冊檔案裝飾提供者。

參數描述
provider: FileDecorationProvider
回傳描述
Disposable

一個取消註冊提供者的 Disposable

註冊提供者,以啟用終端機內連結的偵測和處理。

參數描述
provider: TerminalLinkProvider<TerminalLink>

提供終端機連結的提供者。

回傳描述
Disposable

取消註冊提供者的 Disposable。

為貢獻的終端機設定檔註冊提供者。

參數描述
id: string

貢獻的終端機設定檔的 ID。

provider: TerminalProfileProvider

終端機設定檔提供者。

回傳描述
Disposable

一個取消註冊提供者的 disposable

為使用擴充功能點 views 貢獻的檢視註冊 TreeDataProvider。這可讓您將資料貢獻給 TreeView,並在資料變更時更新。

注意: 若要存取 TreeView 並對其執行作業,請使用 createTreeView

參數描述
viewId: string

使用擴充功能點 views 貢獻的檢視 ID。

treeDataProvider: TreeDataProvider<T>

一個為檢視提供樹狀結構資料的 TreeDataProvider

回傳描述
Disposable

一個取消註冊 TreeDataProviderdisposable

註冊能夠處理系統範圍 uriuri 處理常式。如果開啟多個視窗,則最上層的視窗將處理 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

註冊 Webview 面板序列化程式。

支援還原的擴充功能應具有 "onWebviewPanel:viewType" 啟動事件,並確保在啟動期間呼叫 registerWebviewPanelSerializer

對於給定的 viewType,一次只能註冊一個序列化程式。

參數描述
viewType: string

可以序列化的 Webview 面板類型。

serializer: WebviewPanelSerializer<unknown>

Webview 序列化程式。

回傳描述
Disposable

一個取消註冊序列化程式的 disposable

為 Webview 檢視註冊新的提供者。

參數描述
viewId: string

檢視的唯一 ID。這應與 package.json 中 views 貢獻的 id 相符。

provider: WebviewViewProvider

Webview 檢視的提供者。

options?: {webviewOptions: {retainContextWhenHidden: boolean}}
回傳描述
Disposable

取消註冊提供者的 Disposable。

將訊息設定到狀態列。這是更強大的狀態列 項目 的簡短方式。

參數描述
text: string

要顯示的訊息,支援如狀態列 項目 中的圖示替換。

hideAfterTimeout: number

訊息將在逾時 (毫秒) 後處置。

回傳描述
Disposable

一個隱藏狀態列訊息的 disposable。

將訊息設定到狀態列。這是更強大的狀態列 項目 的簡短方式。

參數描述
text: string

要顯示的訊息,支援如狀態列 項目 中的圖示替換。

hideWhenDone: Thenable<any>

在完成 (解析或拒絕) 時將處置訊息的 Thenable。

回傳描述
Disposable

一個隱藏狀態列訊息的 disposable。

將訊息設定到狀態列。這是更強大的狀態列 項目 的簡短方式。

注意 狀態列訊息會堆疊,且在不再使用時必須處置。

參數描述
text: string

要顯示的訊息,支援如狀態列 項目 中的圖示替換。

回傳描述
Disposable

一個隱藏狀態列訊息的 disposable。

顯示錯誤訊息。

另請參閱 showInformationMessage

參數描述
message: string

要顯示的訊息。

...items: T[]

將在訊息中呈現為動作的一組項目。

回傳描述
Thenable<T | undefined>

一個 thenable,它會解析為選取的項目,或在關閉時解析為 undefined

顯示錯誤訊息。

另請參閱 showInformationMessage

參數描述
message: string

要顯示的訊息。

options: MessageOptions

設定訊息的行為。

...items: T[]

將在訊息中呈現為動作的一組項目。

回傳描述
Thenable<T | undefined>

一個 thenable,它會解析為選取的項目,或在關閉時解析為 undefined

顯示錯誤訊息。

另請參閱 showInformationMessage

參數描述
message: string

要顯示的訊息。

...items: T[]

將在訊息中呈現為動作的一組項目。

回傳描述
Thenable<T | undefined>

一個 thenable,它會解析為選取的項目,或在關閉時解析為 undefined

顯示錯誤訊息。

另請參閱 showInformationMessage

參數描述
message: string

要顯示的訊息。

options: MessageOptions

設定訊息的行為。

...items: T[]

將在訊息中呈現為動作的一組項目。

回傳描述
Thenable<T | undefined>

一個 thenable,它會解析為選取的項目,或在關閉時解析為 undefined

向使用者顯示資訊訊息。選擇性地提供將呈現為可點擊按鈕的項目陣列。

參數描述
message: string

要顯示的訊息。

...items: T[]

將在訊息中呈現為動作的一組項目。

回傳描述
Thenable<T | undefined>

一個 thenable,它會解析為選取的項目,或在關閉時解析為 undefined

向使用者顯示資訊訊息。選擇性地提供將呈現為可點擊按鈕的項目陣列。

參數描述
message: string

要顯示的訊息。

options: MessageOptions

設定訊息的行為。

...items: T[]

將在訊息中呈現為動作的一組項目。

回傳描述
Thenable<T | undefined>

一個 thenable,它會解析為選取的項目,或在關閉時解析為 undefined

顯示資訊訊息。

另請參閱 showInformationMessage

參數描述
message: string

要顯示的訊息。

...items: T[]

將在訊息中呈現為動作的一組項目。

回傳描述
Thenable<T | undefined>

一個 thenable,它會解析為選取的項目,或在關閉時解析為 undefined

顯示資訊訊息。

另請參閱 showInformationMessage

參數描述
message: string

要顯示的訊息。

options: MessageOptions

設定訊息的行為。

...items: T[]

將在訊息中呈現為動作的一組項目。

回傳描述
Thenable<T | undefined>

一個 thenable,它會解析為選取的項目,或在關閉時解析為 undefined

開啟輸入框以詢問使用者輸入內容。

如果輸入框被取消(例如按下 ESC 鍵),則傳回值將為 undefined。否則,傳回值將為使用者輸入的字串;如果使用者未輸入任何內容,但按下「確定」按鈕關閉輸入框,則傳回值將為空字串。

參數描述
options?: InputBoxOptions

設定輸入框的行為。

token?: CancellationToken

可用於發出取消訊號的 token。

回傳描述
Thenable<string | undefined>

一個 Promise,將解析為使用者提供的字串,或在取消時解析為 undefined

筆記本編輯器 中顯示指定的 NotebookDocument

參數描述
document: NotebookDocument

要顯示的文字文件。

options?: NotebookDocumentShowOptions

編輯器選項,用於設定顯示 筆記本編輯器 的行為。

回傳描述
Thenable<NotebookEditor>

一個 Promise,將解析為 筆記本編輯器

向使用者顯示檔案開啟對話方塊,允許使用者選取要開啟的檔案。

參數描述
options?: OpenDialogOptions

控制對話方塊的選項。

回傳描述
Thenable<Uri[] | undefined>

一個 Promise,將解析為選取的資源,或 undefined

顯示允許進行多重選取的選取清單。

參數描述
items: readonly string[] | Thenable<readonly string[]>

字串陣列,或解析為字串陣列的 Promise。

options: QuickPickOptions & {canPickMany: true}

設定選取清單的行為。

token?: CancellationToken

可用於發出取消訊號的 token。

回傳描述
Thenable<string[] | undefined>

一個 Promise,將解析為選取的項目,或 undefined

顯示選取清單。

參數描述
items: readonly string[] | Thenable<readonly string[]>

字串陣列,或解析為字串陣列的 Promise。

options?: QuickPickOptions

設定選取清單的行為。

token?: CancellationToken

可用於發出取消訊號的 token。

回傳描述
Thenable<string | undefined>

一個 Promise,將解析為選取的項目,或 undefined

顯示允許進行多重選取的選取清單。

參數描述
items: readonly T[] | Thenable<readonly T[]>

項目陣列,或解析為項目陣列的 Promise。

options: QuickPickOptions & {canPickMany: true}

設定選取清單的行為。

token?: CancellationToken

可用於發出取消訊號的 token。

回傳描述
Thenable<T[] | undefined>

一個 Promise,將解析為選取的項目,或 undefined

顯示選取清單。

參數描述
items: readonly T[] | Thenable<readonly T[]>

項目陣列,或解析為項目陣列的 Promise。

options?: QuickPickOptions

設定選取清單的行為。

token?: CancellationToken

可用於發出取消訊號的 token。

回傳描述
Thenable<T | undefined>

一個 Promise,將解析為選取的項目,或 undefined

向使用者顯示檔案儲存對話方塊,允許使用者選取要儲存的檔案。

參數描述
options?: SaveDialogOptions

控制對話方塊的選項。

回傳描述
Thenable<Uri | undefined>

一個 Promise,將解析為選取的資源,或 undefined

在文字編輯器中顯示指定的 document。可以提供 column 來控制編輯器顯示的位置。可能會變更 作用中編輯器

參數描述
document: TextDocument

要顯示的文字文件。

column?: ViewColumn

應該在其中顯示 編輯器 的檢視欄。預設值為 active。將會根據需要建立不存在的欄,最多可建立到 ViewColumn.Nine。使用 ViewColumn.Beside 將編輯器開啟在目前作用中編輯器的側邊。

preserveFocus?: boolean

當為 true 時,編輯器將不會取得焦點。

回傳描述
Thenable<TextEditor>

一個 Promise,將解析為 編輯器

在文字編輯器中顯示指定的 document。選項可用於控制編輯器顯示的選項。可能會變更 作用中編輯器

參數描述
document: TextDocument

要顯示的文字文件。

options?: TextDocumentShowOptions

編輯器選項,用於設定顯示 編輯器 的行為。

回傳描述
Thenable<TextEditor>

一個 Promise,將解析為 編輯器

openTextDocument(uri).then(document => showTextDocument(document, options)) 的簡寫。

另請參閱 workspace.openTextDocument

參數描述
uri: Uri

資源識別碼。

options?: TextDocumentShowOptions

編輯器選項,用於設定顯示 編輯器 的行為。

回傳描述
Thenable<TextEditor>

一個 Promise,將解析為 編輯器

顯示警告訊息。

另請參閱 showInformationMessage

參數描述
message: string

要顯示的訊息。

...items: T[]

將在訊息中呈現為動作的一組項目。

回傳描述
Thenable<T | undefined>

一個 thenable,它會解析為選取的項目,或在關閉時解析為 undefined

顯示警告訊息。

另請參閱 showInformationMessage

參數描述
message: string

要顯示的訊息。

options: MessageOptions

設定訊息的行為。

...items: T[]

將在訊息中呈現為動作的一組項目。

回傳描述
Thenable<T | undefined>

一個 thenable,它會解析為選取的項目,或在關閉時解析為 undefined

顯示警告訊息。

另請參閱 showInformationMessage

參數描述
message: string

要顯示的訊息。

...items: T[]

將在訊息中呈現為動作的一組項目。

回傳描述
Thenable<T | undefined>

一個 thenable,它會解析為選取的項目,或在關閉時解析為 undefined

顯示警告訊息。

另請參閱 showInformationMessage

參數描述
message: string

要顯示的訊息。

options: MessageOptions

設定訊息的行為。

...items: T[]

將在訊息中呈現為動作的一組項目。

回傳描述
Thenable<T | undefined>

一個 thenable,它會解析為選取的項目,或在關閉時解析為 undefined

顯示 工作區資料夾 的選取清單,供使用者選取。如果沒有開啟任何資料夾,則傳回 undefined

參數描述
options?: WorkspaceFolderPickOptions

設定工作區資料夾清單的行為。

回傳描述
Thenable<WorkspaceFolder | undefined>

一個 Promise,將解析為工作區資料夾,或 undefined

在編輯器中顯示進度。在執行給定的回呼函式,以及在它傳回的 Promise 尚未解析或拒絕期間,會顯示進度。進度應顯示的位置(和其他詳細資訊)透過傳遞的 ProgressOptions 定義。

參數描述
options: ProgressOptions

一個 ProgressOptions 物件,描述用於顯示進度的選項,例如其位置

task: (progress: Progress<{increment: number, message: string}>, token: CancellationToken) => Thenable<R>

一個傳回 Promise 的回呼函式。可以使用提供的 Progress 物件報告進度狀態。

若要報告離散進度,請使用 increment 來指示已完成的工作量。每次使用 increment 值呼叫都會被加總,並反映為整體進度,直到達到 100% 為止(例如,值 10 表示已完成 10% 的工作)。請注意,目前只有 ProgressLocation.Notification 能夠顯示離散進度。

若要監控操作是否已被使用者取消,請使用提供的 CancellationToken。請注意,目前只有 ProgressLocation.Notification 支援顯示取消按鈕以取消長時間執行的操作。

回傳描述
Thenable<R>

task 回呼函式傳回的 thenable。

在執行給定的回呼函式期間,以及在其傳回的 Promise 尚未解析或拒絕期間,在原始檔控制檢視區中顯示進度。

  • 已過時 - 請改用 withProgress
參數描述
task: (progress: Progress<number>) => Thenable<R>

一個傳回 Promise 的回呼函式。可以使用提供的 Progress 物件報告進度增量。

回傳描述
Thenable<R>

task 傳回的 thenable。

工作區

用於處理目前工作區的命名空間。工作區是在編輯器視窗(執行個體)中開啟的一個或多個資料夾的集合。

也可以在沒有工作區的情況下開啟編輯器。例如,當您從平台的「檔案」功能表選取檔案來開啟新的編輯器視窗時,您將不會在工作區內。在此模式下,編輯器的某些功能會減少,但您仍然可以開啟文字檔並進行編輯。

請參閱 https://vscode.dev.org.tw/docs/editor/workspaces,以取得有關工作區概念的詳細資訊。

工作區提供支援來監聽 fs 事件,以及尋找檔案。兩者都執行良好,並且在編輯器外部程序中執行,因此應始終使用它們,而不是 nodejs 等效項目。

變數

一個 檔案系統 執行個體,允許與本機和遠端檔案互動,例如 vscode.workspace.fs.readDirectory(someUri) 允許擷取目錄的所有項目,或 vscode.workspace.fs.stat(anotherUri) 傳回檔案的中繼資料。

當為 true 時,使用者已明確信任工作區的內容。

工作區的名稱。當未開啟任何工作區時,為 undefined

請參閱 https://vscode.dev.org.tw/docs/editor/workspaces,以取得有關工作區概念的詳細資訊。

編輯器目前已知的所有筆記本文件。

workspaceFolders 第一個項目的 uri,以 string 表示。如果沒有第一個項目,則為 undefined

請參閱 https://vscode.dev.org.tw/docs/editor/workspaces,以取得有關工作區的詳細資訊。

編輯器目前已知的所有文字文件。

工作區檔案的位置,例如

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(),這適用於開啟單一資料夾以及未命名或已儲存的工作區。

在編輯器中開啟的工作區資料夾清單 (0-N)。當未開啟任何工作區時,為 undefined

請參閱 https://vscode.dev.org.tw/docs/editor/workspaces,以取得有關工作區的詳細資訊。

事件

組態 變更時發出的事件。

筆記本 變更時發出的事件。

文字文件 變更時發出的事件。這通常在 內容 變更時發生,但也可能在其他情況下發生,例如 dirty 狀態變更。

當新增或移除工作區資料夾時發出的事件。

注意:如果新增、移除或變更第一個工作區資料夾,則不會觸發此事件,因為在這種情況下,目前執行的擴充功能(包括監聽此事件的擴充功能)將會終止並重新啟動,以便 (已過時的) rootPath 屬性更新為指向第一個工作區資料夾。

筆記本 處置時發出的事件。

注意 1: 無法保證在關閉編輯器索引標籤時會觸發此事件。

注意 2: 筆記本可能已開啟但未在編輯器中顯示,這表示可能會針對未在編輯器中顯示的筆記本觸發此事件。

文字文件 處置時,或當文字文件的語言 ID 已變更 時發出的事件。

注意 1: 無法保證在關閉編輯器索引標籤時會觸發此事件,請使用 onDidChangeVisibleTextEditors 事件來了解編輯器何時變更。

注意 2: 文件可能已開啟但未在編輯器中顯示,這表示可能會針對未在編輯器中顯示的文件觸發此事件。

當檔案已建立時發出的事件。

注意: 此事件由使用者手勢觸發,例如從檔案總管建立檔案,或從 workspace.applyEdit API 建立檔案,但當磁碟上的檔案變更時 (例如由另一個應用程式觸發),或當使用 workspace.fs API 時,不會 觸發此事件。

當檔案已刪除時發出的事件。

注意 1: 此事件由使用者手勢觸發,例如從檔案總管刪除檔案,或從 workspace.applyEdit API 刪除檔案,但當磁碟上的檔案變更時 (例如由另一個應用程式觸發),或當使用 workspace.fs API 時,不會 觸發此事件。

注意 2: 當刪除包含子系的資料夾時,只會觸發一個事件。

當目前的 workspace 已信任時觸發的事件。

筆記本 開啟時發出的事件。

文字文件 開啟時,或當文字文件的語言 ID 已變更 時發出的事件。

若要在開啟可見文字文件時新增事件接聽程式,請使用 window 命名空間中的 TextEditor 事件。請注意

當檔案已重新命名時發出的事件。

注意 1: 此事件由使用者手勢觸發,例如從檔案總管重新命名檔案,以及從 workspace.applyEdit API 重新命名檔案,但當磁碟上的檔案變更時 (例如由另一個應用程式觸發),或當使用 workspace.fs API 時,不會 觸發此事件。

注意 2: 當重新命名包含子系的資料夾時,只會觸發一個事件。

筆記本 儲存時發出的事件。

文字文件 儲存到磁碟時發出的事件。

當檔案正在建立時發出的事件。

注意 1: 此事件由使用者手勢觸發,例如從檔案總管建立檔案,或從 workspace.applyEdit API 建立檔案。當磁碟上的檔案變更時 (例如由另一個應用程式觸發),或當使用 workspace.fs API 時,不會 觸發此事件。

注意 2: 當觸發此事件時,無法套用對正在建立之檔案的編輯。

當檔案正在刪除時發出的事件。

注意 1: 此事件由使用者手勢觸發,例如從檔案總管刪除檔案,或從 workspace.applyEdit API 刪除檔案,但當磁碟上的檔案變更時 (例如由另一個應用程式觸發),或當使用 workspace.fs API 時,不會 觸發此事件。

注意 2: 當刪除包含子系的資料夾時,只會觸發一個事件。

當檔案正在重新命名時發出的事件。

注意 1: 此事件由使用者手勢觸發,例如從檔案總管重新命名檔案,以及從 workspace.applyEdit API 重新命名檔案,但當磁碟上的檔案變更時 (例如由另一個應用程式觸發),或當使用 workspace.fs API 時,不會 觸發此事件。

注意 2: 當重新命名包含子系的資料夾時,只會觸發一個事件。

筆記本文件 即將儲存到磁碟時發出的事件。

注意 1: 訂閱者可以透過註冊非同步工作來延遲儲存。為了資料完整性,編輯器可能會在不觸發此事件的情況下儲存。例如,在關閉具有未儲存檔案的情況下。

注意 2: 訂閱者會依序呼叫,並且可以透過註冊非同步工作來 延遲 儲存。實作了針對行為異常接聽程式的保護,如下所示

  • 所有接聽程式共用一個整體時間預算,如果預算用盡,則不會再呼叫任何接聽程式
  • 長時間執行或頻繁產生錯誤的接聽程式將不再被呼叫

目前的閾值為 1.5 秒作為整體時間預算,並且接聽程式在被忽略之前可能會發生 3 次行為異常。

文字文件 即將儲存到磁碟時發出的事件。

注意 1: 訂閱者可以透過註冊非同步工作來延遲儲存。為了資料完整性,編輯器可能會在不觸發此事件的情況下儲存。例如,在關閉具有未儲存檔案的情況下。

注意 2: 訂閱者會依序呼叫,並且可以透過註冊非同步工作來 延遲 儲存。實作了針對行為異常接聽程式的保護,如下所示

  • 所有接聽程式共用一個整體時間預算,如果預算用盡,則不會再呼叫任何接聽程式
  • 長時間執行或頻繁產生錯誤的接聽程式將不再被呼叫

目前的閾值為 1.5 秒作為整體時間預算,並且接聽程式在被忽略之前可能會發生 3 次行為異常。

函數

對一個或多個資源進行變更,或建立、刪除和重新命名資源,如同給定的 工作區編輯 所定義。

工作區編輯的所有變更都以新增的相同順序套用。如果在相同位置進行多個文字插入,則這些字串會以「插入」的順序出現在結果文字中,除非它們與資源編輯交錯。無效的順序,例如「刪除檔案 a」->「在檔案 a 中插入文字」,會導致操作失敗。

當套用僅包含文字編輯的工作區編輯時,會使用「全有或全無」策略。當單一編輯失敗時,具有資源建立或刪除的工作區編輯會中止操作,例如,不會嘗試連續編輯。

參數描述
edit: WorkspaceEdit

工作區編輯。

metadata?: WorkspaceEditMetadata

編輯的選用 中繼資料

回傳描述
Thenable<boolean>

一個 thenable,當可以套用編輯時解析。

傳回相對於工作區資料夾或多個資料夾的路徑。

當沒有 工作區資料夾 時,或當路徑未包含在其中時,會傳回輸入。

參數描述
pathOrUri: string | Uri

路徑或 uri。當給定 uri 時,會使用其 fsPath

includeWorkspaceFolder?: boolean

是否true,且當給定的路徑包含在工作區資料夾內時,會預先加入工作區的名稱。預設值為當有多個工作區資料夾時為 true,否則為 false

回傳描述
string

相對於根目錄或輸入的路徑。

建立一個檔案系統監看器,該監看器會在檔案事件 (建立、變更、刪除) 發生時收到通知,具體取決於提供的參數。

預設情況下,所有開啟的 workspace folders 都會被遞迴監看檔案變更。

可以透過提供一個具有要監看的 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

新的檔案系統監看器執行個體。不再需要時必須處置。

在工作區中的所有 workspace folders 中尋找檔案。

範例

findFiles('**/*.js', '**/node_modules/**', 10);
參數描述
include: GlobPattern

一個 glob 模式,用於定義要搜尋的檔案。glob 模式將與相對於其工作區的結果相符的檔案路徑進行比對。使用 相對模式 將搜尋結果限制為 workspace folder

exclude?: GlobPattern

一個 glob 模式,用於定義要排除的檔案和資料夾。glob 模式將與相對於其工作區的結果相符的檔案路徑進行比對。當 undefined 時,將套用預設檔案排除 (例如 files.exclude 設定,但不是 search.exclude)。當 null 時,將不套用排除。

maxResults?: number

結果的上限。

token?: CancellationToken

可用於向基礎搜尋引擎發出取消訊號的 Token。

回傳描述
Thenable<Uri[]>

一個 thenable,它解析為資源識別碼陣列。如果沒有開啟 workspace folders,將不會傳回任何結果。

取得工作區組態物件。

當提供區段識別碼時,只會傳回組態的那一部分。區段識別碼中的點會被解譯為子項存取,例如 { myExt: { setting: { doIt: true }}}getConfiguration('myExt.setting').get('doIt') === true

當提供範圍時,會傳回限定於該範圍的組態。範圍可以是資源或語言識別碼,或兩者皆是。

參數描述
section?: string

以點分隔的識別碼。

scope?: ConfigurationScope

要求組態的範圍。

回傳描述
WorkspaceConfiguration

完整組態或子集。

傳回包含給定 uri 的 workspace folder

  • 當給定的 uri 與任何工作區資料夾不符時,傳回 undefined
  • 當給定的 uri 本身是工作區資料夾時,傳回輸入
參數描述
uri: Uri

一個 uri。

回傳描述
WorkspaceFolder | undefined

一個工作區資料夾或 undefined

開啟筆記本。如果此筆記本已 loaded,將提早傳回。否則,將載入筆記本,並觸發 onDidOpenNotebookDocument 事件。

注意,傳回的筆記本的生命週期由編輯器擁有,而不是由擴充功能擁有。這表示在之後的任何時間都可能發生 onDidCloseNotebookDocument 事件。

注意,開啟筆記本不會顯示筆記本編輯器。此函式只會傳回筆記本文件,該文件可以顯示在筆記本編輯器中,但也可以用於其他用途。

參數描述
uri: Uri

要開啟的資源。

回傳描述
Thenable<NotebookDocument>

一個 promise,解析為 notebook

開啟未命名的筆記本。當要儲存文件時,編輯器將提示使用者輸入檔案路徑。

另請參閱 workspace.openNotebookDocument

參數描述
notebookType: string

應使用的筆記本類型。

content?: NotebookData

筆記本的初始內容。

回傳描述
Thenable<NotebookDocument>

一個 promise,解析為 notebook

開啟文件。如果此文件已開啟,將提早傳回。否則,將載入文件,並觸發 didOpen 事件。

文件由 Uri 表示。根據 scheme,套用下列規則

  • file-scheme:開啟磁碟上的檔案 (openTextDocument(Uri.file(path)))。如果檔案不存在或無法載入,將會被拒絕。
  • untitled-scheme:開啟具有關聯路徑的空白未命名檔案 (openTextDocument(Uri.file(path).with({ scheme: 'untitled' })))。語言將從檔案名稱衍生而來。
  • 對於所有其他配置的 text document content providersfile system providers 都會被諮詢。

注意,傳回的文件的生命週期由編輯器擁有,而不是由擴充功能擁有。這表示在開啟之後的任何時間都可能發生 onDidClose 事件。

參數描述
uri: Uri

識別要開啟的資源。

回傳描述
Thenable<TextDocument>

一個 promise,解析為 document

openTextDocument(Uri.file(path)) 的簡寫。

另請參閱 workspace.openTextDocument

參數描述
path: string

磁碟上檔案的路徑。

回傳描述
Thenable<TextDocument>

一個 promise,解析為 document

開啟未命名的文字文件。當要儲存文件時,編輯器將提示使用者輸入檔案路徑。options 參數允許指定文件的語言和/或內容

參數描述
options?: {content: string, language: string}

控制如何建立文件的選項。

回傳描述
Thenable<TextDocument>

一個 promise,解析為 document

為給定的 scheme 註冊檔案系統提供者,例如 ftp

每個 scheme 只能有一個提供者,並且當 scheme 已被另一個提供者宣告或保留時,會擲回錯誤。

參數描述
scheme: string

提供者註冊的 uri-scheme

provider: FileSystemProvider

檔案系統提供者。

options?: {isCaseSensitive: boolean, isReadonly: boolean | MarkdownString}

關於提供者的不可變中繼資料。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊 notebook serializer

必須透過 notebooks 擴充功能點貢獻筆記本序列化程式。當開啟筆記本檔案時,編輯器將傳送 onNotebook:<notebookType> 啟動事件,並且擴充功能必須註冊其序列化程式以作為回應。

參數描述
notebookType: string

筆記本。

serializer: NotebookSerializer

筆記本序列化程式。

options?: NotebookDocumentContentOptions

定義應持久儲存筆記本哪些部分的可選內容選項

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此序列化程式。

註冊一個任務供應器。

  • 已棄用 - 請改用 tasks 命名空間上的對應函式
參數描述
type: string

此供應器註冊的任務種類類型。

provider: TaskProvider<Task>

一個任務供應器。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

註冊文字文件內容提供者。

每個 scheme 只能註冊一個提供者。

參數描述
scheme: string

要註冊的 uri-scheme。

provider: TextDocumentContentProvider

內容提供者。

回傳描述
Disposable

一個 Disposable,在處置時取消註冊此提供者。

儲存由給定資源識別的編輯器,並傳回產生的資源,如果儲存不成功或找不到具有給定資源的編輯器,則傳回 undefined

注意,必須開啟具有提供的資源的編輯器才能儲存。

參數描述
uri: Uri

要儲存的已開啟編輯器的關聯 uri。

回傳描述
Thenable<Uri | undefined>

一個 thenable,在儲存作業完成時解析。

儲存所有未儲存的檔案。

參數描述
includeUntitled?: boolean

也儲存在此工作階段期間建立的檔案。

回傳描述
Thenable<boolean>

一個 thenable,在檔案已儲存時解析。對於任何儲存失敗的檔案,將傳回 false

將由給定資源識別的編輯器儲存為使用者提供的新檔案名稱,並傳回產生的資源,如果儲存不成功或已取消,或找不到具有給定資源的編輯器,則傳回 undefined

注意,必須開啟具有提供的資源的編輯器才能另存為。

參數描述
uri: Uri

要另存為的已開啟編輯器的關聯 uri。

回傳描述
Thenable<Uri | undefined>

一個 thenable,在另存為作業完成時解析。

此方法使用一組可選的 workspaceFoldersToAdd 取代從索引 start 開始的 deleteCount workspace foldersvscode.workspace.workspaceFolders 陣列上。此「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() 是無效的。

參數描述
start: number

目前開啟的 workspace folders 清單中從哪個位置開始刪除工作區資料夾的從零開始的位置。

deleteCount: number

要移除的可選工作區資料夾數目。

...workspaceFoldersToAdd: Array<{name: string, uri: Uri}>

要取代已刪除的工作區資料夾而新增的可選工作區資料夾變數集。每個工作區都使用強制性 URI 和可選名稱來識別。

回傳描述
boolean

如果作業成功啟動則為 true,否則如果使用的引數會導致無效的工作區資料夾狀態 (例如,2 個具有相同 URI 的資料夾),則為 false。

AccessibilityInformation

協助工具資訊,用於控制螢幕閱讀器行為。

屬性

項目獲得焦點後,螢幕閱讀器要讀出的標籤。

小工具的角色,定義螢幕閱讀器與其互動的方式。角色應在特殊情況下設定,例如,當樹狀元素的行為類似於核取方塊時。如果未指定角色,編輯器將自動選取適當的角色。有關 aria 角色的更多資訊,請參閱此處 https://w3c.github.io/aria/#widget_roles

AuthenticationForceNewSessionOptions

在呼叫具有旗標 forceNewSessionauthentication.getSession 時要使用的可選選項。

屬性

當我們要求重新驗證時,將向使用者顯示的可選訊息。提供有關您為何要求使用者重新驗證的其他背景資訊,可以幫助提高他們接受的可能性。

AuthenticationGetSessionOptions

AuthenticationProvider 取得 AuthenticationSession 時要使用的選項。

屬性

您想要取得工作階段的帳戶。這會傳遞到驗證提供者,以用於建立正確的工作階段。

是否應清除現有的工作階段偏好設定。

對於支援同時登入多個帳戶的驗證提供者,當呼叫 getSession 時,將提示使用者選取要使用的帳戶。此偏好設定會被記住,直到使用此旗標呼叫 getSession

注意:偏好設定是擴充功能特定的。因此,如果一個擴充功能呼叫 getSession,它不會影響另一個擴充功能呼叫 getSession 的工作階段偏好設定。此外,偏好設定是針對目前工作區以及全域設定的。這表示新的工作區一開始將使用「全域」值,然後當提供此旗標時,可以為該工作區設定新值。這也表示,如果新的工作區設定此旗標,預先存在的工作區不會遺失其偏好設定。

預設值為 false。

如果沒有相符的工作階段,是否應執行登入。

如果為 true,將會顯示一個強制回應對話方塊,要求使用者登入。如果為 false,帳戶活動列圖示上將顯示一個編號的徽章。擴充功能的項目將新增至選單下方以進行登入。這允許靜默提示使用者登入。

如果存在相符的工作階段,但擴充功能尚未被授予存取權限,則將此設定為 true 也會導致立即顯示強制回應對話方塊,而 false 將在帳戶圖示上新增一個編號的徽章。

預設值為 false。

注意:您不能將此選項與 silent 一起使用。

即使已經有可用的工作階段,我們是否應嘗試重新驗證。

如果為 true,將會顯示一個強制回應對話方塊,要求使用者再次登入。這主要用於需要重新製作 Token,因為它已遺失某些授權的情況。

如果沒有現有的工作階段,且 forceNewSession 為 true,則其行為將與 createIfNone 完全相同。

預設值為 false。

我們是否應在「帳戶」選單中顯示登入指示。

如果為 false,使用者將在「帳戶」選單上看到一個徽章,其中包含擴充功能的登入選項。如果為 true,則不會顯示任何指示。

預設值為 false。

注意:您不能將此選項與任何其他提示使用者的選項一起使用,例如 createIfNone

AuthenticationProvider

用於對服務執行驗證的提供者。

事件

一個 Event,當工作階段陣列已變更,或工作階段內的資料已變更時觸發。

方法

提示使用者登入。

如果登入成功,則應觸發 onDidChangeSessions 事件。

如果登入失敗,則應傳回拒絕的 promise。

如果提供者已指定它不支援多個帳戶,則如果已經存在與這些範圍相符的工作階段,則永遠不應呼叫此方法。

參數描述
scopes: readonly string[]

應使用其建立新工作階段的範圍、權限清單。

options: AuthenticationProviderSessionOptions

用於建立工作階段的其他選項。

回傳描述
Thenable<AuthenticationSession>

一個 promise,解析為驗證工作階段。

取得工作階段清單。

參數描述
scopes: readonly string[]

可選的範圍清單。如果提供,傳回的工作階段應與這些權限相符,否則應傳回所有工作階段。

options: AuthenticationProviderSessionOptions

用於取得工作階段的其他選項。

回傳描述
Thenable<AuthenticationSession[]>

一個 promise,解析為驗證工作階段陣列。

移除與工作階段 ID 相對應的工作階段。

如果移除成功,應觸發 onDidChangeSessions 事件。

如果工作階段無法移除,提供者應拒絕並顯示錯誤訊息。

參數描述
sessionId: string

要移除的工作階段的 ID。

回傳描述
Thenable<void>

AuthenticationProviderAuthenticationSessionsChangeEvent

事件,當 AuthenticationSession 新增、移除或變更時觸發。

屬性

AuthenticationProvider 中已變更的 AuthenticationSession。當工作階段的資料(不包含 ID)更新時,工作階段會變更。例如,工作階段重新整理導致為工作階段設定新的存取權杖。

AuthenticationProviderInformation

關於 AuthenticationProvider 的基本資訊

屬性

驗證提供者的唯一識別碼。

驗證提供者的人類可讀名稱。

AuthenticationProviderOptions

用於建立 AuthenticationProvider 的選項。

屬性

是否可以使用此提供者同時登入多個帳戶。如果未指定,則預設為 false。

AuthenticationProviderSessionOptions

屬性

正在詢問的帳戶。如果傳入此項,提供者應嘗試僅傳回與此帳戶相關的工作階段。

AuthenticationSession

表示目前已登入使用者的工作階段。

屬性

存取權杖。

與工作階段關聯的帳戶。

驗證工作階段的識別碼。

工作階段存取權杖授予的權限。可用範圍由 AuthenticationProvider 定義。

AuthenticationSessionAccountInformation

AuthenticationSession 關聯的帳戶資訊。

屬性

帳戶的唯一識別碼。

帳戶的人類可讀名稱。

AuthenticationSessionsChangeEvent

事件,當 AuthenticationSession 新增、移除或變更時觸發。

屬性

AuthenticationProvider,其工作階段已變更。

AutoClosingPair

描述字串配對,其中在輸入開頭字串時,會自動插入結尾字串。

屬性

輸入開頭字串時會自動插入的結尾字串。

一組不應自動關閉配對的語法符號類型。

將觸發自動插入結尾字串的字串。

BranchCoverage

包含 StatementCoverage 分支的覆蓋率資訊。

建構函式

參數描述
executed: number | boolean

此分支的執行次數,或布林值,指出是否已執行(如果確切計數未知)。如果為零或 false,則分支將標記為未涵蓋。

location?: Range | Position

分支位置。

label?: string
回傳描述
BranchCoverage

屬性

此分支的執行次數,或布林值,指出是否已執行(如果確切計數未知)。如果為零或 false,則分支將標記為未涵蓋。

分支的標籤,用於「未採用 ${label} 分支」等上下文中。

分支位置。

Breakpoint

所有斷點類型的基底類別。

建構函式

建立新的斷點

參數描述
enabled?: boolean

是否啟用斷點。

condition?: string

條件式斷點的運算式

hitCondition?: string

控制忽略多少次斷點命中的運算式

logMessage?: string

命中斷點時要顯示的記錄訊息

回傳描述
Breakpoint

屬性

條件式斷點的選用運算式。

是否啟用斷點。

控制忽略多少次斷點命中的選用運算式。

斷點的唯一 ID。

命中此斷點時要記錄的選用訊息。{} 內的嵌入運算式由偵錯配接器內插。

BreakpointsChangeEvent

描述 斷點 集合變更的事件。

屬性

已新增的斷點。

已變更的斷點。

已移除的斷點。

CallHierarchyIncomingCall

表示傳入呼叫,例如方法或建構函式的呼叫者。

建構函式

建立新的呼叫物件。

參數描述
item: CallHierarchyItem

進行呼叫的項目。

fromRanges: Range[]

呼叫出現的範圍。

回傳描述
CallHierarchyIncomingCall

屬性

進行呼叫的項目。

呼叫出現的範圍。這與 this.from 表示的呼叫者相關。

CallHierarchyItem

表示呼叫階層上下文中的程式設計結構,如函式或建構函式。

建構函式

建立新的呼叫階層項目。

參數描述
kind: SymbolKind
name: string
detail: string
uri: Uri
range: Range
selectionRange: Range
回傳描述
CallHierarchyItem

屬性

此項目的更多詳細資訊,例如函式的簽章。

此項目的種類。

此項目的名稱。

封閉此符號的範圍,不包括開頭/結尾空白字元,但包括所有其他內容,例如註解和程式碼。

當選取和顯示此符號時,應選取和顯示的範圍,例如函式的名稱。必須包含在 range 中。

此項目的標籤。

此項目的資源識別碼。

CallHierarchyOutgoingCall

表示傳出呼叫,例如從方法呼叫 getter,或從建構函式呼叫方法等。

建構函式

建立新的呼叫物件。

參數描述
item: CallHierarchyItem

正在呼叫的項目

fromRanges: Range[]

呼叫出現的範圍。

回傳描述
CallHierarchyOutgoingCall

屬性

呼叫此項目的範圍。這是相對於呼叫者的範圍,例如傳遞至 provideCallHierarchyOutgoingCalls 的項目,而不是 this.to

正在呼叫的項目。

CallHierarchyProvider

呼叫階層提供者介面描述擴充功能與呼叫階層功能之間的合約,允許瀏覽函式、方法、建構函式等的呼叫和呼叫者。

方法

透過傳回給定文件和位置表示的項目來啟動呼叫階層。此項目將用作呼叫圖的入口點。當給定位置沒有項目時,提供者應傳回 undefinednull

參數描述
document: TextDocument

在其中調用命令的文件。

position: Position

調用命令的位置。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<CallHierarchyItem | CallHierarchyItem[]>

一個或多個呼叫階層項目,或解析為此類項目的 thenable。缺少結果可以透過傳回 undefinednull 或空陣列來表示。

為項目提供所有傳入呼叫,例如方法的全部呼叫者。在圖形術語中,這描述呼叫圖內部的有向和註釋邊緣,例如給定項目是起始節點,結果是可以到達的節點。

參數描述
item: CallHierarchyItem

應為其計算傳入呼叫的階層項目。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<CallHierarchyIncomingCall[]>

一組傳入呼叫,或解析為此類呼叫的 thenable。缺少結果可以透過傳回 undefinednull 來表示。

為項目提供所有傳出呼叫,例如從給定項目呼叫函式、方法或建構函式的所有呼叫。在圖形術語中,這描述呼叫圖內部的有向和註釋邊緣,例如給定項目是起始節點,結果是可以到達的節點。

參數描述
item: CallHierarchyItem

應為其計算傳出呼叫的階層項目。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<CallHierarchyOutgoingCall[]>

一組傳出呼叫,或解析為此類呼叫的 thenable。缺少結果可以透過傳回 undefinednull 來表示。

CancellationError

應該用於表示作業取消的錯誤類型。

此類型可以用於回應 取消權杖 已取消,或當作業被該作業的執行器取消時。

建構函式

建立新的取消錯誤。

參數描述
回傳描述
CancellationError

CancellationToken

取消權杖會傳遞至非同步或長時間執行的作業,以請求取消,例如因為使用者繼續輸入而取消完成項目的請求。

若要取得 CancellationToken 的執行個體,請使用 CancellationTokenSource

屬性

當權杖已取消時為 true,否則為 false

事件,在取消時觸發。

CancellationTokenSource

取消來源建立並控制 取消權杖

建構函式

參數描述
回傳描述
CancellationTokenSource

屬性

此來源的取消權杖。

方法

在權杖上發出取消訊號。

參數描述
回傳描述
void

處置物件並釋放資源。

參數描述
回傳描述
void

CharacterPair

兩個字元的元組,例如一對開頭和結尾括號。

ChatContext

傳遞至參與者的額外上下文。

屬性

目前聊天工作階段中到目前為止的所有聊天訊息。目前,僅包含目前參與者的聊天訊息。

ChatErrorDetails

表示聊天請求的錯誤結果。

屬性

向使用者顯示的錯誤訊息。

如果設定為 true,則回應將部分模糊化。

ChatFollowup

參與者建議的後續問題。

屬性

預設情況下,後續建議會轉到相同的參與者/命令。但可以設定此屬性以調用不同的命令。

要向使用者顯示的標題。如果未指定,則預設會顯示提示。

預設情況下,後續建議會轉到相同的參與者/命令。但可以設定此屬性以透過 ID 調用不同的參與者。後續建議只能調用由相同擴充功能貢獻的參與者。

要傳送至聊天的訊息。

ChatFollowupProvider

每次請求後都會調用一次,以取得建議的後續問題,向使用者顯示。使用者可以按一下後續建議以將其傳送至聊天。

方法

為給定的結果提供後續建議。

參數描述
result: ChatResult

此物件具有與參與者回呼傳回的結果相同的屬性,包括 metadata,但不是相同的執行個體。

context: ChatContext

傳遞至參與者的額外上下文。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<ChatFollowup[]>

ChatLanguageModelToolReference

使用者手動附加到其請求的工具的參考,無論是使用 #-語法內嵌,還是作為透過紙夾按鈕的附件。

屬性

工具名稱。參考 lm.tools 中列出的工具。

prompt 中參考的開始和結束索引。當未定義時,參考不是提示文字的一部分。

請注意,索引會將開頭的 #-字元納入考量,這表示它們可用於按原樣修改提示。

ChatParticipant

聊天參與者可以由使用者在聊天工作階段中使用 前綴調用。當調用時,它會處理聊天請求,並全權負責向使用者提供回應。ChatParticipant 是使用 chat.createChatParticipant 建立的。

事件

每當收到結果的回饋時(例如,當使用者對結果進行向上或向下投票時)觸發的事件。

傳遞的 result 保證具有與先前從此聊天參與者的處理常式傳回的結果相同的屬性。

屬性

此提供者將在每次請求後調用一次,以檢索建議的後續問題。

UI 中顯示的參與者圖示。

此參與者的唯一 ID。

此參與者的請求處理常式。

方法

處置此參與者並釋放資源。

參數描述
回傳描述
void

ChatParticipantToolToken

在處理聊天請求的上下文中調用工具時,可以傳遞至 lm.invokeTool 的權杖。

ChatPromptReference

使用者新增至其聊天請求的值的參考。

屬性

此類參考的唯一識別碼。

可用於 LLM 提示的此值的描述。

prompt 中參考的開始和結束索引。當未定義時,參考不是提示文字的一部分。

請注意,索引會將開頭的 #-字元納入考量,這表示它們可用於按原樣修改提示。

此參照的值。目前使用 string | Uri | Location 類型,但未來可能會擴展。

ChatRequest

傳送給聊天參與者的請求。

屬性

為此請求選擇的 [ChatCommand 命令](#ChatCommand 命令) 名稱。

這是目前在 UI 中選取的模型。擴充功能可以使用此模型,或使用 chat.selectChatModels 來選取其他模型。請勿在請求的生命週期結束後仍持有此模型。

使用者輸入的提示。

關於此請求中使用的參照資訊儲存在 ChatRequest.references 中。

請注意,參與者的 [ChatParticipant.name 名稱](#ChatParticipant.name 名稱) 和 [ChatCommand.name 命令](#ChatCommand.name 命令) 不是提示的一部分。

提示中參照的參照清單及其值。

請注意,提示包含已撰寫的參照,且由參與者進一步修改提示,例如透過內嵌參照值或建立包含已解析值的標題連結。參照會依其在提示中的範圍以反向排序。這表示提示中的最後一個參照是此清單中的第一個。這簡化了提示的字串操作。

在處理聊天請求的內容中叫用工具時,可以傳遞至 lm.invokeTool 的權杖。這會將工具叫用與聊天工作階段建立關聯。

使用者附加到其請求的工具清單。

當工具參照存在時,聊天參與者應使用 LanguageModelChatToolMode.Required 發出聊天請求,以強制語言模型產生工具的輸入。然後,參與者可以使用 lm.invokeTool 來使用工具,並將結果附加到其使用者提示的請求。工具可以為使用者的請求提供有用的額外內容。

ChatRequestHandler

ChatRequestTurn

代表聊天記錄中的使用者請求。

屬性

為此請求選擇的 [ChatCommand 命令](#ChatCommand 命令) 名稱。

此請求導向的聊天參與者 ID。

使用者輸入的提示。

關於此請求中使用的參照資訊儲存在 ChatRequestTurn.references 中。

請注意,參與者的 [ChatParticipant.name 名稱](#ChatParticipant.name 名稱) 和 [ChatCommand.name 命令](#ChatCommand.name 命令) 不是提示的一部分。

在此訊息中使用的參照。

附加到此請求的工具清單。

ChatResponseAnchorPart

代表聊天回應的一部分,該部分為錨點,會呈現為目標的連結。

建構函式

建立新的 ChatResponseAnchorPart。

參數描述
value: Uri | Location

Uri 或位置。

title?: string

與值一起呈現的選用標題。

回傳描述
ChatResponseAnchorPart

屬性

與值一起呈現的選用標題。

此錨點的目標。

ChatResponseCommandButtonPart

代表聊天回應的一部分,該部分是執行命令的按鈕。

建構函式

建立新的 ChatResponseCommandButtonPart。

參數描述
value: Command

按一下按鈕時將執行的命令。

回傳描述
ChatResponseCommandButtonPart

屬性

按一下按鈕時將執行的命令。

ChatResponseFileTree

代表聊天回應中的檔案樹狀結構。

屬性

如果目前的檔案樹狀結構是目錄,則為子檔案樹狀結構的陣列。

檔案或目錄的名稱。

ChatResponseFileTreePart

代表聊天回應的一部分,該部分是檔案樹狀結構。

建構函式

建立新的 ChatResponseFileTreePart。

參數描述
value: ChatResponseFileTree[]

檔案樹狀結構資料。

baseUri: Uri

此檔案樹狀結構的相對基準 URI。

回傳描述
ChatResponseFileTreePart

屬性

此檔案樹狀結構的相對基準 URI

檔案樹狀結構資料。

ChatResponseMarkdownPart

代表聊天回應的一部分,該部分格式化為 Markdown。

建構函式

建立新的 ChatResponseMarkdownPart。

參數描述
value: string | MarkdownString

Markdown 字串或應解譯為 markdown 的字串。不支援 MarkdownString.isTrusted 的布林形式。

回傳描述
ChatResponseMarkdownPart

屬性

Markdown 字串或應解譯為 markdown 的字串。

ChatResponsePart

代表不同的聊天回應類型。

ChatResponseProgressPart

代表聊天回應的一部分,該部分是進度訊息。

建構函式

建立新的 ChatResponseProgressPart。

參數描述
value: string

進度訊息

回傳描述
ChatResponseProgressPart

屬性

進度訊息

ChatResponseReferencePart

代表聊天回應的一部分,該部分是參照,與內容分開呈現。

建構函式

建立新的 ChatResponseReferencePart。

參數描述
value: Uri | Location

Uri 或位置

iconPath?: IconPath

UI 中顯示的參照圖示

回傳描述
ChatResponseReferencePart

屬性

參照的圖示。

參照目標。

ChatResponseStream

ChatResponseStream 是參與者能夠將內容傳回聊天檢視的方式。它提供多種方法來串流不同類型的內容,這些內容將以適當的方式在聊天檢視中呈現。參與者可以使用輔助方法來處理其想要傳回的內容類型,或者它可以具現化 ChatResponsePart 並使用泛型 ChatResponseStream.push 方法來傳回它。

方法

將錨點部分推送至此串流。push(new ChatResponseAnchorPart(value, title)) 的簡寫。錨點是對某種類型資源的內嵌參照。

參數描述
value: Uri | Location

Uri 或位置。

title?: string

與值一起呈現的選用標題。

回傳描述
void

將命令按鈕部分推送至此串流。push(new ChatResponseCommandButtonPart(value, title)) 的簡寫。

參數描述
command: Command

按一下按鈕時將執行的命令。

回傳描述
void

將檔案樹狀結構部分推送至此串流。push(new ChatResponseFileTreePart(value)) 的簡寫。

參數描述
value: ChatResponseFileTree[]

檔案樹狀結構資料。

baseUri: Uri

此檔案樹狀結構的相對基準 URI。

回傳描述
void

將 markdown 部分推送至此串流。push(new ChatResponseMarkdownPart(value)) 的簡寫。

另請參閱 ChatResponseStream.push

參數描述
value: string | MarkdownString

Markdown 字串或應解譯為 markdown 的字串。不支援 MarkdownString.isTrusted 的布林形式。

回傳描述
void

將進度部分推送至此串流。push(new ChatResponseProgressPart(value)) 的簡寫。

參數描述
value: string

進度訊息

回傳描述
void

將部分推送至此串流。

參數描述
part: ChatResponsePart

回應部分,已呈現或中繼資料

回傳描述
void

將參照推送至此串流。push(new ChatResponseReferencePart(value)) 的簡寫。

請注意,參照不會與回應內嵌呈現。

參數描述
value: Uri | Location

Uri 或位置

iconPath?: IconPath

UI 中顯示的參照圖示

回傳描述
void

ChatResponseTurn

代表聊天記錄中聊天參與者的回應。

屬性

此回應來自的命令名稱。

此回應來自的聊天參與者 ID。

從聊天參與者收到的內容。僅表示代表實際內容(而非中繼資料)的串流部分。

從聊天參與者收到的結果。

ChatResult

聊天請求的結果。

屬性

如果請求導致錯誤,則此屬性會定義錯誤詳細資訊。

此結果的任意中繼資料。可以是任何內容,但必須可 JSON 字串化。

ChatResultFeedback

代表使用者對結果的回饋。

屬性

收到的回饋種類。

使用者提供回饋的 ChatResult。此物件具有與從參與者回呼傳回的結果相同的屬性,包括 metadata,但不是相同的執行個體。

ChatResultFeedbackKind

代表收到的使用者回饋類型。

列舉成員

使用者將結果標記為無幫助。

使用者將結果標記為有幫助。

Clipboard

剪貼簿提供對系統剪貼簿的讀取和寫入權限。

方法

以文字形式讀取目前的剪貼簿內容。

參數描述
回傳描述
Thenable<string>

可解析為字串的 Thenable。

將文字寫入剪貼簿。

參數描述
value: string
回傳描述
Thenable<void>

寫入發生時解析的 Thenable。

CodeAction

程式碼動作代表可在程式碼中執行的變更,例如修正問題或重構程式碼。

CodeAction 必須設定 edit 和/或 command。如果兩者都有提供,則會先套用 edit,然後再執行命令。

建構函式

建立新的程式碼動作。

程式碼動作必須至少具有 titleedits 和/或 command

參數描述
title: string

程式碼動作的標題。

kind?: CodeActionKind

程式碼動作的種類。

回傳描述
CodeAction

屬性

此程式碼動作執行的 Command

如果此命令擲回例外狀況,編輯器會在編輯器中目前游標位置向使用者顯示例外狀況訊息。

此程式碼動作解決的 Diagnostics

標記程式碼動作目前無法套用。

  • 停用的程式碼動作不會顯示在自動 燈泡 程式碼動作選單中。

  • 當使用者要求更特定類型的程式碼動作 (例如重構) 時,停用的動作會在程式碼動作選單中顯示為淡出。

  • 如果使用者具有 快速鍵繫結,可自動套用程式碼動作,且僅傳回停用的程式碼動作,則編輯器會在編輯器中向使用者顯示包含 reason 的錯誤訊息。

參數描述
reason: string

程式碼動作目前停用的原因之人性化可讀描述。

這會顯示在程式碼動作 UI 中。

此程式碼動作執行的 工作區編輯

將此標記為慣用動作。慣用動作由 auto fix 命令使用,且可以快速鍵為目標。

如果快速修正程式碼動作能適當地解決基礎錯誤,則應將其標記為慣用。如果重構是採取的動作中最合理的選擇,則應將重構標記為慣用。

Kind 程式碼動作的種類。

用於篩選程式碼動作。

此程式碼動作的簡短、人性化可讀標題。

CodeActionContext

包含關於執行 程式碼動作 的內容的其他診斷資訊。

屬性

診斷陣列。

要傳回的請求動作種類。

非此種類的動作會在 燈泡 顯示之前篩選掉。

要求程式碼動作的原因。

CodeActionKind

程式碼動作的種類。

種類是以 . 分隔的階層式識別碼清單,例如 "refactor.extract.function"

編輯器會將程式碼動作種類用於 UI 元素,例如重構關聯性選單。使用者也可以使用 editor.action.codeAction 命令,以特定種類觸發程式碼動作。

靜態

空白種類。

適用於整個 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

快速修正動作可解決程式碼中的問題,並顯示在一般程式碼動作關聯性選單中。

重構動作的基礎種類:refactor

重構動作會顯示在重構關聯性選單中。

重構擷取動作的基礎種類:refactor.extract

擷取動作範例

  • 擷取方法
  • 擷取函式
  • 擷取變數
  • 從類別擷取介面
  • ...

重構內嵌動作的基礎種類:refactor.inline

內嵌動作範例

  • 內嵌函式
  • 內嵌變數
  • 內嵌常數
  • ...

重構移動動作的基礎種類:refactor.move

移動動作範例

  • 將函式移動到新檔案
  • 在類別之間移動屬性
  • 將方法移動到基底類別
  • ...

重構重寫動作的基礎種類:refactor.rewrite

重寫動作範例

  • 將 JavaScript 函式轉換為類別
  • 新增或移除參數
  • 封裝欄位
  • 將方法設為靜態
  • ...

來源動作的基礎種類:source

來源程式碼動作適用於整個檔案。必須明確要求這些動作,且不會顯示在一般 燈泡 選單中。來源動作可以在儲存時使用 editor.codeActionsOnSave 執行,也會顯示在 source 關聯性選單中。

自動修正來源動作的基礎種類:source.fixAll

修正所有動作會自動修正具有明確修正且不需要使用者輸入的錯誤。這些動作不應抑制錯誤或執行不安全的修正,例如產生新的類型或類別。

組織匯入來源動作的基礎種類:source.organizeImports

建構函式

私用建構函式,請使用靜態 CodeActionKind.XYZ 從現有的程式碼動作種類衍生。

參數描述
value: string

種類的值,例如 refactor.extract.function

回傳描述
CodeActionKind

屬性

種類的字串值,例如 "refactor.extract.function"

方法

透過將更具體的選取器附加至目前的種類,來建立新的種類。

不會修改目前的種類。

參數描述
parts: string
回傳描述
CodeActionKind

檢查 other 是否為此 CodeActionKind 的子種類。

例如,"refactor.extract" 種類包含 "refactor.extract""refactor.extract.function",但不包含 "unicorn.refactor.extract""refactor.extractAll"refactor

參數描述
other: CodeActionKind

要檢查的種類。

回傳描述
boolean

檢查此程式碼動作種類是否與 other 相交。

例如,"refactor.extract" 種類與 refactor"refactor.extract""refactor.extract.function" 相交,但不與 "unicorn.refactor.extract""refactor.extractAll" 相交。

參數描述
other: CodeActionKind

要檢查的種類。

回傳描述
boolean

CodeActionProvider<T>

為程式碼提供內容動作。程式碼動作通常用於修正問題或美化/重構程式碼。

程式碼動作會以幾種不同的方式呈現給使用者

  • 燈泡功能,會在目前游標位置顯示程式碼動作清單。燈泡的動作清單包含快速修正和重構。
  • 作為使用者可以執行的命令,例如 Refactor。使用者可以從命令面板或使用按鍵繫結執行這些命令。
  • 作為來源動作,例如 Organize Imports
  • 快速修正會顯示在問題檢視中。
  • 透過 editor.codeActionsOnSave 設定在儲存時套用的變更。

方法

取得文件中給定範圍的程式碼動作。

僅傳回與使用者請求範圍相關的程式碼動作。同時請記住傳回的程式碼動作將如何在 UI 中顯示。例如,燈泡小工具和 Refactor 命令會將傳回的程式碼動作顯示為清單,因此請勿傳回大量會讓使用者感到混亂的程式碼動作。

參數描述
document: TextDocument

在其中調用命令的文件。

range: Range | Selection

叫用命令的選取器或範圍。如果動作是在目前活動的編輯器中請求,則這永遠會是 selection

context: CodeActionContext

提供關於正在請求哪些程式碼動作的其他資訊。您可以使用此資訊來查看編輯器正在請求哪些特定類型的程式碼動作,以便傳回更相關的動作,並避免傳回編輯器會捨棄的不相關程式碼動作。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<Array<Command | T>>

程式碼動作陣列,例如快速修正或重構。缺少結果可以用傳回 undefinednull 或空陣列來表示。

基於舊版原因,我們也支援傳回 Command,但所有新的擴充功能都應改為傳回 CodeAction 物件。

給定一個程式碼動作,填入其 edit 屬性。對所有其他屬性(例如標題)的變更都會被忽略。具有編輯的程式碼動作將不會被解析。

請注意,傳回命令而不是程式碼動作的程式碼動作提供者無法成功實作此函式。不建議傳回命令,而應改為傳回程式碼動作。

參數描述
codeAction: T

一個程式碼動作。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T>

已解析的程式碼動作或解析為此動作的 thenable。可以傳回給定的 item。當未傳回任何結果時,將使用給定的 item

CodeActionProviderMetadata

關於 CodeActionProvider 提供的程式碼動作類型的中繼資料。

屬性

程式碼動作類別的靜態文件。

如果符合以下任一條件,則提供者的文件會顯示在程式碼動作選單中

  • 編輯器請求 kind 的程式碼動作。在這種情況下,編輯器將顯示與請求的程式碼動作種類最接近的文件。例如,如果提供者同時具有 RefactorRefactorExtract 的文件,當使用者請求 RefactorExtract 的程式碼動作時,編輯器將使用 RefactorExtract 的文件,而不是 Refactor 的文件。

  • 提供者傳回任何 kind 的程式碼動作。

每個提供者最多會顯示一個文件項目。

CodeActionProvider 可能傳回的 CodeActionKinds 清單。

此清單用於判斷是否應叫用給定的 CodeActionProvider。為了避免不必要的計算,每個 CodeActionProvider 都應列出使用的 providedCodeActionKinds。種類清單可以是通用的,例如 [CodeActionKind.Refactor],或列出提供的每個種類,例如 [CodeActionKind.Refactor.Extract.append('function'), CodeActionKind.Refactor.Extract.append('constant'), ...]

CodeActionTriggerKind

要求程式碼動作的原因。

列舉成員

程式碼動作是由使用者或擴充功能明確請求的。

程式碼動作是自動請求的。

這通常發生在檔案中的目前選取範圍變更時,但也可能在檔案內容變更時觸發。

CodeLens

程式碼鏡頭代表一個 Command,應與原始碼文字一起顯示,例如參考次數、執行測試的方式等。

當沒有命令與程式碼鏡頭關聯時,程式碼鏡頭是未解析的。基於效能考量,程式碼鏡頭的建立和解析應分為兩個階段進行。

另請參閱

建構函式

建立新的程式碼鏡頭物件。

參數描述
range: Range

此程式碼鏡頭適用的範圍。

command?: Command

與此程式碼鏡頭關聯的命令。

回傳描述
CodeLens

屬性

此程式碼鏡頭代表的命令。

當有關聯的命令時,為 true

此程式碼鏡頭有效的範圍。應僅跨越單行。

CodeLensProvider<T>

程式碼鏡頭提供者會將 commands 新增至原始碼文字。命令將顯示為原始碼文字之間的專用水平線。

事件

一個選用事件,用於發出此提供者的程式碼鏡頭已變更的訊號。

方法

計算 lenses 的清單。此呼叫應盡可能快速傳回,如果計算命令的成本很高,實作者應僅傳回設定範圍的程式碼鏡頭物件,並實作 resolve

參數描述
document: TextDocument

在其中調用命令的文件。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T[]>

程式碼鏡頭陣列或解析為此陣列的 thenable。缺少結果可以用傳回 undefinednull 或空陣列來表示。

將針對每個可見的程式碼鏡頭呼叫此函式,通常在捲動之後以及在呼叫 compute-lenses 之後。

參數描述
codeLens: T

必須解析的程式碼鏡頭。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T>

給定的已解析程式碼鏡頭或解析為此鏡頭的 thenable。

Color

代表 RGBA 空間中的色彩。

建構函式

建立新的色彩實例。

參數描述
red: number

紅色元件。

green: number

綠色元件。

blue: number

藍色元件。

alpha: number

Alpha 元件。

回傳描述
Color

屬性

此色彩的 Alpha 元件,範圍為 [0-1]

此色彩的藍色元件,範圍為 [0-1]

此色彩的綠色元件,範圍為 [0-1]

此色彩的紅色元件,範圍為 [0-1]

ColorInformation

代表文件中的色彩範圍。

建構函式

建立新的色彩範圍。

參數描述
range: Range

色彩出現的範圍。不得為空。

color: Color

色彩的值。

回傳描述
ColorInformation

屬性

此色彩範圍的實際色彩值。

此色彩在文件中出現的範圍。

ColorPresentation

色彩呈現物件描述 Color 應如何以文字表示,以及從原始碼參考它所需的編輯。

對於某些語言,一種顏色可以有多種呈現方式,例如 css 可以使用常數 Red、十六進位值 #ff0000 或 rgba 和 hsla 形式來表示紅色。在 csharp 中,其他呈現方式適用,例如 System.Drawing.Color.Red

建構函式

建立新的色彩呈現方式。

參數描述
label: string

此色彩呈現方式的標籤。

回傳描述
ColorPresentation

屬性

選用的額外 text edits 陣列,在選取此色彩呈現方式時套用。編輯不得與主要的 edit 或與自身重疊。

此色彩呈現方式的標籤。它將顯示在色彩選擇器標頭上。預設情況下,這也是選取此色彩呈現方式時插入的文字。

當為色彩選取此呈現方式時,套用至文件的 edit。當 falsy 時,會使用 label

ColorTheme

代表色彩主題。

屬性

此色彩主題的種類:淺色、深色、高對比深色和高對比淺色。

ColorThemeKind

代表色彩主題種類。

列舉成員

淺色色彩主題。

深色色彩主題。

深色高對比色彩主題。

淺色高對比色彩主題。

Command

代表命令的參考。提供標題 (將用於在 UI 中表示命令),以及選用的引數陣列 (將在叫用時傳遞至命令處理常式函式)。

屬性

命令處理常式應使用叫用的引數。

實際命令處理常式的識別碼。

另請參閱 commands.registerCommand

命令的標題,例如 save

當命令在 UI 中表示時的工具提示。

Comment

註解會顯示在編輯器或註解面板中,具體取決於其提供方式。

屬性

註解的 作者資訊

人類可讀的註解內文

註解的內容值。這可用於貢獻註解特定的動作。例如,註解會被賦予內容值 editable。當使用 menus 擴充點將動作貢獻給 comments/comment/title 時,您可以在 when 運算式中為索引鍵 comment 指定內容值,例如 comment == editable

    "contributes": {
        "menus": {
            "comments/comment/title": [
                {
                    "command": "extension.deleteComment",
                    "when": "comment == editable"
                }
            ]
        }
    }

這將僅針對 contextValueeditable 的註解顯示動作 extension.deleteComment

描述 Comment 的選用標籤。如果存在,標籤將在 authorName 旁邊呈現。

Comment mode 的註解

Comment 的選用反應

將在註解中顯示的選用時間戳記。日期將根據使用者的地區設定和設定來格式化。

CommentAuthorInformation

Comment 的作者資訊

屬性

作者的選用圖示路徑

註解作者的顯示名稱

CommentController

註解控制器能夠為編輯器提供 comments 支援,並為使用者提供與註解互動的各種方式。

屬性

選用的註解範圍提供者。為任何給定的資源 uri 提供支援註解的 ranges 清單。

如果未提供,使用者將無法留下任何註解。

此註解控制器的 ID。

此註解控制器的人類可讀標籤。

註解控制器選項

用於在 Comment 上建立和刪除反應的選用反應處理常式。

參數描述
comment: Comment
reaction: CommentReaction
回傳描述
Thenable<void>

方法

建立 comment thread。註解執行緒將在可見的文字編輯器 (如果資源符合) 和註解面板中建立後顯示。

參數描述
uri: Uri

執行緒建立所在文件的 uri。

range: Range

註解執行緒在文件中所在的位置範圍。

comments: readonly Comment[]

執行緒的已排序註解。

回傳描述
CommentThread

處置此註解控制器。

處置後,由此註解控制器建立的所有 comment threads 也將從編輯器和註解面板中移除。

參數描述
回傳描述
void

CommentingRangeProvider

用於 comment controller 的註解範圍提供者。

方法

為給定的文件提供允許建立新註解執行緒的範圍清單,或為 null

參數描述
document: TextDocument
token: CancellationToken
回傳描述
ProviderResult<Range[] | CommentingRanges>

CommentingRanges

CommentingRangeProvider 啟用註解的範圍。

屬性

啟用將註解新增至檔案,而無需特定範圍。

允許建立新註解執行緒的範圍。

CommentMode

Comment 的註解模式

列舉成員

顯示註解編輯器

顯示註解的預覽

CommentOptions

屬性

選用字串,在註解輸入框獲得焦點時顯示為預留位置。

選用字串,在註解輸入框摺疊時顯示在其中。

CommentReaction

Comment 的反應

屬性

註解的 author 是否對此反應做出反應

對此反應做出反應的使用者人數

UI 中顯示的反應圖示。

反應的人類可讀標籤

CommentReply

comments/commentThread/context 中註冊之動作的命令引數。

屬性

註解編輯器中的值

CommentRule

描述語言的註解運作方式。

屬性

區塊註解字元組,例如 /* block comment *&#47;

行註解符號,例如 // this is a comment

CommentThread

代表文件中特定範圍對話的 comments 集合。

屬性

執行緒是否支援回覆。預設為 true。

在開啟文件時,執行緒應摺疊還是展開。預設為摺疊。

執行緒的已排序註解。

註解執行緒的內容值。這可用於貢獻執行緒特定的動作。例如,註解執行緒會被賦予內容值 editable。當使用 menus 擴充點將動作貢獻給 comments/commentThread/title 時,您可以在 when 運算式中為索引鍵 commentThread 指定內容值,例如 commentThread == editable

"contributes": {
  "menus": {
    "comments/commentThread/title": [
      {
        "command": "extension.deleteCommentThread",
        "when": "commentThread == editable"
      }
    ]
  }
}

這將僅針對 contextValueeditable 的註解執行緒顯示動作 extension.deleteCommentThread

描述 Comment Thread 的選用人類可讀標籤

註解執行緒在文件中所處的範圍。執行緒圖示會顯示在範圍的最後一行。當設定為 undefined 時,註解會與檔案關聯,而不是特定的範圍。

註解執行緒的選用狀態,可能會影響註解的顯示方式。

執行緒建立所在文件的 uri。

方法

處置此註解執行緒。

一旦處置,此註解執行緒將從可見的編輯器和註解面板中移除(如果適當)。

參數描述
回傳描述
void

CommentThreadCollapsibleState

註解執行緒的可摺疊狀態

列舉成員

決定項目是否為摺疊狀態

決定項目是否為展開狀態

CommentThreadState

註解執行緒的狀態。

列舉成員

未解決的執行緒狀態

已解決的執行緒狀態

CompletionContext

包含關於觸發完成項目提供者的上下文的其他資訊。

屬性

觸發完成項目提供者的字元。

如果提供者不是由字元觸發,則為 undefined

當觸發完成項目提供者時,觸發字元已在文件中。

完成項目是如何被觸發的。

CompletionItem

完成項目代表一個文字片段,建議用於完成正在輸入的文字。

僅從 label 建立完成項目就已足夠。在這種情況下,完成項目將用給定的標籤或 insertText 取代游標之前的 word。否則,將使用給定的 edit

當在編輯器中選取完成項目時,其定義或合成的文字編輯將應用於所有游標/選取範圍,而 additionalTextEdits 將按提供的內容應用。

另請參閱

建構函式

建立新的完成項目。

完成項目必須至少有一個 label,然後將其用作插入文字,以及排序和篩選。

參數描述
label: string | CompletionItemLabel

完成項目的標籤。

kind?: CompletionItemKind

完成項目的 種類

回傳描述
CompletionItem

屬性

選用的 文字編輯陣列,在選取此完成項目時套用。編輯不得與主要的 edit 或它們本身重疊。

選用的 Command,在之後插入此完成項目時執行。請注意,對目前文件的其他修改應使用 additionalTextEdits 屬性描述。

選用的一組字元,當在此完成項目處於活動狀態時按下這些字元,將首先接受它,然後輸入該字元。請注意,所有 commit 字元的 length=1,多餘的字元將被忽略。

人類可讀的字串,包含關於此項目的其他資訊,例如類型或符號資訊。

人類可讀的字串,表示文件註解。

在篩選一組完成項目時應使用的字串。當為 falsy 時,將使用 label

請注意,篩選文字會與前導字詞(字首)比對,該字詞由 range 屬性定義。

當選取此完成項目時,應插入文件中的字串或程式碼片段。當為 falsy 時,將使用 label

保持 insertText 的空白字元不變。預設情況下,編輯器會調整新行的前導空白字元,使其與接受項目的行的縮排一致 - 將此設定為 true 將防止這種情況。

此完成項目的種類。根據種類,編輯器會選擇一個圖示。

此完成項目的標籤。預設情況下,這也是選取此完成項目時插入的文字。

顯示時選取此項目。請注意,只能選取一個完成項目,且編輯器決定是哪個項目。規則是選取最符合的項目中的第一個項目。

選取應由此完成項目取代的文字的範圍或插入和取代範圍。

如果省略,則 目前字詞 的範圍將用作取代範圍,而 目前字詞 的開頭到目前位置將用作插入範圍。

注意 1: 範圍必須是 單行,且必須 包含 請求 完成項目的位置。注意 2: 插入範圍必須是取代範圍的字首,這表示它必須包含在取代範圍內,且從相同位置開始。

在將此項目與其他項目進行比較時應使用的字串。當為 falsy 時,將使用 label

請注意,sortText 僅用於完成項目的初始排序。當有前導字詞(字首)時,排序是基於完成項目與該字首的符合程度,而初始排序僅在完成項目符合程度相同時使用。字首由 range 屬性定義,因此每個完成項目可能有所不同。

此完成項目的標籤。

  • 已過時 - 請改用 CompletionItem.insertTextCompletionItem.range

當選取此完成項目時,會套用至文件的 edit。當提供 edit 時,將忽略 insertText 的值。

edit 的 Range 必須是單行,且與 請求 完成項目的行相同。

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 函數,延遲 detaildocumentation 屬性的計算。但是,初始排序和篩選所需的屬性,例如 sortTextfilterTextinsertTextrange,在解析期間不得變更。

系統會要求提供者提供完成項目,可以是使用者手勢明確請求,或是根據組態設定,在輸入字詞或觸發字元時隱含請求。

方法

為給定的位置和文件提供完成項目。

參數描述
document: TextDocument

在其中調用命令的文件。

position: Position

調用命令的位置。

token: CancellationToken

取消權杖。

context: CompletionContext

完成項目是如何被觸發的。

回傳描述
ProviderResult<CompletionList<T> | T[]>

完成項目的陣列、完成清單,或是一個解析為其中之一的 thenable 物件。缺少結果可以使用傳回 undefinednull 或空陣列來表示。

給定一個完成項目,填入更多資料,例如 文件註解詳細資訊

編輯器只會解析完成項目一次。

請注意,當完成項目已在 UI 中顯示,或已選取要插入的項目時,將會呼叫此函數。因此,任何會變更呈現方式(標籤、排序、篩選等)或(主要)插入行為 (insertText) 的屬性都不能變更。

此函數可能會填入 additionalTextEdits。但是,這表示項目可能會在完成解析之前插入,在這種情況下,編輯器將盡最大努力仍然套用這些額外的文字編輯。

參數描述
item: T

目前在 UI 中處於活動狀態的完成項目。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T>

已解析的完成項目或解析為此類項目的 thenable 物件。可以傳回給定的 item。當未傳回任何結果時,將使用給定的 item

CompletionItemTag

完成項目標籤是額外的註釋,可調整完成項目的呈現方式。

列舉成員

將完成項目呈現為已過時,通常使用刪除線。

CompletionList<T>

表示要在編輯器中呈現的 完成項目 的集合。

建構函式

建立新的完成清單。

參數描述
items?: T[]

完成項目。

isIncomplete?: boolean

此清單不完整。

回傳描述
CompletionList<T>

屬性

此清單不完整。進一步輸入應導致重新計算此清單。

完成項目。

CompletionTriggerKind

完成項目提供者的觸發方式

列舉成員

正常觸發完成。

由觸發字元觸發完成。

由於目前的完成清單不完整,因此重新觸發完成

ConfigurationChangeEvent

描述組態變更的事件

方法

檢查給定的區段是否已變更。如果提供 scope,則檢查給定 scope 下資源的區段是否已變更。

參數描述
section: string

組態名稱,支援點狀名稱。

scope?: ConfigurationScope

要檢查的 scope。

回傳描述
boolean

如果給定的區段已變更,則為 true

ConfigurationScope

組態 scope 可以是

  • 代表資源的 Uri
  • 代表開啟文字文件的 TextDocument
  • 代表工作區資料夾的 WorkspaceFolder
  • 包含以下內容的物件
    • uri:文字文件的選用 Uri
    • languageId:文字文件的語言識別碼

ConfigurationTarget

組態目標

列舉成員

全域組態

工作區組態

工作區資料夾組態

CustomDocument

代表 CustomEditorProvider 使用的自訂文件。

自訂文件僅在給定的 CustomEditorProvider 內使用。CustomDocument 的生命週期由編輯器管理。當不再有對 CustomDocument 的參考時,它將被處置。

屬性

此文件相關聯的 URI。

方法

處置自訂文件。

當不再有對給定 CustomDocument 的參考時(例如,當所有與文件相關聯的編輯器都已關閉時),編輯器會調用此方法。

參數描述
回傳描述
void

CustomDocumentBackup

CustomDocument 的備份。

屬性

備份的唯一識別碼。

當從備份開啟自訂編輯器時,此 ID 會在 openCustomDocument 中傳回給您的擴充功能。

方法

刪除目前的備份。

當編輯器確定不再需要目前的備份時,例如在建立新備份或儲存檔案時,會調用此方法。

參數描述
回傳描述
void

CustomDocumentBackupContext

用於實作 CustomDocumentBackup 的其他資訊。

屬性

建議寫入新備份的檔案位置。

請注意,您的擴充功能可以自由忽略此位置,並使用自己的備份策略。

如果編輯器用於來自目前工作區的資源,則 destination 將指向 ExtensionContext.storagePath 內的檔案。destination 的父資料夾可能不存在,因此請務必在將備份寫入此位置之前建立它。

CustomDocumentContentChangeEvent<T>

擴充功能觸發的事件,用於向編輯器發出 CustomDocument 內容已變更的訊號。

另請參閱 CustomEditorProvider.onDidChangeCustomDocument

屬性

變更所針對的文件。

CustomDocumentEditEvent<T>

擴充功能觸發的事件,用於向編輯器發出 CustomDocument 上已發生編輯的訊號。

另請參閱 CustomEditorProvider.onDidChangeCustomDocument

屬性

編輯所針對的文件。

描述編輯的顯示名稱。

這將在復原/重做操作的 UI 中向使用者顯示。

方法

重做編輯操作。

當使用者重做此編輯時,編輯器會調用此方法。若要實作 redo,您的擴充功能應將文件和編輯器還原至剛將此編輯透過 onDidChangeCustomDocument 新增至編輯器內部編輯堆疊後的狀態。

參數描述
回傳描述
void | Thenable<void>

復原編輯操作。

當使用者復原此編輯時,編輯器會調用此方法。若要實作 undo,您的擴充功能應將文件和編輯器還原至剛將此編輯透過 onDidChangeCustomDocument 新增至編輯器內部編輯堆疊之前的狀態。

參數描述
回傳描述
void | Thenable<void>

CustomDocumentOpenContext

關於開啟自訂文件的其他資訊。

屬性

用於從備份還原文件的備份 ID,如果沒有備份,則為 undefined

如果提供此 ID,您的擴充功能應從備份還原編輯器,而不是從使用者工作區中的檔案讀取。

如果 URI 是未命名的檔案,則此屬性將填入該檔案的位元組資料

如果提供此屬性,您的擴充功能應使用此位元組資料,而不是對傳入的 URI 執行 fs API

CustomEditorProvider<T>

使用自訂文件模型的、可編輯自訂編輯器的提供者。

自訂編輯器使用 CustomDocument 作為其文件模型,而不是 TextDocument。這讓擴充功能完全控制編輯、儲存和備份等動作。

當處理二進位檔案或更複雜的情況時,您應該使用此類型的自訂編輯器。對於簡單的基於文字的文件,請改用 CustomTextEditorProvider

事件

發出在自訂編輯器內發生編輯的訊號。

每當自訂編輯器中發生編輯時,您的擴充功能都必須觸發此事件。編輯可以是任何內容,從變更某些文字、裁剪影像到重新排序清單。您的擴充功能可以自由定義編輯的內容以及每個編輯上儲存的資料。

觸發 onDidChange 會導致編輯器標記為已變更。當使用者儲存或還原檔案時,此標記會被清除。

支援復原/重做的編輯器必須在每次發生編輯時觸發 CustomDocumentEditEvent。這允許使用者使用編輯器的標準鍵盤快捷鍵來復原和重做編輯。如果使用者復原所有編輯至上次儲存的狀態,編輯器也會將編輯器標記為不再是已變更狀態。

支援編輯但無法使用編輯器標準復原/重做機制的編輯器,必須觸發 CustomDocumentContentChangeEvent。使用者清除不支援復原/重做之編輯器的已變更狀態的唯一方法是 saverevert 檔案。

編輯器應始終只觸發 CustomDocumentEditEvent 事件,或始終只觸發 CustomDocumentContentChangeEvent 事件。

方法

備份已變更的自訂文件。

備份用於熱退出和防止資料遺失。您的 backup 方法應以目前狀態(即套用編輯後)持續保存資源。最常見的情況是將資源儲存到 ExtensionContext.storagePath 中的磁碟。當編輯器重新載入且您的自訂編輯器針對資源開啟時,您的擴充功能應先檢查資源是否存在任何備份。如果有備份,您的擴充功能應從該處載入檔案內容,而不是從工作區中的資源載入。

backup 大約在使用者停止編輯文件一秒後觸發。如果使用者快速編輯文件,則在編輯停止之前不會調用 backup

啟用 auto save 時不會調用 backup(因為自動儲存已持續保存資源)。

參數描述
document: T

要備份的文件。

context: CustomDocumentBackupContext

可用於備份文件的資訊。

cancellation: CancellationToken

發出訊號表示目前備份已取消的 Token,因為即將有新的備份進來。您的擴充功能可自行決定如何回應取消。例如,如果您的擴充功能正在備份大型檔案,並且操作需要時間才能完成,則您的擴充功能可以決定完成正在進行的備份,而不是取消它,以確保編輯器具有一些有效的備份。

回傳描述
Thenable<CustomDocumentBackup>

為給定資源建立新文件。

第一次開啟給定資源的編輯器時,會調用 openCustomDocument。然後將開啟的文件傳遞給 resolveCustomEditor,以便可以向使用者顯示編輯器。

如果使用者開啟其他編輯器,則會重複使用已開啟的 CustomDocument。當給定資源的所有編輯器都關閉時,CustomDocument 會被處置。此時開啟編輯器將觸發另一次對 openCustomDocument 的呼叫。

參數描述
uri: Uri

要開啟的文件 URI。

openContext: CustomDocumentOpenContext

關於開啟自訂文件的其他資訊。

token: CancellationToken

表示不再需要結果的取消 Token。

回傳描述
T | Thenable<T>

自訂文件。

解析給定資源的自訂編輯器。

每當使用者為此 CustomEditorProvider 開啟新編輯器時,都會調用此方法。

參數描述
document: T

要解析的資源的文件。

webviewPanel: WebviewPanel

用於顯示此資源的編輯器 UI 的 Webview 面板。

在解析期間,提供者必須填寫內容 Webview 面板的初始 HTML,並掛接所有它感興趣的事件接聽器。提供者也可以保留 WebviewPanel 以供稍後在命令中使用。請參閱 WebviewPanel 以取得更多詳細資訊。

token: CancellationToken

表示不再需要結果的取消 Token。

回傳描述
void | Thenable<void>

表示自訂編輯器已解析的可選 Thenable。

將自訂文件還原為上次儲存的狀態。

當使用者在自訂編輯器中觸發「檔案:還原檔案」時,編輯器會調用此方法。(請注意,這僅在使用編輯器的「檔案:還原檔案」命令時使用,而不是在檔案的 git revert 上使用)。

若要實作 revert,實作人員必須確保 document 的所有編輯器實例 (Webview) 都顯示與儲存狀態相同的文件。這通常表示從工作區重新載入檔案。

參數描述
document: T

要還原的文件。

cancellation: CancellationToken

發出訊號表示不再需要還原的 Token。

回傳描述
Thenable<void>

表示變更已完成的 Thenable。

儲存自訂文件。

當使用者儲存自訂編輯器時,編輯器會調用此方法。當使用者在自訂編輯器處於活動狀態時觸發儲存、透過「全部儲存」等命令或在啟用自動儲存時,都可能發生這種情況。

若要實作 save,實作人員必須持續保存自訂編輯器。這通常表示將自訂文件的檔案資料寫入磁碟。save 完成後,任何相關聯的編輯器實例都將不再標記為已變更。

參數描述
document: T

要儲存的文件。

cancellation: CancellationToken

發出訊號表示不再需要儲存的 Token(例如,如果觸發了另一次儲存)。

回傳描述
Thenable<void>

表示儲存已完成的 Thenable。

將自訂文件儲存到不同的位置。

當使用者在自訂編輯器上觸發「另存為」時,編輯器會調用此方法。實作人員必須將自訂編輯器持續保存到 destination

當使用者接受另存為時,目前的編輯器將被新儲存檔案的非已變更編輯器取代。

參數描述
document: T

要儲存的文件。

destination: Uri

要儲存到的位置。

cancellation: CancellationToken

發出訊號表示不再需要儲存的 Token。

回傳描述
Thenable<void>

表示儲存已完成的 Thenable。

CustomExecution

用於將擴充功能回呼作為任務執行的類別。

建構函式

建構 CustomExecution 任務物件。當任務執行時,將會執行回呼,此時擴充功能應傳回它將「在其中執行」的 Pseudoterminal。任務應等待直到調用 Pseudoterminal.open 後再執行進一步的執行。應使用 Pseudoterminal.close 處理任務取消。當任務完成時,觸發 Pseudoterminal.onDidClose

參數描述
callback: (resolvedDefinition: TaskDefinition) => Thenable<Pseudoterminal>

當使用者啟動任務時將呼叫的回呼。任務定義中的任何 ${} 樣式變數都將被解析,並作為 resolvedDefinition 傳遞到回呼中。

回傳描述
CustomExecution

CustomReadonlyEditorProvider<T>

使用自訂文件模型的唯讀自訂編輯器的提供者。

自訂編輯器使用 CustomDocument 作為其文件模型,而不是 TextDocument

當處理二進位檔案或更複雜的情況時,您應該使用此類型的自訂編輯器。對於簡單的基於文字的文件,請改用 CustomTextEditorProvider

方法

為給定資源建立新文件。

第一次開啟給定資源的編輯器時,會調用 openCustomDocument。然後將開啟的文件傳遞給 resolveCustomEditor,以便可以向使用者顯示編輯器。

如果使用者開啟其他編輯器,則會重複使用已開啟的 CustomDocument。當給定資源的所有編輯器都關閉時,CustomDocument 會被處置。此時開啟編輯器將觸發另一次對 openCustomDocument 的呼叫。

參數描述
uri: Uri

要開啟的文件 URI。

openContext: CustomDocumentOpenContext

關於開啟自訂文件的其他資訊。

token: CancellationToken

表示不再需要結果的取消 Token。

回傳描述
T | Thenable<T>

自訂文件。

解析給定資源的自訂編輯器。

每當使用者為此 CustomEditorProvider 開啟新編輯器時,都會調用此方法。

參數描述
document: T

要解析的資源的文件。

webviewPanel: WebviewPanel

用於顯示此資源的編輯器 UI 的 Webview 面板。

在解析期間,提供者必須填寫內容 Webview 面板的初始 HTML,並掛接所有它感興趣的事件接聽器。提供者也可以保留 WebviewPanel 以供稍後在命令中使用。請參閱 WebviewPanel 以取得更多詳細資訊。

token: CancellationToken

表示不再需要結果的取消 Token。

回傳描述
void | Thenable<void>

表示自訂編輯器已解析的可選 Thenable。

CustomTextEditorProvider

基於文字的自訂編輯器的提供者。

基於文字的自訂編輯器使用 TextDocument 作為其資料模型。這大大簡化了自訂編輯器的實作,因為它允許編輯器處理許多常見操作,例如復原和備份。提供者負責同步 Webview 和 TextDocument 之間的文字變更。

方法

解析給定文字資源的自訂編輯器。

當使用者第一次為 CustomTextEditorProvider 開啟資源,或者他們使用此 CustomTextEditorProvider 重新開啟現有的編輯器時,會調用此方法。

參數描述
document: TextDocument

要解析的資源的文件。

webviewPanel: WebviewPanel

用於顯示此資源的編輯器 UI 的 Webview 面板。

在解析期間,提供者必須填寫內容 Webview 面板的初始 HTML,並掛接所有它感興趣的事件接聽器。提供者也可以保留 WebviewPanel 以供稍後在命令中使用。請參閱 WebviewPanel 以取得更多詳細資訊。

token: CancellationToken

表示不再需要結果的取消 Token。

回傳描述
void | Thenable<void>

表示自訂編輯器已解析的 Thenable。

DataTransfer

包含對應傳輸資料的 MIME 類型對應的 Map。

實作 handleDrag 的拖放控制器可以將其他 MIME 類型新增至資料傳輸。當拖曳從相同拖放控制器中的元素起始時,這些額外的 MIME 類型才會包含在 handleDrop 中。

建構函式

參數描述
回傳描述
DataTransfer

方法

取得新的迭代器,其中包含此資料傳輸中每個元素的 [mime, item] 組。

參數描述
回傳描述
IterableIterator<[mimeType: string, item: DataTransferItem]>

允許迭代資料傳輸項目。

參數描述
callbackfn: (item: DataTransferItem, mimeType: string, dataTransfer: DataTransfer) => void

用於迭代資料傳輸項目的回呼。

thisArg?: any

調用處理程式函數時使用的 this 上下文。

回傳描述
void

擷取給定 MIME 類型的資料傳輸項目。

參數描述
mimeType: string

要取得資料傳輸項目的 MIME 類型,例如 text/plainimage/png。MIME 類型查閱不區分大小寫。

特殊 MIME 類型

  • text/uri-list — 以 \r\n 分隔的 toString() 化的 URI 字串。若要在檔案中指定游標位置,請將 URI 的片段設定為 L3,5,其中 3 是行號,5 是欄號。
回傳描述
DataTransferItem

設定 MIME 類型到資料傳輸項目的對應。

參數描述
mimeType: string

要設定資料的 MIME 類型。MIME 類型以小寫儲存,查閱不區分大小寫。

value: DataTransferItem

給定 MIME 類型的資料傳輸項目。

回傳描述
void

DataTransferFile

DataTransferItem 相關聯的檔案。

此類型的實例只能由編輯器建立,而不能由擴充功能建立。

屬性

檔案的名稱。

檔案的完整檔案路徑。

在 Web 上可能為 undefined

方法

檔案的完整檔案內容。

參數描述
回傳描述
Thenable<Uint8Array>

DataTransferItem

封裝在拖放操作期間傳輸的資料。

建構函式

參數描述
value: any

儲存在此項目上的自訂資料。可以使用 DataTransferItem.value 擷取。

回傳描述
DataTransferItem

屬性

儲存在此項目上的自訂資料。

您可以使用 value 在操作之間共用資料。只要建立 DataTransferItem 的擴充功能在相同的擴充功能主機中執行,就可以擷取原始物件。

方法

嘗試取得與此資料傳輸項目相關聯的 file

請注意,檔案物件僅在拖放操作的範圍內有效。

參數描述
回傳描述
DataTransferFile

資料傳輸的檔案,如果項目不是檔案或無法存取檔案資料,則為 undefined

取得此項目的字串表示法。

如果 DataTransferItem.value 是物件,則這會傳回 JSON 字串化 DataTransferItem.value 值的結果。

參數描述
回傳描述
Thenable<string>

DebugAdapter

如果偵錯配接器實作偵錯配接器協議,則可以將實作 DebugAdapter 介面的偵錯配接器註冊到編輯器。

事件

偵錯配接器將偵錯配接器協議訊息傳送至編輯器後觸發的事件。訊息可以是請求、回應或事件。

方法

處置此物件。

參數描述
回傳描述
any

處理偵錯配接器協議訊息。訊息可以是請求、回應或事件。結果或錯誤透過 onSendMessage 事件傳回。

參數描述
message: DebugProtocolMessage

偵錯配接器協定訊息

回傳描述
void

DebugAdapterDescriptor

代表不同類型的偵錯配接器

DebugAdapterDescriptorFactory

偵錯配接器工廠,用於建立 偵錯配接器描述元

方法

'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

代表偵錯配接器可執行檔,以及傳遞給它的選用引數和執行階段選項。

建構函式

根據可執行程式建立偵錯配接器的描述。

參數描述
command: string

實作偵錯配接器的命令或可執行檔路徑。

args?: string[]

要傳遞至命令或可執行檔的選用引數。

options?: DebugAdapterExecutableOptions

啟動命令或可執行檔時要使用的選用選項。

回傳描述
DebugAdapterExecutable

屬性

傳遞至偵錯配接器可執行檔的引數。預設為空陣列。

偵錯配接器可執行檔的命令或路徑。命令必須是可執行檔的絕對路徑,或是要透過 PATH 環境變數查閱的命令名稱。特殊值 'node' 將會對應到編輯器的內建 Node.js 執行階段。

啟動偵錯配接器時要使用的選用選項。預設為 undefined。

DebugAdapterExecutableOptions

偵錯配接器可執行檔的選項。

屬性

執行偵錯配接器的目前工作目錄。

執行程式或 Shell 的其他環境。如果省略,則會使用父進程的環境。如果提供,則會與父進程的環境合併。

DebugAdapterInlineImplementation

內嵌實作的偵錯配接器描述元。

建構函式

為偵錯配接器的內嵌實作建立描述元。

參數描述
implementation: DebugAdapter
回傳描述
DebugAdapterInlineImplementation

DebugAdapterNamedPipeServer

代表以具名管道 (在 Windows 上)/UNIX 網域通訊端 (在非 Windows 上) 為基礎的伺服器執行的偵錯配接器。

建構函式

為以具名管道 (在 Windows 上)/UNIX 網域通訊端 (在非 Windows 上) 為基礎的伺服器執行的偵錯配接器建立描述。

參數描述
path: string
回傳描述
DebugAdapterNamedPipeServer

屬性

具名管道/UNIX 網域通訊端的路徑。

DebugAdapterServer

代表以通訊端為基礎的伺服器執行的偵錯配接器。

建構函式

為以通訊端為基礎的伺服器執行的偵錯配接器建立描述。

參數描述
port: number
host?: string
回傳描述
DebugAdapterServer

屬性

主機。

連接埠。

DebugAdapterTracker

偵錯配接器追蹤器是一種追蹤編輯器和偵錯配接器之間通訊的方法。

事件

偵錯配接器已將偵錯配接器協定訊息傳送至編輯器。

參數描述
message: any
回傳描述
void

偵錯配接器即將從編輯器接收偵錯配接器協定訊息。

參數描述
message: any
回傳描述
void

即將開始與偵錯配接器的工作階段。

參數描述
回傳描述
void

偵錯配接器工作階段即將停止。

參數描述
回傳描述
void

方法

偵錯配接器發生錯誤。

參數描述
error: Error
回傳描述
void

偵錯配接器已結束,並提供結束代碼或訊號。

參數描述
code: number
signal: string
回傳描述
void

DebugAdapterTrackerFactory

偵錯配接器工廠,用於建立 偵錯配接器追蹤器

方法

方法 'createDebugAdapterTracker' 會在偵錯工作階段開始時呼叫,以傳回「追蹤器」物件,該物件提供對編輯器和偵錯配接器之間通訊的讀取權限。

參數描述
session: DebugSession

將使用偵錯配接器追蹤器的 偵錯工作階段

回傳描述
ProviderResult<DebugAdapterTracker>

偵錯配接器追蹤器 或 undefined。

DebugConfiguration

偵錯工作階段的組態。

屬性

偵錯工作階段的名稱。

偵錯工作階段的請求類型。

偵錯工作階段的類型。

DebugConfigurationProvider

偵錯組態提供者允許將偵錯組態新增至偵錯服務,並在啟動偵錯工作階段之前解析啟動組態。偵錯組態提供者透過 debug.registerDebugConfigurationProvider 註冊。

方法

向偵錯服務提供 偵錯組態。如果為相同類型註冊多個偵錯組態提供者,則偵錯組態會以任意順序串連。

參數描述
folder: WorkspaceFolder

組態所使用的工作區資料夾,或針對無資料夾設定為 undefined

token?: CancellationToken

取消權杖。

回傳描述
ProviderResult<DebugConfiguration[]>

偵錯組態 的陣列。

透過填入遺失的值或新增/變更/移除屬性來解析 偵錯組態。如果為相同類型註冊多個偵錯組態提供者,則 resolveDebugConfiguration 呼叫會以任意順序串連,且初始偵錯組態會透過鏈結傳輸。傳回值 'undefined' 會阻止偵錯工作階段啟動。傳回值 'null' 會阻止偵錯工作階段啟動,並改為開啟底層偵錯組態。

參數描述
folder: WorkspaceFolder

組態來源的工作區資料夾,或針對無資料夾設定為 undefined

debugConfiguration: DebugConfiguration

要解析的 偵錯組態

token?: CancellationToken

取消權杖。

回傳描述
ProviderResult<DebugConfiguration>

已解析的偵錯組態,或 undefined 或 null。

此掛鉤會在 'resolveDebugConfiguration' 之後直接呼叫,但會取代所有變數。它可用於透過填入遺失的值或新增/變更/移除屬性來解析或驗證 偵錯組態。如果為相同類型註冊多個偵錯組態提供者,則 'resolveDebugConfigurationWithSubstitutedVariables' 呼叫會以任意順序串連,且初始偵錯組態會透過鏈結傳輸。傳回值 'undefined' 會阻止偵錯工作階段啟動。傳回值 'null' 會阻止偵錯工作階段啟動,並改為開啟底層偵錯組態。

參數描述
folder: WorkspaceFolder

組態來源的工作區資料夾,或針對無資料夾設定為 undefined

debugConfiguration: DebugConfiguration

要解析的 偵錯組態

token?: CancellationToken

取消權杖。

回傳描述
ProviderResult<DebugConfiguration>

已解析的偵錯組態,或 undefined 或 null。

DebugConfigurationProviderTriggerKind

DebugConfigurationProviderTriggerKind 指定何時觸發 DebugConfigurationProviderprovideDebugConfigurations 方法。目前有兩種情況:為新建立的 launch.json 提供初始偵錯組態,或在使用者透過 UI 要求時 (例如,透過「選取並開始偵錯」命令) 提供動態產生的偵錯組態。在向 debug.registerDebugConfigurationProvider 註冊 DebugConfigurationProvider 時,會使用觸發種類。

列舉成員

呼叫 DebugConfigurationProvider.provideDebugConfigurations,以便為新建立的 launch.json 提供初始偵錯組態。

當使用者透過 UI 要求 (例如,透過「選取並開始偵錯」命令) 時,會呼叫 DebugConfigurationProvider.provideDebugConfigurations 以提供動態產生的偵錯組態。

DebugConsole

代表偵錯主控台。

方法

將給定的值附加到偵錯主控台。

參數描述
value: string

字串,虛值將不會列印。

回傳描述
void

將給定的值和換行字元附加到偵錯主控台。

參數描述
value: string

字串,虛值將會列印。

回傳描述
void

DebugConsoleMode

偵錯工作階段使用的偵錯主控台模式,請參閱 選項

列舉成員

偵錯工作階段應具有個別的偵錯主控台。

偵錯工作階段應與其父工作階段共用偵錯主控台。此值對於沒有父工作階段的工作階段沒有作用。

DebugProtocolBreakpoint

DebugProtocolBreakpoint 是 偵錯配接器協定 中定義的 Breakpoint 類型的不透明預留位置類型。

DebugProtocolMessage

DebugProtocolMessage 是 偵錯配接器協定 中定義的 ProtocolMessage 類型的不透明預留位置類型。

DebugProtocolSource

DebugProtocolSource 是 偵錯配接器協定 中定義的 Source 類型的不透明預留位置類型。

DebugSession

偵錯工作階段。

屬性

此工作階段的「已解析」偵錯組態。「已解析」表示

  • 所有變數都已取代,且
  • 特定平台的屬性區段已針對相符平台「扁平化」,並針對不相符平台移除。

此偵錯工作階段的唯一 ID。

偵錯工作階段的名稱最初取自 偵錯組態。任何變更都將正確反映在 UI 中。

此偵錯工作階段的父工作階段 (如果它是作為子工作階段建立)。

另請參閱 DebugSessionOptions.parentSession

偵錯工作階段的類型 (來自 偵錯組態)。

此工作階段的工作區資料夾,或針對無資料夾設定為 undefined

方法

將自訂請求傳送至偵錯配接器。

參數描述
command: string
args?: any
回傳描述
Thenable<any>

將編輯器中的中斷點對應到偵錯工作階段的偵錯配接器所管理的對應偵錯配接器協定 (DAP) 中斷點。如果沒有 DAP 中斷點 (因為編輯器中斷點尚未註冊,或偵錯配接器對中斷點不感興趣),則會傳回值 undefined

參數描述
breakpoint: Breakpoint

編輯器中的 中斷點

回傳描述
Thenable<DebugProtocolBreakpoint>

解析為偵錯配接器協定中斷點或 undefined 的 Promise。

DebugSessionCustomEvent

偵錯工作階段 收到的自訂偵錯配接器協定事件。

屬性

事件特定資訊。

事件類型。

接收自訂事件的 偵錯工作階段

DebugSessionOptions

用於 啟動偵錯工作階段 的選項。

屬性

控制偵錯工作階段的父工作階段是否顯示在 [呼叫堆疊] 檢視中,即使它只有一個子工作階段。依預設,偵錯工作階段永遠不會隱藏其父工作階段。如果 compact 為 true,則在 [呼叫堆疊] 檢視中隱藏具有單一子工作階段的偵錯工作階段,以使樹狀結構更精簡。

控制此工作階段是否應具有個別的偵錯主控台,或與父工作階段共用。對於沒有父工作階段的工作階段沒有作用。預設為 Separate。

控制生命週期請求 (例如 'restart') 是傳送至新建立的工作階段還是其父工作階段。依預設 (如果屬性為 false 或遺失),生命週期請求會傳送至新工作階段。如果工作階段沒有父工作階段,則會忽略此屬性。

控制此工作階段是否應在不偵錯的情況下執行,因此會忽略中斷點。當未指定此屬性時,會使用父工作階段 (如果有的話) 的值。

指定時,新建立的偵錯工作階段會註冊為此「父」偵錯工作階段的「子」工作階段。

為 true 時,此工作階段的視窗狀態列色彩將不會變更。

為 true 時,此工作階段將不會顯示偵錯工具列。

為 true 時,此工作階段將不會自動顯示偵錯檢視。

若為 true,則在啟動偵錯工作階段時,不會為開啟的編輯器觸發儲存,無論 debug.saveBeforeStart 設定的值為何。

向編輯器發出訊號,表示偵錯工作階段是從測試執行請求啟動的。這用於連結偵錯工作階段和 UI 動作中測試執行的生命週期。

DebugStackFrame

代表偵錯工作階段中的堆疊框架。

屬性

偵錯協定中堆疊框架的 ID。

執行緒的偵錯工作階段。

偵錯協定中關聯執行緒的 ID。

DebugThread

代表偵錯工作階段中的執行緒。

屬性

執行緒的偵錯工作階段。

偵錯協定中關聯執行緒的 ID。

Declaration

符號表示法的宣告,為一個或多個位置位置連結

DeclarationCoverage

包含宣告的涵蓋率資訊。根據報告者和語言,這可能是函式、方法或命名空間等類型。

建構函式

參數描述
name: string
executed: number | boolean

此宣告的執行次數,或布林值,指出是否已執行 (若確切計數未知)。如果為零或 false,宣告將標記為未涵蓋。

location: Range | Position

宣告位置。

回傳描述
DeclarationCoverage

屬性

此宣告的執行次數,或布林值,指出是否已執行 (若確切計數未知)。如果為零或 false,宣告將標記為未涵蓋。

宣告位置。

宣告的名稱。

DeclarationProvider

宣告提供者介面定義擴充功能與前往宣告功能之間的合約。

方法

提供指定位置和文件中符號的宣告。

參數描述
document: TextDocument

在其中調用命令的文件。

position: Position

調用命令的位置。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<Declaration>

宣告或可解析為宣告的 Thenable。缺少結果可以透過傳回 undefinednull 來表示。

DecorationInstanceRenderOptions

代表裝飾執行個體的轉譯選項。請參閱 DecorationOptions.renderOptions

屬性

定義插入於裝飾文字之後的附件轉譯選項。

定義插入於裝飾文字之前的附件轉譯選項。

覆寫深色佈景主題的選項。

覆寫淺色佈景主題的選項。

DecorationOptions

代表 裝飾集中特定裝飾的選項。

屬性

當滑鼠游標停留在裝飾上方時應轉譯的訊息。

此裝飾套用的範圍。範圍不得為空。

套用至目前裝飾的轉譯選項。基於效能考量,請盡可能減少裝飾特定選項的數量,並盡可能使用裝飾類型。

DecorationRangeBehavior

描述在裝飾邊緣輸入/編輯時裝飾的行為。

列舉成員

當在開頭或結尾進行編輯時,裝飾的範圍將會擴大。

當在開頭或結尾進行編輯時,裝飾的範圍將不會擴大。

當在開頭進行編輯時,裝飾的範圍將會擴大,但在結尾則不會。

當在結尾進行編輯時,裝飾的範圍將會擴大,但在開頭則不會。

DecorationRenderOptions

代表 文字編輯器裝飾的轉譯樣式。

屬性

定義插入於裝飾文字之後的附件轉譯選項。

裝飾的背景色彩。使用 rgba() 並定義透明背景色彩,以與其他裝飾良好搭配。或者,可以參照色彩登錄中的色彩。

定義插入於裝飾文字之前的附件轉譯選項。

將套用至裝飾所括住文字的 CSS 樣式屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'border' 來設定一或多個個別的邊框屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'border' 來設定一或多個個別的邊框屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'border' 來設定一或多個個別的邊框屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'border' 來設定一或多個個別的邊框屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'border' 來設定一或多個個別的邊框屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。

覆寫深色佈景主題的選項。

將套用至裝飾所括住文字的 CSS 樣式屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。

要轉譯在邊界中的影像的絕對路徑或 URI。

指定邊界圖示的大小。可用的值為 'auto'、'contain'、'cover' 和任何百分比值。如需詳細資訊:https://msdn.microsoft.com/en-us/library/jj127316(v=vs.85).aspx

裝飾是否也應轉譯在行文字後的空白字元上。預設值為 false

將套用至裝飾所括住文字的 CSS 樣式屬性。

覆寫淺色佈景主題的選項。

將套用至裝飾所括住文字的 CSS 樣式屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'outline' 來設定一或多個個別的外框屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'outline' 來設定一或多個個別的外框屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'outline' 來設定一或多個個別的外框屬性。

概觀尺規中裝飾的色彩。使用 rgba() 並定義透明色彩,以與其他裝飾良好搭配。

應轉譯裝飾之概觀尺規中的位置。

自訂在裝飾範圍邊緣發生編輯時裝飾的擴展行為。預設值為 DecorationRangeBehavior.OpenOpen

將套用至裝飾所括住文字的 CSS 樣式屬性。

Definition

符號的定義,表示為一個或多個位置。對於大多數程式設計語言而言,符號只在一個位置定義。

有關符號定義位置的資訊。

提供關於一般 位置定義的其他中繼資料,包括定義符號的範圍

DefinitionProvider

定義提供者介面定義擴充功能與前往定義和查看定義功能之間的合約。

方法

提供指定位置和文件中符號的定義。

參數描述
document: TextDocument

在其中調用命令的文件。

position: Position

調用命令的位置。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<Definition | LocationLink[]>

定義或可解析為定義的 Thenable。缺少結果可以透過傳回 undefinednull 來表示。

Diagnostic

代表診斷,例如編譯器錯誤或警告。診斷物件僅在檔案的範圍內有效。

建構函式

建立新的診斷物件。

參數描述
range: Range

此診斷套用的範圍。

message: string

人類可讀取的訊息。

severity?: DiagnosticSeverity

嚴重性,預設值為錯誤

回傳描述
Diagnostic

屬性

此診斷的代碼或識別碼。應在稍後處理時使用,例如在提供程式碼動作時。

人類可讀取的訊息。

此診斷套用的範圍。

相關診斷資訊的陣列,例如,當範圍內的符號名稱衝突時,可以透過此屬性標記所有定義。

嚴重性,預設值為錯誤

描述此診斷來源的人類可讀字串,例如 'typescript' 或 'super lint'。

關於診斷的其他中繼資料。

DiagnosticChangeEvent

診斷變更時觸發的事件。

屬性

診斷已變更之資源的陣列。

DiagnosticCollection

診斷集合是管理一組 診斷的容器。診斷一律限定於診斷集合和資源的範圍。

若要取得 DiagnosticCollection 的執行個體,請使用 createDiagnosticCollection

屬性

此診斷集合的名稱,例如 typescript。來自此集合的每個診斷都將與此名稱相關聯。此外,工作架構在定義問題比對器時會使用此名稱。

方法

從此集合中移除所有診斷。與呼叫 #set(undefined) 相同;

參數描述
回傳描述
void

從此集合中移除屬於所提供 uri 的所有診斷。與 #set(uri, undefined) 相同。

參數描述
uri: Uri

資源識別碼。

回傳描述
void

處置和釋放關聯的資源。呼叫 clear

參數描述
回傳描述
void

逐一查看此集合中的每個項目。

參數描述
callback: (uri: Uri, diagnostics: readonly Diagnostic[], collection: DiagnosticCollection) => any

要為每個項目執行的函式。

thisArg?: any

調用處理程式函數時使用的 this 上下文。

回傳描述
void

取得指定資源的診斷。請注意,您無法修改從此呼叫傳回的診斷陣列。

參數描述
uri: Uri

資源識別碼。

回傳描述
readonly Diagnostic[]

不可變的 診斷陣列或 undefined

檢查此集合是否包含指定資源的診斷。

參數描述
uri: Uri

資源識別碼。

回傳描述
boolean

true 如果此集合具有指定資源的診斷。

為指定的資源指派診斷。將取代該資源的現有診斷。

參數描述
uri: Uri

資源識別碼。

diagnostics: readonly Diagnostic[]

診斷陣列或 undefined

回傳描述
void

取代此集合中多個資源的診斷。

請注意,相同 uri 的多個元組將會合併,例如 [[file1, [d1]], [file1, [d2]]] 等同於 [[file1, [d1, d2]]]。如果診斷項目為 undefined,如 [file1, undefined],則會移除所有先前的診斷,但不移除後續的診斷。

參數描述
entries: ReadonlyArray<[Uri, readonly Diagnostic[]]>

元組陣列,例如 [[file1, [d1, d2]], [file2, [d3, d4, d5]]]undefined

回傳描述
void

DiagnosticRelatedInformation

代表診斷的相關訊息和原始碼位置。這應該用於指向造成診斷或與診斷相關的程式碼位置,例如,當在範圍中複製符號時。

建構函式

建立新的相關診斷資訊物件。

參數描述
location: Location

位置。

message: string

訊息。

回傳描述
DiagnosticRelatedInformation

屬性

此相關診斷資訊的位置。

此相關診斷資訊的訊息。

DiagnosticSeverity

代表診斷的嚴重性。

列舉成員

語言或其他方式的規則不允許的項目。

可疑但允許的項目。

要告知但不是問題的項目。

提示更好的執行方式的項目,例如建議重構。

DiagnosticTag

關於診斷類型的其他中繼資料。

列舉成員

未使用或不必要的程式碼。

使用此標籤的診斷會呈現淡出效果。淡出程度由 "editorUnnecessaryCode.opacity" 主題顏色控制。例如,"editorUnnecessaryCode.opacity": "#000000c0" 將以 75% 的不透明度呈現程式碼。對於高對比主題,請使用 "editorUnnecessaryCode.border" 主題顏色為不必要的程式碼加上底線,而不是淡出。

已棄用或過時的程式碼。

使用此標籤的診斷會以刪除線呈現。

Disposable

表示一種可以釋放資源的類型,例如事件監聽或計時器。

靜態

將多個類似 disposable 的物件合併為一個。當您擁有具有 dispose 函數但不是 Disposable 實例的物件時,可以使用此方法。

參數描述
...disposableLikes: Array<{dispose: () => any}>

至少具有 dispose 函數成員的物件。請注意,非同步 dispose 函數不會被等待。

回傳描述
Disposable

返回一個新的 disposable,它在 dispose 時會 dispose 所有提供的 disposables。

建構函式

創建一個新的 disposable,它會在 dispose 時呼叫提供的函數。

注意:非同步函數不會被等待。

參數描述
callOnDispose: () => any

執行 dispose 操作的函數。

回傳描述
Disposable

方法

處置此物件。

參數描述
回傳描述
any

DocumentColorProvider

文件顏色提供器定義了擴充功能與編輯器中選取和修改顏色的功能之間的合約。

方法

為顏色提供 表示法

參數描述
color: Color

要顯示和插入的顏色。

context: {document: TextDocument, range: Range}

包含其他資訊的上下文物件

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<ColorPresentation[]>

顏色表示法的陣列,或解析為此陣列的 thenable 物件。缺少結果可以用返回 undefinednull 或空陣列來表示。

為給定的文件提供顏色。

參數描述
document: TextDocument

在其中調用命令的文件。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<ColorInformation[]>

顏色資訊的陣列,或解析為此陣列的 thenable 物件。缺少結果可以用返回 undefinednull 或空陣列來表示。

DocumentDropEdit

套用在 拖放 時的編輯操作。

建構函式

參數描述
insertText: string | SnippetString

要在拖放位置插入的文字或程式碼片段。

title?: string

描述編輯的人類可讀標籤。

kind?: DocumentDropOrPasteEditKind
回傳描述
DocumentDropEdit

屬性

拖放時要套用的可選額外編輯。

要在拖放位置插入的文字或程式碼片段。

描述編輯的人類可讀標籤。

控制多個編輯的順序。如果此提供器讓步於編輯,它將在列表中顯示在較下方的位置。

DocumentDropEditProvider<T>

處理將資源拖放到文字編輯器中的提供器。

這允許使用者將資源(包括來自外部應用程式的資源)拖放到編輯器中。在拖放檔案時,使用者可以按住 shift 鍵將檔案拖放到編輯器中,而不是開啟它。需要啟用 editor.dropIntoEditor.enabled

方法

提供將拖放內容插入文件中的編輯。

參數描述
document: TextDocument

拖放操作發生的文件。

position: Position

拖放操作在文件中發生的位置。

dataTransfer: DataTransfer

DataTransfer 物件,其中包含有關正在拖放內容的資料。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T | T[]>

DocumentDropEdit 或解析為此物件的 thenable 物件。缺少結果可以用返回 undefinednull 來表示。

在套用編輯之前,用於填寫 DocumentDropEdit.additionalEdit 的可選方法。

這會針對每個編輯呼叫一次,如果產生完整的編輯可能需要很長時間,則應使用此方法。Resolve 只能用於變更 DocumentDropEdit.additionalEdit

參數描述
edit: T

要解析的 DocumentDropEdit

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T>

已解析的編輯或解析為此物件的 thenable 物件。可以返回給定的 edit。如果未返回任何結果,則會使用給定的 edit

DocumentDropEditProviderMetadata

提供有關 DocumentDropEditProvider 如何運作的其他元數據。

屬性

提供器可以處理的 DataTransfer mime 類型列表。

這可以是精確的 mime 類型,例如 image/png,或萬用字元模式,例如 image/*

對於從瀏覽器或其他工作台中的樹狀檢視拖放的資源,請使用 text/uri-list

如果 DataTransfer 中存在任何 檔案,請使用 files 表示應調用提供器。請注意,只有在從編輯器外部拖放內容(例如從作業系統)時,才會建立 DataTransferFile 項目。

提供器可能在 provideDocumentDropEdits 中返回的 種類 列表。

當請求特定 種類 的編輯時,這用於篩選掉提供器。

DocumentDropOrPasteEditKind

靜態

基本文字編輯的根種類。

此種類應用於將基本文字插入文件中的編輯。一個很好的例子是貼上剪貼簿文字的編輯,同時也根據貼上的文字更新檔案中的匯入。為此,我們可以使用諸如 text.updateImports.someLanguageId 之類的種類。

即使大多數拖放/貼上編輯最終都會插入文字,您也不應將 Text 用作每個編輯的基本種類,因為這是多餘的。相反,應使用更具體的種類來描述要插入的內容類型。例如,如果編輯新增 Markdown 連結,請使用 markdown.link,因為即使插入的內容是文字,更重要的是要知道編輯插入的是 Markdown 語法。

除了插入文字外,還更新文件中匯入的編輯的根種類。

建構函式

參數描述
value: string
回傳描述
DocumentDropOrPasteEditKind

屬性

種類的原始字串值。

方法

通過將其他範圍附加到目前種類來創建新種類。

不會修改目前的種類。

參數描述
...parts: string[]
回傳描述
DocumentDropOrPasteEditKind

檢查 other 是否為此 DocumentDropOrPasteEditKind 的子種類。

例如,種類 "text.plain" 包含 "text.plain""text.plain.list",但不包含 "text""unicorn.text.plain"

參數描述
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

筆記本的 類型,例如 jupyter-notebook。這允許縮小 儲存格文件 所屬的筆記本類型。

注意:設定 notebookType 屬性會變更 schemepattern 的解譯方式。設定後,它們會針對 筆記本 URI 進行評估,而不是針對文件 URI。

範例 匹配 jupyter 筆記本中尚未儲存的 python 文件 (untitled)

{ language: 'python', notebookType: 'jupyter-notebook', scheme: 'untitled' }

在文件的絕對路徑上匹配的 glob 模式。使用 相對模式 將文件篩選到 工作區資料夾

Uri scheme,例如 fileuntitled

DocumentFormattingEditProvider

文件格式化提供器介面定義了擴充功能與格式化功能之間的合約。

方法

為整個文件提供格式化編輯。

參數描述
document: TextDocument

在其中調用命令的文件。

options: FormattingOptions

控制格式化的選項。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<TextEdit[]>

一組文字編輯或解析為此物件的 thenable 物件。缺少結果可以用返回 undefinednull 或空陣列來表示。

DocumentHighlight

文件反白是在文字文件中值得特別關注的範圍。通常,文件反白會通過變更其範圍的背景顏色來視覺化。

建構函式

創建新的文件反白物件。

參數描述
range: Range

反白套用的範圍。

kind?: DocumentHighlightKind

反白種類,預設為 text

回傳描述
DocumentHighlight

屬性

反白種類,預設為 text

此反白套用的範圍。

DocumentHighlightKind

文件反白種類。

列舉成員

文字出現。

符號的讀取權限,例如讀取變數。

符號的寫入權限,例如寫入變數。

DocumentHighlightProvider

文件反白提供器介面定義了擴充功能與單字反白功能之間的合約。

方法

提供一組文件反白,例如變數的所有出現位置或函數的所有退出點。

參數描述
document: TextDocument

在其中調用命令的文件。

position: Position

調用命令的位置。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<DocumentHighlight[]>

文件反白的陣列,或解析為此陣列的 thenable 物件。缺少結果可以用返回 undefinednull 或空陣列來表示。

文件連結是文字文件中的一個範圍,該範圍連結到內部或外部資源,例如另一個文字文件或網站。

建構函式

創建新的文件連結。

參數描述
range: Range

文件連結套用的範圍。不得為空。

target?: Uri

文件連結指向的 URI。

回傳描述
DocumentLink

屬性

此連結套用的範圍。

此連結指向的 URI。

當您將滑鼠懸停在此連結上時的工具提示文字。

如果提供了工具提示,它將顯示在一個字串中,其中包含有關如何觸發連結的說明,例如 {0} (ctrl + click)。具體的說明因作業系統、使用者設定和本地化而異。

DocumentLinkProvider<T>

文件連結提供器定義了擴充功能與在編輯器中顯示連結的功能之間的合約。

方法

為給定的文件提供連結。請注意,編輯器附帶一個預設提供器,用於偵測 http(s)file 連結。

參數描述
document: TextDocument

在其中調用命令的文件。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T[]>

文件連結 的陣列,或解析為此陣列的 thenable 物件。缺少結果可以用返回 undefinednull 或空陣列來表示。

給定一個連結,填寫其 target。當在 UI 中選取不完整的連結時,會呼叫此方法。提供器可以實作此方法,並從 provideDocumentLinks 方法返回不完整的連結(沒有目標),這通常有助於提高效能。

參數描述
link: T

要解析的連結。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T>

DocumentPasteEdit

套用貼上操作的編輯。

建構函式

創建新的貼上編輯。

參數描述
insertText: string | SnippetString

要在貼上位置插入的文字或程式碼片段。

title: string

描述編輯的人類可讀標籤。

kind: DocumentDropOrPasteEditKind
回傳描述
DocumentPasteEdit

屬性

貼上時要套用的可選額外編輯。

要在貼上位置插入的文字或程式碼片段。

如果您的編輯需要更進階的插入邏輯,請將此設定為空字串,並改為提供 額外編輯

描述編輯的人類可讀標籤。

當可能套用多個貼上編輯時,控制順序。

如果此編輯讓步於另一個編輯,它將在向使用者顯示的可能貼上編輯列表中顯示在較下方的位置。

DocumentPasteEditContext

有關貼上操作的其他資訊。

屬性

要返回的請求貼上編輯種類。

當通過 PasteAs 請求明確的種類時,鼓勵提供器在產生請求種類的編輯時更靈活。

請求貼上編輯的原因。

DocumentPasteEditProvider<T>

當使用者在 TextDocument 中複製或貼上時調用的提供器。

方法

使用者從 文字編輯器 複製後調用的可選方法。

這允許提供器將有關複製文字的元數據附加到 DataTransfer。然後,此資料傳輸會傳遞回 provideDocumentPasteEdits 中的提供器。

請注意,目前對 DataTransfer 的任何變更都隔離到當前編輯器視窗。這表示任何新增的元數據都無法被其他編輯器視窗或其他應用程式看到。

參數描述
document: TextDocument

複製操作發生的文字文件。

ranges: readonly Range[]

document 中複製的範圍。

dataTransfer: DataTransfer

與複製關聯的資料傳輸。您可以在此物件上儲存其他值,以便稍後在 provideDocumentPasteEdits 中使用。此物件僅在方法持續期間有效。

token: CancellationToken

取消權杖。

回傳描述
void | Thenable<void>

可選的 thenable 物件,當對 dataTransfer 的所有變更完成時解析。

在使用者貼上到 文字編輯器 之前調用。

返回的編輯可以取代標準貼上行為。

參數描述
document: TextDocument

要貼上到的文件

ranges: readonly Range[]

document 中要貼上到的範圍。

dataTransfer: DataTransfer

與貼上關聯的 資料傳輸。此物件僅在貼上操作持續期間有效。

context: DocumentPasteEditContext

貼上的其他上下文。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T[]>

可以套用貼上的潛在 編輯 集合。一次僅套用單個返回的 DocumentPasteEdit。如果從所有提供器返回多個編輯,則會自動套用第一個編輯,並顯示一個 widget,讓使用者可以切換到其他編輯。

在套用編輯之前,用於填寫 DocumentPasteEdit.additionalEdit 的可選方法。

這會針對每個編輯呼叫一次,如果產生完整的編輯可能需要很長時間,則應使用此方法。Resolve 只能用於變更 DocumentPasteEdit.additionalEdit

參數描述
pasteEdit: T

要解析的 DocumentPasteEdit

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T>

已解析的貼上編輯或解析為此物件的 thenable 物件。可以返回給定的 pasteEdit。如果未返回任何結果,則會使用給定的 pasteEdit

DocumentPasteProviderMetadata

提供有關 DocumentPasteEditProvider 如何運作的其他元數據。

屬性

prepareDocumentPaste 可能在複製時新增的 Mime 類型。

應調用 provideDocumentPasteEdits 的 Mime 類型。

這可以是精確的 mime 類型,例如 image/png,或萬用字元模式,例如 image/*

對於從瀏覽器或其他工作台中的樹狀檢視拖放的資源,請使用 text/uri-list

如果 DataTransfer 中存在任何 檔案,請使用 files 表示應調用提供器。請注意,只有在從編輯器外部貼上內容(例如從作業系統)時,才會建立 DataTransferFile 項目。

provideDocumentPasteEdits 中提供器可能返回的 種類 列表。

當請求特定 種類 的編輯時,這用於篩選掉提供器。

DocumentPasteTriggerKind

請求貼上編輯的原因。

列舉成員

貼上操作已請求作為正常貼上操作的一部分。

貼上操作由使用者透過 paste as 命令請求。

DocumentRangeFormattingEditProvider

文件格式化提供器介面定義了擴充功能與格式化功能之間的合約。

方法

為文件中範圍提供格式化編輯。

給定的範圍僅為提示,提供者可以決定格式化較小或較大的範圍。通常,這是通過調整範圍的開始和結束位置以完整語法節點來完成的。

參數描述
document: TextDocument

在其中調用命令的文件。

range: Range

應該格式化的範圍。

options: FormattingOptions

控制格式化的選項。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<TextEdit[]>

一組文字編輯或解析為此物件的 thenable 物件。缺少結果可以用返回 undefinednull 或空陣列來表示。

為文件中多個範圍提供格式化編輯。

此函數是可選的,但允許格式化程式在僅格式化修改過的範圍或格式化大量選取範圍時執行得更快。

給定的範圍僅為提示,提供者可以決定格式化較小或較大的範圍。通常,這是通過調整範圍的開始和結束位置以完整語法節點來完成的。

參數描述
document: TextDocument

在其中調用命令的文件。

ranges: Range[]

應該格式化的範圍。

options: FormattingOptions

控制格式化的選項。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<TextEdit[]>

一組文字編輯或解析為此物件的 thenable 物件。缺少結果可以用返回 undefinednull 或空陣列來表示。

DocumentRangeSemanticTokensProvider

文件範圍語意符記提供者介面定義了擴充功能和語意符記之間的契約。

方法

參數描述
document: TextDocument
range: Range
token: CancellationToken
回傳描述
ProviderResult<SemanticTokens>

DocumentSelector

語言選取器是一個或多個語言識別碼和語言篩選器的組合。

請注意,僅為語言識別碼的文件選取器會選取所有文件,甚至是那些未儲存在磁碟上的文件。僅當某項功能在沒有進一步上下文的情況下也能運作時,才使用此類選取器,例如,無需解析相關的「檔案」。

範例

let sel: DocumentSelector = { scheme: 'file', language: 'typescript' };

DocumentSemanticTokensProvider

文件語意符記提供者介面定義了擴充功能和語意符記之間的契約。

事件

一個可選的事件,用於發出此提供者的語意符記已變更的訊號。

方法

檔案中的符記表示為整數陣列。每個符記的位置都相對於它之前的符記表示,因為當在檔案中進行編輯時,大多數符記彼此之間保持穩定。


簡而言之,每個符記需要 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: [] }
  1. 首先,必須設計圖例。此圖例必須預先提供,並捕獲所有可能的符記類型。對於此範例,我們將選擇以下圖例,該圖例必須在註冊提供者時傳遞
   tokenTypes: ['property', 'type', 'class'],
   tokenModifiers: ['private', 'static']
  1. 第一個轉換步驟是使用圖例將 tokenTypetokenModifiers 編碼為整數。符記類型透過索引查找,因此 tokenType 值為 1 表示 tokenTypes[1]。可以透過使用位元旗標來設定多個符記修飾詞,因此 tokenModifier3 首先被視為二進位 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 }
  1. 下一步是表示檔案中每個符記相對於上一個符記的位置。在本例中,第二個符記與第一個符記在同一行,因此第二個符記的 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 }
  1. 最後,最後一步是在單個陣列中內聯符記的 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>

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

表示文件中出現的程式設計結構,例如變數、類別、介面等。文件符號可以是階層式的,並且它們具有兩個範圍:一個封閉其定義的範圍和一個指向其最感興趣範圍的範圍,例如,識別碼的範圍。

建構函式

建立新的文件符號。

參數描述
name: string

符號的名稱。

detail: string

符號的詳細資訊。

kind: SymbolKind

符號的種類。

range: Range

符號的完整範圍。

selectionRange: Range

應該顯示的範圍。

回傳描述
DocumentSymbol

屬性

此符號的子項,例如,類別的屬性。

此符號的更多詳細資訊,例如,函數的簽名。

此符號的種類。

此符號的名稱。

封閉此符號的範圍,不包括開頭/結尾空白字元,但包括所有其他內容,例如註解和程式碼。

當選取此符號時,應該選取並顯示的範圍,例如,函數的名稱。必須包含在範圍內。

此符號的標籤。

DocumentSymbolProvider

文件符號提供者介面定義了擴充功能和跳到符號功能之間的契約。

方法

為給定的文件提供符號資訊。

參數描述
document: TextDocument

在其中調用命令的文件。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<DocumentSymbol[] | SymbolInformation[]>

文件反白的陣列,或解析為此陣列的 thenable 物件。缺少結果可以用返回 undefinednull 或空陣列來表示。

DocumentSymbolProviderMetadata

關於文件符號提供者的元資料。

屬性

當一個文件顯示多個大綱樹狀結構時,會顯示人類可讀的字串。

EndOfLine

表示文件中的行尾字元序列。

列舉成員

換行符 \n 字元。

歸位換行 \r\n 序列。

EnterAction

描述按下 Enter 鍵時要執行的操作。

屬性

描述要在新行之後和縮排之後附加的文字。

描述如何處理縮排。

描述要從新行的縮排中移除的字元數。

EnvironmentVariableCollection

擴充功能可以應用於程序環境的變更集合。

屬性

環境變數集合的描述,這將用於描述 UI 中的變更。

集合是否應為工作區快取,並在視窗重新載入時應用於終端機。當為 true 時,集合將立即啟用,例如在視窗重新載入時。此外,如果存在快取版本,此 API 將傳回快取版本。當擴充功能解除安裝或集合清除時,集合將失效。預設為 true。

方法

將值附加到環境變數。

請注意,擴充功能只能對任何一個變數進行單一變更,因此這將覆寫先前對 replace、append 或 prepend 的任何呼叫。

參數描述
variable: string

要附加到的變數。

value: string

要附加到變數的值。

options?: EnvironmentVariableMutatorOptions

應用於 mutator 的選項,當未提供選項時,這將預設為 { applyAtProcessCreation: true }

回傳描述
void

從此集合中清除所有 mutator。

參數描述
回傳描述
void

刪除此集合中變數的 mutator。

參數描述
variable: string

要刪除 mutator 的變數。

回傳描述
void

迭代此集合中的每個 mutator。

參數描述
callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any

要為每個項目執行的函式。

thisArg?: any

調用處理程式函數時使用的 this 上下文。

回傳描述
void

取得此集合應用於變數的 mutator(如果有的話)。

參數描述
variable: string

要取得 mutator 的變數。

回傳描述
EnvironmentVariableMutator

將值前置到環境變數。

請注意,擴充功能只能對任何一個變數進行單一變更,因此這將覆寫先前對 replace、append 或 prepend 的任何呼叫。

參數描述
variable: string

要前置的變數。

value: string

要前置到變數的值。

options?: EnvironmentVariableMutatorOptions

應用於 mutator 的選項,當未提供選項時,這將預設為 { applyAtProcessCreation: true }

回傳描述
void

以值取代環境變數。

請注意,擴充功能只能對任何一個變數進行單一變更,因此這將覆寫先前對 replace、append 或 prepend 的任何呼叫。

參數描述
variable: string

要取代的變數。

value: string

用來取代變數的值。

options?: EnvironmentVariableMutatorOptions

應用於 mutator 的選項,當未提供選項時,這將預設為 { applyAtProcessCreation: true }

回傳描述
void

EnvironmentVariableMutator

要應用於環境變數的變更類型及其值。

屬性

應用於 mutator 的選項。

將對變數發生的變更類型。

要用於變數的值。

EnvironmentVariableMutatorOptions

應用於 mutator 的選項。

屬性

在建立程序之前立即應用於環境。預設為 false。

在 Shell 整合腳本中應用於環境。請注意,如果 Shell 整合已停用或由於某些原因而無法運作,則這將不會應用 mutator。預設為 false。

EnvironmentVariableMutatorType

可以應用於環境變數的變更類型。

列舉成員

取代變數的現有值。

附加到變數現有值的末尾。

前置到變數現有值的開頭。

EnvironmentVariableScope

環境變數集合應用於的範圍物件。

屬性

要取得集合的任何特定工作區資料夾。

EvaluatableExpression

EvaluatableExpression 表示文件中可以由活動偵錯工具或執行階段評估的運算式。此評估的結果顯示在類似工具提示的小工具中。如果僅指定範圍,則將從基礎文件中提取運算式。可選的運算式可用於覆寫提取的運算式。在這種情況下,範圍仍用於醒目提示文件中的範圍。

建構函式

建立新的可評估運算式物件。

參數描述
range: Range

從中提取可評估運算式的基礎文件中的範圍。

expression?: string

如果指定,則覆寫提取的運算式。

回傳描述
EvaluatableExpression

屬性

EvaluatableExpressionProvider

可評估運算式提供者介面定義了擴充功能和偵錯懸停之間的契約。在此契約中,提供者針對文件中給定的位置傳回可評估的運算式,而編輯器在活動偵錯工作階段中評估此運算式,並在偵錯懸停中顯示結果。

方法

為給定的文件和位置提供可評估的運算式。編輯器將在活動偵錯工作階段中評估此運算式,並將在偵錯懸停中顯示結果。運算式可以透過基礎文件中的範圍隱式指定,或透過顯式傳回運算式來指定。

參數描述
document: TextDocument

即將顯示偵錯懸停的文件。

position: Position

文件中即將顯示偵錯懸停的行號和字元位置。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<EvaluatableExpression>

EvaluatableExpression 或可解析為此物件的 thenable。缺少結果可以透過傳回 undefinednull 來表示。

Event<T>

表示型別化的事件。

一種函數,表示一個事件,您可以透過使用監聽器函數作為引數來呼叫它以訂閱該事件。

範例

item.onDidChange(function(event) {
  console.log('Event happened: ' + event);
});

一種函數,表示一個事件,您可以透過使用監聽器函數作為引數來呼叫它以訂閱該事件。

參數描述
listener: (e: T) => any

當事件發生時,將呼叫監聽器函數。

thisArgs?: any

呼叫事件監聽器時將使用的 this 引數。

disposables?: Disposable[]

將在其中新增 Disposable 的陣列。

回傳描述
Disposable

一個 disposable,用於取消訂閱事件監聽器。

EventEmitter<T>

事件發射器可用於建立和管理 Event,以供其他人訂閱。一個發射器始終擁有一個事件。

如果您想從擴充功能內部提供事件,例如在 TextDocumentContentProvider 內部,或在向其他擴充功能提供 API 時,請使用此類別。

建構函式

參數描述
回傳描述
EventEmitter<T>

屬性

監聽器可以訂閱的事件。

方法

處置此物件並釋放資源。

參數描述
回傳描述
void

通知 event 的所有訂閱者。一個或多個監聽器的失敗不會導致此函數呼叫失敗。

參數描述
data: T

事件物件。

回傳描述
void

Extension<T>

表示擴充功能。

若要取得 Extension 的實例,請使用 getExtension

屬性

此擴充功能匯出的公用 API (activate 的傳回值)。在啟用此擴充功能之前存取此欄位是無效的操作。

擴充功能種類描述擴充功能是在 UI 執行的地方執行,還是在遠端擴充功能主機執行的地方執行。擴充功能種類在擴充功能的 package.json 檔案中定義,但也可以透過 remote.extensionKind 設定進行精簡。當不存在遠端擴充功能主機時,值為 ExtensionKind.UI

包含此擴充功能的目錄的絕對檔案路徑。Extension.extensionUri.fsPath 的簡寫符號 (獨立於 uri 結構描述)。

包含擴充功能的目錄的 URI。

publisher.name 形式的標準擴充功能識別碼。

如果擴充功能已啟用,則為 true

擴充功能 package.json 的已剖析內容。

方法

啟動此擴充功能並傳回其公開 API。

參數描述
回傳描述
Thenable<T>

當此擴充功能啟動時將會解析的 Promise。

ExtensionContext

擴充功能內容是擴充功能私有的工具集合。

ExtensionContext 的執行個體會作為擴充功能 activate 呼叫的第一個參數提供。

屬性

取得此工作區的擴充功能全域環境變數集合,以便將變更套用至終端機環境變數。

目前的 Extension 執行個體。

擴充功能執行的模式。請參閱 ExtensionMode 以取得可能的值和情境。

包含擴充功能的目錄的絕對檔案路徑。ExtensionContext.extensionUri.fsPath 的簡寫符號 (與 URI 結構描述無關)。

包含擴充功能的目錄的 URI。

一個 memento 物件,可儲存與目前開啟的 工作區 無關的狀態。

擴充功能可以在其中儲存全域狀態的絕對檔案路徑。目錄可能不存在於磁碟上,且是否建立取決於擴充功能。但是,保證父目錄存在。

使用 globalState 儲存鍵值資料。

擴充功能可以在其中儲存全域狀態的目錄 URI。目錄可能不存在於磁碟上,且是否建立取決於擴充功能。但是,保證父目錄存在。

使用 globalState 儲存鍵值資料。

另請參閱 workspace.fs,瞭解如何從 URI 讀取和寫入檔案和資料夾。

一個物件,保存關於此擴充功能如何使用語言模型的資訊。

另請參閱 LanguageModelChat.sendRequest

擴充功能可以在其中建立記錄檔的目錄的絕對檔案路徑。目錄可能不存在於磁碟上,且是否建立取決於擴充功能。但是,保證父目錄存在。

  • 已過時 - 請改用 logUri

擴充功能可以在其中建立記錄檔的目錄 URI。目錄可能不存在於磁碟上,且是否建立取決於擴充功能。但是,保證父目錄存在。

另請參閱 workspace.fs,瞭解如何從 URI 讀取和寫入檔案和資料夾。

一個秘密儲存物件,可儲存與目前開啟的 工作區 無關的狀態。

擴充功能可以在其中儲存私有狀態的工作區特定目錄的絕對檔案路徑。目錄可能不存在於磁碟上,且是否建立取決於擴充功能。但是,保證父目錄存在。

使用 workspaceStateglobalState 儲存鍵值資料。

擴充功能可以在其中儲存私有狀態的工作區特定目錄 URI。目錄可能不存在,且是否建立取決於擴充功能。但是,保證父目錄存在。當未開啟工作區或資料夾時,值為 undefined

使用 workspaceStateglobalState 儲存鍵值資料。

另請參閱 workspace.fs,瞭解如何從 URI 讀取和寫入檔案和資料夾。

一個陣列,可將可處置物件新增至其中。當此擴充功能停用時,將會處置可處置物件。

請注意,不會等待非同步處置函式。

一個 memento 物件,可儲存在目前開啟的 工作區 的內容中之狀態。

方法

取得擴充功能中包含之資源的絕對路徑。

請注意,可以透過 Uri.joinPathextensionUri 建構絕對 URI,例如 vscode.Uri.joinPath(context.extensionUri, relativePath);

參數描述
relativePath: string

擴充功能中包含之資源的相對路徑。

回傳描述
string

資源的絕對路徑。

ExtensionKind

在遠端視窗中,擴充功能種類描述擴充功能是在 UI (視窗) 執行所在執行,還是遠端執行。

列舉成員

擴充功能在 UI 執行所在執行。

擴充功能在遠端擴充功能主機執行所在執行。

ExtensionMode

ExtensionMode 在 ExtensionContext 上提供,並指出特定擴充功能執行的模式。

列舉成員

擴充功能正常安裝在編輯器中 (例如,從 Marketplace 或 VSIX)。

擴充功能從啟動編輯器時提供的 --extensionDevelopmentPath 執行。

擴充功能從 --extensionTestsPath 執行,且擴充功能主機正在執行單元測試。

ExtensionTerminalOptions

值物件,描述虛擬處理序終端機應使用的選項。

屬性

終端機的圖示 ThemeColor。建議使用標準 terminal.ansi* 主題金鑰,以在不同主題之間獲得最佳的對比度和一致性。

終端機的圖示路徑或 ThemeIcon

選擇退出重新啟動和重新載入時的預設終端機持久性。這僅在啟用 terminal.integrated.enablePersistentSessions 時才會生效。

人類可讀的字串,將用於在 UI 中表示終端機。

Pseudoterminal 的實作,允許擴充功能控制終端機。

FileChangeEvent

檔案系統提供者必須用來發出檔案變更訊號的事件。

屬性

變更類型。

已變更之檔案的 URI。

FileChangeType

檔案變更類型列舉。

列舉成員

檔案的內容或中繼資料已變更。

已建立檔案。

已刪除檔案。

FileCoverage

包含檔案的涵蓋率中繼資料。

靜態

使用從涵蓋率詳細資料填入的計數建立 FileCoverage 執行個體。

參數描述
uri: Uri

涵蓋檔案 URI

details: readonly FileCoverageDetail[]
回傳描述
FileCoverage

建構函式

參數描述
uri: Uri

涵蓋檔案 URI

statementCoverage: TestCoverageCount

陳述式涵蓋率資訊。如果報告程式未提供陳述式涵蓋率資訊,則可以使用此資訊來表示行涵蓋率。

branchCoverage?: TestCoverageCount

分支涵蓋率資訊

declarationCoverage?: TestCoverageCount

宣告涵蓋率資訊

includesTests?: TestItem[]

此涵蓋率報告中包含的測試案例,請參閱 includesTests

回傳描述
FileCoverage

屬性

分支涵蓋率資訊。

宣告涵蓋率資訊。根據報告程式和語言而定,這可能是函式、方法或命名空間等類型。

在此檔案中產生涵蓋率的 測試案例 清單。如果設定,則也應定義 TestRunProfile.loadDetailedCoverageForTest,以便擷取詳細的涵蓋率資訊。

陳述式涵蓋率資訊。如果報告程式未提供陳述式涵蓋率資訊,則可以使用此資訊來表示行涵蓋率。

檔案 URI。

FileCoverageDetail

TestRunProfile.loadDetailedCoverage 傳回的涵蓋率詳細資料。

FileCreateEvent

在檔案建立後觸發的事件。

屬性

已建立的檔案。

FileDecoration

檔案裝飾表示可以隨檔案呈現的中繼資料。

建構函式

建立新的裝飾。

參數描述
badge?: string

代表裝飾的字母。

tooltip?: string

裝飾的工具提示。

color?: ThemeColor

裝飾的色彩。

回傳描述
FileDecoration

屬性

代表此裝飾的非常短的字串。

此裝飾的色彩。

一個旗標,表示此裝飾應傳播到其父系。

此裝飾的人類可讀工具提示。

FileDecorationProvider

裝飾提供者介面定義擴充功能和檔案裝飾之間的合約。

事件

一個選用事件,用於發出一個或多個檔案的裝飾已變更的訊號。

請注意,此事件應用於傳播關於子系的資訊。

另請參閱 EventEmitter

方法

為給定的 URI 提供裝飾。

請注意,只有在 UI 中呈現檔案時才會呼叫此函式。這表示來自向下傳播的子系的裝飾必須透過 onDidChangeFileDecorations 事件向編輯器發出訊號。

參數描述
uri: Uri

要為其提供裝飾的檔案 URI。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<FileDecoration>

裝飾或解析為此裝飾的 thenable。

FileDeleteEvent

在檔案刪除後觸發的事件。

屬性

已刪除的檔案。

FilePermission

檔案的權限。

列舉成員

檔案為唯讀。

注意: 從以選項 isReadonly: true 註冊的 FileSystemProvider 中的所有 FileStat 都將隱含地處理,如同已設定 FilePermission.Readonly。因此,不可能擁有已註冊的唯讀檔案系統提供者,其中某些 FileStat 不是唯讀。

FileRenameEvent

在檔案重新命名後觸發的事件。

屬性

已重新命名的檔案。

FileStat

FileStat 類型表示關於檔案的中繼資料

屬性

自 1970 年 1 月 1 日 00:00:00 UTC 以來的建立時間戳記 (以毫秒為單位)。

自 1970 年 1 月 1 日 00:00:00 UTC 以來的修改時間戳記 (以毫秒為單位)。

注意: 如果檔案已變更,請務必提供從先前值進階的更新 mtime。否則,可能會有最佳化機制阻止在編輯器中顯示更新的檔案內容。

檔案的權限,例如,檔案是否為唯讀。

注意: 此值可能是位元遮罩,例如 FilePermission.Readonly | FilePermission.Other

大小 (以位元組為單位)。

注意: 如果檔案已變更,請務必提供更新的 size。否則,可能會有最佳化機制阻止在編輯器中顯示更新的檔案內容。

檔案的類型,例如,是一般檔案、目錄還是檔案的符號連結。

注意: 此值可能是位元遮罩,例如 FileType.File | FileType.SymbolicLink

FileSystem

檔案系統介面公開編輯器的內建和貢獻 檔案系統提供者。它允許擴充功能使用本機磁碟中的檔案以及來自遠端位置的檔案,例如遠端擴充功能主機或 FTP 伺服器。

請注意,此介面的執行個體可作為 workspace.fs 使用。

方法

複製檔案或資料夾。

參數描述
source: Uri

現有檔案。

target: Uri

目的地位置。

options?: {overwrite: boolean}

定義是否應該覆寫現有檔案。

回傳描述
Thenable<void>

建立新目錄 (請注意,新檔案是透過 write 呼叫建立)。

請注意,遺失的目錄會自動建立,例如,此呼叫具有 mkdirp 語意。

參數描述
uri: Uri

新資料夾的 URI。

回傳描述
Thenable<void>

刪除檔案。

參數描述
uri: Uri

要刪除的資源。

options?: {recursive: boolean, useTrash: boolean}

定義是否應使用資源回收筒,以及資料夾的刪除是否為遞迴

回傳描述
Thenable<void>

檢查給定的檔案系統是否支援寫入檔案。

請記住,僅僅因為檔案系統支援寫入,並不表示寫入總是會成功。可能會有權限問題或其他錯誤阻止寫入檔案。

參數描述
scheme: string

檔案系統的結構描述,例如 filegit

回傳描述
boolean

如果檔案系統支援寫入,則為 true,如果檔案系統不支援寫入 (即為唯讀),則為 false,如果編輯器不瞭解檔案系統,則為 undefined

擷取 目錄 的所有項目。

參數描述
uri: Uri

資料夾的 URI。

回傳描述
Thenable<Array<[string, FileType]>>

名稱/類型組的陣列,或解析為此陣列的 thenable。

讀取檔案的完整內容。

參數描述
uri: Uri

檔案的 URI。

回傳描述
Thenable<Uint8Array>

位元組陣列或解析為此陣列的 thenable。

重新命名檔案或資料夾。

參數描述
source: Uri

現有檔案。

target: Uri

新位置。

options?: {overwrite: boolean}

定義是否應該覆寫現有檔案。

回傳描述
Thenable<void>

擷取關於檔案的中繼資料。

參數描述
uri: Uri

要擷取其中繼資料的檔案 URI。

回傳描述
Thenable<FileStat>

關於檔案的檔案中繼資料。

將資料寫入檔案,取代其完整內容。

參數描述
uri: Uri

檔案的 URI。

content: Uint8Array

檔案的新內容。

回傳描述
Thenable<void>

FileSystemError

檔案系統提供者應用於發出錯誤訊號的類型。

此類別具有常見錯誤案例的 Factory 方法,例如,當檔案或資料夾不存在時的 FileNotFound,請像這樣使用它們:throw vscode.FileSystemError.FileNotFound(someUri);

靜態

建立錯誤訊號,表示檔案或資料夾已存在,例如在建立檔案但不要覆寫時。

參數描述
messageOrUri?: string | Uri

訊息或 URI。

回傳描述
FileSystemError

建立錯誤訊號,表示檔案是資料夾。

參數描述
messageOrUri?: string | Uri

訊息或 URI。

回傳描述
FileSystemError

建立錯誤訊號,表示檔案不是資料夾。

參數描述
messageOrUri?: string | Uri

訊息或 URI。

回傳描述
FileSystemError

建立錯誤訊號,表示找不到檔案或資料夾。

參數描述
messageOrUri?: string | Uri

訊息或 URI。

回傳描述
FileSystemError

建立錯誤訊號,表示操作缺少必要權限。

參數描述
messageOrUri?: string | Uri

訊息或 URI。

回傳描述
FileSystemError

建立錯誤訊號,表示檔案系統無法使用或太過忙碌而無法完成請求。

參數描述
messageOrUri?: string | Uri

訊息或 URI。

回傳描述
FileSystemError

建構函式

建立新的檔案系統錯誤。

參數描述
messageOrUri?: string | Uri

訊息或 URI。

回傳描述
FileSystemError

屬性

識別此錯誤的代碼。

可能的值為錯誤名稱,例如 FileNotFound,或是未指定錯誤的 Unknown

FileSystemProvider

檔案系統提供者定義編輯器讀取、寫入、探索和管理檔案及資料夾所需的功能。它允許擴充功能從遠端位置(如 FTP 伺服器)提供檔案,並將這些檔案無縫整合到編輯器中。

  • 注意 1: 檔案系統提供者 API 使用 URI 並假設階層式路徑,例如 foo:/my/pathfoo:/my/ 的子項,也是 foo:/my/path/deeper 的父項。
  • 注意 2: 當檔案或資料夾被存取時,會觸發啟動事件 onFileSystem:<scheme>
  • 注意 3: 「檔案」一詞通常用於表示所有 種類 的檔案,例如資料夾、符號連結和一般檔案。

事件

一個事件,用於發出資源已建立、變更或刪除的訊號。此事件應針對此提供者的用戶端 監看 的資源觸發。

注意: 重要的是,已變更檔案的中繼資料需提供從 stat 中的先前值推進的更新 mtime 和正確的 size 值。否則,可能會存在某些最佳化機制,導致編輯器中不會顯示變更。

方法

複製檔案或資料夾。實作此函式為選用,但它將加快複製操作的速度。

  • throws - 當 destination 的父項不存在時,擲回 FileNotFound,例如不需要 mkdirp 邏輯。
  • throws - 當 destination 存在且 overwrite 選項不是 true 時,擲回 FileExists
參數描述
source: Uri

現有檔案。

destination: Uri

目的地位置。

options: {overwrite: boolean}

定義是否應該覆寫現有檔案。

回傳描述
void | Thenable<void>

建立新目錄 (請注意,新檔案是透過 write 呼叫建立)。

  • throws - 當 uri 的父項不存在時,擲回 FileNotFound,例如不需要 mkdirp 邏輯。
  • throws - 當 uri 已存在時,擲回 FileExists
參數描述
uri: Uri

新資料夾的 URI。

回傳描述
void | Thenable<void>

刪除檔案。

參數描述
uri: Uri

要刪除的資源。

options: {recursive: boolean}

定義是否以遞迴方式刪除資料夾。

回傳描述
void | Thenable<void>

擷取 目錄 的所有項目。

參數描述
uri: Uri

資料夾的 URI。

回傳描述
Array<[string, FileType]> | Thenable<Array<[string, FileType]>>

名稱/類型組的陣列,或解析為此陣列的 thenable。

讀取檔案的完整內容。

參數描述
uri: Uri

檔案的 URI。

回傳描述
Uint8Array | Thenable<Uint8Array>

位元組陣列或解析為此陣列的 thenable。

重新命名檔案或資料夾。

  • throws - 當 newUri 的父項不存在時,擲回 FileNotFound,例如不需要 mkdirp 邏輯。
  • throws - 當 newUri 存在且 overwrite 選項不是 true 時,擲回 FileExists
參數描述
oldUri: Uri

現有檔案。

newUri: Uri

新位置。

options: {overwrite: boolean}

定義是否應該覆寫現有檔案。

回傳描述
void | Thenable<void>

擷取關於檔案的中繼資料。

請注意,符號連結的中繼資料應為它們所參照檔案的中繼資料。儘管如此,除了實際類型外,還必須使用 SymbolicLink 類型,例如 FileType.SymbolicLink | FileType.Directory

參數描述
uri: Uri

要擷取其中繼資料的檔案 URI。

回傳描述
FileStat | Thenable<FileStat>

關於檔案的檔案中繼資料。

訂閱由 uri 表示的檔案或資料夾中的檔案變更事件。對於資料夾,選項 recursive 指示是否也應監看子資料夾、子子資料夾等的檔案變更。使用 recursive: false,只有對資料夾直接子項的檔案變更才會觸發事件。

excludes 陣列用於指示應從檔案監看中排除的路徑。它通常衍生自使用者可設定的 files.watcherExclude 設定。每個條目可以是

  • 要排除的絕對路徑
  • 要排除的相對路徑(例如 build/output
  • 簡單的 glob 模式(例如 **/buildoutput/**

檔案系統提供者的工作是針對根據這些規則的每個變更呼叫 onDidChangeFile。對於符合任何提供的排除項的檔案,不應發出任何事件。

參數描述
uri: Uri

要監看的檔案或資料夾的 URI。

options: {excludes: readonly string[], recursive: boolean}

設定監看。

回傳描述
Disposable

一個可釋放的物件,告知提供者停止監看 uri

將資料寫入檔案,取代其完整內容。

  • throws - 當 uri 不存在且未設定 create 時,擲回 FileNotFound
  • throws - 當 uri 的父項不存在且設定了 create 時,擲回 FileNotFound,例如不需要 mkdirp 邏輯。
  • throws - 當 uri 已存在、設定了 create 但未設定 overwrite 時,擲回 FileExists
參數描述
uri: Uri

檔案的 URI。

content: Uint8Array

檔案的新內容。

options: {create: boolean, overwrite: boolean}

定義是否應或必須建立遺失的檔案。

回傳描述
void | Thenable<void>

FileSystemWatcher

檔案系統監看器通知磁碟上或其他 FileSystemProvider 的檔案和資料夾變更。

若要取得 FileSystemWatcher 的執行個體,請使用 createFileSystemWatcher

事件

檔案/資料夾變更時觸發的事件。

檔案/資料夾建立時觸發的事件。

檔案/資料夾刪除時觸發的事件。

屬性

如果此檔案系統監看器在建立時已設定為忽略變更檔案系統事件,則為 true。

如果此檔案系統監看器在建立時已設定為忽略建立檔案系統事件,則為 true。

如果此檔案系統監看器在建立時已設定為忽略刪除檔案系統事件,則為 true。

方法

處置此物件。

參數描述
回傳描述
any

FileType

檔案類型列舉。類型 FileDirectory 也可以是符號連結,在這種情況下,請使用 FileType.File | FileType.SymbolicLinkFileType.Directory | FileType.SymbolicLink

列舉成員

檔案類型未知。

一般檔案。

目錄。

符號連結到檔案。

FileWillCreateEvent

檔案即將建立時觸發的事件。

若要在建立檔案之前對工作區進行修改,請呼叫 waitUntil 函式,並提供一個解析為 工作區編輯 的 thenable。

屬性

即將建立的檔案。

取消權杖。

方法

允許暫停事件並套用 工作區編輯

注意: 此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫

workspace.onWillCreateFiles(event => {
  // async, will *throw* an error
  setTimeout(() => event.waitUntil(promise));

  // sync, OK
  event.waitUntil(promise);
});
參數描述
thenable: Thenable<WorkspaceEdit>

延遲儲存的 thenable。

回傳描述
void

允許暫停事件,直到提供的 thenable 解析。

注意: 此函式只能在事件分派期間呼叫。

參數描述
thenable: Thenable<any>

延遲儲存的 thenable。

回傳描述
void

FileWillDeleteEvent

檔案即將刪除時觸發的事件。

若要在刪除檔案之前對工作區進行修改,請呼叫 waitUntil 函式,並提供一個解析為 工作區編輯 的 thenable。

屬性

即將刪除的檔案。

取消權杖。

方法

允許暫停事件並套用 工作區編輯

注意: 此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫

workspace.onWillCreateFiles(event => {
  // async, will *throw* an error
  setTimeout(() => event.waitUntil(promise));

  // sync, OK
  event.waitUntil(promise);
});
參數描述
thenable: Thenable<WorkspaceEdit>

延遲儲存的 thenable。

回傳描述
void

允許暫停事件,直到提供的 thenable 解析。

注意: 此函式只能在事件分派期間呼叫。

參數描述
thenable: Thenable<any>

延遲儲存的 thenable。

回傳描述
void

FileWillRenameEvent

檔案即將重新命名時觸發的事件。

若要在重新命名檔案之前對工作區進行修改,請呼叫 waitUntil 函式,並提供一個解析為 工作區編輯 的 thenable。

屬性

即將重新命名的檔案。

取消權杖。

方法

允許暫停事件並套用 工作區編輯

注意: 此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫

workspace.onWillCreateFiles(event => {
  // async, will *throw* an error
  setTimeout(() => event.waitUntil(promise));

  // sync, OK
  event.waitUntil(promise);
});
參數描述
thenable: Thenable<WorkspaceEdit>

延遲儲存的 thenable。

回傳描述
void

允許暫停事件,直到提供的 thenable 解析。

注意: 此函式只能在事件分派期間呼叫。

參數描述
thenable: Thenable<any>

延遲儲存的 thenable。

回傳描述
void

FoldingContext

摺疊內容(供未來使用)

FoldingRange

基於行的摺疊範圍。若要有效,開始和結束行必須大於零且小於文件中的行數。無效的範圍將被忽略。

建構函式

建立新的摺疊範圍。

參數描述
start: number

摺疊範圍的開始行。

end: number

摺疊範圍的結束行。

kind?: FoldingRangeKind

摺疊範圍的種類。

回傳描述
FoldingRange

屬性

要摺疊的範圍的從零開始的結束行。摺疊區域以該行的最後一個字元結束。若要有效,結束行必須為零或更大,且小於文件中的行數。

描述摺疊範圍的 種類,例如 CommentRegion。種類用於分類摺疊範圍,並供「摺疊所有註解」等命令使用。請參閱 FoldingRangeKind 以取得所有種類的列舉。如果未設定,則範圍源自語法元素。

要摺疊的範圍的從零開始的開始行。摺疊區域從該行的最後一個字元之後開始。若要有效,結束行必須為零或更大,且小於文件中的行數。

FoldingRangeKind

特定摺疊範圍種類的列舉。種類是 FoldingRange 的選用欄位,用於區分特定的摺疊範圍,例如源自註解的範圍。種類由「摺疊所有註解」或「摺疊所有區域」等命令使用。如果未在範圍上設定種類,則範圍源自註解、匯入或區域標記以外的語法元素。

列舉成員

表示註解的摺疊範圍的種類。

表示匯入的摺疊範圍的種類。

表示源自摺疊標記(如 #region#endregion)的區域的摺疊範圍的種類。

FoldingRangeProvider

摺疊範圍提供者介面定義擴充功能與編輯器中 摺疊 之間的合約。

事件

一個選用事件,用於發出此提供者的摺疊範圍已變更的訊號。

方法

傳回摺疊範圍的清單,如果提供者不想參與或已取消,則傳回 null 和 undefined。

參數描述
document: TextDocument

在其中調用命令的文件。

context: FoldingContext

其他內容資訊(供未來使用)

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<FoldingRange[]>

FormattingOptions

描述格式化應使用哪些選項的值物件。

屬性

偏好使用空格而非 Tab 字元。

Tab 字元的大小(以空格為單位)。

FunctionBreakpoint

由函式名稱指定的斷點。

建構函式

建立新的函式斷點。

參數描述
functionName: string
enabled?: boolean
condition?: string
hitCondition?: string
logMessage?: string
回傳描述
FunctionBreakpoint

屬性

條件式斷點的選用運算式。

是否啟用斷點。

此斷點附加到的函式名稱。

控制忽略多少次斷點命中的選用運算式。

斷點的唯一 ID。

命中此斷點時要記錄的選用訊息。{} 內的嵌入運算式由偵錯配接器內插。

GlobalEnvironmentVariableCollection

擴充功能可以套用至程序環境的變更集合。適用於所有範圍。

屬性

環境變數集合的描述,這將用於描述 UI 中的變更。

集合是否應為工作區快取,並在視窗重新載入時應用於終端機。當為 true 時,集合將立即啟用,例如在視窗重新載入時。此外,如果存在快取版本,此 API 將傳回快取版本。當擴充功能解除安裝或集合清除時,集合將失效。預設為 true。

方法

將值附加到環境變數。

請注意,擴充功能只能對任何一個變數進行單一變更,因此這將覆寫先前對 replace、append 或 prepend 的任何呼叫。

參數描述
variable: string

要附加到的變數。

value: string

要附加到變數的值。

options?: EnvironmentVariableMutatorOptions

應用於 mutator 的選項,當未提供選項時,這將預設為 { applyAtProcessCreation: true }

回傳描述
void

從此集合中清除所有 mutator。

參數描述
回傳描述
void

刪除此集合中變數的 mutator。

參數描述
variable: string

要刪除 mutator 的變數。

回傳描述
void

迭代此集合中的每個 mutator。

參數描述
callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any

要為每個項目執行的函式。

thisArg?: any

調用處理程式函數時使用的 this 上下文。

回傳描述
void

取得此集合應用於變數的 mutator(如果有的話)。

參數描述
variable: string

要取得 mutator 的變數。

回傳描述
EnvironmentVariableMutator

取得擴充功能的範圍特定環境變數集合。這使得僅在指定範圍內變更終端機環境變數成為可能,並在全域集合之外(以及之後)套用。

透過此方法取得的每個物件都是隔離的,並且不會影響其他範圍的物件,包括全域集合。

參數描述
scope: EnvironmentVariableScope

環境變數集合套用到的範圍。

如果省略範圍參數,則會傳回適用於該參數所有相關範圍的集合。例如,如果未指定 'workspaceFolder' 參數,則會傳回適用於所有工作區資料夾的集合。

回傳描述
EnvironmentVariableCollection

傳入範圍的環境變數集合。

將值前置到環境變數。

請注意,擴充功能只能對任何一個變數進行單一變更,因此這將覆寫先前對 replace、append 或 prepend 的任何呼叫。

參數描述
variable: string

要前置的變數。

value: string

要前置到變數的值。

options?: EnvironmentVariableMutatorOptions

應用於 mutator 的選項,當未提供選項時,這將預設為 { applyAtProcessCreation: true }

回傳描述
void

以值取代環境變數。

請注意,擴充功能只能對任何一個變數進行單一變更,因此這將覆寫先前對 replace、append 或 prepend 的任何呼叫。

參數描述
variable: string

要取代的變數。

value: string

用來取代變數的值。

options?: EnvironmentVariableMutatorOptions

應用於 mutator 的選項,當未提供選項時,這將預設為 { applyAtProcessCreation: true }

回傳描述
void

GlobPattern

用於比對檔案路徑的 glob 模式。這可以是 glob 模式字串 (例如 **/*.{ts,js}*.{ts,js}) 或是相對模式

Glob 模式可使用以下語法

  • * 比對路徑區段中的零或多個字元
  • ? 比對路徑區段中的單一字元
  • ** 比對任意數量的路徑區段,包括零個
  • {} 將條件分組 (例如 **/*.{ts,js} 比對所有 TypeScript 和 JavaScript 檔案)
  • [] 宣告要比對的路徑區段中的字元範圍 (例如,example.[0-9] 比對 example.0example.1、…)
  • [!...] 否定要比對的路徑區段中的字元範圍 (例如,example.[!0-9] 比對 example.aexample.b,但不比對 example.0)

注意:反斜線 (``) 在 glob 模式中無效。如果您有現有的檔案路徑要比對,請考慮使用相對模式支援,它會負責將任何反斜線轉換為斜線。否則,請確保在建立 glob 模式時將任何反斜線轉換為斜線。

Hover

Hover 代表符號或單字的額外資訊。Hover 會在類似工具提示的小工具中呈現。

建構函式

建立新的 hover 物件。

參數描述
contents: MarkdownString | MarkedString | Array<MarkdownString | MarkedString>

Hover 的內容。

range?: Range

Hover 套用的範圍。

回傳描述
Hover

屬性

此 hover 的內容。

此 hover 套用的範圍。若遺失,編輯器將使用目前位置的範圍或目前位置本身。

HoverProvider

Hover 提供者介面定義了擴充功能與hover 功能之間的合約。

方法

為給定的位置和文件提供 hover。相同位置的多個 hover 將由編輯器合併。Hover 可以具有範圍,若省略範圍,則預設為該位置的單字範圍。

參數描述
document: TextDocument

在其中調用命令的文件。

position: Position

調用命令的位置。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<Hover>

hover 或可解析為 hover 的 thenable。缺少結果可以透過傳回 undefinednull 來表示。

IconPath

代表 UI 中的圖示。這可以是 uri、淺色和深色主題的個別 uri,或是主題圖示

ImplementationProvider

實作提供者介面定義了擴充功能與「前往實作」功能之間的合約。

方法

為給定位置和文件中的符號提供實作。

參數描述
document: TextDocument

在其中調用命令的文件。

position: Position

調用命令的位置。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<Definition | LocationLink[]>

定義或可解析為定義的 Thenable。缺少結果可以透過傳回 undefinednull 來表示。

IndentAction

描述按下 Enter 鍵時要如何處理縮排。

列舉成員

插入新行並複製前一行的縮排。

插入新行並縮排一次 (相對於前一行的縮排)。

插入兩行新行

  • 第一行縮排,游標將位於此行
  • 第二行與第一行相同的縮排層級

插入新行並減少縮排一次 (相對於前一行的縮排)。

IndentationRule

描述語言的縮排規則。

屬性

如果某行符合此模式,則其後的所有行都應減少縮排一次 (直到另一個規則符合)。

如果某行符合此模式,則其後的所有行都應增加縮排一次 (直到另一個規則符合)。

如果某行符合此模式,則**只有其後的下一行**應增加縮排一次。

如果某行符合此模式,則不應變更其縮排,並且不應針對其他規則進行評估。

InlayHint

內嵌提示資訊。

建構函式

建立新的內嵌提示。

參數描述
position: Position

提示的位置。

label: string | InlayHintLabelPart[]

提示的標籤。

kind?: InlayHintKind

提示的種類

回傳描述
InlayHint

屬性

此提示的種類。內嵌提示種類定義此內嵌提示的外觀。

此提示的標籤。人類可讀的字串或標籤部分的陣列。

注意:字串和標籤部分都不能為空。

在提示之前呈現內距。內距將使用編輯器的背景顏色,而不是提示本身的背景顏色。這表示內距可用於視覺上對齊/分隔內嵌提示。

在提示之後呈現內距。內距將使用編輯器的背景顏色,而不是提示本身的背景顏色。這表示內距可用於視覺上對齊/分隔內嵌提示。

此提示的位置。

接受此內嵌提示時執行的選用文字編輯。接受內嵌提示的預設手勢是按兩下。

注意:編輯預期會變更文件,使內嵌提示 (或其最接近的變體) 現在成為文件的一部分,而內嵌提示本身現在已過時。

注意:此屬性可以在解析內嵌提示期間稍後設定。

當您將滑鼠游標停留在項目上方時顯示的工具提示文字。

注意:此屬性可以在解析內嵌提示期間稍後設定。

InlayHintKind

內嵌提示種類。

內嵌提示的種類定義其外觀,例如,將使用對應的前景和背景顏色。

列舉成員

用於類型註釋的內嵌提示。

用於參數的內嵌提示。

InlayHintLabelPart

內嵌提示標籤部分允許內嵌提示的互動式和複合式標籤。

建構函式

建立新的內嵌提示標籤部分。

參數描述
value: string

部分的數值。

回傳描述
InlayHintLabelPart

屬性

此標籤部分的選用命令。

編輯器將具有命令的部分呈現為可點擊的連結。當標籤部分定義locationcommand 時,命令會新增至內容功能表。

注意:此屬性可以在解析內嵌提示期間稍後設定。

代表此標籤部分的選用原始碼位置

編輯器將使用此位置進行 hover 和程式碼導覽功能:此部分將成為可點擊的連結,解析為給定位置的符號定義 (不一定是位置本身),它會顯示在給定位置顯示的 hover,並顯示具有更多程式碼導覽命令的內容功能表。

注意:此屬性可以在解析內嵌提示期間稍後設定。

當您將滑鼠游標停留在此標籤部分上方時顯示的工具提示文字。

注意:此屬性可以在解析內嵌提示期間稍後設定。

此標籤部分的數值。

InlayHintsProvider<T>

內嵌提示提供者介面定義了擴充功能與內嵌提示功能之間的合約。

事件

選用事件,用於發出此提供者的內嵌提示已變更的訊號。

方法

為給定的範圍和文件提供內嵌提示。

注意:將忽略不在給定範圍包含的內嵌提示。

參數描述
document: TextDocument

在其中調用命令的文件。

range: Range

應計算內嵌提示的範圍。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T[]>

內嵌提示陣列或可解析為內嵌提示陣列的 thenable。

給定內嵌提示,填入 tooltip文字編輯或完整的標籤部分

注意:編輯器最多會解析內嵌提示一次。

參數描述
hint: T

內嵌提示。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T>

已解析的內嵌提示或可解析為已解析的內嵌提示的 thenable。可以傳回給定的 item。如果未傳回任何結果,將會使用給定的 item

InlineCompletionContext

提供有關要求內嵌完成的內容資訊。

屬性

如果自動完成小工具可見,則提供有關目前在其中選取項目的資訊。

如果已設定,則提供的內嵌完成必須擴充選取項目的文字並使用相同的範圍,否則它們不會顯示為預覽。例如,如果文件文字為 console. 且選取項目是取代文件中 ..log,則內嵌完成也必須取代 . 並以 .log 開頭,例如 .log()

每當選取項目變更時,都會再次要求內嵌完成提供者。

描述如何觸發內嵌完成。

InlineCompletionItem

內嵌完成項目代表建議內嵌以完成正在輸入文字的文字片段。

另請參閱 InlineCompletionItemProvider.provideInlineCompletionItems

建構函式

建立新的內嵌完成項目。

參數描述
insertText: string | SnippetString

用於取代範圍的文字。

range?: Range

要取代的範圍。如果未設定,將會使用要求位置的單字。

command?: Command

在插入此完成之後執行的選用命令

回傳描述
InlineCompletionItem

屬性

在插入此完成之後執行的選用命令

用於決定是否應顯示此內嵌完成的文字。當 falsy 時,會使用 InlineCompletionItem.insertText

如果要取代的文字是篩選文字的前置字元,則會顯示內嵌完成。

用於取代範圍的文字。必須設定。同時用於預覽和接受操作。

要取代的範圍。必須在同一行開始和結束。

相較於插入,偏好使用取代,以便在使用者刪除輸入的文字時提供更好的體驗。

InlineCompletionItemProvider

內嵌完成項目提供者介面定義了擴充功能與內嵌完成功能之間的合約。

系統會明確地透過使用者手勢或隱含地在輸入時要求提供者提供完成項目。

方法

為給定的位置和文件提供內嵌完成項目。如果啟用內嵌完成,則每當使用者停止輸入時,就會呼叫此方法。當使用者明確觸發內嵌完成或明確要求下一個或上一個內嵌完成時,也會呼叫此方法。在這種情況下,應傳回所有可用的內嵌完成。context.triggerKind 可用於區分這些情境。

參數描述
document: TextDocument

要求內嵌完成的文件。

position: Position

要求內嵌完成的位置。

context: InlineCompletionContext

具有其他資訊的內容物件。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<InlineCompletionList | InlineCompletionItem[]>

完成項目陣列或可解析為完成項目陣列的 thenable。

InlineCompletionList

代表要在編輯器中呈現的內嵌完成項目的集合。

建構函式

建立新的內嵌完成項目清單。

參數描述
items: InlineCompletionItem[]
回傳描述
InlineCompletionList

屬性

內嵌完成項目。

InlineCompletionTriggerKind

描述如何觸發內嵌完成提供者

列舉成員

完成是透過使用者手勢明確觸發的。傳回多個完成項目以啟用在它們之間循環。

完成是在編輯時自動觸發的。在這種情況下,傳回單一完成項目就已足夠。

InlineValue

內嵌值資訊可以透過不同的方式提供

  • 直接作為文字值 (類別 InlineValueText)。
  • 作為用於變數查閱的名稱 (類別 InlineValueVariableLookup)
  • 作為可評估的運算式 (類別 InlineValueEvaluatableExpression)。InlineValue 類型將所有內嵌值類型組合為一個類型。

InlineValueContext

一個值物件,其中包含從 InlineValuesProvider 要求內嵌值時的內容資訊。

屬性

執行已停止的堆疊框架 (作為 DAP Id)。

執行已停止的文件範圍。通常,範圍的結束位置表示顯示內嵌值的行。

InlineValueEvaluatableExpression

透過運算式評估提供內嵌值。如果僅指定範圍,則將從基礎文件中擷取運算式。選用的運算式可用於覆寫擷取的運算式。

建構函式

建立新的 InlineValueEvaluatableExpression 物件。

參數描述
range: Range

從中提取可評估運算式的基礎文件中的範圍。

expression?: string

如果指定,則覆寫提取的運算式。

回傳描述
InlineValueEvaluatableExpression

屬性

如果指定,則運算式會覆寫擷取的運算式。

套用內嵌值的文件的範圍。此範圍用於從底層文件中擷取可評估的表達式。

InlineValuesProvider

內嵌值提供者介面定義了擴充功能與編輯器的偵錯工具內嵌值功能之間的合約。在此合約中,提供者會針對給定的文件範圍傳回內嵌值資訊,而編輯器會在行尾的編輯器中顯示此資訊。

事件

一個可選的事件,用於發出內嵌值已變更的訊號。

另請參閱 EventEmitter

方法

為給定的文件和範圍提供「內嵌值」資訊。每當偵錯工具在給定的文件中停止時,編輯器就會呼叫此方法。傳回的內嵌值資訊會在編輯器中的行尾呈現。

參數描述
document: TextDocument

需要內嵌值資訊的文件。

viewPort: Range

應計算內嵌值的可見文件範圍。

context: InlineValueContext

包含上下文資訊(如目前位置)的容器。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<InlineValue[]>

InlineValueDescriptors 的陣列或可解析為此陣列的 Thenable。結果的缺乏可以透過傳回 undefinednull 來表示。

InlineValueText

以文字形式提供內嵌值。

建構函式

建立新的 InlineValueText 物件。

參數描述
range: Range

要顯示內嵌值的文件行。

text: string

要針對該行顯示的值。

回傳描述
InlineValueText

屬性

套用內嵌值的文件的範圍。

內嵌值的文字。

InlineValueVariableLookup

透過變數查閱提供內嵌值。如果僅指定範圍,則變數名稱將從底層文件中擷取。可使用可選的變數名稱來覆寫擷取的名稱。

建構函式

建立新的 InlineValueVariableLookup 物件。

參數描述
range: Range

要顯示內嵌值的文件行。

variableName?: string

要查閱的變數名稱。

caseSensitiveLookup?: boolean

如何執行查閱。如果遺失,則查閱會區分大小寫。

回傳描述
InlineValueVariableLookup

屬性

如何執行查閱。

套用內嵌值的文件的範圍。此範圍用於從底層文件中擷取變數名稱。

如果指定,則為要查閱的變數名稱。

InputBox

一個具體的 QuickInput,用於讓使用者輸入文字值。

請注意,在許多情況下,更方便的 window.showInputBox 更容易使用。window.createInputBox 應在 window.showInputBox 無法提供所需彈性時使用。

事件

當使用者表示接受輸入值時發出訊號的事件。

當值已變更時發出訊號的事件。

當此輸入 UI 隱藏時發出訊號的事件。

此 UI 可能必須隱藏的原因有很多,擴充功能將透過 QuickInput.onDidHide 收到通知。(範例包括:明確呼叫 QuickInput.hide、使用者按下 Esc、開啟其他輸入 UI 等)

當按鈕被觸發時發出訊號的事件。

屬性

UI 是否應顯示進度指示器。預設值為 false。

例如,在載入更多資料或驗證使用者輸入時,將此值變更為 true。

UI 中動作的按鈕。

UI 是否應允許使用者輸入。預設值為 true。

例如,在驗證使用者輸入或載入使用者輸入的下一步資料時,將此值變更為 false。

即使遺失 UI 焦點,UI 是否應保持開啟。預設值為 false。此設定在 iPad 上會被忽略,且始終為 false。

是否應隱藏輸入值。預設值為 false。

當未輸入任何值時顯示的可選預留位置。

一個可選的提示文字,向使用者提供一些詢問或說明。

一個可選的目前步驟計數。

一個可選的標題。

一個可選的總步驟計數。

一個可選的驗證訊息,指示目前輸入值有問題。透過傳回字串,InputBox 將使用預設的 InputBoxValidationSeverity 錯誤等級。傳回 undefined 會清除驗證訊息。

目前的輸入值。

輸入值中的選取範圍。定義為兩個數字的元組,其中第一個是包含的起始索引,第二個是排除的結束索引。當 undefined 時,將選取整個預先填入的值;當為空(起始等於結束)時,只會設定游標;否則將選取定義的範圍。

當使用者輸入或進行選取時,此屬性不會更新,但可以由擴充功能更新。

方法

處置此輸入 UI 和任何相關聯的資源。如果它仍然可見,則會先隱藏。在此呼叫之後,輸入 UI 將不再起作用,並且不應再存取其上的其他方法或屬性。而是應該建立新的輸入 UI。

參數描述
回傳描述
void

隱藏此輸入 UI。這也會觸發 QuickInput.onDidHide 事件。

參數描述
回傳描述
void

使其輸入 UI 在目前的組態中可見。任何其他輸入 UI 都將首先觸發 QuickInput.onDidHide 事件。

參數描述
回傳描述
void

InputBoxOptions

用於設定輸入框 UI 行為的選項。

屬性

設定為 true 以在焦點移至編輯器的另一個部分或另一個視窗時保持輸入框開啟。此設定在 iPad 上會被忽略,且始終為 false。

控制是否顯示密碼輸入。密碼輸入會隱藏輸入的文字。

一個可選的字串,在輸入框中顯示為預留位置,以引導使用者輸入內容。

要在輸入框下方顯示的文字。

一個可選的字串,表示輸入框的標題。

要在輸入框中預先填入的值。

預先填入的 value 的選取範圍。定義為兩個數字的元組,其中第一個是包含的起始索引,第二個是排除的結束索引。當 undefined 時,將選取整個預先填入的值;當為空(起始等於結束)時,只會設定游標;否則將選取定義的範圍。

方法

一個可選的函式,將被呼叫以驗證輸入並向使用者提供提示。

參數描述
value: string

輸入框的目前值。

回傳描述
string | InputBoxValidationMessage | Thenable<string | InputBoxValidationMessage>

可以是人類可讀的字串(作為錯誤訊息呈現),也可以是 InputBoxValidationMessage(可以提供特定的訊息嚴重性)。當 'value' 有效時,傳回 undefinednull 或空字串。

InputBoxValidationMessage

用於設定驗證訊息行為的物件。

屬性

要顯示的驗證訊息。

驗證訊息的嚴重性。注意:當使用 InputBoxValidationSeverity.Error 時,將不允許使用者接受(按下 ENTER)輸入。InfoWarning 仍允許 InputBox 接受輸入。

InputBoxValidationSeverity

輸入框驗證的嚴重性層級。

列舉成員

資訊嚴重性層級。

警告嚴重性層級。

錯誤嚴重性層級。

LanguageConfiguration

語言組態介面定義了擴充功能與各種編輯器功能(例如自動括號插入、自動縮排等)之間的合約。

屬性

已過時 請勿使用。

  • 已過時 - * 請改用語言組態檔中的 autoClosingPairs 屬性。
參數描述
autoClosingPairs: Array<{close: string, notIn: string[], open: string}>
  • 已過時

已過時 請勿使用。

  • 已過時 - 將很快被更好的 API 取代。
參數描述
brackets: any

此屬性已過時,將從編輯器中被忽略

  • 已過時
docComment: {close: string, lineStart: string, open: string, scope: string}

此屬性已過時,且編輯器不再完全支援(scope 和 lineStart 會被忽略)。請改用語言組態檔中的 autoClosingPairs 屬性。

  • 已過時

語言的自動關閉配對。

語言的括號。此組態隱含地影響在這些括號周圍按下 Enter 鍵。

語言的註解設定。

語言的縮排設定。

按下 Enter 鍵時要評估的語言規則。

語言的單字定義。如果語言支援 Unicode 識別碼(例如 JavaScript),則最好提供使用排除已知分隔符號的單字定義。例如:一個正規表示式,比對任何內容,但已知的分隔符號除外(且允許點號出現在浮點數中)

/(-?\d*\.\d\w*)|([^\`\~\!\\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>/\?\s]+)/g

LanguageModelAccessInformation

代表有關語言模型存取的擴充功能特定資訊。

事件

當存取資訊變更時觸發的事件。

方法

檢查是否可以向語言模型發出請求。

注意,呼叫此函式不會觸發同意 UI,而只會檢查持久狀態。

參數描述
chat: LanguageModelChat

語言模型聊天物件。

回傳描述
boolean

如果可以發出請求,則為 true;如果否,則為 false;如果語言模型不存在或尚未徵求同意,則為 undefined

LanguageModelChat

代表用於發出聊天請求的語言模型。

另請參閱 lm.selectChatModels

屬性

語言模型的不透明系列名稱。值可能是 gpt-3.5-turbogpt4phi2llama,但它們由貢獻語言的擴充功能定義,並且可能會變更。

語言模型的不透明識別碼。

單一請求中可以傳送給模型的最大 token 數量。

語言模型的人類可讀名稱。

語言模型供應商的著名識別碼。範例是 copilot,但值由貢獻聊天模型的擴充功能定義,並且需要與它們一起查閱。

模型的不透明版本字串。這由貢獻語言模型的擴充功能定義,並且可能會變更。

方法

使用模型特定的 tokenizer 邏輯計算訊息中的 token 數量。

參數描述
text: string | LanguageModelChatMessage

字串或訊息實例。

token?: CancellationToken

可選的取消 token。請參閱 CancellationTokenSource 了解如何建立一個。

回傳描述
Thenable<number>

可解析為 token 數量的 Thenable。

使用語言模型發出聊天請求。

注意,語言模型的使用可能受到存取限制和使用者同意的約束。第一次(針對擴充功能)呼叫此函式將向使用者顯示同意對話方塊,因此,此函式只能在回應使用者動作時呼叫! 擴充功能可以使用 LanguageModelAccessInformation.canSendRequest 來檢查它們是否具有發出請求的必要權限。

如果無法向語言模型發出請求,此函式將傳回拒絕的 promise。原因可能是

  • 未給予使用者同意,請參閱 NoPermissions
  • 模型不再存在,請參閱 NotFound
  • 超出配額限制,請參閱 Blocked
  • 其他問題,在這種情況下,擴充功能必須檢查 [LanguageModelError.cause LanguageModelError.cause](#LanguageModelError.cause LanguageModelError.cause)

擴充功能可以透過將一組工具傳遞給 LanguageModelChatRequestOptions.tools 來使用語言模型工具呼叫。語言模型將傳回 LanguageModelToolCallPart,而擴充功能可以叫用該工具並使用結果發出另一個請求。

參數描述
messages: LanguageModelChatMessage[]

訊息實例的陣列。

options?: LanguageModelChatRequestOptions

控制請求的選項。

token?: CancellationToken

控制請求的取消 token。請參閱 CancellationTokenSource 了解如何建立一個。

回傳描述
Thenable<LanguageModelChatResponse>

可解析為 LanguageModelChatResponse 的 Thenable。當無法發出請求時,promise 將會拒絕。

LanguageModelChatMessage

代表聊天中的訊息。可以承擔不同的角色,例如使用者或助理。

靜態

用於建立新的助理訊息的工具。

參數描述
content: string | Array<LanguageModelTextPart | LanguageModelToolCallPart>

訊息的內容。

name?: string

訊息的可選使用者名稱。

回傳描述
LanguageModelChatMessage

用於建立新的使用者訊息的工具。

參數描述
content: string | Array<LanguageModelTextPart | LanguageModelToolResultPart>

訊息的內容。

name?: string

訊息的可選使用者名稱。

回傳描述
LanguageModelChatMessage

建構函式

建立新的使用者訊息。

參數描述
role: LanguageModelChatMessageRole

訊息的角色。

content: string | Array<LanguageModelTextPart | LanguageModelToolResultPart | LanguageModelToolCallPart>

訊息的內容。

name?: string

訊息的可選使用者名稱。

回傳描述
LanguageModelChatMessage

屬性

字串或異質陣列,訊息可以將其包含為內容。某些部分可能對於某些模型而言是訊息類型特定的。

此訊息的可選使用者名稱。

此訊息的角色。

LanguageModelChatMessageRole

代表聊天訊息的角色。這可以是使用者或助理。

列舉成員

使用者角色,例如與語言模型互動的人。

助理角色,例如產生回應的語言模型。

LanguageModelChatRequestOptions

用於使用語言模型發出聊天請求的選項。

另請參閱 LanguageModelChat.sendRequest

屬性

人類可讀的訊息,解釋為什麼需要存取語言模型以及它啟用的功能。

一組控制語言模型行為的選項。這些選項特定於語言模型,需要在各自的文件中查閱。

要使用的工具選取模式。預設為 LanguageModelChatToolMode.Auto

可用於語言模型的可選工具清單。這些可能是透過 lm.tools 提供的已註冊工具,或僅在呼叫擴充功能內實作的私有工具。

如果 LLM 要求呼叫這些工具之一,它將在 LanguageModelChatResponse.stream 中返回一個 LanguageModelToolCallPart。 呼叫者有責任調用該工具。 如果它是在 lm.tools 中註冊的工具,則表示呼叫 lm.invokeTool

然後,可以通過創建一個 Assistant 類型的 LanguageModelChatMessage,其中包含一個 LanguageModelToolCallPart,然後再創建一個 User 類型的消息,其中包含一個 LanguageModelToolResultPart,將工具結果提供給 LLM。

LanguageModelChatResponse

表示語言模型回應。

另請參閱 LanguageModelAccess.chatRequest

屬性

一個異步可迭代物件,它是由文字和工具呼叫部分組成的串流,形成整體回應。 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 中過濾掉除文字部分之外的所有內容。

另請參閱 LanguageModelChatResponse.stream

LanguageModelChatSelector

描述如何為聊天請求選擇語言模型。

另請參閱 lm.selectChatModels

屬性

語言模型系列。

另請參閱 LanguageModelChat.family

語言模型的識別碼。

另請參閱 LanguageModelChat.id

語言模型的供應商。

另請參閱 LanguageModelChat.vendor

語言模型的版本。

另請參閱 LanguageModelChat.version

LanguageModelChatTool

可通過 LanguageModelChatRequestOptions 提供給語言模型的工具。 語言模型使用此介面的所有屬性來決定要呼叫哪個工具以及如何呼叫它。

屬性

工具的描述。

此工具接受的輸入的 JSON 結構描述。

工具的名稱。

LanguageModelChatToolMode

語言模型要使用的工具呼叫模式。

列舉成員

語言模型可以選擇呼叫工具或生成消息。 這是預設值。

語言模型必須呼叫提供的工具之一。 注意 - 某些模型在此模式下僅支援單個工具。

LanguageModelError

語言模型特定錯誤的錯誤類型。

語言模型的消費者應檢查 code 屬性以確定具體的失敗原因,例如 if(someError.code === vscode.LanguageModelError.NotFound.name) {...} 用於引用未知語言模型的情況。 對於未指定的錯誤,cause 屬性將包含實際錯誤。

靜態

請求者被阻止使用此語言模型。

參數描述
message?: string
回傳描述
LanguageModelError

請求者沒有使用此語言模型的權限

參數描述
message?: string
回傳描述
LanguageModelError

語言模型不存在。

參數描述
message?: string
回傳描述
LanguageModelError

建構函式

參數描述
message?: string
回傳描述
LanguageModelError

屬性

識別此錯誤的代碼。

可能的值是錯誤的名稱,例如 NotFound,或 Unknown 用於來自語言模型本身未指定的錯誤。 在後一種情況下,cause 屬性將包含實際錯誤。

LanguageModelPromptTsxPart

一個語言模型回應部分,包含來自 vscode/prompt-tsx 的 PromptElementJSON。

另請參閱 LanguageModelToolResult

建構函式

使用給定的內容建構一個 prompt-tsx 部分。

參數描述
value: unknown

該部分的值,來自 vscode/prompt-tsxrenderPromptElementJSON 的結果。

回傳描述
LanguageModelPromptTsxPart

屬性

部分的數值。

LanguageModelTextPart

一個語言模型回應部分,包含一段文字,從 LanguageModelChatResponse 返回。

建構函式

使用給定的內容建構一個文字部分。

參數描述
value: string

該部分的文字內容。

回傳描述
LanguageModelTextPart

屬性

該部分的文字內容。

LanguageModelTool<T>

可以通過呼叫 LanguageModelChat 來調用的工具。

方法

使用給定的輸入調用工具並返回結果。

提供的 LanguageModelToolInvocationOptions.input 已根據宣告的結構描述進行驗證。

在工具被調用之前調用一次。 建議實作此方法以自訂工具運行時顯示的進度消息,並提供更實用的消息,其中包含來自調用輸入的上下文。 如果適用,還可以發出信號,表明工具在運行之前需要使用者確認。

  • 注意 1: 必須沒有副作用。
  • 注意 2: 呼叫 prepareInvocation 不一定會接著呼叫 invoke

LanguageModelToolCallPart

一個語言模型回應部分,指示工具呼叫,從 LanguageModelChatResponse 返回,並且也可以作為內容部分包含在 LanguageModelChatMessage 中,以表示聊天請求中先前的工具呼叫。

建構函式

創建一個新的 LanguageModelToolCallPart。

參數描述
callId: string

工具呼叫的 ID。

name: string

要呼叫的工具名稱。

input: object

用於呼叫工具的輸入。

回傳描述
LanguageModelToolCallPart

屬性

工具呼叫的 ID。 這是聊天請求中工具呼叫的唯一識別符。

用於呼叫工具的輸入。

要呼叫的工具名稱。

LanguageModelToolConfirmationMessages

當在 PreparedToolInvocation 中返回此項時,將要求使用者在運行工具之前確認。 這些消息將與標有「繼續」和「取消」按鈕一起顯示。

屬性

確認消息的主體。

確認消息的標題。

LanguageModelToolInformation

關於 lm.tools 中可用的已註冊工具的資訊。

屬性

此工具的描述,可以傳遞給語言模型。

此工具接受的輸入的 JSON 結構描述。

工具的唯一名稱。

工具宣告的一組標籤,大致描述了工具的功能。 工具使用者可以使用這些標籤來過濾工具集,僅保留與手頭任務相關的工具。

LanguageModelToolInvocationOptions<T>

為工具調用提供的選項。

屬性

用於調用工具的輸入。 輸入必須與 LanguageModelToolInformation.inputSchema 中定義的結構描述匹配

提示工具應在其回應中返回多少個令牌的選項,並使工具能夠準確地計算令牌。

一個不透明的物件,將工具調用與來自 聊天參與者 的聊天請求聯繫起來。

獲取有效工具調用令牌的唯一方法是使用來自聊天請求的提供的 toolInvocationToken。 在這種情況下,將在聊天回應視圖中自動顯示工具調用的進度條,並且如果工具需要使用者確認,它將內嵌顯示在聊天視圖中。

如果工具是在聊天請求之外調用的,則應傳遞 undefined,並且除了確認之外,不會顯示任何特殊的 UI。

注意,在其調用期間調用另一個工具的工具可以傳遞其接收到的 toolInvocationToken

LanguageModelToolInvocationPrepareOptions<T>

屬性

工具正在調用的輸入。

LanguageModelToolResult

從工具調用返回的結果。 如果使用 vscode/prompt-tsx,則可以使用 ToolResult 呈現此結果。

建構函式

創建一個 LanguageModelToolResult

參數描述
content: Array<LanguageModelTextPart | LanguageModelPromptTsxPart>

工具結果內容部分列表

回傳描述
LanguageModelToolResult

屬性

工具結果內容部分列表。 包含 unknown 是因為此列表將來可能會擴展新的內容類型。

另請參閱 lm.invokeTool

LanguageModelToolResultPart

工具呼叫的結果。 這是 工具呼叫 的對應部分,它只能包含在使用者消息的內容中

建構函式

參數描述
callId: string

工具呼叫的 ID。

content: unknown[]

工具結果的內容。

回傳描述
LanguageModelToolResultPart

屬性

工具呼叫的 ID。

注意,這應與工具呼叫部分的 callId 相匹配。

工具結果的值。

LanguageModelToolTokenizationOptions

與工具調用的令牌化相關的選項。

屬性

如果已知,工具應在其結果中發出的最大令牌數。

方法

使用模型特定的 tokenizer 邏輯計算訊息中的 token 數量。

參數描述
text: string

一個字串。

token?: CancellationToken

可選的取消 token。請參閱 CancellationTokenSource 了解如何建立一個。

回傳描述
Thenable<number>

可解析為 token 數量的 Thenable。

LanguageStatusItem

語言狀態項目是為活動文本編輯器呈現語言狀態報告的首選方式,例如選定的 linter 或通知配置問題。

屬性

當螢幕閱讀器與此項目互動時使用的輔助功能資訊

控制項目是否顯示為「忙碌」。 預設為 false

此項目的 命令

可選的、人類可讀的此項目的詳細資訊。

此項目的識別碼。

此項目的簡短名稱,例如「Java 語言狀態」等。

一個 選擇器,用於定義此項目為哪些編輯器顯示。

此項目的嚴重性。

預設為 資訊。 您可以使用此屬性向使用者發出信號,表明存在需要注意的問題,例如缺少可執行文件或無效的配置。

要為條目顯示的文本。 您可以通過利用以下語法在文本中嵌入圖示

我的文本 $(icon-name) 包含圖示,例如 $(icon-name) 這個。

其中圖示名稱取自 ThemeIcon 圖示集,例如 light-bulbthumbsupzap 等。

方法

處置並釋放相關資源。

參數描述
回傳描述
void

LanguageStatusSeverity

表示語言狀態的嚴重性級別。

列舉成員

資訊嚴重性層級。

警告嚴重性層級。

錯誤嚴重性層級。

LinkedEditingRangeProvider

連結編輯範圍提供者介面定義了擴展與連結編輯功能之間的契約。

方法

對於文檔中的給定位置,返回該位置的符號範圍以及所有具有相同內容的範圍。 如果新內容有效,則對其中一個範圍的更改可以應用於所有其他範圍。 可以使用結果返回可選的單詞模式,以描述有效內容。 如果未提供特定於結果的單詞模式,則使用來自語言配置的單詞模式。

參數描述
document: TextDocument

在其中調用提供者的文檔。

position: Position

在其中調用提供者的位置。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<LinkedEditingRanges>

可以一起編輯的範圍列表

LinkedEditingRanges

表示可以一起編輯的範圍列表以及描述有效範圍內容的單詞模式。

建構函式

創建一個新的連結編輯範圍物件。

參數描述
ranges: Range[]

可以一起編輯的範圍列表

wordPattern?: RegExp

一個可選的單詞模式,描述給定範圍的有效內容

回傳描述
LinkedEditingRanges

屬性

可以一起編輯的範圍列表。 範圍必須具有相同的長度和文本內容。 範圍不能重疊。

一個可選的單詞模式,描述給定範圍的有效內容。 如果未提供模式,則將使用語言配置的單詞模式。

Location

表示資源內的位置,例如文本文件中的一行。

建構函式

創建一個新的位置物件。

參數描述
uri: Uri

資源識別符。

rangeOrPosition: Range | Position

範圍或位置。 位置將轉換為空範圍。

回傳描述
Location

屬性

此位置的文檔範圍。

此位置的資源識別符。

表示兩個位置的連接。 提供比普通 位置 更多的元數據,包括原始範圍。

屬性

此連結的原始範圍跨度。

用作滑鼠定義懸停的下劃線跨度。 預設為定義位置的單詞範圍。

此連結的完整目標範圍。

此連結的跨度。

此連結的目標資源識別符。

LogLevel

日誌級別

列舉成員

此級別不記錄任何消息。

此級別記錄所有消息。

此級別記錄具有調試和更高等級日誌級別的消息。

此級別記錄具有資訊和更高等級日誌級別的消息。

此級別記錄具有警告和更高等級日誌級別的消息。

此級別僅記錄錯誤消息。

LogOutputChannel

用於包含日誌輸出的通道。

要獲取 LogOutputChannel 的實例,請使用 createOutputChannel

事件

當通道的日誌級別更改時觸發的 事件

屬性

通道的當前日誌級別。 預設為 編輯器日誌級別

此輸出通道的人類可讀名稱。

方法

將給定值附加到通道。

參數描述
value: string

字串,虛值將不會列印。

回傳描述
void

將給定值和換行符附加到通道。

參數描述
value: string

字串,虛值將會列印。

回傳描述
void

移除頻道中的所有輸出。

參數描述
回傳描述
void

將指定的偵錯訊息輸出到頻道。

只有在頻道設定為顯示 debug 記錄層級或更低時,才會記錄此訊息。

參數描述
message: string

要記錄的偵錯訊息

...args: any[]
回傳描述
void

處置並釋放相關資源。

參數描述
回傳描述
void

將指定的錯誤或錯誤訊息輸出到頻道。

只有在頻道設定為顯示 error 記錄層級或更低時,才會記錄此訊息。

參數描述
error: string | Error

要記錄的錯誤或錯誤訊息

...args: any[]
回傳描述
void

從 UI 中隱藏此頻道。

參數描述
回傳描述
void

將指定的資訊訊息輸出到頻道。

只有在頻道設定為顯示 info 記錄層級或更低時,才會記錄此訊息。

參數描述
message: string

要記錄的資訊訊息

...args: any[]
回傳描述
void

以給定的值取代頻道中的所有輸出。

參數描述
value: string

字串,虛值將不會列印。

回傳描述
void

在 UI 中顯示此頻道。

參數描述
preserveFocus?: boolean

true 時,頻道不會取得焦點。

回傳描述
void

在 UI 中顯示此頻道。

  • 已過時 - 使用只有一個參數的超載版本 (show(preserveFocus?: boolean): void)。
參數描述
column?: ViewColumn

此引數已過時,將被忽略。

preserveFocus?: boolean

true 時,頻道不會取得焦點。

回傳描述
void

將指定的追蹤訊息輸出到頻道。使用此方法記錄詳細資訊。

只有在頻道設定為顯示 trace 記錄層級時,才會記錄此訊息。

參數描述
message: string

要記錄的追蹤訊息

...args: any[]
回傳描述
void

將指定的警告訊息輸出到頻道。

只有在頻道設定為顯示 warning 記錄層級或更低時,才會記錄此訊息。

參數描述
message: string

要記錄的警告訊息

...args: any[]
回傳描述
void

MarkdownString

人類可讀的文字,支援透過 markdown 語法進行格式化。

supportThemeIcons 設定為 true 時,支援透過 $(<name>) 語法呈現 主題圖示

supportHtml 設定為 true 時,支援呈現嵌入式 html。

建構函式

使用給定的值建立新的 markdown 字串。

參數描述
value?: string

選用,初始值。

supportThemeIcons?: boolean

選用,指定是否在 MarkdownString 中支援 ThemeIcons

回傳描述
MarkdownString

屬性

相對路徑解析時所依據的 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'

表示此 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 字串。

方法

使用提供的語言將給定的字串附加為程式碼區塊。

參數描述
value: string

程式碼片段。

language?: string

選用的 語言識別碼

回傳描述
MarkdownString

將給定的字串「原樣」附加到此 markdown 字串。當 supportThemeIconstrue 時,value 中的 ThemeIcons 將會圖示化。

參數描述
value: string

Markdown 字串。

回傳描述
MarkdownString

將給定的字串附加並逸出到此 markdown 字串。

參數描述
value: string

純文字。

回傳描述
MarkdownString

MarkedString

MarkedString 可用於呈現人類可讀的文字。它可以是 markdown 字串或程式碼區塊,提供語言和程式碼片段。請注意,markdown 字串將會經過清理 - 這表示 html 將會被逸出。

Memento

Memento 代表儲存公用程式。它可以儲存和擷取值。

方法

傳回值。

參數描述
key: string

一個字串。

回傳描述
T

儲存的值或 undefined

傳回值。

參數描述
key: string

一個字串。

defaultValue: T

當給定索引鍵沒有值 (undefined) 時應傳回的值。

回傳描述
T

儲存的值或 defaultValue。

傳回儲存的索引鍵。

參數描述
回傳描述
readonly string[]

儲存的索引鍵。

儲存值。該值必須可 JSON 字串化。

請注意,使用 undefined 作為值會從基礎儲存空間中移除索引鍵。

參數描述
key: string

一個字串。

value: any

值。不得包含循環參考。

回傳描述
Thenable<void>

MessageItem

表示與資訊、警告或錯誤訊息一起顯示的動作。

另請參閱

屬性

模態對話方塊的提示,表示當使用者取消對話方塊時 (例如按下 ESC 鍵),應觸發該項目。

注意:此選項在非模態訊息中會被忽略。

簡短標題,例如「重試」、「開啟記錄」等。

MessageOptions

用於設定訊息行為的選項。

另請參閱

屬性

人類可讀的詳細訊息,以較不顯眼的方式呈現。請注意,詳細訊息僅針對 模態 訊息顯示。

表示此訊息應為模態。

NotebookCell

表示 notebook 的儲存格,可以是 程式碼 儲存格或 標記 儲存格。

NotebookCell 實例是不可變的,並且只要它們是其 notebook 的一部分,就會保持同步。

屬性

此儲存格的 文字,以文字文件表示。

此儲存格最新的 執行摘要

此儲存格在其 包含 notebook 中的索引。當儲存格在其 notebook 中移動時,索引會更新。當儲存格已從其 notebook 中移除時,索引為 -1

此儲存格的種類。

此儲存格的中繼資料。可以是任何內容,但必須可 JSON 字串化。

包含此儲存格的 notebook

此儲存格的輸出。

NotebookCellData

NotebookCellData 是 notebook 儲存格的原始表示法。它是 NotebookData 的一部分。

建構函式

建立新的儲存格資料。最小儲存格資料指定其種類、其來源值及其來源的語言識別碼。

參數描述
kind: NotebookCellKind

種類。

value: string

來源值。

languageId: string

來源值的語言識別碼。

回傳描述
NotebookCellData

屬性

此儲存格資料的執行摘要。

此儲存格資料的 種類

此儲存格資料的來源值的語言識別碼。來自 getLanguages 的任何值皆有可能。

此儲存格資料的任意中繼資料。可以是任何內容,但必須可 JSON 字串化。

此儲存格資料的輸出。

此儲存格資料的來源值 - 程式碼或格式化文字。

NotebookCellExecution

NotebookCellExecution 是 notebook 控制器 在執行時修改 notebook 儲存格的方式。

當建立儲存格執行物件時,儲存格會進入 [NotebookCellExecutionState.Pending Pending](#NotebookCellExecutionState.Pending Pending) 狀態。當在執行工作上呼叫 start(...) 時,它會進入 [NotebookCellExecutionState.Executing Executing](#NotebookCellExecutionState.Executing Executing) 狀態。當呼叫 end(...) 時,它會進入 [NotebookCellExecutionState.Idle Idle](#NotebookCellExecutionState.Idle Idle) 狀態。

屬性

已為其建立此執行的 儲存格

設定和取消設定此儲存格執行的順序。

當從 UI 取消儲存格執行時,將會觸發取消權杖。

請注意,當建立此執行的 控制器 使用 中斷處理常式 時,不會觸發取消權杖。

方法

附加到正在執行的儲存格的輸出,或附加到受此執行影響的另一個儲存格。

參數描述
out: NotebookCellOutput | readonly NotebookCellOutput[]

附加到目前輸出的輸出。

cell?: NotebookCell

要清除輸出的儲存格。預設為此執行的 儲存格

回傳描述
Thenable<void>

在作業完成時解析的 thenable。

將輸出項目附加到現有的儲存格輸出。

參數描述
items: NotebookCellOutputItem | readonly NotebookCellOutputItem[]

要附加到現有輸出的輸出項目。

output: NotebookCellOutput

已存在的輸出物件。

回傳描述
Thenable<void>

在作業完成時解析的 thenable。

清除正在執行的儲存格或受此執行影響的另一個儲存格的輸出。

參數描述
cell?: NotebookCell

要清除輸出的儲存格。預設為此執行的 儲存格

回傳描述
Thenable<void>

在作業完成時解析的 thenable。

發出執行已結束的訊號。

參數描述
success: boolean

如果為 true,則在儲存格狀態列上顯示綠色勾號。如果為 false,則顯示紅色 X。如果未定義,則不顯示勾號或 X 圖示。

endTime?: number

執行完成的時間,以 Unix epoch 的毫秒為單位。

回傳描述
void

取代正在執行的儲存格或受此執行影響的另一個儲存格的輸出。

參數描述
out: NotebookCellOutput | readonly NotebookCellOutput[]

取代目前輸出的輸出。

cell?: NotebookCell

要清除輸出的儲存格。預設為此執行的 儲存格

回傳描述
Thenable<void>

在作業完成時解析的 thenable。

取代現有儲存格輸出的所有輸出項目。

參數描述
items: NotebookCellOutputItem | readonly NotebookCellOutputItem[]

取代現有輸出項目的輸出項目。

output: NotebookCellOutput

已存在的輸出物件。

回傳描述
Thenable<void>

在作業完成時解析的 thenable。

發出執行已開始的訊號。

參數描述
startTime?: number

執行開始的時間,以 Unix epoch 的毫秒為單位。用於驅動時鐘,顯示儲存格已執行多久。如果未給定,則不會顯示時鐘。

回傳描述
void

NotebookCellExecutionSummary

notebook 儲存格執行的摘要。

屬性

執行發生的順序。

執行是否成功完成。

執行開始和結束的時間,以 Unix 時間戳記表示

參數描述
endTime: number

執行結束時間。

startTime: number

執行開始時間。

NotebookCellKind

notebook 儲存格種類。

列舉成員

標記儲存格是用於顯示的格式化來源。

程式碼儲存格是可以執行並產生 輸出 的來源。

NotebookCellOutput

Notebook 儲存格輸出表示執行儲存格的結果。它是多個 輸出項目 的容器類型,其中包含的項目表示相同的結果,但使用不同的 MIME 類型。

建構函式

建立新的 notebook 輸出。

參數描述
items: NotebookCellOutputItem[]

Notebook 輸出項目。

metadata?:

選用中繼資料。

回傳描述
NotebookCellOutput

屬性

此輸出的輸出項目。每個項目都必須代表相同的結果。請注意,每個輸出重複的 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

notebook 輸出的一種表示法,由 MIME 類型和資料定義。

靜態

用於建立使用 application/vnd.code.notebook.error mime 類型的 NotebookCellOutputItem 工廠函式。

參數描述
value: Error

錯誤物件。

回傳描述
NotebookCellOutputItem

一個新的輸出項目物件。

從 JSON 物件建立 NotebookCellOutputItem 的工廠函式。

請注意,此函式預期的是可以字串化的物件,而不是「字串化的 JSON」。當傳遞的值無法 JSON 字串化時,此函式將會拋出錯誤。

參數描述
value: any

一個可以 JSON 字串化的值。

mime?: string

可選的 MIME 類型,預設為 application/json

回傳描述
NotebookCellOutputItem

一個新的輸出項目物件。

從使用 application/vnd.code.notebook.stderr MIME 類型的 NotebookCellOutputItem 建立工廠函式。

參數描述
value: string

一個字串。

回傳描述
NotebookCellOutputItem

一個新的輸出項目物件。

從使用 application/vnd.code.notebook.stdout MIME 類型的 NotebookCellOutputItem 建立工廠函式。

參數描述
value: string

一個字串。

回傳描述
NotebookCellOutputItem

一個新的輸出項目物件。

從字串建立 NotebookCellOutputItem 的工廠函式。

請注意,UTF-8 編碼器用於為字串建立位元組。

參數描述
value: string

一個字串。

mime?: string

可選的 MIME 類型,預設為 text/plain

回傳描述
NotebookCellOutputItem

一個新的輸出項目物件。

建構函式

建立一個新的筆記本儲存格輸出項目。

參數描述
data: Uint8Array

輸出項目的值。

mime: string

輸出項目的 MIME 類型。

回傳描述
NotebookCellOutputItem

屬性

此輸出項目的資料。必須始終為無號 8 位元整數的陣列。

決定如何解譯 data 屬性的 MIME 類型。

筆記本內建支援某些 MIME 類型,擴充功能可以新增對新類型的支援並覆寫現有類型。

NotebookCellStatusBarAlignment

代表狀態列項目的對齊方式。

列舉成員

對齊左側。

對齊右側。

NotebookCellStatusBarItem

對儲存格狀態列的貢獻

建構函式

建立一個新的 NotebookCellStatusBarItem。

參數描述
text: string

項目要顯示的文字。

alignment: NotebookCellStatusBarAlignment

項目是否對齊左側或右側。

回傳描述
NotebookCellStatusBarItem

屬性

當螢幕閱讀器與此項目互動時使用的輔助功能資訊。

項目是否對齊左側或右側。

按一下時要執行的可選 Command 或命令識別碼。

命令必須是 已知的

請注意,如果這是一個 Command 物件,則編輯器僅使用 commandarguments

項目的優先順序。值較高的項目將更靠左顯示。

項目要顯示的文字。

當滑鼠停留在項目上時顯示的工具提示。

NotebookCellStatusBarItemProvider

一個提供者,可以將項目貢獻到顯示在儲存格編輯器下方的狀態列。

事件

一個可選的事件,用於發出狀態列項目已變更的訊號。將再次呼叫 provide 方法。

方法

當儲存格捲動到檢視畫面中、其內容、輸出、語言或中繼資料變更,以及執行狀態變更時,將會呼叫提供者。

參數描述
cell: NotebookCell

要為其傳回項目的儲存格。

token: CancellationToken

如果應取消此請求,則會觸發權杖。

回傳描述
ProviderResult<NotebookCellStatusBarItem | NotebookCellStatusBarItem[]>

一個或多個 儲存格狀態列項目

NotebookController

筆記本控制器代表可以執行筆記本儲存格的實體。這通常稱為核心。

可能有多個控制器,編輯器將讓使用者選擇要用於特定筆記本的控制器。notebookType 屬性定義控制器適用於哪種筆記本,而 updateNotebookAffinity 函式允許控制器為特定筆記本文件設定偏好。當控制器被選取時,會觸發其 onDidChangeSelectedNotebooks 事件。

當儲存格正在執行時,編輯器將調用 executeHandler,並且預期控制器會建立並完成 筆記本儲存格執行。但是,控制器也可以自行建立執行。

事件

每當筆記本文件選取或取消選取控制器時觸發的事件。

一個筆記本可能有多個控制器,在這種情況下,需要*選取*控制器。這是使用者手勢,並且在與*建議*控制器的筆記本互動時,會明確或隱含地發生。在可能的情況下,編輯器會*建議*最有可能被*選取*的控制器。

請注意,控制器選取會被持久化(依控制器的 id),並且在控制器重新建立或筆記本 開啟 後立即還原。

屬性

人類可讀的描述,呈現時較不顯眼。

人類可讀的詳細資訊,呈現時較不顯眼。

當選取 UI 中的執行手勢時(例如「執行儲存格」、「全部執行」、「執行選取範圍」等),會調用執行處理常式。執行處理常式負責建立和管理 execution 物件。

參數描述
cells: NotebookCell[]
notebook: NotebookDocument
controller: NotebookController
回傳描述
void | Thenable<void>

此筆記本控制器的識別碼。

請注意,控制器會依其識別碼記住,且擴充功能應在不同工作階段中使用穩定的識別碼。

可選的中斷處理常式。

預設情況下,儲存格執行會透過 權杖 取消。取消權杖要求控制器可以追蹤其執行,以便稍後取消特定執行。並非所有情況都允許這樣做,例如,REPL 樣式的控制器通常透過中斷目前正在執行的任何內容來運作。對於這些情況,存在中斷處理常式 - 可以將其視為終端機中 SIGINTControl+C 的等效項。

請注意,支援 取消權杖 是首選,並且只有在無法支援權杖時才應使用中斷處理常式。

參數描述
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

此控制器是否支援執行順序,以便編輯器可以為其呈現預留位置。

方法

建立儲存格執行工作。

請注意,一次每個儲存格只能有一個執行,並且如果建立儲存格執行時另一個執行仍在活動中,則會拋出錯誤。

這應該用於回應 執行處理常式 被呼叫時,或當儲存格執行已在其他地方啟動時,例如當儲存格已在執行中或當儲存格執行是從另一個來源觸發時。

參數描述
cell: NotebookCell

要為其建立執行的筆記本儲存格。

回傳描述
NotebookCellExecution

筆記本儲存格執行。

處置並釋放相關資源。

參數描述
回傳描述
void

控制器可以為特定筆記本文件設定親和性。這允許控制器對於某些筆記本更顯著地呈現。

參數描述
notebook: NotebookDocument

設定優先順序的筆記本。

affinity: NotebookControllerAffinity

控制器親和性

回傳描述
void

NotebookControllerAffinity

筆記本控制器的筆記本文件親和性。

另請參閱 NotebookController.updateNotebookAffinity

列舉成員

預設親和性。

控制器是筆記本的首選。

NotebookData

筆記本的原始表示法。

擴充功能負責建立 NotebookData,以便編輯器可以建立 NotebookDocument

另請參閱 NotebookSerializer

建構函式

建立新的筆記本資料。

參數描述
cells: NotebookCellData[]

儲存格資料的陣列。

回傳描述
NotebookData

屬性

此筆記本資料的儲存格資料。

筆記本資料的任意中繼資料。

NotebookDocument

代表一個筆記本,其本身是 程式碼或標記儲存格 的序列。筆記本文件是從 筆記本資料 建立的。

屬性

筆記本中的儲存格數量。

如果筆記本已關閉,則為 true。關閉的筆記本不再同步,並且在再次開啟相同的資源時不會重複使用。

如果有未持久化的變更,則為 true

此筆記本是否代表尚未儲存的未命名檔案。

此筆記本的任意中繼資料。可以是任何內容,但必須是可 JSON 字串化的。

筆記本的類型。

此筆記本的關聯 URI。

請注意,大多數筆記本使用 file 協定,這表示它們是磁碟上的檔案。但是,並所有筆記本都儲存在磁碟上,因此在嘗試存取基礎檔案或磁碟上的同層檔案之前,必須檢查 scheme

另請參閱 FileSystemProvider

此筆記本的版本號碼(每次變更後都會嚴格遞增,包括復原/重做)。

方法

傳回指定索引處的儲存格。索引將調整為筆記本的範圍。

參數描述
index: number

要檢索的儲存格索引。

回傳描述
NotebookCell

一個 儲存格

取得此筆記本的儲存格。可以透過提供範圍來檢索子集。範圍將調整為筆記本的範圍。

參數描述
range?: NotebookRange

筆記本範圍。

回傳描述
NotebookCell[]

範圍或所有儲存格所包含的儲存格。

儲存文件。儲存將由對應的 序列化程式 處理。

參數描述
回傳描述
Thenable<boolean>

當文件已儲存時,將解析為 true 的 Promise。如果檔案未變更或儲存失敗,將傳回 false。

NotebookDocumentCellChange

描述對筆記本儲存格的變更。

另請參閱 NotebookDocumentChangeEvent

屬性

受影響的儲存格。

儲存格的文件,或在未變更時為 undefined

請注意,您應該使用 onDidChangeTextDocument 事件來取得詳細的變更資訊,例如已執行的編輯。

儲存格的新執行摘要,或在未變更時為 undefined

儲存格的新中繼資料,或在未變更時為 undefined

儲存格的新輸出,或在未變更時為 undefined

NotebookDocumentChangeEvent

描述交易式 筆記本 變更的事件。

屬性

儲存格變更 的陣列。

描述新增或移除 儲存格 的內容變更陣列。

筆記本的新中繼資料,或在未變更時為 undefined

受影響的筆記本。

NotebookDocumentContentChange

描述筆記本文件的結構性變更,例如,新增和移除的儲存格。

另請參閱 NotebookDocumentChangeEvent

屬性

已新增至文件的儲存格。

新增或移除儲存格的範圍。

請注意,當此範圍為 時,表示沒有 移除 任何儲存格。

已從文件中移除的儲存格。

NotebookDocumentContentOptions

筆記本內容選項定義了筆記本的哪些部分會被持久化。注意

例如,筆記本序列化程式可以選擇不儲存輸出,在這種情況下,當筆記本的輸出已變更時,編輯器不會將筆記本標記為 dirty

屬性

控制儲存格中繼資料屬性變更事件是否會觸發筆記本文件內容變更事件,以及是否將在差異編輯器中使用,預設為 false。如果內容提供者未將中繼資料屬性持久化到檔案文件中,則應將其設定為 true。

控制文件元資料屬性變更事件是否會觸發筆記本文件內容變更事件,以及是否將在差異編輯器中使用,預設為 false。如果內容提供者未將中繼資料屬性持久化到檔案文件中,則應將其設定為 true。

控制輸出變更事件是否會觸發筆記本文件內容變更事件,以及是否將在差異編輯器中使用,預設為 false。如果內容提供者未將輸出持久化到檔案文件中,則應將其設定為 true。

NotebookDocumentShowOptions

代表設定在 筆記本編輯器 中顯示 筆記本文件 行為的選項。

屬性

一個可選的旗標,當為 true 時,將阻止 筆記本編輯器 取得焦點。

一個可選的旗標,用於控制 筆記本編輯器 索引標籤是否顯示為預覽。預覽索引標籤將被替換和重複使用,直到設定為保持 - 無論是明確地還是透過編輯。預設行為取決於 workbench.editor.enablePreview 設定。

要在 筆記本編輯器 中為文件套用的可選選取範圍。

應在其中顯示 筆記本編輯器 的可選檢視欄。預設值為 active。不存在的欄位將根據需要建立,最多為 ViewColumn.Nine。使用 ViewColumn.Beside 在目前活動欄位的側邊開啟編輯器。

NotebookDocumentWillSaveEvent

筆記本文件 即將儲存時觸發的事件。

若要在文件儲存之前對其進行修改,請使用可解析為 工作區編輯 的 thenable 呼叫 waitUntil 函式。

屬性

即將儲存的 筆記本文件

觸發儲存的原因。

取消權杖。

方法

允許暫停事件迴圈並套用 工作區編輯。後續呼叫此函數的編輯將依序套用。如果筆記本文件發生並行修改,則編輯將被忽略

注意: 此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫

workspace.onWillSaveNotebookDocument(event => {
  // async, will *throw* an error
  setTimeout(() => event.waitUntil(promise));

  // sync, OK
  event.waitUntil(promise);
});
參數描述
thenable: Thenable<WorkspaceEdit>

一個可解析為 工作區編輯 的 thenable。

回傳描述
void

允許暫停事件迴圈,直到提供的 thenable 解析完成。

注意: 此函式只能在事件分派期間呼叫。

參數描述
thenable: Thenable<any>

延遲儲存的 thenable。

回傳描述
void

NotebookEdit

筆記本編輯代表應套用於筆記本內容的編輯。

靜態

用於建立編輯以刪除筆記本中儲存格的工具。

參數描述
range: NotebookRange

要刪除的儲存格範圍。

回傳描述
NotebookEdit

用於建立編輯以替換筆記本中儲存格的工具。

參數描述
index: number

要插入儲存格的索引。

newCells: NotebookCellData[]

新的筆記本儲存格。

回傳描述
NotebookEdit

用於建立編輯以替換筆記本中儲存格的工具。

參數描述
range: NotebookRange

要替換的儲存格範圍

newCells: NotebookCellData[]

新的筆記本儲存格。

回傳描述
NotebookEdit

用於建立編輯以更新儲存格中繼資料的工具。

參數描述
index: number

要更新的儲存格索引。

newCellMetadata:

儲存格的新中繼資料。

回傳描述
NotebookEdit

用於建立編輯以更新筆記本中繼資料的工具。

參數描述
newNotebookMetadata:

筆記本的新中繼資料。

回傳描述
NotebookEdit

建構函式

建立新的筆記本編輯。

參數描述
range: NotebookRange

筆記本範圍。

newCells: NotebookCellData[]

新的儲存格資料陣列。

回傳描述
NotebookEdit

屬性

儲存格的可選新中繼資料。

正在插入的新儲存格。可能為空。

筆記本的可選新中繼資料。

正在編輯的儲存格範圍。可能為空。

NotebookEditor

代表附加到 筆記本 的筆記本編輯器。 NotebookEditor 的其他屬性在建議的 API 中提供,稍後將最終確定。

屬性

與此筆記本編輯器關聯的 筆記本文件

此筆記本編輯器中的主要選取範圍。

此筆記本編輯器中的所有選取範圍。

主要選取範圍(或焦點範圍)為 selections[0]。當文件沒有儲存格時,主要選取範圍為空 { start: 0, end: 0 }

此編輯器顯示所在的欄。

編輯器中目前可見的範圍(垂直方向)。

方法

依據 revealType 指示滾動,以顯示給定的範圍。

參數描述
range: NotebookRange

一個範圍。

revealType?: NotebookEditorRevealType

用於顯示 range 的滾動策略。

回傳描述
void

NotebookEditorRevealType

代表附加到 筆記本 的筆記本編輯器。

列舉成員

將以盡可能少的滾動來顯示範圍。

範圍將始終在視窗中心顯示。

如果範圍在視窗外,則會在視窗中心顯示。否則,將以盡可能少的滾動來顯示。

範圍將始終在視窗頂端顯示。

NotebookEditorSelectionChangeEvent

代表描述 筆記本編輯器的選取範圍 變更的事件。

屬性

選取範圍已變更的 筆記本編輯器

NotebookEditorVisibleRangesChangeEvent

代表描述 筆記本編輯器的 visibleRanges 變更的事件。

屬性

可見範圍已變更的 筆記本編輯器

NotebookRange

筆記本範圍代表兩個儲存格索引的有序對。保證開始小於或等於結束。

建構函式

建立新的筆記本範圍。如果 start 不小於或等於 end,則會交換值。

參數描述
start: number

開始索引

end: number

結束索引。

回傳描述
NotebookRange

屬性

此範圍的獨佔結束索引(從零開始)。

如果 startend 相等,則為 true

此範圍的從零開始的開始索引。

方法

為此範圍衍生新的範圍。

參數描述
change: {end: number, start: number}

描述此範圍變更的物件。

回傳描述
NotebookRange

反映給定變更的範圍。如果變更未變更任何內容,將傳回 this 範圍。

NotebookRendererMessaging

渲染器訊息傳遞用於與單個渲染器通信。它從 notebooks.createRendererMessaging 返回。

事件

從渲染器收到訊息時觸發的事件。

方法

向一個或所有渲染器發送訊息。

參數描述
message: any

要發送的訊息

editor?: NotebookEditor

訊息的目標編輯器。如果未提供,則訊息將發送到所有渲染器。

回傳描述
Thenable<boolean>

一個布林值,指示訊息是否已成功傳遞到任何渲染器。

NotebookSerializer

筆記本序列化程式使編輯器能夠開啟筆記本檔案。

在其核心中,編輯器僅知道 筆記本資料結構,但不知道該資料結構如何寫入檔案,也不知道如何從檔案中讀取。筆記本序列化程式通過將位元組反序列化為筆記本資料並反之亦然來彌合此差距。

方法

將筆記本檔案的內容反序列化為筆記本資料結構。

參數描述
content: Uint8Array

筆記本檔案的內容。

token: CancellationToken

取消權杖。

回傳描述
NotebookData | Thenable<NotebookData>

筆記本資料或可解析為此的 thenable。

將筆記本資料序列化為檔案內容。

參數描述
data: NotebookData

筆記本資料結構。

token: CancellationToken

取消權杖。

回傳描述
Uint8Array | Thenable<Uint8Array>

位元組陣列或解析為此陣列的 thenable。

OnEnterRule

描述按下 Enter 鍵時要評估的規則。

屬性

要執行的動作。

僅當游標後的文字與此正則表達式匹配時,此規則才會執行。

僅當游標前的文字與此正則表達式匹配時,此規則才會執行。

僅當當前行上方的文字與此正則表達式匹配時,此規則才會執行。

OnTypeFormattingEditProvider

文件格式化提供器介面定義了擴充功能與格式化功能之間的合約。

方法

在輸入字元後提供格式化編輯。

給定的位置和字元應提示提供者要擴展到的範圍,例如在輸入 } 時找到匹配的 {

參數描述
document: TextDocument

在其中調用命令的文件。

position: Position

調用命令的位置。

ch: string

已輸入的字元。

options: FormattingOptions

控制格式化的選項。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<TextEdit[]>

一組文字編輯或解析為此物件的 thenable 物件。缺少結果可以用返回 undefinednull 或空陣列來表示。

OpenDialogOptions

用於配置檔案開啟對話方塊行為的選項。

  • 注意 1:在 Windows 和 Linux 上,檔案對話方塊不能同時作為檔案選擇器和資料夾選擇器,因此如果您在這些平台上將 canSelectFilescanSelectFolders 都設定為 true,則會顯示資料夾選擇器。
  • 注意 2:明確將 canSelectFilescanSelectFolders 設定為 false 是徒勞的,編輯器會靜默調整選項以選擇檔案。

屬性

允許選取檔案,預設為 true

允許選取資料夾,預設為 false

允許選取多個檔案或資料夾。

對話方塊開啟時顯示的資源。

對話方塊使用的檔案篩選器集。每個條目都是人類可讀的標籤,例如「TypeScript」,以及擴展名的陣列,例如

{
    'Images': ['png', 'jpg'],
    'TypeScript': ['ts', 'tsx']
}

開啟按鈕的人類可讀字串。

對話方塊標題。

此參數可能會被忽略,因為並非所有作業系統都在開啟對話方塊上顯示標題(例如,macOS)。

OutputChannel

輸出通道是唯讀文字資訊的容器。

要取得 OutputChannel 的實例,請使用 createOutputChannel

屬性

此輸出通道的人類可讀名稱。

方法

將給定值附加到通道。

參數描述
value: string

字串,虛值將不會列印。

回傳描述
void

將給定值和換行符附加到通道。

參數描述
value: string

字串,虛值將會列印。

回傳描述
void

移除頻道中的所有輸出。

參數描述
回傳描述
void

處置並釋放相關資源。

參數描述
回傳描述
void

從 UI 中隱藏此頻道。

參數描述
回傳描述
void

以給定的值取代頻道中的所有輸出。

參數描述
value: string

字串,虛值將不會列印。

回傳描述
void

在 UI 中顯示此頻道。

參數描述
preserveFocus?: boolean

true 時,頻道不會取得焦點。

回傳描述
void

在 UI 中顯示此頻道。

  • 已過時 - 使用只有一個參數的超載版本 (show(preserveFocus?: boolean): void)。
參數描述
column?: ViewColumn

此引數已過時,將被忽略。

preserveFocus?: boolean

true 時,頻道不會取得焦點。

回傳描述
void

OverviewRulerLane

代表在 概覽尺規 中呈現裝飾的不同位置。概覽尺規支援三個通道。

列舉成員

概覽尺規的左側通道。

概覽尺規的中心通道。

概覽尺規的右側通道。

概覽尺規的所有通道。

ParameterInformation

代表可調用簽名的參數。參數可以具有標籤和文件註解。

建構函式

建立新的參數資訊物件。

參數描述
label: string | [number, number]

標籤字串或在其包含的簽名標籤內的包含開始和排除結束偏移量。

documentation?: string | MarkdownString

文件字串。

回傳描述
ParameterInformation

屬性

此簽名的人類可讀文件註解。將顯示在 UI 中,但可以省略。

此簽名的標籤。

字串或在其包含的 簽名標籤 內的包含開始和排除結束偏移量。注意:字串類型的標籤必須是其包含的簽名資訊的 標籤 的子字串。

Position

代表行和字元位置,例如游標的位置。

Position 物件是不可變的。使用 withtranslate 方法從現有位置衍生新的位置。

建構函式

參數描述
line: number

從零開始的行值。

character: number

從零開始的字元值。

回傳描述
Position

屬性

從零開始的字元值。

從零開始的行值。

方法

將此位置與 other 進行比較。

參數描述
other: Position

一個位置。

回傳描述
number

如果此位置在給定位置之前,則數字小於零;如果此位置在給定位置之後,則數字大於零;如果此位置和給定位置相等,則為零。

檢查此位置是否在 other 之後。

參數描述
other: Position

一個位置。

回傳描述
boolean

如果位置在較大的行上,或在同一行上但字元較大,則為 true

檢查此位置是否在 other 之後或與之相等。

參數描述
other: Position

一個位置。

回傳描述
boolean

如果位置在較大的行上,或在同一行上但字元大於或等於,則為 true

檢查此位置是否在 other 之前。

參數描述
other: Position

一個位置。

回傳描述
boolean

如果位置在較小的行上,或在同一行上但字元較小,則為 true

檢查此位置是否在 other 之前或與之相等。

參數描述
other: Position

一個位置。

回傳描述
boolean

如果位置在較小的行上,或在同一行上但字元小於或等於,則為 true

檢查此位置是否與 other 相等。

參數描述
other: Position

一個位置。

回傳描述
boolean

若給定位置的行號和字元與此位置的行號和字元相等,則返回 true

建立相對於此位置的新位置。

參數描述
lineDelta?: number

行號值的增量值,預設值為 0

characterDelta?: number

字元值的增量值,預設值為 0

回傳描述
Position

一個位置,其行號和字元是目前行號和字元與對應增量的總和。

衍生相對於此位置的新位置。

參數描述
change: {characterDelta: number, lineDelta: number}

描述此位置增量的物件。

回傳描述
Position

一個反映給定增量的位置。如果變更未造成任何改變,將返回 this 位置。

建立由此位置衍生而來的新位置。

參數描述
line?: number

應用作行號值的值,預設值為現有值

character?: number

應用作字元值的值,預設值為現有值

回傳描述
Position

一個位置,其中的行號和字元被給定值取代。

由此位置衍生新位置。

參數描述
change: {character: number, line: number}

描述此位置變更的物件。

回傳描述
Position

一個反映給定變更的位置。如果變更未造成任何改變,將返回 this 位置。

PreparedToolInvocation

屬性

此屬性的存在表示應先請求使用者確認,然後再執行工具。對於任何具有副作用或可能具有危險性的工具,都應請求使用者確認。

在工具執行時顯示的自訂進度訊息。

ProcessExecution

任務的執行作為不帶 Shell 互動的外部程序發生。

建構函式

建立程序執行。

參數描述
process: string

要啟動的程序。

options?: ProcessExecutionOptions

啟動程序的選用選項。

回傳描述
ProcessExecution

建立程序執行。

參數描述
process: string

要啟動的程序。

args: string[]

要傳遞給程序的引數。

options?: ProcessExecutionOptions

啟動程序的選用選項。

回傳描述
ProcessExecution

屬性

傳遞給程序的引數。預設為空陣列。

程序執行時使用的程序選項。預設為 undefined。

要執行的程序。

ProcessExecutionOptions

程序執行的選項

屬性

已執行程式或 Shell 的目前工作目錄。如果省略,則會使用工具的目前工作區根目錄。

執行程式或 Shell 的其他環境。如果省略,則會使用父進程的環境。如果提供,則會與父進程的環境合併。

Progress<T>

定義報告進度更新的通用方式。

方法

報告進度更新。

參數描述
value: T

進度項目,例如訊息和/或已完成工作量的報告

回傳描述
void

ProgressLocation

編輯器中可以顯示進度資訊的位置。進度的視覺呈現方式取決於位置。

列舉成員

顯示原始檔控制檢視的進度,作為圖示的覆疊和檢視內的進度列(可見時)。兩者都不支援取消或離散進度,也不支援描述操作的標籤。

在編輯器的狀態列中顯示進度。兩者都不支援取消或離散進度。支援透過進度標籤中的 $(<name>) 語法呈現佈景主題圖示

將進度顯示為具有選用取消按鈕的通知。支援顯示無限和離散進度,但不支援呈現圖示。

ProgressOptions

描述應在何處以及如何顯示進度的值物件。

屬性

控制是否應顯示取消按鈕,以允許使用者取消長時間執行的操作。請注意,目前只有 ProgressLocation.Notification 支援顯示取消按鈕。

應顯示進度的位置。

將用於描述操作的人類可讀字串。

ProviderResult<T>

提供者結果代表提供者 (例如 HoverProvider) 可能傳回的值。首先,這是實際結果類型 T,例如 Hover,或解析為該類型 T 的 Thenable。此外,可以傳回 nullundefined - 直接傳回或從 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
  }
};

Pseudoterminal

定義終端機 pty 的介面,使擴充功能能夠控制終端機。

事件

在觸發時允許變更終端機名稱的事件。

在呼叫 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 });

在觸發時將發出訊號,表示 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);

在觸發時允許覆寫終端機尺寸的事件。請注意,設定後,覆寫的尺寸只會在它們低於終端機的實際尺寸時生效 (即,永遠不會有捲軸)。設定為 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 });

在觸發時將資料寫入終端機的事件。與將文字傳送至基礎子虛擬裝置 (子裝置) 的 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

實作以處理終端機中傳入的按鍵輸入,或擴充功能呼叫 Terminal.sendText 時的情況。data 包含序列化為其對應 VT 序列表示法的按鍵輸入/文字。

參數描述
data: string

傳入的資料。

範例:在終端機中回顯輸入。Enter 鍵 (\r) 的序列會轉譯為 CRLF 以換行,並將游標移動到行首。

const writeEmitter = new vscode.EventEmitter<string>();
const pty: vscode.Pseudoterminal = {
  onDidWrite: writeEmitter.event,
  open: () => {},
  close: () => {},
  handleInput: data => writeEmitter.fire(data === '\r' ? '\r\n' : data)
};
vscode.window.createTerminal({ name: 'Local echo', pty });
回傳描述
void

實作以處理 pty 開啟並準備好開始觸發事件時的情況。

參數描述
initialDimensions: TerminalDimensions

終端機的尺寸,如果終端機面板在呼叫此函式之前尚未開啟,則此尺寸將為 undefined。

回傳描述
void

實作以處理終端機面板中可容納的列數和欄數變更時的情況,例如當字型大小變更或面板大小調整時。終端機尺寸的初始狀態應視為 undefined,直到觸發此函式,因為終端機的大小在使用者介面中顯示之前是未知的。

當尺寸被 onDidOverrideDimensions 覆寫時,setDimensions 將繼續使用一般面板尺寸呼叫,允許擴充功能繼續回應尺寸變更。

參數描述
dimensions: TerminalDimensions

新的尺寸。

回傳描述
void

QuickDiffProvider

快速差異提供者提供資源修改狀態的原始狀態的 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 元件。是否接受使用者的輸入以及 UI 是否應透過呼叫 QuickInput.hide 隱藏,取決於擴充功能的決定。

當擴充功能不再需要此輸入 UI 時,應QuickInput.dispose 它,以允許釋放與其關聯的任何資源。

請參閱 QuickPickInputBox 以取得具體 UI。

事件

當此輸入 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

用於 QuickPickInputBox 中動作的按鈕。

屬性

按鈕的圖示。

選用工具提示。

QuickInputButtons

用於 QuickPickInputBox 的預先定義按鈕。

靜態

用於 QuickPickInputBox 的返回按鈕。

當需要導覽「返回」按鈕時,應使用此按鈕以保持一致性。它隨附預先定義的圖示、工具提示和位置。

QuickPick<T>

具體的 QuickInput,可讓使用者從類型 T 的項目清單中選取項目。項目可以透過篩選文字欄位進行篩選,並且有選項 canSelectMany 允許選取多個項目。

請注意,在許多情況下,更方便的 window.showQuickPick 更容易使用。window.createQuickPick 應在 window.showQuickPick 無法提供所需彈性時使用。

事件

發出訊號的事件,表示使用者已接受選取的項目。

發出訊號的事件,表示作用中項目已變更。

發出訊號的事件,表示選取的項目已變更。

發出訊號的事件,表示篩選文字的值已變更。

當此輸入 UI 隱藏時發出訊號的事件。

此 UI 可能必須隱藏的原因有很多,擴充功能將透過 QuickInput.onDidHide 收到通知。(範例包括:明確呼叫 QuickInput.hide、使用者按下 Esc、開啟其他輸入 UI 等)

發出訊號的事件,表示已觸發頂層按鈕 (儲存在 buttons 中的按鈕)。此事件不會針對 QuickPickItem 上的按鈕觸發。

發出訊號的事件,表示已觸發特定 QuickPickItem 中的按鈕。此事件不會針對標題列中的按鈕觸發。

屬性

作用中項目。擴充功能可以讀取和更新此項目。

UI 是否應顯示進度指示器。預設值為 false。

例如,在載入更多資料或驗證使用者輸入時,將此值變更為 true。

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 時,此屬性會被忽略

將在此特定項目上呈現的選用按鈕。按一下這些按鈕將觸發 QuickPickItemButtonEvent。按鈕僅在使用 createQuickPick() API 建立的快速選取畫面時才會呈現。使用 showQuickPick() API 時,不會呈現按鈕。

注意:當 kind 設定為 QuickPickItemKind.Separator 時,此屬性會被忽略

人類可讀的字串,在同一行中以較不明顯的方式呈現。支援透過 $(<name>) 語法呈現佈景主題圖示

注意:當 kind 設定為 QuickPickItemKind.Separator 時,此屬性會被忽略

人類可讀的字串,在單獨的行中以較不明顯的方式呈現。支援透過 $(<name>) 語法呈現佈景主題圖示

注意:當 kind 設定為 QuickPickItemKind.Separator 時,此屬性會被忽略

QuickPickItem 的圖示路徑或 ThemeIcon

QuickPickItem 的種類,它將決定此項目在快速選取畫面中的呈現方式。若未指定,預設值為 QuickPickItemKind.Default

人類可讀的字串,以顯著方式呈現。支援透過 $(<name>) 語法呈現佈景主題圖示

選用旗標,指示此項目是否最初已選取。這僅在使用 showQuickPick() API 時才會生效。若要使用 createQuickPick() API 執行相同的動作,只需將 QuickPick.selectedItems 設定為您想要最初選取的項目即可。(注意:這僅在選取器允許多重選取時才會生效。)

另請參閱 QuickPickOptions.canPickMany

注意:當 kind 設定為 QuickPickItemKind.Separator 時,此屬性會被忽略

QuickPickItemButtonEvent<T>

發出訊號的事件,表示已觸發特定 QuickPickItem 中的按鈕。此事件不會針對標題列中的按鈕觸發。

屬性

按一下的按鈕。

按鈕所屬的項目。

QuickPickItemKind

快速選取項目的種類。

列舉成員

QuickPickItem 的種類為 Separator 時,項目只是一個視覺分隔符號,不代表真實的項目。唯一適用的屬性是 labelQuickPickItem 上的所有其他屬性都將被忽略,且無效。

預設的 QuickPickItem.kind 是一個可以在快速選取畫面中選取的項目。

QuickPickOptions

用於設定快速選取 UI 行為的選項。

事件

一個選用性的函式,會在每次選取項目時調用。

參數描述
item: string | QuickPickItem
回傳描述
any

屬性

一個選用性的旗標,用於使選擇器接受多個選取項目。若為 true,結果會是選取項目的陣列。

設定為 true 可在焦點移至編輯器的另一個部分或另一個視窗時,保持選擇器開啟。此設定在 iPad 上會被忽略,且永遠為 false。

一個選用性的旗標,用於在篩選選取項目時包含描述。

一個選用性的旗標,用於在篩選選取項目時包含詳細資訊。

一個選用性的字串,顯示為輸入框中的預留位置,以引導使用者選取內容。

一個選用性的字串,表示快速選擇的標題。

Range

範圍 (Range) 表示兩個位置的有序配對。保證 start.isBeforeOrEqual(end)。

Range 物件是不可變的。使用 withintersectionunion 方法從現有範圍衍生新範圍。

建構函式

從兩個位置建立新範圍。如果 start 不在 end 之前或與 end 相等,則會交換值。

參數描述
start: Position

一個位置。

end: Position

一個位置。

回傳描述
Range

從數字座標建立新範圍。這相當於使用 new Range(new Position(startLine, startCharacter), new Position(endLine, endCharacter)) 的簡短寫法。

參數描述
startLine: number

從零開始的行值。

startCharacter: number

從零開始的字元值。

endLine: number

從零開始的行值。

endCharacter: number

從零開始的字元值。

回傳描述
Range

屬性

結束位置。它在 start 之後或與之相等。

如果 startend 相等,則為 true

如果 start.lineend.line 相等,則為 true

開始位置。它在 end 之前或與之相等。

方法

檢查此範圍是否包含位置或範圍。

參數描述
positionOrRange: Range | Position

位置或範圍。

回傳描述
boolean

如果位置或範圍在此範圍內或與此範圍相等,則為 true

range 與此範圍相交,並傳回新範圍;如果範圍沒有重疊,則傳回 undefined

參數描述
range: Range

一個範圍。

回傳描述
Range

較大開始位置和較小結束位置的範圍。當沒有重疊時,將傳回 undefined。

檢查 other 是否等於此範圍。

參數描述
other: Range

一個範圍。

回傳描述
boolean

當 start 和 end 與此範圍的 start 和 end 相等時,為 true

計算 other 與此範圍的聯集。

參數描述
other: Range

一個範圍。

回傳描述
Range

較小開始位置和較大結束位置的範圍。

從此範圍衍生新範圍。

參數描述
start?: Position

應作為 start 使用的位置。預設值為 目前的 start

end?: Position

應作為 end 使用的位置。預設值為 目前的 end

回傳描述
Range

從此範圍衍生出的範圍,具有給定的 start 和 end 位置。如果 start 和 end 沒有不同,將傳回 this 範圍。

從此範圍衍生新範圍。

參數描述
change: {end: Position, start: Position}

描述此範圍變更的物件。

回傳描述
Range

反映給定變更的範圍。如果變更未變更任何內容,將傳回 this 範圍。

ReferenceContext

值物件,在請求參考時包含其他資訊。

屬性

包含目前符號的宣告。

ReferenceProvider

參考提供者介面定義了擴充功能與 尋找參考 功能之間的契約。

方法

為給定的位置和文件提供一組專案範圍的參考。

參數描述
document: TextDocument

在其中調用命令的文件。

position: Position

調用命令的位置。

context: ReferenceContext

關於參考請求的其他資訊。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<Location[]>

位置陣列或可解析為此陣列的 Thenable。缺乏結果可以透過傳回 undefinednull 或空陣列來表示。

RelativePattern

相對模式是一種輔助工具,用於建構相對於基礎檔案路徑比對的 glob 模式。基礎路徑可以是字串或 uri 的絕對檔案路徑,也可以是 工作區資料夾,這是建立相對模式的慣用方式。

建構函式

建立具有基礎檔案路徑和要比對模式的新相對模式物件。此模式將在相對於基礎的檔案路徑上比對。

範例

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 模式,例如 *.{ts,js},將在相對於基礎的路徑上比對。

回傳描述
RelativePattern

屬性

此模式將相對於其比對的基礎檔案路徑。

這與 RelativePattern.baseUrifsPath 值相符。

注意: 更新此值將更新 RelativePattern.baseUri 以成為具有 file 結構描述的 uri。

此模式將相對於其比對的基礎檔案路徑。檔案路徑必須是絕對路徑,不應有任何尾隨路徑分隔符號,且不包含任何相對區段 (...)。

檔案 glob 模式,例如 *.{ts,js},將在相對於基礎路徑的檔案路徑上比對。

範例:給定基礎為 /home/work/folder 和檔案路徑為 /home/work/folder/index.js,檔案 glob 模式將在 index.js 上比對。

RenameProvider

重新命名提供者介面定義了擴充功能與 重新命名 功能之間的契約。

方法

用於在執行重新命名之前解析和驗證位置的選用性函式。結果可以是範圍,或範圍和預留位置文字。預留位置文字應為要重新命名之符號的識別碼 - 如果省略,則會使用傳回範圍中的文字。

注意: 當提供的位置不允許重新命名時,此函式應擲回錯誤或傳回已拒絕的 Thenable。

參數描述
document: TextDocument

將在其中調用重新命名的文件。

position: Position

將在其中調用重新命名的位置。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<Range | {placeholder: string, range: Range}>

要重新命名的識別碼的範圍或範圍和預留位置文字。缺乏結果可以透過傳回 undefinednull 來表示。

提供一個編輯,描述必須對一個或多個資源進行的變更,才能將符號重新命名為不同的名稱。

參數描述
document: TextDocument

在其中調用命令的文件。

position: Position

調用命令的位置。

newName: string

符號的新名稱。如果給定的名稱無效,提供者必須傳回已拒絕的 Promise。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<WorkspaceEdit>

工作區編輯或可解析為此編輯的 Thenable。缺乏結果可以透過傳回 undefinednull 來表示。

RunOptions

任務的執行選項。

屬性

控制是否在重新執行時重新評估任務變數。

SaveDialogOptions

用於設定檔案儲存對話方塊行為的選項。

屬性

對話方塊開啟時顯示的資源。

對話方塊使用的檔案篩選器集。每個條目都是人類可讀的標籤,例如「TypeScript」,以及擴展名的陣列,例如

{
    'Images': ['png', 'jpg'],
    'TypeScript': ['ts', 'tsx']
}

儲存按鈕的人類可讀字串。

對話方塊標題。

此參數可能會被忽略,因為並非所有作業系統都會在儲存對話方塊上顯示標題 (例如 macOS)。

SecretStorage

代表用於機密 (或任何敏感資訊) 的儲存公用程式,這些機密將以加密方式儲存。機密儲存的實作在每個平台上都會有所不同,並且機密不會在機器之間同步。

事件

當儲存或刪除機密時觸發。

方法

從儲存體移除機密。

參數描述
key: string

儲存機密的金鑰。

回傳描述
Thenable<void>

擷取使用金鑰儲存的機密。如果沒有與該金鑰相符的密碼,則傳回 undefined。

參數描述
key: string

儲存機密的金鑰。

回傳描述
Thenable<string>

儲存的值或 undefined

在給定金鑰下儲存機密。

參數描述
key: string

儲存機密的金鑰。

value: string

機密。

回傳描述
Thenable<void>

SecretStorageChangeEvent

當新增或移除機密時觸發的事件資料。

屬性

已變更之機密的金鑰。

SelectedCompletionInfo

描述目前選取的完成項目。

屬性

如果接受此完成項目,將會取代的範圍。

如果接受此完成項目,範圍將會取代為的文字。

Selection

表示編輯器中的文字選取範圍。

建構函式

從兩個位置建立選取範圍。

參數描述
anchor: Position

一個位置。

active: Position

一個位置。

回傳描述
Selection

從四個座標建立選取範圍。

參數描述
anchorLine: number

從零開始的行值。

anchorCharacter: number

從零開始的字元值。

activeLine: number

從零開始的行值。

activeCharacter: number

從零開始的字元值。

回傳描述
Selection

屬性

游標的位置。此位置可能在 anchor 之前或之後。

選取範圍開始的位置。此位置可能在 active 之前或之後。

結束位置。它在 start 之後或與之相等。

如果 startend 相等,則為 true

如果選取範圍的 anchorend 位置,則選取範圍會反轉。

如果 start.lineend.line 相等,則為 true

開始位置。它在 end 之前或與之相等。

方法

檢查此範圍是否包含位置或範圍。

參數描述
positionOrRange: Range | Position

位置或範圍。

回傳描述
boolean

如果位置或範圍在此範圍內或與此範圍相等,則為 true

range 與此範圍相交,並傳回新範圍;如果範圍沒有重疊,則傳回 undefined

參數描述
range: Range

一個範圍。

回傳描述
Range

較大開始位置和較小結束位置的範圍。當沒有重疊時,將傳回 undefined。

檢查 other 是否等於此範圍。

參數描述
other: Range

一個範圍。

回傳描述
boolean

當 start 和 end 與此範圍的 start 和 end 相等時,為 true

計算 other 與此範圍的聯集。

參數描述
other: Range

一個範圍。

回傳描述
Range

較小開始位置和較大結束位置的範圍。

從此範圍衍生新範圍。

參數描述
start?: Position

應作為 start 使用的位置。預設值為 目前的 start

end?: Position

應作為 end 使用的位置。預設值為 目前的 end

回傳描述
Range

從此範圍衍生出的範圍,具有給定的 start 和 end 位置。如果 start 和 end 沒有不同,將傳回 this 範圍。

從此範圍衍生新範圍。

參數描述
change: {end: Position, start: Position}

描述此範圍變更的物件。

回傳描述
Range

反映給定變更的範圍。如果變更未變更任何內容,將傳回 this 範圍。

SelectionRange

選取範圍 (Selection range) 代表選取階層的一部分。選取範圍可能具有包含它的父選取範圍。

建構函式

建立新的選取範圍。

參數描述
range: Range

選取範圍的範圍。

parent?: SelectionRange

選取範圍的父範圍。

回傳描述
SelectionRange

屬性

包含此範圍的父選取範圍。

此選取範圍的 Range

SelectionRangeProvider

選取範圍提供者介面定義了擴充功能與「展開和縮小選取範圍」功能之間的契約。

方法

為給定的位置提供選取範圍。

選取範圍應針對每個位置個別且獨立地計算。編輯器將合併和重複資料刪除範圍,但提供者必須傳回選取範圍的階層,以便範圍由其父範圍 包含

參數描述
document: TextDocument

在其中調用命令的文件。

positions: readonly Position[]

叫用命令的位置。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<SelectionRange[]>

選取範圍或可解析為此範圍的 Thenable。缺乏結果可以透過傳回 undefinednull 來表示。

SemanticTokens

表示語意符號 (semantic token),無論是在範圍內或是在整個文件中。

另請參閱

建構函式

建立新的語意符號。

參數描述
data: Uint32Array

符號資料。

resultId?: string

結果識別碼。

回傳描述
SemanticTokens

屬性

實際的符號資料。

另請參閱 provideDocumentSemanticTokens 以取得格式的說明。

語法符記的結果 ID。

這是將傳遞至 DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits 的 ID (如果已實作)。

SemanticTokensBuilder

語法符記建構器可以協助建立包含差異編碼語法符記的 SemanticTokens 實例。

建構函式

建立語法符記建構器。

參數描述
legend?: SemanticTokensLegend

語法符記圖例。

回傳描述
SemanticTokensBuilder

方法

完成並建立 SemanticTokens 實例。

參數描述
resultId?: string
回傳描述
SemanticTokens

新增另一個符記。

參數描述
line: number

符記起始行號 (絕對值)。

char: number

符記起始字元 (絕對值)。

length: number

符記長度 (以字元為單位)。

tokenType: number

編碼後的符記類型。

tokenModifiers?: number

編碼後的符記修飾詞。

回傳描述
void

新增另一個符記。僅在提供圖例時使用。

參數描述
range: Range

符記的範圍。必須是單行。

tokenType: string

符記類型。

tokenModifiers?: readonly string[]

符記修飾詞。

回傳描述
void

SemanticTokensEdit

表示語法符記的編輯。

另請參閱 provideDocumentSemanticTokensEdits,以取得格式的說明。

建構函式

建立語法符記編輯。

參數描述
start: number

起始偏移量

deleteCount: number

要移除的元素數量。

data?: Uint32Array

要插入的元素

回傳描述
SemanticTokensEdit

屬性

要插入的元素。

要移除的元素計數。

編輯的起始偏移量。

SemanticTokensEdits

表示語法符記的編輯集合。

另請參閱 provideDocumentSemanticTokensEdits,以取得格式的說明。

建構函式

建立新的語法符記編輯集合。

參數描述
edits: SemanticTokensEdit[]

語法符記編輯的陣列

resultId?: string

結果識別碼。

回傳描述
SemanticTokensEdits

屬性

對符記資料的編輯集合。所有編輯都參照初始資料狀態。

語法符記的結果 ID。

這是將傳遞至 DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits 的 ID (如果已實作)。

SemanticTokensLegend

語法符記圖例包含解譯整數編碼語法符記表示法所需的資訊。

建構函式

建立語法符記圖例。

參數描述
tokenTypes: string[]

符記類型的陣列。

tokenModifiers?: string[]

符記修飾詞的陣列。

回傳描述
SemanticTokensLegend

屬性

可能的符記修飾詞。

可能的符記類型。

ShellExecution

表示在 Shell 內發生的工作執行。

建構函式

使用完整命令列建立 Shell 執行。

參數描述
commandLine: string

要執行的命令列。

options?: ShellExecutionOptions

啟動 Shell 的選用選項。

回傳描述
ShellExecution

使用命令和引數建立 Shell 執行。對於實際執行,編輯器將從命令和引數建構命令列。這會受到解譯的影響,尤其是在引號標註方面。如果需要完全控制命令列,請使用透過完整命令列建立 ShellExecution 的建構函式。

參數描述
command: string | ShellQuotedString

要執行的命令。

args: Array<string | ShellQuotedString>

命令引數。

options?: ShellExecutionOptions

啟動 Shell 的選用選項。

回傳描述
ShellExecution

屬性

Shell 引數。如果使用完整命令列建立,則為 undefined

Shell 命令。如果使用命令和引數建立,則為 undefined

Shell 命令列。如果使用命令和引數建立,則為 undefined

在 Shell 中執行命令列時使用的 Shell 選項。預設為 undefined。

ShellExecutionOptions

Shell 執行的選項

屬性

已執行 Shell 的目前工作目錄。如果省略,則會使用工具目前的 workspace 根目錄。

已執行 Shell 的其他環境。如果省略,則會使用父進程的環境。如果提供,則會與父進程的環境合併。

Shell 可執行檔。

要傳遞至 Shell 可執行檔的引數,該可執行檔用於執行工作。大多數 Shell 需要特殊引數才能執行命令。例如,bash 需要 -c 引數才能執行命令,PowerShell 需要 -Command,而 cmd 則需要 /d/c

此 Shell 支援的 Shell 引號。

ShellQuotedString

一個字串,將根據使用的 Shell 進行引號標註。

屬性

要使用的引號標註樣式。

實際字串值。

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 引號標註選項。

屬性

用於進行跳脫字元的字元。如果提供字串,則僅會跳脫空格。如果提供 { escapeChar, charsToEscape } 常值,則會使用 escapeChar 跳脫 charsToEscape 中的所有字元。

用於強引號標註的字元。字串的長度必須為 1。

用於弱引號標註的字元。字串的長度必須為 1。

SignatureHelp

簽名說明表示可呼叫項目的簽名。可以有多個簽名,但只有一個作用中簽名和一個作用中參數。

建構函式

參數描述
回傳描述
SignatureHelp

屬性

作用中簽名的作用中參數。

作用中簽名。

一或多個簽名。

SignatureHelpContext

關於觸發 SignatureHelpProvider 的情境的其他資訊。

屬性

目前作用中的 SignatureHelp

activeSignatureHelpactiveSignature 欄位會根據使用者在可用簽名之間使用方向鍵瀏覽而更新。

如果簽名說明在觸發時已顯示,則為 true

當簽名說明已處於作用中狀態時,就會發生重新觸發,並且可能是由動作 (例如輸入觸發字元、游標移動或文件內容變更) 所造成。

造成觸發簽名說明的字元。

當簽名說明不是由輸入觸發時 (例如手動調用簽名說明或移動游標時),則為 undefined

造成觸發簽名說明的動作。

SignatureHelpProvider

簽名說明提供者介面定義擴充功能與 參數提示 功能之間的合約。

方法

針對指定位置和文件中的簽名提供說明。

參數描述
document: TextDocument

在其中調用命令的文件。

position: Position

調用命令的位置。

token: CancellationToken

取消權杖。

context: SignatureHelpContext

關於簽名說明觸發方式的資訊。

回傳描述
ProviderResult<SignatureHelp>

簽名說明或可解析為此類說明的 thenable。結果的缺乏可以透過傳回 undefinednull 來表示。

SignatureHelpProviderMetadata

關於已註冊 SignatureHelpProvider 的 Metadata。

屬性

重新觸發簽名說明的字元清單。

這些觸發字元僅在簽名說明已顯示時處於作用中狀態。所有觸發字元也都會計為重新觸發字元。

觸發簽名說明的字元清單。

SignatureHelpTriggerKind

觸發 SignatureHelpProvider 的方式。

列舉成員

簽名說明是由使用者手動或透過命令調用。

簽名說明是由觸發字元觸發。

簽名說明是由游標移動或文件內容變更觸發。

SignatureInformation

表示可呼叫項目的簽名。簽名可以有標籤 (例如函式名稱)、文件註解和一組參數。

建構函式

建立新的簽名資訊物件。

參數描述
label: string

標籤字串。

documentation?: string | MarkdownString

文件字串。

回傳描述
SignatureInformation

屬性

作用中參數的索引。

如果提供,則會以此來取代 SignatureHelp.activeParameter

此簽名的人類可讀文件註解。將顯示在 UI 中,但可以省略。

此簽名的標籤。將會顯示在 UI 中。

此簽名的參數。

SnippetString

程式碼片段字串是一個範本,允許在插入時插入文字並控制編輯器游標。

程式碼片段可以使用 $1$2${3:foo} 定義跳 Tab 停駐點和預留位置。$0 定義最終跳 Tab 停駐點,預設為程式碼片段的結尾。變數使用 $name${name:default value} 定義。另請參閱完整的程式碼片段語法

建構函式

建立新的程式碼片段字串。

參數描述
value?: string

程式碼片段字串。

回傳描述
SnippetString

屬性

程式碼片段字串。

方法

建構器函式,將選項 (${1|a,b,c|}) 附加到此程式碼片段字串的 value

參數描述
values: readonly string[]

選項的值 - 字串陣列

number?: number

此 Tab 停駐點的編號,預設為從 1 開始自動遞增的值。

回傳描述
SnippetString

此程式碼片段字串。

建構器函式,將預留位置 (${1:value}) 附加到此程式碼片段字串的 value

參數描述
value: string | (snippet: SnippetString) => any

此預留位置的值 - 字串或可用於建立巢狀程式碼片段的函式。

number?: number

此 Tab 停駐點的編號,預設為從 1 開始自動遞增的值。

回傳描述
SnippetString

此程式碼片段字串。

建構器函式,將跳 Tab 停駐點 ($1$2 等) 附加到此程式碼片段字串的 value

參數描述
number?: number

此 Tab 停駐點的編號,預設為從 1 開始自動遞增的值。

回傳描述
SnippetString

此程式碼片段字串。

建構器函式,將指定的字串附加到此程式碼片段字串的 value

參數描述
string: string

要「照原樣」附加的值。字串將會被跳脫。

回傳描述
SnippetString

此程式碼片段字串。

建構器函式,將變數 (${VAR}) 附加到此程式碼片段字串的 value

參數描述
name: string

變數的名稱 - 不包含 $

defaultValue: string | (snippet: SnippetString) => any

當變數名稱無法解析時使用的預設值 - 字串或可用於建立巢狀程式碼片段的函式。

回傳描述
SnippetString

此程式碼片段字串。

SnippetTextEdit

程式碼片段編輯代表由編輯器執行的互動式編輯。

請注意,程式碼片段編輯始終可以作為一般的 文字編輯 執行。當沒有相符的編輯器開啟,或是當 工作區編輯 包含多個檔案的程式碼片段編輯時,就會發生這種情況。在這種情況下,只有與作用中編輯器相符的程式碼片段編輯會以程式碼片段編輯方式執行,而其他的則會以一般的文字編輯方式執行。

靜態

建立插入程式碼片段編輯的工具。

參數描述
position: Position

位置,將變成空的範圍。

snippet: SnippetString

程式碼片段字串。

回傳描述
SnippetTextEdit

新的程式碼片段編輯物件。

建立取代程式碼片段編輯的工具。

參數描述
range: Range

一個範圍。

snippet: SnippetString

程式碼片段字串。

回傳描述
SnippetTextEdit

新的程式碼片段編輯物件。

建構函式

建立新的程式碼片段編輯。

參數描述
range: Range

一個範圍。

snippet: SnippetString

程式碼片段字串。

回傳描述
SnippetTextEdit

屬性

此編輯套用的範圍。

此編輯將執行的 程式碼片段

SourceBreakpoint

由原始碼位置指定的斷點。

建構函式

為原始碼位置建立新的斷點。

參數描述
location: Location
enabled?: boolean
condition?: string
hitCondition?: string
logMessage?: string
回傳描述
SourceBreakpoint

屬性

條件式斷點的選用運算式。

是否啟用斷點。

控制忽略多少次斷點命中的選用運算式。

斷點的唯一 ID。

此斷點的原始碼和行位置。

命中此斷點時要記錄的選用訊息。{} 內的嵌入運算式由偵錯配接器內插。

SourceControl

原始碼控制能夠向編輯器提供 資源狀態,並以多種與原始碼控制相關的方式與編輯器互動。

屬性

選用的接受輸入命令。

當使用者接受原始碼控制輸入中的值時,將會叫用此命令。

選用的提交範本字串。

原始碼控制檢視區會在適當時機以此值填入原始碼控制輸入。

此原始碼控制的 資源狀態 在 UI 中可見的計數。

如果未定義,此原始碼控制將

  • 將其 UI 中可見的計數顯示為零,並且
  • 將其 資源狀態 的計數貢獻給所有原始碼控制在 UI 中可見的彙總計數

此原始碼控制的 ID。

此原始碼控制的 輸入框

此原始碼控制的人類可讀標籤。

選用的 快速差異提供者

此原始碼控制根目錄的 (選用) Uri。

選用的狀態列命令。

這些命令將顯示在編輯器的狀態列中。

方法

建立新的 資源群組

參數描述
id: string
label: string
回傳描述
SourceControlResourceGroup

處置此原始碼控制。

參數描述
回傳描述
void

SourceControlInputBox

代表原始碼控制檢視區中的輸入框。

屬性

控制是否啟用輸入框 (預設為 true)。

要在輸入框中顯示為預留位置字串,以引導使用者。

輸入框內容的設定器和 getter。

控制輸入框是否可見 (預設為 true)。

SourceControlResourceDecorations

原始碼控制資源狀態 的裝飾。可以針對淺色和深色主題獨立指定。

屬性

深色主題裝飾。

在 UI 中是否應淡化 原始碼控制資源狀態

特定 原始碼控制資源狀態 的圖示路徑。

淺色主題裝飾。

在 UI 中是否應加上刪除線 原始碼控制資源狀態

特定 原始碼控制資源狀態 的標題。

SourceControlResourceGroup

原始碼控制資源群組是 原始碼控制資源狀態 的集合。

屬性

當此原始碼控制資源群組未包含 原始碼控制資源狀態 時是否隱藏。

此原始碼控制資源群組的 ID。

此原始碼控制資源群組的標籤。

此群組的 原始碼控制資源狀態 集合。

方法

處置此原始碼控制資源群組。

參數描述
回傳描述
void

SourceControlResourceState

原始碼控制資源狀態代表特定 原始碼控制群組 內基礎工作區資源的狀態。

屬性

當資源狀態在原始碼控制檢視區中開啟時,應執行的 命令

資源狀態的內容值。這可用於貢獻資源特定的動作。例如,如果資源的內容值為 diffable。當使用 menus 擴充點將動作貢獻給 scm/resourceState/context 時,您可以為 when 運算式中的金鑰 scmResourceState 指定內容值,例如 scmResourceState == diffable

"contributes": {
  "menus": {
    "scm/resourceState/context": [
      {
        "command": "extension.diff",
        "when": "scmResourceState == diffable"
      }
    ]
  }
}

這將僅針對 contextValuediffable 的資源顯示動作 extension.diff

此原始碼控制資源狀態的 裝飾

工作區內基礎資源的 Uri

SourceControlResourceThemableDecorations

原始碼控制資源狀態 的主題感知裝飾。

屬性

特定 原始碼控制資源狀態 的圖示路徑。

StatementCoverage

包含單個陳述式或行的涵蓋率資訊。

建構函式

參數描述
executed: number | boolean

此陳述式執行的次數,或指出是否已執行的布林值 (如果確切計數未知)。如果為零或 false,則陳述式將標記為未涵蓋。

location: Range | Position

陳述式位置。

branches?: BranchCoverage[]

來自此行分支的涵蓋率。如果不是條件式,則應省略。

回傳描述
StatementCoverage

屬性

來自此行或陳述式分支的涵蓋率。如果不是條件式,則這將為空。

此陳述式執行的次數,或指出是否已執行的布林值 (如果確切計數未知)。如果為零或 false,則陳述式將標記為未涵蓋。

陳述式位置。

StatusBarAlignment

代表狀態列項目的對齊方式。

列舉成員

對齊左側。

對齊右側。

StatusBarItem

狀態列項目是一種狀態列貢獻,可以顯示文字和圖示,並在按一下時執行命令。

屬性

當螢幕閱讀器與此狀態列項目互動時使用的協助工具資訊

此項目的對齊方式。

此項目的背景顏色。

請注意:僅支援以下顏色

  • new ThemeColor('statusBarItem.errorBackground')
  • new ThemeColor('statusBarItem.warningBackground')

未來可能會支援更多背景顏色。

請注意:當設定背景顏色時,狀態列可能會覆寫 color 選擇,以確保項目在所有主題中都可讀。

此項目的前景顏色。

按一下時要執行的命令或命令識別碼。

命令必須是 已知的

請注意,如果這是一個 Command 物件,則編輯器僅使用 commandarguments

此項目的識別碼。

請注意:如果 window.createStatusBarItem 方法未提供識別碼,則識別碼將與 擴充功能識別碼 相符。

項目的名稱,例如「Python 語言指示器」、「Git 狀態」等。請盡量縮短名稱長度,但仍要具有足夠的描述性,讓使用者可以理解狀態列項目是關於什麼。

此項目的優先順序。值越高表示項目應更靠左顯示。

要為條目顯示的文本。 您可以通過利用以下語法在文本中嵌入圖示

我的文本 $(icon-name) 包含圖示,例如 $(icon-name) 這個。

其中圖示名稱取自 ThemeIcon 圖示集,例如 light-bulbthumbsupzap 等。

當您將滑鼠游標停留在項目上方時的工具提示文字。

方法

處置並釋放相關資源。呼叫 hide

參數描述
回傳描述
void

隱藏狀態列中的項目。

參數描述
回傳描述
void

在狀態列中顯示項目。

參數描述
回傳描述
void

SymbolInformation

代表程式設計建構 (例如變數、類別、介面等) 的相關資訊。

建構函式

建立新的符號資訊物件。

參數描述
name: string

符號的名稱。

kind: SymbolKind

符號的種類。

containerName: string

包含符號的符號名稱。

location: Location

符號的位置。

回傳描述
SymbolInformation

建立新的符號資訊物件。

  • 已淘汰 - 請使用採用 Location 物件的建構函式。
參數描述
name: string

符號的名稱。

kind: SymbolKind

符號的種類。

range: Range

符號位置的範圍。

uri?: Uri

符號位置的資源,預設為目前的文件。

containerName?: string

包含符號的符號名稱。

回傳描述
SymbolInformation

屬性

包含此符號的符號名稱。

此符號的種類。

此符號的位置。

此符號的名稱。

此符號的標籤。

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

代表 索引標籤群組 內的索引標籤。索引標籤僅是編輯器區域內的圖形表示法。後端編輯器並非保證。

屬性

索引標籤所屬的群組。

定義索引標籤的結構,例如文字、筆記本、自訂等等。資源和其他有用的屬性都在索引標籤種類上定義。

索引標籤目前是否為活動狀態。這取決於是否為群組中選定的索引標籤。

索引標籤上是否顯示已修改指示符。

索引標籤是否已釘選 (是否顯示釘選圖示)。

索引標籤是否處於預覽模式。

索引標籤上顯示的文字。

TabChangeEvent

描述索引標籤變更的事件。

屬性

已變更的索引標籤,例如已變更其 active 狀態。

已關閉的索引標籤。

已開啟的索引標籤。

TabGroup

代表索引標籤群組。索引標籤群組本身由多個索引標籤組成。

屬性

群組中活動的 索引標籤。這是目前正在呈現其內容的索引標籤。

注意:每個群組可以有一個活動索引標籤,但只能有一個活動群組

群組目前是否為活動狀態。

注意:一次只能有一個索引標籤群組處於活動狀態,但多個索引標籤群組可以具有活動索引標籤

另請參閱 Tab.isActive

群組中包含的索引標籤清單。如果群組沒有開啟任何索引標籤,則此清單可能為空。

群組的檢視欄。

TabGroupChangeEvent

描述索引標籤群組變更的事件。

屬性

已變更的索引標籤群組,例如已變更其 active 狀態。

已關閉的索引標籤群組。

已開啟的索引標籤群組。

TabGroups

代表主要編輯器區域,該區域由包含索引標籤的多個群組組成。

事件

索引標籤群組變更時觸發的事件

索引標籤變更時觸發的事件

屬性

目前活動的群組。

群組容器內的所有群組。

方法

關閉索引標籤。這會使索引標籤物件失效,且索引標籤不應再用於進一步的動作。注意:如果索引標籤已修改,將顯示確認對話方塊,使用者可以取消。如果取消,索引標籤仍然有效。

參數描述
tab: Tab | readonly Tab[]

要關閉的索引標籤。

preserveFocus?: boolean

true 時,焦點將保持在目前的位置。如果為 false,則會跳到下一個索引標籤。

回傳描述
Thenable<boolean>

當所有索引標籤都已關閉時,Promise 會解析為 true

關閉索引標籤群組。這會使索引標籤群組物件失效,且索引標籤群組不應再用於進一步的動作。

參數描述
tabGroup: TabGroup | readonly TabGroup[]

要關閉的索引標籤群組。

preserveFocus?: boolean

true 時,焦點將保持在目前的位置。

回傳描述
Thenable<boolean>

當所有索引標籤群組都已關閉時,Promise 會解析為 true

TabInputCustom

索引標籤代表自訂編輯器。

建構函式

建構自訂編輯器索引標籤輸入。

參數描述
uri: Uri

索引標籤的 URI。

viewType: string

自訂編輯器的檢視類型。

回傳描述
TabInputCustom

屬性

索引標籤代表的 URI。

自訂編輯器的類型。

TabInputNotebook

索引標籤代表筆記本。

建構函式

為筆記本建構新的索引標籤輸入。

參數描述
uri: Uri

筆記本的 URI。

notebookType: string

筆記本的類型。對應至 NotebookDocuments 的 notebookType

回傳描述
TabInputNotebook

屬性

筆記本的類型。對應至 NotebookDocuments 的 notebookType

索引標籤代表的 URI。

TabInputNotebookDiff

索引標籤代表差異配置中的兩個筆記本。

建構函式

建構筆記本差異索引標籤輸入。

參數描述
original: Uri

原始未修改筆記本的 URI。

modified: Uri

已修改筆記本的 URI。

notebookType: string

筆記本的類型。對應至 NotebookDocuments 的 notebookType

回傳描述
TabInputNotebookDiff

屬性

已修改筆記本的 URI。

筆記本的類型。對應至 NotebookDocuments 的 notebookType

原始筆記本的 URI。

TabInputTerminal

索引標籤代表編輯器區域中的終端機。

建構函式

建構終端機索引標籤輸入。

參數描述
回傳描述
TabInputTerminal

TabInputText

索引標籤代表單一基於文字的資源。

建構函式

使用給定的 URI 建構文字索引標籤輸入。

參數描述
uri: Uri

索引標籤的 URI。

回傳描述
TabInputText

屬性

索引標籤代表的 URI。

TabInputTextDiff

索引標籤代表呈現為差異的兩個基於文字的資源。

建構函式

使用給定的 URI 建構新的文字差異索引標籤輸入。

參數描述
original: Uri

原始文字資源的 URI。

modified: Uri

已修改文字資源的 URI。

回傳描述
TabInputTextDiff

屬性

已修改文字資源的 URI。

原始文字資源的 URI。

TabInputWebview

索引標籤代表 Webview。

建構函式

使用給定的檢視類型建構 Webview 索引標籤輸入。

參數描述
viewType: string

Webview 的類型。對應至 WebviewPanel 的 viewType

回傳描述
TabInputWebview

屬性

Webview 的類型。對應至 WebviewPanel 的 viewType

Task

要執行的工作

建構函式

建立新的工作。

參數描述
taskDefinition: TaskDefinition

工作定義,如 taskDefinitions 擴充點中所定義。

scope: WorkspaceFolder | Global | Workspace

指定工作的範圍。它可以是全域工作、工作區工作,或是特定工作區資料夾的工作。目前不支援全域工作。

name: string

工作的名稱。會顯示在使用者介面中。

source: string

工作的來源 (例如 'gulp'、'npm' 等)。會顯示在使用者介面中。

execution?: ProcessExecution | ShellExecution | CustomExecution

程序或 Shell 執行。

problemMatchers?: string | string[]

要使用的問題比對器名稱,例如 '$tsc' 或 '$eslint'。問題比對器可以由擴充功能使用 problemMatchers 擴充點貢獻。

回傳描述
Task

建立新的工作。

  • 已過時 - 使用允許指定工作範圍的新建構函式。
參數描述
taskDefinition: TaskDefinition

工作定義,如 taskDefinitions 擴充點中所定義。

name: string

工作的名稱。會顯示在使用者介面中。

source: string

工作的來源 (例如 'gulp'、'npm' 等)。會顯示在使用者介面中。

execution?: ProcessExecution | ShellExecution

程序或 Shell 執行。

problemMatchers?: string | string[]

要使用的問題比對器名稱,例如 '$tsc' 或 '$eslint'。問題比對器可以由擴充功能使用 problemMatchers 擴充點貢獻。

回傳描述
Task

屬性

工作的定義。

人類可讀的字串,在顯示工作名稱的位置,會在不同的行上以較不明顯的方式呈現。支援透過 $(<name>) 語法呈現主題圖示

工作的執行引擎

此工作所屬的工作群組。請參閱 TaskGroup 以取得一組預先定義的可用群組。預設為未定義,表示工作不屬於任何特殊群組。

工作是否為背景工作。

工作的名稱

呈現選項。預設為空常值。

附加到工作的問題比對器。預設為空陣列。

工作的執行選項

工作的範圍。

描述此 Shell 工作來源的人類可讀字串,例如 'gulp' 或 'npm'。支援透過 $(<name>) 語法呈現主題圖示

TaskDefinition

定義系統中工作種類的結構。該值必須可 JSON 字串化。

屬性

工作定義,描述由擴充功能提供的工作。通常,工作提供者會定義更多屬性來識別工作。它們需要在擴充功能的 package.json 中,在 'taskDefinitions' 擴充點下定義。例如,npm 工作定義看起來像這樣

interface NpmTaskDefinition extends TaskDefinition {
  script: string;
}

請注意,以 '$' 開頭的類型識別碼保留供內部使用,不應由擴充功能使用。

TaskEndEvent

表示已執行工作結束的事件。

此介面不打算實作。

屬性

代表已完成工作的任務項目。

TaskExecution

代表已執行 Task 的物件。它可用於終止工作。

此介面不打算實作。

屬性

已啟動的工作。

方法

終止工作執行。

參數描述
回傳描述
void

TaskFilter

工作篩選器按其版本和類型表示工作

屬性

要傳回的工作類型;

tasks.json 檔案中使用的工作版本。字串支援 package.json semver 標記法。

TaskGroup

工作的群組。編輯器預設支援 'Clean'、'Build'、'RebuildAll' 和 'Test' 群組。

靜態

建置工作群組;

清除工作群組;

重建所有工作群組;

測試所有工作群組;

建構函式

私有建構函式

參數描述
id: string

工作群組的識別碼。

label: string

工作群組的人類可讀名稱。

回傳描述
TaskGroup

屬性

工作群組的 ID。為 TaskGroup.Clean.id、TaskGroup.Build.id、TaskGroup.Rebuild.id 或 TaskGroup.Test.id 其中之一。

屬於此群組的工作是否為該群組的預設工作。此屬性無法透過 API 設定,而是由使用者的工作組態控制。

TaskPanelKind

控制工作通道在工作之間的使用方式

列舉成員

與其他工作共用面板。這是預設值。

使用專用面板來執行此工作。面板不與其他工作共用。

每次執行此工作時,都會建立一個新面板。

TaskPresentationOptions

控制工作在 UI 中的呈現方式。

屬性

控制在執行工作之前是否清除終端機。

控制在執行工作之後是否關閉終端機。

控制是否在使用者介面中回顯與工作相關聯的命令。

控制顯示工作輸出的面板是否取得焦點。

控制工作面板是否僅用於此工作 (專用)、在工作之間共用 (共用),或是在每次工作執行時建立新面板 (新增)。預設為 TaskInstanceKind.Shared

控制是否在使用者介面中顯示工作輸出。預設為 RevealKind.Always

控制是否顯示「終端機將由工作重複使用,按任意鍵關閉它」訊息。

TaskProcessEndEvent

表示透過工作觸發的程序執行結束的事件

屬性

程序已啟動的工作執行。

程序的結束代碼。當工作終止時,將為 undefined

TaskProcessStartEvent

表示透過工作觸發的程序執行開始的事件

屬性

程序已啟動的工作執行。

底層程序 ID。

TaskProvider<T>

工作提供者允許將工作新增至工作服務。工作提供者透過 tasks.registerTaskProvider 註冊。

方法

提供工作。

參數描述
token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T[]>

工作陣列

解析沒有設定 execution 的工作。工作通常是從 tasks.json 檔案中找到的資訊建立的。這類工作缺少如何執行的資訊,而工作提供者必須在 resolveTask 方法中填寫遺失的資訊。此方法不會針對從上述 provideTasks 方法傳回的工作呼叫,因為這些工作始終完全解析。 resolveTask 方法的有效預設實作是傳回 undefined

請注意,在填寫 task 的屬性時,您必須確保使用完全相同的 TaskDefinition,而不是建立新的 TaskDefinition。其他屬性可能會變更。

參數描述
task: T

要解析的工作。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T>

已解析的工作

TaskRevealKind

控制終端機可見性的行為。

列舉成員

如果執行工作,則始終將終端機帶到最前面。

僅在偵測到執行工作時發生問題時 (例如,工作由於某些原因無法啟動),才將終端機帶到最前面。

執行工作時,終端機永遠不會顯示在最前面。

TaskScope

工作的範圍。

列舉成員

工作是全域工作。目前不支援全域工作。

工作是工作區工作

TaskStartEvent

表示工作執行開始的事件。

此介面不打算實作。

屬性

代表已啟動工作的任務項目。

TelemetryLogger

遙測記錄器,擴充功能可以使用它來記錄使用情況和錯誤遙測。

記錄器包裝了 sender,但它保證

  • 使用者停用或調整遙測的設定會受到尊重,並且
  • 潛在的敏感資料會被移除

它也啟用了「echo UI」,可以印出任何傳送的資料,並允許編輯器將未處理的錯誤轉發到各自的擴充功能。

若要取得 TelemetryLogger 的實例,請使用 createTelemetryLogger

事件

當使用量或錯誤遙測的啟用狀態變更時,會觸發 Event 事件。

屬性

指出是否为此記錄器啟用錯誤遙測功能。

指出是否为此記錄器啟用使用量遙測功能。

方法

處置此物件並釋放資源。

參數描述
回傳描述
void

記錄錯誤事件。

在完成清理、遙測設定檢查和資料混入呼叫後,會呼叫 TelemetrySender.sendEventData 以記錄事件。與 logUsage 的不同之處在於,如果遙測設定為「錯誤+」,則會記錄事件。自動支援回顯到擴充功能遙測輸出通道。

參數描述
eventName: string

要記錄的事件名稱

data?: Record<string, any>

要記錄的資料

回傳描述
void

記錄錯誤事件。

呼叫 TelemetrySender.sendErrorData。執行清理、遙測檢查和資料混入。自動支援回顯到擴充功能遙測輸出通道。也會自動記錄擴充功能主機程序中擲出的任何例外狀況。

參數描述
error: Error

包含已清除 PII 的堆疊追蹤的錯誤物件

data?: Record<string, any>

要與堆疊追蹤一起記錄的其他資料

回傳描述
void

記錄使用量事件。

在完成清理、遙測設定檢查和資料混入呼叫後,會呼叫 TelemetrySender.sendEventData 以記錄事件。自動支援回顯到擴充功能遙測輸出通道。

參數描述
eventName: string

要記錄的事件名稱

data?: Record<string, any>

要記錄的資料

回傳描述
void

TelemetryLoggerOptions

用於建立 TelemetryLogger 的選項

屬性

應注入到資料物件中的任何其他通用屬性。

是否要避免將內建的通用屬性 (例如 OS、擴充功能名稱等) 注入到資料物件中。如果未定義,則預設為 false

是否應將擴充功能主機上由您的擴充功能造成的未處理錯誤記錄到您的傳送器。如果未定義,則預設為 false

TelemetrySender

遙測傳送器是遙測記錄器和某些遙測服務之間的合約。請注意,擴充功能「不得」直接呼叫其傳送器的方法,因為記錄器會提供額外的保護和清理。

const sender: vscode.TelemetrySender = {...};
const logger = vscode.env.createTelemetryLogger(sender);

// GOOD - uses the logger
logger.logUsage('myEvent', { myData: 'myValue' });

// BAD - uses the sender directly: no data cleansing, ignores user settings, no echoing to the telemetry output channel etc
sender.logEvent('myEvent', { myData: 'myValue' });

方法

選用的 flush 函式,當 TelemetryLogger 正在處置時,此函式會讓此傳送器有機會傳送任何剩餘的事件

參數描述
回傳描述
void | Thenable<void>

用於傳送錯誤的函式。在 TelemetryLogger 內使用

參數描述
error: Error

正在記錄的錯誤

data?: Record<string, any>

要與例外狀況一起收集的任何其他資料

回傳描述
void

用於傳送不含堆疊追蹤之事件資料的函式。在 TelemetryLogger 內使用

參數描述
eventName: string

您要記錄的事件名稱

data?: Record<string, any>

正在記錄的可序列化鍵值組

回傳描述
void

TelemetryTrustedValue<T>

一種特殊的值包裝函式,表示值可以安全地不進行清理。當您可以保證值中不包含任何可識別的資訊,且清理不當地編輯了該資訊時,可以使用此包裝函式。

建構函式

建立新的遙測信任值。

參數描述
value: T

要信任的值

回傳描述
TelemetryTrustedValue<T>

屬性

信任不包含 PII 的值。

Terminal

整合式終端機內的個別終端機執行個體。

屬性

用於初始化終端機的物件,例如,這對於偵測終端機不是由此擴充功能啟動時的 Shell 類型,或偵測 Shell 在哪個資料夾中啟動非常有用。

終端機的結束狀態,在終端機處於活動狀態時,此狀態將為未定義。

範例: 當終端機以非零結束代碼結束時,顯示包含結束代碼的通知。

window.onDidCloseTerminal(t => {
  if (t.exitStatus && t.exitStatus.code) {
    vscode.window.showInformationMessage(`Exit code: ${t.exitStatus.code}`);
  }
});

終端機的名稱。

Shell 程序的程序 ID。

包含終端機的 Shell 整合 功能的物件。這在終端機建立後會立即為 undefined。聆聽 window.onDidChangeTerminalShellIntegration,以便在終端機啟用 Shell 整合時收到通知。

請注意,如果 Shell 整合永遠未啟用,則此物件可能會保持未定義。例如,命令提示字元不支援 Shell 整合,且使用者的 Shell 設定可能會與自動 Shell 整合啟用衝突。

Terminal 的目前狀態。

方法

處置並釋放相關資源。

參數描述
回傳描述
void

如果此終端機目前正在顯示,則隱藏終端機面板。

參數描述
回傳描述
void

將文字傳送到終端機。文字會寫入終端機基礎 pty 程序 (Shell) 的 stdin。

參數描述
text: string

要傳送的文字。

shouldExecute?: boolean

表示要傳送的文字應執行,而不是僅插入到終端機中。新增的字元為 \n\r\n,取決於平台。這預設為 true

回傳描述
void

顯示終端機面板,並在 UI 中顯示此終端機。

參數描述
preserveFocus?: boolean

true 時,終端機將不會取得焦點。

回傳描述
void

TerminalDimensions

表示終端機的尺寸。

屬性

終端機中的欄數。

終端機中的列數。

TerminalEditorLocationOptions

假設 TerminalLocation 為 editor,並允許指定 ViewColumnpreserveFocus 屬性

屬性

選用旗標,當 true 時,將停止 Terminal 取得焦點。

應在編輯器區域中顯示 terminal 的檢視欄。預設值為 active。不存在的欄將視需要建立,最多為 ViewColumn.Nine。使用 ViewColumn.Beside 可在目前使用中的編輯器側邊開啟編輯器。

TerminalExitReason

終端機結束原因種類。

列舉成員

不明原因。

視窗已關閉/重新載入。

Shell 程序已結束。

使用者已關閉終端機。

擴充功能已處置終端機。

TerminalExitStatus

表示終端機的結束方式。

屬性

終端機結束時的結束代碼,它可以具有下列值

  • 零:終端機程序或自訂執行成功。
  • 非零:終端機程序或自訂執行失敗。
  • undefined:使用者強制關閉終端機,或自訂執行結束時未提供結束代碼。

觸發終端機結束的原因。

終端機行上的連結。

建構函式

建立新的終端機連結。

參數描述
startIndex: number

TerminalLinkContext.line 上連結的開始索引。

length: number

TerminalLinkContext.line 上連結的長度。

tooltip?: string

當您將滑鼠懸停在此連結上時的工具提示文字。

如果提供了工具提示,它將顯示在一個字串中,其中包含有關如何觸發連結的說明,例如 {0} (ctrl + click)。具體的說明因作業系統、使用者設定和本地化而異。

回傳描述
TerminalLink

屬性

TerminalLinkContext.line 上連結的長度。

TerminalLinkContext.line 上連結的開始索引。

當您將滑鼠懸停在此連結上時的工具提示文字。

如果提供了工具提示,它將顯示在一個字串中,其中包含有關如何觸發連結的說明,例如 {0} (ctrl + click)。具體的說明因作業系統、使用者設定和本地化而異。

TerminalLinkContext

提供終端機中行的相關資訊,以便為其提供連結。

屬性

這是來自終端機中未換行行的文字。

連結所屬的終端機。

TerminalLinkProvider<T>

一種提供者,可啟用終端機內連結的偵測和處理。

方法

處理已啟用的終端機連結。

參數描述
link: T

要處理的連結。

回傳描述
ProviderResult<void>

為指定的內容提供終端機連結。請注意,即使先前的呼叫尚未解析,也可能會多次呼叫此方法,請確保不要共用全域物件 (例如,RegExp),這可能會在非同步使用可能重疊時產生問題。

參數描述
context: TerminalLinkContext

有關正在為其提供連結的資訊。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T[]>

指定行的終端機連結清單。

TerminalLocation

終端機的位置。

列舉成員

在終端機檢視中

在編輯器區域中

TerminalOptions

描述終端機應使用之選項的值物件。

屬性

終端機的圖示 ThemeColor。建議使用 terminal.ansi* 主題金鑰,以獲得跨主題的最佳對比度和一致性。

要用於終端機的目前工作目錄的路徑或 Uri。

包含將新增至編輯器程序的環境變數的物件。

啟用後,終端機將正常執行程序,但除非呼叫 Terminal.show,否則不會向使用者顯示。此功能的典型用法是當您需要執行可能需要互動的作業,但只想在需要互動時告知使用者。請注意,終端機仍會像平常一樣向所有擴充功能公開。下次開啟工作區時,不會還原隱藏的終端機。

終端機的圖示路徑或 ThemeIcon

選擇退出重新啟動和重新載入時的預設終端機持久性。這僅在啟用 terminal.integrated.enablePersistentSessions 時才會生效。

要在第一次啟動時寫入終端機的訊息,請注意,這不會傳送到程序,而是直接寫入終端機。這支援逸出序列,例如設定文字樣式。

人類可讀的字串,將用於在 UI 中表示終端機。

自訂 Shell 可執行檔的引數。字串只能在 Windows 上使用,允許以 命令列格式 指定 Shell 引數。

要用於終端機的自訂 Shell 可執行檔的路徑。

終端機程序環境是否應與 TerminalOptions.env 中提供的環境完全相同。當此值為 false (預設值) 時,環境將以視窗的環境為基礎,並套用已設定的平台設定,例如最上層的 terminal.integrated.env.windows。當此值為 true 時,必須提供完整的環境,因為不會從程序或任何設定繼承任何內容。

TerminalProfile

終端機設定檔定義終端機的啟動方式。

建構函式

建立新的終端機設定檔。

參數描述
options: TerminalOptions | ExtensionTerminalOptions

終端機將使用的啟動選項。

回傳描述
TerminalProfile

屬性

終端機將使用的啟動選項。

TerminalProfileProvider

透過 UI 或命令啟動時,為貢獻的終端機設定檔提供終端機設定檔。

方法

提供終端機設定檔。

參數描述
token: CancellationToken

表示不再需要結果的取消 Token。

回傳描述
ProviderResult<TerminalProfile>

終端機設定檔。

TerminalShellExecution

終端機中執行的命令。

屬性

已執行的命令列。此值的 confidence 取決於特定 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');
}

Shell 在執行此命令時回報的工作目錄。此 Uri 可能代表另一部電腦上的檔案 (例如,ssh 連線到另一部電腦)。這需要 Shell 整合支援工作目錄報告。

方法

建立寫入終端機的原始資料串流 (包括逸出序列)。這只會包含在第一次呼叫 read 後寫入的資料,亦即,您必須在透過 TerminalShellIntegration.executeCommandwindow.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

終端機中執行的命令列。

屬性

命令列值的信賴度,取決於值的取得方式。這取決於 Shell 整合指令碼的實作。

命令列值是否來自受信任的來源,因此可以安全地執行,而無需使用者額外確認,例如詢問「您是否要執行 (命令)?」的通知。只有在您要再次執行命令時,才可能需要此驗證。

只有在命令列是由 Shell 整合指令碼明確回報 (亦即,高信賴度) 且其使用 Nonce 進行驗證時,此值才會是 true

已執行的完整命令列,包括命令及其引數。

TerminalShellExecutionCommandLineConfidence

列舉成員

命令列值的信賴度很低。這表示值是使用 Shell 整合指令碼回報的標記,從終端機緩衝區讀取的。此外,還會符合下列其中一個條件

  • 命令從最左邊的欄開始,這很不尋常,或
  • 命令是多行的,由於行接續字元和右側提示,因此更難以準確偵測。
  • Shell 整合指令碼未回報命令列標記。

命令列值的信賴度為中等。這表示值是使用 Shell 整合指令碼回報的標記,從終端機緩衝區讀取的。命令是單行的,且不會從最左邊的欄開始 (這很不尋常)。

命令列值的信賴度很高。這表示值是從 Shell 整合指令碼明確傳送的,或是透過 TerminalShellIntegration.executeCommand API 執行的命令。

TerminalShellExecutionEndEvent

表示終端機中執行已結束的事件訊號。

屬性

終端 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');
    }
  }
});

Shell 整合物件。

Shell 整合已在其中啟用的終端。

TerminalShellExecutionStartEvent

表示終端中已開始執行的事件。

屬性

終端 Shell 執行已結束。

Shell 整合物件。

Shell 整合已在其中啟用的終端。

TerminalShellIntegration

Shell 整合終端擁有的功能。

屬性

終端的目前工作目錄。此 Uri 可能代表另一部機器上的檔案 (例如,ssh 連線到另一部機器)。這需要 Shell 整合支援工作目錄回報。

方法

執行命令,並在必要時傳送 ^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

執行命令,並在必要時傳送 ^C 以中斷任何正在執行的命令。

注意 這不保證能運作,因為必須啟用 Shell 整合。檢查 TerminalShellExecution.exitCode 是否遭到拒絕,以驗證是否成功。

範例

// Execute a command in a terminal immediately after being created
const myTerm = window.createTerminal();
window.onDidChangeTerminalShellIntegration(async ({ terminal, shellIntegration }) => {
  if (terminal === myTerm) {
    const command = shellIntegration.executeCommand({
      command: 'echo',
      args: ['Hello world']
    });
    const code = await command.exitCode;
    console.log(`Command exited with code ${code}`);
  }
}));
// Fallback to sendText if there is no shell integration within 3 seconds of launching
setTimeout(() => {
  if (!myTerm.shellIntegration) {
    myTerm.sendText('echo "Hello world"');
    // Without shell integration, we can't know when the command has finished or what the
    // exit code was.
  }
}, 3000);

範例

// Send command to terminal that has been alive for a while
const commandLine = 'echo "Hello world"';
if (term.shellIntegration) {
  const command = term.shellIntegration.executeCommand({
    command: 'echo',
    args: ['Hello world']
  });
  const code = await command.exitCode;
  console.log(`Command exited with code ${code}`);
} else {
  term.sendText(commandLine);
  // Without shell integration, we can't know when the command has finished or what the
  // exit code was.
}
參數描述
executable: string

要執行的命令。

args: string[]

用於啟動可執行檔的引數。引數將被逸出,以便在引數同時包含空格且不包含任何單引號、雙引號或反引號字元時,將其解譯為單一引數。

請注意,此逸出並非旨在作為安全措施,當將不受信任的資料傳遞到此 API 時請小心,因為像 $(...) 這樣的字串通常可以用於 Shell 中以執行字串中的程式碼。

回傳描述
TerminalShellExecution

TerminalShellIntegrationChangeEvent

表示終端的 Shell 整合已變更的事件。

屬性

Shell 整合物件。

Shell 整合已在其中啟用的終端。

TerminalSplitLocationOptions

使用父 Terminal 的位置作為終端的位置

屬性

要將此終端分割在其旁邊的父終端。無論父終端在面板中還是編輯器區域中,這都有效。

TerminalState

代表 Terminal 的狀態。

屬性

是否已與 Terminal 互動。互動表示終端已將資料傳送到程序,這取決於終端的模式。預設情況下,當按下按鍵或命令或擴充功能傳送文字時,會傳送輸入,但根據終端的模式,也可能在以下情況下發生

  • 指標按一下事件
  • 指標捲動事件
  • 指標移動事件
  • 終端焦點移入/移出

如需有關可以傳送資料的事件的詳細資訊,請參閱 https://invisible-island.net/xterm/ctlseqs/ctlseqs.html 上的「DEC 私人模式設定 (DECSET)」。

TestController

探索和執行測試的進入點。它包含 TestController.items,用於填入編輯器 UI,並與 執行設定檔關聯,以允許執行測試。

屬性

tests.createTestController 中傳遞的控制器 ID。這必須是全域唯一的。

「最上層」TestItem 執行個體的集合,這些執行個體反過來可以擁有自己的 子項目,以形成「測試樹狀結構」。

擴充功能控制何時新增測試。例如,擴充功能應在 workspace.onDidOpenTextDocument 觸發時新增檔案的測試,以便檔案中測試的裝飾可見。

但是,編輯器有時可能會使用 resolveHandler 明確要求子項目。請參閱該方法的說明文件以取得更多詳細資訊。

測試控制器的人性化可讀標籤。

如果存在此方法,則 UI 中會顯示重新整理按鈕,並且在按一下該按鈕時將會叫用此方法。呼叫時,擴充功能應掃描工作區以尋找任何新的、已變更或已移除的測試。

建議擴充功能嘗試即時更新測試,例如使用 FileSystemWatcher,並使用此方法作為後備方案。

參數描述
token: CancellationToken
回傳描述
void | Thenable<void>

當測試重新整理完成時解析的可 thenable 物件。

編輯器可以呼叫的擴充功能所提供函式,以要求測試項目的子項目,如果 TestItem.canResolveChildrentrue。呼叫時,項目應探索子項目,並在探索到子項目時呼叫 TestController.createTestItem

一般來說,擴充功能會管理測試項目的生命週期,但在某些情況下,編輯器可能會要求載入特定項目的子項目。例如,如果使用者在重新載入編輯器後要求重新執行測試,則編輯器可能需要呼叫此方法來解析先前執行的測試。

瀏覽器中的項目將自動標記為「忙碌中」,直到函式傳回或傳回的 thenable 物件解析為止。

參數描述
item: TestItem

正在要求子項目的未解析測試項目,或 undefined 以解析控制器的初始 項目

回傳描述
void | Thenable<void>

方法

建立用於執行測試的設定檔。擴充功能必須至少建立一個設定檔才能執行測試。

參數描述
label: string

此設定檔的人性化可讀標籤。

kind: TestRunProfileKind

設定此設定檔管理的執行類型。

runHandler: (request: TestRunRequest, token: CancellationToken) => void | Thenable<void>

用於啟動測試執行的函式。

isDefault?: boolean

這是否為其類型的預設動作。

tag?: TestTag

設定檔測試標籤。

supportsContinuousRun?: boolean

設定檔是否支援持續執行。

回傳描述
TestRunProfile

TestRunProfile 的執行個體,它會自動與此控制器關聯。

建立新的受管理 TestItem 執行個體。可以將其新增到現有項目的 TestItem.children 中,或新增到 TestController.items 中。

參數描述
id: string

TestItem 的識別碼。測試項目的 ID 在新增到的 TestItemCollection 中必須是唯一的。

label: string

測試項目的人性化可讀標籤。

uri?: Uri

此 TestItem 關聯的 URI。可能是檔案或目錄。

回傳描述
TestItem

建立 TestRun。當提出執行測試的要求時,應由 TestRunProfile 呼叫此方法,如果外部偵測到測試執行,也可以呼叫此方法。建立後,要求中包含的測試將移至佇列狀態。

使用相同 request 執行個體建立的所有執行都會分組在一起。如果例如在多個平台上執行單一測試套件,這會很有用。

參數描述
request: TestRunRequest

測試執行請求。只能修改 include 內的測試,並且會忽略其 exclude 中的測試。

name?: string

執行的易於理解的名稱。這可用於消除測試執行中多組結果的歧義。如果測試跨多個平台執行,這會很有用,例如。

persist?: boolean

執行建立的結果是否應保留在編輯器中。如果結果來自已在外部儲存的檔案 (例如涵蓋範圍資訊檔案),則可能為 false。

回傳描述
TestRun

TestRun 的執行個體。從叫用此方法的那一刻起,直到呼叫 TestRun.end 為止,它都會被視為「正在執行」。

取消註冊測試控制器,處置其相關測試和未保留的結果。

參數描述
回傳描述
void

將項目的結果標記為過時。當程式碼或組態變更且先前的結果不應再被視為相關時,通常會呼叫此方法。用於將結果標記為過時的相同邏輯可用於驅動持續測試執行

如果將項目傳遞給此方法,則項目的測試結果及其所有子項目都將標記為過時。如果未傳遞任何項目,則 TestController 擁有的所有測試都將標記為過時。

在此方法呼叫之前啟動的任何測試執行,包括可能仍在進行中的執行,都將標記為過時,並在編輯器 UI 中降低優先順序。

參數描述
items?: TestItem | readonly TestItem[]

要標記為過時的項目。如果未定義,則控制器的所有項目都將標記為過時。

回傳描述
void

TestCoverageCount

一個類別,其中包含有關涵蓋資源的資訊。可以提供檔案中行、分支和宣告的計數。

建構函式

參數描述
covered: number
total: number
回傳描述
TestCoverageCount

屬性

檔案中涵蓋的項目數。

檔案中涵蓋項目的總數。

TestItem

顯示在「測試總管」檢視中的項目。

TestItem 可以代表測試套件或測試本身,因為它們都具有類似的功能。

屬性

控制項目是否在測試總管檢視中顯示為「忙碌中」。這對於在探索子項目時顯示狀態很有用。

預設為 false

指出此測試項目是否可能具有透過解析探索到的子項目。

如果為 true,則此項目在測試總管檢視中顯示為可展開,並且展開項目將導致使用該項目叫用 TestController.resolveHandler

預設為 false

此測試項目的子項目。對於測試套件,這可能包含個別測試案例或巢狀套件。

顯示在標籤旁邊的選用描述。

載入測試時遇到的選用錯誤。

請注意,這不是測試結果,僅應用於表示測試探索中的錯誤,例如語法錯誤。

TestItem 的識別碼。這用於將文件中的測試結果和測試與工作區 (測試總管) 中的測試相關聯。對於 TestItem 的生命週期而言,這不能變更,並且在其父項目的直接子項目中必須是唯一的。

描述測試案例的顯示名稱。

此項目的父項目。它是自動設定的,對於 TestController.items 中的最上層項目,以及尚未包含在另一個項目的 子項目中的項目,則為未定義。

測試項目在其 uri 中的位置。

只有當 uri 指向檔案時,這才有意義。

在將此項目與其他項目進行比較時應使用的字串。當 falsy 時,會使用 label

與此測試項目相關聯的標籤。可以與 標籤 結合使用,或僅作為組織功能使用。

TestItem 關聯的 URI。可能是檔案或目錄。

TestItemCollection

測試項目的集合,位於 TestItem.childrenTestController.items 中。

屬性

取得集合中的項目數。

方法

將測試項目新增至子項目。如果已存在具有相同 ID 的項目,則會將其取代。

參數描述
item: TestItem

要新增的項目。

回傳描述
void

從集合中移除單一測試項目。

參數描述
itemId: string

要刪除的項目 ID。

回傳描述
void

逐一查看此集合中的每個項目。

參數描述
callback: (item: TestItem, collection: TestItemCollection) => unknown

要為每個項目執行的函式。

thisArg?: any

調用處理程式函數時使用的 this 上下文。

回傳描述
void

如果子項目中存在測試項目,則有效率地依 ID 取得測試項目。

參數描述
itemId: string

要取得的項目 ID。

回傳描述
TestItem

找到的項目,如果不存在則為未定義。

取代集合儲存的項目。

參數描述
items: readonly TestItem[]

要儲存的項目。

回傳描述
void

TestMessage

與測試狀態相關聯的訊息。可以連結到特定來源範圍 - 例如,對於判斷提示失敗很有用。

靜態

建立新的 TestMessage,它將在編輯器中顯示為差異。

參數描述
message: string | MarkdownString

要向使用者顯示的訊息。

expected: string

預期輸出。

actual: string

實際輸出。

回傳描述
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"
      }
    ]
  }
}

將使用包含以下內容的物件呼叫命令

預期測試輸出。如果與 actualOutput 一起提供,將會顯示差異檢視。

相關聯的檔案位置。

要顯示的人性化可讀訊息文字。

與訊息或失敗相關聯的堆疊追蹤。

TestMessageStackFrame

TestMessage.stackTrace 中找到的堆疊框架。

建構函式

參數描述
label: string

堆疊框架的名稱

uri?: Uri
position?: Position

堆疊框架在檔案中的位置

回傳描述
TestMessageStackFrame

屬性

堆疊框架的名稱,通常是方法或函數名稱。

堆疊框架在檔案中的位置。

此堆疊框架的位置。如果編輯器可以存取呼叫框架的位置,則應以 URI 形式提供。

TestRun

TestRun 代表正在進行中或已完成的測試執行,並提供方法來報告執行中個別測試的狀態。

事件

當編輯器不再對與測試執行相關聯的資料感興趣時觸發的事件。

屬性

測試執行是否會由編輯器跨重新載入而持續保存。

執行的易於理解的名稱。這可用於消除測試執行中多組結果的歧義。如果測試跨多個平台執行,這會很有用,例如。

當從 UI 取消測試執行時將觸發的取消 Token。

方法

為執行中的檔案新增覆蓋率。

參數描述
fileCoverage: FileCoverage
回傳描述
void

從測試執行器附加原始輸出。根據使用者的要求,輸出將顯示在終端機中。支援 ANSI 逸出序列,例如色彩和文字樣式。新行必須以 CRLF (\r\n) 而非 LF (\n) 給出。

參數描述
output: string

要附加的輸出文字。

location?: Location

指示輸出記錄在給定位置。

test?: TestItem

要與輸出相關聯的測試項目。

回傳描述
void

發出測試執行結束的訊號。執行中包含的任何狀態尚未更新的測試都將重設其狀態。

參數描述
回傳描述
void

表示測試已排入佇列以供稍後執行。

參數描述
test: TestItem

要更新的測試項目。

回傳描述
void

表示測試發生錯誤。您應該傳遞一或多個 TestMessage 來描述失敗。這與「失敗」狀態不同,因為它表示測試完全無法執行,例如來自編譯錯誤。

參數描述
test: TestItem

要更新的測試項目。

message: TestMessage | readonly TestMessage[]

與測試失敗相關聯的訊息。

duration?: number

測試執行的時間長度,以毫秒為單位。

回傳描述
void

表示測試已失敗。您應該傳遞一或多個 TestMessage 來描述失敗。

參數描述
test: TestItem

要更新的測試項目。

message: TestMessage | readonly TestMessage[]

與測試失敗相關聯的訊息。

duration?: number

測試執行的時間長度,以毫秒為單位。

回傳描述
void

表示測試已通過。

參數描述
test: TestItem

要更新的測試項目。

duration?: number

測試執行的時間長度,以毫秒為單位。

回傳描述
void

表示測試已略過。

參數描述
test: TestItem

要更新的測試項目。

回傳描述
void

表示測試已開始執行。

參數描述
test: TestItem

要更新的測試項目。

回傳描述
void

TestRunProfile

TestRunProfile 描述在 TestController 中執行測試的一種方式。

事件

當使用者變更此設定檔是否為預設設定檔時觸發。事件包含 isDefault 的新值

屬性

如果此方法存在,則 UI 中將會顯示設定齒輪,並且在按一下時將會叫用此方法。呼叫時,您可以執行其他編輯器動作,例如顯示快速選取或開啟組態檔。

參數描述
回傳描述
void

控制當其種類被操作時,此設定檔是否為將採取的預設動作。例如,如果使用者按一下通用的「全部執行」按鈕,則將執行 TestRunProfileKind.Run 的預設設定檔,但使用者可以設定此設定。

使用者在其預設設定檔中所做的變更將在 onDidChangeDefault 事件之後反映在此屬性中。

設定此設定檔控制的執行種類。如果某種類型沒有設定檔,則它將在 UI 中不可用。

在 UI 中向使用者顯示的標籤。

請注意,如果使用者要求以某種方式重新執行測試,則標籤具有一定的意義。例如,如果測試正常執行,且使用者要求在偵錯模式下重新執行它們,則編輯器將嘗試使用標籤與 Debug 種類相同的組態。如果沒有此類組態,將使用預設組態。

擴充功能提供的函數,用於提供檔案的詳細陳述式和函數層級覆蓋率。當檔案需要更多詳細資訊時,例如在編輯器中開啟或在測試覆蓋率檢視中展開時,編輯器將呼叫此函數。

傳遞至此函數的 FileCoverage 物件是在與此設定檔相關聯的 TestRun.addCoverage 呼叫時發出的相同執行個體。

參數描述
testRun: TestRun
fileCoverage: FileCoverage
token: CancellationToken
回傳描述
Thenable<FileCoverageDetail[]>

擴充功能提供的函數,用於提供檔案中單一測試的詳細陳述式和函數層級覆蓋率。這是 TestRunProfile.loadDetailedCoverage 的每個測試同級項目,僅當 FileCoverage.includesTests 中提供測試項目時,以及僅針對報告此類資料的檔案呼叫。

通常,當使用者開啟檔案時,會先呼叫 TestRunProfile.loadDetailedCoverage,然後如果他們向下鑽研到特定的每個測試覆蓋率資訊,則會呼叫此方法。然後,此方法應僅傳回在執行期間由特定測試執行的陳述式和宣告的覆蓋率資料。

傳遞至此函數的 FileCoverage 物件是在與此設定檔相關聯的 TestRun.addCoverage 呼叫時發出的相同執行個體。

參數描述
testRun: TestRun

產生覆蓋率資料的測試執行。

fileCoverage: FileCoverage

要載入詳細覆蓋率的檔案覆蓋率物件。

fromTestItem: TestItem

要請求覆蓋率資訊的測試項目。

token: CancellationToken

指示應取消作業的取消 Token。

回傳描述
Thenable<FileCoverageDetail[]>

呼叫以啟動測試執行的處理常式。叫用時,函數應至少呼叫一次 TestController.createTestRun,且與要求相關聯的所有測試執行應在函數傳回或傳回的 Promise 解析之前建立。

如果設定 supportsContinuousRun,則 TestRunRequest.continuous 可能為 true。在這種情況下,設定檔應觀察原始程式碼的變更,並透過呼叫 TestController.createTestRun 建立新的測試執行,直到在 token 上要求取消為止。

參數描述
request: TestRunRequest

測試執行的要求資訊。

token: CancellationToken
回傳描述
void | Thenable<void>

此設定檔是否支援持續執行要求。如果是,則 TestRunRequest.continuous 可能設定為 true。預設為 false。

設定檔的關聯標籤。如果設定此項,則只有 TestItem 執行個體具有相同的標籤才有資格在此設定檔中執行。

方法

刪除執行設定檔。

參數描述
回傳描述
void

TestRunProfileKind

TestRunProfile 控制的執行種類。

列舉成員

Run 測試設定檔種類。

Debug 測試設定檔種類。

Coverage 測試設定檔種類。

TestRunRequest

TestRunRequest 是 TestRun 的前置步驟,而 TestRun 又是透過將要求傳遞至 TestController.createTestRun 所建立。 包含應執行哪些測試、不應執行哪些測試,以及它們的執行方式 (透過 設定檔)。

一般而言,TestRunRequest 是由編輯器建立,並傳遞至 TestRunProfile.runHandler,但是您也可以在 runHandler 之外建立測試要求和執行。

建構函式

參數描述
include?: readonly TestItem[]

要執行的特定測試陣列,或未定義以執行所有測試

exclude?: readonly TestItem[]

要從執行中排除的測試陣列。

profile?: TestRunProfile

用於此要求的執行設定檔。

continuous?: boolean

是否在原始碼變更時持續執行測試。

preserveFocus?: boolean

是否在執行開始時保留使用者的焦點

回傳描述
TestRunRequest

屬性

設定檔是否應在原始程式碼變更時持續執行。僅與設定 TestRunProfile.supportsContinuousRun 的設定檔相關。

使用者標記為從此執行中包含的測試排除的測試陣列;排除應在包含之後套用。

如果未要求排除,則可以省略。測試控制器不應執行排除的測試或任何排除測試的子系。

要執行的特定測試篩選器。如果已指定,則擴充功能應執行所有包含的測試及其所有子系,但排除 TestRunRequest.exclude 中出現的任何測試。如果此屬性未定義,則擴充功能應只執行所有測試。

執行測試的程序應解析尚未解析的任何測試項目的子系。

控制如何聚焦測試結果檢視。如果為 true,則編輯器將保持使用者的焦點。如果為 false,則編輯器會優先將焦點移至測試結果檢視,儘管使用者可以設定此行為。

用於此要求的設定檔。對於從編輯器 UI 發出的要求,此設定檔將永遠定義,但擴充功能可能會以程式設計方式建立未與任何設定檔相關聯的要求。

TestTag

標籤可以與 TestItemTestRunProfile 相關聯。具有標籤的設定檔只能執行在其 TestItem.tags 陣列中包含該標籤的測試。

建構函式

建立新的 TestTag 執行個體。

參數描述
id: string

測試標籤的 ID。

回傳描述
TestTag

屬性

測試標籤的 ID。具有相同 ID 的 TestTag 執行個體會被視為相同。

TextDocument

代表文字文件,例如原始碼檔案。文字文件具有,並了解基礎資源 (例如檔案)。

屬性

此文件中主要使用的行尾序列。

相關聯資源的檔案系統路徑。TextDocument.uri.fsPath 的簡寫符號。與 uri 結構描述無關。

如果文件已關閉,則為 true。關閉的文件不再同步,且當再次開啟相同的資源時,將不會重複使用。

如果有未持久化的變更,則為 true

此文件是否代表尚未儲存的未命名檔案。請注意,這不表示文件將儲存到磁碟,請使用 Uri.scheme 來判斷文件將儲存到哪裡,例如 fileftp 等。

與此文件相關聯的語言識別碼。

此文件中的行數。

此文件相關聯的 URI。

請注意,大多數文件使用 file 結構描述,這表示它們是磁碟上的檔案。但是,並非所有文件都儲存在磁碟上,因此在嘗試存取基礎檔案或磁碟上的同層級項目之前,必須檢查 scheme

另請參閱

此文件的版本號碼 (在每次變更 (包括復原/重做) 之後,版本號碼都會嚴格遞增)。

方法

取得此文件的文字。可以透過提供範圍來擷取子字串。範圍將會調整

參數描述
range?: Range

僅包含範圍包含的文字。

回傳描述
string

所提供範圍內的文字或整個文字。

在給定位置取得字組範圍。預設情況下,字組由常見的分隔符號 (例如空格、-、_ 等) 定義。此外,可以定義每個語言的自訂 [字組定義]。也可以提供自訂規則運算式。

  • 注意 1:自訂規則運算式不得比對空字串,如果比對到,則會遭到忽略。
  • 注意 2:自訂規則運算式將無法比對多行字串,且為了速度起見,規則運算式不應比對包含空格的字組。針對更複雜、非字組的情境,請使用 TextLine.text

位置將會調整

參數描述
position: Position

一個位置。

regex?: RegExp

選擇性規則運算式,描述字組的定義。

回傳描述
Range

跨越字組的範圍,或 undefined

傳回行號表示的文字行。請注意,傳回的物件不是即時的,且對文件的變更不會反映出來。

參數描述
line: number

[0, lineCount) 中的行號。

回傳描述
TextLine

傳回位置表示的文字行。請注意,傳回的物件不是即時的,且對文件的變更不會反映出來。

位置將會調整

另請參閱 TextDocument.lineAt

參數描述
position: Position

一個位置。

回傳描述
TextLine

將位置轉換為從零開始的位移。

位置將會調整

參數描述
position: Position

一個位置。

回傳描述
number

有效的從零開始的位移。

將從零開始的位移轉換為位置。

參數描述
offset: number

從零開始的位移。

回傳描述
Position

有效的 Position

儲存基礎檔案。

參數描述
回傳描述
Thenable<boolean>

檔案儲存時將解析為 true 的 Promise。如果儲存失敗,將傳回 false

確保位置包含在此文件的範圍內。

參數描述
position: Position

一個位置。

回傳描述
Position

給定的位置或新的調整後位置。

確保範圍完全包含在此文件中。

參數描述
range: Range

一個範圍。

回傳描述
Range

給定的範圍或新的調整後範圍。

TextDocumentChangeEvent

描述交易式 文件 變更的事件。

屬性

內容變更陣列。

受影響的文件。

文件變更的原因。如果原因不明,則為 undefined

TextDocumentChangeReason

文字文件變更的原因。

列舉成員

文字變更是由復原作業所造成。

文字變更是由重做作業所造成。

TextDocumentContentChangeEvent

描述 文件 文字中個別變更的事件。

屬性

已取代的範圍。

已取代範圍的長度。

已取代範圍的位移。

範圍的新文字。

TextDocumentContentProvider

文字文件內容提供者允許將唯讀文件新增至編輯器,例如來自 dll 的原始碼或從 md 產生的 html。

內容提供者會針對 uri 結構描述註冊。當具有該結構描述的 uri 要載入時,會詢問內容提供者。

事件

資源已變更的訊號事件。

方法

為給定的 URI 提供文字內容。

編輯器將使用傳回的字串內容來建立唯讀的 文件。當對應的文件被 關閉 時,應釋放已配置的資源。

注意:由於行尾序列正規化,建立的 文件 內容可能與提供的文字不完全相同。

參數描述
uri: Uri

URI 的 scheme 符合此提供者 註冊 的 scheme。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<string>

字串或可解析為字串的 Thenable 物件。

TextDocumentSaveReason

表示文字文件儲存的原因。

列舉成員

手動觸發,例如使用者按下儲存、開始偵錯或透過 API 呼叫。

延遲後自動儲存。

當編輯器失去焦點時。

TextDocumentShowOptions

表示設定在 編輯器 中顯示 文件 行為的選項。

屬性

一個可選的旗標,當為 true 時,將阻止 編輯器 取得焦點。

一個可選的旗標,控制 編輯器 索引標籤是否顯示為預覽。預覽索引標籤將被替換和重複使用,直到設定為保持不變 - 明確地或透過編輯。

注意:如果使用者在設定中停用了預覽編輯器,則此旗標會被忽略。

要在 編輯器 中為文件套用的可選選取範圍。

應顯示 編輯器 的可選檢視欄。預設值為 active。不存在的欄將根據需要建立,最多為 ViewColumn.Nine 的最大值。使用 ViewColumn.Beside 將編輯器在目前活動編輯器的側邊開啟。

TextDocumentWillSaveEvent

文件 即將儲存時觸發的事件。

若要在文件儲存前對其進行修改,請使用一個解析為 文字編輯 陣列的 thenable 物件呼叫 waitUntil 函式。

屬性

即將儲存的文件。

觸發儲存的原因。

方法

允許暫停事件迴圈並套用 預先儲存編輯。後續呼叫此函式的編輯將依序套用。如果文件發生並行修改,這些編輯將被忽略

注意: 此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫

workspace.onWillSaveTextDocument(event => {
  // async, will *throw* an error
  setTimeout(() => event.waitUntil(promise));

  // sync, OK
  event.waitUntil(promise);
});
參數描述
thenable: Thenable<readonly TextEdit[]>

解析為 預先儲存編輯 的 thenable 物件。

回傳描述
void

允許暫停事件迴圈,直到提供的 thenable 解析完成。

注意: 此函式只能在事件分派期間呼叫。

參數描述
thenable: Thenable<any>

延遲儲存的 thenable。

回傳描述
void

TextEdit

文字編輯表示應套用於文件的編輯。

靜態

建立刪除編輯的工具函式。

參數描述
range: Range

一個範圍。

回傳描述
TextEdit

一個新的文字編輯物件。

建立插入編輯的工具函式。

參數描述
position: Position

位置,將變成空的範圍。

newText: string

一個字串。

回傳描述
TextEdit

一個新的文字編輯物件。

建立取代編輯的工具函式。

參數描述
range: Range

一個範圍。

newText: string

一個字串。

回傳描述
TextEdit

一個新的文字編輯物件。

建立 eol 編輯的工具函式。

參數描述
eol: EndOfLine

一個 eol 序列

回傳描述
TextEdit

一個新的文字編輯物件。

建構函式

建立新的 TextEdit。

參數描述
range: Range

一個範圍。

newText: string

一個字串。

回傳描述
TextEdit

屬性

文件中使用的 eol 序列。

注意:eol 序列將套用於整個文件。

此編輯將插入的字串。

此編輯套用的範圍。

TextEditor

表示附加到 文件 的編輯器。

屬性

與此文字編輯器關聯的文件。在整個文字編輯器的生命週期中,文件將保持不變。

文字編輯器選項。

此文字編輯器上的主要選取範圍。是 TextEditor.selections[0] 的簡寫。

此文字編輯器中的選取範圍。主要選取範圍始終位於索引 0。

此編輯器顯示所在的欄。如果不是主要編輯器之一(例如嵌入式編輯器),或當編輯器欄大於三時,則為 undefined

編輯器中目前可見的範圍(垂直方向)。這僅適用於垂直滾動,不適用於水平滾動。

方法

對與此文字編輯器關聯的文件執行編輯。

給定的回呼函式會使用 編輯器建構器 叫用,該建構器必須用於進行編輯。請注意,編輯器建構器僅在回呼執行時有效。

參數描述
callback: (editBuilder: TextEditorEdit) => void

一個可以使用 編輯器建構器 建立編輯的函式。

options?: {undoStopAfter: boolean, undoStopBefore: boolean}

此編輯周圍的復原/重做行為。預設情況下,復原停止將在此編輯之前和之後建立。

回傳描述
Thenable<boolean>

一個 Promise,解析為一個值,指示是否可以套用編輯。

隱藏文字編輯器。

  • 已過時 - 請改用命令 workbench.action.closeActiveEditor。此方法顯示意外行為,將在下一個主要更新中移除。
參數描述
回傳描述
void

插入 程式碼片段 並將編輯器置於程式碼片段模式。「程式碼片段模式」表示編輯器會新增預留位置和額外游標,以便使用者可以完成或接受程式碼片段。

參數描述
snippet: SnippetString

要在此編輯中插入的程式碼片段。

location?: Range | Position | readonly Range[] | readonly Position[]

要插入程式碼片段的位置或範圍,預設為目前的編輯器選取範圍或多個選取範圍。

options?: {undoStopAfter: boolean, undoStopBefore: boolean}

此編輯周圍的復原/重做行為。預設情況下,復原停止將在此編輯之前和之後建立。

回傳描述
Thenable<boolean>

一個 Promise,解析為一個值,指示是否可以插入程式碼片段。請注意,Promise 不表示程式碼片段已完全填寫或接受。

依據 revealType 指示滾動,以顯示給定的範圍。

參數描述
range: Range

一個範圍。

revealType?: TextEditorRevealType

用於顯示 range 的滾動策略。

回傳描述
void

將一組裝飾新增至文字編輯器。如果已存在具有給定 裝飾類型 的一組裝飾,則將被取代。如果 rangesOrOptions 為空,則將移除具有給定 裝飾類型 的現有裝飾。

另請參閱 createTextEditorDecorationType

參數描述
decorationType: TextEditorDecorationType

一種裝飾類型。

rangesOrOptions: readonly Range[] | readonly DecorationOptions[]

範圍 或更詳細的 選項

回傳描述
void

顯示文字編輯器。

參數描述
column?: ViewColumn

要在其中顯示此編輯器的 。此方法顯示意外行為,將在下一個主要更新中移除。

回傳描述
void

TextEditorCursorStyle

游標的呈現樣式。

列舉成員

將游標呈現為垂直粗線。

將游標呈現為實心方塊。

將游標呈現為水平粗線。

將游標呈現為垂直細線。

將游標呈現為空心方塊。

將游標呈現為水平細線。

TextEditorDecorationType

表示一組裝飾的句柄,這些裝飾在 文字編輯器 中共享相同的 樣式選項

若要取得 TextEditorDecorationType 的實例,請使用 createTextEditorDecorationType

屬性

句柄的內部表示法。

方法

移除此裝飾類型以及所有文字編輯器上使用它的所有裝飾。

參數描述
回傳描述
void

TextEditorEdit

一個複雜的編輯,將在 TextEditor 上以單一交易套用。它包含編輯的描述,以及編輯是否有效(即,沒有重疊區域、文件在此期間未變更等),它們可以套用於與 文字編輯器 關聯的 文件

方法

刪除特定的文字區域。

參數描述
location: Range | Selection

此操作應移除的範圍。

回傳描述
void

在某個位置插入文字。您可以在 value 中使用 \r\n\n,它們將被正規化為目前的 文件。雖然可以使用 replace 進行等效的文字編輯,但 insert 將產生不同的結果選取範圍(它將被移動)。

參數描述
location: Position

應插入新文字的位置。

value: string

此操作應插入的新文字。

回傳描述
void

將特定的文字區域取代為新值。您可以在 value 中使用 \r\n\n,它們將被正規化為目前的 文件

參數描述
location: Range | Position | Selection

此操作應移除的範圍。

value: string

此操作應在移除 location 後插入的新文字。

回傳描述
void

設定行尾序列。

參數描述
endOfLine: EndOfLine

文件 的新行尾。

回傳描述
void

TextEditorLineNumbersStyle

行號的呈現樣式。

列舉成員

不呈現行號。

呈現行號。

呈現相對於主要游標位置的值的行號。

每 10 行呈現行號。

TextEditorOptions

表示 文字編輯器選項

屬性

此編輯器中游標的呈現樣式。當取得文字編輯器的選項時,此屬性將始終存在。當設定文字編輯器的選項時,此屬性為可選。

insertSpaces 為 true 時要插入的空格數。

當取得文字編輯器的選項時,此屬性將始終為數字(已解析)。當設定文字編輯器的選項時,此屬性為可選,可以是數字或 "tabSize"

按下 Tab 鍵時,插入 n 個空格。當取得文字編輯器的選項時,此屬性將始終為布林值(已解析)。當設定文字編輯器的選項時,此屬性為可選,可以是布林值或 "auto"

呈現相對於目前行號的相對行號。當取得文字編輯器的選項時,此屬性將始終存在。當設定文字編輯器的選項時,此屬性為可選。

Tab 鍵佔用的空格大小。這用於兩個目的

  • Tab 字元的呈現寬度;
  • insertSpaces 為 true 且 indentSize 設定為 "tabSize" 時要插入的空格數。

當取得文字編輯器的選項時,此屬性將始終為數字(已解析)。當設定文字編輯器的選項時,此屬性為可選,可以是數字或 "auto"

TextEditorOptionsChangeEvent

表示描述 文字編輯器選項 變更的事件。

屬性

文字編輯器選項 的新值。

選項已變更的 文字編輯器

TextEditorRevealType

表示文字編輯器中不同的 reveal 策略。

列舉成員

將以盡可能少的滾動來顯示範圍。

範圍將始終在視窗中心顯示。

如果範圍在視窗外,則會在視窗中心顯示。否則,將以盡可能少的滾動來顯示。

範圍將始終在視窗頂端顯示。

TextEditorSelectionChangeEvent

表示描述 文字編輯器選取範圍 變更的事件。

屬性

觸發此事件的 變更種類。可能為 undefined

選取範圍已變更的 文字編輯器

TextEditorSelectionChangeKind

表示可能導致 選取範圍變更事件 的來源。

列舉成員

由於在編輯器中輸入而變更選取範圍。

由於在編輯器中點擊而變更選取範圍。

由於執行命令而變更選取範圍。

TextEditorViewColumnChangeEvent

表示描述 文字編輯器檢視欄 變更的事件。

屬性

檢視欄已變更的 文字編輯器

文字編輯器檢視欄的新值。

TextEditorVisibleRangesChangeEvent

代表描述文字編輯器可見範圍變更的事件。

屬性

可見範圍已變更的文字編輯器

TextLine

代表文字行,例如原始碼行。

TextLine 物件是不可變的。當 文件 變更時,先前擷取的行將不會代表最新狀態。

屬性

第一個非空白字元的偏移量,空白字元由 /\s/ 定義。請注意,如果整行都是空白字元,則會傳回該行的長度。

此行是否僅包含空白字元,是 TextLine.firstNonWhitespaceCharacterIndex === TextLine.text.length 的簡寫。

從零開始的行號。

此行涵蓋的範圍,不包含行分隔符號字元。

此行涵蓋的範圍,包含行分隔符號字元。

此行的文字,不包含行分隔符號字元。

ThemableDecorationAttachmentRenderOptions

代表文字裝飾內容之前之後的主題特定渲染樣式。

屬性

將套用至裝飾附件的 CSS 樣式屬性。

將套用至裝飾附件的 CSS 樣式屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。

將套用至裝飾附件的 CSS 樣式屬性。

要呈現於附件中的影像的絕對路徑或 URI。可以顯示圖示或文字,但不能同時顯示兩者。

定義顯示在附件中的文字內容。可以顯示圖示或文字,但不能同時顯示兩者。

將套用至裝飾附件的 CSS 樣式屬性。

將套用至裝飾附件的 CSS 樣式屬性。

將套用至裝飾附件的 CSS 樣式屬性。

將套用至裝飾附件的 CSS 樣式屬性。

將套用至裝飾附件的 CSS 樣式屬性。

將套用至裝飾附件的 CSS 樣式屬性。

ThemableDecorationInstanceRenderOptions

代表裝飾執行個體的可主題化渲染選項。

屬性

定義插入於裝飾文字之後的附件轉譯選項。

定義插入於裝飾文字之前的附件轉譯選項。

ThemableDecorationRenderOptions

代表文字編輯器裝飾的主題特定渲染樣式。

屬性

定義插入於裝飾文字之後的附件轉譯選項。

裝飾的背景色彩。使用 rgba() 並定義透明背景色彩,以與其他裝飾良好搭配。或者,可以參照色彩登錄中的色彩。

定義插入於裝飾文字之前的附件轉譯選項。

將套用至裝飾所括住文字的 CSS 樣式屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'border' 來設定一或多個個別的邊框屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'border' 來設定一或多個個別的邊框屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'border' 來設定一或多個個別的邊框屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'border' 來設定一或多個個別的邊框屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'border' 來設定一或多個個別的邊框屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。

要轉譯在邊界中的影像的絕對路徑或 URI。

指定邊界圖示的大小。可用的值為 'auto'、'contain'、'cover' 和任何百分比值。如需詳細資訊:https://msdn.microsoft.com/en-us/library/jj127316(v=vs.85).aspx

將套用至裝飾所括住文字的 CSS 樣式屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'outline' 來設定一或多個個別的外框屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'outline' 來設定一或多個個別的外框屬性。

將套用至裝飾所括住文字的 CSS 樣式屬性。最好使用 'outline' 來設定一或多個個別的外框屬性。

概觀尺規中裝飾的色彩。使用 rgba() 並定義透明色彩,以與其他裝飾良好搭配。

將套用至裝飾所括住文字的 CSS 樣式屬性。

ThemeColor

參考工作台色彩之一,定義於 https://vscode.dev.org.tw/api/references/theme-color。使用主題色彩優於自訂色彩,因為它讓主題作者和使用者可以變更色彩。

建構函式

建立主題色彩的參考。

參數描述
id: string

色彩的 ID。可用色彩列於 https://vscode.dev.org.tw/api/references/theme-color

回傳描述
ThemeColor

屬性

此色彩的 ID。

ThemeIcon

參考具名圖示。目前支援 FileFolderThemeIcon ID。使用主題圖示優於自訂圖示,因為它讓產品主題作者可以變更圖示。

請注意,主題圖示也可以在標籤和描述中呈現。支援主題圖示的地方會明確說明,並使用 $(<name>) 語法,例如 quickPick.label = "Hello World $(globe)"

靜態

參考代表檔案的圖示。圖示取自目前檔案圖示主題,或使用預留位置圖示。

參考代表資料夾的圖示。圖示取自目前檔案圖示主題,或使用預留位置圖示。

建構函式

建立主題圖示的參考。

參數描述
id: string
color?: ThemeColor

圖示的選用 ThemeColor。色彩目前僅用於 TreeItem

回傳描述
ThemeIcon

屬性

圖示的選用 ThemeColor。色彩目前僅用於 TreeItem

TreeCheckboxChangeEvent<T>

代表描述樹狀項目核取方塊狀態變更的事件。

屬性

已勾選或取消勾選的項目。

TreeDataProvider<T>

提供樹狀資料的資料提供者

事件

選用事件,用於發出元素或根目錄已變更的訊號。這會觸發檢視更新已變更的元素/根目錄及其子系 (如果顯示)。若要發出根目錄已變更的訊號,請勿傳遞任何引數,或傳遞 undefinednull

方法

取得 element 的子系,如果未傳遞元素,則取得根目錄的子系。

參數描述
element?: T

提供者從中取得子系的元素。可以是 undefined

回傳描述
ProviderResult<T[]>

element 的子系,如果未傳遞元素,則為根目錄的子系。

選用方法,用於傳回 element 的父系。如果 element 是根目錄的子系,則傳回 nullundefined

注意: 應實作此方法,才能存取 reveal API。

參數描述
element: T

要傳回其父系的元素。

回傳描述
ProviderResult<T>

element 的父系。

取得 elementTreeItem 表示法

參數描述
element: T

要求 TreeItem 表示法的元素。

回傳描述
TreeItem | Thenable<TreeItem>

元素的 TreeItem 表示法。

在懸停時呼叫以解析 TreeItem 屬性 (如果未定義)。在樹狀項目點擊/開啟時呼叫以解析 TreeItem 屬性 (如果未定義)。只有未定義的屬性才能在 resolveTreeItem 中解析。功能稍後可能會擴充,以包含在選取和/或開啟時呼叫以解析其他遺失的屬性。

每個 TreeItem 只會呼叫一次。

不應從 resolveTreeItem 內觸發 onDidChangeTreeData。

請注意,此函式是在樹狀項目已顯示在 UI 中時呼叫。因此,任何會變更呈現方式 (標籤、描述等) 的屬性都無法變更。

參數描述
item: TreeItem

應設定 item 的未定義屬性,然後應傳回 item

element: T

與 TreeItem 相關聯的物件。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<TreeItem>

已解析的樹狀項目,或解析為此項目的 Thenable。傳回給定的 item 是可以的。未傳回任何結果時,將會使用給定的 item

TreeDragAndDropController<T>

TreeView 中提供拖放支援。

屬性

TreeDragAndDropControllerhandleDrag 方法可能會新增至樹狀資料傳輸的 MIME 類型。這可能是明確定義、現有的 MIME 類型,以及擴充功能定義的 MIME 類型。

樹狀結構的建議 MIME 類型 (application/vnd.code.tree.<treeidlowercase>) 將會自動新增。

DragAndDropControllerhandleDrop 方法支援的 MIME 類型。這可能是明確定義、現有的 MIME 類型,以及擴充功能定義的 MIME 類型。

若要支援從樹狀結構拖曳,您需要新增該樹狀結構的 MIME 類型。這包括從同一個樹狀結構內拖曳。建議樹狀結構的 MIME 類型格式為 application/vnd.code.tree.<treeidlowercase>

使用特殊的 files MIME 類型來支援所有類型的拖曳檔案 files,無論檔案的實際 MIME 類型為何。

若要瞭解拖曳項目的 MIME 類型

  1. 設定您的 DragAndDropController
  2. 使用「開發人員:設定記錄層級...」命令將層級設定為「偵錯」
  3. 開啟開發人員工具,並將 MIME 類型不明的項目拖曳到您的樹狀結構上。MIME 類型將會記錄到開發人員主控台中

請注意,無法傳送至擴充功能的 MIME 類型將會省略。

方法

當使用者開始從此 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>

當拖放動作導致在此 DragAndDropController 所屬的樹狀結構上放置時呼叫。

擴充功能應針對任何需要重新整理的元素觸發 onDidChangeTreeData

參數描述
target: T

放置動作發生的目標樹狀元素。當未定義時,目標為根目錄。

dataTransfer: DataTransfer

拖曳來源的資料傳輸項目。

token: CancellationToken

指示放置已取消的取消權杖。

回傳描述
void | Thenable<void>

TreeItem

樹狀項目是樹狀結構的 UI 元素。樹狀項目由資料提供者建立。

建構函式

參數描述
label: string | TreeItemLabel

描述此項目的使用者可讀字串

collapsibleState?: TreeItemCollapsibleState
回傳描述
TreeItem

參數描述
resourceUri: Uri

代表此項目的資源 Uri

collapsibleState?: TreeItemCollapsibleState
回傳描述
TreeItem

屬性

螢幕閱讀器與此樹狀項目互動時使用的協助工具資訊。一般而言,TreeItem 不需要設定 accessibilityInformation 的 role;但是,在某些情況下,TreeItem 並非以樹狀結構方式顯示,這時設定 role 可能有意義。

樹狀項目的 TreeItemCheckboxState。當 checkboxState 變更時,應觸發 onDidChangeTreeData

樹狀項目的 TreeItemCollapsibleState

選取樹狀項目時應執行的 Command

當樹狀項目在編輯器中開啟某些內容時,請使用 vscode.openvscode.diff 作為命令 ID。使用這些命令可確保產生的編輯器外觀與其他內建樹狀結構開啟編輯器的方式一致。

樹狀項目的內容值。這可用於在樹狀結構中貢獻項目特定動作。例如,樹狀項目會被賦予內容值 folder。當使用 menus 擴充功能點將動作貢獻到 view/item/context 時,您可以為 when 運算式中的索引鍵 viewItem 指定內容值,例如 viewItem == folder

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

這將顯示動作 extension.deleteFolder,僅適用於 contextValuefolder 的項目。

一段人類可讀的字串,其呈現較不顯眼。當為 true 時,它會從 resourceUri 衍生而來,而當為 falsy 時,則不會顯示。

樹狀項目 (tree item) 的圖示路徑或 ThemeIcon。當為 falsy 時,如果項目是可摺疊的,則會指派 Folder Theme Icon,否則會指派 File Theme Icon。當指定檔案或資料夾 ThemeIcon 時,圖示會從目前檔案圖示主題衍生而來,並使用 resourceUri (如果已提供) 來取得指定的佈景主題圖示。

樹狀項目的選用 ID,在整個樹狀結構中必須是唯一的。此 ID 用於保留樹狀項目的選取和展開狀態。

如果未提供,則會使用樹狀項目的標籤產生 ID。請注意,當標籤變更時,ID 也會變更,且選取和展開狀態將無法再保持穩定。

描述此項目的人類可讀字串。當為 falsy 時,它會從 resourceUri 衍生而來。

代表此項目的資源 Uri

label 未提供時,將用於衍生標籤。當 iconPath 具有 ThemeIcon 值時,將用於從目前的檔案圖示主題衍生圖示。

當您將滑鼠游標停留在項目上方時顯示的工具提示文字。

TreeItemCheckboxState

樹狀項目的核取方塊狀態

列舉成員

判斷項目是否為未核取

判斷項目是否為已核取

TreeItemCollapsibleState

樹狀項目的可摺疊狀態

列舉成員

判斷項目既不能摺疊也不能展開。表示它沒有子項目。

決定項目是否為摺疊狀態

決定項目是否為展開狀態

TreeItemLabel

描述 Tree item 的標籤

屬性

要在標籤中醒目提示的範圍。範圍定義為包含兩個數字的元組,第一個是包含的起始索引,第二個是排除的結束索引

描述 Tree item 的人類可讀字串。

TreeView<T>

代表樹狀檢視

事件

在元素或根目錄已核取或取消核取時發出訊號的事件。

selection 變更時觸發的事件

visibility 變更時觸發的事件

在元素摺疊時觸發的事件

在元素展開時觸發的事件

屬性

要為此 TreeView 顯示的徽章。若要移除徽章,請設定為 undefined。

選用的人類可讀描述,在檢視標題中呈現較不顯眼。將標題描述設定為 null、undefined 或空字串將會從檢視中移除描述。

選用的人類可讀訊息,將在檢視中呈現。將訊息設定為 null、undefined 或空字串將會從檢視中移除訊息。

目前選取的元素。

樹狀檢視標題最初取自擴充功能 package.json。對標題屬性的變更將會正確地反映在 UI 的檢視標題中。

如果 tree view 可見則為 true,否則為 false

方法

處置此物件。

參數描述
回傳描述
any

在樹狀檢視中顯示指定的元素。如果樹狀檢視不可見,則會顯示樹狀檢視並顯示元素。

依預設,顯示的元素會被選取。為了不選取,請將選項 select 設定為 false。為了聚焦,請將選項 focus 設定為 true。為了展開顯示的元素,請將選項 expand 設定為 true。若要遞迴展開,請將 expand 設定為要展開的層級數。

參數描述
element: T
options?: {expand: number | boolean, focus: boolean, select: boolean}
回傳描述
Thenable<void>

TreeViewExpansionEvent<T>

TreeView 中的元素展開或摺疊時觸發的事件

屬性

已展開或摺疊的元素。

TreeViewOptions<T>

用於建立 TreeView 的選項

屬性

樹狀結構是否支援多重選取。當樹狀結構支援多重選取且從樹狀結構執行命令時,命令的第一個引數是執行命令所在的樹狀項目,而第二個引數是包含所有選取樹狀項目的陣列。

在樹狀檢視中實作拖放功能的選用介面。

依預設,當樹狀項目的子項目已經擷取時,子核取方塊會根據父樹狀項目的核取狀態自動管理。如果樹狀項目依預設為摺疊 (表示尚未擷取子項目),則不會更新子核取方塊。若要覆寫此行為,並在擴充功能中管理子核取方塊和父核取方塊狀態,請將此設定為 true

以下範例說明 TreeViewOptions.manageCheckboxStateManually 為 false 時的預設行為

  1. 已核取樹狀項目,然後擷取其子項目。子項目將會被核取。

  2. 樹狀項目的父項目已核取。樹狀項目及其所有同層級項目將會被核取。

  • 父項目
    • 子項目 1
    • 子項目 2 當使用者核取父項目時,樹狀結構會如下所示
  • 父項目
    • 子項目 1
    • 子項目 2
  1. 樹狀項目及其所有同層級項目都已核取。父項目將會被核取。
  • 父項目
    • 子項目 1
    • 子項目 2 當使用者核取子項目 1 和子項目 2 時,樹狀結構會如下所示
  • 父項目
    • 子項目 1
    • 子項目 2
  1. 樹狀項目已取消核取。父項目將會被取消核取。
  • 父項目
    • 子項目 1
    • 子項目 2 當使用者取消核取子項目 1 時,樹狀結構會如下所示
  • 父項目
    • 子項目 1
    • 子項目 2

是否顯示全部摺疊動作。

提供樹狀結構資料的資料提供者。

TreeViewSelectionChangeEvent<T>

樹狀檢視的選取範圍 發生變更時觸發的事件

屬性

選取的元素。

TreeViewVisibilityChangeEvent

樹狀檢視的可見性 發生變更時觸發的事件

屬性

如果 tree view 可見則為 true,否則為 false

TypeDefinitionProvider

類型定義提供者定義擴充功能與跳到類型定義功能之間的合約。

方法

提供指定位置和文件中符號的類型定義。

參數描述
document: TextDocument

在其中調用命令的文件。

position: Position

調用命令的位置。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<Definition | LocationLink[]>

定義或可解析為定義的 Thenable。缺少結果可以透過傳回 undefinednull 來表示。

TypeHierarchyItem

代表類型階層的項目,例如類別或介面。

建構函式

建立新的類型階層項目。

參數描述
kind: SymbolKind

項目的種類。

name: string

項目的名稱。

detail: string

項目的詳細資訊。

uri: Uri

項目的 Uri。

range: Range

項目的完整範圍。

selectionRange: Range

項目的選取範圍。

回傳描述
TypeHierarchyItem

屬性

此項目的更多詳細資訊,例如函式的簽章。

此項目的種類。

此項目的名稱。

封閉此符號的範圍,不包括開頭/結尾空白字元,但包括所有其他內容,例如註解和程式碼。

當選取此符號時,應選取和顯示的範圍,例如類別的名稱。必須包含在 range 屬性中。

此項目的標籤。

此項目的資源識別碼。

TypeHierarchyProvider

類型階層提供者介面描述擴充功能與類型階層功能之間的合約。

方法

透過傳回指定文件和位置所表示的項目來啟動類型階層。此項目將用作類型圖表的進入點。如果指定位置沒有項目,提供者應傳回 undefinednull

參數描述
document: TextDocument

在其中調用命令的文件。

position: Position

調用命令的位置。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<TypeHierarchyItem | TypeHierarchyItem[]>

一個或多個類型階層項目,或可解析為此項目的 thenable。缺少結果可以使用傳回 undefinednull 或空陣列來表示。

為項目提供所有子類型,例如從指定項目衍生/繼承的所有類型。在圖表術語中,這描述類型圖表內部的定向和註解邊緣,例如,指定項目是起始節點,而結果是可以到達的節點。

參數描述
item: TypeHierarchyItem

應計算子類型的階層項目。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<TypeHierarchyItem[]>

一組直接子類型或可解析為此類型的 thenable。缺少結果可以使用傳回 undefinednull 來表示。

為項目提供所有父類型,例如類型從中衍生/繼承的所有類型。在圖表術語中,這描述類型圖表內部的定向和註解邊緣,例如,指定項目是起始節點,而結果是可以到達的節點。

參數描述
item: TypeHierarchyItem

應計算父類型的階層項目。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<TypeHierarchyItem[]>

一組直接父類型或可解析為此類型的 thenable。缺少結果可以使用傳回 undefinednull 來表示。

UIKind

可以使用擴充功能的 UI 可能種類。

列舉成員

從桌面應用程式存取擴充功能。

從網頁瀏覽器存取擴充功能。

Uri

通用資源識別碼,代表磁碟上的檔案或其他資源,例如未命名的資源。

靜態

從檔案系統路徑建立 URI。scheme 將會是 file

Uri.parseUri.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 執行個體。

從其組件部分建立 URI

另請參閱 Uri.toString

參數描述
components: {authority: string, fragment: string, path: string, query: string, scheme: string}

Uri 的組件部分。

回傳描述
Uri

新的 Uri 執行個體。

建立新的 URI,其路徑是將基礎 URI 的路徑與提供的路徑區段聯結的結果。

  • 注意 1:joinPath 僅影響路徑組件,所有其他組件 (scheme、authority、query 和 fragment) 都保持不變。
  • 注意 2:基礎 URI 必須具有路徑;否則會擲回錯誤。

路徑區段會以以下方式正規化

  • 路徑分隔符號 (/\) 的序列會取代為單一分隔符號
  • 對於 Windows 上的 file-uri,反斜線字元 (``) 會被視為路徑分隔符號
  • .. 區段表示父區段,. 表示目前區段
  • 路徑具有永遠保留的根目錄,例如在 Windows 上,磁碟機代號是根目錄,因此為真:joinPath(Uri.file('file:///c:/root'), '../../other').fsPath === 'c:/other'
參數描述
base: Uri

URI。必須具有路徑。

...pathSegments: string[]

一個或多個路徑片段

回傳描述
Uri

新的 URI,其路徑已與給定的片段聯結

從字串建立 URI,例如 http://www.example.com/some/pathfile:///usr/homescheme:with/path

注意,在一段時間內,接受沒有 scheme 的 URI。這是不正確的,因為所有 URI 都應該有 scheme。為了避免破壞現有的程式碼,已新增選用的 strict 引數。我們強烈建議使用它,例如 Uri.parse('my:uri', true)

另請參閱 Uri.toString

參數描述
value: string

Uri 的字串值。

strict?: boolean

value 為空或無法剖析 scheme 時擲回錯誤。

回傳描述
Uri

新的 Uri 執行個體。

建構函式

使用 fileparse 工廠函式來建立新的 Uri 物件。

參數描述
scheme: string
authority: string
path: string
query: string
fragment: string
回傳描述
Uri

屬性

Authority 是 http://www.example.com/some/path?query#fragmentwww.example.com 部分。第一個雙斜線和下一個斜線之間的部分。

Fragment 是 http://www.example.com/some/path?query#fragmentfragment 部分。

代表此 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#fragmentquery 部分。

Scheme 是 http://www.example.com/some/path?query#fragmenthttp 部分。第一個冒號之前的部分。

方法

傳回此 Uri 的 JSON 表示法。

參數描述
回傳描述
any

物件。

傳回此 Uri 的字串表示法。URI 的表示法和正規化取決於 scheme。

  • 產生的字串可以安全地與 Uri.parse 一起使用。
  • 產生的字串不應用於顯示用途。

注意,實作將積極編碼,這通常會導致意外但並非不正確的結果。例如,冒號會編碼為 %3A,這在 file-uri 中可能是意想不到的。此外,&= 也會被編碼,這對於 http-uri 可能是意想不到的。基於穩定性考量,這無法再變更。如果您受到過於積極的編碼之苦,您應該使用 skipEncoding 引數:uri.toString(true)

參數描述
skipEncoding?: boolean

不要對結果進行百分比編碼,預設為 false。請注意,路徑中出現的 #? 字元將永遠被編碼。

回傳描述
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 變更的物件。若要取消設定組件,請使用 null 或空字串。

回傳描述
Uri

反映指定變更的新 Uri。如果變更未變更任何內容,將傳回 this Uri。

UriHandler

uri 處理常式負責處理系統範圍的 uris

另請參閱 window.registerUriHandler

方法

處理提供的系統範圍 Uri

另請參閱 window.registerUriHandler

參數描述
uri: Uri
回傳描述
ProviderResult<void>

ViewBadge

呈現檢視值的徽章

屬性

要在徽章的工具提示中呈現的標籤。

要在徽章中呈現的值。

ViewColumn

表示編輯器在視窗中的位置。編輯器可以網格狀排列,每個欄代表該網格中的一個編輯器位置,依編輯器出現的順序計數。

列舉成員

代表作用中欄旁邊欄的符號編輯器欄。此值可用於開啟編輯器,但編輯器的已解析 viewColumn 值將永遠是 OneTwoThree... 或 undefined,但永遠不會是 Beside

代表目前作用中欄的符號編輯器欄。此值可用於開啟編輯器,但編輯器的已解析 viewColumn 值將永遠是 OneTwoThree... 或 undefined,但永遠不會是 Active

第一個編輯器欄。

第二個編輯器欄。

第三個編輯器欄。

第四個編輯器欄。

第五個編輯器欄。

第六個編輯器欄。

第七個編輯器欄。

第八個編輯器欄。

第九個編輯器欄。

Webview

顯示 HTML 內容,類似於 iframe。

事件

當 webview 內容發布訊息時觸發。

Webview 內容可以將字串或 JSON 可序列化物件發布回擴充功能。它們無法發布 BlobFileImageData 和其他 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>

若要從 webview 內的工作區載入資源,請使用 asWebviewUri 方法,並確保資源目錄已列在 WebviewOptions.localResourceRoots 中。

請記住,即使 webview 是隔離的,它們仍然允許執行腳本和載入任意內容,因此擴充功能在使用 webview 時必須遵循所有標準的 Web 安全最佳實務。這包括正確地清理所有不受信任的輸入(包括來自工作區的內容)以及設定 內容安全策略

webview 的內容設定。

方法

將本機檔案系統的 uri 轉換為可在 webview 內使用的 uri。

Webview 無法使用 file: uri 直接從工作區或本機檔案系統載入資源。asWebviewUri 函數接受本機 file: uri,並將其轉換為可在 webview 內用於載入相同資源的 uri

webview.html = `<img src="${webview.asWebviewUri(
  vscode.Uri.file('/Users/codey/workspace/cat.gif')
)}">`;
參數描述
localResource: Uri
回傳描述
Uri

將訊息發布到 webview 內容。

只有在 webview 處於活動狀態時(可見或在背景中且具有 retainContextWhenHidden),才會傳遞訊息。

參數描述
message: any

訊息的主體。這必須是字串或其他 JSON 可序列化物件。

對於舊版本的 VS Code,如果在 message 中包含 ArrayBuffer,則不會正確序列化,且 webview 無法接收。同樣地,任何 TypedArray,例如 Uint8Array,都將非常低效率地序列化,並且也不會在 webview 內重新建立為類型陣列。

但是,如果您的擴充功能在其 package.jsonengines 欄位中以 VS Code 1.57+ 為目標,則出現在 message 中的任何 ArrayBuffer 值都將更有效率地傳輸到 webview,並且也會在 webview 內部正確地重新建立。

回傳描述
Thenable<boolean>

當訊息發布到 webview 時,或當訊息因無法傳遞而被捨棄時,Promise 將會解析。

如果訊息已發布到 webview,則傳回 true。訊息只能發布到活動的 webview(即,可見的 webview 或設定 retainContextWhenHidden 的隱藏 webview)。

true 的回應並不表示訊息實際上已由 webview 接收。例如,可能沒有在 webview 內部掛接任何訊息接聽程式,或者 webview 可能在訊息發布後但在接收之前已損毀。

如果您想確認訊息是否已實際接收,您可以嘗試讓您的 webview 發布確認訊息回您的擴充功能。

WebviewOptions

webview 的內容設定。

屬性

控制是否在 webview 內容中啟用命令 uri。

預設為 false(停用命令 uri)。

如果您傳入陣列,則只允許陣列中的命令。

控制是否在 webview 內容中啟用表單。

如果 已啟用腳本,則預設為 true。否則預設為 false。明確地將此屬性設定為 true 或 false 會覆寫預設值。

控制是否在 webview 內容中啟用腳本。

預設為 false(停用腳本)。

webview 可以從中載入本機(檔案系統)資源的根路徑,使用來自 asWebviewUri 的 uri

預設為目前工作區的根資料夾加上擴充功能的安裝目錄。

傳入空陣列以禁止存取任何本機資源。

在 webview 內部使用的 localhost 連接埠的對應。

連接埠對應允許 webview 透明地定義如何解析 localhost 連接埠。這可以用於允許在 webview 內部使用靜態 localhost 連接埠,該連接埠會解析為服務正在執行的隨機連接埠。

如果 webview 存取 localhost 內容,我們建議您指定連接埠對應,即使 webviewPortextensionHostPort 連接埠相同也一樣。

注意,連接埠對應僅適用於 httphttps url。Websocket url(例如 ws://127.0.0.1:3000)無法對應到另一個連接埠。

WebviewPanel

包含 webview 的面板。

事件

當面板的檢視狀態變更時觸發。

當面板被處置時觸發。

這可能是因為使用者關閉了面板,或因為在其上呼叫了 .dispose()

在面板處置後嘗試使用它會擲回例外狀況。

屬性

面板是否為活動狀態(使用者聚焦)。

UI 中顯示的面板圖示。

webview 面板的內容設定。

UI 中顯示的面板標題。

面板的編輯器位置。只有在 webview 位於其中一個編輯器檢視欄中時,才會設定此屬性。

識別 webview 面板的類型,例如 'markdown.preview'

面板是否可見。

屬於面板的 Webview

方法

處置 webview 面板。

這會關閉面板(如果正在顯示),並處置 webview 擁有的資源。當使用者關閉 webview 面板時,也會處置 webview 面板。這兩種情況都會觸發 onDispose 事件。

參數描述
回傳描述
any

在給定的欄中顯示 webview 面板。

一個 webview 面板一次只能在單一欄中顯示。如果已經顯示,此方法會將其移動到新的欄。

參數描述
viewColumn?: ViewColumn

要在其中顯示面板的檢視欄。如果未定義,則在目前的 viewColumn 中顯示。

preserveFocus?: boolean

true 時,webview 將不會取得焦點。

回傳描述
void

WebviewPanelOnDidChangeViewStateEvent

當 webview 面板的檢視狀態變更時觸發的事件。

屬性

其檢視狀態已變更的 webview 面板。

WebviewPanelOptions

webview 面板的內容設定。

屬性

控制是否在面板中啟用尋找小工具。

預設為 false

控制即使面板不再可見,是否仍保留 webview 面板的內容 (iframe)。

通常,webview 面板的 HTML 內容會在面板變成可見時建立,並在隱藏時銷毀。具有複雜狀態或 UI 的擴充功能可以設定 retainContextWhenHidden,使編輯器保留 webview 內容,即使 webview 移動到背景索引標籤也是如此。當使用 retainContextWhenHidden 的 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

方法

從其序列化的 state 還原 webview 面板。

在序列化的 webview 首次變成可見時呼叫。

參數描述
webviewPanel: WebviewPanel

要還原的 Webview 面板。序列化器應取得此面板的所有權。序列化器必須還原 webview 的 .html 並掛接所有 webview 事件。

state: T

來自 webview 內容的持續保存狀態。

回傳描述
Thenable<void>

Thenable,表示 webview 已完全還原。

WebviewPortMapping

定義用於 webview 內 localhost 的連接埠對應。

屬性

目的地連接埠。webviewPort 會解析為此連接埠。

要在 webview 內部重新對應的 Localhost 連接埠。

WebviewView

基於 webview 的檢視。

事件

當檢視的能見度變更時觸發的事件。

觸發能見度變更的動作

  • 檢視已摺疊或展開。
  • 使用者切換到側邊欄或面板中的不同檢視群組。

請注意,使用上下文選單隱藏檢視反而會處置檢視並觸發 onDidDispose

當檢視被處置時觸發的事件。

當檢視被使用者明確隱藏時(當使用者在檢視中按下滑鼠右鍵並取消選取 webview 檢視時,就會發生這種情況),檢視會被處置。

在檢視處置後嘗試使用它會擲回例外狀況。

屬性

要為此 webview 檢視顯示的徽章。若要移除徽章,請設定為 undefined。

人類可讀的字串,在標題中的顯眼程度較低。

UI 中顯示的檢視標題。

檢視標題最初取自擴充功能 package.json 貢獻。

識別 webview 檢視的類型,例如 'hexEditor.dataView'

追蹤 webview 目前是否可見。

當檢視在螢幕上且已展開時,檢視是可見的。

檢視的底層 webview。

方法

在 UI 中顯示檢視。

如果檢視已摺疊,這將會展開它。

參數描述
preserveFocus?: boolean

true 時,檢視將不會取得焦點。

回傳描述
void

WebviewViewProvider

用於建立 WebviewView 元素的提供者。

方法

解析 webview 檢視。

當檢視首次變成可見時,會呼叫 resolveWebviewView。這可能會在首次載入檢視時或在使用者隱藏然後再次顯示檢視時發生。

參數描述
webviewView: WebviewView

要還原的 Webview 檢視。提供者應取得此檢視的所有權。提供者必須設定 webview 的 .html 並掛接所有它感興趣的 webview 事件。

context: WebviewViewResolveContext<unknown>

關於正在解析的檢視的其他中繼資料。

token: CancellationToken

取消權杖,表示不再需要提供的檢視。

回傳描述
void | Thenable<void>

選用的 Thenable,表示檢視已完全解析。

WebviewViewResolveContext<T>

關於正在解析的 webview 檢視的其他資訊。

屬性

來自 webview 內容的持續保存狀態。

為了節省資源,編輯器通常會取消分配不可見的 webview 文件(iframe 內容)。例如,當使用者摺疊檢視或切換到側邊欄中的另一個頂層活動時,WebviewView 本身會保持活動狀態,但 webview 的底層文件會被取消分配。當檢視再次變成可見時,它會重新建立。

您可以通過在 WebviewOptions 中設定 retainContextWhenHidden 來防止此行為。但是,這會增加資源使用量,應盡可能避免。相反,您可以使用持續保存的狀態來儲存 webview 的狀態,以便可以根據需要快速重新建立。

若要儲存持續保存的狀態,請在 webview 內部使用任何 JSON 可序列化物件呼叫 acquireVsCodeApi().setState()。若要再次還原狀態,請呼叫 getState()。例如

// Within the webview
const vscode = acquireVsCodeApi();

// Get existing state
const oldState = vscode.getState() || { value: 0 };

// Update state
setState({ value: oldState.value + 1 });

編輯器確保在隱藏 webview 時以及跨編輯器重新啟動時正確儲存持續保存的狀態。

WindowState

表示視窗的狀態。

屬性

視窗最近是否已互動。這將在活動時立即變更,或在使用者不活動一小段時間後變更。

目前視窗是否已聚焦。

WorkspaceConfiguration

表示組態。它是以下項目的合併檢視

  • 預設設定
  • 全域(使用者)設定
  • 工作區設定
  • 工作區資料夾設定 - 來自請求資源所屬的 工作區資料夾 之一。
  • 語言設定 - 在請求語言下定義的設定。

有效值(由 get 傳回)是透過依以下順序覆寫或合併值來計算的

  1. defaultValue(如果在 package.json 中定義,否則從值的類型衍生)
  2. globalValue(如果已定義)
  3. workspaceValue(如果已定義)
  4. workspaceFolderValue(如果已定義)
  5. defaultLanguageValue(如果已定義)
  6. globalLanguageValue(如果已定義)
  7. workspaceLanguageValue(如果已定義)
  8. 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 };

注意: 工作區和工作區資料夾組態包含 launchtasks 設定。它們的基底名稱將成為區段識別碼的一部分。以下程式碼片段顯示如何從 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

section 表示或 undefined

從此組態傳回值。

參數描述
section: string

組態名稱,支援點狀名稱。

defaultValue: T

當找不到值時應傳回值,為 undefined

回傳描述
T

section 表示或預設值。

檢查此設定是否具有特定值。

參數描述
section: string

組態名稱,支援點狀名稱。

回傳描述
boolean

如果區段未解析為 undefined,則為 true

檢索關於組態設定的所有資訊。組態值通常包含預設值、全域或安裝範圍的值、工作區特定的值、資料夾特定的值,以及語言特定的值 (如果 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}

關於組態設定的資訊,或 undefined

更新組態值。已更新的組態值會被持久儲存。

值可以在以下位置變更:

注意: 若要移除組態值,請使用 undefined,如下所示:config.update('somekey', undefined)

  • 擲出 - 更新時發生錯誤
    • 未註冊的組態。
    • 視窗組態到工作區資料夾
    • 當未開啟工作區時,組態到工作區或工作區資料夾。
    • 當沒有工作區資料夾設定時,組態到工作區資料夾。
    • WorkspaceConfiguration 的範圍未限定於資源時,組態到工作區資料夾。
參數描述
section: string

組態名稱,支援點狀名稱。

value: any

新值。

configurationTarget?: boolean | ConfigurationTarget

組態目標 或布林值。 - 如果為 true,則更新 全域設定。 - 如果為 false,則更新 工作區設定。 - 如果為 undefinednull,則在組態為資源特定的情況下更新為 工作區資料夾設定,否則更新為 工作區設定

overrideInLanguage?: boolean

是否要在請求的 languageId 範圍內更新值。 - 如果為 true,則在請求的 languageId 下更新值。 - 如果為 undefined,則僅在為語言定義組態的情況下,才在請求的 languageId 下更新值。

回傳描述
Thenable<void>

WorkspaceEdit

工作區編輯是一組用於多個資源和文件的文字與檔案變更。

使用 applyEdit 函式來套用工作區編輯。

建構函式

參數描述
回傳描述
WorkspaceEdit

屬性

受文字或資源變更影響的資源數量。

方法

建立一般檔案。

參數描述
uri: Uri

新檔案的 URI。

options?: {contents: Uint8Array | DataTransferFile, ignoreIfExists: boolean, overwrite: boolean}

定義是否應覆寫或忽略現有檔案。當同時設定 overwriteignoreIfExists 時,overwrite 優先。當兩者都未設定且檔案已存在時,編輯將無法成功套用。content 屬性允許設定檔案建立時的初始內容。

metadata?: WorkspaceEditEntryMetadata

條目的選用中繼資料。

回傳描述
void

刪除給定範圍的文字。

參數描述
uri: Uri

資源識別碼。

range: Range

一個範圍。

metadata?: WorkspaceEditEntryMetadata

條目的選用中繼資料。

回傳描述
void

刪除檔案或資料夾。

參數描述
uri: Uri

要刪除的檔案 URI。

options?: {ignoreIfNotExists: boolean, recursive: boolean}
metadata?: WorkspaceEditEntryMetadata

條目的選用中繼資料。

回傳描述
void

取得依資源分組的所有文字編輯。

參數描述
回傳描述
Array<[Uri, TextEdit[]]>

[Uri, TextEdit[]] 元組的淺層複製。

取得資源的文字編輯。

參數描述
uri: Uri

資源識別碼。

回傳描述
TextEdit[]

文字編輯陣列。

檢查資源的文字編輯是否存在。

參數描述
uri: Uri

資源識別碼。

回傳描述
boolean

如果給定資源將由此編輯變更,則為 true

在給定位置插入給定文字。

參數描述
uri: Uri

資源識別碼。

position: Position

一個位置。

newText: string

一個字串。

metadata?: WorkspaceEditEntryMetadata

條目的選用中繼資料。

回傳描述
void

重新命名檔案或資料夾。

參數描述
oldUri: Uri

現有檔案。

newUri: Uri

新位置。

options?: {ignoreIfExists: boolean, overwrite: boolean}

定義是否應覆寫或忽略現有檔案。當同時設定 overwrite 和 ignoreIfExists 時,overwrite 優先。

metadata?: WorkspaceEditEntryMetadata

條目的選用中繼資料。

回傳描述
void

將給定範圍取代為給定資源的給定文字。

參數描述
uri: Uri

資源識別碼。

range: Range

一個範圍。

newText: string

一個字串。

metadata?: WorkspaceEditEntryMetadata

條目的選用中繼資料。

回傳描述
void

為資源設定 (並取代) 文字編輯或程式碼片段編輯。

參數描述
uri: Uri

資源識別碼。

edits: ReadonlyArray<TextEdit | SnippetTextEdit>

編輯陣列。

回傳描述
void

為資源設定 (並取代) 具有中繼資料的文字編輯或程式碼片段編輯。

參數描述
uri: Uri

資源識別碼。

edits: ReadonlyArray<[TextEdit | SnippetTextEdit, WorkspaceEditEntryMetadata]>

編輯陣列。

回傳描述
void

為資源設定 (並取代) 筆記本編輯。

參數描述
uri: Uri

資源識別碼。

edits: readonly NotebookEdit[]

編輯陣列。

回傳描述
void

為資源設定 (並取代) 具有中繼資料的筆記本編輯。

參數描述
uri: Uri

資源識別碼。

edits: ReadonlyArray<[NotebookEdit, WorkspaceEditEntryMetadata]>

編輯陣列。

回傳描述
void

WorkspaceEditEntryMetadata

工作區編輯條目的其他資料。支援標記條目,並將條目標記為需要使用者確認。編輯器將具有相同標籤的編輯分組到樹狀節點中,例如,所有標記為「字串變更」的編輯都會是一個樹狀節點。

屬性

人性化可讀的字串,在同一行上以較不明顯的方式呈現。

編輯的圖示路徑或 ThemeIcon

人性化可讀的字串,以醒目的方式呈現。

指示需要使用者確認的旗標。

WorkspaceEditMetadata

關於工作區編輯的其他資料。

屬性

向編輯器發出訊號,表示此編輯是重構。

WorkspaceFolder

工作區資料夾是編輯器開啟的可能多個根目錄之一。所有工作區資料夾都是相等的,這表示沒有作用中或主要工作區資料夾的概念。

屬性

此工作區資料夾的序號。

此工作區資料夾的名稱。預設為其 uri 路徑的basename。

此工作區資料夾的關聯 URI。

注意: 刻意選擇 Uri 類型,以便編輯器的未來版本可以支援未儲存在本機磁碟上的工作區資料夾,例如 ftp://server/workspaces/foo

WorkspaceFolderPickOptions

用於設定 工作區資料夾 選取 UI 行為的選項。

屬性

設定為 true 可在焦點移至編輯器的另一個部分或另一個視窗時,保持選擇器開啟。此設定在 iPad 上會被忽略,且永遠為 false。

一個選用性的字串,顯示為輸入框中的預留位置,以引導使用者選取內容。

WorkspaceFoldersChangeEvent

描述 工作區資料夾 集合變更的事件。

屬性

已新增的工作區資料夾。

已移除的工作區資料夾。

WorkspaceSymbolProvider<T>

工作區符號提供者介面定義了擴充功能與 符號搜尋 功能之間的合約。

方法

專案範圍搜尋符合給定查詢字串的符號。

query 參數應以寬鬆的方式 解釋,因為編輯器將對結果套用自己的醒目提示和評分。一個好的經驗法則是進行不區分大小寫的比對,並簡單地檢查 query 的字元是否依序出現在候選符號中。請勿使用前置詞、子字串或類似的嚴格比對。

為了提高效能,實作者可以實作 resolveWorkspaceSymbol,然後提供具有部分 location 物件的符號,而無需定義 range。然後,編輯器將僅針對選取的符號呼叫 resolveWorkspaceSymbol,例如在開啟工作區符號時。

參數描述
query: string

查詢字串,可以是空字串,在這種情況下應傳回所有符號。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T[]>

文件反白的陣列,或解析為此陣列的 thenable 物件。缺少結果可以用返回 undefinednull 或空陣列來表示。

給定符號,填入其 location。每當在 UI 中選取符號時,就會呼叫此方法。提供者可以實作此方法,並從 provideWorkspaceSymbols 傳回不完整的符號,這通常有助於提高效能。

參數描述
symbol: T

要解析的符號。保證是從先前呼叫 provideWorkspaceSymbols 傳回的物件的執行個體。

token: CancellationToken

取消權杖。

回傳描述
ProviderResult<T>

已解析的符號或解析為該符號的 thenable。當未傳回任何結果時,會使用給定的 symbol

API 模式

這些是我們在 VS Code API 中使用的一些常見模式。

Promise

VS Code API 使用 promise 表示非同步作業。從擴充功能中,可以傳回任何類型的 promise,例如 ES6、WinJS、A+ 等。

API 中以 Thenable 類型表示與特定 promise 程式庫的獨立性。Thenable 表示通用分母,即 then 方法。

在大多數情況下,promise 的使用是選用的,當 VS Code 呼叫到擴充功能時,它可以處理結果類型 以及結果類型Thenable。當 promise 的使用為選用時,API 會透過傳回 or 類型來指示這一點。

provideNumber(): number | Thenable<number>

取消符記

作業通常在不穩定的狀態下啟動,該狀態會在作業完成之前變更。例如,IntelliSense 計算開始,而使用者繼續輸入,導致該作業的結果過時。

暴露於此類行為的 API 將會傳遞一個 CancellationToken,您可以在其上檢查取消 (isCancellationRequested) 或在發生取消時收到通知 (onCancellationRequested)。取消符記通常是函式呼叫的最後一個參數,且為選用項目。

可支配物件

VS Code API 對於從 VS Code 取得的資源使用 dispose 模式。這適用於事件接聽、命令、與 UI 互動以及各種語言貢獻。

例如,setStatusBarMessage(value: string) 函式會傳回一個 Disposable,當呼叫 dispose 時,它會再次移除訊息。

事件

VS Code API 中的事件會公開為函式,您可以使用接聽程式函式呼叫這些函式來訂閱。對 subscribe 的呼叫會傳回一個 Disposable,當 dispose 時,它會移除事件接聽程式。

var listener = function(event) {
  console.log('It happened', event);
};

// start listening
var subscription = fsWatcher.onDidDelete(listener);

// do more stuff

subscription.dispose(); // stop listening

事件的名稱遵循 on[Will|Did]VerbNoun? 模式。名稱表示事件是否即將發生 (*onWill*) 或已發生 (*onDid*)、發生了什麼事 (*verb*),以及內容 (*noun*),除非從內容中顯而易見。

VS Code API 的一個範例是 window.onDidChangeActiveTextEditor,這是在作用中文字編輯器 (*noun*) 已 (onDid) 變更 (verb) 時觸發的事件。

嚴格 Null

VS Code API 在適當情況下使用 undefinednull TypeScript 類型,以支援 嚴格 null 檢查