參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

VS Code API

VS Code API 是一組 JavaScript API,您可以在 Visual Studio Code 擴充套件中呼叫它們。此頁面列出了所有可供擴充套件作者使用的 VS Code API。

API 名稱空間和類

此列表是從 VS Code 倉庫的 vscode.d.ts 檔案編譯而成的。

認證

身份驗證的名稱空間。

事件

當身份驗證提供程式的身份驗證會話被新增、刪除或更改時觸發的 Event

函式

獲取使用者已登入指定提供程式的所有帳戶。將其與 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 | AuthenticationGetSessionPresentationOptions}
返回描述
Thenable<AuthenticationSession>

一個可解析為身份驗證會話的 Thenable

獲取與所需範圍匹配的身份驗證會話。如果未註冊具有 providerId 的提供程式,或者使用者不同意與擴充套件共享身份驗證資訊,則拒絕。如果存在多個具有相同範圍的會話,將向用戶顯示一個快速選擇器以選擇他們想要使用的帳戶。

目前,只有兩個由內建擴充套件貢獻到編輯器並實現 GitHub 和 Microsoft 身份驗證的身份驗證提供程式:它們的 providerId 分別是 'github' 和 'microsoft'。

引數描述
providerId: string

要使用的提供程式的 ID

scopes: readonly string[]

表示請求許可權的範圍列表。這些取決於身份驗證提供程式

options: AuthenticationGetSessionOptions & {forceNewSession: true | AuthenticationGetSessionPresentationOptions}
返回描述
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 手勢執行。這些是

  • 面板 - 使用 package.json 中的 commands 部分使命令顯示在 命令面板 中。
  • 快捷鍵 - 使用 package.json 中的 keybindings 部分為您的擴充套件啟用 快捷鍵

其他擴充套件和編輯器本身的命令可供擴充套件訪問。但是,在呼叫編輯器命令時,並非所有引數型別都受支援。

這是一個示例,它註冊一個命令處理程式並將該命令的條目新增到面板中。首先使用識別符號 extension.sayHello 註冊一個命令處理程式。

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

其次,將命令識別符號繫結到它將在面板中顯示的標題 (package.json)。

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

函式

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

  • 注意 1: 執行編輯器命令時,並非所有型別都允許作為引數傳遞。允許的型別包括原始型別 stringbooleannumberundefinednull,以及 PositionRangeUriLocation
  • 注意 2: 執行擴充套件貢獻的命令時沒有限制。
引數描述
command: string

要執行的命令的識別符號。

...rest: any[]

傳遞給命令函式的引數。

返回描述
Thenable<T>

一個可解析為給定命令返回值的 Thenable。當命令處理函式不返回任何內容時,返回 undefined

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

引數描述
filterInternal?: boolean

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

返回描述
Thenable<string[]>

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

註冊一個可以透過鍵盤快捷鍵、選單項、操作或直接呼叫的命令。

使用已存在的命令識別符號兩次註冊命令將導致錯誤。

引數描述
command: string

命令的唯一識別符號。

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

命令處理函式。

thisArg?: any

呼叫處理函式時使用的 this 上下文。

返回描述
Disposable

Disposable,在處置時登出此命令。

註冊一個文字編輯器命令,可以透過鍵盤快捷鍵、選單項、操作或直接呼叫。

文字編輯器命令與普通 命令 不同,它們只在呼叫命令時有活動編輯器時執行。此外,編輯器命令的命令處理程式可以訪問活動編輯器和 編輯 構建器。請注意,編輯構建器僅在回撥執行期間有效。

引數描述
command: string

命令的唯一識別符號。

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

一個命令處理函式,可以訪問 編輯器編輯

thisArg?: any

呼叫處理函式時使用的 this 上下文。

返回描述
Disposable

Disposable,在處置時登出此命令。

評論

函式

建立一個新的 評論控制器 例項。

引數描述
id: string

評論控制器的 id

label: string

評論控制器的人類可讀字串。

返回描述
CommentController

評論控制器 的例項。

debug

用於除錯功能的名稱空間。

變數

當前活動的 除錯控制檯。如果沒有活動的除錯會話,傳送到除錯控制檯的輸出將不顯示。

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

當前聚焦的執行緒或堆疊幀,如果沒有聚焦執行緒或堆疊,則為 undefined。只要有活動的除錯會話,執行緒就可以被聚焦,而堆疊幀只能在會話暫停並檢索到呼叫堆疊時被聚焦。

斷點列表。

事件

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

debug.activeStackItem 更改時觸發的事件。

當斷點集被新增、刪除或更改時發出的 Event

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

當新的 除錯會話 啟動時觸發的 Event

除錯會話 終止時觸發的 Event

函式

新增斷點。

引數描述
breakpoints: readonly Breakpoint[]

要新增的斷點。

返回描述
void

將透過除錯介面卡協議接收的“Source”描述符物件轉換為可用於載入其內容的 Uri。如果源描述符基於路徑,則返回檔案 Uri。如果源描述符使用引用編號,則構造一個需要相應 ContentProvider 和正在執行的除錯會話的特定除錯 Uri(方案 'debug')

如果“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,在會話停止時解析。

env

描述編輯器執行環境的名稱空間。

變數

應用程式的託管位置。在桌面端是 'desktop',在 Web 端是指定的嵌入器,例如 '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 訪問擴充套件。例如,可以從桌面應用程式或 Web 瀏覽器訪問擴充套件。

編輯器在作業系統中註冊的自定義 URI 方案。

事件

當編輯器的日誌級別更改時觸發的 Event

當預設 shell 更改時觸發的 Event。這將觸發新的 shell 路徑。

當用戶啟用或停用遙測時觸發的 Event。如果使用者啟用了遙測,則為 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.env.uriSchemevscode:

注意showTextDocument 是在編輯器中開啟文字文件的正確方法,而不是此函式。

引數描述
target: Uri

應開啟的 URI。

返回描述
Thenable<boolean>

指示開啟是否成功的 Promise。

extensions

用於處理已安裝擴充套件的名稱空間。擴充套件由 Extension 介面表示,該介面允許對它們進行反射。

擴充套件編寫者可以透過從 activate 呼叫返回其 API 公共介面來為其他擴充套件提供 API。

export function activate(context: vscode.ExtensionContext) {
  let api = {
    sum(a, b) {
      return a + b;
    },
    mul(a, b) {
      return a * b;
    }
  };
  // 'export' public api-surface
  return api;
}

當依賴另一個擴充套件的 API 時,請在 package.json 中新增一個 extensionDependencies 條目,並使用 getExtension 函式和 exports 屬性,如下所示

let mathExt = extensions.getExtension('genius.math');
let importedApi = mathExt.exports;

console.log(importedApi.mul(42, 1));

變數

系統當前已知的所有擴充套件。

事件

extensions.all 更改時觸發的事件。這可能發生在擴充套件安裝、解除安裝、啟用或停用時。

函式

透過其完整識別符號(形式為:publisher.name)獲取擴充套件。

引數描述
extensionId: string

擴充套件識別符號。

返回描述
Extension<T> | undefined

一個擴充套件或 undefined

l10n

用於擴充套件 API 中與本地化相關的功能的名稱空間。要正確使用此功能,您必須在擴充套件清單中定義 l10n 並擁有 bundle.l10n。.json 檔案。有關如何生成 bundle.l10n 的更多資訊。.json 檔案,請檢視 vscode-l10n 倉庫

注意:內建擴充套件(例如 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>

用於本地化字串的引數。引數的索引用於匹配本地化字串中的模板佔位符。

返回描述
字串

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

標記字串以進行本地化。如果 env.language 指定的語言有可用的本地化包,並且該包對該訊息有本地化值,則將返回該本地化值(併為任何模板值注入 args 值)。

示例

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

要本地化的訊息。支援命名模板,其中像 {foo}{bar} 這樣的字串被 Record 中對應鍵(foo、bar 等)的值替換。

args: Record<string, any>

用於本地化字串的引數。Record 中鍵的名稱用於匹配本地化字串中的模板佔位符。

返回描述
字串

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

標記字串以進行本地化。如果 env.language 指定的語言有可用的本地化包,並且該包對該訊息有本地化值,則將返回該本地化值(併為任何模板值注入 args 值)。

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

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

返回描述
字串

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

語言

用於參與特定語言編輯器 功能 的名稱空間,例如智慧感知、程式碼操作、診斷等。

存在許多程式語言,並且在語法、語義和正規化方面存在巨大差異。儘管如此,諸如自動單詞補全、程式碼導航或程式碼檢查等功能已在針對不同程式語言的不同工具中流行起來。

編輯器提供了一個 API,透過將所有 UI 和操作都已到位並允許您僅透過提供資料來參與,從而簡化了此類常見功能的提供。例如,要貢獻一個懸停,您所要做的就是提供一個可以呼叫 TextDocumentPosition 並返回懸停資訊的函式。其餘的,例如跟蹤滑鼠、定位懸停、保持懸停穩定等,都由編輯器負責。

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

註冊是使用 文件選擇器 完成的,文件選擇器可以是語言 ID(如 javascript),也可以是更復雜的 過濾器(如 { language: 'typescript', scheme: 'file' })。將文件與此類選擇器匹配將產生一個 分數,該分數用於確定是否以及如何使用提供程式。當分數相等時,後來的提供程式獲勝。對於允許完整多元性的功能(如 懸停),僅檢查分數是否 >0,對於其他功能(如 智慧感知),分數用於確定要求提供程式參與的順序。

事件

當全域性診斷集更改時觸發的 Event。這是新新增和移除的診斷。

函式

建立一個診斷集合。

引數描述
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 型別被呼叫。

每個提供程式可以返回一個或多個 DocumentDropEdit。編輯項根據 DocumentDropEdit.yieldTo 屬性排序。預設情況下,將應用第一個編輯項。如果有任何附加的編輯項,它們將作為可選擇的拖放選項顯示在拖放小部件中。

引數描述
selector: DocumentSelector

定義此提供程式適用的文件的選擇器。

provider: DocumentDropEditProvider<DocumentDropEdit>

一個拖放提供程式。

metadata?: DocumentDropEditProviderMetadata

有關提供程式的附加元資料。

返回描述
Disposable

一個 Disposable,當被處置時,它會登出此提供程式。

為文件註冊格式化提供程式。

可以為一種語言註冊多個提供程式。在這種情況下,提供程式將根據其 分數 進行排序,並使用最佳匹配的提供程式。所選提供程式的失敗將導致整個操作失敗。

引數描述
selector: DocumentSelector

定義此提供程式適用的文件的選擇器。

provider: DocumentFormattingEditProvider

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

返回描述
Disposable

一個 Disposable,當被處置時,它會登出此提供程式。

註冊一個文件高亮提供程式。

可以為一種語言註冊多個提供程式。在這種情況下,提供程式將根據其 分數 進行排序,並按順序請求文件高亮。當提供程式返回一個 非假值非失敗 結果時,該過程停止。

引數描述
selector: DocumentSelector

定義此提供程式適用的文件的選擇器。

provider: DocumentHighlightProvider

一個文件高亮提供程式。

返回描述
Disposable

一個 Disposable,當被處置時,它會登出此提供程式。

註冊一個文件連結提供程式。

可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。

引數描述
selector: DocumentSelector

定義此提供程式適用的文件的選擇器。

provider: DocumentLinkProvider<DocumentLink>

一個文件連結提供程式。

返回描述
Disposable

一個 Disposable,當被處置時,它會登出此提供程式。

註冊一個新的 DocumentPasteEditProvider

可以為一種語言註冊多個提供程式。根據 DocumentPasteProviderMetadata 指定的處理的 MIME 型別,所有為該語言註冊的提供程式都將用於複製和貼上操作。

對於 複製操作,每個提供程式對 DataTransfer 所做的更改將合併到一個 DataTransfer 中,該 DataTransfer 用於填充剪貼簿。

對於 [DocumentPasteEditProvider.providerDocumentPasteEdits 貼上操作](#DocumentPasteEditProvider.providerDocumentPasteEdits 貼上操作),每個提供程式都將被呼叫,並且可以返回一個或多個 DocumentPasteEdit。編輯項根據 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,當被處置時,它會登出此提供程式。

註冊一個連結編輯範圍提供程式。

可以為一種語言註冊多個提供程式。在這種情況下,提供程式按其分數排序,並使用最佳匹配且有結果的提供程式。所選提供程式的失敗將導致整個操作的失敗。

引數描述
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,當被處置時,它會登出此提供程式。

註冊一個重新命名提供程式。

可以為一種語言註冊多個提供程式。在這種情況下,提供程式按其分數排序並按順序詢問。第一個產生結果的提供程式定義整個操作的結果。

引數描述
selector: DocumentSelector

定義此提供程式適用的文件的選擇器。

provider: RenameProvider

一個重新命名提供程式。

返回描述
Disposable

一個 Disposable,當被處置時,它會登出此提供程式。

註冊一個選擇範圍提供程式。

可以為一種語言註冊多個提供程式。在這種情況下,提供程式並行請求,結果合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。

引數描述
selector: DocumentSelector

定義此提供程式適用的文件的選擇器。

provider: SelectionRangeProvider

一個選擇範圍提供程式。

返回描述
Disposable

一個 Disposable,當被處置時,它會登出此提供程式。

註冊一個簽名幫助提供程式。

可以為一種語言註冊多個提供程式。在這種情況下,提供程式按其分數排序並按順序呼叫,直到某個提供程式返回有效結果。

引數描述
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

一個可釋放物件,用於取消設定此配置。

設定(並更改)與給定文件關聯的語言

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

引數描述
document: TextDocument

要更改語言的文件

languageId: string

新的語言識別符號。

返回描述
Thenable<TextDocument>

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

lm

用於語言模型相關功能的名稱空間。

變數

所有擴充套件透過lm.registerTool註冊的所有可用工具的列表。可以使用lm.invokeTool呼叫它們,輸入與它們宣告的`inputSchema`匹配。

事件

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

函式

根據給定的輸入,按名稱呼叫lm.tools中列出的工具。輸入將根據工具宣告的`inputSchema`進行驗證

工具可以由聊天參與者在處理聊天請求的上下文中呼叫,也可以由任何擴充套件在全球範圍內在任何自定義流程中呼叫。

在前一種情況下,呼叫者應傳遞來自聊天請求toolInvocationToken。這確保聊天 UI 為正確的對話顯示工具呼叫。

工具結果文字prompt-tsx部分組成的陣列。如果工具呼叫者使用`vscode/prompt-tsx`,它可以使用`ToolResult`將其響應部分合併到其提示中。如果不是,可以透過帶有LanguageModelToolResultPart的使用者訊息將這些部分傳遞給LanguageModelChat

如果聊天參與者希望在多次互動中保留請求的工具結果,它可以將工具結果儲存在處理程式返回的ChatResult.metadata中,並在下次互動時從ChatResponseTurn.result中檢索它們。

引數描述
name: string

要呼叫的工具的名稱。

options: LanguageModelToolInvocationOptions<object>

呼叫工具時使用的選項。

token?: CancellationToken

一個取消令牌。請參閱 CancellationTokenSource 瞭解如何建立它。

返回描述
Thenable<LanguageModelToolResult>

工具呼叫的結果。

註冊一個LanguageModelChatProvider 注意:您還必須透過 package.json 中的 `languageModelChatProviders` 貢獻點定義語言模型聊天提供程式。

引數描述
vendor: string

此提供商的供應商。必須是全域性唯一的。例如 `copilot` 或 `openai`。

provider: LanguageModelChatProvider<LanguageModelChatInformation>

要註冊的提供程式

返回描述
Disposable

一個可釋放物件,在釋放時取消註冊提供程式。

註冊一個提供程式,用於釋出模型上下文協議(Model Context Protocol)伺服器供編輯器使用。這允許 MCP 伺服器動態地提供給編輯器,除了使用者在其配置檔案中建立的那些之外。

在呼叫此方法之前,擴充套件必須使用相應的id註冊`contributes.mcpServerDefinitionProviders`擴充套件點,例如

    "contributes": {
        "mcpServerDefinitionProviders": [
            {
                "id": "cool-cloud-registry.mcp-servers",
                "label": "Cool Cloud Registry",
            }
        ]
    }

當新的 McpServerDefinitionProvider 可用時,編輯器將向用戶顯示“重新整理”操作以發現新伺服器。為了啟用此流程,擴充套件應在啟用期間呼叫 `registerMcpServerDefinitionProvider`。

引數描述
id: string

提供程式的 ID,對於擴充套件來說是唯一的。

provider: McpServerDefinitionProvider<McpServerDefinition>

要註冊的提供程式

返回描述
Disposable

一個可釋放物件,在釋放時取消註冊提供程式。

註冊一個 LanguageModelTool。該工具還必須在 package.json 的 `languageModelTools` 貢獻點中註冊。註冊的工具可在 lm.tools 列表中供任何擴充套件檢視。但為了讓語言模型看到它,必須在 LanguageModelChatRequestOptions.tools 中將其作為可用工具列表傳遞。

引數描述
name: string
tool: LanguageModelTool<T>
返回描述
Disposable

一個可釋放物件,在釋放時取消註冊工具。

透過選擇器選擇聊天模型。這可能產生多個或沒有聊天模型,擴充套件必須優雅地處理這些情況,特別是在沒有聊天模型存在時。

const models = await vscode.lm.selectChatModels({ family: 'gpt-3.5-turbo' });
if (models.length > 0) {
    const [first] = models;
    const response = await first.sendRequest(...)
    // ...
} else {
    // NO chat models available
}

選擇器可以廣泛匹配給定供應商或家族的所有模型,也可以透過 ID 精確選擇一個模型。請記住,可用模型的集合會隨時間變化,並且在不同模型中提示的效能可能會有所不同。

請注意,擴充套件可以保留此函式返回的結果並在以後使用它們。但是,當 onDidChangeChatModels 事件觸發時,聊天模型列表可能已更改,擴充套件應重新查詢。

引數描述
selector?: LanguageModelChatSelector

聊天模型選擇器。省略時返回所有聊天模型。

返回描述
Thenable<LanguageModelChat[]>

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

notebooks

用於 Notebook 功能的名稱空間。

Notebook 功能由三個鬆散耦合的元件組成

  1. NotebookSerializer 允許編輯器開啟、顯示和儲存 Notebook
  2. NotebookController 擁有 Notebook 的執行,例如它們從程式碼單元格建立輸出。
  3. NotebookRenderer 在編輯器中顯示 Notebook 輸出。它們在單獨的上下文中執行。

函式

建立一個新的 Notebook 控制器。

引數描述
id: string

控制器的識別符號。在每個擴充套件中必須是唯一的。

notebookType: string

此控制器所屬的 Notebook 型別。

label: string

控制器的標籤。

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

控制器的執行處理程式。

返回描述
NotebookController

一個新 Notebook 控制器。

建立用於與特定渲染器通訊的新訊息傳遞例項。

  • 注意 1: 擴充套件只能建立其在 `package.json` 檔案中定義的渲染器。
  • 注意 2: 只有當 `requiresMessaging` 在其 `notebookRenderer` 貢獻中設定為 `always` 或 `optional` 時,渲染器才能訪問訊息傳遞。
引數描述
rendererId: string

要與之通訊的渲染器 ID

返回描述
NotebookRendererMessaging

一個新的 Notebook 渲染器訊息物件。

為給定 Notebook 型別註冊一個單元格狀態列項提供程式

引數描述
notebookType: string

要註冊的 Notebook 型別。

provider: NotebookCellStatusBarItemProvider

一個單元格狀態列提供程式。

返回描述
Disposable

一個 Disposable,當被處置時,它會登出此提供程式。

scm

用於原始碼控制管理的名稱空間。

變數

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

  • 已棄用 - 請改用 SourceControl.inputBox

函式

建立一個新的原始碼控制例項。

引數描述
id: string

原始碼控制的 `id`。應簡短,例如:`git`。

label: string

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

rootUri?: Uri

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

返回描述
SourceControl

一個原始碼控制例項。

tasks

用於任務功能的名稱空間。

變數

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

事件

任務結束時觸發。

當底層程序結束時觸發。對於不執行底層程序的任務,此事件不會觸發。

任務開始時觸發。

當底層程序啟動時觸發。對於不執行底層程序的任務,此事件不會觸發。

函式

執行由編輯器管理的一個任務。返回的任務執行可用於終止該任務。

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

要執行的任務

返回描述
Thenable<TaskExecution>

一個解析為任務執行的 thenable。

獲取系統中所有可用的任務。這包括來自 `tasks.json` 檔案的任務以及透過擴充套件貢獻的任務提供程式提供的任務。

引數描述
filter?: TaskFilter

可選的篩選器,用於選擇特定型別或版本的任務。

返回描述
Thenable<Task[]>

一個解析為任務陣列的 thenable。

註冊一個任務提供程式。

引數描述
type: string

此提供程式註冊的任務種類型別。

provider: TaskProvider<Task>

一個任務提供程式。

返回描述
Disposable

一個 Disposable,當被處置時,它會登出此提供程式。

tests

用於測試功能的名稱空間。透過註冊TestController例項,然後新增TestItems來發布測試。控制器還可以透過建立一個或多個TestRunProfile例項來描述如何執行測試。

函式

建立一個新的測試控制器。

引數描述
id: string

控制器的識別符號,必須全域性唯一。

label: string

控制器的人類可讀標籤。

返回描述
TestController

一個TestController例項。

window

用於處理編輯器當前視窗的名稱空間。包括可見和活動的編輯器,以及用於顯示訊息、選擇和請求使用者輸入的 UI 元素。

變數

設定中配置的當前活動顏色主題。可以透過 `workbench.colorTheme` 設定更改活動主題。

當前活動的筆記本編輯器或 `undefined`。活動編輯器是指當前獲得焦點的編輯器,或者在沒有焦點時,最近更改輸入的編輯器。

當前活動的終端或`undefined`。活動終端是指當前具有焦點或最近具有焦點的終端。

當前活動的編輯器或 `undefined`。活動編輯器是指當前獲得焦點的編輯器,或者在沒有焦點時,最近更改輸入的編輯器。

表示當前視窗的狀態。

表示主編輯器區域內的網格小部件

當前開啟的終端或空陣列。

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

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

事件

當活動顏色主題更改或有更改時觸發的事件

活動的 Notebook 編輯器發生變化時觸發的事件注意,當活動編輯器變為`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>

一個新的快速選擇

建立一個狀態列

引數描述
id: string

該專案的識別符號。在擴充套件程式中必須是唯一的。

alignment?: StatusBarAlignment

專案的對齊方式。

priority?: number

專案的優先順序。值越高,專案應越靠左顯示。

返回描述
StatusBarItem

一個新的狀態列專案。

建立一個狀態列

另請參閱 createStatusBarItem,用於建立帶識別符號的狀態列項。

引數描述
alignment?: StatusBarAlignment

專案的對齊方式。

priority?: number

專案的優先順序。值越高,專案應越靠左顯示。

返回描述
StatusBarItem

一個新的狀態列專案。

建立一個帶有後端 shell 程序的終端。如果工作區目錄存在,終端的當前工作目錄將是工作區目錄。

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

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

shellPath?: string

可選的自定義 shell 可執行檔案路徑,用於終端。

shellArgs?: string | readonly string[]

自定義 shell 可執行檔案的可選引數。在 Windows 上只能使用字串,允許以命令列格式指定 shell 引數。

返回描述
終端

一個新的終端。

建立一個帶有後端 shell 程序的終端

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

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

返回描述
終端

一個新的終端。

建立一個終端,其中擴充套件程式控制其輸入和輸出。

引數描述
options: ExtensionTerminalOptions

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

返回描述
終端

一個新的終端。

建立一個 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

新的網頁視圖面板。

為 `customEditors` 擴充套件點貢獻的 `viewType` 註冊自定義編輯器提供程式。

當自定義編輯器開啟時,會觸發 `onCustomEditor:viewType` 啟用事件。您的擴充套件必須在啟用期間為 `viewType` 註冊一個 CustomTextEditorProviderCustomReadonlyEditorProviderCustomEditorProvider

引數描述
viewType: string

自定義編輯器提供程式的唯一識別符號。這應該與`customEditors`貢獻點中的`viewType`匹配。

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

解析自定義編輯器的提供程式。

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

提供程式的選項。

返回描述
Disposable

登出提供程式的 Disposable。

註冊一個檔案裝飾提供程式。

引數描述
provider: FileDecorationProvider
返回描述
Disposable

一個可釋放物件,用於登出提供程式。

註冊一個提供程式,用於在終端內檢測和處理連結。

引數描述
provider: TerminalLinkProvider<TerminalLink>

提供終端連結的提供程式。

返回描述
Disposable

登出提供程式的 Disposable。

註冊一個貢獻終端配置檔案的提供程式。

引數描述
id: string

貢獻終端配置檔案的 ID。

provider: TerminalProfileProvider

終端配置檔案提供程式。

返回描述
Disposable

一個可釋放物件,用於取消註冊提供程式。

為使用擴充套件點 `views` 貢獻的檢視註冊一個 TreeDataProvider。這將允許您向 TreeView 貢獻資料,並在資料更改時進行更新。

注意:要訪問TreeView並對其執行操作,請使用createTreeView

引數描述
viewId: string

使用擴充套件點 `views` 貢獻的檢視 ID。

treeDataProvider: TreeDataProvider<T>

一個TreeDataProvider,為檢視提供樹形資料

返回描述
Disposable

一個可釋放物件,用於登出TreeDataProvider

註冊一個能夠處理系統範圍URIURI 處理程式。如果有多個視窗開啟,則最頂層的視窗將處理該 URI。URI 處理程式的作用域限定為其貢獻的擴充套件;它只能處理指向該擴充套件本身的 URI。URI 必須遵守以下規則:

  • uri-scheme 必須是 `vscode.env.uriScheme`;
  • uri-authority 必須是擴充套件 ID(例如 `my.extension`);
  • uri-path、-query 和 -fragment 部分是任意的。

例如,如果 `my.extension` 擴充套件註冊了一個 uri 處理程式,它將只被允許處理帶有 `product-name://my.extension` 字首的 uri。

一個擴充套件在其整個啟用生命週期中只能註冊一個 URI 處理程式。

  • 注意:當定向到當前擴充套件的 URI 即將處理時,會觸發 `onUri` 啟用事件。
引數描述
handler: UriHandler

要為此擴充套件註冊的 URI 處理程式。

返回描述
Disposable

一個可釋放物件,用於登出處理程式。

註冊一個 webview 面板序列化程式。

支援恢復的擴充套件應具有 `“onWebviewPanel:viewType”` 啟用事件,並確保在啟用期間呼叫 `registerWebviewPanelSerializer`。

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

引數描述
viewType: string

可序列化的 webview 面板型別。

serializer: WebviewPanelSerializer<unknown>

網頁檢視序列化程式。

返回描述
Disposable

一個可釋放物件,用於登出序列化程式。

註冊一個新的 webview 檢視提供程式。

引數描述
viewId: string

檢視的唯一 ID。這應該與 package.json 中 `views` 貢獻的 `id` 匹配。

provider: WebviewViewProvider

網頁檢視提供者。

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

登出提供程式的 Disposable。

向狀態列設定一條訊息。這是功能更強大的狀態列專案的簡寫。

引數描述
text: string

要顯示的訊息,支援像狀態列專案一樣的圖示替換。

hideAfterTimeout: number

訊息在多少毫秒後將被處置的超時時間。

返回描述
Disposable

一個可釋放物件,用於隱藏狀態列訊息。

向狀態列設定一條訊息。這是功能更強大的狀態列專案的簡寫。

引數描述
text: string

要顯示的訊息,支援像狀態列專案一樣的圖示替換。

hideWhenDone: Thenable<any>

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

返回描述
Disposable

一個可釋放物件,用於隱藏狀態列訊息。

向狀態列設定一條訊息。這是功能更強大的狀態列專案的簡寫。

請注意,狀態列訊息是堆疊的,不再使用時必須釋放。

引數描述
text: string

要顯示的訊息,支援像狀態列專案一樣的圖示替換。

返回描述
Disposable

一個可釋放物件,用於隱藏狀態列訊息。

顯示錯誤訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

...items: T[]

一組將在訊息中呈現為操作的專案。

返回描述
Thenable<T | undefined>

一個解析為所選專案或在被駁回時解析為`undefined`的thenable。

顯示錯誤訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

options: MessageOptions

配置訊息的行為。

...items: T[]

一組將在訊息中呈現為操作的專案。

返回描述
Thenable<T | undefined>

一個解析為所選專案或在被駁回時解析為`undefined`的thenable。

顯示錯誤訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

...items: T[]

一組將在訊息中呈現為操作的專案。

返回描述
Thenable<T | undefined>

一個解析為所選專案或在被駁回時解析為`undefined`的thenable。

顯示錯誤訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

options: MessageOptions

配置訊息的行為。

...items: T[]

一組將在訊息中呈現為操作的專案。

返回描述
Thenable<T | undefined>

一個解析為所選專案或在被駁回時解析為`undefined`的thenable。

向用戶顯示一條資訊訊息。可選地提供一組專案,這些專案將作為可點選按鈕呈現。

引數描述
message: string

要顯示的訊息。

...items: T[]

一組將在訊息中呈現為操作的專案。

返回描述
Thenable<T | undefined>

一個解析為所選專案或在被駁回時解析為`undefined`的thenable。

向用戶顯示一條資訊訊息。可選地提供一組專案,這些專案將作為可點選按鈕呈現。

引數描述
message: string

要顯示的訊息。

options: MessageOptions

配置訊息的行為。

...items: T[]

一組將在訊息中呈現為操作的專案。

返回描述
Thenable<T | undefined>

一個解析為所選專案或在被駁回時解析為`undefined`的thenable。

顯示一條資訊訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

...items: T[]

一組將在訊息中呈現為操作的專案。

返回描述
Thenable<T | undefined>

一個解析為所選專案或在被駁回時解析為`undefined`的thenable。

顯示一條資訊訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

options: MessageOptions

配置訊息的行為。

...items: T[]

一組將在訊息中呈現為操作的專案。

返回描述
Thenable<T | undefined>

一個解析為所選專案或在被駁回時解析為`undefined`的thenable。

開啟一個輸入框,要求使用者輸入。

如果輸入框被取消(例如按下 ESC 鍵),則返回值為 `undefined`。否則,返回值為使用者輸入的字串,如果使用者未輸入任何內容但透過“確定”關閉輸入框,則返回空字串。

引數描述
options?: InputBoxOptions

配置輸入框的行為。

token?: CancellationToken

可用於發出取消訊號的令牌。

返回描述
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

可用於發出取消訊號的令牌。

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

一個 Promise,它解析為選定的專案或 undefined

顯示一個選擇列表。

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

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

options?: QuickPickOptions

配置選擇列表的行為。

token?: CancellationToken

可用於發出取消訊號的令牌。

返回描述
Thenable<string | undefined>

一個 Promise,它解析為選定的項或 undefined

顯示一個允許進行多項選擇的選擇列表。

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

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

options: QuickPickOptions & {canPickMany: true}

配置選擇列表的行為。

token?: CancellationToken

可用於發出取消訊號的令牌。

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

一個 Promise,它解析為選定的專案或 undefined

顯示一個選擇列表。

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

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

options?: QuickPickOptions

配置選擇列表的行為。

token?: CancellationToken

可用於發出取消訊號的令牌。

返回描述
Thenable<T | undefined>

一個 Promise,它解析為選定的項或 undefined

向用戶顯示一個檔案儲存對話方塊,允許選擇要儲存的檔案。

引數描述
options?: SaveDialogOptions

控制對話方塊的選項。

返回描述
Thenable<Uri | undefined>

一個 Promise,它解析為選定的資源或 undefined

showTextDocument(document: TextDocument, column?: ViewColumn, preserveFocus?: boolean): Thenable<TextEditor>

在文字編輯器中顯示給定文件。可以提供 來控制編輯器的顯示位置。可能會更改 活動編輯器

引數描述
document: TextDocument

要顯示的文字文件。

column?: ViewColumn

應顯示 編輯器 的檢視列。預設為 活動 列。將根據需要建立不存在的列,最多可達 ViewColumn.Nine。使用 ViewColumn.Beside 在當前活動編輯器旁邊開啟編輯器。

preserveFocus?: boolean

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

返回描述
Thenable<TextEditor>

一個 Promise,它解析為 編輯器

showTextDocument(document: TextDocument, options?: TextDocumentShowOptions): Thenable<TextEditor>

在文字編輯器中顯示給定文件。可以提供 選項 來控制編輯器的顯示選項。可能會更改 活動編輯器

引數描述
document: TextDocument

要顯示的文字文件。

options?: TextDocumentShowOptions

編輯器選項,用於配置顯示 編輯器 的行為。

返回描述
Thenable<TextEditor>

一個 Promise,它解析為 編輯器

showTextDocument(uri: Uri, options?: TextDocumentShowOptions): Thenable<TextEditor>

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

另請參閱 workspace.openTextDocument

引數描述
uri: Uri

資源識別符號。

options?: TextDocumentShowOptions

編輯器選項,用於配置顯示 編輯器 的行為。

返回描述
Thenable<TextEditor>

一個 Promise,它解析為 編輯器

showWarningMessage<T extends string>(message: string, ...items: T[]): Thenable<T | undefined>

顯示警告訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

...items: T[]

一組將在訊息中呈現為操作的專案。

返回描述
Thenable<T | undefined>

一個解析為所選專案或在被駁回時解析為`undefined`的thenable。

showWarningMessage<T extends string>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>

顯示警告訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

options: MessageOptions

配置訊息的行為。

...items: T[]

一組將在訊息中呈現為操作的專案。

返回描述
Thenable<T | undefined>

一個解析為所選專案或在被駁回時解析為`undefined`的thenable。

showWarningMessage<T extends MessageItem>(message: string, ...items: T[]): Thenable<T | undefined>

顯示警告訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

...items: T[]

一組將在訊息中呈現為操作的專案。

返回描述
Thenable<T | undefined>

一個解析為所選專案或在被駁回時解析為`undefined`的thenable。

showWarningMessage<T extends MessageItem>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>

顯示警告訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

options: MessageOptions

配置訊息的行為。

...items: T[]

一組將在訊息中呈現為操作的專案。

返回描述
Thenable<T | undefined>

一個解析為所選專案或在被駁回時解析為`undefined`的thenable。

showWorkspaceFolderPick(options?: WorkspaceFolderPickOptions): Thenable<WorkspaceFolder | undefined>

顯示 工作區資料夾 的選擇列表以供選擇。如果未開啟任何資料夾,則返回 undefined

引數描述
options?: WorkspaceFolderPickOptions

配置工作區資料夾列表的行為。

返回描述
Thenable<WorkspaceFolder | undefined>

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

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

在編輯器中顯示進度。進度會在執行給定回撥期間以及它返回的 Promise 既未解析也未拒絕期間顯示。進度的顯示位置(以及其他詳細資訊)透過傳遞的 ProgressOptions 定義。

引數描述
options: ProgressOptions

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

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

一個返回 Promise 的回撥函式。進度狀態可以透過提供的 Progress-物件報告。

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

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

返回描述
Thenable<R>

任務回撥返回的 Thenable。

withScmProgress<R>(task: (progress: Progress<number>) => Thenable<R>): Thenable<R>

在原始碼管理檢視中顯示進度,同時執行給定的回撥,並且其返回的 Promise 既未解析也未拒絕。

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

一個返回 Promise 的回撥函式。進度增量可以透過提供的 Progress-物件報告。

返回描述
Thenable<R>

任務返回的 Thenable。

工作區

用於處理當前工作區的名稱空間。工作區是編輯器視窗(例項)中開啟的一個或多個資料夾的集合。

也可以在沒有工作區的情況下開啟編輯器。例如,當您透過從平臺的“檔案”選單中選擇檔案來開啟新的編輯器視窗時,您將不在工作區中。在此模式下,編輯器的某些功能會受到限制,但您仍然可以開啟文字檔案並對其進行編輯。

有關工作區概念的更多資訊,請參閱 https://vscode.com.tw/docs/editor/workspaces

工作區支援 監聽 檔案系統事件和 查詢 檔案。兩者都表現良好,並在編輯器程序外部執行,因此應始終使用它們而不是 nodejs 等效項。

變數

fs: FileSystem

一個 檔案系統 例項,允許與本地和遠端檔案互動,例如 vscode.workspace.fs.readDirectory(someUri) 允許檢索目錄的所有條目,或 vscode.workspace.fs.stat(anotherUri) 返回檔案的元資料。

isTrusted: boolean

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

name: string | undefined

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

有關工作區概念的更多資訊,請參閱 https://vscode.com.tw/docs/editor/workspaces

notebookDocuments: readonly NotebookDocument[]

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

rootPath: string | undefined

workspaceFolders 第一個條目的 uri 作為 string。如果沒有第一個條目,則為 undefined

有關工作區的更多資訊,請參閱 https://vscode.com.tw/docs/editor/workspaces

textDocuments: readonly TextDocument[]

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

workspaceFile: Uri | undefined

工作區檔案的位置,例如

file:///Users/name/Development/myProject.code-workspace

untitled:1555503116870

對於未命名且尚未儲存的工作區。

根據開啟的工作區,該值將是:

  • 當未開啟工作區時為 undefined
  • 否則為工作區檔案的路徑作為 Uri。如果工作區是未命名的,則返回的 URI 將使用 untitled: 方案

該位置可以例如與 vscode.openFolder 命令一起使用,以便在關閉工作區後再次開啟它。

示例

vscode.commands.executeCommand('vscode.openFolder', uriOfWorkspace);

有關工作區概念的更多資訊,請參閱 https://vscode.com.tw/docs/editor/workspaces

注意: 不建議使用 workspace.workspaceFile 將配置資料寫入檔案。為此,您可以使用 workspace.getConfiguration().update(),它在開啟單個資料夾以及未命名或已儲存工作區時都有效。

workspaceFolders: readonly WorkspaceFolder[] | undefined

在編輯器中開啟的工作區資料夾列表(0-N)。當未開啟工作區時為 undefined

有關工作區的更多資訊,請參閱 https://vscode.com.tw/docs/editor/workspaces

事件

onDidChangeConfiguration: Event<ConfigurationChangeEvent>

配置 更改時發出的事件。

onDidChangeNotebookDocument: Event<NotebookDocumentChangeEvent>

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

onDidChangeTextDocument: Event<TextDocumentChangeEvent>

文字文件 更改時發出的事件。這通常發生在 內容 更改時,但也會在其他內容(如 狀態)更改時發生。

onDidChangeWorkspaceFolders: Event<WorkspaceFoldersChangeEvent>

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

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

onDidCloseNotebookDocument: Event<NotebookDocument>

筆記本 被處理時發出的事件。

注意 1:無法保證在編輯器選項卡關閉時觸發此事件。

注意 2:筆記本可以開啟但未在編輯器中顯示,這意味著此事件可以為未在編輯器中顯示的筆記本觸發。

onDidCloseTextDocument: Event<TextDocument>

文字文件 被處理或文字文件的語言 ID 已更改 時發出的事件。

注意 1:無法保證在編輯器選項卡關閉時觸發此事件,請使用 onDidChangeVisibleTextEditors 事件來了解編輯器何時更改。

注意 2:文件可以開啟但未在編輯器中顯示,這意味著此事件可以為未在編輯器中顯示的文件觸發。

onDidCreateFiles: Event<FileCreateEvent>

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

注意: 此事件由使用者手勢觸發,例如從資源管理器建立檔案,或透過 workspace.applyEdit-API 建立檔案,但當檔案在磁碟上更改時(例如由另一個應用程式觸發或使用 workspace.fs-API 時)不會觸發此事件。

onDidDeleteFiles: Event<FileDeleteEvent>

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

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

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

onDidGrantWorkspaceTrust: Event<void>

當前工作區受到信任時觸發的事件。

onDidOpenNotebookDocument: Event<NotebookDocument>

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

onDidOpenTextDocument: Event<TextDocument>

文字文件 被開啟或文字文件的語言 ID 已更改 時發出的事件。

要在可見文字文件開啟時新增事件偵聽器,請使用 window 名稱空間中的 TextEditor 事件。請注意,

onDidRenameFiles: Event<FileRenameEvent>

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

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

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

onDidSaveNotebookDocument: Event<NotebookDocument>

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

onDidSaveTextDocument: Event<TextDocument>

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

onWillCreateFiles: Event<FileWillCreateEvent>

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

注意 1: 此事件由使用者手勢觸發,例如從資源管理器建立檔案,或透過 workspace.applyEdit-API 建立檔案。當檔案在磁碟上更改時(例如由另一個應用程式觸發或使用 workspace.fs-API 時)不會觸發此事件。

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

onWillDeleteFiles: Event<FileWillDeleteEvent>

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

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

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

onWillRenameFiles: Event<FileWillRenameEvent>

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

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

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

onWillSaveNotebookDocument: Event<NotebookDocumentWillSaveEvent>

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

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

注意 2: 訂閱者按順序呼叫,他們可以透過註冊非同步工作來 延遲 儲存。對行為不當的偵聽器的保護措施如下:

  • 所有偵聽器共享一個總體時間預算,如果預算耗盡,則不再呼叫任何偵聽器
  • 長時間執行或頻繁產生錯誤的偵聽器將不再被呼叫

當前閾值為總時間預算 1.5 秒,偵聽器在被忽略之前可以出錯 3 次。

onWillSaveTextDocument: Event<TextDocumentWillSaveEvent>

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

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

注意 2: 訂閱者按順序呼叫,他們可以透過註冊非同步工作來 延遲 儲存。對行為不當的偵聽器的保護措施如下:

  • 所有偵聽器共享一個總體時間預算,如果預算耗盡,則不再呼叫任何偵聽器
  • 長時間執行或頻繁產生錯誤的偵聽器將不再被呼叫

當前閾值為總時間預算 1.5 秒,偵聽器在被忽略之前可以出錯 3 次。

函式

applyEdit(edit: WorkspaceEdit, metadata?: WorkspaceEditMetadata): Thenable<boolean>

根據給定的 工作區編輯,對一個或多個資源進行更改或建立、刪除和重新命名資源。

工作區編輯的所有更改都按照它們新增的相同順序應用。如果在同一位置進行多次文字插入,這些字串將按照“插入”的順序出現在結果文字中,除非它們與資源編輯交錯。無效序列(如“刪除檔案 a”->“在檔案 a 中插入文字”)會導致操作失敗。

當應用僅包含文字編輯的工作區編輯時,採用“全有或全無”策略。如果單個編輯失敗,包含資源建立或刪除的工作區編輯將中止操作,例如,不會嘗試連續編輯。

引數描述
edit: WorkspaceEdit

一個工作區編輯。

metadata?: WorkspaceEditMetadata

編輯的可選 元資料

返回描述
Thenable<boolean>

當編輯可以應用時解析的 thenable。

asRelativePath(pathOrUri: string | Uri, includeWorkspaceFolder?: boolean): string

返回相對於工作區資料夾的路徑。

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

引數描述
pathOrUri: string | Uri

路徑或 uri。如果給定 uri,則使用其 fsPath

includeWorkspaceFolder?: boolean

當為 true 且給定路徑包含在工作區資料夾中時,工作區名稱將新增到前面。當存在多個工作區資料夾時預設為 true,否則為 false

返回描述
字串

相對於根或輸入的路徑。

createFileSystemWatcher(globPattern: GlobPattern, ignoreCreateEvents?: boolean, ignoreChangeEvents?: boolean, ignoreDeleteEvents?: boolean): FileSystemWatcher

建立檔案系統監視器,該監視器根據提供的引數在檔案事件(建立、更改、刪除)上收到通知。

預設情況下,所有開啟的 工作區資料夾 都將遞迴監視檔案更改。

可以透過提供具有 base 路徑的 相對模式 來新增其他路徑以進行檔案監視。如果路徑是資料夾且 pattern 複雜(例如包含 ** 或路徑段),它將遞迴監視,否則將非遞迴監視(即只報告路徑第一級的更改)。

注意,檔案系統中不存在的路徑將延遲監視,直到建立,然後根據提供的引數進行監視。如果刪除監視的路徑,監視器將暫停,並且在路徑再次建立之前不會報告任何事件。

如果可能,請將遞迴監視器的使用保持在最低限度,因為遞迴檔案監視相當消耗資源。

提供 string 作為 globPattern 可作為在所有開啟的工作區資料夾中監視檔案事件的便捷方法。它不能用於新增更多資料夾以進行檔案監視,也不會報告來自不屬於開啟的工作區資料夾的任何檔案事件。

可選地,可以提供忽略某些型別事件的標誌。

要停止監聽事件,必須處置監視器。

注意,來自遞迴檔案監視器的檔案事件可能會根據使用者配置排除。files.watcherExclude 設定有助於減少已知會一次產生許多檔案更改的資料夾(例如 .git 資料夾)的檔案事件開銷。因此,強烈建議使用不需要遞迴監視器的簡單模式進行監視,在這些模式下,排除設定將被忽略,並且您可以完全控制事件。

注意,除非要監視的路徑本身是符號連結,否則符號連結不會自動跟隨檔案監視。

注意,在不區分大小寫的平臺上(通常是 macOS 和 Windows,但不是 Linux),報告已更改的檔案路徑可能與磁碟上的實際路徑大小寫不同。我們允許使用者以任何所需路徑大小寫開啟工作區資料夾,並嘗試保留該大小寫。這意味著

  • 如果路徑在任何工作區資料夾內,則路徑將匹配工作區資料夾的大小寫,直到該路徑部分,並匹配子檔案在磁碟上的大小寫
  • 如果路徑在任何工作區資料夾之外,則大小寫將匹配為監視提供的路徑的大小寫。以同樣的方式,符號連結將保留,即檔案事件將報告符號連結的路徑,因為它已用於監視而不是目標。

注意,刪除資料夾的檔案事件可能不包括包含檔案的事件。如果可能,事件將被聚合以減少發出的事件總數。

示例

檔案監視器的基本結構如下:

const watcher = vscode.workspace.createFileSystemWatcher(new vscode.RelativePattern(<folder>, <pattern>));

watcher.onDidChange(uri => { ... }); // listen to files being changed
watcher.onDidCreate(uri => { ... }); // listen to files/folders being created
watcher.onDidDelete(uri => { ... }); // listen to files/folders getting deleted

watcher.dispose(); // dispose after usage

工作區檔案監視

如果您只關心特定工作區資料夾中的檔案事件

vscode.workspace.createFileSystemWatcher(
  new vscode.RelativePattern(vscode.workspace.workspaceFolders[0], '**/*.js')
);

如果您想監視所有開啟的工作區資料夾中的檔案事件

vscode.workspace.createFileSystemWatcher('**/*.js');

注意: 如果沒有開啟工作區(空視窗),工作區資料夾陣列可能為空。

工作區外檔案監視

要監視資料夾中 *.js 檔案的更改(非遞迴),請將 Uri 傳遞給此類資料夾

vscode.workspace.createFileSystemWatcher(new vscode.RelativePattern(vscode.Uri.file(<path to folder outside workspace>), '*.js'));

並使用複雜的 glob 模式進行遞迴監視

vscode.workspace.createFileSystemWatcher(new vscode.RelativePattern(vscode.Uri.file(<path to folder outside workspace>), '**/*.js'));

這是監視活動編輯器檔案更改的示例

vscode.workspace.createFileSystemWatcher(
  new vscode.RelativePattern(vscode.window.activeTextEditor.document.uri, '*')
);
引數描述
globPattern: GlobPattern

一個 glob 模式,用於控制監視器應報告哪些檔案事件。

ignoreCreateEvents?: boolean

忽略檔案建立事件。

ignoreChangeEvents?: boolean

忽略檔案更改事件。

ignoreDeleteEvents?: boolean

忽略檔案刪除事件。

返回描述
FileSystemWatcher

一個新的檔案系統監視器例項。不再需要時必須進行處理。

decode(content: Uint8Array): Thenable<string>

Uint8Array 中的內容解碼為 string。您必須一次性提供所有內容,以確保編碼能夠正確應用。請勿使用此方法分塊解碼內容,因為這可能導致不正確的結果。

將根據設定和緩衝區內容(例如位元組順序標記)選擇編碼。

注意,如果您解碼編碼不支援的內容,結果可能包含適當的替換字元。

  • 丟擲 - 當內容為二進位制時,此方法將丟擲錯誤。
引數描述
content: Uint8Array

要解碼的文字內容,作為 Uint8Array

返回描述
Thenable<string>

一個解析為已解碼 string 的 thenable。

decode(content: Uint8Array, options: {encoding: string}): Thenable<string>

使用提供的編碼將 Uint8Array 中的內容解碼為 string。您必須一次性提供所有內容,以確保編碼能夠正確應用。請勿使用此方法分塊解碼內容,因為這可能導致不正確的結果。

注意,如果您解碼編碼不支援的內容,結果可能包含適當的替換字元。

  • 丟擲 - 當內容為二進位制時,此方法將丟擲錯誤。
引數描述
content: Uint8Array

要解碼的文字內容,作為 Uint8Array

options: {encoding: string}

選擇編碼的附加上下文。

返回描述
Thenable<string>

一個解析為已解碼 string 的 thenable。

decode(content: Uint8Array, options: {uri: Uri}): Thenable<string>

Uint8Array 中的內容解碼為 string。您必須一次性提供所有內容,以確保編碼能夠正確應用。請勿使用此方法分塊解碼內容,因為這可能導致不正確的結果。

編碼是根據設定和緩衝區內容(例如位元組順序標記)選擇的。

注意,如果您解碼編碼不支援的內容,結果可能包含適當的替換字元。

  • 丟擲 - 當內容為二進位制時,此方法將丟擲錯誤。
引數描述
content: Uint8Array

要解碼的內容,作為 Uint8Array

options: {uri: Uri}

選擇編碼的附加上下文。

返回描述
Thenable<string>

一個解析為已解碼 string 的 thenable。

encode(content: string): Thenable<Uint8Array>

string 的內容編碼為 Uint8Array

將根據設定選擇編碼。

引數描述
content: string

要解碼的內容,作為 string

返回描述
Thenable<Uint8Array>

一個解析為已編碼 Uint8Array 的 thenable。

encode(content: string, options: {encoding: string}): Thenable<Uint8Array>

使用提供的編碼將 string 的內容編碼為 Uint8Array

引數描述
content: string

要解碼的內容,作為 string

options: {encoding: string}

選擇編碼的附加上下文。

返回描述
Thenable<Uint8Array>

一個解析為已編碼 Uint8Array 的 thenable。

encode(content: string, options: {uri: Uri}): Thenable<Uint8Array>

string 的內容編碼為 Uint8Array

編碼是根據設定選擇的。

引數描述
content: string

要解碼的內容,作為 string

options: {uri: Uri}

選擇編碼的附加上下文。

返回描述
Thenable<Uint8Array>

一個解析為已編碼 Uint8Array 的 thenable。

findFiles(include: GlobPattern, exclude?: GlobPattern, maxResults?: number, token?: CancellationToken): Thenable<Uri[]>

在工作區的所有 工作區資料夾 中查詢檔案。

示例

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

一個 glob 模式,定義要搜尋的檔案。glob 模式將根據結果匹配的檔案路徑相對於其工作區進行匹配。使用 相對模式 將搜尋結果限制到 工作區資料夾

exclude?: GlobPattern

一個 glob 模式,定義要排除的檔案和資料夾。glob 模式將根據結果匹配的檔案路徑相對於其工作區進行匹配。當為 undefined 時,將應用預設檔案排除項(例如 files.exclude 設定,但不包括 search.exclude)。當為 null 時,不應用任何排除項。

maxResults?: number

結果的上限。

token?: CancellationToken

可用於向底層搜尋引擎發出取消訊號的令牌。

返回描述
Thenable<Uri[]>

一個解析為資源識別符號陣列的 thenable。如果沒有開啟 工作區資料夾,將不返回任何結果。

getConfiguration(section?: string, scope?: ConfigurationScope): WorkspaceConfiguration

獲取工作區配置物件。

提供 section 識別符號時,只返回配置的該部分。section 識別符號中的點被解釋為子訪問,例如 { myExt: { setting: { doIt: true }}}getConfiguration('myExt.setting').get('doIt') === true

提供範圍時,返回限於該範圍的配置。範圍可以是資源或語言識別符號,或兩者兼而有之。

引數描述
section?: string

點分隔識別符號。

scope?: ConfigurationScope

請求配置的範圍。

返回描述
WorkspaceConfiguration

完整配置或子集。

getWorkspaceFolder(uri: Uri): WorkspaceFolder | undefined

返回包含給定 uri 的 工作區資料夾

  • 當給定 uri 與任何工作區資料夾不匹配時返回 undefined
  • 當給定 uri 本身是工作區資料夾時返回 輸入
引數描述
uri: Uri

一個 uri。

返回描述
WorkspaceFolder | undefined

一個工作區資料夾或 undefined

openNotebookDocument(uri: Uri): Thenable<NotebookDocument>

開啟一個筆記本。如果此筆記本已 載入,則會提前返回。否則,筆記本將被載入,並觸發 onDidOpenNotebookDocument 事件。

注意,返回筆記本的生命週期由編輯器擁有,而不是由擴充套件擁有。這意味著 onDidCloseNotebookDocument 事件可能在任何時候發生。

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

引數描述
uri: Uri

要開啟的資源。

返回描述
Thenable<NotebookDocument>

一個解析為 筆記本 的 Promise

openNotebookDocument(notebookType: string, content?: NotebookData): Thenable<NotebookDocument>

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

另請參閱 workspace.openNotebookDocument

引數描述
notebookType: string

應使用的筆記本型別。

content?: NotebookData

筆記本的初始內容。

返回描述
Thenable<NotebookDocument>

一個解析為 筆記本 的 Promise。

openTextDocument(uri: Uri, options?: {encoding: string}): Thenable<TextDocument>

開啟一個文件。如果此文件已開啟,則會提前返回。否則,文件將被載入,並觸發 didOpen 事件。

文件由 Uri 表示。根據 方案,適用以下規則:

  • file 方案:開啟磁碟上的檔案 (openTextDocument(Uri.file(path)))。如果檔案不存在或無法載入,則會被拒絕。
  • untitled 方案:開啟一個帶有相關路徑的空白未命名檔案 (openTextDocument(Uri.file(path).with({ scheme: 'untitled' })))。語言將從檔名派生。
  • 對於所有其他方案,將諮詢貢獻的 文字文件內容提供程式檔案系統提供程式

注意,返回文件的生命週期由編輯器擁有,而不是由擴充套件擁有。這意味著 onDidClose 事件可能在開啟它之後的任何時候發生。

引數描述
uri: Uri

標識要開啟的資源。

options?: {encoding: string}
返回描述
Thenable<TextDocument>

一個解析為 文件 的 Promise。

openTextDocument(path: string, options?: {encoding: string}): Thenable<TextDocument>

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

另請參閱 workspace.openTextDocument

引數描述
path: string

磁碟上檔案的路徑。

options?: {encoding: string}
返回描述
Thenable<TextDocument>

一個解析為 文件 的 Promise。

openTextDocument(options?: {content: string, encoding: string, language: string}): Thenable<TextDocument>

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

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

用於控制文件建立方式的選項。

返回描述
Thenable<TextDocument>

一個解析為 文件 的 Promise。

registerFileSystemProvider(scheme: string, provider: FileSystemProvider, options?: {isCaseSensitive: boolean, isReadonly: boolean | MarkdownString}): Disposable

為給定方案(例如 ftp)註冊檔案系統提供程式。

每個方案只能有一個提供程式,當某個方案已被另一個提供程式佔用或已保留時,將丟擲錯誤。

引數描述
scheme: string

提供程式註冊的 uri-方案

provider: FileSystemProvider

檔案系統提供程式。

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

關於提供程式的不可變元資料。

返回描述
Disposable

一個 Disposable,當被處置時,它會登出此提供程式。

registerNotebookSerializer(notebookType: string, serializer: NotebookSerializer, options?: NotebookDocumentContentOptions): Disposable

註冊一個 筆記本序列化器

筆記本序列化器必須透過 notebooks 擴充套件點進行貢獻。開啟筆記本檔案時,編輯器將傳送 onNotebook:<notebookType> 啟用事件,擴充套件必須相應地註冊其序列化器。

引數描述
notebookType: string

一個筆記本。

serializer: NotebookSerializer

一個筆記本序列化器。

options?: NotebookDocumentContentOptions

可選的上下文選項,定義筆記本的哪些部分應該持久化

返回描述
Disposable

一個 Disposable,在處理時登出此序列化器。

registerTaskProvider(type: string, provider: TaskProvider<Task>): Disposable

註冊一個任務提供程式。

  • 已棄用 - 請改用 tasks 名稱空間中的相應函式
引數描述
type: string

此提供程式註冊的任務種類型別。

provider: TaskProvider<Task>

一個任務提供程式。

返回描述
Disposable

一個 Disposable,當被處置時,它會登出此提供程式。

registerTextDocumentContentProvider(scheme: string, provider: TextDocumentContentProvider): Disposable

註冊文字文件內容提供程式。

每個方案只能註冊一個提供程式。

引數描述
scheme: string

要註冊的 uri 方案。

provider: TextDocumentContentProvider

一個內容提供程式。

返回描述
Disposable

一個 Disposable,當被處置時,它會登出此提供程式。

save(uri: Uri): Thenable<Uri | undefined>

儲存由給定資源標識的編輯器,並返回結果資源,如果儲存不成功或取消,或者未找到具有給定資源的編輯器,則返回 undefined

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

引數描述
uri: Uri

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

返回描述
Thenable<Uri | undefined>

一個 Thenable,當儲存操作完成時解析。

saveAll(includeUntitled?: boolean): Thenable<boolean>

儲存所有髒檔案。

引數描述
includeUntitled?: boolean

同時儲存在此會話期間建立的檔案。

返回描述
Thenable<boolean>

一個 Thenable,當檔案儲存完成時解析。任何儲存失敗的檔案將返回 false

saveAs(uri: Uri): Thenable<Uri | undefined>

將由給定資源標識的編輯器儲存為使用者提供的新檔名,並返回結果資源,如果儲存不成功或取消,或者未找到具有給定資源的編輯器,則返回 undefined

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

引數描述
uri: Uri

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

返回描述
Thenable<Uri | undefined>

一個 Thenable,當另存為操作完成時解析。

updateWorkspaceFolders(start: number, deleteCount: number, ...workspaceFoldersToAdd: Array<{name: string, uri: Uri}>): boolean

此方法在 vscode.workspace.workspaceFolders 陣列上用一組可選的 workspaceFoldersToAdd 替換從索引 start 開始的 deleteCount工作區資料夾。此“拼接”行為可用於在一個操作中新增、刪除和更改工作區資料夾。

注意: 在某些情況下,呼叫此方法可能導致當前正在執行的擴充套件(包括呼叫此方法的擴充套件)被終止和重新啟動。例如,當新增、刪除或更改第一個工作區資料夾時,(已棄用)rootPath 屬性將更新為指向第一個工作區資料夾。另一個情況是從空工作區或單資料夾工作區過渡到多資料夾工作區(另請參閱:https://vscode.com.tw/docs/editor/workspaces)。

使用 onDidChangeWorkspaceFolders() 事件在工作區資料夾更新時收到通知。

示例: 在工作區資料夾末尾新增新的工作區資料夾

workspace.updateWorkspaceFolders(workspace.workspaceFolders ? workspace.workspaceFolders.length : 0, null, { uri: ...});

示例: 刪除第一個工作區資料夾

workspace.updateWorkspaceFolders(0, 1);

示例: 用新的工作區資料夾替換現有工作區資料夾

workspace.updateWorkspaceFolders(0, 1, { uri: ...});

刪除現有工作區資料夾並以不同名稱重新新增以重新命名該資料夾是有效的。

注意: 不建議在不等待 onDidChangeWorkspaceFolders() 觸發的情況下多次呼叫 updateWorkspaceFolders()

引數描述
start: number

當前開啟的 工作區資料夾 列表中從零開始的位置,從該位置開始刪除工作區資料夾。

deleteCount: number

要刪除的工作區資料夾的可選數量。

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

要替換已刪除工作區資料夾的可選可變工作區資料夾集。每個工作區都由強制性 URI 和可選名稱標識。

返回描述
布林值

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

AccessibilityInformation

控制螢幕閱讀器行為的可訪問性資訊。

屬性

label: string

當專案獲得焦點後,螢幕閱讀器將朗讀的標籤。

role?: string

定義螢幕閱讀器如何與其互動的部件角色。只有在特殊情況下才應設定角色,例如當樹狀元素表現得像複選框時。如果未指定角色,編輯器將自動選擇適當的角色。有關 Aria 角色的更多資訊,請參閱此處:https://w3c.github.io/aria/#widget_roles

AuthenticationForceNewSessionOptions

當呼叫 authentication.getSession 並設定 forceNewSession 標誌時要使用的可選選項。

AuthenticationGetSessionOptions

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

屬性

要獲取會話的帳戶。此資訊將傳遞給身份驗證提供程式,用於建立正確的會話。

是否應清除現有會話首選項。

對於支援同時登入多個帳戶的身份驗證提供程式,當呼叫 getSession 時,將提示使用者選擇要使用的帳戶。此首選項將一直記住,直到使用此標誌呼叫 getSession

注意:此首選項特定於擴充套件。因此,如果一個擴充套件呼叫 getSession,它不會影響另一個擴充套件呼叫 getSession 的會話首選項。此外,此首選項是為當前工作區和全域性設定的。這意味著新工作區將首先使用“全域性”值,然後當提供此標誌時,可以為該工作區設定一個新值。這也意味著如果新工作區設定此標誌,現有工作區不會丟失其首選項。

預設為 false。

如果沒有匹配的會話,是否應執行登入。

如果為 true,將顯示一個模式對話方塊,要求使用者登入。如果為 false,帳戶活動欄圖示上將顯示一個帶數字的徽章。選單下將新增一個用於登入的擴充套件條目。這允許靜默提示使用者登入。

如果提供了選項,也將看到對話方塊,但會提供額外的上下文。

如果存在匹配的會話但擴充套件尚未被授予訪問許可權,將其設定為 true 也會立即顯示一個模式對話方塊,而 false 將在帳戶圖示上新增一個帶數字的徽章。

預設為 false。

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

即使已存在會話,是否應嘗試重新進行身份驗證。

如果為 true,將顯示一個模式對話方塊,要求使用者再次登入。這主要用於令牌需要重新生成因為丟失了某些授權的場景。

如果提供了選項,也將看到對話方塊,但會提供額外的上下文。

如果沒有現有會話且 forceNewSession 為 true,其行為將與 createIfNone 相同。

預設為 false。

是否應在“帳戶”選單中顯示登入指示。

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

預設為 false。

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

AuthenticationGetSessionPresentationOptions

當呼叫 authentication.getSession 並設定互動式選項 forceNewSessioncreateIfNone 時要使用的可選選項。

屬性

當請求重新身份驗證時,將向用戶顯示的可選訊息。提供有關請求使用者重新身份驗證的額外上下文可以幫助提高他們接受的可能性。

AuthenticationProvider

用於向服務執行身份驗證的提供程式。

事件

當會話陣列發生變化或會話內資料發生變化時觸發的 Event

方法

提示使用者登入。

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

如果登入失敗,應返回一個被拒絕的 Promise。

如果提供程式已指定不支援多個帳戶,則如果已存在與這些範圍匹配的會話,則不應呼叫此方法。

引數描述
scopes: readonly string[]

應建立新會話的範圍(許可權)列表。

options: AuthenticationProviderSessionOptions

建立會話的其他選項。

返回描述
Thenable<AuthenticationSession>

一個解析為身份驗證會話的 Thenable。

獲取會話列表。

引數描述
scopes: readonly string[]

可選的範圍列表。如果提供,返回的會話應匹配這些許可權,否則應返回所有會話。

options: AuthenticationProviderSessionOptions

獲取會話的其他選項。

返回描述
Thenable<AuthenticationSession[]>

一個解析為身份驗證會話陣列的 Thenable。

刪除與會話 ID 對應的會話。

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

如果會話無法刪除,提供程式應拒絕並返回錯誤訊息。

引數描述
sessionId: string

要刪除的會話的 ID。

返回描述
Thenable<void>

AuthenticationProviderAuthenticationSessionsChangeEvent

AuthenticationSession 被新增、刪除或更改時觸發的 Event

屬性

已更改的 AuthenticationProviderAuthenticationSessions。當會話的資料(不包括 ID)更新時,會話會發生更改。例如,會話重新整理導致為會話設定新的訪問令牌。

AuthenticationProviderInformation

有關 AuthenticationProvider 的基本資訊。

屬性

身份驗證提供程式的唯一識別符號。

身份驗證提供程式的可讀名稱。

AuthenticationProviderOptions

建立 AuthenticationProvider 的選項。

屬性

此提供程式是否支援同時登入多個帳戶。如果未指定,則預設為 false。

AuthenticationProviderSessionOptions

屬性

正在查詢的帳戶。如果傳入此引數,提供程式應嘗試返回僅與此帳戶相關的會話。

AuthenticationSession

表示當前登入使用者的會話。

屬性

訪問令牌。

與會話關聯的帳戶。

身份驗證會話的識別符號。

會話訪問令牌授予的許可權。可用範圍由 AuthenticationProvider 定義。

AuthenticationSessionAccountInformation

AuthenticationSession 關聯的帳戶資訊。

屬性

帳戶的唯一識別符號。

帳戶的可讀名稱。

AuthenticationSessionsChangeEvent

AuthenticationSession 被新增、刪除或更改時觸發的 Event

屬性

其會話已更改的 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

命中斷點時要顯示的日誌訊息

返回描述
斷點

屬性

條件斷點的可選表示式。

斷點是否啟用。

控制忽略多少次斷點命中的可選表示式。

斷點的唯一 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

取消時觸發的 Event

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 command) 的名稱。

這是當前在 UI 中選擇的模型。擴充套件可以使用此模型,或者使用 lm.selectChatModels 選擇另一個模型。在請求生命週期結束後不要保留此模型。

使用者輸入的提示。

此請求中使用的引用的資訊儲存在 ChatRequest.references 中。

注意,參與者的 [ChatParticipant.name 名稱](#ChatParticipant.name name) 和 [ChatCommand.name 命令](#ChatCommand.name command) 不屬於提示。

提示中引用的引用及其值的列表。

注意,提示包含按原始方式編寫的引用,並且由參與者進一步修改提示,例如透過內聯引用值或建立到包含解析值的標題的連結。引用按其在提示中的範圍倒序排序。這意味著提示中的最後一個引用是此列表中的第一個。這簡化了提示的字串操作。

在處理聊天請求的上下文中呼叫工具時,可以傳遞給 lm.invokeTool 的令牌。這會將工具呼叫與聊天會話相關聯。

使用者附加到其請求的工具列表。

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

ChatRequestHandler

ChatRequestTurn

表示聊天曆史中的使用者請求。

屬性

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

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

使用者輸入的提示。

此請求中使用的引用的資訊儲存在 ChatRequestTurn.references 中。

注意,參與者的 [ChatParticipant.name 名稱](#ChatParticipant.name name) 和 [ChatCommand.name 命令](#ChatCommand.name command) 不屬於提示。

此訊息中使用的引用。

附加到此請求的工具列表。

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

程式碼操作表示可以在程式碼中執行的更改,例如修復問題或重構程式碼。

程式碼操作必須設定 edit 和/或 command。如果同時提供,則首先應用 edit,然後執行命令。

建構函式

建立新的程式碼操作。

程式碼操作至少必須具有 titleedits 和/或 command

引數描述
title: string

程式碼操作的標題。

kind?: CodeActionKind

程式碼操作的型別。

返回描述
CodeAction

屬性

此程式碼操作執行的 Command

如果此命令丟擲異常,編輯器將在當前游標位置向用戶顯示異常訊息。

此程式碼操作解決的 Diagnostics

標記程式碼操作當前無法應用。

  • 停用的程式碼操作不會顯示在自動 燈泡 程式碼操作選單中。

  • 當用戶請求更具體的程式碼操作型別(例如重構)時,停用的操作在程式碼操作選單中顯示為灰色。

  • 如果使用者有自動應用程式碼操作的 按鍵繫結,並且只返回停用的程式碼操作,編輯器將向用戶顯示帶有 reason 的錯誤訊息。

引數描述
reason: string

此程式碼操作當前被停用的可讀描述。

這顯示在程式碼操作 UI 中。

此程式碼操作執行的 工作區編輯

將此標記為首選操作。首選操作由 自動修復 命令使用,並且可以透過按鍵繫結進行定位。

如果快速修復正確解決了底層錯誤,則應將其標記為首選。如果重構是採取行動的最合理選擇,則應將其標記為首選。

程式碼操作的種類

用於篩選程式碼操作。

此程式碼操作的簡短、易讀的標題。

CodeActionContext

包含有關執行程式碼操作的上下文的額外診斷資訊。

屬性

診斷陣列。

請求返回的操作型別。

不屬於此型別的操作會在透過燈泡圖示顯示之前被過濾掉。

請求程式碼操作的原因。

CodeActionKind

程式碼操作的種類。

種類是識別符號的分層列表,由.分隔,例如"refactor.extract.function"

程式碼操作種類用於編輯器的UI元素,如重構上下文選單。使用者還可以透過editor.action.codeAction命令觸發特定種類的程式碼操作。

靜態

空種類。

所有適用於整個筆記本範圍的程式碼操作的基類。使用此類的CodeActionKind應始終以notebook.開頭。

這要求為其建立新的CodeActions並透過擴充套件貢獻。現有的種類不能只新增新的notebook.字首,因為其功能對於整個筆記本範圍是獨有的。

Notebook CodeActionKinds 可以按以下任一方式初始化(兩者都將導致 notebook.source.xyz

  • const newKind = CodeActionKind.Notebook.append(CodeActionKind.Source.append('xyz').value)
  • const newKind = CodeActionKind.Notebook.append('source.xyz')

示例種類/操作

  • notebook.source.organizeImports(可能會將所有匯入移動到一個新的頂部單元格)
  • notebook.source.normalizeVariableNames(可能會將所有變數重新命名為標準化的命名格式)

快速修復操作的基類:quickfix

快速修復操作解決程式碼中的問題,並顯示在常規程式碼操作上下文選單中。

重構操作的基類: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

返回描述
程式碼操作種類

屬性

種類的字串值,例如"refactor.extract.function"

方法

透過向當前種類新增更具體的選擇器來建立新種類。

不修改當前種類。

引數描述
parts: string
返回描述
程式碼操作種類

檢查 `other` 是否為此 `CodeActionKind` 的子型別。

例如,型別"refactor.extract"包含"refactor.extract""refactor.extract.function",但不包含"unicorn.refactor.extract""refactor.extractAll"refactor

引數描述
other: CodeActionKind

要檢查的種類。

返回描述
布林值

檢查此程式碼操作種類是否與 `other` 相交。

例如,型別"refactor.extract"refactor"refactor.extract""refactor.extract.function"相交,但不與"unicorn.refactor.extract""refactor.extractAll"相交。

引數描述
other: CodeActionKind

要檢查的種類。

返回描述
布林值

CodeActionProvider<T>

為程式碼提供上下文操作。程式碼操作通常用於修復問題或美化/重構程式碼。

程式碼操作以幾種不同的方式向用戶展示

  • 燈泡圖示功能,在當前游標位置顯示程式碼操作列表。燈泡圖示的操作列表包括快速修復和重構。
  • 作為使用者可以執行的命令,例如 Refactor。使用者可以從命令面板或使用鍵盤繫結執行這些命令。
  • 作為源操作,例如 Organize Imports
  • 快速修復顯示在問題檢視中。
  • 由 `editor.codeActionsOnSave` 設定在儲存時應用更改。

方法

獲取文件中給定範圍的程式碼操作。

僅返回與使用者在所請求範圍內相關的程式碼操作。同時請記住返回的程式碼操作在 UI 中的顯示方式。例如,燈泡小部件和“重構”命令會將返回的程式碼操作顯示為列表,因此請勿返回大量可能使使用者不知所措的程式碼操作。

引數描述
document: TextDocument

呼叫命令的文件。

range: Range | Selection

呼叫命令的選擇器或範圍。如果正在當前活動編輯器中請求操作,則這將始終是一個選擇

context: CodeActionContext

提供有關正在請求哪些程式碼操作的附加資訊。您可以使用此資訊檢視編輯器正在請求哪種特定型別的程式碼操作,以便返回更相關的操作並避免返回編輯器將丟棄的不相關程式碼操作。

token: CancellationToken

取消令牌。

返回描述
ProviderResult<Array<Command | T>>

程式碼運算元組,例如快速修復或重構。可以透過返回undefinednull或空陣列來表示沒有結果。

出於歷史原因,我們也支援返回Command,但所有新擴充套件都應返回CodeAction物件。

給定一個程式碼操作,填寫其編輯屬性。對所有其他屬性(如標題)的更改將被忽略。已具有編輯的程式碼操作將不會被解析。

注意:返回命令而不是程式碼操作的程式碼操作提供程式無法成功實現此函式。返回命令已被棄用,應改為返回程式碼操作。

引數描述
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

程式碼透鏡表示一個應與原始碼一同顯示的命令,例如引用數量、執行測試的方法等。

當沒有命令與其關聯時,程式碼透鏡是未解析的。出於效能原因,程式碼透鏡的建立和解析應分兩個階段完成。

另請參閱

建構函式

建立一個新的程式碼透鏡物件。

引數描述
range: Range

此程式碼透鏡應用的範圍。

command?: Command

與此程式碼透鏡關聯的命令。

返回描述
CodeLens

屬性

此程式碼透鏡表示的命令。

當有命令關聯時為true

此程式碼透鏡有效的範圍。應只跨越一行。

CodeLensProvider<T>

程式碼透鏡提供程式向源文字新增命令。命令將作為專用水平線顯示在源文字之間。

事件

一個可選事件,用於指示此提供程式中的程式碼透鏡已更改。

方法

計算透鏡列表。此呼叫應儘快返回,如果計算命令的開銷很大,實現者應僅返回設定了範圍的程式碼透鏡物件並實現解析

引數描述
document: TextDocument

呼叫命令的文件。

token: CancellationToken

取消令牌。

返回描述
ProviderResult<T[]>

程式碼透鏡陣列,或解析為程式碼透鏡陣列的 thenable。可以透過返回undefinednull或空陣列來表示沒有結果。

此函式將為每個可見的程式碼透鏡呼叫,通常在滾動和呼叫計算透鏡之後。

引數描述
codeLens: T

必須解析的程式碼透鏡。

token: CancellationToken

取消令牌。

返回描述
ProviderResult<T>

給定的已解析程式碼透鏡或解析為此的 thenable。可以返回給定的item。如果未返回結果,將使用給定的item

Color

表示 RGBA 空間中的顏色。

建構函式

建立一個新的顏色例項。

引數描述
red: number

紅色分量。

green: number

綠色分量。

blue: number

藍色分量。

alpha: number

Alpha 分量。

返回描述
顏色

屬性

此顏色的 alpha 分量,範圍為[0-1]

此顏色的藍色分量,範圍為[0-1]

此顏色的綠色分量,範圍為[0-1]

此顏色的紅色分量,範圍為[0-1]

ColorInformation

表示文件中的顏色範圍。

建構函式

建立一個新的顏色範圍。

引數描述
range: Range

顏色出現的範圍。不能為空。

color: Color

顏色值。

返回描述
顏色資訊

屬性

此顏色範圍的實際顏色值。

此顏色在文件中出現的範圍。

ColorPresentation

顏色呈現物件描述瞭如何將顏色表示為文字,以及從原始碼引用它需要進行哪些編輯。

對於某些語言,一種顏色可以有多種表示形式,例如 css 可以用常量 Red、十六進位制值 #ff0000 或 rgba 和 hsla 形式表示紅色。在 csharp 中,適用其他表示形式,例如 System.Drawing.Color.Red

建構函式

建立一個新的顏色表示。

引數描述
label: string

此顏色表示的標籤。

返回描述
顏色呈現

屬性

一個可選的附加文字編輯陣列,在選擇此顏色呈現時應用。編輯不得與主要編輯或自身重疊。

此顏色表示的標籤。它將顯示在顏色選擇器標題上。預設情況下,這也是選擇此顏色表示時插入的文字。

一個編輯,當選擇此顏色表示時應用於文件。如果為falsy,則使用標籤

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操作。

可選標籤,描述註釋。如果存在,標籤將顯示在作者姓名旁邊。

評論的評論模式

評論的可選反應

將在評論中顯示的可選時間戳。日期將根據使用者的區域設定和偏好進行格式化。

CommentAuthorInformation

評論的作者資訊

屬性

作者的可選圖示路徑

評論作者的顯示名稱

CommentController

評論控制器能夠為編輯器提供評論支援,併為使用者提供與評論互動的各種方式。

屬性

可選的評論範圍提供程式。為任何給定資源 URI 提供支援評論的範圍列表。

如果未提供,使用者將無法發表任何評論。

此評論控制器的 ID。

此評論控制器的易讀標籤。

評論控制器選項

用於建立和刪除評論上的反應的可選反應處理程式。

引數描述
comment: Comment
reaction: CommentReaction
返回描述
Thenable<void>

方法

建立評論執行緒。評論執行緒建立後將顯示在可見文字編輯器(如果資源匹配)和評論面板中。

引數描述
uri: Uri

建立執行緒的文件的 URI。

range: Range

評論執行緒在文件中的範圍。

comments: readonly Comment[]

執行緒的有序評論。

返回描述
評論執行緒

銷燬此評論控制器。

一旦銷燬,此評論控制器建立的所有評論執行緒也將從編輯器和評論面板中移除。

引數描述
返回描述
void

CommentingRangeProvider

評論控制器的評論範圍提供程式。

方法

為給定文件提供允許建立新評論執行緒的範圍列表,如果不支援則為 null。

引數描述
document: TextDocument
token: CancellationToken
返回描述
ProviderResult<Range[] | CommentingRanges>

CommentingRanges

CommentingRangeProvider 允許評論的範圍。

屬性

允許在沒有特定範圍的檔案中添加註釋。

允許建立新評論執行緒的範圍。

CommentMode

評論的評論模式

列舉成員

顯示評論編輯器

顯示評論的預覽

CommentOptions

屬性

當評論輸入框獲得焦點時,可選的字串作為佔位符顯示。

當註釋輸入框摺疊時,可選的字串顯示在註釋輸入框上。

CommentReaction

評論的反應

屬性

評論作者是否對此反應作出反應

對此反應作出反應的使用者數量

UI 中顯示的反應圖示。

反應的人類可讀標籤

CommentReply

為註冊在comments/commentThread/context中的操作提供的命令引數。

屬性

評論編輯器中的值

活動的評論執行緒

CommentRule

描述語言的註釋工作方式。

屬性

塊註釋字元對,例如/* block comment */

行註釋標記,例如 // this is a comment

CommentThread

一組評論,代表文件中特定範圍的對話。

屬性

執行緒是否支援回覆。預設為 true。

開啟文件時執行緒應摺疊還是展開。預設為摺疊。

執行緒的有序評論。

評論執行緒的上下文值。這可用於貢獻執行緒特定的操作。例如,給評論執行緒一個上下文值editable。當使用menus擴充套件點向comments/commentThread/title貢獻操作時,您可以在when表示式中為鍵commentThread指定上下文值,例如commentThread == editable

"contributes": {
  "menus": {
    "comments/commentThread/title": [
      {
        "command": "extension.deleteCommentThread",
        "when": "commentThread == editable"
      }
    ]
  }
}

這將僅顯示contextValueeditable的評論執行緒的extension.deleteCommentThread操作。

描述評論執行緒的可選人類可讀標籤

評論執行緒在文件中的範圍。執行緒圖示將顯示在範圍的最後一行。如果設定為 undefined,則評論將與檔案關聯,而不是特定範圍。

評論執行緒的可選狀態,可能會影響評論的顯示方式。

建立執行緒的文件的 URI。

方法

銷燬此評論執行緒。

一旦銷燬,此評論執行緒將適當地從可見編輯器和評論面板中移除。

引數描述
返回描述
void

CommentThreadCollapsibleState

評論執行緒的可摺疊狀態

列舉成員

確定專案是否摺疊

確定專案是否展開

CommentThreadState

評論執行緒的狀態。

列舉成員

未解決的執行緒狀態

已解決的執行緒狀態

CompletionContext

包含有關觸發完成提供程式的上下文的附加資訊。

屬性

觸發完成項提供程式的字元。

如果提供程式不是由字元觸發的,則為undefined

當完成提供程式被觸發時,觸發字元已在文件中。

完成是如何觸發的。

CompletionItem

完成項表示建議完成正在輸入的文字的文字片段。

只需從標籤建立完成項即可。在這種情況下,完成項將使用給定的標籤或插入文字替換游標處的單詞。否則使用給定的編輯

在編輯器中選擇一個完成項時,其定義或合成的文字編輯將應用於所有游標/選擇,而附加文字編輯將按提供的方式應用。

另請參閱

建構函式

建立一個新的完成項。

完成項至少必須有一個標籤,該標籤將用作插入文字以及排序和過濾。

引數描述
label: string | CompletionItemLabel

完成的標籤。

kind?: CompletionItemKind

完成的種類

返回描述
完成項

屬性

一個可選的附加文字編輯陣列,在選擇此完成項時應用。編輯不得與主要編輯或自身重疊。

一個可選的命令,在此完成項插入執行。注意,對當前文件的額外修改應使用additionalTextEdits屬性描述。

當此補全項處於活動狀態時,按下可選的字元集將首先接受它,然後輸入該字元。注意,所有提交字元的length都應為1,多餘的字元將被忽略。

人類可讀的字串,包含此項的附加資訊,如型別或符號資訊。

表示文件註釋的人類可讀字串。

在過濾一組完成項時應使用的字串。如果為falsy,則使用標籤

請注意,過濾文字是與由範圍屬性定義的領先詞(字首)匹配的。

在選擇此完成項時應插入文件的字串或片段。如果為falsy,則使用標籤

保留insertText的空白。預設情況下,編輯器會調整新行的前導空白,使其與接受專案的行的縮排匹配 - 將此設定為true將阻止此操作。

此完成項的種類。編輯器根據種類選擇圖示。

此完成項的標籤。預設情況下,這也是選擇此完成項時插入的文字。

顯示時選擇此項。注意,只能選擇一個完成項,並且編輯器會決定選擇哪個項。規則是,那些最匹配的項中的第一個項被選中。

一個範圍或一個插入和替換範圍,用於選擇應由該完成項替換的文字。

省略時,當前詞的範圍用作替換範圍,當前詞的開頭到當前位置用作插入範圍。

注1:範圍必須是單行,並且必須包含請求完成的位置。注2:插入範圍必須是替換範圍的字首,這意味著它必須包含在替換範圍中並從同一位置開始。

在與其他項比較時應使用的字串。如果為falsy,則使用標籤

請注意,sortText僅用於完成項的初始排序。當有一個領先詞(字首)時,排序基於完成項與該字首的匹配程度,初始排序僅在完成項匹配程度相同時使用。字首由range屬性定義,因此每個完成項可能不同。

此完成項的標籤。

  • 已廢棄 - 請改用CompletionItem.insertTextCompletionItem.range

選擇此完成項時應用於文件的編輯。如果提供了編輯,則忽略insertText的值。

編輯的範圍必須是單行,並且與請求完成的行在同一行。

CompletionItemKind

完成項種類。

列舉成員

Text完成項種類。

Method完成項種類。

Function完成項種類。

Constructor完成項種類。

Field完成項種類。

Variable完成項種類。

Class完成項種類。

Interface完成項種類。

Module完成項種類。

Property完成項種類。

Unit完成項種類。

Value完成項種類。

Enum完成項種類。

Keyword完成項種類。

Snippet完成項種類。

Color完成項種類。

File完成項種類。

Reference完成項種類。

Folder完成項種類。

EnumMember完成項種類。

Constant完成項種類。

Struct完成項種類。

Event完成項種類。

Operator完成項種類。

TypeParameter完成項種類。

User完成項種類。

Issue完成項種類。

CompletionItemLabel

完成項的結構化標籤。

屬性

一個可選的字串,顯示在CompletionItemLabel.detail之後,顯示得不那麼突出。應用於完全限定名或檔案路徑。

一個可選字串,在label後直接顯示,不帶任何空格,顯示得不那麼突出。應用於函式簽名或型別註解。

此完成項的標籤。

預設情況下,這也是選擇此完成項時插入的文字。

CompletionItemProvider<T>

完成項提供程式介面定義了擴充套件和IntelliSense之間的約定。

提供程式可以透過實現resolveCompletionItem函式來延遲detaildocumentation屬性的計算。但是,用於初始排序和過濾的屬性(如sortTextfilterTextinsertTextrange)在解析期間不得更改。

提供程式會根據使用者手勢明確請求或(取決於配置)在鍵入單詞或觸發字元時隱式請求完成。

方法

為給定位置和文件提供完成項。

引數描述
document: TextDocument

呼叫命令的文件。

position: Position

呼叫命令的位置。

token: CancellationToken

取消令牌。

context: CompletionContext

完成是如何觸發的。

返回描述
ProviderResult<CompletionList<T> | T[]>

一個完成項陣列、一個完成列表,或解析為其中之一的 thenable。可以透過返回undefinednull或空陣列來表示沒有結果。

給定一個完成項,填寫更多資料,如文件註釋詳細資訊

編輯器只會解析一次完成項。

注意,此函式在完成項已在 UI 中顯示時或在已選擇插入項時呼叫。因此,不能更改任何會改變顯示(標籤、排序、過濾等)或(主要)插入行為(插入文字)的屬性。

此函式可能會填充 additionalTextEdits。但是,這意味著項可能會在解析完成之前插入,在這種情況下,編輯器將盡力應用這些附加的文字編輯。

引數描述
item: T

UI 中當前處於活動狀態的補全項。

token: CancellationToken

取消令牌。

返回描述
ProviderResult<T>

已解析的補全項或解析為該項的 Thenable。返回給定的 item 是可以的。如果沒有返回結果,將使用給定的 item

CompletionItemTag

補全項標籤是用於調整補全項渲染的額外註釋。

列舉成員

將補全渲染為已過時,通常使用刪除線。

CompletionList<T>

表示要在編輯器中呈現的 補全項 集合。

建構函式

建立一個新的補全列表。

引數描述
items?: T[]

補全項。

isIncomplete?: boolean

列表不完整。

返回描述
CompletionList<T>

屬性

此列表不完整。進一步輸入應導致重新計算此列表。

補全項。

CompletionTriggerKind

觸發 補全提供程式 的方式

列舉成員

補全正常觸發。

補全由觸發字元觸發。

由於當前補全列表不完整,補全被重新觸發

ConfigurationChangeEvent

描述配置更改的事件

方法

檢查給定部分是否已更改。如果提供了作用域,則檢查給定作用域下的資源部分是否已更改。

引數描述
section: string

配置名稱,支援點式名稱。

scope?: ConfigurationScope

要檢查的作用域。

返回描述
布林值

如果給定部分已更改,則為 true

ConfigurationScope

可用的配置作用域

  • 表示資源的 Uri
  • 表示開啟的文字文件的 TextDocument
  • 表示工作區資料夾的 WorkspaceFolder
  • 包含以下內容的物件
    • uri:文字文件的可選 Uri
    • languageId:文字文件的語言識別符號

ConfigurationTarget

配置目標

列舉成員

全域性配置

工作區配置

工作區資料夾配置

CustomDocument

表示 CustomEditorProvider 使用的自定義文件。

自定義文件僅在給定的 CustomEditorProvider 中使用。CustomDocument 的生命週期由編輯器管理。當 CustomDocument 沒有更多引用時,它將被釋放。

屬性

此文件關聯的 uri。

方法

釋放自定義文件。

當給定 CustomDocument 沒有更多引用時(例如,當與文件關聯的所有編輯器都已關閉時),編輯器會呼叫此函式。

引數描述
返回描述
void

CustomDocumentBackup

A 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

如果提供了此項,您的擴充套件程式應從備份恢復編輯器,而不是從使用者工作區中的檔案讀取。

如果 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

表示當前備份由於新備份即將到來而被取消的令牌。您的擴充套件程式如何響應取消取決於您。例如,如果您的擴充套件程式正在一個耗時操作中備份一個大檔案,您的擴充套件程式可能會決定完成正在進行的備份而不是取消它,以確保編輯器有一些有效的備份。

返回描述
Thenable<CustomDocumentBackup>

為給定資源建立一個新文件。

當第一次開啟給定資源的編輯器時,會呼叫 openCustomDocument。然後,開啟的文件將傳遞給 resolveCustomEditor,以便向用戶顯示編輯器。

如果使用者打開了額外的編輯器,則會重新使用已開啟的 CustomDocument。當給定資源的所有編輯器都關閉時,CustomDocument 將被釋放。此時開啟編輯器將再次觸發 openCustomDocument 呼叫。

引數描述
uri: Uri

要開啟的文件的 Uri。

openContext: CustomDocumentOpenContext

有關開啟自定義文件的附加資訊。

token: CancellationToken

一個取消令牌,指示不再需要結果。

返回描述
T | Thenable<T>

自定義文件。

解析給定資源的自定義編輯器。

每當使用者為此 CustomEditorProvider 開啟新編輯器時,都會呼叫此函式。

引數描述
document: T

正在解析的資源的文件。

webviewPanel: WebviewPanel

用於顯示此資源的編輯器 UI 的 webview 面板。

在解析過程中,提供程式必須填充內容 webview 面板的初始 html,並連線它感興趣的所有事件監聽器。提供程式還可以持有 WebviewPanel,以便以後使用,例如在命令中。有關更多詳細資訊,請參見 WebviewPanel

token: CancellationToken

一個取消令牌,指示不再需要結果。

返回描述
void | Thenable<void>

可選的 thenable,指示自定義編輯器已解析。

將自定義文件恢復到上次儲存的狀態。

當用戶在自定義編輯器中觸發 File: Revert File 時,編輯器會呼叫此方法。(請注意,這僅用於編輯器的 File: Revert File 命令,而不用於檔案的 git revert)。

要實現 revert,實現者必須確保 document 的所有編輯器例項(webview)都以相同的狀態顯示文件,即儲存狀態。這通常意味著從工作區重新載入檔案。

引數描述
document: T

要恢復的文件。

cancellation: CancellationToken

指示不再需要恢復的令牌。

返回描述
Thenable<void>

表示更改已完成的 Thenable。

儲存自定義文件。

當用戶儲存自定義編輯器時,編輯器會呼叫此方法。這可能發生在使用者在自定義編輯器處於活動狀態時觸發儲存、透過 save all 等命令,或者如果啟用自動儲存。

要實現 save,實現者必須持久化自定義編輯器。這通常意味著將自定義文件的檔案資料寫入磁碟。save 完成後,任何關聯的編輯器例項將不再標記為髒。

引數描述
document: T

要儲存的文件。

cancellation: CancellationToken

指示不再需要儲存的令牌(例如,如果觸發了另一個儲存)。

返回描述
Thenable<void>

表示儲存已完成的 Thenable。

將自定義文件儲存到其他位置。

當用戶在自定義編輯器上觸發“另存為”時,編輯器會呼叫此方法。實現者必須將自定義編輯器持久化到 destination

當用戶接受另存為時,當前編輯器將被替換為新儲存檔案的非髒編輯器。

引數描述
document: T

要儲存的文件。

destination: Uri

儲存到位置。

cancellation: CancellationToken

指示不再需要儲存的令牌。

返回描述
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

一個取消令牌,指示不再需要結果。

返回描述
T | Thenable<T>

自定義文件。

解析給定資源的自定義編輯器。

每當使用者為此 CustomEditorProvider 開啟新編輯器時,都會呼叫此函式。

引數描述
document: T

正在解析的資源的文件。

webviewPanel: WebviewPanel

用於顯示此資源的編輯器 UI 的 webview 面板。

在解析過程中,提供程式必須填充內容 webview 面板的初始 html,並連線它感興趣的所有事件監聽器。提供程式還可以持有 WebviewPanel,以便以後使用,例如在命令中。有關更多詳細資訊,請參見 WebviewPanel

token: CancellationToken

一個取消令牌,指示不再需要結果。

返回描述
void | Thenable<void>

可選的 thenable,指示自定義編輯器已解析。

CustomTextEditorProvider

用於基於文字的自定義編輯器的提供程式。

基於文字的自定義編輯器使用 TextDocument 作為其資料模型。這大大簡化了自定義編輯器的實現,因為它允許編輯器處理許多常見操作,例如撤消和備份。提供程式負責在 webview 和 TextDocument 之間同步文字更改。

方法

解析給定文字資源的自定義編輯器。

當用戶首次為 CustomTextEditorProvider 開啟資源,或者他們使用此 CustomTextEditorProvider 重新開啟現有編輯器時,會呼叫此函式。

引數描述
document: TextDocument

要解析的資源的文件。

webviewPanel: WebviewPanel

用於顯示此資源的編輯器 UI 的 webview 面板。

在解析過程中,提供程式必須填充內容 webview 面板的初始 html,並連線它感興趣的所有事件監聽器。提供程式還可以持有 WebviewPanel,以便以後使用,例如在命令中。有關更多詳細資訊,請參見 WebviewPanel

token: CancellationToken

一個取消令牌,指示不再需要結果。

返回描述
void | Thenable<void>

表示自定義編輯器已解析的 Thenable。

DataTransfer

一個對映,包含相應傳輸資料的 MIME 型別對映。

實現 handleDrag 的拖放控制器可以向資料傳輸新增額外的 MIME 型別。這些額外的 MIME 型別僅在拖動是從同一拖放控制器中的元素髮起時才包含在 handleDrop 中。

建構函式

引數描述
返回描述
資料傳輸

方法

獲取一個新的迭代器,其中包含此資料傳輸中每個元素的 [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()ed 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 的擴充套件程式在同一個擴充套件主機中執行,就可以檢索原始物件。

方法

嘗試獲取與此資料傳輸項關聯的 檔案

請注意,檔案物件僅在拖放操作的範圍內有效。

引數描述
返回描述
DataTransferFile

資料傳輸的檔案,如果專案不是檔案或無法訪問檔案資料,則為 undefined

獲取此專案的字串表示形式。

如果 DataTransferItem.value 是一個物件,則返回 json 字串化 DataTransferItem.value 結果。

引數描述
返回描述
Thenable<string>

DebugAdapter

如果除錯介面卡實現了 DebugAdapter 介面,則可以將其註冊到編輯器,該介面卡實現了除錯介面卡協議。

事件

除錯介面卡向編輯器傳送除錯介面卡協議訊息後觸發的事件。訊息可以是請求、響應或事件。

方法

釋放此物件。

引數描述
返回描述
任意

處理除錯介面卡協議訊息。訊息可以是請求、響應或事件。結果或錯誤透過 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

啟動除錯會話 的選項。

屬性

控制除錯會話的父會話是否顯示在 CALL STACK 檢視中,即使它只有一個子會話。預設情況下,除錯會話從不隱藏其父會話。如果 compact 為 true,則具有單個子會話的除錯會話將在 CALL STACK 檢視中隱藏,以使樹更緊湊。

控制此會話是應該有獨立的除錯控制檯還是與父會話共享除錯控制檯。對於沒有父會話的會話無效。預設為 Separate。

控制是否將“重新啟動”等生命週期請求傳送到新建立的會話或其父會話。預設情況下(如果該屬性為 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

資源識別符號。

返回描述
布林值

如果此集合具有給定資源的診斷,則為 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

表示可以釋放資源(例如事件監聽或計時器)的型別。

靜態

將許多可處置物件合併為一個。當您擁有具有 dispose 函式但不是 Disposable 例項的物件時,可以使用此方法。

引數描述
...disposableLikes: Array<{dispose: () => any}>

至少具有 dispose 函式成員的物件。請注意,非同步 dispose 函式不會被等待。

返回描述
Disposable

返回一個新的可處置物件,該物件在處置時將處置所有提供的可處置物件。

建構函式

建立一個新的可處置物件,在處置時呼叫所提供的函式。

注意,非同步函式不會被等待。

引數描述
callOnDispose: () => any

處置某物的函式。

返回描述
Disposable

方法

釋放此物件。

引數描述
返回描述
任意

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

使用 files 表示如果DataTransfer中存在任何檔案,則應呼叫提供程式。請注意,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

要檢查的種類。

返回描述
布林值

檢查此型別是否與 other 相交。

例如,型別 "text.plain"text"text.plain""text.plain.list" 相交,但不與 "unicorn""textUnicorn.plain" 相交。

引數描述
other: DocumentDropOrPasteEditKind

要檢查的種類。

返回描述
布林值

DocumentFilter

文件篩選器透過不同的屬性(如語言、其資源的方案或應用於路徑的 glob 模式)表示文件。

示例 適用於磁碟上的 TypeScript 檔案的語言篩選器

{ language: 'typescript', scheme: 'file' }

示例 適用於所有 package.json 路徑的語言篩選器

{ language: 'json', pattern: '**/package.json' }

屬性

語言 ID,例如 typescript

筆記本的型別,例如 jupyter-notebook。這允許縮小單元格文件所屬的筆記本型別。

注意,設定 notebookType 屬性會改變 schemepattern 的解釋方式。設定後,它們將根據筆記本 URI(而不是文件 URI)進行評估。

示例 匹配 Jupyter 筆記本中尚未儲存 (untitled) 的 Python 文件

{ language: 'python', notebookType: 'jupyter-notebook', scheme: 'untitled' }

匹配文件絕對路徑的glob 模式。使用相對模式將文件篩選到工作區資料夾

Uri 方案,例如 fileuntitled

DocumentFormattingEditProvider

文件格式化提供程式介面定義了擴充套件和格式化功能之間的約定。

方法

為整個文件提供格式化編輯。

引數描述
document: TextDocument

呼叫命令的文件。

options: FormattingOptions

控制格式化的選項。

token: CancellationToken

取消令牌。

返回描述
ProviderResult<TextEdit[]>

一組文字編輯或解析為此類的 thenable。可以透過返回 undefinednull 或空陣列來表示沒有結果。

DocumentHighlight

文件高亮是文字文件中值得特別注意的範圍。通常,文件高亮透過更改其範圍的背景顏色來視覺化。

建構函式

建立一個新的文件高亮物件。

引數描述
range: Range

高亮適用的範圍。

kind?: DocumentHighlightKind

高亮型別,預設為文字

返回描述
DocumentHighlight

屬性

高亮型別,預設為文字

此高亮適用的範圍。

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 或空陣列來表示沒有結果。

給定一個連結,填充其目標。當在 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>

dataTransfer 的所有更改都完成時解析的可選 thenable。

使用者在 文字編輯器 中貼上之前呼叫。

返回的編輯可以替換標準貼上行為。

引數描述
document: TextDocument

貼上到的文件。

ranges: readonly Range[]

要貼上到的 文件 中的範圍。

dataTransfer: DataTransfer

與貼上相關聯的 資料傳輸。此物件僅在貼上操作期間有效。

context: DocumentPasteEditContext

貼上的附加上下文。

token: CancellationToken

取消令牌。

返回描述
ProviderResult<T[]>

可以應用貼上的潛在 編輯 集。一次只應用一個返回的 DocumentPasteEdit。如果所有提供程式返回多個編輯,則自動應用第一個編輯,並顯示一個小部件,允許使用者切換到其他編輯。

在應用編輯之前填充 DocumentPasteEdit.additionalEdit 的可選方法。

此方法為每個編輯呼叫一次,如果生成完整編輯可能需要很長時間,則應使用此方法。Resolve 只能用於更改 DocumentPasteEdit.insertTextDocumentPasteEdit.additionalEdit

引數描述
pasteEdit: T

要解析的 DocumentPasteEdit

token: CancellationToken

取消令牌。

返回描述
ProviderResult<T>

已解析的貼上編輯或解析為該編輯的 thenable。返回給定的 pasteEdit 是可以的。如果沒有返回結果,則使用給定的 pasteEdit

DocumentPasteProviderMetadata

提供有關 DocumentPasteEditProvider 如何工作的附加元資料。

屬性

prepareDocumentPaste 在複製時可能新增的 MIME 型別。

應為其呼叫 provideDocumentPasteEdits 的 MIME 型別。

這可以是精確的 MIME 型別,例如 image/png,也可以是萬用字元模式,例如 image/*

對於從資源管理器或工作臺中其他樹檢視拖放的資源,請使用 text/uri-list

使用 files 表示如果 DataTransfer 中存在任何 檔案,則應呼叫提供程式。請注意,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]。可以透過使用位標誌設定多個標記修飾符,因此 tokenModifier 值為 3 首先被視為二進位制 0b00000011,這意味著 [tokenModifiers[0], tokenModifiers[1]],因為位 0 和 1 已設定。使用此圖例,標記現在是
   { line: 2, startChar:  5, length: 3, tokenType: 0, tokenModifiers: 3 },
   { line: 2, startChar: 10, length: 4, tokenType: 1, tokenModifiers: 0 },
   { line: 5, startChar:  2, length: 7, tokenType: 2, tokenModifiers: 0 }
  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

應該顯示選擇的範圍。

返回描述
文件符號

屬性

此符號的子節點,例如類的屬性。

此符號的更多詳細資訊,例如函式的簽名。

此符號的種類。

此符號的名稱。

包含此符號的範圍,不包括前導/尾隨空白,但包括所有其他內容,例如註釋和程式碼。

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

此符號的標籤。

DocumentSymbolProvider

文件符號提供程式介面定義了擴充套件與 轉到符號 功能之間的契約。

方法

為給定文件提供符號資訊。

引數描述
document: TextDocument

呼叫命令的文件。

token: CancellationToken

取消令牌。

返回描述
ProviderResult<DocumentSymbol[] | SymbolInformation[]>

一個文件高亮陣列或解析為此類的 thenable。可以透過返回 undefinednull 或空陣列來表示沒有結果。

DocumentSymbolProviderMetadata

有關文件符號提供程式的元資料。

屬性

當一個文件顯示多個大綱樹時顯示的易讀字串。

EndOfLine

表示 文件 中的行結束字元序列。

列舉成員

換行符 \n 字元。

回車換行符 \r\n 序列。

EnterAction

描述按 Enter 鍵時執行的操作。

屬性

描述在新行和縮排之後要附加的文字。

描述如何處理縮排。

描述從新行的縮排中移除的字元數。

EnvironmentVariableCollection

擴充套件可以應用於程序環境的突變集合。

屬性

環境變數集合的描述,這將用於在 UI 中描述更改。

集合是否應為工作區快取並在視窗重新載入時應用於終端。當為 true 時,集合將在視窗重新載入時立即啟用。此外,如果存在快取版本,此 API 將返回快取版本。當擴充套件被解除安裝或集合被清除時,集合將失效。預設為 true。

方法

將值附加到環境變數。

請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前的所有替換、附加或前置呼叫。

引數描述
variable: string

要附加到的變數。

value: string

要附加到變數的值。

options?: EnvironmentVariableMutatorOptions

應用於修改器的選項,如果未提供任何選項,則預設為 { applyAtProcessCreation: true }

返回描述
void

清除此集合中的所有修改器。

引數描述
返回描述
void

刪除此集合中變數的修改器。

引數描述
variable: string

要刪除修改器的變數。

返回描述
void

遍歷此集合中的每個修改器。

引數描述
callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any

對每個條目執行的函式。

thisArg?: any

呼叫處理函式時使用的 this 上下文。

返回描述
void

獲取此集合應用於變數的修改器(如果有)。

引數描述
variable: string

要獲取修改器的變數。

返回描述
環境變數修改器

將值前置到環境變數。

請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前的所有替換、附加或前置呼叫。

引數描述
variable: string

要前置的變數。

value: string

要前置到變數的值。

options?: EnvironmentVariableMutatorOptions

應用於修改器的選項,如果未提供任何選項,則預設為 { applyAtProcessCreation: true }

返回描述
void

用值替換環境變數。

請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前的所有替換、附加或前置呼叫。

引數描述
variable: string

要替換的變數。

value: string

替換變數的值。

options?: EnvironmentVariableMutatorOptions

應用於修改器的選項,如果未提供任何選項,則預設為 { applyAtProcessCreation: true }

返回描述
void

EnvironmentVariableMutator

應用於環境變數的突變型別及其值。

屬性

應用於修改器的選項。

將對變數發生的突變型別。

用於變數的值。

EnvironmentVariableMutatorOptions

應用於修改器的選項。

屬性

在程序建立之前立即應用於環境。預設為 false。

應用於 shell 整合指令碼中的環境。請注意,如果 shell 整合被停用或由於某種原因不起作用,這將 不會 應用修改器。預設為 false。

EnvironmentVariableMutatorType

可以應用於環境變數的突變型別。

列舉成員

替換變數的現有值。

附加到變數現有值的末尾。

前置到變數現有值的開頭。

EnvironmentVariableScope

環境變數集合適用的範圍物件。

屬性

要獲取集合的任何特定工作區資料夾。

EvaluatableExpression

一個可評估表示式表示文件中可由活動的偵錯程式或執行時評估的表示式。此評估的結果將顯示在類似工具提示的部件中。如果只指定了一個範圍,則將從底層文件中提取表示式。可選表示式可用於覆蓋提取的表示式。在這種情況下,範圍仍用於突出顯示文件中的範圍。

建構函式

建立一個新的可評估表示式物件。

引數描述
range: Range

從中提取可評估表示式的底層文件中的範圍。

expression?: string

如果指定,則覆蓋提取的表示式。

返回描述
可評估表示式

屬性

如果指定,表示式將覆蓋提取的表示式。

該範圍用於從底層文件中提取可評估表示式並突出顯示它。

EvaluatableExpressionProvider

可評估表示式提供程式介面定義了擴充套件和除錯懸停之間的契約。在此契約中,提供程式返回文件中給定位置的可評估表示式,編輯器在活動的除錯會話中評估此表示式,並在除錯懸停中顯示結果。

方法

為給定文件和位置提供可評估表示式。編輯器將在活動的除錯會話中評估此表示式,並在除錯懸停中顯示結果。表示式可以透過底層文件中的範圍隱式指定,也可以透過顯式返回表示式來指定。

引數描述
document: TextDocument

除錯懸停即將出現的文件。

position: Position

除錯懸停即將出現的文件中的行和字元位置。

token: CancellationToken

取消令牌。

返回描述
ProviderResult<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 時,請使用此C++類。

建構函式

引數描述
返回描述
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 讀取和寫入檔案和資料夾。

一個數組,disposable 可以新增到其中。當此擴充套件停用時,disposable 將被釋放。

注意:非同步釋放函式不會被等待。

一個 memento 物件,用於在當前開啟的 工作區 的上下文中儲存狀態。

方法

獲取擴充套件中包含的資源的絕對路徑。

注意:絕對 uri 可以透過 Uri.joinPathextensionUri 構建,例如 vscode.Uri.joinPath(context.extensionUri, relativePath);

引數描述
relativePath: string

擴充套件中包含的資源的相對路徑。

返回描述
字串

資源的絕對路徑。

ExtensionKind

在遠端視窗中,擴充套件型別描述了擴充套件是在 UI(視窗)執行的地方執行,還是在遠端執行。

列舉成員

擴充套件在 UI 執行的地方執行。

擴充套件在遠端擴充套件主機執行的地方執行。

ExtensionMode

ExtensionMode 在 ExtensionContext 上提供,指示特定擴充套件執行的模式。

列舉成員

擴充套件在編輯器中正常安裝(例如,從市場或 VSIX)。

擴充套件正在從啟動編輯器時提供的 --extensionDevelopmentPath 執行。

擴充套件正在從 --extensionTestsPath 執行,並且擴充套件主機正在執行單元測試。

ExtensionTerminalOptions

描述虛擬程序終端應使用哪些選項的值物件。

屬性

終端的圖示 ThemeColor。建議使用標準 terminal.ansi* 主題鍵,以在不同主題之間獲得最佳對比度和一致性。

終端的圖示路徑或 ThemeIcon

選擇退出在重啟和重新載入時預設終端永續性。這僅在啟用 terminal.integrated.enablePersistentSessions 時生效。

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

允許擴充套件控制終端的 Pseudoterminal 的實現。

用於驗證 shell 整合序列是否來自可信來源的 nonce。這在使用者體驗方面的一個影響是,如果命令列帶有 nonce,則在透過 shell 整合命令裝飾 重新執行它之前,不需要與使用者驗證命令列是否正確。

如果終端包含 自定義 shell 整合支援,則應使用此選項。它應設定為隨機 GUID。在 Pseudoterminal 實現中,此值可以在相關序列中傳遞,以使其受信任。

FileChangeEvent

檔案系統提供程式必須用來發出文件更改訊號的事件。

屬性

更改的型別。

已更改檔案的 uri。

FileChangeType

檔案更改型別的列舉。

列舉成員

檔案的內容或元資料已更改。

已建立檔案。

檔案已被刪除。

FileCoverage

包含檔案的覆蓋率元資料。

靜態

建立一個 FileCoverage 例項,其計數從覆蓋率詳細資訊中填充。

引數描述
uri: Uri

已覆蓋檔案的 URI

details: readonly FileCoverageDetail[]

詳細的覆蓋率資訊

返回描述
檔案覆蓋率

建構函式

引數描述
uri: Uri

已覆蓋檔案的 URI

statementCoverage: TestCoverageCount

語句覆蓋率資訊。如果報告器不提供語句覆蓋率資訊,則可以將其用於表示行覆蓋率。

branchCoverage?: TestCoverageCount

分支覆蓋率資訊

declarationCoverage?: TestCoverageCount

宣告覆蓋率資訊

includesTests?: TestItem[]

此覆蓋率報告中包含的測試用例,請參閱 FileCoverage.includesTests

返回描述
檔案覆蓋率

屬性

分支覆蓋率資訊。

宣告覆蓋率資訊。根據報告器和語言,這可能是函式、方法或名稱空間等型別。

在此檔案中生成覆蓋率的 測試用例 列表。如果設定,則還應定義 TestRunProfile.loadDetailedCoverageForTest 以檢索詳細的覆蓋率資訊。

語句覆蓋率資訊。如果報告器不提供語句覆蓋率資訊,則可以將其用於表示行覆蓋率。

檔案 URI。

FileCoverageDetail

TestRunProfile.loadDetailedCoverage 返回的覆蓋率詳細資訊。

FileCreateEvent

檔案建立後觸發的事件。

屬性

已建立的檔案。

FileDecoration

檔案裝飾表示可以與檔案一起呈現的元資料。

建構函式

建立一個新的裝飾。

引數描述
badge?: string

表示裝飾的字母。

tooltip?: string

裝飾的工具提示。

color?: ThemeColor

裝飾的顏色。

返回描述
檔案裝飾

屬性

表示此裝飾的非常短的字串。

此裝飾的顏色。

一個標誌,表示此裝飾應傳播到其父級。

此裝飾的人類可讀工具提示。

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

返回描述
布林值

如果檔案系統支援寫入,則為 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

檔案系統提供程式應使用此型別來指示錯誤。

此類別為常見的錯誤情況提供了工廠方法,例如當檔案或資料夾不存在時使用 FileNotFound,使用方式如下:throw vscode.FileSystemError.FileNotFound(someUri);

靜態

建立錯誤以表示檔案或資料夾已存在,例如在建立檔案但不覆蓋檔案時。

引數描述
messageOrUri?: string | Uri

訊息或 URI。

返回描述
檔案系統錯誤

建立錯誤以表示檔案是資料夾。

引數描述
messageOrUri?: string | Uri

訊息或 URI。

返回描述
檔案系統錯誤

建立錯誤以表示檔案不是資料夾。

引數描述
messageOrUri?: string | Uri

訊息或 URI。

返回描述
檔案系統錯誤

建立錯誤以表示未找到檔案或資料夾。

引數描述
messageOrUri?: string | Uri

訊息或 URI。

返回描述
檔案系統錯誤

建立錯誤以表示操作缺少所需許可權。

引數描述
messageOrUri?: string | Uri

訊息或 URI。

返回描述
檔案系統錯誤

建立錯誤以表示檔案系統不可用或過於繁忙,無法完成請求。

引數描述
messageOrUri?: string | Uri

訊息或 URI。

返回描述
檔案系統錯誤

建構函式

建立新的檔案系統錯誤。

引數描述
messageOrUri?: string | Uri

訊息或 URI。

返回描述
檔案系統錯誤

屬性

標識此錯誤的程式碼。

可能的值是錯誤的名稱,例如 FileNotFound,或針對未指定錯誤的 Unknown

FileSystemProvider

檔案系統提供程式定義了編輯器讀取、寫入、發現和管理檔案和資料夾所需的功能。它允許擴充套件從遠端位置(如 ftp 伺服器)提供檔案,並將這些檔案無縫整合到編輯器中。

  • 注意 1:檔案系統提供程式 API 使用 uris 並假設分層路徑,例如 foo:/my/pathfoo:/my/ 的子項,是 foo:/my/path/deeper 的父項。
  • 注意 2:當檔案或資料夾被訪問時,會觸發一個啟用事件 onFileSystem:<scheme>
  • 注意 3:“檔案”一詞通常用於表示所有型別的檔案,例如資料夾、符號連結和常規檔案。

事件

一個事件,用於表示資源已建立、更改或刪除。此事件應針對此提供程式的客戶端正在監視的資源觸發。

注意:重要的是,更改檔案的元資料提供了一個更新的 mtime,該 mtimestat 中的先前值提前,並且具有正確的 size 值。否則,可能會有一些最佳化措施,例如,在編輯器中不會顯示更改。

方法

複製檔案或資料夾。實現此函式是可選的,但它會加快複製操作。

  • 丟擲 - 當 destination 的父級不存在時丟擲 FileNotFound,例如無需 mkdirp 邏輯。
  • 丟擲 - 當 destination 存在且 overwrite 選項不為 true 時丟擲 FileExists
引數描述
source: Uri

現有檔案。

destination: Uri

目標位置。

options: {overwrite: boolean}

定義是否應覆蓋現有檔案。

返回描述
void | Thenable<void>

建立新目錄(注意,新檔案透過 write 呼叫建立)。

  • 丟擲 - 當 uri 的父級不存在時丟擲 FileNotFound,例如無需 mkdirp 邏輯。
  • 丟擲 - 當 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。

重新命名檔案或資料夾。

  • 丟擲 - 當 newUri 的父級不存在時丟擲 FileNotFound,例如無需 mkdirp 邏輯。
  • 丟擲 - 當 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 模式(例如 **/build, output/**

檔案系統提供程式的職責是根據這些規則對每個更改呼叫 onDidChangeFile。對於與任何提供的排除項匹配的檔案,不應發出事件。

引數描述
uri: Uri

要監視的檔案或資料夾的 URI。

options: {excludes: readonly string[], recursive: boolean}

配置監視。

返回描述
Disposable

一個可釋放的物件,它告訴提供程式停止監視 uri

將資料寫入檔案,替換其全部內容。

  • 丟擲 - 當 uri 不存在且未設定 create 時丟擲 FileNotFound
  • 丟擲 - 當 uri 的父級不存在且設定了 create 時丟擲 FileNotFound,例如無需 mkdirp 邏輯。
  • 丟擲 - 當 uri 已存在,設定了 create 但未設定 overwrite 時丟擲 FileExists
引數描述
uri: Uri

檔案的 URI。

content: Uint8Array

檔案的新內容。

options: {create: boolean, overwrite: boolean}

定義是否應或必須建立缺失檔案。

返回描述
void | Thenable<void>

FileSystemWatcher

檔案系統觀察器通知磁碟上或來自其他 FileSystemProviders 的檔案和資料夾的更改。

要獲取 FileSystemWatcher 的例項,請使用 createFileSystemWatcher

事件

在檔案/資料夾更改時觸發的事件。

在檔案/資料夾建立時觸發的事件。

在檔案/資料夾刪除時觸發的事件。

屬性

如果此檔案系統觀察器已建立為忽略更改檔案系統事件,則為 true。

如果此檔案系統觀察器已建立為忽略建立檔案系統事件,則為 true。

如果此檔案系統觀察器已建立為忽略刪除檔案系統事件,則為 true。

方法

釋放此物件。

引數描述
返回描述
任意

FileType

檔案型別列舉。FileDirectory 型別也可以是符號連結,在這種情況下使用 FileType.File | FileType.SymbolicLinkFileType.Directory | FileType.SymbolicLink

列舉成員

檔案型別未知。

常規檔案。

目錄。

指向檔案的符號連結。

FileWillCreateEvent

檔案即將建立時觸發的事件。

要在檔案建立之前修改工作區,請使用一個解析為 工作區編輯 的 thenable 呼叫 waitUntil 函式。

屬性

即將建立的檔案。

取消令牌。

方法

允許暫停事件並應用 工作區編輯

注意:此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫。

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

檔案即將刪除時觸發的事件。

要在檔案刪除之前修改工作區,請使用一個解析為 工作區編輯 的 thenable 呼叫 waitUntil 函式。

屬性

即將刪除的檔案。

取消令牌。

方法

允許暫停事件並應用 工作區編輯

注意:此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫。

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

檔案即將重新命名時觸發的事件。

要在檔案重新命名之前修改工作區,請使用一個解析為 工作區編輯 的 thenable 呼叫 waitUntil 函式。

屬性

即將重新命名的檔案。

取消令牌。

方法

允許暫停事件並應用 工作區編輯

注意:此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫。

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

摺疊範圍的型別。

返回描述
摺疊範圍

屬性

要摺疊範圍的基於零的結束行。摺疊區域以該行的最後一個字元結束。為有效,結束行必須為零或更大,並小於文件中的行數。

描述摺疊範圍的 Kind,例如 CommentRegion。該 kind 用於對摺疊範圍進行分類,並由“摺疊所有註釋”等命令使用。有關所有型別的列舉,請參閱 FoldingRangeKind。如果未設定,則該範圍源自語法元素。

要摺疊範圍的基於零的起始行。摺疊區域從該行的最後一個字元之後開始。為有效,結束行必須為零或更大,並小於文件中的行數。

FoldingRangeKind

特定摺疊範圍型別的列舉。型別是 FoldingRange 的可選欄位,用於區分特定的摺疊範圍,例如源自注釋的範圍。該型別由 Fold all commentsFold all regions 等命令使用。如果未在範圍內設定型別,則該範圍源自注釋、匯入或區域標記以外的語法元素。

列舉成員

表示註釋的摺疊範圍型別。

表示匯入的摺疊範圍型別。

表示源自摺疊標記(如 #region#endregion)的區域的摺疊範圍型別。

FoldingRangeProvider

摺疊範圍提供程式介面定義了擴充套件和編輯器中摺疊功能之間的契約。

事件

一個可選事件,用於指示此提供程式中的摺疊範圍已更改。

方法

返回摺疊範圍列表,如果提供程式不想參與或被取消,則返回 null 和 undefined。

引數描述
document: TextDocument

呼叫命令的文件。

context: FoldingContext

附加上下文資訊(供將來使用)

token: CancellationToken

取消令牌。

返回描述
ProviderResult<FoldingRange[]>

FormattingOptions

描述格式化應使用哪些選項的值物件。

屬性

優先使用空格而不是製表符。

製表符的大小(以空格為單位)。

FunctionBreakpoint

由函式名稱指定的斷點。

建構函式

建立新的函式斷點。

引數描述
functionName: string
enabled?: boolean
condition?: string
hitCondition?: string
logMessage?: string
返回描述
函式斷點

屬性

條件斷點的可選表示式。

斷點是否啟用。

此斷點所附加的函式的名稱。

控制忽略多少次斷點命中的可選表示式。

斷點的唯一 ID。

命中此斷點時記錄的可選訊息。大括號中的嵌入表示式由除錯介面卡進行插值。

GlobalEnvironmentVariableCollection

擴充套件可以應用於程序環境的突變集合。適用於所有作用域。

屬性

環境變數集合的描述,這將用於在 UI 中描述更改。

集合是否應為工作區快取並在視窗重新載入時應用於終端。當為 true 時,集合將在視窗重新載入時立即啟用。此外,如果存在快取版本,此 API 將返回快取版本。當擴充套件被解除安裝或集合被清除時,集合將失效。預設為 true。

方法

將值附加到環境變數。

請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前的所有替換、附加或前置呼叫。

引數描述
variable: string

要附加到的變數。

value: string

要附加到變數的值。

options?: EnvironmentVariableMutatorOptions

應用於修改器的選項,如果未提供任何選項,則預設為 { applyAtProcessCreation: true }

返回描述
void

清除此集合中的所有修改器。

引數描述
返回描述
void

刪除此集合中變數的修改器。

引數描述
variable: string

要刪除修改器的變數。

返回描述
void

遍歷此集合中的每個修改器。

引數描述
callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any

對每個條目執行的函式。

thisArg?: any

呼叫處理函式時使用的 this 上下文。

返回描述
void

獲取此集合應用於變數的修改器(如果有)。

引數描述
variable: string

要獲取修改器的變數。

返回描述
環境變數修改器

獲取擴充套件的作用域特定的環境變數集合。這允許僅在指定作用域內更改終端環境變數,並在此全域性集合之後(和額外)應用。

透過此方法獲取的每個物件都是獨立的,不影響其他作用域的物件,包括全域性集合。

引數描述
scope: EnvironmentVariableScope

環境變數集合適用的作用域。

如果省略 scope 引數,則返回適用於該引數所有相關 scope 的集合。例如,如果未指定 'workspaceFolder' 引數,則將返回適用於所有工作區資料夾的集合。

返回描述
環境變數集合

傳遞作用域的環境變數集合。

將值前置到環境變數。

請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前的所有替換、附加或前置呼叫。

引數描述
variable: string

要前置的變數。

value: string

要前置到變數的值。

options?: EnvironmentVariableMutatorOptions

應用於修改器的選項,如果未提供任何選項,則預設為 { applyAtProcessCreation: true }

返回描述
void

用值替換環境變數。

請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前的所有替換、附加或前置呼叫。

引數描述
variable: string

要替換的變數。

value: string

替換變數的值。

options?: EnvironmentVariableMutatorOptions

應用於修改器的選項,如果未提供任何選項,則預設為 { applyAtProcessCreation: true }

返回描述
void

GlobPattern

用於匹配檔案路徑的檔案 glob 模式。這可以是一個 glob 模式字串(如 **/*.{ts,js}*.{ts,js})或一個 相對模式

Glob 模式可以有以下語法:

  • * 匹配路徑段中的零個或多個字元
  • ? 匹配路徑段中的一個字元
  • ** 匹配任意數量的路徑段,包括零個
  • {} 用於分組條件(例如 **/*.{ts,js} 匹配所有 TypeScript 和 JavaScript 檔案)
  • [] 用於宣告路徑段中要匹配的字元範圍(例如,example.[0-9] 匹配 example.0, example.1, ...)
  • [!...] 用於否定路徑段中要匹配的字元範圍(例如,example.[!0-9] 匹配 example.a, example.b,但不匹配 example.0

注意:反斜槓 (``) 在 glob 模式中無效。如果您有現有的檔案路徑要匹配,請考慮使用 相對模式 支援,它負責將任何反斜槓轉換為正斜槓。否則,請確保在建立 glob 模式時將任何反斜槓轉換為正斜槓。

Hover

懸停表示符號或單詞的附加資訊。懸停以類似工具提示的小部件呈現。

建構函式

建立新的懸停物件。

引數描述
contents: MarkdownString | MarkedString | Array<MarkdownString | MarkedString>

懸停的內容。

range?: Range

懸停適用的範圍。

返回描述
Hover

屬性

此懸停的內容。

此懸停適用的範圍。如果缺失,編輯器將使用當前位置的單詞範圍或當前位置本身。

HoverProvider

懸停提供程式介面定義了擴充套件與懸停功能之間的契約。

方法

為給定位置和文件提供懸停。同一位置的多個懸停將由編輯器合併。懸停可以有一個範圍,如果省略,則預設為該位置的單詞範圍。

引數描述
document: TextDocument

呼叫命令的文件。

position: Position

呼叫命令的位置。

token: CancellationToken

取消令牌。

返回描述
ProviderResult<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

提示的 型別

返回描述
內聯提示

屬性

此提示的型別。內聯提示型別定義此內聯提示的外觀。

此提示的標籤。可讀字串或 標籤部分 陣列。

注意 字串和標籤部分都不能為空。

在提示前渲染填充。填充將使用編輯器的背景顏色,而不是提示本身的背景顏色。這意味著填充可用於視覺上對齊/分隔內聯提示。

在提示後渲染填充。填充將使用編輯器的背景顏色,而不是提示本身的背景顏色。這意味著填充可用於視覺上對齊/分隔內聯提示。

此提示的位置。

接受此內聯提示時執行的可選 文字編輯。接受內聯提示的預設手勢是雙擊。

注意,期望編輯會更改文件,以便內聯提示(或其最近的變體)現在是文件的一部分,並且內聯提示本身現在已過時。

注意,此屬性可以在解析內聯提示的 後期 設定。

懸停在此專案上時顯示的工具提示文字。

注意,此屬性可以在解析內聯提示的 後期 設定。

InlayHintKind

內聯提示型別。

內聯提示的型別定義其外觀,例如使用相應的文字和背景顏色。

列舉成員

用於型別註釋的內聯提示。

用於引數的內聯提示。

InlayHintLabelPart

內聯提示標籤部分允許內聯提示的互動式和複合標籤。

建構函式

建立新的內聯提示標籤部分。

引數描述
value: string

部分的價值。

返回描述
內聯提示標籤部分

屬性

此標籤部分的可選命令。

當標籤部分定義 位置命令 時,編輯器會將帶命令的部分渲染為可點選的連結。命令會新增到上下文選單中。

注意,此屬性可以在解析內聯提示的 後期 設定。

表示此標籤部分的可選原始碼位置

編輯器將使用此位置進行懸停和程式碼導航功能:此部分將成為一個可點選的連結,解析為給定位置符號的定義(不一定是位置本身),它會顯示給定位置的懸停,並顯示一個帶有更多程式碼導航命令的上下文選單。

注意,此屬性可以在解析內聯提示的 後期 設定。

懸停在此標籤部分時顯示的工具提示文字。

注意,此屬性可以在解析內聯提示的 後期 設定。

此標籤部分的值。

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

一個可選的 Command,在插入此補全執行。

返回描述
InlineCompletionItem

屬性

一個可選的 Command,在插入此補全執行。

用於決定是否顯示此內聯補全的文字。當 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[]>

一個 InlineValueDescriptor 陣列,或者一個能解析為該陣列的 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 (Error)。返回 undefined 清除驗證訊息。

當前輸入值。

輸入值中的選定範圍。定義為兩個數字的元組,其中第一個是包含的起始索引,第二個是排他的結束索引。當 undefined 時,將選擇整個預填充值;當為空(起始等於結束)時,只設置游標;否則,將選擇定義的範圍。

當用戶鍵入或進行選擇時,此屬性不會更新,但可以透過擴充套件進行更新。

方法

處理此輸入 UI 和任何相關資源。如果它仍然可見,則首先隱藏它。在此呼叫之後,輸入 UI 不再具有功能,不應再訪問其上的其他方法或屬性。相反,應建立一個新的輸入 UI。

引數描述
返回描述
void

隱藏此輸入 UI。這還將觸發一個 QuickInput.onDidHide 事件。

引數描述
返回描述
void

使輸入 UI 以其當前配置可見。任何其他輸入 UI 將首先觸發一個 QuickInput.onDidHide 事件。

引數描述
返回描述
void

InputBoxOptions

用於配置輸入框 UI 行為的選項。

屬性

設定為 true,以便當焦點移到編輯器的其他部分或另一個視窗時,輸入框仍保持開啟狀態。此設定在 iPad 上被忽略,始終為 false。

控制是否顯示密碼輸入。密碼輸入會隱藏鍵入的文字。

一個可選字串,在輸入框中顯示為佔位符,以指導使用者輸入。

顯示在輸入框下方的文字。

一個可選字串,表示輸入框的標題。

用於預填充輸入框的值。

預填充 的選擇。定義為兩個數字的元組,其中第一個是包含的起始索引,第二個是排他的結束索引。當 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

一個語言模型聊天物件。

返回描述
布林值

如果可以發出請求,則為 true,否則為 false,如果語言模型不存在或尚未請求同意,則為 undefined

LanguageModelChat

表示用於發出聊天請求的語言模型。

另請參閱 lm.selectChatModels

屬性

語言模型的不透明族名。值可能是 gpt-3.5-turbogpt4phi2llama,但它們由貢獻語言的擴充套件定義,並且可能會更改。

語言模型的不透明識別符號。

在單個請求中可以傳送到模型的最大令牌數。

語言模型的人類可讀名稱。

語言模型供應商的知名識別符號。例如 copilot,但值由貢獻聊天模型的擴充套件定義,需要與它們一起查詢。

模型的不透明版本字串。這由貢獻語言模型的擴充套件定義,並且可能會更改。

方法

使用模型特定的分詞器邏輯計算訊息中的令牌數。

引數描述
text: string | LanguageModelChatMessage

字串或訊息例項。

token?: CancellationToken

可選的取消令牌。有關如何建立取消令牌,請參閱 CancellationTokenSource

返回描述
Thenable<number>

一個解析為令牌數的 Thenable。

使用語言模型發出聊天請求。

注意 語言模型的使用可能受訪問限制和使用者同意的限制。首次呼叫此函式(對於擴充套件)將向用戶顯示同意對話方塊,因此此函式只能在響應使用者操作時呼叫!擴充套件可以使用 LanguageModelAccessInformation.canSendRequest 來檢查它們是否具有發出請求所需的許可權。

如果無法向語言模型發出請求,此函式將返回被拒絕的 promise。原因可能包括

  • 未獲得使用者同意,請參閱 NoPermissions
  • 模型不再存在,請參閱 NotFound
  • 超出配額限制,請參閱 Blocked
  • 其他問題,在這種情況下擴充套件必須檢查 [LanguageModelError.cause LanguageModelError.cause](#LanguageModelError.cause LanguageModelError.cause)

擴充套件可以透過將一組工具傳遞給 LanguageModelChatRequestOptions.tools 來利用語言模型工具呼叫。語言模型將返回一個 LanguageModelToolCallPart,擴充套件可以呼叫該工具並使用結果發出另一個請求。

引數描述
messages: LanguageModelChatMessage[]

訊息例項陣列。

options?: LanguageModelChatRequestOptions

控制請求的選項。

token?: CancellationToken

控制請求的取消令牌。有關如何建立取消令牌,請參閱 CancellationTokenSource

返回描述
Thenable<LanguageModelChatResponse>

一個解析為 LanguageModelChatResponse 的 Thenable。如果請求無法發出,promise 將被拒絕。

LanguageModelChatInformation

表示由 LanguageModelChatProvider 提供的語言模型。

屬性

模型支援的各種功能,例如工具呼叫或影像輸入。

引數描述
imageInput: boolean

模型是否支援影像輸入。通常支援的影像是 jpg 和 png,但每個模型支援的 MIME 型別會有所不同。

toolCalling: number | boolean

模型是否支援工具呼叫。如果提供了數字,則表示單個請求中可以提供給模型的最大工具數量。

一個可選的、人類可讀的字串,將與模型一起呈現。對於在 UI 中區分同名模型很有用。

語言模型的不透明族名。值可能是 gpt-3.5-turbogpt4phi2llama

語言模型的唯一識別符號。每個提供程式必須唯一,但不需要全域性唯一。

模型可以接受作為輸入的最大令牌數。

模型能夠生成的最大令牌數。

語言模型的人類可讀名稱。

將滑鼠懸停在模型上時要呈現的工具提示。用於提供有關模型的更多資訊。

模型的不透明版本字串。這用作 LanguageModelChatSelector.version 中的查詢值。例如 GPT 4o 有多個版本,如 2024-11-20 和 2024-08-06

LanguageModelChatMessage

表示聊天中的一條訊息。可以扮演不同的角色,例如使用者或助手。

靜態

用於建立新助手訊息的實用程式。

引數描述
content: string | Array<LanguageModelTextPart | LanguageModelToolCallPart>

訊息的內容。

name?: string

訊息的可選使用者名稱稱。

返回描述
LanguageModelChatMessage

用於建立新使用者訊息的實用程式。

引數描述
content: string | Array<LanguageModelTextPart | LanguageModelToolResultPart>

訊息的內容。

name?: string

訊息的可選使用者名稱稱。

返回描述
LanguageModelChatMessage

建構函式

建立新的使用者訊息。

引數描述
role: LanguageModelChatMessageRole

訊息的角色。

content: string | LanguageModelInputPart[]

訊息的內容。

name?: string

訊息的可選使用者名稱稱。

返回描述
LanguageModelChatMessage

屬性

一個字串或異構陣列,其中包含訊息內容。某些部分可能對於某些模型是訊息型別特定的。

此訊息的可選使用者名稱稱。

此訊息的角色。

LanguageModelChatMessageRole

表示聊天訊息的角色。這可以是使用者或助手。

列舉成員

使用者角色,例如與語言模型互動的人類。

助手角色,例如生成響應的語言模型。

LanguageModelChatProvider<T>

LanguageModelChatProvider 實現了對語言模型的訪問,使用者可以透過聊天檢視或透過獲取 LanguageModelChat 的擴充套件 API 來使用。例如,OpenAI 提供程式可以提供 gpt-5、o3 等模型。

事件

當可用語言模型集發生更改時觸發的可選事件。

方法

獲取此提供程式提供的可用語言模型列表

引數描述
options: PrepareLanguageModelChatModelOptions

指定此函式呼叫上下文的選項

token: CancellationToken

取消令牌

返回描述
ProviderResult<T[]>

可用語言模型列表

返回聊天請求的響應,並將結果傳遞給進度回撥。 LanguageModelChatProvider 必須將收到的語言模型響應部分發射到進度回撥。

引數描述
model: T

要使用的語言模型

messages: readonly LanguageModelChatRequestMessage[]

要包含在請求中的訊息

options: ProvideLanguageModelChatResponseOptions

請求選項

progress: Progress<LanguageModelResponsePart>

用於發射流式響應塊的進度

token: CancellationToken

取消令牌

返回描述
Thenable<void>

當響應完成時解析的 promise。結果實際上會傳遞給進度回撥。

使用模型特定的分詞器邏輯,返回給定文字的令牌數。

引數描述
model: T

要使用的語言模型

text: string | LanguageModelChatRequestMessage

要計算令牌的文字

token: CancellationToken

取消令牌

返回描述
Thenable<number>

令牌數

LanguageModelChatRequestMessage

提供程式版本的 LanguageModelChatMessage

屬性

一個異構陣列,其中包含訊息內容。某些部分可能對於某些模型是訊息型別特定的。

此訊息的可選使用者名稱稱。

此訊息的角色。

LanguageModelChatRequestOptions

使用語言模型發出聊天請求的選項。

另請參閱 LanguageModelChat.sendRequest

屬性

一個人類可讀的訊息,解釋為什麼需要訪問語言模型以及它啟用了哪些功能。

控制語言模型行為的一組選項。這些選項特定於語言模型,需要查閱相應的文件。

要使用的工具選擇模式。預設為 LanguageModelChatToolMode.Auto

語言模型可用的工具可選列表。這些可以是已透過 lm.tools 註冊的工具,也可以是僅在呼叫擴充套件中實現的私有工具。

如果 LLM 請求呼叫其中一個工具,它將在 LanguageModelChatResponse.stream 中返回 LanguageModelToolCallPart。呼叫方負責呼叫該工具。如果它是透過 lm.tools 註冊的工具,則意味著呼叫 lm.invokeTool

然後,可以透過建立一個帶有 LanguageModelToolCallPart 的 Assistant 型別 LanguageModelChatMessage,然後是一個帶有 LanguageModelToolResultPart 的 User 型別訊息,將工具結果提供給 LLM。

LanguageModelChatResponse

表示語言模型響應。

另請參閱 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 屬性將包含實際錯誤。

LanguageModelInputPart

可透過 LanguageModelChat.sendRequest 傳送並由 LanguageModelChatProvider 處理的各種訊息型別。

LanguageModelPromptTsxPart

一個語言模型響應部分,包含來自 vscode/prompt-tsx 的 PromptElementJSON。

另請參閱 LanguageModelToolResult

建構函式

使用給定內容構造一個 prompt-tsx 部分。

引數描述
value: unknown

部分的值,即 vscode/prompt-tsxrenderElementJSON 的結果。

返回描述
LanguageModelPromptTsxPart

屬性

部分的價值。

LanguageModelResponsePart

LanguageModelChatProvider 可以在聊天響應流中發出的各種訊息型別

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

與工具呼叫令牌化相關的選項。

屬性

如果已知,工具在其結果中應發出的最大令牌數。

方法

使用模型特定的分詞器邏輯計算訊息中的令牌數。

引數描述
text: string

一個字串。

token?: CancellationToken

可選的取消令牌。有關如何建立取消令牌,請參閱 CancellationTokenSource

返回描述
Thenable<number>

一個解析為令牌數的 Thenable。

LanguageStatusItem

語言狀態項是為活動文字編輯器顯示語言狀態報告的首選方式,例如選定的 lint 工具或配置問題通知。

屬性

螢幕閱讀器與此項互動時使用的輔助功能資訊

控制專案是否顯示為“忙碌”。預設為 false

此項的 命令

可選,此項的人類可讀詳細資訊。

此項的識別符號。

此項的簡稱,例如“Java 語言狀態”等。

定義此項顯示哪些編輯器的 選擇器

此項的嚴重性。

預設為 資訊。您可以使用此屬性向使用者發出需要注意的問題訊號,例如缺少可執行檔案或無效配置。

條目顯示的文字。您可以透過以下語法在文字中嵌入圖示:

我的文字 $(icon-name) 包含像 $(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

範圍或位置。位置將被轉換為一個空範圍。

返回描述
位置

屬性

此位置的文件範圍。

此位置的資源識別符號。

表示兩個位置的連線。提供比普通 位置 更多的元資料,包括一個源範圍。

屬性

此連結源的跨度。

用作滑鼠定義懸停的下劃線跨度。預設為定義位置處的單詞範圍。

此連結的完整目標範圍。

此連結的跨度。

此連結的目標資源識別符號。

LogLevel

日誌級別

列舉成員

此級別不記錄任何訊息。

此級別記錄所有訊息。

此級別記錄除錯及更高級別的訊息。

此級別記錄資訊及更高級別的訊息。

此級別記錄警告及更高級別的訊息。

此級別只記錄錯誤訊息。

LogOutputChannel

用於包含日誌輸出的通道。

要獲取 LogOutputChannel 的例項,請使用 createOutputChannel

事件

當通道的日誌級別更改時觸發的 事件

屬性

通道的當前日誌級別。預設為 編輯器日誌級別

此輸出通道的人類可讀名稱。

方法

將給定值附加到通道。

引數描述
value: string

一個字串,虛假值將不會列印。

返回描述
void

將給定值和換行符附加到通道。

引數描述
value: string

一個字串,虛假值也將列印。

返回描述
void

從通道中刪除所有輸出。

引數描述
返回描述
void

將給定的除錯訊息輸出到通道。

僅當通道配置為顯示 除錯 日誌級別或更低時,才記錄該訊息。

引數描述
message: string

要記錄的除錯訊息

...args: any[]
返回描述
void

釋放並解除關聯的資源。

引數描述
返回描述
void

將給定的錯誤或錯誤訊息輸出到通道。

僅當通道配置為顯示 錯誤 日誌級別或更低時,才記錄該訊息。

引數描述
error: string | Error

要記錄的錯誤或錯誤訊息

...args: any[]
返回描述
void

從 UI 中隱藏此通道。

引數描述
返回描述
void

將給定的資訊訊息輸出到通道。

僅當通道配置為顯示 資訊 日誌級別或更低時,才記錄該訊息。

引數描述
message: string

要記錄的資訊訊息

...args: any[]
返回描述
void

將通道中的所有輸出替換為給定值。

引數描述
value: string

一個字串,虛假值將不會列印。

返回描述
void

在 UI 中顯示此通道。

引數描述
preserveFocus?: boolean

當為 true 時,通道不會獲得焦點。

返回描述
void

在 UI 中顯示此通道。

  • 已棄用 - 使用只有一個引數的過載(show(preserveFocus?: boolean): void)。
引數描述
column?: ViewColumn

此引數已棄用,將被忽略。

preserveFocus?: boolean

當為 true 時,通道不會獲得焦點。

返回描述
void

將給定的跟蹤訊息輸出到通道。使用此方法記錄詳細資訊。

僅當通道配置為顯示 跟蹤 日誌級別時,才記錄該訊息。

引數描述
message: string

要記錄的跟蹤訊息

...args: any[]
返回描述
void

將給定的警告訊息輸出到通道。

僅當通道配置為顯示 警告 日誌級別或更低時,才記錄該訊息。

引數描述
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 將被轉義。

McpHttpServerDefinition

McpHttpServerDefinition 表示透過可流式 HTTP 傳輸可用的 MCP 伺服器。

建構函式

引數描述
label: string

伺服器的人類可讀名稱。

uri: Uri

伺服器的 URI。

headers?: Record<string, string>

每次向伺服器請求時包含的可選附加標頭。

version?: string
返回描述
McpHttpServerDefinition

屬性

每次向伺服器請求時包含的可選附加標頭。

伺服器的人類可讀名稱。

伺服器的 URI。編輯器將向此 URI 傳送 POST 請求以開始每個會話。

伺服器的可選版本標識。如果此值更改,編輯器將指示工具已更改並提示重新整理它們。

McpServerDefinition

描述不同型別模型上下文協議伺服器的定義,可以從 McpServerDefinitionProvider 返回。

McpServerDefinitionProvider<T>

可以提供模型上下文協議伺服器定義的型別。這應該在擴充套件啟用期間使用 lm.registerMcpServerDefinitionProvider 註冊。

事件

可選事件,用於指示可用伺服器集已更改。

方法

提供可用的 MCP 伺服器。編輯器將急切地呼叫此方法以確保語言模型伺服器的可用性,因此擴充套件不應執行需要使用者互動的操作,例如身份驗證。

引數描述
token: CancellationToken

取消令牌。

返回描述
ProviderResult<T[]>

可用的 MCP 伺服器陣列

當編輯器需要啟動 MCP 伺服器時將呼叫此函式。此時,擴充套件可以執行任何可能需要使用者互動的操作,例如身份驗證。伺服器的任何非 readonly 屬性都可以修改,並且擴充套件應返回已解析的伺服器。

擴充套件可以返回 undefined 以指示不應啟動伺服器,或丟擲錯誤。如果存在待處理的工具呼叫,編輯器將取消它並向語言模型返回錯誤訊息。

引數描述
server: T

要解析的 MCP 伺服器

token: CancellationToken

取消令牌。

返回描述
ProviderResult<T>

已解析的伺服器或解析為該伺服器的 Thenable。這可能是給定的 server 定義,其中非只讀屬性已填充。

McpStdioServerDefinition

McpStdioServerDefinition 表示透過執行本地程序並在其 stdin 和 stdout 流上操作而可用的 MCP 伺服器。該程序將作為擴充套件主機的一個子程序生成,並且預設情況下不會在 shell 環境中執行。

建構函式

引數描述
label: string

伺服器的人類可讀名稱。

command: string

用於啟動伺服器的命令。

args?: string[]

傳遞給伺服器的附加命令列引數。

env?: Record<string, string | number>

伺服器的可選附加環境資訊。

version?: string

伺服器的可選版本標識。

返回描述
McpStdioServerDefinition

屬性

傳遞給伺服器的附加命令列引數。

用於啟動伺服器的命令。基於 Node.js 的伺服器可以使用 process.execPath 來使用編輯器的 Node.js 版本執行指令碼。

用於啟動伺服器的工作目錄。

伺服器的可選附加環境資訊。此環境中的變數將覆蓋或刪除(如果為 null)編輯器擴充套件主機的預設環境變數。

伺服器的人類可讀名稱。

伺服器的可選版本標識。如果此值更改,編輯器將指示工具已更改並提示重新整理它們。

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

表示 筆記本 的一個單元格,可以是 程式碼 單元格或 標記 單元格。

NotebookCell 例項是不可變的,只要它們是其筆記本的一部分,就會保持同步。

屬性

此單元格的 文字,表示為文字文件。

此單元格的最新 執行摘要

此單元格在其 包含筆記本 中的索引。當單元格在其筆記本中移動時,索引會更新。當單元格從其筆記本中刪除時,索引為 -1

此單元格的型別。

此單元格的元資料。可以是任何東西,但必須是可 JSON 字串化的。

包含此單元格的 筆記本

此單元格的輸出。

NotebookCellData

NotebookCellData 是筆記本單元格的原始表示。它是 NotebookData 的一部分。

建構函式

建立新的單元格資料。最小單元格資料指定其型別、其源值和其源的語言識別符號。

引數描述
kind: NotebookCellKind

型別。

value: string

源值。

languageId: string

源值的語言識別符號。

返回描述
NotebookCellData

屬性

此單元格資料的執行摘要。

此單元格資料的 型別

此單元格資料來源值的語言識別符號。任何 getLanguages 的值都可能。

此單元格資料的任意元資料。可以是任何東西,但必須是可 JSON 字串化的。

此單元格資料的輸出。

此單元格資料的源值 - 原始碼或格式化文字。

NotebookCellExecution

NotebookCellExecution 是 筆記本控制器 在執行時修改筆記本單元格的方式。

當建立單元格執行物件時,單元格進入 [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。如果為 undefined,不顯示勾選或 X 圖示。

endTime?: number

執行結束的時間,以 Unix 紀元毫秒為單位。

返回描述
void

替換正在執行的單元格或受此執行影響的其他單元格的輸出。

引數描述
out: NotebookCellOutput | readonly NotebookCellOutput[]

替換當前輸出的輸出。

cell?: NotebookCell

清除輸出的單元格。預設為此執行的 單元格

返回描述
Thenable<void>

操作完成後解析的 thenable。

替換現有單元格輸出的所有輸出項。

引數描述
items: NotebookCellOutputItem | readonly NotebookCellOutputItem[]

替換現有輸出項的輸出項。

output: NotebookCellOutput

已存在的輸出物件。

返回描述
Thenable<void>

操作完成後解析的 thenable。

訊號執行已開始。

引數描述
startTime?: number

執行開始的時間,以 Unix 紀元毫秒為單位。用於驅動顯示單元格已執行多長時間的時鐘。如果未給出,則不顯示時鐘。

返回描述
void

NotebookCellExecutionSummary

筆記本單元格執行的摘要。

屬性

執行發生的順序。

如果執行成功完成。

執行開始和結束的時間,以 Unix 時間戳表示。

引數描述
endTime: number

執行結束時間。

startTime: number

執行開始時間。

NotebookCellKind

筆記本單元格型別。

列舉成員

標記單元格是用於顯示的格式化原始碼。

程式碼單元格是可 執行 並生成 輸出 的原始碼。

NotebookCellOutput

筆記本單元格輸出表示執行單元格的結果。它是一個包含多個 輸出項 的容器型別,其中包含的項表示相同的結果但使用不同的 MIME 型別。

建構函式

建立新的筆記本輸出。

引數描述
items: NotebookCellOutputItem[]

筆記本輸出項。

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

由 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 位無符號整數陣列。

Mime 型別,它決定了 data 屬性如何解釋。

筆記本對某些 mime 型別有內建支援,擴充套件可以新增對新型別的支援並覆蓋現有型別。

NotebookCellStatusBarAlignment

表示狀態列項的對齊方式。

列舉成員

左對齊。

右對齊。

NotebookCellStatusBarItem

對單元格狀態列的貢獻

建構函式

建立一個新的 NotebookCellStatusBarItem。

引數描述
text: string

專案顯示的文字。

alignment: NotebookCellStatusBarAlignment

專案是左對齊還是右對齊。

返回描述
NotebookCellStatusBarItem

屬性

螢幕閱讀器與此項互動時使用的輔助功能資訊。

專案是左對齊還是右對齊。

單擊時要執行的可選 命令 或命令識別符號。

該命令必須是 已知 的。

請注意,如果這是一個 Command 物件,編輯器只會使用 commandarguments

專案的優先順序。值越高的專案越靠左顯示。

專案顯示的文字。

懸停專案時顯示的工具提示。

NotebookCellStatusBarItemProvider

一個提供程式,可以向單元格編輯器下方顯示的狀態列貢獻項。

事件

一個可選事件,用於指示狀態列項已更改。將再次呼叫 provide 方法。

方法

當單元格滾動到檢視中、其內容、輸出、語言或元資料發生變化以及其執行狀態發生變化時,將呼叫提供程式。

引數描述
cell: NotebookCell

要返回項的單元格。

token: CancellationToken

如果此請求應取消,則觸發的令牌。

返回描述
ProviderResult<NotebookCellStatusBarItem | NotebookCellStatusBarItem[]>

一個或多個單元格狀態列項

NotebookController

筆記本控制器表示一個可以執行筆記本單元格的實體。這通常被稱為核心。

可以有多個控制器,編輯器將允許使用者選擇哪個控制器用於特定的筆記本。notebookType 屬性定義了控制器適用於哪種筆記本,而 updateNotebookAffinity 函式允許控制器為特定的筆記本文件設定偏好。當控制器被選中時,其 onDidChangeSelectedNotebooks 事件會觸發。

當單元格執行時,編輯器將呼叫 executeHandler,控制器應該建立並完成 筆記本單元格執行。但是,控制器也可以自由地自行建立執行。

事件

每當控制器被選中或取消選擇某個筆記本文件時觸發的事件。

一個筆記本可以有多個控制器,在這種情況下,需要“選擇”一個控制器。這是一個使用者手勢,在與“建議”了控制器的筆記本互動時,會顯式或隱式地發生。如果可能,編輯器會“建議”最有可能被“選擇”的控制器。

注意,控制器選擇是持久化的(透過控制器的 id),並在控制器重新建立或筆記本開啟時恢復。

屬性

以不太顯眼的方式呈現的人類可讀描述。

以不太顯眼的方式呈現的人類可讀細節。

當 UI 中的執行手勢(例如“執行單元格”、“全部執行”、“執行選擇”等)被選中時,會呼叫執行處理程式。執行處理程式負責建立和管理 執行 物件。

引數描述
cells: NotebookCell[]
notebook: NotebookDocument
controller: NotebookController
返回描述
void | Thenable<void>

此筆記本控制器的識別符號。

注意,控制器透過其識別符號記住,擴充套件應在不同會話中使用穩定的識別符號。

可選的中斷處理程式。

預設情況下,單元格執行透過 令牌 取消。取消令牌要求控制器能夠跟蹤其執行,以便在稍後取消特定的執行。並非所有場景都允許這樣做,例如,REPL 風格的控制器通常透過中斷當前正在執行的任何內容來工作。對於這些情況,中斷處理程式存在 - 可以將其視為終端中 SIGINTControl+C 的等效項。

注意,支援 取消令牌 是首選的,只有在無法支援令牌時才應使用中斷處理程式。

引數描述
notebook: NotebookDocument
返回描述
void | Thenable<void>

此筆記本控制器的人類可讀標籤。

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

此控制器支援的語言識別符號陣列。可以使用 getLanguages 中的任何語言識別符號。如果為假,則支援所有語言。

示例

// support JavaScript and TypeScript
myController.supportedLanguages = ['javascript', 'typescript'];

// support all languages
myController.supportedLanguages = undefined; // falsy
myController.supportedLanguages = []; // falsy

此控制器是否支援執行順序,以便編輯器可以為其渲染佔位符。

方法

建立單元格執行任務。

注意,每個單元格一次只能有一個執行,如果在另一個單元格執行仍在活動時建立單元格執行,則會丟擲錯誤。

這應該在呼叫 執行處理程式 或單元格執行已從其他來源(例如,單元格已在執行或單元格執行已從其他來源觸發)開始時使用。

引數描述
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>

一個 Promise,當文件儲存成功時解析為 true。如果檔案未修改或儲存失敗,則返回 false。

NotebookDocumentCellChange

描述對筆記本單元格的更改。

另請參閱 NotebookDocumentChangeEvent

屬性

受影響的單元格。

單元格的文件,如果未更改則為 undefined

注意,您應該使用 onDidChangeTextDocument 事件來獲取詳細的更改資訊,例如已執行的編輯。

單元格的新執行摘要,如果未更改則為 undefined

單元格的新元資料,如果未更改則為 undefined

單元格的新輸出,如果未更改則為 undefined

NotebookDocumentChangeEvent

描述事務性 筆記本 更改的事件。

屬性

一個 單元格更改 陣列。

描述新增或刪除 單元格 的內容更改陣列。

筆記本的新元資料,如果未更改則為 undefined

受影響的筆記本。

NotebookDocumentContentChange

描述筆記本文件的結構性更改,例如新新增和刪除的單元格。

另請參閱 NotebookDocumentChangeEvent

屬性

已新增到文件中的單元格。

新增或刪除單元格的範圍。

請注意,當此範圍為 時,未 刪除 任何單元格。

已從文件中刪除的單元格。

NotebookDocumentContentOptions

筆記本內容選項定義了筆記本的哪些部分被持久化。注意

例如,筆記本序列化器可以選擇不儲存輸出,在這種情況下,當筆記本的輸出發生變化時,編輯器不會將筆記本標記為

屬性

控制單元格元資料屬性更改事件是否會觸發筆記本文件內容更改事件,以及是否會在差異編輯器中使用,預設為 false。如果內容提供程式未在檔案文件中持久化元資料屬性,則應將其設定為 true。

控制文件元資料屬性更改事件是否會觸發筆記本文件內容更改事件,以及是否會在差異編輯器中使用,預設為 false。如果內容提供程式未在檔案文件中持久化元資料屬性,則應將其設定為 true。

控制輸出更改事件是否會觸發筆記本文件內容更改事件以及是否會在差異編輯器中使用,預設為 false。如果內容提供程式未在檔案文件中持久化輸出,則應將其設定為 true。

NotebookDocumentShowOptions

表示配置在 筆記本編輯器 中顯示 筆記本文件 行為的選項。

屬性

一個可選標誌,當 true 時,將阻止 筆記本編輯器 獲取焦點。

一個可選標誌,用於控制 筆記本編輯器 選項卡是否顯示為預覽。預覽選項卡將被替換和重複使用,直到明確或透過編輯設定為保留。預設行為取決於 workbench.editor.enablePreview 設定。

筆記本編輯器 中應用於文件的可選選擇。

一個可選的檢視列,用於顯示 筆記本編輯器。預設是 活動 列。如果列不存在,將根據需要建立,最多可達 ViewColumn.Nine。使用 ViewColumn.Beside 在當前活動編輯器旁邊開啟編輯器。

NotebookDocumentWillSaveEvent

筆記本文件 將要儲存時觸發的事件。

要在文件儲存前對其進行修改,請呼叫 waitUntil 函式,並傳入一個解析為 工作區編輯 的可 then 物件。

屬性

將要儲存的 筆記本文件

觸發儲存的原因。

取消令牌。

方法

允許暫停事件迴圈並應用 工作區編輯。後續呼叫此函式所做的編輯將按順序應用。如果筆記本文件發生併發修改,則這些編輯將被“忽略”。

注意:此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫。

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 中可用,該 API 將在以後最終確定。

屬性

與此筆記本編輯器關聯的 筆記本文件

此筆記本編輯器中的主選擇。

此筆記本編輯器中的所有選擇。

主選擇(或焦點範圍)是 selections[0]。當文件沒有單元格時,主選擇為空 { start: 0, end: 0 }

此編輯器顯示的列。

編輯器中當前可見的範圍(垂直)。

方法

按照 revealType 指示滾動以顯示給定範圍。

引數描述
range: NotebookRange

一個範圍。

revealType?: NotebookEditorRevealType

顯示 range 的滾動策略。

返回描述
void

NotebookEditorRevealType

表示附加到 筆記本 的筆記本編輯器。

列舉成員

該範圍將以儘可能少的滾動量顯示。

該範圍將始終顯示在視口中心。

如果範圍在視口外,它將顯示在視口中心。否則,它將以儘可能少的滾動量顯示。

該範圍將始終顯示在視口頂部。

NotebookEditorSelectionChangeEvent

表示描述 筆記本編輯器選擇 變化的事件。

屬性

選擇已更改的 筆記本編輯器

NotebookEditorVisibleRangesChangeEvent

表示描述 筆記本編輯器可見範圍 變化的事件。

屬性

可見範圍已更改的 筆記本編輯器

NotebookRange

筆記本範圍表示兩個單元格索引的有序對。保證開始小於或等於結束。

建構函式

建立新的筆記本範圍。如果 start 不在 end 之前或等於 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

屬性

從零開始的字元值。

字元偏移量使用 UTF-16 程式碼單元 表示。

從零開始的行值。

方法

將此與 other 進行比較。

引數描述
other: Position

一個位置。

返回描述
number

如果此位置在給定位置之前,則小於零;如果此位置在給定位置之後,則大於零;如果此位置與給定位置相等,則為零。

檢查此位置是否在 other 之後。

引數描述
other: Position

一個位置。

返回描述
布林值

如果位置在更大的行上或在同一行上但字元位置更大,則為 true

檢查此位置是否在 other 之後或等於 other

引數描述
other: Position

一個位置。

返回描述
布林值

如果位置在更大的行上或在同一行上但字元位置更大或相等,則為 true

檢查此位置是否在 other 之前。

引數描述
other: Position

一個位置。

返回描述
布林值

如果位置在較小的行上或在同一行上但字元位置較小,則為 true

檢查此位置是否在 other 之前或等於 other

引數描述
other: Position

一個位置。

返回描述
布林值

如果位置在較小的行上或在同一行上但字元位置較小或相等,則為 true

檢查此位置是否等於 other

引數描述
other: Position

一個位置。

返回描述
布林值

如果給定位置的行和字元與此位置的行和字元相等,則為 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

屬性

此屬性的存在表示在執行工具之前應要求使用者確認。對於任何具有副作用或可能具有危險性的工具,應要求使用者確認。

在工具執行時顯示自定義進度訊息。

PrepareLanguageModelChatModelOptions

屬性

是否應透過某種 UI 流程提示使用者,或者是否應嘗試靜默解析模型。如果 silent 為 true,由於缺少 API 金鑰等資訊,可能無法解析所有模型。

ProcessExecution

任務的執行以外部程序形式進行,無需 shell 互動。

建構函式

建立程序執行。

引數描述
process: string

要啟動的程序。

options?: ProcessExecutionOptions

啟動程序的可選選項。

返回描述
ProcessExecution

建立程序執行。

引數描述
process: string

要啟動的程序。

args: string[]

要傳遞給程序的引數。

options?: ProcessExecutionOptions

啟動程序的可選選項。

返回描述
ProcessExecution

屬性

傳遞給程序的引數。預設為空陣列。

執行程序時使用的程序選項。預設為 undefined。

要執行的程序。

ProcessExecutionOptions

程序執行選項

屬性

執行程式或 shell 的當前工作目錄。如果省略,則使用工具的當前工作區根目錄。

已執行程式或 shell 的附加環境。如果省略,則使用父程序的環境。如果提供,則與父程序的環境合併。

Progress<T>

定義了一種通用的進度更新報告方式。

方法

報告進度更新。

引數描述
value: T

一個進度項,例如訊息和/或已完成工作的報告。

返回描述
void

ProgressLocation

編輯器中可以顯示進度資訊的位置。進度的視覺表示方式取決於位置。

列舉成員

在原始碼管理檢視中顯示進度,作為圖示的疊加層和檢視中的進度條(可見時)。不支援取消、不連續進度或描述操作的標籤。

在編輯器的狀態列中顯示進度。不支援取消或離散進度。支援透過進度標籤中的 $() 語法渲染 主題圖示

顯示帶可選取消按鈕的通知進度。支援顯示無限和離散進度,但不支援渲染圖示。

ProgressOptions

描述進度應如何顯示的值物件。

屬性

控制是否顯示取消按鈕,以允許使用者取消長時間執行的操作。請注意,目前只有 ProgressLocation.Notification 支援顯示取消按鈕。

進度應顯示的位置。

用於描述操作的人類可讀字串。

ProvideLanguageModelChatResponseOptions

LanguageModelChatRequestOptions 的提供程式版本

屬性

一組控制語言模型行為的選項。這些選項特定於語言模型。

要使用的工具選擇模式。提供程式必須實現尊重此模式。

語言模型可用的工具可選列表。這些可以是已透過 lm.tools 註冊的工具,也可以是僅在呼叫擴充套件中實現的私有工具。

如果 LLM 請求呼叫其中一個工具,它將在 LanguageModelChatResponse.stream 中返回 LanguageModelToolCallPart。呼叫方負責呼叫該工具。如果它是透過 lm.tools 註冊的工具,則意味著呼叫 lm.invokeTool

然後,可以透過建立一個帶有 LanguageModelToolCallPart 的 Assistant 型別 LanguageModelChatMessage,然後是一個帶有 LanguageModelToolResultPart 的 User 型別訊息,將工具結果提供給 LLM。

ProviderResult<T>

提供程式結果表示提供程式(例如 HoverProvider)可能返回的值。這可以是實際的結果型別 T(例如 Hover),也可以是解析為該型別 T 的 thenable。此外,可以直接或從 thenable 返回 nullundefined

以下程式碼段都是 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

傳入資料。

示例: 在終端中回顯輸入。回車符(\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 元件。由擴充套件決定是否接受使用者的輸入,以及是否應透過呼叫QuickInput.hide來隱藏 UI。

當擴充套件不再需要此輸入 UI 時,應QuickInput.dispose它以釋放與其相關的任何資源。

有關具體的 UI,請參閱QuickPickInputBox

事件

當此輸入 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>)語法渲染主題圖示

注意:當kind設定為QuickPickItemKind.Default(即常規項而不是分隔符)時,它支援透過$(<name>)語法渲染主題圖示

可選標誌,指示此項是否最初被選中。此標誌僅在使用showQuickPick() API 時有效。要使用createQuickPick() API 實現相同的功能,只需將QuickPick.selectedItems設定為您希望最初選中的項。(注意:此標誌僅在選擇器允許多選時有效。)

另請參閱QuickPickOptions.canPickMany

注意:當kind設定為QuickPickItemKind.Separator時,此屬性將被忽略

QuickPickItemButtonEvent<T>

一個事件,表示觸發了特定QuickPickItem中的按鈕。此事件不會針對標題欄中的按鈕觸發。

屬性

被點選的按鈕。

按鈕所屬的項。

QuickPickItemKind

快速選擇項的型別。

列舉成員

QuickPickItem的型別為Separator時,該項僅是一個視覺分隔符,不代表實際項。唯一適用的屬性是label。所有其他QuickPickItem上的屬性都將被忽略,不起作用。

預設的QuickPickItem.kind是可以在快速選擇中選擇的項。

QuickPickOptions

用於配置快速選擇 UI 行為的選項。

事件

一個可選函式,每當選擇一個項時都會呼叫它。

引數描述
item: string | QuickPickItem
返回描述
任意

屬性

一個可選標誌,使選擇器接受多項選擇,如果為 true,則結果是選擇陣列。

設定為true可在焦點移至編輯器的其他部分或另一個視窗時保持選擇器開啟。此設定在 iPad 上將被忽略,並始終為 false。

一個可選標誌,用於在篩選選擇項時包含描述。

一個可選標誌,用於在篩選選擇項時包含詳細資訊。

一個可選字串,在輸入框中顯示為佔位符,以指導使用者選擇什麼。

一個可選字串,表示快速選擇的標題。

Range

一個範圍表示一對有序的兩個位置。保證start.isBeforeOrEqual(end)

Range 物件是不可變的。使用withintersectionunion方法從現有範圍派生新範圍。

建構函式

從兩個位置建立新範圍。如果start不早於或等於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

一個位置或一個範圍。

返回描述
布林值

如果位置或範圍在此範圍內或與之相等,則為true

range與此範圍相交,並返回一個新範圍,如果範圍沒有重疊,則返回undefined

引數描述
range: Range

一個範圍。

返回描述
Range

較大起始位置和較小結束位置的範圍。如果沒有重疊,將返回 undefined。

檢查other是否等於此範圍。

引數描述
other: Range

一個範圍。

返回描述
布林值

當起始和結束位置與此範圍的起始和結束位置相等時為true

計算other與此範圍的並集。

引數描述
other: Range

一個範圍。

返回描述
Range

較小起始位置和較大結束位置的範圍。

從此範圍派生一個新範圍。

引數描述
start?: Position

應作為起始位置的位置。預設值為當前起始位置

end?: Position

應作為結束位置的位置。預設值為當前結束位置

返回描述
Range

從該範圍派生出的具有給定起始和結束位置的範圍。如果起始和結束位置沒有不同,則返回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

如果選擇的錨點結束位置,則該選擇是反向的。

如果start.lineend.line相等,則為true

起始位置。它在end之前或與之相等。

方法

檢查此範圍是否包含某個位置或範圍。

引數描述
positionOrRange: Range | Position

一個位置或一個範圍。

返回描述
布林值

如果位置或範圍在此範圍內或與之相等,則為true

range與此範圍相交,並返回一個新範圍,如果範圍沒有重疊,則返回undefined

引數描述
range: Range

一個範圍。

返回描述
Range

較大起始位置和較小結束位置的範圍。如果沒有重疊,將返回 undefined。

檢查other是否等於此範圍。

引數描述
other: Range

一個範圍。

返回描述
布林值

當起始和結束位置與此範圍的起始和結束位置相等時為true

計算other與此範圍的並集。

引數描述
other: Range

一個範圍。

返回描述
Range

較小起始位置和較大結束位置的範圍。

從此範圍派生一個新範圍。

引數描述
start?: Position

應作為起始位置的位置。預設值為當前起始位置

end?: Position

應作為結束位置的位置。預設值為當前結束位置

返回描述
Range

從該範圍派生出的具有給定起始和結束位置的範圍。如果起始和結束位置沒有不同,則返回this範圍。

從此範圍派生一個新範圍。

引數描述
change: {end: Position, start: Position}

描述此範圍更改的物件。

返回描述
Range

反映給定更改的範圍。如果更改未更改任何內容,則返回 this 範圍。

SelectionRange

選擇範圍表示選擇層次結構的一部分。一個選擇範圍可以有一個包含它的父選擇範圍。

建構函式

建立新的選擇範圍。

引數描述
range: Range

選擇範圍的範圍。

parent?: SelectionRange

選擇範圍的父級。

返回描述
SelectionRange

屬性

包含此範圍的父選擇範圍。

此選擇範圍的Range

SelectionRangeProvider

選擇範圍提供程式介面定義了擴充套件和“擴充套件和收縮選擇”功能之間的契約。

方法

為給定位置提供選擇範圍。

選擇範圍應針對每個位置單獨且獨立地計算。編輯器將合併並去重範圍,但提供程式必須返回選擇範圍的層次結構,以便一個範圍被其父級包含

引數描述
document: TextDocument

呼叫命令的文件。

positions: readonly Position[]

呼叫命令時的位置。

token: CancellationToken

取消令牌。

返回描述
ProviderResult<SelectionRange[]>

選擇範圍或解析為選擇範圍的 thenable。可以透過返回undefinednull來表示沒有結果。

SemanticTokens

表示語義標記,無論是在一個範圍中還是在整個文件中。

另請參閱

建構函式

建立新的語義標記。

引數描述
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 的當前工作目錄。如果省略,則使用工具的當前工作區根目錄。

執行的 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 }字面量,則charsToEscape中的所有字元都將使用escapeChar進行轉義。

用於強引用的字元。字串的長度必須為 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 的元資料。

屬性

重新觸發簽名幫助的字元列表。

這些觸發字元僅在簽名幫助已顯示時才有效。所有觸發字元也都計為重新觸發字元。

觸發簽名幫助的字元列表。

SignatureHelpTriggerKind

如何觸發 SignatureHelpProvider

列舉成員

簽名幫助由使用者或命令手動呼叫。

簽名幫助由觸發字元觸發。

簽名幫助由游標移動或文件內容更改觸發。

SignatureInformation

表示可呼叫項的簽名。簽名可以有標籤(如函式名)、文件註釋和一組引數。

建構函式

建立一個新的簽名信息物件。

引數描述
label: string

一個標籤字串。

documentation?: string | MarkdownString

文件字串。

返回描述
SignatureInformation

屬性

活動引數的索引。

如果提供,將取代 SignatureHelp.activeParameter

此簽名的人類可讀文件註釋。將顯示在 UI 中,但可以省略。

此簽名的標籤。將顯示在 UI 中。

此簽名的引數。

SnippetString

程式碼片段字串是一個模板,允許插入文字並在插入時控制編輯器游標。

程式碼片段可以使用 $1$2${3:foo} 定義製表位和佔位符。$0 定義最終的製表位,預設為程式碼片段的末尾。變數使用 $name${name:default value} 定義。另請參閱完整的程式碼片段語法

建構函式

建立一個新的程式碼片段字串。

引數描述
value?: string

一個程式碼片段字串。

返回描述
SnippetString

屬性

程式碼片段字串。

方法

構建器函式,將一個選擇(${1|a,b,c|})附加到此程式碼片段字串的 value

引數描述
values: readonly string[]

選擇的值 - 字串陣列

number?: number

此製表位的編號,預設為從 1 開始的自增值。

返回描述
SnippetString

此程式碼片段字串。

構建器函式,將一個佔位符(${1:value})附加到此程式碼片段字串的 value

引數描述
value: string | (snippet: SnippetString) => any

此佔位符的值 - 可以是字串,也可以是用於建立巢狀程式碼片段的函式。

number?: number

此製表位的編號,預設為從 1 開始的自增值。

返回描述
SnippetString

此程式碼片段字串。

構建器函式,將一個製表位($1$2 等)附加到此程式碼片段字串的 value

引數描述
number?: number

此製表位的編號,預設為從 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)。

在輸入框中顯示為佔位符的字串,用於引導使用者。

輸入框內容的設定器和獲取器。

控制輸入框是否可見(預設為 true)。

SourceControlResourceDecorations

原始碼控制資源狀態的裝飾。可以為亮色和暗色主題獨立指定。

屬性

暗色主題裝飾。

在 UI 中是否應淡化 原始碼控制資源狀態

特定 原始碼控制資源狀態 的圖示路徑。

亮色主題裝飾。

在 UI 中是否應劃掉 原始碼控制資源狀態

特定 原始碼控制資源狀態 的標題。

SourceControlResourceGroup

原始碼控制資源組是 原始碼控制資源狀態 的集合。

屬性

資源組的上下文值。這可用於貢獻資源組特定的操作。例如,如果資源組被賦予上下文值 exportable,則在使用 menus 擴充套件點向 scm/resourceGroup/context 貢獻操作時,可以在 when 表示式中指定鍵 scmResourceGroupState 的上下文值,例如 scmResourceGroupState == exportable

"contributes": {
  "menus": {
    "scm/resourceGroup/context": [
      {
        "command": "extension.export",
        "when": "scmResourceGroupState == exportable"
      }
    ]
  }
}

這將僅對 contextValue 等於 exportable 的資源組顯示操作 extension.export

當此原始碼控制資源組不包含任何 原始碼控制資源狀態 時是否隱藏。

此原始碼控制資源組的 ID。

此原始碼控制資源組的標籤。

此組的 原始碼控制資源狀態 集合。

方法

處置此原始碼控制資源組。

引數描述
返回描述
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) 這樣的圖示。

其中 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

描述選項卡更改的事件。

屬性

已更改的選項卡,例如已更改其 活動 狀態。

已關閉的選項卡。

已開啟的選項卡。

TabGroup

表示一組選項卡。選項卡組本身由多個選項卡組成。

屬性

組中活動的 選項卡。這是當前正在渲染其內容的選項卡。

請注意,每個組可以有一個活動選項卡,但只能有一個 活動組

組當前是否處於活動狀態。

請注意,一次只有一個選項卡組處於活動狀態,但多個選項卡組可以具有 活動選項卡

另請參閱 Tab.isActive

組中包含的選項卡列表。如果組中沒有開啟的選項卡,則此列表可以為空。

組的檢視列。

TabGroupChangeEvent

描述選項卡組更改的事件。

屬性

已更改的選項卡組,例如已更改其 活動 狀態。

已關閉的選項卡組。

已開啟的選項卡組。

TabGroups

表示由多個包含選項卡的組組成的主編輯器區域。

事件

選項卡組 發生更改時觸發的 事件

選項卡 發生更改時觸發的 事件

屬性

當前活動組。

組容器中的所有組。

方法

關閉選項卡。這將使選項卡物件無效,並且不應再將該選項卡用於進一步操作。注意:如果選項卡未儲存,將顯示確認對話方塊,該對話方塊可能會被取消。如果取消,選項卡仍然有效。

引數描述
tab: Tab | readonly Tab[]

要關閉的選項卡。

preserveFocus?: boolean

true 時,焦點將保留在當前位置。如果 false,它將跳到下一個選項卡。

返回描述
Thenable<boolean>

當所有選項卡都已關閉時解析為 true 的 Promise。

關閉選項卡組。這將使選項卡組物件無效,並且不應再將該選項卡組用於進一步操作。

引數描述
tabGroup: TabGroup | readonly TabGroup[]

要關閉的選項卡組。

preserveFocus?: boolean

true 時,焦點將保留在當前位置。

返回描述
Thenable<boolean>

當所有選項卡組都已關閉時解析為 true 的 Promise。

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。預設為 undefined,表示任務不屬於任何特殊組。

任務是否為後臺任務。

任務的名稱。

呈現選項。預設為空字面量。

附加到任務的問題匹配器。預設為空陣列。

任務的執行選項。

任務的範圍。

一個人類可讀的字串,描述此 shell 任務的來源,例如“gulp”或“npm”。支援透過 $(<name>) 語法渲染 主題圖示

TaskDefinition

定義系統中任務型別(Task Kind)的結構。該值必須可 JSON 字串化。

屬性

由擴充套件提供的描述任務的任務定義。通常,任務提供程式定義更多屬性來識別任務。它們需要在擴充套件的 package.json 檔案中的“taskDefinitions”擴充套件點下定義。例如,npm 任務定義如下所示。

interface NpmTaskDefinition extends TaskDefinition {
  script: string;
}

請注意,以“$”開頭的型別識別符號保留供內部使用,擴充套件不應使用。

TaskEndEvent

表示已執行任務結束的事件。

此介面不打算實現。

屬性

表示已完成任務的任務項。

TaskExecution

表示已執行任務的物件。可用於終止任務。

此介面不打算實現。

屬性

已啟動的任務。

方法

終止任務執行。

引數描述
返回描述
void

TaskFilter

任務篩選器根據其版本和型別來表示任務。

屬性

要返回的任務型別;

任務的 version,如 tasks.json 檔案中所用。該字串支援 package.json semver 符號。

TaskGroup

任務的分組。編輯器預設支援“Clean”、“Build”、“RebuildAll”和“Test”組。

靜態

構建任務組;

清理任務組;

重建所有任務組;

測試所有任務組;

建構函式

私有建構函式

引數描述
id: string

任務組的識別符號。

label: string

任務組的人類可讀名稱。

返回描述
任務組

屬性

任務組的 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,而不是建立一個新的。其他屬性可能會更改。

引數描述
task: T

要解析的任務。

token: CancellationToken

取消令牌。

返回描述
ProviderResult<T>

已解析的任務

TaskRevealKind

控制終端可見性的行為。

列舉成員

如果任務執行,始終將終端置於前臺。

僅當執行任務時檢測到問題(例如,任務無法啟動)時才將終端置於前臺。

任務執行時終端永不置於前臺。

TaskScope

任務的範圍。

列舉成員

該任務是一個全域性任務。目前不支援全域性任務。

該任務是一個工作區任務

TaskStartEvent

任務執行開始的事件訊號。

此介面不打算實現。

屬性

表示已啟動任務的任務項。

TelemetryLogger

遙測記錄器,可供擴充套件用於記錄使用情況和錯誤遙測。

記錄器包裝了 傳送器,但它保證

  • 尊重停用或調整遙測的使用者設定,並且
  • 潛在敏感資料被刪除

它還啟用了“回顯 UI”,用於打印發送的任何資料,並允許編輯器將未處理的錯誤轉發給相應的擴充套件。

要獲取 TelemetryLogger 例項,請使用 createTelemetryLogger

事件

當使用情況或錯誤遙測的啟用狀態更改時觸發的 Event

屬性

此記錄器是否啟用了錯誤遙測。

此記錄器是否啟用了使用情況遙測。

方法

釋放此物件並釋放資源。

引數描述
返回描述
void

記錄錯誤事件。

完成清理、遙測設定檢查和資料混入後,呼叫 TelemetrySender.sendEventData 記錄事件。與 logUsage 的區別在於,如果遙測設定為 Error+,它將記錄事件。自動支援回顯到擴充套件遙測輸出通道。

引數描述
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 的選項

屬性

應注入資料物件的任何其他通用屬性。

是否避免將內建通用屬性(如作業系統、副檔名等)注入資料物件。如果未定義,則預設為 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' });

方法

可選的重新整理功能,它將使此傳送器有機會在其 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 啟動的資料夾很有用。

終端的退出狀態,當終端處於活動狀態時,此項將為 undefined。

示例: 當終端以非零退出程式碼退出時,顯示帶有退出程式碼的通知。

window.onDidCloseTerminal(t => {
  if (t.exitStatus && t.exitStatus.code) {
    vscode.window.showInformationMessage(`Exit code: ${t.exitStatus.code}`);
  }
});

終端的名稱。

shell 程序的程序 ID。

一個包含由 shell 整合 提供支援的終端功能的 Shell 整合物件。在終端建立後,此項將始終為 undefined。監聽 window.onDidChangeTerminalShellIntegration 以在終端啟用 shell 整合時獲得通知。

請注意,如果 shell 整合從未啟用,此物件可能仍為 undefined。例如,命令提示符不支援 shell 整合,並且使用者的 shell 設定可能與自動 shell 整合啟用衝突。

終端 的當前狀態。

方法

釋放並解除關聯的資源。

引數描述
返回描述
void

如果此終端當前正在顯示,則隱藏終端面板。

引數描述
返回描述
void

向終端傳送文字。文字被寫入終端底層 pty 程序 (shell) 的標準輸入。

引數描述
text: string

要傳送的文字。

shouldExecute?: boolean

指示正在傳送的文字應該執行,而不是僅僅插入到終端中。新增的字元為 \n\r\n,具體取決於平臺。這預設為 true

返回描述
void

顯示終端面板並在 UI 中顯示此終端。

引數描述
preserveFocus?: boolean

true 時,終端將不會獲得焦點。

返回描述
void

TerminalDimensions

表示終端的尺寸。

屬性

終端中的列數。

終端中的行數。

TerminalEditorLocationOptions

假定 TerminalLocation 為編輯器,並允許指定 ViewColumnpreserveFocus 屬性

屬性

一個可選標誌,當設定為 true 時,將阻止 終端 獲得焦點。

終端在編輯器區域中顯示的檢視列。預設值為 活動 列。如果需要,將建立不存在的列,最多可達 ViewColumn.Nine。使用 ViewColumn.Beside 在當前活動編輯器的旁邊開啟編輯器。

TerminalExitReason

終端退出原因型別。

列舉成員

未知原因。

視窗已關閉/重新載入。

shell 程序已退出。

使用者關閉了終端。

擴充套件程式處理了終端。

TerminalExitStatus

表示終端如何退出。

屬性

終端退出的退出程式碼,它可以有以下值

  • 零:終端程序或自定義執行成功。
  • 非零:終端程序或自定義執行失敗。
  • undefined:使用者強制關閉終端或自定義執行退出時未提供退出程式碼。

觸發終端退出的原因。

終端行上的一個連結。

建構函式

建立新的終端連結。

引數描述
startIndex: number

連結在 TerminalLinkContext.line 上的起始索引。

length: number

連結在 TerminalLinkContext.line 上的長度。

tooltip?: string

將滑鼠懸停在此連結上時顯示的工具提示文字。

如果提供了工具提示,它將顯示在一個字串中,其中包括如何觸發連結的說明,例如 {0} (ctrl + click)。具體說明因作業系統、使用者設定和本地化而異。

返回描述
終端連結

屬性

連結在 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 整合序列是否來自可信來源的 nonce。這在使用者體驗方面的一個影響是,如果命令列帶有 nonce,則在透過 shell 整合命令裝飾 重新執行它之前,不需要與使用者驗證命令列是否正確。

如果終端包含 自定義 shell 整合支援,則應使用此選項。它應設定為一個隨機 GUID,然後將設定 VSCODE_NONCE 環境變數。在 shell 內部,應將其從環境中移除,以保護其免受一般訪問。完成此操作後,可以在相關序列中傳遞它以使其受信任。

終端中要使用的自定義 shell 可執行檔案的路徑。

終端程序環境是否應與 TerminalOptions.env 中提供的完全一致。當此為 false(預設值)時,環境將基於視窗環境,並且還將應用配置的平臺設定,例如 terminal.integrated.env.windows。當此為 true 時,必須提供完整的環境,因為不會從程序或任何配置繼承任何內容。

TerminalProfile

終端配置檔案定義了終端將如何啟動。

建構函式

建立一個新的終端配置檔案。

引數描述
options: TerminalOptions | ExtensionTerminalOptions

終端將啟動的選項。

返回描述
終端配置檔案

屬性

終端將啟動的選項。

TerminalProfileProvider

在透過 UI 或命令啟動時,為貢獻的終端配置檔案提供終端配置檔案。

方法

提供終端配置檔案。

引數描述
token: CancellationToken

一個取消令牌,指示不再需要結果。

返回描述
ProviderResult<TerminalProfile>

終端配置檔案。

TerminalShellExecution

在終端中執行的命令。

屬性

已執行的命令列。此值的 置信度 取決於特定 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 整合指令碼顯式報告(即 高置信度)並且它使用隨機數進行驗證時,此項才為 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

要執行的命令列,這是將傳送到終端的精確文字。

返回描述
終端 shell 執行

執行命令,必要時傳送 ^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 中用於在字串中執行程式碼。

返回描述
終端 shell 執行

TerminalShellIntegrationChangeEvent

表示終端的 shell 整合已更改的事件。

屬性

shell 整合物件。

已啟用 shell 整合的終端。

TerminalSplitLocationOptions

使用父 終端 的位置作為終端

屬性

要將此終端拆分到旁邊的父終端。無論父終端是在面板中還是在編輯器區域中,這都有效。

TerminalState

表示 Terminal 的狀態。

屬性

終端 是否已互動。互動意味著終端已根據終端的*模式*向程序傳送資料。預設情況下,當按下鍵或當命令或擴充套件傳送文字時傳送輸入,但根據終端的模式,它也可以在以下情況發生

  • 指標點選事件
  • 指標滾動事件
  • 指標移動事件
  • 終端焦點進入/退出

有關可能傳送資料的事件的更多資訊,請參閱 https://invisible-island.net/xterm/ctlseqs/ctlseqs.html 上的“DEC Private Mode Set (DECSET)”

檢測到的 終端 的 shell 型別。當沒有明確的訊號表明 shell 是什麼,或者 shell 尚未受支援時,此值將為 undefined。當啟動子 shell 時(例如,在 zsh 中執行 bash),此值應更改為子 shell 的 shell 型別。

請注意,可能的值目前定義為以下任何一種:“bash”、“cmd”、“csh”、“fish”、“gitbash”、“julia”、“ksh”、“node”、“nu”、“pwsh”、“python”、“sh”、“wsl”、“zsh”。

TestController

發現和執行測試的入口點。它包含 TestController.items,用於填充編輯器 UI,並與 執行配置檔案 關聯,以允許執行測試。

屬性

tests.createTestController 中傳入的控制器的 ID。這必須是全域性唯一的。

“頂級” 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 例項,它自動與此控制器關聯。

建立一個新的託管 TestItem 例項。它可以新增到現有項的 TestItem.children 中,或新增到 TestController.items 中。

引數描述
id: string

TestItem 的識別符號。TestItem 的 ID 在它所屬的 TestItemCollection 中必須是唯一的。

label: string

測試項的可讀標籤。

uri?: Uri

此 TestItem 關聯的 URI。可以是檔案或目錄。

返回描述
測試項

建立一個 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 中的頂級專案以及尚未包含在其他專案的 children 中的專案,它是未定義的。

測試專案在 uri 中的位置。

這僅當 uri 指向檔案時才有意義。

與其他專案比較時應使用的字串。當 falsy 時,使用 label

與此測試專案關聯的標籤。可與 tags 結合使用,或僅作為組織功能。

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。

返回描述
測試項

找到的專案或如果不存在則為 undefined。

替換集合儲存的專案。

引數描述
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 取消測試執行時,將觸發的取消令牌。

方法

新增檔案中檔案的覆蓋率。

引數描述
fileCoverage: FileCoverage
返回描述
void

追加測試執行器的原始輸出。根據使用者的請求,輸出將顯示在終端中。支援 ANSI 轉義序列,例如顏色和文字樣式。新行必須以 CRLF (\r\n) 而不是 LF (\n) 的形式給出。

引數描述
output: string

要追加的輸出文字。

location?: Location

指示輸出記錄在給定位置。

test?: TestItem

與輸出關聯的測試項。

返回描述
void

表示測試執行結束。執行中包含的任何狀態尚未更新的測試都將重置其狀態。

引數描述
返回描述
void

表示測試已排隊等待稍後執行。

引數描述
test: TestItem

要更新的測試項。

返回描述
void

表示測試出錯。您應該傳遞一個或多個 TestMessages 來描述故障。這與“失敗”狀態不同,它表示由於編譯錯誤等原因根本無法執行的測試。

引數描述
test: TestItem

要更新的測試項。

message: TestMessage | readonly TestMessage[]

與測試失敗關聯的訊息。

duration?: number

測試執行所需的時間(以毫秒為單位)。

返回描述
void

表示測試失敗。您應該傳遞一個或多個 TestMessages 來描述故障。

引數描述
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

指示操作應取消的取消令牌。

返回描述
Thenable<FileCoverageDetail[]>

呼叫此處理程式以啟動測試執行。呼叫時,函式應至少呼叫一次 TestController.createTestRun,並且與請求關聯的所有測試執行都應在函式返回或返回的 Promise 解析之前建立。

如果設定了 supportsContinuousRun,則 TestRunRequest.continuous 可能為 true。在這種情況下,配置檔案應觀察原始碼更改並透過呼叫 TestController.createTestRun 建立新的測試執行,直到請求取消 token

引數描述
request: TestRunRequest

測試執行的請求資訊。

token: CancellationToken
返回描述
void | Thenable<void>

此配置檔案是否支援請求的連續執行。如果是,則 TestRunRequest.continuous 可以設定為 true。預設為 false。

配置檔案的關聯標籤。如果設定此項,則只有在 TestItem.tags 陣列中包含相同標籤的 TestItem 例項才能在此配置檔案中執行。

方法

刪除執行配置檔案。

引數描述
返回描述
void

TestRunProfileKind

TestRunProfiles 控制的執行型別。

列舉成員

Run 測試配置檔案型別。

Debug 測試配置檔案型別。

Coverage 測試配置檔案型別。

TestRunRequest

TestRunRequest 是 TestRun 的前身,TestRun 又是透過將請求傳遞給 TestController.createTestRun 建立的。TestRunRequest 包含有關應執行哪些測試、不應執行哪些測試以及如何執行它們的資訊(透過 profile)。

通常,TestRunRequests 由編輯器建立並傳遞給 TestRunProfile.runHandler,但是您也可以在 runHandler 之外建立測試請求和執行。

建構函式

引數描述
include?: readonly TestItem[]

要執行的特定測試陣列,或 undefined 以執行所有測試

exclude?: readonly TestItem[]

從執行中排除的測試陣列。

profile?: TestRunProfile

此請求使用的執行配置檔案。

continuous?: boolean

原始碼更改時是否連續執行測試。

preserveFocus?: boolean

執行開始時是否保留使用者的焦點

返回描述
TestRunRequest

屬性

配置檔案是否應隨著原始碼更改而連續執行。僅與設定了 TestRunProfile.supportsContinuousRun 的配置檔案相關。

使用者標記為從本次執行中排除的測試陣列;排除項應在包含項之後應用。

如果沒有請求排除,則可以省略。測試控制器不應執行被排除的測試或被排除測試的任何子項。

用於執行特定測試的篩選器。如果給定,擴充套件應執行所有包含的測試及其所有子項,排除任何出現在 TestRunRequest.exclude 中的測試。如果此屬性未定義,則擴充套件應簡單地執行所有測試。

執行測試的過程應解析所有尚未解析的測試項的子項。

控制測試結果檢視如何聚焦。如果為 true,編輯器將保持使用者的焦點。如果為 false,編輯器將傾向於將焦點移動到測試結果檢視,儘管這可以由使用者配置。

此請求使用的配置檔案。對於從編輯器 UI 發出的請求,此項將始終定義,儘管擴充套件可以透過程式設計方式建立不與任何配置檔案關聯的請求。

TestTag

標籤可以與 TestItemsTestRunProfiles 關聯。帶標籤的配置檔案只能執行在其 TestItem.tags 陣列中包含該標籤的測試。

建構函式

建立新的 TestTag 例項。

引數描述
id: string

測試標籤的 ID。

返回描述
TestTag

屬性

測試標籤的 ID。具有相同 ID 的 TestTag 例項被認為是相同的。

TextDocument

表示文字文件,例如原始檔。文字文件具有 和有關底層資源(如檔案)的知識。

屬性

此文件的檔案編碼,將在儲存文件時使用。

使用 onDidChangeTextDocument 事件在文件編碼更改時收到通知。

請注意,可能的編碼值目前定義為以下任何一種:“utf8”、“utf8bom”、“utf16le”、“utf16be”、“windows1252”、“iso88591”、“iso88593”、“iso885915”、“macroman”、“cp437”、“windows1256”、“iso88596”、“windows1257”、“iso88594”、“iso885914”、“windows1250”、“iso88592”、“cp852”、“windows1251”、“cp866”、“cp1125”、“iso88595”、“koi8r”、“koi8u”、“iso885913”、“windows1253”、“iso88597”、“windows1255”、“iso88598”、“iso885910”、“iso885916”、“windows1254”、“iso88599”、“windows1258”、“gbk”、“gb18030”、“cp950”、“big5hkscs”、“shiftjis”、“eucjp”、“euckr”、“windows874”、“iso885911”、“koi8ru”、“koi8t”、“gb2312”、“cp865”、“cp850”。

此文件中主要使用的 行結束 序列。

關聯資源的檔案系統路徑。TextDocument.uri.fsPath 的簡寫符號。與 uri 方案無關。

如果文件已關閉,則為 true。關閉的文件不再同步,並且當再次開啟同一資源時不會重複使用。

如果存在未持久化的更改,則為 true

此文件是否表示尚未儲存的無標題檔案。*注意*,這並不意味著文件將儲存到磁碟,請使用 Uri.scheme 來確定文件將儲存到何處(例如 fileftp 等)。

與此文件關聯的語言的識別符號。

此文件中的行數。

此文件關聯的 uri。

*請注意*,大多數文件使用 file 方案,這意味著它們是磁碟上的檔案。但是,**並非**所有文件都儲存在磁碟上,因此在嘗試訪問底層檔案或磁碟上的兄弟檔案之前,必須檢查 scheme

另請參閱

version: number

此文件的版本號(每次更改後嚴格遞增,包括撤消/重做)。

方法

獲取此文件的文字。可以透過提供範圍來檢索子字串。該範圍將被 調整

引數描述
range?: Range

僅包含範圍內的文字。

返回描述
字串

所提供範圍內的文字或整個文字。

在給定位置獲取單詞範圍。預設情況下,單詞由常見的分隔符(如空格、-、_ 等)定義。此外,可以定義每種語言的自定義 [單詞定義]。也可以提供自定義正則表示式。

  • *注意 1:*自定義正則表示式不得匹配空字串,如果匹配,則將被忽略。
  • *注意 2:*自定義正則表示式將無法匹配多行字串,並且為了速度,正則表示式不應匹配帶空格的單詞。對於更復雜、非單詞的場景,請使用 TextLine.text

位置將是 調整 的。

引數描述
position: Position

一個位置。

regex?: RegExp

描述單詞的可選正則表示式。

返回描述
Range

跨越單詞的範圍,或 undefined

返回由行號表示的文字行。請注意,返回的物件*不是*即時的,並且文件的更改不會反映出來。

引數描述
line: number

[0, lineCount) 中的行號。

返回描述
TextLine

一行 TextLine

返回由位置表示的文字行。請注意,返回的物件*不是*即時的,並且文件的更改不會反映出來。

位置將是 調整 的。

*另請參閱* TextDocument.lineAt

引數描述
position: Position

一個位置。

返回描述
TextLine

一行 TextLine

將位置轉換為從零開始的偏移量。

位置將是 調整 的。

引數描述
position: Position

一個位置。

返回描述
number

UTF-16 程式碼單元 中有效的從零開始的偏移量。

將從零開始的偏移量轉換為位置。

引數描述
offset: number

文件中的從零開始的偏移量。此偏移量以 UTF-16 程式碼單元 表示。

返回描述
Position

一個有效的 Position

儲存底層檔案。

引數描述
返回描述
Thenable<boolean>

一個 Promise,當檔案儲存成功時解析為 true。如果儲存失敗,則返回 false

確保位置包含在此文件的範圍內。

引數描述
position: Position

一個位置。

返回描述
Position

給定位置或新的調整位置。

確保範圍完全包含在此文件中。

引數描述
range: Range

一個範圍。

返回描述
Range

給定範圍或新的調整範圍。

TextDocumentChangeEvent

描述事務性 文件 更改的事件。

屬性

內容更改陣列。

document: TextDocument

受影響的文件。

reason: TextDocumentChangeReason

文件更改的原因。如果原因未知,則為 undefined

TextDocumentChangeReason

文字文件更改的原因。

列舉成員

文字更改是由撤消操作引起的。

文字更改是由重做操作引起的。

TextDocumentContentChangeEvent

描述 文件 文字中單個更改的事件。

屬性

被替換的範圍。

被替換範圍的長度。

rangeOffset: number

被替換範圍的偏移量。

範圍的新文字。

TextDocumentContentProvider

文字文件內容提供程式允許向編輯器新增只讀文件,例如來自 DLL 的源或由 md 生成的 HTML。

內容提供程式針對 uri 方案 註冊。當要 載入 具有該方案的 uri 時,會請求內容提供程式。

事件

指示資源已更改的事件。

方法

為給定 URI 提供文字內容。

編輯器將使用返回的字串內容建立只讀 文件。當相應的文件已 關閉 時,應釋放分配的資源。

**注意**:由於行尾序列標準化,建立的 文件 的內容可能與提供的文字不完全相同。

引數描述
uri: Uri

一個 URI,其方案與此提供程式 註冊 的方案匹配。

token: CancellationToken

取消令牌。

返回描述
ProviderResult<string>

一個字串或一個解析為字串的 thenable。

TextDocumentSaveReason

表示儲存文字文件的原因。

列舉成員

手動觸發,例如由使用者按下儲存、開始除錯或 API 呼叫。

AfterDelay: 2

延遲後自動。

FocusOut: 3

當編輯器失去焦點時。

TextDocumentShowOptions

表示用於配置在 編輯器 中顯示 文件 行為的選項。

屬性

一個可選標誌,當 true 時,將阻止 編輯器 獲取焦點。

一個可選標誌,控制 編輯器 選項卡是否顯示為預覽。預覽選項卡將被替換和重用,直到設定為保持——無論是顯式還是透過編輯。

*注意*,如果使用者在設定中停用了預覽編輯器,則該標誌將被忽略。

用於在 編輯器 中為文件應用的可選選區。

可選的檢視列,用於顯示 編輯器。預設值為 活動列。不存在的列將根據需要建立,最多不超過 ViewColumn.Nine。使用 ViewColumn.Beside 將編輯器開啟在當前活動列的旁邊。

TextDocumentWillSaveEvent

文件 將被儲存時觸發的事件。

要在儲存文件之前對其進行修改,請呼叫 waitUntil 函式,其 thenable 解析為 文字編輯 陣列。

屬性

將要儲存的文件。

觸發儲存的原因。

方法

允許暫停事件迴圈並應用 預儲存編輯。此函式的後續呼叫中的編輯將按順序應用。如果文件發生併發修改,則編輯將*被忽略*。

注意:此函式只能在事件分派期間呼叫,而不能以非同步方式呼叫。

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: EndOfLine

行尾序列

返回描述
TextEdit

一個新的文字編輯物件。

建構函式

建立新的 TextEdit。

引數描述
range: Range

一個範圍。

newText: string

一個字串。

返回描述
TextEdit

屬性

文件中使用的行尾序列。

*注意*,行尾序列將應用於整個文件。

newText: string

此編輯將插入的字串。

range: Range

此編輯適用的範圍。

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

插入程式碼段的位置或範圍,預設為當前編輯器選區或多個選區。

選項?: {keepWhitespace: boolean, 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

一個複雜的編輯,將在文字編輯器上以一個事務應用。它包含對編輯的描述,如果編輯有效(即沒有重疊區域,文件在此期間未更改等),則可以將其應用於與文字編輯器關聯的文件

方法

刪除某個文字區域。

引數描述
location: Range | Selection

此操作應刪除的範圍。

返回描述
void

在某個位置插入文字。您可以在value中使用\r\n\n,它們將被標準化為當前文件。儘管可以使用替換進行等效的文字編輯,但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"

渲染相對於當前行號的行號。獲取文字編輯器選項時,此屬性將始終存在。設定文字編輯器選項時,此屬性是可選的。

一個製表符佔用的空格大小。這用於兩個目的:

  • 製表符字元的渲染寬度;
  • insertSpaces為 true 且indentSize設定為"tabSize"時要插入的空格數。

獲取文字編輯器選項時,此屬性將始終為數字(已解析)。設定文字編輯器選項時,此屬性是可選的,可以是數字或"auto"

TextEditorOptionsChangeEvent

表示描述文字編輯器選項更改的事件。

屬性

選項已更改的文字編輯器

TextEditorRevealType

表示文字編輯器中不同的顯示策略。

列舉成員

該範圍將以儘可能少的滾動量顯示。

該範圍將始終顯示在視口中心。

如果範圍在視口外,它將顯示在視口中心。否則,它將以儘可能少的滾動量顯示。

該範圍將始終顯示在視口頂部。

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.com.tw/api/references/theme-color中定義。使用主題顏色優於自定義顏色,因為它允許主題作者和使用者更改顏色。

建構函式

建立對主題顏色的引用。

引數描述
id: string

顏色。可用顏色列表請參見https://vscode.com.tw/api/references/theme-color

返回描述
ThemeColor

屬性

此顏色的 ID。

ThemeIcon

對命名圖示的引用。目前支援FileFolderThemeIcon ids。使用主題圖示優於自定義圖示,因為它允許產品主題作者更改圖示。

注意,主題圖示也可以在標籤和描述中呈現。支援主題圖示的地方會明確說明,並使用$(<name>)語法,例如quickPick.label = "Hello World $(globe)"

靜態

對錶示檔案的圖示的引用。該圖示取自當前檔案圖示主題,或者使用佔位符圖示。

對錶示資料夾的圖示的引用。該圖示取自當前檔案圖示主題,或者使用佔位符圖示。

建構函式

建立對主題圖示的引用。

引數描述
id: string

圖示的 ID。可用圖示列表請參見https://vscode.com.tw/api/references/icons-in-labels#icon-listing

color?: ThemeColor

圖示的可選ThemeColor。顏色目前僅用於TreeItem

返回描述
ThemeIcon

屬性

圖示的可選 ThemeColor。顏色目前僅用於TreeItem

圖示的 ID。可用圖示列表請參見https://vscode.com.tw/api/references/icons-in-labels#icon-listing

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>

使用特殊的filesMIME 型別來支援所有型別的拖放檔案,無論檔案的實際 MIME 型別如何。

要了解拖動項的 MIME 型別:

  1. 設定您的DragAndDropController
  2. 使用“開發者:設定日誌級別...”命令將級別設定為“除錯”
  3. 開啟開發者工具並將具有未知 MIME 型別的項拖到您的樹上。MIME 型別將記錄到開發者控制檯

請注意,無法傳送到擴充套件的 MIME 型別將被省略。

方法

當用戶開始從此DragAndDropController拖動專案時,將呼叫handleDrag。擴充套件可以使用handleDrag將其DataTransferItem專案新增到拖放操作中。

handleDrag中新增的MIME型別在應用程式外部將不可用。

當專案被拖放到**同一棵樹**中的**另一個樹項**上時,您的DataTransferItem物件將被保留。使用樹的推薦 MIME 型別(`application/vnd.code.tree.`)在資料傳輸中新增樹物件。有關如何最好地利用此功能,請參閱`DataTransferItem`的文件。

要新增一個可以拖到編輯器中的資料傳輸項,請使用應用程式特定的 MIME 型別“text/uri-list”。“text/uri-list”的資料應該是一個字串,其中包含由\r\n分隔的toString()ed Uris。要指定檔案中游標的位置,請將 Uri 的片段設定為L3,5,其中 3 是行號,5 是列號。

引數描述
source: readonly T[]

拖放操作的源專案。

dataTransfer: DataTransfer

與此拖動關聯的資料傳輸。

token: CancellationToken

指示拖動已被取消的取消令牌。

返回描述
void | Thenable<void>

當拖放操作導致拖放到此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 不需要設定輔助功能資訊的role;但是,在某些情況下,TreeItem 未以樹狀方式顯示,此時設定role可能才有意義。

樹項的TreeItemCheckboxState。當checkboxState更改時應觸發onDidChangeTreeData

選擇樹項時應執行的命令

當樹項在編輯器中開啟某些內容時,請使用vscode.openvscode.diff作為命令 ID。使用這些命令可確保生成的編輯器將與內建樹開啟編輯器的方式保持一致。

樹項的上下文值。這可用於在樹中提供專案特定操作。例如,樹項被賦予上下文值folder。當使用menus擴充套件點向view/item/context提供操作時,您可以在when表示式中為鍵viewItem指定上下文值,例如viewItem == folder

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

這隻會為contextValuefolder的項顯示操作extension.deleteFolder

一個可讀字串,渲染時不太突出。當為true時,它派生自resourceUri;當為falsy時,它不顯示。

樹項的圖示路徑或ThemeIcon。如果為falsy,則如果項可摺疊,則分配資料夾主題圖示,否則分配檔案主題圖示。當指定檔案或資料夾主題圖示時,圖示將從當前檔案圖示主題中為指定的圖示派生(如果提供resourceUri)。

樹項的可選 ID,在整個樹中必須是唯一的。ID 用於保留樹項的選擇和展開狀態。

如果未提供,則使用樹項的標籤生成 ID。**注意**,當標籤更改時,ID 也會更改,並且選擇和展開狀態將無法保持穩定。

描述此專案的可讀字串。如果為falsy,則派生自resourceUri

表示此專案的資源的Uri

當未提供時,將用於派生標籤。當iconPath具有ThemeIcon值時,將用於從當前檔案圖示主題派生圖示。

懸停在此專案上時顯示的工具提示文字。

TreeItemCheckboxState

樹項的複選框狀態

列舉成員

確定專案未選中

確定專案已選中

TreeItemCollapsibleState

樹項的可摺疊狀態

列舉成員

確定項既不能摺疊也不能展開。意味著它沒有子項。

確定專案是否摺疊

確定專案是否展開

TreeItemLabel

描述樹項的標籤

屬性

要在標籤中突出顯示的範圍。範圍定義為兩個數字的元組,第一個是包含的開始索引,第二個是獨佔的結束索引

描述樹項的可讀字串。

TreeView<T>

表示樹檢視

事件

一個事件,用於指示元素或根已被選中或取消選中。

選擇發生更改時觸發的事件

可見性發生更改時觸發的事件

元素摺疊時觸發的事件

元素展開時觸發的事件

屬性

此 TreeView 要顯示的徽章。要刪除徽章,請設定為 undefined。

一個可選的可讀描述,在檢視標題中渲染時不太突出。將標題描述設定為 null、undefined 或空字串將從檢視中移除描述。

一個可選的可讀訊息,將在檢視中呈現。將訊息設定為 null、undefined 或空字串將從檢視中刪除訊息。

當前選定的元素。

樹檢視標題最初取自擴充套件包.json。標題屬性的更改將正確反映在 UI 檢視的標題中。

如果樹檢視可見,則為true,否則為false

方法

釋放此物件。

引數描述
返回描述
任意

在樹檢視中顯示給定的元素。如果樹檢視不可見,則顯示樹檢視並顯示元素。

預設情況下,顯示的元素會被選中。為了不選中,將選項select設定為false。為了聚焦,將選項focus設定為true。為了展開顯示的元素,將選項expand設定為true。要遞迴展開,將expand設定為要展開的級別數。

  • 注意: 您最多隻能展開到 3 層。
  • 注意: 註冊TreeViewTreeDataProvider必須實現getParent方法才能訪問此 API。
引數描述
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

樹形檢視的可見性發生變化時觸發的事件

屬性

如果樹檢視可見,則為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-uris,反斜槓字元(``)被視為路徑分隔符
  • ..-段表示父段,.表示當前段
  • 路徑有一個始終保留的根,例如在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#fragment 中的 www.example.com 部分。位於第一個雙斜槓和下一個斜槓之間的部分。

Fragment 是 http://www.example.com/some/path?query#fragment 中的 fragment 部分。

表示此Uri的相應檔案系統路徑的字串。

將處理UNC路徑並將Windows驅動器號規範化為小寫。還使用平臺特定的路徑分隔符。

  • 不會驗證路徑中的無效字元和語義。
  • 不會檢視此Uri的方案。
  • 結果字串不應用於顯示目的,而應用於磁碟操作,如readFile等。

path屬性的區別在於使用了平臺特定的路徑分隔符和UNC路徑的處理。以下示例概述了這種區別

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

Path 是 http://www.example.com/some/path?query#fragment 中的 /some/path 部分。

Query 是 http://www.example.com/some/path?query#fragment 中的 query 部分。

Scheme 是 http://www.example.com/some/path?query#fragment 中的 http 部分。位於第一個冒號之前的部分。

方法

返回此Uri的JSON表示。

引數描述
返回描述
任意

一個物件。

返回此Uri的字串表示。URI的表示和規範化取決於方案。

  • 結果字串可以安全地與Uri.parse一起使用。
  • 結果字串不應用於顯示目的。

請注意,實現將進行積極的編碼,這通常會導致意想不到但並非不正確的結果。例如,冒號被編碼為%3A,這在檔案uri中可能出乎意料。此外,&=將被編碼,這對於http-uris可能出乎意料。由於穩定性原因,這無法再更改。如果您遇到過於積極的編碼問題,應使用skipEncoding引數:uri.toString(true)

引數描述
skipEncoding?: boolean

不進行百分比編碼,預設為false。請注意,路徑中出現的#?字元將始終被編碼。

返回描述
字串

此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 可序列化物件回發到擴充套件。它們不能傳送 `Blob`、`File`、`ImageData` 和其他 DOM 特定物件,因為接收訊息的擴充套件不在瀏覽器環境中執行。

屬性

webview資源的Content Security Policy源。

這是內容安全策略規則中應使用的來源

`img-src https: ${webview.cspSource} ...;`;

webview的HTML內容。

這應該是一個完整的、有效的html文件。更改此屬性會導致webview重新載入。

Webview與正常的擴充套件程序隔離,因此所有與webview的通訊都必須使用訊息傳遞。要從擴充套件向webview傳送訊息,請使用postMessage。要從webview向擴充套件傳送訊息,請在webview內部使用acquireVsCodeApi函式獲取編輯器的API控制代碼,然後呼叫.postMessage()

<script>
    const vscode = acquireVsCodeApi(); // acquireVsCodeApi can only be invoked once
    vscode.postMessage({ message: 'hello!' });
</script>

要在webview中載入工作區中的資源,請使用asWebviewUri方法,並確保資源的目錄已列在WebviewOptions.localResourceRoots中。

請記住,即使webview是沙盒化的,它們仍然允許執行指令碼和載入任意內容,因此擴充套件在處理webview時必須遵循所有標準Web安全最佳實踐。這包括正確清理所有不受信任的輸入(包括來自工作區的內容)並設定內容安全策略

webview的內容設定。

方法

將本地檔案系統的 uri 轉換為可在 webview 中使用的 uri。

Webviews不能直接使用file: uri從工作區或本地檔案系統載入資源。asWebviewUri函式接受一個本地file: uri,並將其轉換為可在webview中用於載入相同資源的uri

webview.html = `<img src="${webview.asWebviewUri(
  vscode.Uri.file('/Users/codey/workspace/cat.gif')
)}">`;
引數描述
localResource: Uri
返回描述
Uri

向webview內容傳送訊息。

僅當webview處於活動狀態(可見或在後臺啟用retainContextWhenHidden)時才傳送訊息。

引數描述
message: any

訊息正文。這必須是字串或其他JSON可序列化物件。

對於舊版本的VSCode,如果message中包含ArrayBuffer,它將無法正確序列化,並且webview將無法接收到。同樣,任何TypedArray,例如Uint8Array,都將非常低效地序列化,並且在webview內部也不會重新建立為TypedArray。

但是,如果您的擴充套件在package.jsonengines欄位中指定了vscode 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://:3000)無法對映到另一個埠。

WebviewPanel

包含一個webview的面板。

事件

當面板的檢視狀態改變時觸發。

面板被釋放時觸發。

這可能是因為使用者關閉了面板,也可能是因為對其呼叫了.dispose()

在面板被釋放後嘗試使用它會丟擲異常。

屬性

面板是否處於活動狀態(使用者聚焦)。

在UI中顯示的面板圖示。

webview面板的內容設定。

在UI中顯示的面板標題。

面板的編輯器位置。此屬性僅在webview位於編輯器檢視列之一時設定。

標識webview面板的型別,例如'markdown.preview'

面板是否可見。

面板所屬的Webview

方法

銷燬webview面板。

如果面板正在顯示,此操作會關閉它,並釋放webview擁有的資源。當用戶關閉webview面板時,webview面板也會被銷燬。這兩種情況都會觸發onDispose事件。

引數描述
返回描述
任意

在給定列中顯示webview面板。

一個webview面板一次只能顯示在一個列中。如果它已經顯示,此方法將其移動到新列。

引數描述
viewColumn?: ViewColumn

顯示面板的檢視列。如果未定義,則在當前viewColumn中顯示。

preserveFocus?: boolean

當為true時,webview將不會獲取焦點。

返回描述
void

WebviewPanelOnDidChangeViewStateEvent

當webview面板的檢視狀態改變時觸發的事件。

屬性

檢視狀態發生變化的Webview面板。

WebviewPanelOptions

webview面板的內容設定。

屬性

控制是否在面板中啟用查詢小部件。

預設為 false

控制即使面板不再可見,是否保留webview面板的內容(iframe)。

通常,當面板變為可見時,會建立其HTML上下文,並在隱藏時銷燬。具有複雜狀態或UI的擴充套件可以設定retainContextWhenHidden,使編輯器保留webview上下文,即使webview移動到後臺選項卡。當使用retainContextWhenHidden的webview變為隱藏時,其指令碼和其他動態內容將被暫停。當面板再次變為可見時,上下文會自動恢復到與原始狀態完全相同的狀態。即使啟用了retainContextWhenHidden,您也無法向隱藏的webview傳送訊息。

retainContextWhenHidden的記憶體開銷很高,只有在面板的上下文無法快速儲存和恢復時才應使用。

WebviewPanelSerializer<T>

當vscode關閉時恢復已持久化的webview面板。

Webview持久化有兩種型別

  • 會話內持久化。
  • 跨會話(跨編輯器重啟)持久化。

WebviewPanelSerializer僅在第二種情況下需要:跨會話持久化webview。

會話內持久化允許webview在隱藏時儲存其狀態,並在再次可見時從該狀態恢復其內容。它完全由webview內容本身提供支援。要儲存持久化狀態,請使用任何json可序列化物件呼叫acquireVsCodeApi().setState()。要再次恢復狀態,請呼叫getState()

// Within the webview
const vscode = acquireVsCodeApi();

// Get existing state
const oldState = vscode.getState() || { value: 0 };

// Update state
setState({ value: oldState.value + 1 });

WebviewPanelSerializer將此持久化擴充套件到編輯器重啟。當編輯器關閉時,它將儲存所有具有序列化器的webview的setState中的狀態。當webview在重啟後首次變為可見時,此狀態將傳遞給deserializeWebviewPanel。擴充套件隨後可以從該狀態恢復舊的WebviewPanel

方法

從其序列化的state恢復webview面板。

當序列化的webview首次變為可見時呼叫。

引數描述
webviewPanel: WebviewPanel

要恢復的webview面板。序列化器應擁有此面板。序列化器必須恢復webview的.html並掛接所有webview事件。

state: T

來自webview內容的持久化狀態。

返回描述
Thenable<void>

表示webview已完全恢復的Thenable。

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

配置名稱,支援點式名稱。

返回描述
布林值

如果節未解析為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

資源識別符號。

返回描述
布林值

如果給定資源將受到此編輯的影響,則為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 路徑的基本名稱。

此工作區資料夾關聯的 URI。

注意: 特意選擇了 Uri 型別,以便編輯器的未來版本可以支援不儲存在本地磁碟上的工作區資料夾,例如 ftp://server/workspaces/foo

WorkspaceFolderPickOptions

配置 工作區資料夾 選擇 UI 行為的選項。

屬性

設定為true可在焦點移至編輯器的其他部分或另一個視窗時保持選擇器開啟。此設定在 iPad 上將被忽略,並始終為 false。

一個可選字串,在輸入框中顯示為佔位符,以指導使用者選擇什麼。

WorkspaceFoldersChangeEvent

描述 工作區資料夾 集合變化的事件。

屬性

新增的工作區資料夾。

移除的工作區資料夾。

WorkspaceSymbolProvider<T>

工作區符號提供程式介面定義了擴充套件和 符號搜尋 功能之間的約定。

方法

在專案範圍內搜尋與給定查詢字串匹配的符號。

query 引數應以寬鬆的方式解釋,因為編輯器將對結果應用其自己的高亮顯示和評分。一個好的經驗法則是不區分大小寫地匹配,並簡單地檢查query的字元是否按其順序出現在候選符號中。不要使用字首、子字串或類似的嚴格匹配。

為了提高效能,實現者可以實現 resolveWorkspaceSymbol,然後提供具有部分 位置 物件的符號,而不定義 range。編輯器將僅針對選定的符號呼叫 resolveWorkspaceSymbol,例如在開啟工作區符號時。

引數描述
query: string

一個查詢字串,可以是空字串,在這種情況下應返回所有符號。

token: CancellationToken

取消令牌。

返回描述
ProviderResult<T[]>

一個文件高亮陣列或解析為此類的 thenable。可以透過返回 undefinednull 或空陣列來表示沒有結果。

給定一個符號,填充其 位置。每當在 UI 中選擇一個符號時,都會呼叫此方法。提供程式可以實現此方法並從 provideWorkspaceSymbols 返回不完整的符號,這通常有助於提高效能。

引數描述
symbol: T

待解析的符號。保證是先前對 provideWorkspaceSymbols 的呼叫返回的物件例項。

token: CancellationToken

取消令牌。

返回描述
ProviderResult<T>

已解析的符號或解析為該符號的 thenable。如果沒有返回結果,則使用給定的 symbol

API 模式

這些是我們用於 VS Code API 的一些常見模式。

Promises(承諾)

VS Code API 使用 promises 表示非同步操作。從擴充套件中,可以返回任何型別的 Promise,例如 ES6、WinJS、A+ 等。

透過 Thenable 型別在 API 中表達了與特定 Promise 庫無關的特性。Thenable 代表了公共的介面,即 then 方法。

在大多數情況下,使用 Promise 是可選的,當 VS Code 呼叫擴充套件時,它可以處理結果型別以及結果型別Thenable。當使用 Promise 是可選的時,API 透過返回 or 型別來表示這一點。

provideNumber(): number | Thenable<number>

Cancellation Tokens(取消令牌)

通常,操作是在易變狀態下啟動的,在操作完成之前狀態會發生變化。例如,計算智慧感知啟動,使用者繼續輸入,使該操作的結果過時。

暴露於此類行為的 API 將傳遞一個 CancellationToken,您可以在其上檢查取消(isCancellationRequested)或在發生取消時得到通知(onCancellationRequested)。取消令牌通常是函式呼叫的最後一個引數,並且是可選的。

Disposables(可釋放物件)

VS Code API 使用 dispose pattern 處理從 VS Code 獲取的資源。這適用於事件監聽、命令、與 UI 互動以及各種語言貢獻。

例如,setStatusBarMessage(value: string) 函式返回一個 Disposable,在呼叫 dispose 後會再次移除訊息。

事件

VS Code API 中的事件作為函式暴露,您可以使用偵聽器函式呼叫它們以進行訂閱。訂閱呼叫返回一個 Disposable,它在 dispose 時移除事件偵聽器。

var listener = function(event) {
  console.log('It happened', event);
};

// start listening
var subscription = fsWatcher.onDidDelete(listener);

// do more stuff

subscription.dispose(); // stop listening

事件名稱遵循 on[Will|Did]VerbNoun? 模式。該名稱表示事件是即將發生 (onWill) 還是已經發生 (onDid),發生了什麼 (verb),以及上下文 (noun),除非從上下文中顯而易見。

VS Code API 中的一個示例是 window.onDidChangeActiveTextEditor,這是一個當活動文字編輯器(noun)已(onDid)更改(verb)時觸發的事件。

嚴格的空值

VS Code API 在適當的地方使用 undefinednull TypeScript 型別,以支援 嚴格的空值檢查