現已釋出!閱讀關於 11 月新增功能和修復的內容。

VS Code API

VS Code API 是一套您可以在 Visual Studio Code 擴充套件中呼叫的 JavaScript API。本頁列出了所有提供給擴充套件作者的 VS Code API。

API 名稱空間和類

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

認證

用於身份驗證的名稱空間。

事件

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

函式

獲取使用者登入的指定提供程式的所有賬戶。與 getSession 配對使用,以便獲取特定賬戶的身份驗證會話。

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

注意:獲取賬戶並不意味著您的擴充套件可以訪問該賬戶或其身份驗證會話。您可以透過呼叫 getSession 來驗證對賬戶的訪問許可權。

引數描述
providerId: string

要使用的提供程式的 ID

返回值描述
Thenable<readonly AuthenticationSessionAccountInformation[]>

一個 thenable,它解析為只讀的身份驗證賬戶陣列。

獲取匹配所需範圍或滿足 WWW-Authenticate 請求的身份驗證會話。如果未註冊具有 providerId 的提供程式,或者使用者不同意與擴充套件共享身份驗證資訊,則會引發拒絕。如果存在多個具有相同範圍的會話,使用者將看到一個快速選擇器來選擇他們想要使用的賬戶。

內建身份驗證提供程式包括

  • 'github' - 用於 GitHub.com
  • 'microsoft' - 用於個人和組織 Microsoft 賬戶
  • (不太常見) 'github-enterprise' - 用於替代 GitHub 主機,GHE.com,GitHub Enterprise Server
  • (不太常見) 'microsoft-sovereign-cloud' - 用於替代 Microsoft 雲
引數描述
providerId: string

要使用的提供程式的 ID

scopeListOrRequest: readonly string[] | AuthenticationWwwAuthenticateRequest

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

options: AuthenticationGetSessionOptions & {createIfNone: true | AuthenticationGetSessionPresentationOptions}
返回值描述
Thenable<AuthenticationSession>

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

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

內建身份驗證提供程式包括

  • 'github' - 用於 GitHub.com
  • 'microsoft' - 用於個人和組織 Microsoft 賬戶
  • (不太常見) 'github-enterprise' - 用於替代 GitHub 主機,GHE.com,GitHub Enterprise Server
  • (不太常見) 'microsoft-sovereign-cloud' - 用於替代 Microsoft 雲
引數描述
providerId: string

要使用的提供程式的 ID

scopeListOrRequest: readonly string[] | AuthenticationWwwAuthenticateRequest

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

options: AuthenticationGetSessionOptions & {forceNewSession: true | AuthenticationGetSessionPresentationOptions}
返回值描述
Thenable<AuthenticationSession>

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

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

內建身份驗證提供程式包括

  • 'github' - 用於 GitHub.com
  • 'microsoft' - 用於個人和組織 Microsoft 賬戶
  • (不太常見) 'github-enterprise' - 用於替代 GitHub 主機,GHE.com,GitHub Enterprise Server
  • (不太常見) 'microsoft-sovereign-cloud' - 用於替代 Microsoft 雲
引數描述
providerId: string

要使用的提供程式的 ID

scopeListOrRequest: readonly string[] | AuthenticationWwwAuthenticateRequest

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

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

一個 thenable,它解析為身份驗證會話,如果使用了靜默流且未找到會話,則解析為 undefined

註冊一個身份驗證提供程式。

每個 ID 只能有一個提供程式,並且當另一個提供程式已使用某個 ID 時會引發錯誤。ID 是區分大小寫的。

引數描述
id: string

提供程式的唯一識別符號。

label: string

提供程式的易讀名稱。

provider: AuthenticationProvider

身份驗證提供程式。

options?: AuthenticationProviderOptions

提供程式的附加選項。

返回值描述
Disposable

一個 Disposable,在被釋放時登出此提供程式。

chat

用於聊天功能的名稱空間。使用者透過向聊天檢視中的聊天參與者傳送訊息來與他們互動。聊天參與者可以透過 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[]>

一個 thenable,它解析為命令 ID 列表。

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

使用現有的命令識別符號重複註冊命令將導致錯誤。

引數描述
command: string

命令的唯一識別符號。

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

命令處理函式。

thisArg?: any

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

返回值描述
Disposable

Disposable,在被釋放時登出此命令。

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

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

引數描述
command: string

命令的唯一識別符號。

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

具有對 編輯器edit 訪問許可權的命令處理函式。

thisArg?: any

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

返回值描述
Disposable

Disposable,在被釋放時登出此命令。

comments

函式

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

引數描述
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。如果源描述符使用引用號,則會構造一個特定的除錯 URI(方案為“debug”),該 URI 需要一個相應的 ContentProvider 和一個正在執行的除錯會話。

如果“Source”描述符資訊不足以建立 URI,則會引發錯誤。

引數描述
source: DebugProtocolSource

符合除錯介面卡協議中定義的 Source 型別的物件。

session?: DebugSession

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

返回值描述
Uri

可用於載入源內容的 URI。

為特定除錯型別註冊 除錯介面卡描述符工廠。擴充套件只能為其定義的除錯型別註冊 DebugAdapterDescriptorFactory。否則會引發錯誤。為同一除錯型別註冊多個 DebugAdapterDescriptorFactory 會導致錯誤。

引數描述
debugType: string

註冊工廠的除錯型別。

factory: DebugAdapterDescriptorFactory
返回值描述
Disposable

一個 Disposable,在被釋放時登出此工廠。

為給定的除錯型別註冊除錯介面卡跟蹤器工廠。

引數描述
debugType: string

註冊工廠的除錯型別,或 '*' 用於匹配所有除錯型別。

factory: DebugAdapterTrackerFactory
返回值描述
Disposable

一個 Disposable,在被釋放時登出此工廠。

為特定除錯型別註冊 除錯配置提供程式。可選的 triggerKind 可用於指定何時觸發提供程式的 provideDebugConfigurations 方法。目前有兩種觸發方式:使用 Initial(或未提供觸發引數)值時,provideDebugConfigurations 方法用於提供要複製到新建立的 launch.json 的初始除錯配置。使用 Dynamic 觸發方式時,provideDebugConfigurations 方法用於動態確定要呈現給使用者的除錯配置(除了 launch.json 中的靜態配置)。請注意,triggerKind 引數僅適用於 provideDebugConfigurations 方法:因此 resolveDebugConfiguration 方法不受任何影響。為不同觸發方式註冊具有 resolve 方法的單個提供程式會導致相同的 resolve 方法被呼叫多次。可以為同一型別註冊多個提供程式。

引數描述
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 時停止所有除錯會話。

引數描述
session?: DebugSession

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

返回值描述
Thenable<void>

一個 thenable,在會話停止後解析。

env

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

變數

應用程式的託管位置。在桌面版上是 'desktop'。在 Web 版上是指定的嵌入器,例如 'github.dev'、'codespaces' 或 'web'(如果嵌入器未提供該資訊)。

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

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

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

系統剪貼簿。

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

指示使用者是否啟用了遙測。可以觀察此值來確定擴充套件是否應傳送遙測資料。

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

編輯器的當前日誌級別。

計算機的唯一識別符號。

遠端資源的名稱。由擴充套件定義,常見的示例是 Linux 的 Windows 子系統(Windows Subsystem for Linux)的 wsl,或者使用安全外殼(secure shell)的遠端資源的 ssh-remote

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

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

檢測到的擴充套件主機預設 shell,它會被擴充套件主機平臺的 terminal.integrated.defaultProfile 設定覆蓋。請注意,在不支援 shell 的環境中,此值為空字串。

UI kind 屬性指示從哪個 UI 訪問擴充套件。例如,擴充套件可以從桌面應用程式或 Web 瀏覽器訪問。

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

事件

當編輯器的日誌級別發生變化時觸發的 事件

預設 shell 更改時觸發的 事件。該事件會傳遞新的 shell 路徑。

當用戶啟用或停用遙測時觸發的 事件。如果使用者啟用了遙測,則為 true;如果使用者停用了遙測,則為 false

函式

將 URI 解析為外部可訪問的形式。

http:https: 方案

將擴充套件正在執行的外部 URI(例如 http:https: 連結)解析為客戶端機器上相同資源的 URI。

如果擴充套件在客戶端機器上執行,則此操作無效。

如果擴充套件在遠端執行,此函式會自動建立從本地機器到遠端 target 的埠轉發隧道,並返回到該隧道的本地 URI。埠轉發隧道的生命週期由編輯器管理,並且使用者可以關閉隧道。

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

vscode.env.uriScheme

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

擴充套件不應假定結果 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 時,編輯器將開啟工作區。

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

變數

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

事件

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

函式

透過以下格式的完整識別符號獲取擴充套件:publisher.name

引數描述
extensionId: string

擴充套件識別符號。

返回值描述
Extension<T> | undefined

擴充套件或 undefined

l10n

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

注意:內建擴充套件(例如 Git、TypeScript Language Features、GitHub Authentication)不包含在 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}

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

返回值描述
字串

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

語言

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

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

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

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

註冊使用 文件選擇器 完成,該選擇器可以是語言 ID,如 javascript,或者更復雜的 過濾器,如 { language: 'typescript', scheme: 'file' }。將文件與這樣的選擇器進行匹配將產生一個 分數,用於確定提供程式是否以及如何使用。當分數相等時,最後出現的提供程式獲勝。對於允許任意數量引數的功能,如 懸停,分數僅用於檢查是否 >0;對於其他功能,如 IntelliSense,分數用於確定按什麼順序詢問提供程式。

事件

全域性診斷集發生變化時觸發的 事件。這是新新增和移除的診斷。

函式

建立診斷集合。

引數描述
name?: string

集合的 名稱

返回值描述
DiagnosticCollection

一個新的診斷集合。

建立一個新的 語言狀態項

引數描述
id: string

項的識別符號。

selector: DocumentSelector

定義該項顯示在哪些編輯器的文件選擇器。

返回值描述
LanguageStatusItem

一個新的語言狀態項。

獲取給定資源的 au 診斷。

引數描述
resource: Uri

資源

返回值描述
Diagnostic[]

Diagnostic 物件陣列或空陣列。

獲取 au 診斷。

引數描述
返回值描述
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,在被釋放時登出此提供程式。

註冊程式碼 Lens 提供程式。

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

引數描述
selector: DocumentSelector

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

provider: CodeLensProvider<CodeLens>

程式碼 Lens 提供程式。

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

可以為一種語言註冊多個拖放提供程式。將內容拖放到編輯器中時,將根據它們處理的 MIME 型別(由其 DocumentDropEditProviderMetadata 指定)呼叫該編輯器註冊的所有提供程式。

每個提供程式可以返回一個或多個 DocumentDropEdits。編輯會根據 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

可以為一種語言註冊多個提供程式。所有已註冊的語言提供程式都將根據其處理的 MIME 型別(由 DocumentPasteProviderMetadata 指定)在複製和貼上操作中呼叫。

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

對於 [DocumentPasteEditProvider.providerDocumentPasteEdits 貼上操作](#_DocumentPasteEditProvider.providerDocumentPasteEdits 貼上操作),將呼叫每個提供程式,並且它們可以返回一個或多個 DocumentPasteEdits。編輯會根據 DocumentPasteEdit.yieldTo 屬性進行排序。預設情況下,將應用第一個編輯,其餘編輯將顯示給使用者,作為貼上控制元件中可選的貼上選項。

引數描述
selector: DocumentSelector

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

provider: DocumentPasteEditProvider<DocumentPasteEdit>

貼上編輯器提供程式。

metadata: DocumentPasteProviderMetadata

有關提供程式的其他元資料。

返回值描述
Disposable

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

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

注意: 文件範圍提供程式也是一個 文件格式化程式,這意味著在註冊範圍提供程式時,無需 註冊 文件格式化程式。

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

引數描述
selector: DocumentSelector

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

provider: DocumentRangeFormattingEditProvider

文件範圍格式化編輯提供程式。

返回值描述
Disposable

一個 Disposable,在被釋放時登出此提供程式。

為文件範圍註冊語義令牌提供程式。

注意: 如果一個文件同時擁有 DocumentSemanticTokensProviderDocumentRangeSemanticTokensProvider,則範圍提供程式僅在最初被呼叫,用於完全文件提供程式解析第一個請求所需的時間。一旦完全文件提供程式解析了第一個請求,透過範圍提供程式提供的語義令牌將被丟棄,此後將僅使用文件提供程式。

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

引數描述
selector: DocumentSelector

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

provider: DocumentRangeSemanticTokensProvider

文件範圍語義令牌提供程式。

legend: SemanticTokensLegend
返回值描述
Disposable

一個 Disposable,在被釋放時登出此提供程式。

為整個文件註冊語義令牌提供程式。

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

引數描述
selector: DocumentSelector

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

provider: DocumentSemanticTokensProvider

文件語義令牌提供程式。

legend: SemanticTokensLegend
返回值描述
Disposable

一個 Disposable,在被釋放時登出此提供程式。

註冊文件符號提供程式。

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

引數描述
selector: DocumentSelector

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

provider: DocumentSymbolProvider

文件符號提供程式。

metaData?: DocumentSymbolProviderMetadata

提供程式的元資料。

返回值描述
Disposable

一個 Disposable,在被釋放時登出此提供程式。

註冊一個用於在文字文件中定位可求值表示式的提供程式。編輯器將在活動除錯會話中求值表示式,並在除錯懸停時顯示結果。

如果為語言註冊了多個提供程式,則將使用任意一個提供程式。

引數描述
selector: DocumentSelector

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

provider: EvaluatableExpressionProvider

可求值表示式提供程式。

返回值描述
Disposable

一個 Disposable,在被釋放時登出此提供程式。

註冊摺疊範圍提供程式。

可以為語言註冊多個提供程式。在這種情況下,提供程式會並行請求,並將結果合併。如果多個摺疊範圍從同一位置開始,則僅使用第一個註冊提供程式的結果。如果摺疊範圍與一個位置更小的範圍重疊,它也會被忽略。

失敗的提供程式(承諾被拒絕或丟擲異常)不會導致整個操作失敗。

引數描述
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,在被釋放時登出此提供程式。

註冊工作區符號提供程式。

可以註冊多個提供程式。在這種情況下,提供程式會並行請求,並將結果合併。失敗的提供程式(承諾被拒絕或丟擲異常)不會導致整個操作失敗。

引數描述
provider: WorkspaceSymbolProvider<SymbolInformation>

工作區符號提供程式。

返回值描述
Disposable

一個 Disposable,在被釋放時登出此提供程式。

為語言設定 語言配置

引數描述
language: string

語言識別符號,例如 typescript

configuration: LanguageConfiguration

語言配置。

返回值描述
Disposable

一個 Disposable,用於在移除配置時進行釋放。

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

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

引數描述
document: TextDocument

要更改語言的文件。

languageId: string

新的語言識別符號。

返回值描述
Thenable<TextDocument>

一個可等待的(thenable),它將以更新後的文件解析。

lm

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

變數

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

事件

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

函式

透過名稱和給定的輸入呼叫 lm.tools 中列出的工具。輸入將根據工具宣告的模式進行驗證。

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

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

工具 結果 是一個由 文字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

此提供程式的供應商。必須是全域性唯一的。例如,copilotopenai

provider: LanguageModelChatProvider<LanguageModelChatInformation>

要註冊的提供程式。

返回值描述
Disposable

一個 disposable,在被釋放時取消註冊提供程式。

註冊一個提供程式,該程式釋出模型上下文協議(MCP)伺服器供編輯器使用。這允許 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

一個 disposable,在被釋放時取消註冊提供程式。

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

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

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

筆記本的名稱空間。

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

  1. NotebookSerializer 使編輯器能夠開啟、顯示和儲存筆記本。
  2. NotebookController 負責筆記本的執行,例如,它們會生成程式碼單元格的輸出。
  3. NotebookRenderer 在編輯器中呈現筆記本輸出。它們在單獨的上下文中執行。

函式

建立一個新的筆記本控制器。

引數描述
id: string

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

notebookType: string

此控制器所屬的筆記本型別。

label: string

控制器的標籤。

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

控制器的執行處理程式。

返回值描述
NotebookController

新的筆記本控制器。

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

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

要通訊的渲染器 ID

返回值描述
NotebookRendererMessaging

一個新的筆記本渲染器訊息物件。

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

引數描述
notebookType: string

註冊的筆記本型別。

provider: NotebookCellStatusBarItemProvider

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

返回值描述
Disposable

一個 Disposable,在被釋放時登出此提供程式。

scm

原始碼管理名稱空間。

變數

擴充套件建立的最後一個源控制元件的 輸入框

  • 已棄用 - 請改用 SourceControl.inputBox

函式

建立一個新的 源控制元件 例項。

引數描述
id: string

源控制元件的 id。一個簡短的字串,例如:git

label: string

源控制元件的人類可讀字串。例如:Git

rootUri?: Uri

源控制元件根目錄的 URI(可選)。例如:Uri.parse(workspaceRoot)

返回值描述
SourceControl

源控制元件 的一個例項。

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。活動編輯器是當前具有焦點編輯器,或者在沒有編輯器有焦點時,是最近更改輸入的編輯器。

表示當前視窗的狀態。

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

當前開啟的終端,或者一個空陣列。

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

當前可見的編輯器,或者一個空陣列。

事件

當活動顏色主題更改或發生更改時觸發的 Event

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

活動終端 更改時觸發的 Event注意,當活動終端更改為 undefined 時,事件也會觸發。

活動編輯器 更改時觸發的 Event注意,當活動編輯器更改為 undefined 時,事件也會觸發。

筆記本編輯器選擇 更改時觸發的 Event

筆記本編輯器可見範圍 更改時觸發的 Event

當終端中的 Shell Integration 啟用或其某個屬性更改時觸發。

終端狀態 更改時觸發的 Event

當編輯器的選項更改時觸發的 Event

當編輯器中的選區更改時觸發的 Event

當編輯器的檢視列更改時觸發的 Event

當編輯器的可見範圍更改時觸發的 Event

可見筆記本編輯器 陣列更改時觸發的 Event

可見編輯器 陣列更改時觸發的 Event

噹噹前視窗的焦點或活動狀態更改時觸發的 Event。事件的值表示視窗是否獲得焦點。

當終端被釋放時觸發的 Event

當終端命令結束時觸發。此事件僅在終端 激活了 Shell Integration 時觸發。

當終端被建立時(透過 createTerminal API 或命令)觸發的 Event

當終端命令開始時觸發。此事件僅在終端 激活了 Shell Integration 時觸發。

函式

建立一個 InputBox,讓使用者輸入文字。

請注意,在許多情況下,更方便的 window.showInputBox 更易於使用。window.createInputBox 應在 window.showInputBox 不提供所需靈活性時使用。

引數描述
返回值描述
InputBox

一個新的 InputBox

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

您可以從 可見編輯器活動編輯器 訪問可見或活動的輸出通道,作為 文字文件,並使用語言 ID 來貢獻語言功能,如語法著色、程式碼 Lens 等。

引數描述
name: string

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

languageId?: string

與通道關聯的語言的識別符號。

返回值描述
OutputChannel

一個新的輸出通道。

使用給定的名稱建立一個新的 日誌輸出通道

引數描述
name: string

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

options: {log: true}

日誌輸出通道的選項。

返回值描述
LogOutputChannel

一個新的日誌輸出通道。

建立一個 QuickPick,讓使用者從 T 型別項的列表中選擇一個項。

請注意,在許多情況下,更方便的 window.showQuickPick 更易於使用。window.createQuickPick 應在 window.showQuickPick 不提供所需靈活性時使用。

引數描述
返回值描述
QuickPick<T>

一個新的 QuickPick

建立一個狀態列

引數描述
id: string

項的識別符號。在擴充套件中必須是唯一的。

alignment?: StatusBarAlignment

項的對齊方式。

priority?: number

項的優先順序。值越高表示項應顯示在越靠左的位置。

返回值描述
StatusBarItem

一個新的狀態列項。

建立一個狀態列

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

引數描述
alignment?: StatusBarAlignment

項的對齊方式。

priority?: number

項的優先順序。值越高表示項應顯示在越靠左的位置。

返回值描述
StatusBarItem

一個新的狀態列項。

使用後備 shell 程序建立一個 Terminal。終端的 cwd 將是工作區目錄(如果存在)。

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

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

shellPath?: string

將在終端中使用的自定義 shell 可執行檔案的可選路徑。

shellArgs?: string | readonly string[]

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

返回值描述
終端

一個新的 Terminal。

使用後備 shell 程序建立一個 Terminal

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

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

返回值描述
終端

一個新的 Terminal。

建立一個由擴充套件控制其輸入和輸出的 Terminal

引數描述
options: ExtensionTerminalOptions

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

返回值描述
終端

一個新的 Terminal。

建立一個 TextEditorDecorationType,用於向文字編輯器新增裝飾。

引數描述
options: DecorationRenderOptions

裝飾型別的渲染選項。

返回值描述
TextEditorDecorationType

一個新的裝飾型別例項。

為使用 views 擴充套件點貢獻的檢視建立一個 TreeView

引數描述
viewId: string

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

options: TreeViewOptions<T>

建立 TreeView 的選項。

返回值描述
TreeView<T>

一個 TreeView

建立並顯示一個新的 Webview 面板。

引數描述
viewType: string

標識 Webview 面板的型別。

title: string

面板的標題。

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

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

options?: WebviewPanelOptions & WebviewOptions

新面板的設定。

返回值描述
WebviewPanel

新的 Webview 面板。

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

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

引數描述
viewType: string

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

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

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

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

提供程式的選項。

返回值描述
Disposable

登出提供程式的 Disposable 物件。

註冊檔案裝飾提供程式。

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

登出提供程式的 Disposable 物件。

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

引數描述
provider: TerminalLinkProvider<TerminalLink>

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

返回值描述
Disposable

登出提供程式的 Disposable 物件。

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

引數描述
id: string

貢獻的終端配置檔案的 ID。

provider: TerminalProfileProvider

終端配置檔案提供程式。

返回值描述
Disposable

登出提供程式的 Disposable 物件。

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

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

引數描述
viewId: string

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

treeDataProvider: TreeDataProvider<T>

提供檢視樹資料的 TreeDataProvider

返回值描述
Disposable

登出 TreeDataProvider 的 Disposable 物件。

註冊一個能夠處理系統範圍的 URIURI 處理程式。如果打開了多個視窗,則最上面的視窗將處理 URI。URI 處理程式的作用域限定在其貢獻的擴充套件程式內;它只能處理定向到擴充套件程式本身的 URI。URI 必須遵守以下規則:

  • URI 方案必須是 vscode.env.uriScheme
  • URI 許可權必須是擴充套件 ID(例如 my.extension);
  • URI 路徑、查詢和片段部分是任意的。

例如,如果 my.extension 擴充套件程式註冊了一個 URI 處理程式,它將只能處理以 product-name://my.extension 開頭的 URI。

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

  • 注意:存在一個 onUri 啟用事件,當一個指向當前擴充套件程式的 URI 即將處理時,該事件會被觸發。
引數描述
handler: UriHandler

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

返回值描述
Disposable

登出處理程式的 Disposable 物件。

註冊 Webview 面板序列化器。

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

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

引數描述
viewType: string

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

serializer: WebviewPanelSerializer<unknown>

Webview 序列化器。

返回值描述
Disposable

登出序列化器的 Disposable 物件。

為 Webview 檢視註冊新的提供程式。

引數描述
viewId: string

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

provider: WebviewViewProvider

Webview 檢視的提供程式。

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

登出提供程式的 Disposable 物件。

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

引數描述
text: string

要顯示的訊息,支援圖示替換,如狀態列 專案 中所述。

hideAfterTimeout: number

訊息將被隱藏後的超時時間(毫秒)。

返回值描述
Disposable

隱藏狀態列訊息的 Disposable 物件。

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

引數描述
text: string

要顯示的訊息,支援圖示替換,如狀態列 專案 中所述。

hideWhenDone: Thenable<any>

訊息完成後(解析或拒絕)將被隱藏的 Promise。

返回值描述
Disposable

隱藏狀態列訊息的 Disposable 物件。

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

注意狀態列訊息會堆疊,並且在使用完畢後必須將其 disposed。

引數描述
text: string

要顯示的訊息,支援圖示替換,如狀態列 專案 中所述。

返回值描述
Disposable

隱藏狀態列訊息的 Disposable 物件。

顯示錯誤訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

...items: T[]

將顯示為訊息中可點選操作的一組專案。

返回值描述
Thenable<T | undefined>

一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 undefined

顯示錯誤訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

options: MessageOptions

配置訊息的行為。

...items: T[]

將顯示為訊息中可點選操作的一組專案。

返回值描述
Thenable<T | undefined>

一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 undefined

顯示錯誤訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

...items: T[]

將顯示為訊息中可點選操作的一組專案。

返回值描述
Thenable<T | undefined>

一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 undefined

顯示錯誤訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

options: MessageOptions

配置訊息的行為。

...items: T[]

將顯示為訊息中可點選操作的一組專案。

返回值描述
Thenable<T | undefined>

一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 undefined

向用戶顯示資訊訊息。可以選擇提供一個數組的專案,這些專案將顯示為可點選的按鈕。

引數描述
message: string

要顯示的訊息。

...items: T[]

將顯示為訊息中可點選操作的一組專案。

返回值描述
Thenable<T | undefined>

一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 undefined

向用戶顯示資訊訊息。可以選擇提供一個數組的專案,這些專案將顯示為可點選的按鈕。

引數描述
message: string

要顯示的訊息。

options: MessageOptions

配置訊息的行為。

...items: T[]

將顯示為訊息中可點選操作的一組專案。

返回值描述
Thenable<T | undefined>

一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 undefined

顯示資訊訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

...items: T[]

將顯示為訊息中可點選操作的一組專案。

返回值描述
Thenable<T | undefined>

一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 undefined

顯示資訊訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

options: MessageOptions

配置訊息的行為。

...items: T[]

將顯示為訊息中可點選操作的一組專案。

返回值描述
Thenable<T | undefined>

一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 undefined

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

如果輸入框被取消(例如,按 ESC 鍵),則返回值將是 undefined。否則,返回值將是使用者鍵入的字串,如果使用者未鍵入任何內容但用 OK 按鈕關閉了輸入框,則返回空字串。

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

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

引數描述
document: TextDocument

要顯示的文字文件。

column?: ViewColumn

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

preserveFocus?: boolean

如果設定為 true,編輯器將不會獲得焦點。

返回值描述
Thenable<TextEditor>

一個解析為 編輯器 的 Promise。

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

引數描述
document: TextDocument

要顯示的文字文件。

options?: TextDocumentShowOptions

配置顯示 編輯器 行為的 編輯器選項

返回值描述
Thenable<TextEditor>

一個解析為 編輯器 的 Promise。

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

另請參閱 workspace.openTextDocument

引數描述
uri: Uri

資源識別符號。

options?: TextDocumentShowOptions

配置顯示 編輯器 行為的 編輯器選項

返回值描述
Thenable<TextEditor>

一個解析為 編輯器 的 Promise。

顯示警告訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

...items: T[]

將顯示為訊息中可點選操作的一組專案。

返回值描述
Thenable<T | undefined>

一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 undefined

顯示警告訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

options: MessageOptions

配置訊息的行為。

...items: T[]

將顯示為訊息中可點選操作的一組專案。

返回值描述
Thenable<T | undefined>

一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 undefined

顯示警告訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

...items: T[]

將顯示為訊息中可點選操作的一組專案。

返回值描述
Thenable<T | undefined>

一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 undefined

顯示警告訊息。

另請參閱 showInformationMessage

引數描述
message: string

要顯示的訊息。

options: MessageOptions

配置訊息的行為。

...items: T[]

將顯示為訊息中可點選操作的一組專案。

返回值描述
Thenable<T | undefined>

一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 undefined

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

引數描述
options?: WorkspaceFolderPickOptions

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

返回值描述
Thenable<WorkspaceFolder | undefined>

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

在編輯器中顯示進度。在執行給定的回撥函式以及它返回的 Promise 未解析或拒絕之前,將顯示進度。進度應顯示的位置(以及其他詳細資訊)透過傳入的 ProgressOptions 來定義。

引數描述
options: ProgressOptions

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

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

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

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

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

返回值描述
Thenable<R>

任務回撥函式返回的 Promise。

在執行給定的回撥函式期間以及在其返回的 Promise 未解析或拒絕時,在原始碼管理檢視中顯示進度。

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

返回 Promise 的回撥函式。可以使用提供的 Progress 物件報告進度增量。

返回值描述
Thenable<R>

任務返回的 Thenable。

workspace

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

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

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

工作區支援 監聽 fs 事件以及 查詢 檔案。兩者效能都很好,並且編輯器程序之外執行,因此應始終使用它們而不是 nodejs 等效項。

變數

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

如果為 true,則使用者已明確信任工作區的內容。

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

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

編輯器當前已知的所有筆記本檔案。

string 形式的 workspaceFolders 的第一個條目的 URI。如果不存在第一個條目,則為 undefined

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

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

工作區檔案的位置,例如

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

untitled:1555503116870

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

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

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

位置可用於 vscode.openFolder 命令,以便在工作區關閉後重新開啟它。

示例

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

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

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

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

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

事件

配置 發生更改時發出的事件。

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

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

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

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

筆記本 被釋放時發出的事件。

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

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

文字檔案 被釋放或文字檔案的語言 ID 已更改 時發出的事件。

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

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

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

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

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

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

注意 2:刪除帶有子檔案的資料夾時,只觸發一個事件。

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

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

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

要新增一個事件監聽器來處理可見文字檔案開啟的情況,請使用 window 名稱空間中的 TextEditor 事件。請注意:

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

注意 1:此事件由使用者操作觸發,例如從資源管理器或 workspace.applyEdit API 重新命名檔案,但當檔案在磁碟上更改時(例如由其他應用程式觸發)或使用 workspace.fs API 時,此事件不會觸發。

注意 2:重新命名帶有子檔案的資料夾時,只觸發一個事件。

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

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

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

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

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

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

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

注意 2:刪除帶有子檔案的資料夾時,只觸發一個事件。

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

注意 1:此事件由使用者操作觸發,例如從資源管理器或 workspace.applyEdit API 重新命名檔案,但當檔案在磁碟上更改時(例如由其他應用程式觸發)或使用 workspace.fs API 時,此事件不會觸發。

注意 2:重新命名帶有子檔案的資料夾時,只觸發一個事件。

筆記本檔案 將被儲存到磁碟時發出的事件。

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

注意 2:訂閱者按順序呼叫,並且可以透過註冊非同步工作來 延遲 儲存。為了防止行為不當的監聽者,會實施以下措施:

  • 所有監聽者共享一個總時間預算,如果該預算耗盡,則不再呼叫其他監聽者。
  • 耗時過長或經常產生錯誤的監聽者將不再被呼叫。

當前閾值是 1.5 秒作為總時間預算,並且一個監聽者在被忽略之前最多可以表現不當 3 次。

文字檔案 將被儲存到磁碟時發出的事件。

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

注意 2:訂閱者按順序呼叫,並且他們可以透過註冊非同步工作來 延遲 儲存。為了防止行為不當的監聽者,會實施以下措施:

  • 所有監聽者共享一個總時間預算,如果該預算耗盡,則不再呼叫其他監聽者。
  • 耗時過長或經常產生錯誤的監聽者將不再被呼叫。

當前閾值是 1.5 秒作為總時間預算,並且一個監聽者在被忽略之前最多可以表現不當 3 次。

函式

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

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

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

引數描述
edit: WorkspaceEdit

工作區編輯。

metadata?: WorkspaceEditMetadata

可選的 元資料

返回值描述
Thenable<boolean>

在編輯可以應用時解析的 Thenable。

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

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

引數描述
pathOrUri: string | Uri

路徑或 URI。當提供 URI 時,將使用其 fsPath

includeWorkspaceFolder?: boolean

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

返回值描述
字串

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

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

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

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

注意,對於尚未在檔案系統中存在但將被監視的路徑,將在它們被建立後延遲通知,並根據提供的引數進行監視。如果被監視的路徑被刪除,監視器將暫停,直到路徑再次被建立,否則不會報告任何事件。

如果可能,請儘量減少遞迴監視器的使用,因為遞迴檔案監視非常消耗資源。

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

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

要停止監聽事件,必須釋放監視器。

注意,刪除資料夾的檔案事件可能不包括其中檔案的事件。例如,當一個資料夾被移動到回收站時,只報告一個事件,因為從技術上講,這是對其中每個檔案的一次重新命名/移動操作,而不是刪除操作。此外,還實施了效能最佳化,將屬於同一父操作(例如,刪除資料夾)的多個事件合併為一個針對該父項的事件。因此,如果您需要知道所有已刪除的檔案,則必須使用 ** 進行監視並自行處理所有檔案事件。

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

注意,檔案監視器預設不會自動跟蹤符號連結,除非要監視的路徑本身是一個符號連結。

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

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

示例

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

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

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

watcher.dispose(); // dispose after usage

工作區檔案監視

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

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

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

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

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

工作區外檔案監視

要監視工作區外(非遞迴)的 *.js 檔案的資料夾更改,請傳遞指向該資料夾的 Uri

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

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

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

以下是監視活動編輯器進行檔案更改的示例:

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

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

ignoreCreateEvents?: boolean

忽略建立檔案時的事件。

ignoreChangeEvents?: boolean

忽略更改檔案時的事件。

ignoreDeleteEvents?: boolean

忽略刪除檔案時的事件。

返回值描述
FileSystemWatcher

新的檔案系統監視器例項。無需再使用時必須釋放。

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

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

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

  • 丟擲 - 如果內容是二進位制的,此方法將丟擲錯誤。
引數描述
content: Uint8Array

要解碼為 Uint8Array 的文字內容。

返回值描述
Thenable<string>

一個解析為解碼後的 string 的 Thenable。

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

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

  • 丟擲 - 如果內容是二進位制的,此方法將丟擲錯誤。
引數描述
content: Uint8Array

要解碼為 Uint8Array 的文字內容。

options: {encoding: string}

選擇編碼的附加上下文。

返回值描述
Thenable<string>

一個解析為解碼後的 string 的 Thenable。

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

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

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

  • 丟擲 - 如果內容是二進位制的,此方法將丟擲錯誤。
引數描述
content: Uint8Array

要解碼為 Uint8Array 的內容。

options: {uri: Uri}

選擇編碼的附加上下文。

返回值描述
Thenable<string>

一個解析為解碼後的 string 的 Thenable。

string 的內容編碼為 Uint8Array

將根據設定選擇編碼。

引數描述
content: string

要解碼為 string 的內容。

返回值描述
Thenable<Uint8Array>

一個解析為編碼後的 Uint8Array 的 Thenable。

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

引數描述
content: string

要解碼為 string 的內容。

options: {encoding: string}

選擇編碼的附加上下文。

返回值描述
Thenable<Uint8Array>

一個解析為編碼後的 Uint8Array 的 Thenable。

string 的內容編碼為 Uint8Array

將根據設定選擇編碼。

引數描述
content: string

要解碼為 string 的內容。

options: {uri: Uri}

選擇編碼的附加上下文。

返回值描述
Thenable<Uint8Array>

一個解析為編碼後的 Uint8Array 的 Thenable。

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

示例

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

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

exclude?: GlobPattern

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

maxResults?: number

結果的上限。

token?: CancellationToken

一個可用於向底層搜尋引擎發出取消訊號的 token。

返回值描述
Thenable<Uri[]>

一個解析為資源識別符號陣列的 Thenable。如果沒有開啟 工作區資料夾,則返回無結果。

獲取工作區配置物件。

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

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

引數描述
section?: string

用點分隔的識別符號。

scope?: ConfigurationScope

請求配置的範圍。

返回值描述
WorkspaceConfiguration

完整的配置或其子集。

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

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

一個 URI。

返回值描述
WorkspaceFolder | undefined

工作區資料夾或 undefined

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

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

請注意,開啟筆記本並不會顯示筆記本編輯器。此函式僅返回一個筆記本文件,該文件可以在筆記本編輯器中顯示,也可以用於其他目的。

引數描述
uri: Uri

要開啟的資源。

返回值描述
Thenable<NotebookDocument>

解析為筆記本的 Promise。

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

另請參閱 workspace.openNotebookDocument

引數描述
notebookType: string

應使用的筆記本型別。

content?: NotebookData

筆記本的初始內容。

返回值描述
Thenable<NotebookDocument>

解析為筆記本的 Promise。

開啟一個文件。如果文件已開啟,則會提前返回。否則,文件將被載入,並且會觸發 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(Uri.file(path)) 的簡寫。

另請參閱 workspace.openTextDocument

引數描述
path: string

磁碟上的檔案路徑。

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

解析為文件的 Promise。

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

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

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

返回值描述
Thenable<TextDocument>

解析為文件的 Promise。

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

每個方案只能有一個提供程式,並且當一個方案已被另一個提供程式宣告或被保留時,會丟擲錯誤。

引數描述
scheme: string

提供程式註冊的 URI 方案

provider: FileSystemProvider

檔案系統提供程式。

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

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

返回值描述
Disposable

一個 Disposable,在被釋放時登出此提供程式。

註冊一個筆記本序列化器

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

引數描述
notebookType: string

一個筆記本。

serializer: NotebookSerializer

一個筆記本序列化器。

options?: NotebookDocumentContentOptions

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

返回值描述
Disposable

一個可Disposable,用於在登出此序列化器時解除註冊。

註冊一個任務提供程式。

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

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

provider: TaskProvider<Task>

一個任務提供程式。

返回值描述
Disposable

一個 Disposable,在被釋放時登出此提供程式。

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

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

引數描述
scheme: string

要註冊的 URI 方案。

provider: TextDocumentContentProvider

一個內容提供程式。

返回值描述
Disposable

一個 Disposable,在被釋放時登出此提供程式。

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

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

引數描述
uri: Uri

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

返回值描述
Thenable<Uri | undefined>

儲存操作完成後解析的 thenable。

儲存所有髒檔案。

引數描述
includeUntitled?: boolean

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

返回值描述
Thenable<boolean>

檔案儲存完成後解析的 thenable。對於任何未能儲存的檔案,將返回 false

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

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

引數描述
uri: Uri

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

返回值描述
Thenable<Uri | undefined>

另存為操作完成後解析的 thenable。

此方法將從索引 start 開始替換 deleteCount工作區資料夾,並可選地新增一組 workspaceFoldersToAddvscode.workspace.workspaceFolders 陣列。這種“splice”行為可用於一次操作中新增、刪除和更改工作區資料夾。

注意:在某些情況下,呼叫此方法可能會導致當前正在執行的擴充套件(包括呼叫此方法的擴充套件)被終止並重新啟動。例如,當新增、刪除或更改第一個工作區資料夾時,(已棄用的)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

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

屬性

當專案獲得焦點時,螢幕閱讀器會讀取的標籤。

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

AuthenticationForceNewSessionOptions

在將標誌 forceNewSession 用於 authentication.getSession 時使用的可選選項。

AuthenticationGetSessionOptions

在從 AuthenticationProvider 獲取 AuthenticationSession 時使用的選項。

屬性

您希望獲取會話的帳戶。這會傳遞給身份驗證提供程式,用於建立正確的會話。

是否應清除現有的會話偏好設定。

對於支援一次登入多個帳戶的身份驗證提供程式,當呼叫 getSession 時,將提示使用者選擇要使用的帳戶。此偏好設定將一直保留,直到呼叫 getSession 並設定此標誌。

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

預設為 false。

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

如果為 true,將顯示一個模態對話方塊,要求使用者登入。如果為 false,將在帳戶活動欄圖示上顯示一個編號徽章。將在選單下新增擴充套件的條目以登入。這允許悄悄提示使用者登入。

如果您提供選項,您也會看到對話方塊,但帶有提供的附加上下文。

如果存在匹配的會話但擴充套件尚未獲得訪問許可權,則將此設定為 true 也將導致立即顯示模態對話方塊,而 false 將在帳戶圖示上新增編號徽章。

預設為 false。

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

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

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

如果您提供選項,您也會看到對話方塊,但帶有提供的附加上下文。

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

預設為 false。

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

如果為 false,使用者將在帳戶選單上看到一個帶有擴充套件登入選項的徽章。如果為 true,則不會顯示任何指示。

預設為 false。

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

AuthenticationGetSessionPresentationOptions

使用互動式選項 forceNewSessioncreateIfNone 呼叫 authentication.getSession 時使用的可選選項。

屬性

當要求使用者重新進行身份驗證時,將顯示給使用者的可選訊息。提供額外的上下文說明為何要求使用者重新進行身份驗證,有助於提高他們接受的可能性。

AuthenticationProvider

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

事件

當會話陣列發生更改或會話中的資料發生更改時觸發的 Event

方法

提示使用者登入。

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

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

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

引數描述
scopes: readonly string[]

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

options: AuthenticationProviderSessionOptions

建立會話的附加選項。

返回值描述
Thenable<AuthenticationSession>

解析為身份驗證會話的 Promise。

獲取會話列表。

引數描述
scopes: readonly string[]

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

options: AuthenticationProviderSessionOptions

獲取會話的附加選項。

返回值描述
Thenable<AuthenticationSession[]>

解析為身份驗證會話陣列的 Promise。

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

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

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

引數描述
sessionId: string

要刪除的會話的 ID。

返回值描述
Thenable<void>

AuthenticationProviderAuthenticationSessionsChangeEvent

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

屬性

AuthenticationProvider 已更改的 AuthenticationSessions。當會話的資料(不包括 ID)更新時,會話會發生更改。一個例子是會話重新整理,導致為該會話設定了新的訪問令牌。

AuthenticationProviderInformation

關於 AuthenticationProvider 的基本資訊。

屬性

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

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

AuthenticationProviderOptions

建立 AuthenticationProvider 的選項。

屬性

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

AuthenticationProviderSessionOptions

屬性

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

AuthenticationSession

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

屬性

訪問令牌。此令牌應用於對服務進行身份驗證的請求。由 OAuth 普及。

與會話關聯的帳戶。

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

ID 令牌。此令牌包含使用者的身份資訊。由 OpenID Connect 普及。

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

AuthenticationSessionAccountInformation

AuthenticationSession 關聯的帳戶的資訊。

屬性

帳戶的唯一識別符號。

帳戶的易讀名稱。

AuthenticationSessionsChangeEvent

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

屬性

其會話已更改的 AuthenticationProvider

AuthenticationWwwAuthenticateRequest

表示基於 WWW-Authenticate 標頭值建立會話的引數。當 API 返回 401 並帶有指示需要其他身份驗證的 WWW-Authenticate 標頭時使用此引數。其詳細資訊將傳遞給身份驗證提供程式以建立會話。

  • 注意 - 授權提供程式必須支援處理挑戰,特別是此 WWW-Authenticate 值中的挑戰。

屬性

如果在 WWW-Authenticate 標頭中找不到範圍,則使用的備用範圍。

觸發此挑戰的原始 WWW-Authenticate 標頭值。該值將被身份驗證提供程式解析以提取必要的挑戰資訊。

AutoClosingPair

描述字串對,在鍵入開頭的字串時會自動插入結束字串。

屬性

鍵入開頭的字串時將自動插入的結束字串。

不應自動關閉配對的令牌集。

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

BranchCoverage

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

建構函式

引數描述
executed: number | boolean

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

location?: Range | Position

分支位置。

label?: string
返回值描述
BranchCoverage

屬性

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

分支的標籤,用於“未採用 ${label} 分支”的上下文,例如。

分支位置。

斷點

所有斷點型別的基類。

建構函式

建立新的斷點

引數描述
enabled?: boolean

斷點是否已啟用。

condition?: string

條件斷點的表示式

hitCondition?: string

控制斷點命中次數的表示式

logMessage?: string

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

返回值描述
斷點

屬性

條件斷點的可選表示式。

斷點是否已啟用。

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

斷點的唯一 ID。

斷點命中時要記錄的可選訊息。{} 中的嵌入表示式由除錯介面卡進行插值。

斷點更改事件

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

屬性

新增的斷點。

更改的斷點。

刪除的斷點。

呼叫層次結構傳入呼叫

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

建構函式

建立新的呼叫物件。

引數描述
item: CallHierarchyItem

發起呼叫的項。

fromRanges: Range[]

調用出現的範圍。

返回值描述
呼叫層次結構傳入呼叫

屬性

發起呼叫的項。

調用出現的範圍。這相對於由 this.from 表示的呼叫者。

呼叫層次結構項

在呼叫層次結構的上下文中表示函式或建構函式等程式設計構造。

建構函式

建立新的呼叫層次結構項。

引數描述
kind: SymbolKind
name: string
detail: string
uri: Uri
range: Range
selectionRange: Range
返回值描述
呼叫層次結構項

屬性

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

此項的種類。

此項的名稱。

包含此符號的範圍,不包括前導/尾隨空格,但包括其他所有內容,例如註釋和程式碼。

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

此項的標籤。

此項的資源識別符號。

呼叫層次結構傳出呼叫

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

建構函式

建立新的呼叫物件。

引數描述
item: CallHierarchyItem

被呼叫的項

fromRanges: Range[]

調用出現的範圍。

返回值描述
呼叫層次結構傳出呼叫

屬性

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

被呼叫的項。

呼叫層次結構提供程式

呼叫層次結構提供程式介面描述了擴充套件和呼叫層次結構功能之間的約定,該功能允許瀏覽函式、方法、建構函式等的呼叫和呼叫者。

方法

透過返回由給定文件和位置表示的項來引導呼叫層次結構。此項將用作進入呼叫圖的入口。如果給定位置沒有項,提供程式應返回 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 來表示缺少結果。

取消錯誤

應使用此錯誤型別來指示操作已取消。

此型別可用於響應 取消令牌 被取消,或當操作被該操作的執行者取消時。

建構函式

建立新的取消錯誤。

引數描述
返回值描述
取消錯誤

取消令牌

取消令牌會傳遞給非同步或長時間執行的操作以請求取消,例如,因為使用者繼續輸入而取消補全項的請求。

要獲取 CancellationToken 的例項,請使用 CancellationTokenSource

屬性

當令牌被取消時為 true,否則為 false

在取消時觸發的 事件

取消令牌源

取消源建立並控制 取消令牌

建構函式

引數描述
返回值描述
取消令牌源

屬性

此源的取消令牌。

方法

在令牌上發出取消訊號。

引數描述
返回值描述
void

釋放物件並回收資源。

引數描述
返回值描述
void

字元對

一對字元,例如一對開括號和閉括號。

聊天上下文

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

屬性

當前聊天會話中到目前為止的所有聊天訊息。目前,僅包含當前參與者的聊天訊息。

聊天錯誤詳情

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

屬性

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

如果設定為 true,則響應將被部分模糊。

聊天后續問題

參與者建議的後續問題。

屬性

預設情況下,後續問題會發送到相同的參與者/命令。但可以設定此屬性來呼叫不同的命令。

向用戶顯示的標題。如果不指定,將預設顯示提示。

預設情況下,後續問題會發送到相同的參與者/命令。但可以設定此屬性透過 ID 呼叫不同的參與者。後續問題只能呼叫由同一副檔名貢獻的參與者。

傳送到聊天的訊息。

聊天后續問題提供程式

每次請求後都會呼叫一次,以獲取建議的後續問題顯示給使用者。使用者可以點選後續問題將其傳送到聊天。

方法

為給定結果提供後續問題。

引數描述
result: ChatResult

此物件具有與參與者回撥返回的結果相同的屬性,包括 metadata,但不是同一例項。

context: ChatContext

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

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<ChatFollowup[]>

聊天語言模型工具引用

使用者透過 # 語法內聯或透過回形針按鈕作為附件手動附加到其請求的工具的引用。

屬性

工具的名稱。指向 lm.tools 中列出的工具。

prompt 中引用的開始和結束索引。如果未定義,則引用不是 prompt 文字的一部分。

注意,索引包含前導 # 字元,這意味著它們可用於按原樣修改 prompt。

聊天參與者

聊天參與者可以透過 字首在聊天會話中被使用者呼叫。當呼叫它時,它會處理聊天請求,並僅負責向用戶提供響應。聊天參與者使用 chat.createChatParticipant 建立。

事件

每當收到結果反饋時(例如,當用戶對結果進行點贊或點踩時)都會觸發的事件。

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

屬性

每次請求後都會呼叫此提供程式來檢索建議的後續問題。

用於在 UI 中顯示參與者的圖示。

此參與者的唯一 ID。

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

方法

釋放此參與者並回收資源。

引數描述
返回值描述
void

聊天參與者工具令牌

在處理聊天請求的上下文中呼叫 lm.invokeTool 時可以傳遞給它的令牌。

聊天提示引用

對使用者新增到其聊天請求的值的引用。

屬性

此類引用的唯一識別符號。

可以用於 LLM prompt 的此值的描述。

prompt 中引用的開始和結束索引。如果未定義,則引用不是 prompt 文字的一部分。

注意,索引包含前導 # 字元,這意味著它們可用於按原樣修改 prompt。

此引用的值。今天使用 string | Uri | Location 型別,但未來可能會擴充套件。

聊天請求

向聊天參與者的請求。

屬性

為此請求選擇的 ChatCommand 的名稱。

這是當前在 UI 中選擇的模型。擴充套件可以使用此模型,或使用 lm.selectChatModels 來選擇另一個模型。請勿在請求生命週期之外保留此模型。

使用者輸入的提示。

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

注意,參與者的 [ChatParticipant.name name](#_ChatParticipant.name name) 和 [ChatCommand.name command](#_ChatCommand.name command) 不在 prompt 中。

在 prompt 中引用的引用及其值的列表。

注意,prompt 包含作者輸入的引用,由參與者進一步修改,例如透過內聯引用值或建立指向包含已解析值的標題的連結。引用按其在 prompt 中的範圍反向排序。這意味著 prompt 中的最後一個引用是此列表中的第一個。這簡化了 prompt 的字串操作。

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

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

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

聊天請求處理程式

聊天請求輪次

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

屬性

為此請求選擇的 ChatCommand 的名稱。

此請求的目標聊天參與者的 ID。

使用者輸入的提示。

有關此訊息中使用的引用的資訊儲存在 ChatRequestTurn.references 中。

注意,參與者的 [ChatParticipant.name name](#_ChatParticipant.name name) 和 [ChatCommand.name command](#_ChatCommand.name command) 不在 prompt 中。

此訊息中使用的引用。

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

聊天響應錨點部分

表示聊天響應中作為錨點(呈現為指向目標的連結)的部分。

建構函式

建立一個新的 ChatResponseAnchorPart。

引數描述
value: Uri | Location

一個 URI 或位置。

title?: string

與 value 一起渲染的可選標題。

返回值描述
ChatResponseAnchorPart

屬性

與 value 一起渲染的可選標題。

此錨點的目標。

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

與 value 一起渲染的可選標題。

返回值描述
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 中顯示。

此程式碼操作執行的 workspace edit

將其標記為首選操作。首選操作由 auto fix 命令使用,並且可以透過按鍵繫結進行定位。

快速修復應被標記為首選,如果它能正確解決潛在的錯誤。重構應被標記為首選,如果它是最合理的操作選擇。

程式碼操作的 Kind

用於過濾程式碼操作。

此程式碼操作的簡短、易於理解的標題。

CodeActionContext

包含有關執行 程式碼操作時所處上下文的附加診斷資訊。

屬性

診斷的陣列。

請求返回的操作種類。

在此種類之外的操作將在 燈泡顯示之前被過濾掉。

請求程式碼操作的原因。

CodeActionKind

程式碼操作的種類。

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

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

靜態

空種類。

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

這要求為新程式碼操作建立它們並由擴充套件貢獻。預先存在的種類不能僅新增新的 notebook. 字首,因為其功能是針對完整筆記本範圍的。

Notebook CodeActionKinds 可以初始化為以下兩者之一(兩者都將生成 notebook.source.xyz

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

示例種類/操作

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

快速修復操作的基礎種類:quickfix

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

重構操作的基礎種類:refactor

重構操作顯示在重構上下文選單中。

重構提取操作的基礎種類:refactor.extract

示例提取操作

  • 提取方法
  • 提取函式
  • 提取變數
  • 從類中提取介面
  • ...

重構內聯操作的基礎種類:refactor.inline

示例內聯操作

  • 行內函數
  • 內聯變數
  • 內聯常量
  • ...

重構移動操作的基礎種類:refactor.move

示例移動操作

  • 將函式移動到新檔案
  • 在類之間移動屬性
  • 將方法移動到基類
  • ...

重構重寫操作的基礎種類:refactor.rewrite

示例重寫操作

  • 將 JavaScript 函式轉換為類
  • 新增或刪除引數
  • 封裝欄位
  • 將方法設為靜態
  • ...

源操作的基礎種類:source

原始碼操作應用於整個檔案。它們必須顯式請求,並且不會顯示在常規的 燈泡選單中。源操作可以在儲存時使用 editor.codeActionsOnSave 執行,並且也會顯示在 source 上下文選單中。

自動修復源操作的基礎種類:source.fixAll

修復所有操作會嘗試自動修復沒有明確修復且不需要使用者輸入的問題。它們不應抑制錯誤或執行不安全的操作,例如生成新型別或類。

組織匯入源操作的基礎種類:source.organizeImports

建構函式

私有建構函式,請使用靜態 CodeActionKind.XYZ 從現有的程式碼操作種類派生。

引數描述
value: string

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

返回值描述
CodeActionKind

屬性

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

方法

透過將更具體的選擇器附加到當前種類來建立新種類。

不會修改當前種類。

引數描述
parts: string
返回值描述
CodeActionKind

檢查 other 是否是此 CodeActionKind 的子種類。

例如,"refactor.extract" 種類包含 "refactor.extract""refactor.extract.function",但不包含 "unicorn.refactor.extract",或 "refactor.extractAll"refactor

引數描述
other: CodeActionKind

要檢查的種類。

返回值描述
布林值

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

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

引數描述
other: CodeActionKind

要檢查的種類。

返回值描述
布林值

CodeActionProvider<T>

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

程式碼操作通過幾種不同的方式呈現給使用者

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

方法

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

僅為請求的範圍返回與使用者相關的程式碼操作。另外,請牢記返回的程式碼操作在 UI 中的顯示方式。例如,燈泡小部件和 `Refactor` 命令會將返回的程式碼操作顯示為列表,因此不要返回過多可能使使用者不知所措的程式碼操作。

引數描述
document: TextDocument

呼叫命令的文件。

range: Range | Selection

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

context: CodeActionContext

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

token: CancellationToken

取消令牌。

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

程式碼運算元組,例如快速修復或重構。可以透過返回 `undefined`、`null` 或空陣列來表示缺少結果。

我們還出於向後相容的原因支援返回 `Command`,但所有新擴充套件都應返回 `CodeAction` 物件。

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

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

引數描述
codeAction: T

一個程式碼操作。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<T>

已解析的程式碼操作或解析為該操作的 thenable。返回給定的 `item` 也是可以的。當沒有返回結果時,將使用給定的 `item`。

CodeActionProviderMetadata

有關 CodeActionProvider 所提供程式碼操作型別的元資料。

屬性

一組程式碼操作的靜態文件。

當滿足以下任一條件時,將顯示來自提供程式的文件:

  • 編輯器請求了 `kind` 型別的程式碼操作。在這種情況下,編輯器將顯示與所請求的程式碼操作型別最匹配的文件。例如,如果提供程式同時擁有 `Refactor` 和 `RefactorExtract` 的文件,當用戶請求 `RefactorExtract` 的程式碼操作時,編輯器將使用 `RefactorExtract` 的文件,而不是 `Refactor` 的文件。

  • 提供程式返回了 `kind` 型別的任何程式碼操作。

每個提供程式最多顯示一條文件條目。

CodeActionProvider 可能返回的 CodeActionKind 列表。

此列表用於確定是否應呼叫給定的 `CodeActionProvider`。為避免不必要的計算,每個 `CodeActionProvider` 都應列出 `providedCodeActionKinds`。種類列表可以是通用的,例如 `[CodeActionKind.Refactor]`,或者列出提供的所有種類,例如 `[CodeActionKind.Refactor.Extract.append('function'), CodeActionKind.Refactor.Extract.append('constant'), ...]`。

CodeActionTriggerKind

請求程式碼操作的原因。

列舉成員

程式碼操作由使用者或擴充套件顯式請求。

程式碼操作是自動請求的。

這通常發生在檔案中的當前選擇發生更改時,但也可以在檔案內容更改時觸發。

CodeLens

程式碼 Lens 表示一個應與原始碼一起顯示的 Command,例如引用次數、執行測試的方法等。

當沒有關聯命令時,程式碼 Lens 是未解析的。出於效能原因,程式碼 Lens 的建立和解析應分兩個階段進行。

另請參閱

建構函式

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

引數描述
range: Range

此程式碼 Lens 適用的範圍。

command?: Command

與此程式碼 Lens 關聯的命令。

返回值描述
CodeLens

屬性

此程式碼 Lens 所代表的命令。

當有關聯命令時為 `true`。

此程式碼 Lens 有效的範圍。應僅跨單行。

CodeLensProvider<T>

程式碼 Lens 提供程式會在原始碼文字中新增 命令。這些命令將顯示在原始碼文字之間的專用水平行上。

事件

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

方法

計算 lens 列表。此呼叫應儘快返回,如果計算命令是昂貴的,實現者應僅返回設定了範圍的程式碼 Lens 物件並實現 resolve

引數描述
document: TextDocument

呼叫命令的文件。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<T[]>

程式碼 Lens 陣列或解析為該陣列的 thenable。可以透過返回 `undefined`、`null` 或空陣列來表示缺少結果。

此函式將針對每個可見的程式碼 Lens 呼叫,通常在滾動時以及呼叫 compute-lenses 之後。

引數描述
codeLens: T

需要解析的程式碼 Lens。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<T>

已解析的程式碼 Lens 或解析為該 Lens 的 thenable。給定的已解析程式碼 Lens 或 thenable。

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

顏色表示物件描述了 Color 應如何表示為文字以及從原始碼中引用它所需的編輯。

對於某些語言,一種顏色可以有多種表示形式,例如,CSS 可以用常量 `Red`、十六進位制值 `#ff0000` 或 RGBA 和 HSLA 形式來表示紅色。在 C# 中,則有其他表示形式,例如 `System.Drawing.Color.Red`。

建構函式

建立一個新的顏色表示。

引數描述
label: string

此顏色表示的標籤。

返回值描述
顏色表示

屬性

在選擇此顏色表示時應用的附加 text edits 的可選陣列。編輯不得與主 edit 或彼此重疊。

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

選擇此顏色表示時應用於文件的 edit。如果為 `falsy`,則使用 label

ColorTheme

表示一個顏色主題。

屬性

此顏色主題的型別:淺色、深色、高對比度深色和高對比度淺色。

ColorThemeKind

表示顏色主題型別。

列舉成員

淺色主題。

深色主題。

高對比度深色主題。

高對比度淺色主題。

Command

表示對命令的引用。提供一個 `title`,它將用於在 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"
                }
            ]
        }
    }

這將僅為上下文值為 `editable` 的評論顯示操作 `extension.deleteComment`。

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

Comment mode of the comment.

Comment 的可選反應。

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

CommentAuthorInformation

Comment 的作者資訊。

屬性

作者的可選圖示路徑。

評論作者的顯示名稱。

CommentController

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

屬性

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

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

此評論控制器的 ID。

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

評論控制器選項。

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

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

方法

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

引數描述
uri: Uri

建立執行緒的文件的 URI。

range: Range

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

comments: readonly Comment[]

執行緒的排序評論。

返回值描述
評論執行緒

Dispose 此評論控制器。

Dispose 後,此評論控制器建立的所有 comment threads 也將從編輯器和評論面板中移除。

引數描述
返回值描述
void

CommentingRangeProvider

comment controller 的評論範圍提供程式。

方法

提供一個允許建立新評論執行緒的範圍列表,或為給定文件提供 null。

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

CommentingRanges

CommentingRangeProvider 啟用的評論範圍。

屬性

允許在沒有特定範圍的情況下向檔案新增評論。

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

CommentMode

Comment 的評論模式。

列舉成員

顯示評論編輯器。

顯示評論的預覽。

CommentOptions

屬性

當評論輸入框聚焦時,其中顯示的佔位符的可選字串。

當評論輸入框摺疊時,其中顯示的提示的可選字串。

CommentReaction

Comment 的反應。

屬性

評論的 作者 是否已對此反應做出反應。

對此反應做出反應的使用者數量。

UI 中顯示的反應圖示。

反應的顯示標籤。

CommentReply

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

屬性

評論編輯器中的值。

活動的 comment thread

CommentRule

描述語言的評論工作方式。

屬性

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

行註釋令牌,例如 `// this is a comment`。

CommentThread

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

屬性

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

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

執行緒的排序評論。

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

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

這將僅為上下文值為 `editable` 的評論執行緒顯示操作 `extension.deleteCommentThread`。

描述 Comment Thread 的可選人類可讀標籤。

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

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

建立執行緒的文件的 URI。

方法

Dispose 此評論執行緒。

Dispose 後,此評論執行緒將在適當的時候從可見編輯器和評論面板中移除。

引數描述
返回值描述
void

CommentThreadCollapsibleState

comment thread 的可摺疊狀態。

列舉成員

確定專案已摺疊。

確定專案已展開。

CommentThreadState

評論執行緒的狀態。

列舉成員

未解決的執行緒狀態。

已解決的執行緒狀態。

CompletionContext

包含觸發 補全提供程式 的上下文的附加資訊。

屬性

觸發補全項提供程式的字元。

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

觸發補全提供程式時,觸發字元已在文件中。

補全的觸發方式。

CompletionItem

補全項代表一個文字片段,該片段被提議用於完成正在鍵入的文字。

僅透過 標籤 建立補全項就足夠了。在這種情況下,補全項將用給定的標籤或 插入文字 替換游標之前的 單詞。否則,將使用給定的 編輯

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

另請參閱

建構函式

建立一個新的補全項。

補全項必須至少有一個 標籤,該標籤將用作插入文字,並用於排序和過濾。

引數描述
label: string | CompletionItemLabel

補全的標籤。

kind?: CompletionItemKind

補全的 型別

返回值描述
CompletionItem

屬性

一個可選的附加 文字編輯 陣列,當選擇此補全項時應用。編輯不得與主 編輯 重疊,也不得相互重疊。

在插入此補全項之後執行的可選 命令注意,對當前文件的其他修改應使用 additionalTextEdits 屬性進行描述。

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

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

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

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

請注意,過濾文字是與 範圍 屬性定義的開頭單詞(字首)進行匹配的。

選擇此補全項時應插入到文件中的字串或片段。如果為 falsy,則使用 標籤

保持 插入文字 中的空白符不變。預設情況下,編輯器會調整新行的前導空格,使其與接受補全項的行的縮排匹配 - 設定為 true 將阻止此操作。

此補全項的型別。編輯器根據型別選擇圖示。

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

顯示時選擇此項。注意,只能選擇一個補全項,由編輯器決定選擇哪個項。規則是選擇最匹配的項中的第一個

一個範圍或一個插入和替換範圍,選擇應被此補全項替換的文字。

如果省略,則使用當前單詞的範圍作為替換範圍,並使用從當前單詞的開始到當前位置的範圍作為插入範圍。

注意 1: 範圍必須是單行,並且必須包含請求補全的位置注意 2: 插入範圍必須是替換範圍的字首,即它必須包含在內且從同一位置開始。

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

請注意,sortText 僅用於補全項的初始排序。當存在前導單詞(字首)時,排序基於補全項與該字首的匹配程度,僅當補全項匹配程度相等時才使用初始排序。字首由 範圍 屬性定義,因此每個補全項可能不同。

此補全項的標籤。

  • 已棄用 - 請改用 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 之後以不顯眼的方式渲染。應使用此字串來表示完全限定名稱或檔案路徑。

一個可選的字串,該字串在 標籤 之後立即以不顯眼的方式渲染,不帶任何空格。應使用此字串來表示函式簽名或型別註解。

此補全項的標籤。

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

CompletionItemProvider<T>

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

提供程式可以透過實現 resolveCompletionItem 函式來延遲計算 detaildocumentation 屬性。但是,對於初始排序和過濾至關重要的屬性,如 sortTextfilterTextinsertTextrange,在解析過程中不得更改。

提供程式透過使用者的手勢顯式請求補全,或者根據配置,在鍵入單詞或觸發字元時隱式請求補全。

方法

為給定位置和文件提供補全項。

引數描述
document: TextDocument

呼叫命令的文件。

position: Position

呼叫命令的位置。

token: CancellationToken

取消令牌。

context: CompletionContext

補全的觸發方式。

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

一組補全項、一個 補全列表 或一個解析為其中之一的 thenable。可以透過返回 undefinednull 或空陣列來表示缺少結果。

給定一個補全項,填充更多資料,例如 文件註釋詳細資訊

編輯器將只解析一次補全項。

注意,此函式在補全項已在 UI 中顯示或已選擇某個項進行插入時呼叫。因此,任何改變表示形式(標籤、排序、過濾等)或(主要)插入行為(insertText)的屬性都不能更改。

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

引數描述
item: T

一個當前在 UI 中活動的補全項。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<T>

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

CompletionItemTag

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

列舉成員

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

CompletionList<T>

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

建構函式

建立一個新的補全列表。

引數描述
items?: T[]

補全項。

isIncomplete?: boolean

列表不完整。

返回值描述
CompletionList<T>

屬性

此列表不完整。繼續鍵入應導致重新計算此列表。

補全項。

CompletionTriggerKind

如何觸發 補全提供程式

列舉成員

正常觸發了補全。

透過觸發字元觸發了補全。

由於當前補全列表不完整而重新觸發了補全

ConfigurationChangeEvent

描述配置更改的事件

方法

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

引數描述
section: string

配置名稱,支援點分隔的名稱。

scope?: ConfigurationScope

檢查時使用的一個作用域。

返回值描述
布林值

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

ConfigurationScope

配置作用域可以是

  • 一個代表資源的 Uri
  • 一個代表已開啟文字文件的 TextDocument
  • 一個代表工作區的 WorkspaceFolder
  • 一個包含
    • uri: 可選的文字文件 Uri
    • languageId: 文字文件的語言識別符號

ConfigurationTarget

配置目標

列舉成員

全域性配置

工作區配置

工作區資料夾配置

CustomDocument

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

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

屬性

此文件的關聯 URI。

方法

釋放自定義文件。

當不再有對給定 CustomDocument 的引用時(例如,當與該文件關聯的所有編輯器都關閉時),編輯器將呼叫此函式。

引數描述
返回值描述
void

CustomDocumentBackup

CustomDocument 的備份。

屬性

備份的唯一識別符號。

當從備份開啟自定義編輯器時,此 ID 將被傳回給您的擴充套件程式,在 openCustomDocument 中。

方法

刪除當前備份。

當編輯器確定當前備份不再需要時(例如,當建立新備份或儲存檔案時),編輯器將呼叫此函式。

引數描述
返回值描述
void

CustomDocumentBackupContext

用於實現 CustomDocumentBackup 的附加資訊。

屬性

寫入新備份的建議檔案位置。

請注意,您的擴充套件程式可以自由忽略此項,並使用自己的備份策略。

如果編輯器是針對當前工作區中的資源的,則 destination 將指向 ExtensionContext.storagePath 內的一個檔案。destination 的父資料夾可能不存在,因此請確保在將備份寫入該位置之前建立它。

CustomDocumentContentChangeEvent<T>

由擴充套件程式觸發的事件,用於向編輯器發出訊號,表明 CustomDocument 的內容已更改。

另請參見 CustomEditorProvider.onDidChangeCustomDocument

屬性

內容更改的文件。

CustomDocumentEditEvent<T>

由擴充套件程式觸發的事件,用於向編輯器發出訊號,表明 CustomDocument 上發生了編輯。

另請參見 CustomEditorProvider.onDidChangeCustomDocument

屬性

發生編輯的文件。

描述編輯的顯示名稱。

這將在 UI 中顯示給使用者,用於撤銷/重做操作。

方法

重做編輯操作。

當用戶重做此編輯時,編輯器會呼叫此方法。要實現 redo,您的擴充套件應該將文件和編輯器恢復到新增到編輯器內部編輯堆疊中的狀態,就在 onDidChangeCustomDocument 之前。

引數描述
返回值描述
void | Thenable<void>

撤銷編輯操作。

當用戶撤銷此編輯時,編輯器會呼叫此方法。要實現 undo,您的擴充套件應該將文件和編輯器恢復到新增到編輯器內部編輯堆疊中的狀態,就在 onDidChangeCustomDocument 之前。

引數描述
返回值描述
void | Thenable<void>

CustomDocumentOpenContext

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

屬性

用於恢復文件的備份 ID,如果沒有備份則為 undefined

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

如果 URI 是一個未命名的檔案,則會填充該檔案的位元組資料。

如果提供了此項,您的擴充套件應使用此位元組資料,而不是在傳遞的 URI 上執行 fs API。

CustomEditorProvider<T>

使用自定義文件模型的可編輯自定義編輯器的提供程式。

自定義編輯器使用 CustomDocument 作為其文件模型,而不是 TextDocument。這使擴充套件能夠完全控制諸如編輯、儲存和備份等操作。

在處理二進位制檔案或更復雜場景時,您應該使用這種型別的自定義編輯器。對於簡單的基於文字的文件,請改用 CustomTextEditorProvider

事件

訊號自定義編輯器中發生了一個編輯。

每當自定義編輯器中發生編輯時,您的擴充套件都必須觸發此事件。編輯可以是任何內容,從更改文字、裁剪影像到重新排序列表。您的擴充套件可以自由定義編輯是什麼以及每個編輯儲存什麼資料。

觸發 onDidChange 會導致編輯器被標記為髒。當用戶儲存或恢復檔案時,此狀態會被清除。

支援撤銷/重做操作的編輯器在發生編輯時必須觸發 CustomDocumentEditEvent。這允許使用者使用編輯器的標準鍵盤快捷鍵來撤銷和重做該編輯。如果使用者撤銷了所有編輯直到最後一個儲存狀態,編輯器還將標記為不再是髒的。

支援編輯但無法使用編輯器標準撤銷/重做機制的編輯器必須觸發 CustomDocumentContentChangeEvent。對於不支援撤銷/重做的編輯器,使用者清除髒狀態的唯一方法是 saverevert 檔案。

編輯器應該只觸發 CustomDocumentEditEvent 事件,或者只觸發 CustomDocumentContentChangeEvent 事件。

方法

備份一個髒的自定義文件。

備份用於熱退出和防止資料丟失。您的 backup 方法應將資源持久化到其當前狀態,即應用了編輯的狀態。最常見的是將資源儲存到 ExtensionContext.storagePath。當編輯器重新載入並且您的自定義編輯器為某個資源開啟時,您的擴充套件應首先檢查該資源是否存在任何備份。如果存在備份,您的擴充套件應從此備份載入檔案內容,而不是從工作區中的資源載入。

backup 方法將在使用者停止編輯文件約一秒後觸發。如果使用者快速編輯文件,backup 將不會被呼叫,直到編輯停止。

當啟用 自動儲存 時,不會呼叫 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,指示自定義編輯器已解析。

將自定義文件恢復到其最後儲存的狀態。

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

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

引數描述
document: T

要恢復的文件。

cancellation: CancellationToken

一個訊號,表示不再需要恢復(例如,如果觸發了另一個恢復)。

返回值描述
Thenable<void>

一個 Thenable,指示更改已完成。

儲存自定義文件。

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

要實現 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 中。

建構函式

引數描述
返回值描述
DataTransfer

方法

獲取一個包含此資料傳輸中每個元素的 [mime, item] 對的新迭代器。

引數描述
返回值描述
IterableIterator<[mimeType: string, item: DataTransferItem]>

允許迭代資料傳輸項。

引數描述
callbackfn: (item: DataTransferItem, mimeType: string, dataTransfer: DataTransfer) => void

用於迭代資料傳輸項的回撥函式。

thisArg?: any

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

返回值描述
void

檢索給定 MIME 型別的傳輸資料項。

引數描述
mimeType: string

要獲取傳輸資料項的 MIME 型別,例如 text/plainimage/png。MIME 型別查詢不區分大小寫。

特殊 MIME 型別

  • text/uri-list — 一個字串,其中包含用 \r\n 分隔的 toString()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 值的 json.stringify 的結果。

引數描述
返回值描述
Thenable<string>

DebugAdapter

如果實現了 DebugAdapter 介面,則可以向編輯器註冊實現 Debug Adapter Protocol 的除錯介面卡。

事件

在除錯介面卡將 Debug Adapter Protocol 訊息傳送給編輯器之後觸發的事件。訊息可以是請求、響應或事件。

方法

處置此物件。

引數描述
返回值描述
any

處理 Debug Adapter Protocol 訊息。訊息可以是請求、響應或事件。結果或錯誤透過 onSendMessage 事件返回。

引數描述
message: DebugProtocolMessage

一個 Debug Adapter Protocol 訊息。

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

實現除錯介面卡的命令或可執行檔案路徑。命令必須是可執行檔案的絕對路徑,或者是一個可以透過 PATH 環境變數查詢的命令名稱。

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>

除錯介面卡跟蹤器或未定義。

DebugConfiguration

除錯會話的配置。

屬性

除錯會話的名稱。

除錯會話的請求型別。

除錯會話的型別。

DebugConfigurationProvider

除錯配置提供程式允許向除錯服務新增除錯配置,並在啟動除錯會話之前解析啟動配置。除錯配置提供程式透過 debug.registerDebugConfigurationProvider 註冊。

方法

向除錯服務提供除錯配置。如果為同一型別註冊了多個除錯配置提供程式,則除錯配置將按任意順序連線。

引數描述
folder: WorkspaceFolder

用於配置的工作區資料夾,或用於無資料夾設定的 undefined

token?: CancellationToken

取消令牌。

返回值描述
ProviderResult<DebugConfiguration[]>

除錯配置陣列。

透過填充缺失的值或新增/更改/刪除屬性來解析除錯配置。如果為同一型別註冊了多個除錯配置提供程式,則 `resolveDebugConfiguration` 呼叫將按任意順序連結,並且初始除錯配置將透過該連結傳遞。返回 `undefined` 會阻止除錯會話啟動。返回 `null` 會阻止除錯會話啟動,並改用開啟底層除錯配置。

引數描述
folder: WorkspaceFolder

配置來源的工作區資料夾,或用於無資料夾設定的 undefined

debugConfiguration: DebugConfiguration

要解析的除錯配置。

token?: CancellationToken

取消令牌。

返回值描述
ProviderResult<DebugConfiguration>

已解析的除錯配置或未定義或 null。

此鉤子在 `resolveDebugConfiguration` 之後直接呼叫,但所有變數都已替換。它可用於透過填充缺失的值或新增/更改/刪除屬性來解析或驗證除錯配置。如果為同一型別註冊了多個除錯配置提供程式,則 `resolveDebugConfigurationWithSubstitutedVariables` 呼叫將按任意順序連結,並且初始除錯配置將透過該連結傳遞。返回 `undefined` 會阻止除錯會話啟動。返回 `null` 會阻止除錯會話啟動,並改用開啟底層除錯配置。

引數描述
folder: WorkspaceFolder

配置來源的工作區資料夾,或用於無資料夾設定的 undefined

debugConfiguration: DebugConfiguration

要解析的除錯配置。

token?: CancellationToken

取消令牌。

返回值描述
ProviderResult<DebugConfiguration>

已解析的除錯配置或未定義或 null。

DebugConfigurationProviderTriggerKind

DebugConfigurationProviderTriggerKind 指定何時觸發 `DebugConfigurationProvider` 的 `provideDebugConfigurations` 方法。當前有兩種情況:為新建立的 launch.json 提供初始除錯配置,或透過 UI(例如,“選擇並啟動除錯”命令)動態生成除錯配置。在註冊 `DebugConfigurationProvider` 時,使用觸發器型別 debug.registerDebugConfigurationProvider

列舉成員

呼叫 `DebugConfigurationProvider.provideDebugConfigurations` 以提供新建立的 launch.json 的初始除錯配置。

呼叫 `DebugConfigurationProvider.provideDebugConfigurations` 以在使用者透過 UI(例如,“選擇並啟動除錯”命令)請求時提供動態生成的除錯配置。

DebugConsole

表示除錯控制檯。

方法

將給定值追加到除錯控制檯。

引數描述
value: string

一個字串,假值不會被列印。

返回值描述
void

將給定值和一個換行符追加到除錯控制檯。

引數描述
value: string

一個字串,假值會被列印。

返回值描述
void

DebugConsoleMode

除錯會話使用的除錯控制檯模式,請參閱 options

列舉成員

除錯會話應有一個單獨的除錯控制檯。

除錯會話應與其父會話共享除錯控制檯。此值對沒有父會話的會話無效。

DebugProtocolBreakpoint

DebugProtocolBreakpoint 是除錯介面卡協議中定義的 `Breakpoint` 型別的不透明佔位符型別。(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,則隱藏具有單個子項的除錯會話,以使樹更緊湊。

控制此會話是否應擁有獨立的除錯控制檯,還是應與父會話共享。對沒有父會話的會話無效。預設為 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。可以透過返回 `undefined` 或 `null` 來發出無結果的訊號。

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

表示符號的定義,該定義是一個或多個 位置。對於大多數程式語言,符號只有一個定義位置。

有關符號定義位置的資訊。

提供比普通 Location 定義更多的元資料,包括定義符號的範圍。

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

返回一個新的可處置物件,該物件在 dispose 時將釋放所有提供的可處置物件。

建構函式

建立一個新的可處置物件,該物件在 dispose 時呼叫提供的函式。

注意,非同步函式不會被等待。

引數描述
callOnDispose: () => any

dispose 函式。

返回值描述
Disposable

方法

處置此物件。

引數描述
返回值描述
any

DocumentColorProvider

文件顏色提供程式定義了擴充套件與編輯器中顏色選取和修改功能之間的契約。

方法

為顏色提供 表示

引數描述
color: Color

要顯示和插入的顏色。

context: {document: TextDocument, range: Range}

包含附加資訊的上下文物件

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<ColorPresentation[]>

顏色表示陣列或可解析為該陣列的 thenable。可以透過返回 undefinednull 或空陣列來表示沒有結果。

為給定文件提供顏色。

引數描述
document: TextDocument

呼叫命令的文件。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<ColorInformation[]>

顏色資訊陣列或可解析為該陣列的 thenable。可以透過返回 undefinednull 或空陣列來表示沒有結果。

DocumentDropEdit

drop 時應用的編輯操作。

建構函式

引數描述
insertText: string | SnippetString

要在 drop 位置插入的文字或程式碼片段。

title?: string

描述編輯的人類可讀標籤。

kind?: DocumentDropOrPasteEditKind

編輯的 型別

返回值描述
DocumentDropEdit

屬性

在 drop 時應用的可選附加編輯。

要在 drop 位置插入的文字或程式碼片段。

編輯的 型別

描述編輯的人類可讀標籤。

控制多個編輯的順序。如果此提供程式屈服於編輯,它將在列表中顯示得更低。

DocumentDropEditProvider<T>

處理將資源拖放到文字編輯器中的提供程式。

這允許使用者將資源(包括來自外部應用程式的資源)拖放到編輯器中。在拖放檔案時,使用者可以按住 shift 鍵將檔案拖放到編輯器中,而不是開啟它。需要啟用 editor.dropIntoEditor.enabled

方法

提供將正在拖放的內容插入文件的編輯。

引數描述
document: TextDocument

發生 drop 的文件。

position: Position

發生 drop 的文件中的位置。

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 中返回的 kind 列表。

這用於在請求特定 kind 的編輯時過濾掉提供程式。

DocumentDropOrPasteEditKind

DocumentDropEditDocumentPasteEdit 的識別符號

靜態

用於基本文字編輯的根 kind。

此 kind 應用於將基本文字插入文件的編輯。一個好的例子是貼上剪貼簿文字,同時還根據貼上的文字更新檔案中的匯入。對於這種情況,我們可以使用諸如 text.updateImports.someLanguageId 之類的 kind。

儘管大多數拖放/貼上編輯最終都會插入文字,但不應將 Text 用作每個編輯的基礎 kind,因為這是冗餘的。相反,應使用更具體地描述所插入內容的 kind。例如,如果編輯添加了一個 Markdown 連結,請使用 markdown.link,因為儘管所插入的內容是文字,但知道該編輯插入的是 Markdown 語法更為重要。

用於在插入文字之外還更新文件中的匯入的編輯的根 kind。

建構函式

引數描述
value: string
返回值描述
DocumentDropOrPasteEditKind

屬性

kind 的原始字串值。

方法

透過將其他範圍附加到當前 kind 來建立一個新 kind。

不會修改當前種類。

引數描述
...parts: string[]
返回值描述
DocumentDropOrPasteEditKind

檢查 other 是否是此 DocumentDropOrPasteEditKind 的子 kind。

例如,kind "text.plain" 包含 "text.plain""text.plain.list",但不包含 "text""unicorn.text.plain"

引數描述
other: DocumentDropOrPasteEditKind

要檢查的種類。

返回值描述
布林值

檢查此 kind 是否與 other 相交。

例如,kind "text.plain"text"text.plain""text.plain.list" 相交,但與 "unicorn""textUnicorn.plain" 不相交。

引數描述
other: DocumentDropOrPasteEditKind

要檢查的種類。

返回值描述
布林值

DocumentFilter

文件過濾器透過不同的屬性來標識文件,例如 language、資源的 scheme,或者應用於 path 的 glob 模式。

示例:適用於磁碟上的 TypeScript 檔案的語言過濾器

{ language: 'typescript', scheme: 'file' }

示例:適用於所有 package.json 路徑的語言過濾器

{ language: 'json', pattern: '**/package.json' }

屬性

語言 ID,例如 typescript

筆記本的 型別,例如 jupyter-notebook。這可以用來縮小 單元格文件所屬筆記本的型別。

請注意,設定 notebookType 屬性會改變 schemepattern 的解釋方式。設定後,它們將針對 筆記本 URI 進行評估,而不是文件 URI。

示例:匹配尚未儲存(untitled)的 Jupyter 筆記本中的 Python 文件

{ language: 'python', notebookType: 'jupyter-notebook', scheme: 'untitled' }

應用於文件絕對路徑的 glob 模式。使用 相對模式 將文件過濾到 工作區資料夾

URI scheme,例如 fileuntitled

DocumentFormattingEditProvider

文件格式化提供程式介面定義了擴充套件和格式化功能之間的約定。

方法

為整個文件提供格式化編輯。

引數描述
document: TextDocument

呼叫命令的文件。

options: FormattingOptions

控制格式化的選項。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<TextEdit[]>

一組文字編輯或一個解析為這些編輯的 thenable。可以透過返回 undefinednull 或空陣列來表示沒有結果。

DocumentHighlight

文件高亮是在文字文件中需要特別關注的一個範圍。通常,文件高亮透過更改其範圍的背景顏色來視覺化。

建構函式

建立一個新的文件高亮物件。

引數描述
range: Range

高亮適用的範圍。

kind?: DocumentHighlightKind

高亮 kind,預設為 text

返回值描述
DocumentHighlight

屬性

高亮 kind,預設為 text

此高亮適用的範圍。

DocumentHighlightKind

文件高亮 kind。

列舉成員

文字出現。

符號的讀取訪問,例如讀取變數。

符號的寫入訪問,例如寫入變數。

DocumentHighlightProvider

文件高亮提供程式介面定義了擴充套件和單詞高亮功能之間的約定。

方法

提供一組文件高亮,例如變數的所有出現或函式的所有退出點。

引數描述
document: TextDocument

呼叫命令的文件。

position: Position

呼叫命令的位置。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<DocumentHighlight[]>

文件高亮陣列或解析為這些高亮的 thenable。可以透過返回 undefinednull 或空陣列來表示沒有結果。

文件連結是文字文件中連結到內部或外部資源的範圍,例如另一個文字文件或網站。

建構函式

建立一個新的文件連結。

引數描述
range: Range

文件連結適用的範圍。不能為空。

target?: Uri

文件連結指向的 URI。

返回值描述
DocumentLink

屬性

此連結適用的範圍。

此連結指向的 URI。

滑鼠懸停在此連結上時顯示的工具提示文字。

如果提供了工具提示,它將顯示在包含觸發連結說明的字串中,例如 {0} (ctrl + click)。具體說明因作業系統、使用者設定和本地化而異。

DocumentLinkProvider<T>

文件連結提供程式定義了擴充套件和在編輯器中顯示連結的功能之間的約定。

方法

為給定文件提供連結。請注意,編輯器附帶一個預設提供程式,該提供程式會檢測 http(s)file 連結。

引數描述
document: TextDocument

呼叫命令的文件。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<T[]>

文件連結陣列或解析為這些連結的 thenable。可以透過返回 undefinednull 或空陣列來表示沒有結果。

給定一個連結,填充其 target。當 UI 中選擇了不完整的連結時,會呼叫此方法。提供程式可以實現此方法,並從 provideDocumentLinks 方法返回不完整的連結(沒有 target),這通常有助於提高效能。

引數描述
link: T

要解析的連結。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<T>

DocumentPasteEdit

應用貼上操作的編輯。

建構函式

建立一個新的貼上編輯。

引數描述
insertText: string | SnippetString

在貼上位置插入的文字或片段。

title: string

描述編輯的人類可讀標籤。

kind: DocumentDropOrPasteEditKind

編輯的 型別

返回值描述
DocumentPasteEdit

屬性

貼上時應用的可選附加編輯。

在貼上位置插入的文字或片段。

如果您的編輯需要更高階的插入邏輯,請將其設定為空字串,然後提供 additional edit

編輯的 型別

描述編輯的人類可讀標籤。

控制當多個貼上編輯可能應用時的順序。

如果此編輯讓位於另一個編輯,它將在顯示給使用者的可能貼上編輯列表中排在後面。

DocumentPasteEditContext

有關貼上操作的附加資訊。

屬性

請求返回的貼上編輯的 kind。

當透過 PasteAs 請求顯式 kind 時,鼓勵提供程式在生成請求 kind 的編輯時更加靈活。

請求貼上編輯的原因。

DocumentPasteEditProvider<T>

當用戶在 TextDocument 中複製或貼上時呼叫的提供程式。

方法

可選方法,在使用者從 文字編輯器複製後呼叫。

這允許提供程式將有關複製文字的元資料附加到 DataTransfer。然後,此資料傳輸將在 provideDocumentPasteEdits 中傳遞迴提供程式。

請注意,目前對 DataTransfer 的任何更改都僅限於當前編輯器視窗。這意味著任何新增的元資料都不能被其他編輯器視窗或其他應用程式看到。

引數描述
document: TextDocument

發生複製的文字文件。

ranges: readonly Range[]

document 中複製的範圍。

dataTransfer: DataTransfer

與複製關聯的資料傳輸。您可以為此儲存其他值,供以後在 provideDocumentPasteEdits 中使用。此物件僅在此方法持續時間內有效。

token: CancellationToken

取消令牌。

返回值描述
void | Thenable<void>

可選的 thenable,在對 dataTransfer 的所有更改完成後解析。

在使用者貼上到 文字編輯器之前呼叫。

返回的編輯可以替換標準的貼上行為。

引數描述
document: TextDocument

貼上到的文件

ranges: readonly Range[]

document 中貼上到的範圍。

dataTransfer: DataTransfer

與貼上關聯的 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 中返回的 kinds 列表。

這用於在請求特定 kind 的編輯時過濾掉提供程式。

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

應該顯示的範圍。

返回值描述
DocumentSymbol

屬性

此符號的子項,例如類的屬性。

此符號的更多詳細資訊,例如函式的簽名。

此符號的型別。

此符號的名稱。

包含此符號的範圍,不包括前導/尾隨空格,但包括其他所有內容,例如註釋和程式碼。

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

此符號的標籤。

DocumentSymbolProvider

DocumentSymbolProvider 介面定義了擴充套件和 轉到符號功能之間的契約。

方法

為給定的文件提供符號資訊。

引數描述
document: TextDocument

呼叫命令的文件。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<DocumentSymbol[] | SymbolInformation[]>

文件高亮陣列或解析為這些高亮的 thenable。可以透過返回 undefinednull 或空陣列來表示沒有結果。

DocumentSymbolProviderMetadata

有關文件符號提供程式元資料。

屬性

當一個文件顯示多個大綱樹時,顯示一個人類可讀的字串。

EndOfLine

表示 文件中的行結束字元序列。

列舉成員

換行符 \n

回車換行符 \r\n

EnterAction

描述按下 Enter 鍵時應執行的操作。

屬性

描述新行和縮排後要附加的文字。

描述縮排的操作。

描述新行縮排要刪除的字元數。

EnvironmentVariableCollection

擴充套件可以應用於程序環境的突變集合。

屬性

環境變數集合的描述,將用於在 UI 中描述更改。

集合是否應被快取以供工作區使用,並在視窗重新載入時應用於終端。如果為 true,則集合將立即生效,例如在視窗重新載入時。此外,如果快取版本存在,此 API 將返回快取版本。在擴充套件解除安裝或集合被清除時,集合將失效。預設為 true。

方法

將值追加到環境變數。

請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前對 replace、append 或 prepend 的所有呼叫。

引數描述
variable: string

要追加到的變數。

value: string

要追加到變數的值。

options?: EnvironmentVariableMutatorOptions

應用於變異器的選項。如果未提供任何選項,則預設為 { applyAtProcessCreation: true }

返回值描述
void

清除此集合中的所有變異器。

引數描述
返回值描述
void

刪除此集合對變數的變異器。

引數描述
variable: string

要刪除其變異器的變數。

返回值描述
void

遍歷此集合中的每個變異器。

引數描述
callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any

為每個條目執行的函式。

thisArg?: any

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

返回值描述
void

獲取此集合應用於變數的變異器(如果存在)。

引數描述
variable: string

要獲取其變異器的變數。

返回值描述
EnvironmentVariableMutator

將值前置到環境變數。

請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前對 replace、append 或 prepend 的所有呼叫。

引數描述
variable: string

要前置到的變數。

value: string

要前置到變數的值。

options?: EnvironmentVariableMutatorOptions

應用於變異器的選項。如果未提供任何選項,則預設為 { applyAtProcessCreation: true }

返回值描述
void

將環境變數替換為某個值。

請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前對 replace、append 或 prepend 的所有呼叫。

引數描述
variable: string

要替換的變數。

value: string

用於替換變數的值。

options?: EnvironmentVariableMutatorOptions

應用於變異器的選項。如果未提供任何選項,則預設為 { applyAtProcessCreation: true }

返回值描述
void

EnvironmentVariableMutator

應用於環境變數的變異型別及其值。

屬性

應用於變異器的選項。

將要應用於變數的變異型別。

用於變數的值。

EnvironmentVariableMutatorOptions

應用於變異器的選項。

屬性

在程序建立之前應用於環境。預設為 false。

應用於 shell 整合指令碼中的環境。注意,如果 shell 整合被停用或因某種原因無法正常工作,此設定不會應用變異器。預設為 false。

EnvironmentVariableMutatorType

可以應用於環境變數的變異型別。

列舉成員

替換變數的現有值。

追加到變數現有值末尾。

前置到變數現有值開頭。

EnvironmentVariableScope

環境變數集合適用的作用域物件。

屬性

用於獲取集合的任何特定工作區資料夾。

EvaluatableExpression

EvaluatableExpression 表示文件中可以由活動偵錯程式或執行時進行評估的表示式。此評估的結果將顯示在類似工具提示的小部件中。如果僅指定了範圍,則表示式將從底層文件中提取。可選的 expression 可以用來覆蓋提取的表示式。在這種情況下,範圍仍然用於突出顯示文件中的範圍。

建構函式

建立新的可計算表示式物件。

引數描述
range: Range

從中提取可計算表示式的底層文件中的範圍。

expression?: string

如果指定,則覆蓋提取的表示式。

返回值描述
EvaluatableExpression

屬性

如果指定,則表示式將覆蓋提取的表示式。

範圍用於從底層文件中提取可計算表示式並突出顯示它。

EvaluatableExpressionProvider

EvaluatableExpressionProvider 介面定義了擴充套件與除錯懸停之間的契約。在此契約中,提供程式返回給定文件位置的可計算表示式,編輯器會在活動的除錯會話中評估此表示式,並將結果顯示在除錯懸停中。

方法

為給定的文件和位置提供可計算表示式。編輯器將在活動的除錯會話中評估此表示式,並在除錯懸停中顯示結果。表示式可以由底層文件中的範圍隱式指定,也可以透過顯式返回表示式來指定。

引數描述
document: TextDocument

將要顯示除錯懸停的文件。

position: Position

將要顯示除錯懸停的文件中的行和字元位置。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<EvaluatableExpression>

EvaluatableExpression 或一個解析為此型別的 thenable。可以透過返回 undefinednull 來發出無結果的訊號。

Event<T>

表示一個型別化的事件。

一個函式,它表示一個事件,你可以透過呼叫它並傳遞一個監聽器函式作為引數來訂閱它。

示例

item.onDidChange(function(event) {
  console.log('Event happened: ' + event);
});

一個函式,它表示一個事件,你可以透過呼叫它並傳遞一個監聽器函式作為引數來訂閱它。

引數描述
listener: (e: T) => any

當事件發生時將呼叫監聽器函式。

thisArgs?: any

呼叫事件監聽器時將使用的 this 引數。

disposables?: Disposable[]

將向其新增 Disposable 的陣列。

返回值描述
Disposable

一個用於取消事件監聽器的 disposable。

EventEmitter<T>

事件發射器可用於為他人建立和管理一個 Event 以便訂閱。一個發射器總是擁有一個事件。

如果您想從擴充套件中提供事件,例如在 TextDocumentContentProvider 內部或向其他擴充套件提供 API 時,請使用此類。

建構函式

引數描述
返回值描述
EventEmitter<T>

屬性

事件監聽器可以訂閱。

方法

釋放此物件並回收資源。

引數描述
返回值描述
void

通知 事件的所有訂閱者。一個或多個監聽器的失敗不會導致此函式呼叫失敗。

引數描述
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 讀取和寫入檔案和資料夾。

一個 secret 儲存物件,用於儲存與當前開啟的 工作區無關的狀態。

擴充套件可以在其中儲存私有狀態的工作區特定目錄的絕對檔案路徑。該目錄可能不存在於磁碟上,並且由擴充套件負責建立。但是,父目錄保證存在。

使用 workspaceStateglobalState 儲存鍵值資料。

擴充套件可以在其中儲存私有狀態的工作區特定目錄的 uri。該目錄可能不存在,並且由擴充套件負責建立。但是,父目錄保證存在。當沒有開啟工作區或資料夾時,值為 undefined

使用 workspaceStateglobalState 儲存鍵值資料。

另請參閱 workspace.fs,瞭解如何從 uri 讀取和寫入檔案和資料夾。

可以向其新增 disposable 的陣列。當此擴充套件被停用時,這些 disposable 將被釋放。

注意,非同步釋放函式不會被等待。

一個 memento 物件,用於在當前開啟的 工作區的上下文中儲存狀態。

方法

獲取擴充套件中包含的資源的絕對路徑。

注意,可以透過 Uri.joinPathextensionUri 構建絕對 uri,例如 vscode.Uri.joinPath(context.extensionUri, relativePath);

引數描述
relativePath: string

擴充套件中包含的資源的相對路徑。

返回值描述
字串

資源的絕對路徑。

ExtensionKind

在遠端視窗中,擴充套件種類描述了一個擴充套件是在 UI(視窗)執行的地方執行,還是在遠端執行。

列舉成員

擴充套件在 UI 執行的地方執行。

擴充套件在遠端擴充套件主機執行的地方執行。

ExtensionMode

ExtensionMode 在 ExtensionContext 上提供,並指示特定擴充套件執行的模式。

列舉成員

擴充套件正常安裝在編輯器中(例如,從 marketplace 或 VSIX)。

擴充套件是從啟動編輯器時提供的 --extensionDevelopmentPath 執行的。

擴充套件是從 --extensionTestsPath 執行的,並且擴充套件主機正在執行單元測試。

ExtensionTerminalOptions

用於描述虛擬程序終端應使用哪些選項的值物件。

屬性

終端的圖示 ThemeColor。推薦使用標準的 terminal.ansi* 主題鍵,以獲得最佳對比度和跨主題的一致性。

終端的圖示路徑或 ThemeIcon

選擇退出在重啟和過載時自動持久化終端。只有當 terminal.integrated.enablePersistentSessions 啟用時,此選項才生效。

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

一個 Pseudoterminal 的實現,允許擴充套件控制一個終端。

用於驗證 shell 整合序列是否來自可信源的 nonce。UX 的一個示例影響是,如果命令列報告了一個 nonce,它將無需與使用者確認命令列是否正確即可透過 shell 整合命令裝飾 重新執行它。

如果終端包含 自定義 shell 整合支援,則應使用此選項。應將其設定為一個隨機 GUID。在 Pseudoterminal 實現中,此值可以在相關序列中傳遞,以使其成為可信的。

FileChangeEvent

檔案系統提供程式必須使用此事件來指示檔案更改。

屬性

更改的型別。

已更改檔案的 URI。

FileChangeType

檔案更改型別的列舉。

列舉成員

檔案的內容或元資料已更改。

檔案已被建立。

檔案已被刪除。

FileCoverage

包含檔案的覆蓋元資料。

靜態

使用覆蓋詳細資訊填充的計數器建立一個 FileCoverage 例項。

引數描述
uri: Uri

已覆蓋檔案的 URI

details: readonly FileCoverageDetail[]

詳細的覆蓋資訊

返回值描述
FileCoverage

建構函式

引數描述
uri: Uri

已覆蓋檔案的 URI

statementCoverage: TestCoverageCount

語句覆蓋資訊。如果報告器不提供語句覆蓋資訊,則此項可用於表示行覆蓋。

branchCoverage?: TestCoverageCount

分支覆蓋資訊

declarationCoverage?: TestCoverageCount

宣告覆蓋資訊

includesTests?: TestItem[]

此覆蓋報告中包含的測試用例,請參閱 FileCoverage.includesTests

返回值描述
FileCoverage

屬性

分支覆蓋資訊。

宣告覆蓋資訊。根據報告器和語言的不同,這可能是函式、方法或名稱空間等型別。

生成此檔案覆蓋的 測試用例 列表。如果設定了此項,則還應在 TestRunProfile.loadDetailedCoverageForTest 中定義,以便檢索詳細的覆蓋資訊。

語句覆蓋資訊。如果報告器不提供語句覆蓋資訊,則此項可用於表示行覆蓋。

檔案 URI。

FileCoverageDetail

TestRunProfile.loadDetailedCoverage 返回的覆蓋詳細資訊。

FileCreateEvent

檔案建立後觸發的事件。

屬性

已建立的檔案。

FileDecoration

檔案裝飾表示可以與檔案一起渲染的元資料。

建構函式

建立新的裝飾。

引數描述
badge?: string

表示裝飾的字母。

tooltip?: string

裝飾的工具提示。

color?: ThemeColor

裝飾的顏色。

返回值描述
FileDecoration

屬性

一個非常短的字串,表示此裝飾。

此裝飾的顏色。

一個布林標誌,表示此裝飾應傳播給其父級。

此裝飾的可讀工具提示。

FileDecorationProvider

裝飾提供程式介面定義了擴充套件與檔案裝飾之間的契約。

事件

一個可選的事件,用於指示一個或多個檔案的裝飾已更改。

請注意,此事件應用於傳播有關子級的資訊。

另請參閱 EventEmitter

方法

為給定的 URI 提供裝飾。

請注意,此函式僅在檔案 UI 中渲染時呼叫。這意味著,透過 onDidChangeFileDecorations 事件必須向編輯器發出關於向上傳播的子項的裝飾訊號。

引數描述
uri: Uri

為提供裝飾的檔案的 URI。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<FileDecoration>

一個裝飾或一個解析為該裝飾的可thenable。

FileDeleteEvent

檔案刪除後觸發的事件。

屬性

已刪除的檔案。

FilePermission

檔案的許可權。

列舉成員

檔案是隻讀的。

注意:所有來自注冊了 isReadonly: true 選項的 FileSystemProviderFileStat 都將被隱式視為設定了 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。

返回值描述
FileSystemError

建立錯誤以指示檔案是一個資料夾。

引數描述
messageOrUri?: string | Uri

訊息或 URI。

返回值描述
FileSystemError

建立錯誤以指示檔案不是一個資料夾。

引數描述
messageOrUri?: string | Uri

訊息或 URI。

返回值描述
FileSystemError

建立錯誤以指示檔案或資料夾未找到。

引數描述
messageOrUri?: string | Uri

訊息或 URI。

返回值描述
FileSystemError

建立錯誤以指示操作缺少必要的許可權。

引數描述
messageOrUri?: string | Uri

訊息或 URI。

返回值描述
FileSystemError

建立錯誤以指示檔案系統不可用或過於繁忙而無法完成請求。

引數描述
messageOrUri?: string | Uri

訊息或 URI。

返回值描述
FileSystemError

建構函式

建立新的檔案系統錯誤。

引數描述
messageOrUri?: string | Uri

訊息或 URI。

返回值描述
FileSystemError

屬性

標識此錯誤的程式碼。

可能的值是錯誤的名稱,例如 FileNotFound,或者 Unknown 表示未指定錯誤。

FileSystemProvider

檔案系統提供程式定義了編輯器讀取、寫入、發現以及管理檔案和資料夾所需的內容。它允許擴充套件從遠端位置(如 ftp 伺服器)提供檔案,並將這些檔案無縫整合到編輯器中。

  • 注意 1:檔案系統提供程式 API 使用 URI,並假定為分層路徑,例如 foo:/my/pathfoo:/my/ 的子項,也是 foo:/my/path/deeper 的父項。
  • 注意 2:有一個啟用事件 onFileSystem:<scheme>,當檔案或資料夾被訪問時觸發。
  • 注意 3:“file”一詞通常用於表示所有 型別 的檔案,例如資料夾、符號連結和普通檔案。

事件

一個事件,用於指示資源已被建立、更改或刪除。此事件應為被此提供程式的客戶端 監視 的資源觸發。

注意:至關重要的是,已更改檔案的元資料在 stat 中提供一個比先前值更晚的更新的 mtime 和一個正確的 size 值。否則,可能會有最佳化導致編輯器不顯示更改。

方法

複製檔案或資料夾。實現此函式是可選的,但它會加快複製操作的速度。

  • 丟擲 - FileNotFound,當 destination 的父目錄不存在時,例如不需要 mkdirp 邏輯。
  • 丟擲 - FileExists,當 destination 已存在且 overwrite 選項不是 true 時。
引數描述
source: Uri

現有的檔案。

destination: Uri

目標位置。

options: {overwrite: boolean}

定義是否覆蓋現有檔案。

返回值描述
void | Thenable<void>

建立新目錄(注意,新檔案是透過 write 呼叫建立的)。

  • throws - FileNotFounduri 的父目錄不存在時,例如,不需要 mkdirp 邏輯。
引數描述
uri: Uri

新資料夾的 URI。

返回值描述
void | Thenable<void>

刪除檔案。

引數描述
uri: Uri

要刪除的資源。

options: {recursive: boolean}

定義是否遞迴刪除資料夾。

返回值描述
void | Thenable<void>

檢索 目錄 的所有條目。

引數描述
uri: Uri

資料夾的 URI。

返回值描述
Array<[string, FileType]> | Thenable<Array<[string, FileType]>>

名稱/型別元組陣列或解析為該陣列的可thenable。

讀取檔案的全部內容。

引數描述
uri: Uri

檔案的 URI。

返回值描述
Uint8Array | Thenable<Uint8Array>

位元組陣列或解析為該陣列的可thenable。

重新命名檔案或資料夾。

  • throws - FileNotFoundnewUri 的父目錄不存在時,例如,不需要 mkdirp 邏輯。
  • throws - FileExistsnewUri 已存在且 overwrite 選項不為 true 時。
引數描述
oldUri: Uri

現有的檔案。

newUri: Uri

新的位置。

options: {overwrite: boolean}

定義是否覆蓋現有檔案。

返回值描述
void | Thenable<void>

檢索檔案的元資料。

請注意,符號連結的元資料應為它們指向的檔案的元資料。但是,除了實際型別之外,還必須使用 FileType.SymbolicLink,例如 FileType.SymbolicLink | FileType.Directory

引數描述
uri: Uri

要檢索元資料的檔案的 URI。

返回值描述
FileStat | Thenable<FileStat>

關於檔案的檔案元資料。

訂閱檔案或資料夾(由 uri 表示)的更改事件。對於資料夾,recursive 選項表示是否也應監視子資料夾、子子資料夾等的檔案更改。當 recursive: false 時,只有資料夾的直接子檔案的更改才會觸發事件。

excludes 陣列用於指示應從檔案監視中排除的路徑。它通常派生自使用者可配置的 files.watcherExclude 設定。每個條目都可以是

  • 要排除的絕對路徑
  • 要排除的相對路徑(例如 build/output
  • 簡單的 glob 模式(例如 **/buildoutput/**

檔案系統提供商的職責是根據這些規則為每次更改呼叫 onDidChangeFile。不得為與提供的任何排除項匹配的檔案發出事件。

引數描述
uri: Uri

要監視的檔案或資料夾的 uri。

options: {excludes: readonly string[], recursive: boolean}

配置監視。

返回值描述
Disposable

一個 disposable,用於告知提供商停止監視 uri

將資料寫入檔案,替換其所有內容。

  • throws - FileNotFounduri 不存在且未設定 create 時。
  • throws - FileNotFounduri 的父目錄不存在且設定了 create 時,例如,不需要 mkdirp 邏輯。
  • throws - FileExistsuri 已存在,設定了 create 但未設定 overwrite 時。
引數描述
uri: Uri

檔案的 URI。

content: Uint8Array

檔案的內容。

options: {create: boolean, overwrite: boolean}

定義是否應或必須建立不存在的檔案。

返回值描述
void | Thenable<void>

FileSystemWatcher

檔案系統監視器會通知有關磁碟上的檔案和資料夾或其他 FileSystemProviders 的更改。

要獲取 FileSystemWatcher 的例項,請使用 createFileSystemWatcher

事件

檔案/資料夾更改時觸發的事件。

檔案/資料夾建立時觸發的事件。

檔案/資料夾刪除時觸發的事件。

屬性

如果此檔案系統監視器建立時忽略了更改檔案系統事件,則為 true。

如果此檔案系統監視器建立時忽略了建立檔案系統事件,則為 true。

如果此檔案系統監視器建立時忽略了刪除檔案系統事件,則為 true。

方法

處置此物件。

引數描述
返回值描述
any

FileType

檔案型別的列舉。FileDirectory 型別也可以是符號連結,在這種情況下,請使用 FileType.File | FileType.SymbolicLinkFileType.Directory | FileType.SymbolicLink

列舉成員

檔案型別未知。

普通檔案。

目錄。

指向檔案的符號連結。

FileWillCreateEvent

在檔案即將建立時觸發的事件。

要在檔案建立之前對工作區進行修改,請使用 waitUntil 函式呼叫一個解析為 workspace edit 的 thenable。

屬性

將要建立的檔案。

取消令牌。

方法

允許暫停事件並應用 workspace edit

注意: 此函式只能在事件分派期間呼叫,不能非同步呼叫

workspace.onWillCreateFiles(event => {
  // async, will *throw* an error
  setTimeout(() => event.waitUntil(promise));

  // sync, OK
  event.waitUntil(promise);
});
引數描述
thenable: Thenable<WorkspaceEdit>

延遲儲存的 thenable。

返回值描述
void

允許暫停事件,直到提供的 thenable 解析。

注意: 此函式只能在事件分派期間呼叫。

引數描述
thenable: Thenable<any>

延遲儲存的 thenable。

返回值描述
void

FileWillDeleteEvent

在檔案即將刪除時觸發的事件。

要在檔案刪除之前對工作區進行修改,請使用 waitUntil 函式呼叫一個解析為 workspace edit 的 thenable。

屬性

將要刪除的檔案。

取消令牌。

方法

允許暫停事件並應用 workspace edit

注意: 此函式只能在事件分派期間呼叫,不能非同步呼叫

workspace.onWillCreateFiles(event => {
  // async, will *throw* an error
  setTimeout(() => event.waitUntil(promise));

  // sync, OK
  event.waitUntil(promise);
});
引數描述
thenable: Thenable<WorkspaceEdit>

延遲儲存的 thenable。

返回值描述
void

允許暫停事件,直到提供的 thenable 解析。

注意: 此函式只能在事件分派期間呼叫。

引數描述
thenable: Thenable<any>

延遲儲存的 thenable。

返回值描述
void

FileWillRenameEvent

在檔案即將重新命名時觸發的事件。

要在檔案重新命名之前對工作區進行修改,請使用 waitUntil 函式呼叫一個解析為 workspace edit 的 thenable。

屬性

將要重新命名的檔案。

取消令牌。

方法

允許暫停事件並應用 workspace edit

注意: 此函式只能在事件分派期間呼叫,不能非同步呼叫

workspace.onWillCreateFiles(event => {
  // async, will *throw* an error
  setTimeout(() => event.waitUntil(promise));

  // sync, OK
  event.waitUntil(promise);
});
引數描述
thenable: Thenable<WorkspaceEdit>

延遲儲存的 thenable。

返回值描述
void

允許暫停事件,直到提供的 thenable 解析。

注意: 此函式只能在事件分派期間呼叫。

引數描述
thenable: Thenable<any>

延遲儲存的 thenable。

返回值描述
void

FoldingContext

摺疊上下文(供將來使用)

FoldingRange

基於行的摺疊範圍。要有效,起始行和結束行必須大於零且小於文件行數。無效的範圍將被忽略。

建構函式

建立新的摺疊範圍。

引數描述
start: number

摺疊範圍的起始行。

end: number

摺疊範圍的結束行。

kind?: FoldingRangeKind

摺疊範圍的型別。

返回值描述
FoldingRange

屬性

要摺疊的範圍的基於零的結束行。摺疊區域以行的最後一個字元結束。為了有效,結束行必須大於等於零且小於文件行數。

描述摺疊範圍的 Kind,例如 CommentRegion。Kind 用於對摺疊範圍進行分類,並由“摺疊所有註釋”等命令使用。請參閱 FoldingRangeKind 以瞭解所有 Kind 的列舉。如果未設定,則範圍源自語法元素。

要摺疊的範圍的基於零的起始行。摺疊區域從行的最後一個字元之後開始。為了有效,結束行必須大於等於零且小於文件行數。

FoldingRangeKind

特定摺疊範圍種類的列舉。Kind 是 FoldingRange 的可選欄位,用於區分特定摺疊範圍,例如源自注釋的範圍。Kind 由“摺疊所有註釋”或“摺疊所有區域”等命令使用。如果未在範圍內設定 Kind,則該範圍源自注釋、匯入或區域標記以外的語法元素。

列舉成員

代表註釋的摺疊範圍的 Kind。

代表匯入的摺疊範圍的 Kind。

代表源自摺疊標記(如 #region#endregion)的區域的摺疊範圍的 Kind。

FoldingRangeProvider

摺疊範圍提供程式介面定義了擴充套件和編輯器中的 Folding 之間的合同。

事件

一個可選事件,用於指示此提供程式的摺疊範圍已更改。

方法

返回摺疊範圍列表,如果提供程式不想參與或被取消,則返回 null 和 undefined。

引數描述
document: TextDocument

呼叫命令的文件。

context: FoldingContext

附加上下文資訊(供將來使用)

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<FoldingRange[]>

FormattingOptions

描述格式化應使用哪些選項的值物件。

屬性

偏好空格而不是製表符。

一個空格的製表符大小。

FunctionBreakpoint

由函式名指定的斷點。

建構函式

建立新的函式斷點。

引數描述
functionName: string
enabled?: boolean
condition?: string
hitCondition?: string
logMessage?: string
返回值描述
FunctionBreakpoint

屬性

條件斷點的可選表示式。

斷點是否已啟用。

此斷點附加到的函式的名稱。

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

斷點的唯一 ID。

斷點命中時要記錄的可選訊息。{} 中的嵌入表示式由除錯介面卡進行插值。

GlobalEnvironmentVariableCollection

擴充套件可以應用於程序環境的變數集合。適用於所有範圍。

屬性

環境變數集合的描述,將用於在 UI 中描述更改。

集合是否應被快取以供工作區使用,並在視窗重新載入時應用於終端。如果為 true,則集合將立即生效,例如在視窗重新載入時。此外,如果快取版本存在,此 API 將返回快取版本。在擴充套件解除安裝或集合被清除時,集合將失效。預設為 true。

方法

將值追加到環境變數。

請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前對 replace、append 或 prepend 的所有呼叫。

引數描述
variable: string

要追加到的變數。

value: string

要追加到變數的值。

options?: EnvironmentVariableMutatorOptions

應用於變異器的選項。如果未提供任何選項,則預設為 { applyAtProcessCreation: true }

返回值描述
void

清除此集合中的所有變異器。

引數描述
返回值描述
void

刪除此集合對變數的變異器。

引數描述
variable: string

要刪除其變異器的變數。

返回值描述
void

遍歷此集合中的每個變異器。

引數描述
callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any

為每個條目執行的函式。

thisArg?: any

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

返回值描述
void

獲取此集合應用於變數的變異器(如果存在)。

引數描述
variable: string

要獲取其變異器的變數。

返回值描述
EnvironmentVariableMutator

獲取擴充套件的作用域特定環境變數集合。這使得僅在指定作用域內修改終端環境變數成為可能,並且是在全域性集合之上(以及之後)應用的。

透過此方法獲得的每個物件都是隔離的,並且不會影響其他作用域的物件,包括全域性集合。

引數描述
scope: EnvironmentVariableScope

環境變數集合適用的作用域。

如果省略了作用域引數,則返回適用於該引數的所有相關作用域的集合。例如,如果未指定 'workspaceFolder' 引數,則將返回適用於所有工作區的集合。

返回值描述
EnvironmentVariableCollection

傳入作用域的環境變數集合。

將值前置到環境變數。

請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前對 replace、append 或 prepend 的所有呼叫。

引數描述
variable: string

要前置到的變數。

value: string

要前置到變數的值。

options?: EnvironmentVariableMutatorOptions

應用於變異器的選項。如果未提供任何選項,則預設為 { applyAtProcessCreation: true }

返回值描述
void

將環境變數替換為某個值。

請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前對 replace、append 或 prepend 的所有呼叫。

引數描述
variable: string

要替換的變數。

value: string

用於替換變數的值。

options?: EnvironmentVariableMutatorOptions

應用於變異器的選項。如果未提供任何選項,則預設為 { applyAtProcessCreation: true }

返回值描述
void

GlobPattern

用於匹配檔案路徑的 glob 檔案模式。這可以是 glob 模式字串(如 **/*.{ts,js}*.{ts,js})或 relative pattern

Glob 模式可以具有以下語法

  • * 匹配路徑段中的零個或多個字元
  • ? 匹配路徑段中的一個字元
  • ** 匹配任意數量的路徑段,包括零個
  • {} 用於分組條件(例如 **/*.{ts,js} 匹配所有 TypeScript 和 JavaScript 檔案)
  • [] 用於宣告路徑段中要匹配的字元範圍(例如,example.[0-9] 匹配 example.0example.1 等)
  • [!...] 用於否定路徑段中要匹配的字元範圍(例如,example.[!0-9] 匹配 example.aexample.b,但不匹配 example.0

注意:反斜槓 (``) 在 glob 模式中無效。如果要匹配現有檔案路徑,請考慮使用 relative pattern 支援,該支援會自動將任何反斜槓轉換為斜槓。否則,請確保在建立 glob 模式時將任何反斜槓轉換為斜槓。

Hover

Hover 代表符號或單詞的附加資訊。Hover 將在類似工具提示的視窗中小部件中呈現。

建構函式

建立新的 Hover 物件。

引數描述
contents: MarkdownString | MarkedString | Array<MarkdownString | MarkedString>

Hover 的內容。

range?: Range

Hover 適用的範圍。

返回值描述
Hover

屬性

此 Hover 的內容。

此 Hover 適用的範圍。如果省略,編輯器將使用當前位置的單詞範圍或當前位置本身。

HoverProvider

Hover 提供程式介面定義了擴充套件和 hover 功能之間的合同。

方法

為給定的位置和文件提供 Hover。同一位置的多個 Hover 將由編輯器合併。Hover 可以有一個範圍,如果省略,則預設為當前位置的單詞範圍。

引數描述
document: TextDocument

呼叫命令的文件。

position: Position

呼叫命令的位置。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<Hover>

Hover 或解析為 Hover 的 thenable。可以透過返回 undefinednull 來表示缺少結果。

IconPath

表示 UI 中的圖示。這可以是 uri、淺色和深色主題的單獨 uri,或 theme icon

ImplementationProvider

實現提供程式介面定義了擴充套件和轉到實現功能之間的合同。

方法

提供給定位置和文件中符號的實現。

引數描述
document: TextDocument

呼叫命令的文件。

position: Position

呼叫命令的位置。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<Definition | LocationLink[]>

定義或一個可解析為該定義的 thenable。可以透過返回 undefinednull 來表示沒有結果。

IndentAction

描述按 Enter 鍵時如何處理縮排。

列舉成員

插入新行並複製上一行的縮排。

插入新行並縮排一次(相對於上一行的縮排)。

插入兩行新行

  • 第一個被縮排,游標將停在那裡
  • the second one at the same indentation level

Insert new line and outdent once (relative to the previous line's indentation).

IndentationRule

Describes indentation rules for a language.

屬性

If a line matches this pattern, then all the lines after it should be unindented once (until another rule matches).

If a line matches this pattern, then all the lines after it should be indented once (until another rule matches).

If a line matches this pattern, then only the next line after it should be indented once.

If a line matches this pattern, then its indentation should not be changed and it should not be evaluated against the other rules.

InlayHint

Inlay hint information.

建構函式

Creates a new inlay hint.

引數描述
position: Position

The position of the hint.

label: string | InlayHintLabelPart[]

The label of the hint.

kind?: InlayHintKind

The kind of the hint.

返回值描述
InlayHint

屬性

The kind of this hint. The inlay hint kind defines the appearance of this inlay hint.

The label of this hint. A human readable string or an array of label parts.

Note that neither the string nor the label part can be empty.

Render padding before the hint. Padding will use the editor's background color, not the background color of the hint itself. That means padding can be used to visually align/separate an inlay hint.

Render padding after the hint. Padding will use the editor's background color, not the background color of the hint itself. That means padding can be used to visually align/separate an inlay hint.

The position of this hint.

Optional text edits that are performed when accepting this inlay hint. The default gesture for accepting an inlay hint is the double click.

Note that edits are expected to change the document so that the inlay hint (or its nearest variant) is now part of the document and the inlay hint itself is now obsolete.

Note that this property can be set late during resolving of inlay hints.

The tooltip text when you hover over this item.

Note that this property can be set late during resolving of inlay hints.

InlayHintKind

Inlay hint kinds.

The kind of an inline hint defines its appearance, e.g the corresponding foreground and background colors are being used.

列舉成員

An inlay hint that is for a type annotation.

An inlay hint that is for a parameter.

InlayHintLabelPart

An inlay hint label part allows for interactive and composite labels of inlay hints.

建構函式

Creates a new inlay hint label part.

引數描述
value: string

The value of the part.

返回值描述
InlayHintLabelPart

屬性

An optional command for this label part.

The editor renders parts with commands as clickable links. The command is added to the context menu when a label part defines location and command .

Note that this property can be set late during resolving of inlay hints.

An optional source code location that represents this label part.

The editor will use this location for the hover and for code navigation features: This part will become a clickable link that resolves to the definition of the symbol at the given location (not necessarily the location itself), it shows the hover that shows at the given location, and it shows a context menu with further code navigation commands.

Note that this property can be set late during resolving of inlay hints.

The tooltip text when you hover over this label part.

Note that this property can be set late during resolving of inlay hints.

The value of this label part.

InlayHintsProvider<T>

The inlay hints provider interface defines the contract between extensions and the inlay hints feature.

事件

An optional event to signal that inlay hints from this provider have changed.

方法

Provide inlay hints for the given range and document.

Note that inlay hints that are not contained by the given range are ignored.

引數描述
document: TextDocument

呼叫命令的文件。

range: Range

The range for which inlay hints should be computed.

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<T[]>

An array of inlay hints or a thenable that resolves to such.

Given an inlay hint fill in tooltip, text edits, or complete label parts.

Note that the editor will resolve an inlay hint at most once.

引數描述
hint: T

An inlay hint.

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<T>

The resolved inlay hint or a thenable that resolves to such. It is OK to return the given item. When no result is returned, the given item will be used.

InlineCompletionContext

Provides information about the context in which an inline completion was requested.

屬性

Provides information about the currently selected item in the autocomplete widget if it is visible.

If set, provided inline completions must extend the text of the selected item and use the same range, otherwise they are not shown as preview. As an example, if the document text is console. and the selected item is .log replacing the . in the document, the inline completion must also replace . and start with .log, for example .log().

Inline completion providers are requested again whenever the selected item changes.

Describes how the inline completion was triggered.

InlineCompletionItem

An inline completion item represents a text snippet that is proposed inline to complete text that is being typed.

See also InlineCompletionItemProvider.provideInlineCompletionItems

建構函式

Creates a new inline completion item.

引數描述
insertText: string | SnippetString

The text to replace the range with.

range?: Range

The range to replace. If not set, the word at the requested position will be used.

command?: Command

An optional Command that is executed after inserting this completion.

返回值描述
InlineCompletionItem

屬性

An optional Command that is executed after inserting this completion.

A text that is used to decide if this inline completion should be shown. When falsy the InlineCompletionItem.insertText is used.

An inline completion is shown if the text to replace is a prefix of the filter text.

The text to replace the range with. Must be set. Is used both for the preview and the accept operation.

The range to replace. Must begin and end on the same line.

Prefer replacements over insertions to provide a better experience when the user deletes typed text.

InlineCompletionItemProvider

The inline completion item provider interface defines the contract between extensions and the inline completion feature.

Providers are asked for completions either explicitly by a user gesture or implicitly when typing.

方法

Provides inline completion items for the given position and document. If inline completions are enabled, this method will be called whenever the user stopped typing. It will also be called when the user explicitly triggers inline completions or explicitly asks for the next or previous inline completion. In that case, all available inline completions should be returned. context.triggerKind can be used to distinguish between these scenarios.

引數描述
document: TextDocument

The document inline completions are requested for.

position: Position

The position inline completions are requested for.

context: InlineCompletionContext

A context object with additional information.

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<InlineCompletionList | InlineCompletionItem[]>

An array of completion items or a thenable that resolves to an array of completion items.

InlineCompletionList

Represents a collection of inline completion items to be presented in the editor.

建構函式

Creates a new list of inline completion items.

引數描述
items: InlineCompletionItem[]
返回值描述
InlineCompletionList

屬性

The inline completion items.

InlineCompletionTriggerKind

Describes how an inline completion provider was triggered.

列舉成員

Completion was triggered explicitly by a user gesture. Return multiple completion items to enable cycling through them.

Completion was triggered automatically while editing. It is sufficient to return a single completion item in this case.

InlineValue

Inline value information can be provided by different means

  • directly as a text value (class InlineValueText).
  • as a name to use for a variable lookup (class InlineValueVariableLookup)
  • as an evaluatable expression (class InlineValueEvaluatableExpression) The InlineValue types combines all inline value types into one type.

InlineValueContext

A value-object that contains contextual information when requesting inline values from a InlineValuesProvider.

屬性

The stack frame (as a DAP Id) where the execution has stopped.

The document range where execution has stopped. Typically the end position of the range denotes the line where the inline values are shown.

InlineValueEvaluatableExpression

Provide an inline value through an expression evaluation. If only a range is specified, the expression will be extracted from the underlying document. An optional expression can be used to override the extracted expression.

建構函式

Creates a new InlineValueEvaluatableExpression object.

引數描述
range: Range

從中提取可計算表示式的底層文件中的範圍。

expression?: string

如果指定,則覆蓋提取的表示式。

返回值描述
InlineValueEvaluatableExpression

屬性

如果指定,則表示式將覆蓋提取的表示式。

The document range for which the inline value applies. The range is used to extract the evaluatable expression from the underlying document.

InlineValuesProvider

The inline values provider interface defines the contract between extensions and the editor's debugger inline values feature. In this contract the provider returns inline value information for a given document range and the editor shows this information in the editor at the end of lines.

事件

An optional event to signal that inline values have changed.

另請參閱 EventEmitter

方法

Provide "inline value" information for a given document and range. The editor calls this method whenever debugging stops in the given document. The returned inline values information is rendered in the editor at the end of lines.

引數描述
document: TextDocument

The document for which the inline values information is needed.

viewPort: Range

The visible document range for which inline values should be computed.

context: InlineValueContext

A bag containing contextual information like the current location.

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<InlineValue[]>

An array of InlineValueDescriptors or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

InlineValueText

Provide inline value as text.

建構函式

Creates a new InlineValueText object.

引數描述
range: Range

The document line where to show the inline value.

text: string

The value to be shown for the line.

返回值描述
InlineValueText

屬性

The document range for which the inline value applies.

The text of the inline value.

InlineValueVariableLookup

Provide inline value through a variable lookup. If only a range is specified, the variable name will be extracted from the underlying document. An optional variable name can be used to override the extracted name.

建構函式

Creates a new InlineValueVariableLookup object.

引數描述
range: Range

The document line where to show the inline value.

variableName?: string

The name of the variable to look up.

caseSensitiveLookup?: boolean

How to perform the lookup. If missing lookup is case sensitive.

返回值描述
InlineValueVariableLookup

屬性

How to perform the lookup.

The document range for which the inline value applies. The range is used to extract the variable name from the underlying document.

If specified the name of the variable to look up.

InputBox

A concrete QuickInput to let the user input a text value.

請注意,在許多情況下,更方便的 window.showInputBox 更易於使用。window.createInputBox 應在 window.showInputBox 不提供所需靈活性時使用。

事件

An event signaling when the user indicated acceptance of the input value.

An event signaling when the value has changed.

An event signaling when this input UI is hidden.

There are several reasons why this UI might have to be hidden and the extension will be notified through onDidHide. Examples include: an explicit call to hide, the user pressing Esc, some other input UI opening, etc.

An event signaling when a button was triggered.

屬性

Determines if the UI should show a progress indicator. Defaults to false.

Change this to true, for example, while loading more data or validating user input.

Buttons for actions in the UI.

Determines if the UI should allow for user input. Defaults to true.

Change this to false, for example, while validating user input or loading data for the next step in user input.

Determines if the UI should stay open even when losing UI focus. Defaults to false. This setting is ignored on iPad and is always false.

Determines if the input value should be hidden. Defaults to false.

Optional placeholder text shown when no value has been input.

An optional prompt text providing some ask or explanation to the user.

An optional current step count for multi-step input flows.

An optional title for the input UI.

可選的多步輸入流程的總步數。

一個可選的驗證訊息,指示當前輸入值存在問題。

透過設定一個字串,InputBox 將使用預設的 InputBoxValidationSeverity 級別 Error。返回 undefined 會清除驗證訊息。

當前的輸入值。

輸入值中的選擇範圍。

定義為兩個數字的元組,第一個是包含的起始索引,第二個是排除的結束索引。當為 undefined 時,將選擇整個預填充值;當為空(開始等於結束)時,僅設定游標;否則,將選擇定義的範圍。

當用戶鍵入或進行選擇時,此屬性不會更新,但可以由擴充套件更新。

方法

銷燬此輸入 UI 和任何相關資源。

如果 UI 仍然可見,它將首先被隱藏。在此呼叫之後,輸入 UI 將不再可用,並且不應再訪問其上的任何其他方法或屬性。相反,應該建立新的輸入 UI。

引數描述
返回值描述
void

隱藏此輸入 UI。

這將觸發一個 onDidHide 事件。

引數描述
返回值描述
void

使輸入 UI 以其當前配置可見。

任何其他輸入 UI 將首先觸發一個 onDidHide 事件。

引數描述
返回值描述
void

InputBoxOptions

用於配置輸入框 UI 行為的選項。

屬性

設定為 true 可在焦點移至編輯器其他部分或另一個視窗時保持輸入框開啟。此設定在 iPad 上將被忽略,始終為 false。

控制是否顯示密碼輸入。密碼輸入會隱藏輸入的文字。

一個可選的字串,用作輸入框中的佔位符,以指導使用者輸入內容。

顯示在輸入框下方的文字。

一個可選的字串,表示輸入框的標題。

用於預填充輸入框的值。

預填充的 value 的選擇範圍。定義為兩個數字的元組,第一個是包含的起始索引,第二個是排除的結束索引。當為 undefined 時,將選擇整個預填充值;當為空(開始等於結束)時,僅設定游標;否則,將選擇定義的範圍。

方法

一個可選的函式,將用於驗證輸入並向用戶提供提示。

引數描述
value: string

輸入框的當前值。

返回值描述
string | InputBoxValidationMessage | Thenable<string | InputBoxValidationMessage>

一個人類可讀的字串,將作為錯誤訊息顯示,或者是一個 InputBoxValidationMessage,它可以提供特定的訊息嚴重性。當 'value' 有效時,返回 undefinednull 或空字串。

InputBoxValidationMessage

表示 InputBox 的驗證訊息。

屬性

要顯示給使用者的驗證訊息。

驗證訊息的嚴重性級別。

注意: 當使用 InputBoxValidationSeverity.Error 時,使用者將無法接受輸入(例如,透過按 Enter)。InfoWarning 嚴重性級別仍然允許接受輸入。

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,但它們由貢獻語言的擴充套件定義,並且可能會發生變化。

語言模型的不透明識別符號。

單次請求可以傳送到模型的最大 token 數。

語言模型的易於人類閱讀的名稱。

語言模型供應商的一個廣為人知的識別符號。例如 copilot,但值由貢獻聊天模型的擴充套件定義,並且需要與它們一起查詢。

模型的原始版本字串。這由貢獻語言模型的擴充套件定義,並且可能會發生變化。

方法

使用模型特定的分詞器邏輯計算訊息中的 token 數。

引數描述
text: string | LanguageModelChatMessage

一個字串或一個訊息例項。

token?: CancellationToken

可選的取消令牌。有關如何建立它的資訊,請參閱 CancellationTokenSource

返回值描述
Thenable<number>

一個 thenable,它將解析為 token 數。

使用語言模型傳送聊天請求。

注意 語言模型的使用可能受訪問限制和使用者同意的約束。首次(為擴充套件)呼叫此函式將向用戶顯示同意對話方塊,因此此函式僅在響應使用者操作時才能呼叫!擴充套件可以使用 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>

一個 thenable,它將解析為 LanguageModelChatResponse。如果請求無法發出,Promise 將被拒絕。

LanguageModelChatCapabilities

LanguageModelChatInformation 支援的各種功能,例如工具呼叫或影像輸入。

屬性

模型是否支援影像輸入。常見的支援影像是 jpg 和 png,但每個模型支援的 MIME 型別各不相同。

模型是否支援工具呼叫。如果提供一個數字,則表示在一次請求中可以提供給模型的最大工具數量。

LanguageModelChatInformation

表示由 LanguageModelChatProvider 提供的語言模型。

屬性

模型支援的各種功能,例如工具呼叫或影像輸入。

一個可選的、易於人類閱讀的字串,將與模型一起渲染。用於在 UI 中區分同名模型。

語言模型的系列名稱。值可能是 gpt-3.5-turbogpt4phi2llama

語言模型的唯一識別符號。在提供者之間必須是唯一的,但不需要全域性唯一。

模型可以接受的最大輸入 token 數。

模型能夠生成的最大 token 數。

語言模型的易於人類閱讀的名稱。

懸停模型時渲染的工具提示。用於提供有關模型的更多資訊。

模型的原始版本字串。這用作 LanguageModelChatSelector.version 中的查詢值。例如,GPT 4o 有多個版本,如 2024-11-20 和 2024-08-06。

LanguageModelChatMessage

表示聊天中的一條訊息。可以承擔不同的角色,例如使用者或助手。

靜態

用於建立新助手訊息的實用程式。

引數描述
content: string | Array<LanguageModelTextPart | LanguageModelDataPart | LanguageModelToolCallPart>

訊息的內容。

name?: string

訊息的可選使用者名稱。

返回值描述
LanguageModelChatMessage

用於建立新使用者訊息的實用程式。

引數描述
content: string | Array<LanguageModelTextPart | LanguageModelToolResultPart | LanguageModelDataPart>

訊息的內容。

name?: string

訊息的可選使用者名稱。

返回值描述
LanguageModelChatMessage

建構函式

建立一個新的使用者訊息。

引數描述
role: LanguageModelChatMessageRole

訊息的角色。

content: string | LanguageModelInputPart[]

訊息的內容。

name?: string

訊息的可選使用者名稱。

返回值描述
LanguageModelChatMessage

屬性

一個字串或一個異構陣列,表示訊息可以包含的內容。某些部分可能因模型而異,是訊息型別特定的。

此訊息的可選使用者名稱。

此訊息的角色。

LanguageModelChatMessageRole

表示聊天訊息的角色。這是使用者或助手。

列舉成員

使用者角色,例如與語言模型互動的人。

助手角色,例如生成響應的語言模型。

LanguageModelChatProvider<T>

LanguageModelChatProvider 實現對語言模型的訪問,使用者可以透過聊天檢視或透過 API 獲取 LanguageModelChat 來使用這些模型。例如,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。結果會實際傳遞給進度回撥。

使用特定模型的分詞器邏輯,返回給定文字的 token 數量。

引數描述
model: T

要使用的語言模型

text: string | LanguageModelChatRequestMessage

要計算 token 的文字

token: CancellationToken

一個取消令牌。

返回值描述
Thenable<number>

token 數量

LanguageModelChatRequestMessage

Provider 版本的 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 型別用作未來部分(如影像資料部分)的佔位符。

注意,在資料接收過程中發生錯誤時,此流將出錯。流的消費者應相應地處理錯誤。

要取消流,消費者可以 取消 用於發出請求的 token,或從 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 schema。

工具的名稱。

LanguageModelChatToolMode

語言模型使用的工具呼叫模式。

列舉成員

語言模型可以選擇呼叫工具或生成訊息。這是預設值。

語言模型必須呼叫提供的工具之一。注意,在某些模型中使用此模式時,它們僅支援單個工具。

LanguageModelDataPart

包含任意資料的語言模型響應部分。可在 響應聊天訊息工具結果 以及其他語言模型互動中使用。

靜態

為影像建立新的 LanguageModelDataPart

引數描述
data: Uint8Array

二進位制影像資料

mime: string

影像的 MIME 型別。常見值為 image/pngimage/jpeg

返回值描述
LanguageModelDataPart

為 JSON 建立新的 LanguageModelDataPart

注意,此函式不期望“JSON 字串”,而是期望一個可以字串化的物件。當傳入的值無法 JSON 字串化時,此函式將丟擲錯誤。

引數描述
value: any

JSON 可字串化的值。

mime?: string

可選的 MIME 型別,預設為 application/json

返回值描述
LanguageModelDataPart

為文字建立新的 LanguageModelDataPart

注意,使用 UTF-8 編碼器來建立字串的位元組。

引數描述
value: string

文字資料

mime?: string

MIME 型別(如果有)。常見值為 text/plaintext/markdown

返回值描述
LanguageModelDataPart

建構函式

使用給定內容構造一個通用資料部分。

引數描述
data: Uint8Array

此部分的資料位元組。

mimeType: string

資料的 MIME 型別。

返回值描述
LanguageModelDataPart

屬性

此部分的資料位元組。

MIME 型別,它決定了如何解釋 data 屬性。

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

該部分的值,來自 renderElementJSONvscode/prompt-tsx 的結果。

返回值描述
LanguageModelPromptTsxPart

屬性

The value of the part.

LanguageModelResponsePart

LanguageModelChatProvider 可以在聊天響應流中發出的各種訊息型別。

LanguageModelTextPart

包含文字片段的語言模型響應部分,從 LanguageModelChatResponse 返回。

建構函式

使用給定內容構造一個文字部分。

引數描述
value: string

該部分包含的文字內容。

返回值描述
LanguageModelTextPart

屬性

該部分包含的文字內容。

LanguageModelTool<T>

可透過呼叫 LanguageModelChat 來呼叫的工具。

方法

使用給定的輸入呼叫工具並返回結果。

提供的 LanguageModelToolInvocationOptions.input 已根據宣告的 schema 進行驗證。

在呼叫工具之前呼叫一次。建議實現此功能以自定義工具執行時顯示的進度訊息,並提供更具上下文資訊的訊息,其中包含呼叫輸入的內容。如果適用,還可以指示工具在執行前需要使用者確認。

  • 注意 1: 必須無副作用。
  • 注意 2: 呼叫 prepareInvocation 不一定隨後會呼叫 invoke

LanguageModelToolCallPart

指示工具呼叫的語言模型響應部分,從 LanguageModelChatResponse 返回,也可以作為 LanguageModelChatMessage 的內容部分包含,以表示聊天請求中先前的工具呼叫。

建構函式

建立一個新的 LanguageModelToolCallPart。

引數描述
callId: string

工具呼叫的 ID。

name: string

要呼叫的工具的名稱。

input: object

用於呼叫工具的輸入。

返回值描述
LanguageModelToolCallPart

屬性

工具呼叫的 ID。這是聊天請求中工具呼叫的唯一識別符號。

用於呼叫工具的輸入。

要呼叫的工具的名稱。

LanguageModelToolConfirmationMessages

當此物件在 PreparedToolInvocation 中返回時,使用者將在執行工具前被要求確認。這些訊息將顯示帶有“繼續”和“取消”按鈕。

屬性

確認訊息的正文。

確認訊息的標題。

LanguageModelToolInformation

有關 lm.tools 中可用已註冊工具的資訊。

屬性

該工具的描述,可能會傳遞給語言模型。

此工具接受的輸入的 JSON schema。

工具的唯一名稱。

工具宣告的一組標籤,大致描述了工具的功能。工具使用者可以使用這些標籤來過濾與當前任務相關的工具集。

LanguageModelToolInvocationOptions<T>

為工具呼叫提供的選項。

屬性

呼叫工具的輸入。輸入必須匹配 LanguageModelToolInformation.inputSchema 中定義的 schema。

用於提示工具應在其響應中返回多少 token,並使工具能夠準確計算 token 的選項。

一個不透明物件,將工具呼叫與 聊天參與者 的聊天請求關聯起來。

獲取有效的工具呼叫 token 的唯一方法是使用聊天請求中提供的 toolInvocationToken。在這種情況下,將自動在聊天響應檢視中為工具呼叫顯示進度條,如果工具需要使用者確認,它將內聯顯示在聊天檢視中。

如果工具在聊天請求之外被呼叫,則應傳遞 undefined,除了確認之外,不會顯示任何特殊 UI。

注意,在呼叫過程中呼叫另一個工具的工具可以傳遞它收到的 toolInvocationToken

LanguageModelToolInvocationPrepareOptions<T>

屬性

工具被呼叫的輸入。

LanguageModelToolResult

從工具呼叫返回的結果。如果使用 vscode/prompt-tsx,可以使用 ToolResult 渲染此結果。

建構函式

建立 LanguageModelToolResult。

引數描述
content: unknown[]

工具結果內容部分列表。

返回值描述
LanguageModelToolResult

屬性

工具結果內容部分列表。包含 unknown,因為此列表將來可能會擴充套件新的內容型別。

另請參閱 lm.invokeTool

LanguageModelToolResultPart

工具呼叫的結果。這是 工具呼叫 的對應項,並且它只能包含在 User 訊息的內容中。

建構函式

引數描述
callId: string

工具呼叫的 ID。

content: unknown[]

工具結果的內容。

返回值描述
LanguageModelToolResultPart

屬性

工具呼叫的 ID。

注意,這應該與工具呼叫部分的 callId 匹配。

工具結果的值。

LanguageModelToolTokenizationOptions

用於工具呼叫的與分詞相關的選項。

屬性

如果已知,則工具應在結果中發出的最大 token 數。

方法

使用模型特定的分詞器邏輯計算訊息中的 token 數。

引數描述
text: string

一個字串。

token?: CancellationToken

可選的取消令牌。有關如何建立它的資訊,請參閱 CancellationTokenSource

返回值描述
Thenable<number>

一個 thenable,它將解析為 token 數。

LanguageStatusItem

LanguageStatusItem 是呈現活動文字編輯器語言狀態報告的首選方式,例如選擇的 linter 或關於配置問題的通知。

屬性

螢幕閱讀器與此項互動時使用的可訪問性資訊

控制該項是否顯示為“忙碌”。預設為 false

此項的 命令

此項的可選、人類可讀的詳細資訊。

此項的識別符號。

此項的簡稱,例如“Java 語言狀態”等。

一個 選擇器,用於定義此項顯示在哪些編輯器中。

此項的嚴重程度。

預設為 Information。您可以使用此屬性向使用者發出需要注意的問題訊號,例如缺少可執行檔案或配置無效。

要顯示在條目中的文字。您可以透過利用以下語法來嵌入圖示:

我的文字 $(icon-name) 包含諸如 $(icon-name) 之類的圖示。

其中 icon-name 是從 ThemeIcon 圖示集 中獲取的,例如 light-bulbthumbsupzap 等。

方法

釋放並清理相關資源。

引數描述
返回值描述
void

LanguageStatusSeverity

表示語言狀態的嚴重程度級別。

列舉成員

資訊性嚴重程度級別。

警告性嚴重程度級別。

錯誤性嚴重程度級別。

LinkedEditingRangeProvider

LinkedEditingRangeProvider 介面定義了擴充套件與連結編輯功能之間的契約。

方法

對於文件中的給定位置,返回該位置處的符號的範圍以及所有內容相同的範圍。如果新內容有效,則對一個範圍的更改可以應用於所有其他範圍。可選的單詞模式可以與結果一起返回,以描述有效內容。如果未提供特定於結果的單詞模式,則將使用語言配置中的單詞模式。

引數描述
document: TextDocument

呼叫提供程式的文件。

position: Position

呼叫提供程式的文件位置。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<LinkedEditingRanges>

可以一起編輯的範圍列表

LinkedEditingRanges

表示可以一起編輯的範圍列表,以及用於描述有效範圍內容的單詞模式。

建構函式

建立新的連結編輯範圍物件。

引數描述
ranges: Range[]

可以一起編輯的範圍列表

wordPattern?: RegExp

描述給定範圍有效內容的可選單詞模式

返回值描述
LinkedEditingRanges

屬性

可以一起編輯的範圍列表。範圍必須具有相同的長度和文字內容。範圍不能重疊。

描述給定範圍有效內容的可選單詞模式。如果未提供模式,將使用語言配置的單詞模式。

Location

表示資源中的位置,例如文字檔案中的行。

建構函式

建立一個新的位置物件。

引數描述
uri: Uri

資源識別符號。

rangeOrPosition: Range | Position

範圍或位置。位置將被轉換為空範圍。

返回值描述
位置

屬性

此位置的文件範圍。

此位置的資源識別符號。

表示兩個位置之間的連線。提供比普通 Locations 更多的元資料,包括源範圍。

屬性

此連結源的選擇範圍。

用作滑鼠定義懸停的下劃線範圍。預設為定義位置的單詞範圍。

此連結的目標完整範圍。

此連結的選擇範圍。

此連結的目標資源識別符號。

LogLevel

日誌級別

列舉成員

此級別不記錄任何訊息。

此級別記錄所有訊息。

此級別記錄除錯及以上日誌級別的訊息。

此級別記錄資訊及以上日誌級別的訊息。

此級別記錄警告及以上日誌級別的訊息。

此級別僅記錄錯誤訊息。

LogOutputChannel

用於包含日誌輸出的通道。

要獲取 LogOutputChannel 的例項,請使用 createOutputChannel

事件

當通道的日誌級別發生變化時觸發的 Event

屬性

通道的當前日誌級別。預設為 編輯器日誌級別

此輸出通道的可讀名稱。

方法

將給定值附加到通道。

引數描述
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 表示一個可透過 Streamable HTTP 傳輸訪問的 MCP 伺服器。

建構函式

引數描述
label: string

伺服器的可讀名稱。

uri: Uri

伺服器的 URI。

headers?: Record<string, string>

傳送到伺服器的每個請求的可選附加頭。

version?: string
返回值描述
McpHttpServerDefinition

屬性

傳送到伺服器的每個請求的可選附加頭。

伺服器的可讀名稱。

伺服器的 URI。編輯器將向此 URI 傳送 POST 請求以開始每個會話。

伺服器的可選版本標識。如果此值更改,編輯器將指示工具已更改並提示重新整理它們。

McpServerDefinition

描述不同型別的 Model Context Protocol 伺服器的定義,這些伺服器可以從 McpServerDefinitionProvider 返回。

McpServerDefinitionProvider<T>

可以提供 Model Context Protocol 伺服器定義的型別。應在擴充套件啟用期間使用 lm.registerMcpServerDefinitionProvider 註冊此型別。

事件

一個可選事件,用於在可用伺服器集發生變化時發出訊號。

方法

提供可用的 MCP 伺服器。編輯器將提前呼叫此方法以確保語言模型的伺服器可用性,因此擴充套件不應執行需要使用者互動的操作,例如身份驗證。

引數描述
token: CancellationToken

取消令牌。

返回值描述
ProviderResult<T[]>

可用的 MCP 伺服器陣列

當編輯器需要啟動 MCP 伺服器時,將呼叫此函式。此時,擴充套件可以執行任何需要使用者互動的操作,例如身份驗證。伺服器的任何非 readonly 屬性都可以修改,並且擴充套件應返回解析後的伺服器。

擴充套件可以返回 undefined 來指示不應啟動伺服器,或丟擲錯誤。如果存在待處理的工具呼叫,編輯器將取消該呼叫並向語言模型返回錯誤訊息。

引數描述
server: T

要解析的 MCP 伺服器

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<T>

解析後的伺服器或解析為該伺服器的 thenable。這可能是具有已填充的非 readonly 屬性的給定 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

Memento 表示一個儲存實用程式。它可以儲存和檢索值。

方法

返回一個值。

引數描述
key: string

一個字串。

返回值描述
T

儲存的值或 undefined

返回一個值。

引數描述
key: string

一個字串。

defaultValue: T

當給定鍵沒有值(undefined)時應返回的值。

返回值描述
T

儲存的值或預設值。

返回儲存的鍵。

引數描述
返回值描述
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 掛起](#_NotebookCellExecutionState.Pending Pending) 狀態。當在執行任務上呼叫 start(...) 時,它進入 [NotebookCellExecutionState.Executing 執行中](#_NotebookCellExecutionState.Executing Executing) 狀態。當呼叫 end(...) 時,它進入 [NotebookCellExecutionState.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,則顯示紅色叉號。如果為 undefined,則不顯示勾號或叉號圖示。

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

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

一個可以為單元格編輯器下方的狀態列提供項的提供程式。

事件

一個可選的事件,用於發出狀態列項已更改的訊號。將再次呼叫提供程式方法。

方法

當單元格滾動到檢視中、其內容、輸出、語言或元資料更改以及執行狀態更改時,將呼叫該提供程式。

引數描述
cell: NotebookCell

要返回項的單元格。

token: CancellationToken

如果此請求應被取消,則觸發的令牌。

返回值描述
ProviderResult<NotebookCellStatusBarItem | NotebookCellStatusBarItem[]>

一個或多個 單元格狀態列項

NotebookController

NotebookController 表示一個可以執行筆記本單元格的實體。這通常被稱為核心。

可以有多個控制器,編輯器會允許使用者選擇為特定筆記本使用哪個控制器。notebookType 屬性定義了控制器是用於哪種筆記本的,而 updateNotebookAffinity 函式允許控制器為特定的筆記本文件設定偏好。當選擇了一個控制器後,它的 onDidChangeSelectedNotebooks 事件會觸發。

當單元格正在執行時,編輯器將呼叫 executeHandler,控制器應建立一個並完成一個 筆記本單元格執行。然而,控制器也可以自由地自行建立執行。

事件

當控制器被選中或取消選中筆記本文件時觸發的事件。

筆記本可以有多個控制器,在這種情況下,需要選擇一個控制器。這是一個使用者操作,透過與控制器建議的筆記本進行互動,顯式或隱式地發生。如果可能,編輯器會建議一個最有可能被選中的控制器。

請注意,控制器選擇是持久化的(透過控制器的 id),並在控制器重新建立或筆記本開啟時恢復。

屬性

人類可讀的描述,顯示不那麼突出。

人類可讀的詳細資訊,顯示不那麼突出。

當在 UI 中選擇執行手勢時(例如,執行單元格、執行全部、執行選區等),將呼叫 executeHandler。executeHandler 負責建立和管理 執行 物件。

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

此控制器是否支援執行順序,以便編輯器可以為其渲染佔位符。

方法

建立單元格執行任務。

注意,每個單元格一次只能有一個執行,如果在一個單元格仍在活動時建立另一個單元格的執行,則會丟擲錯誤。

這應該在響應 executeHandler 被呼叫時使用,或者當單元格執行已開始時使用,例如當一個單元格已在執行或單元格執行是從另一個源觸發時。

引數描述
cell: NotebookCell

要為其建立執行的筆記本單元格。

返回值描述
NotebookCellExecution

筆記本單元格執行。

釋放並清理相關資源。

引數描述
返回值描述
void

控制器可以為特定的筆記本文件設定關聯。這使得某個控制器在某些筆記本中更突出。

引數描述
notebook: NotebookDocument

設定優先順序的筆記本。

affinity: NotebookControllerAffinity

控制器對筆記本的關聯。

返回值描述
void

NotebookControllerAffinity

筆記本文件的筆記本控制器關聯。

另請參閱 NotebookController.updateNotebookAffinity

列舉成員

預設關聯。

控制器是筆記本的首選。

NotebookData

筆記本的原始表示。

擴充套件負責建立 NotebookData,以便編輯器可以建立 NotebookDocument

另請參閱 NotebookSerializer

建構函式

建立新的筆記本資料。

引數描述
cells: NotebookCellData[]

單元格資料的陣列。

返回值描述
NotebookData

屬性

此筆記本資料的單元格資料。

筆記本資料的任意元資料。

NotebookDocument

代表一個筆記本,它本身是一系列 程式碼或標記單元格。筆記本文件由 筆記本資料 建立。

屬性

筆記本中的單元格數量。

如果筆記本已關閉,則為 true。關閉的筆記本不再同步,並且在再次開啟同一資源時不會被重新使用。

如果有未持久化的更改,則為 true

此筆記本是否代表一個尚未儲存的未命名檔案。

此筆記本的任意元資料。可以是任何東西,但必須是 JSON 可序列化的。

筆記本的型別。

此筆記本的關聯 URI。

注意,大多數筆記本使用 file 方案,這意味著它們是磁碟上的檔案。但是,並非所有筆記本都儲存在磁碟上,因此在嘗試訪問底層檔案或磁碟上的同級檔案之前,必須檢查 scheme

另請參閱 FileSystemProvider

此筆記本的版本號(在每次更改後都會嚴格增加,包括撤銷/重做)。

方法

返回指定索引處的單元格。索引將調整為筆記本的。

引數描述
index: number

要檢索的單元格的索引。

返回值描述
NotebookCell

一個 單元格

獲取此筆記本的單元格。可以透過提供範圍來檢索子集。範圍將調整為筆記本的。

引數描述
range?: NotebookRange

筆記本範圍。

返回值描述
NotebookCell[]

範圍包含的單元格或所有單元格。

儲存文件。儲存將由相應的 序列化程式 處理。

引數描述
返回值描述
Thenable<boolean>

當文件已儲存時,將解析為 true 的 Promise。如果檔案未更改或儲存失敗,將返回 false。

NotebookDocumentCellChange

描述筆記本單元格的更改。

另請參閱 NotebookDocumentChangeEvent

屬性

受影響的單元格。

單元格的文件,或 undefined,如果它沒有改變。

注意,您應該使用 onDidChangeTextDocument 事件來獲取詳細的更改資訊,例如執行了哪些編輯。

單元格的新執行摘要,或 undefined,如果它沒有改變。

單元格的新元資料,或 undefined,如果它沒有改變。

單元格的新輸出,或 undefined,如果它們沒有改變。

NotebookDocumentChangeEvent

描述筆記本文件 事務性更改 的事件。

屬性

單元格更改 的陣列。

描述已新增或刪除的 單元格 的內容更改陣列。

筆記本的新元資料,或 undefined,如果它未更改。

受影響的筆記本。

NotebookDocumentContentChange

描述筆記本文件的結構性更改,例如新新增和刪除的單元格。

另請參閱 NotebookDocumentChangeEvent

屬性

已新增到文件的單元格。

已新增或刪除單元格的範圍。

請注意,當此範圍 為空 時,沒有單元格被 移除

已從文件中移除的單元格。

NotebookDocumentContentOptions

筆記本內容選項定義了筆記本的哪些部分將被持久化。注意

例如,筆記本序列化器可以選擇不儲存輸出,在這種情況下,當其輸出發生更改時,編輯器不會將筆記本標記為 dirty

屬性

控制單元格元資料屬性更改事件是否會觸發筆記本文件內容更改事件以及是否在 diff 編輯器中使用,預設為 false。如果內容提供者不在檔案文件中持久化元資料屬性,則應將其設定為 true。

控制文件元資料屬性更改事件是否會觸發筆記本文件內容更改事件以及是否在 diff 編輯器中使用,預設為 false。如果內容提供者不在檔案文件中持久化元資料屬性,則應將其設定為 true。

控制輸出更改事件是否會觸發筆記本文件內容更改事件以及是否在 diff 編輯器中使用,預設為 false。如果內容提供者不在檔案文件中持久化輸出,則應將其設定為 true。

NotebookDocumentShowOptions

表示用於配置在 筆記本編輯器 中顯示 筆記本文件 的行為的選項。

屬性

一個可選標誌,如果設定為 true,將阻止 筆記本編輯器 獲取焦點。

一個可選標誌,用於控制 筆記本編輯器 標籤頁是否顯示為預覽。預覽標籤頁將被替換並重用,直到被設定為保留 - 顯式或透過編輯。預設行為取決於 workbench.editor.enablePreview 設定。

筆記本編輯器 中應用於文件的可選選擇。

應顯示 筆記本編輯器 的可選檢視列。預設值為 活動。最多會建立到 ViewColumn.Nine 的不存在的列。使用 ViewColumn.Beside 將編輯器開啟到當前活動的編輯器旁邊。

NotebookDocumentWillSaveEvent

筆記本文件 將被儲存時觸發的事件。

要在儲存文件之前對其進行修改,請呼叫 waitUntil 函式,並傳入一個解析為 WorkspaceEdit 的 thenable。

屬性

將要儲存的 筆記本文件

觸發儲存的原因。

取消令牌。

方法

允許暫停事件迴圈並應用 WorkspaceEdit。此函式後續呼叫的編輯將按順序應用。如果筆記本文件發生了併發修改,這些編輯將被 *忽略*。

注意: 此函式只能在事件分派期間呼叫,不能非同步呼叫

workspace.onWillSaveNotebookDocument(event => {
  // async, will *throw* an error
  setTimeout(() => event.waitUntil(promise));

  // sync, OK
  event.waitUntil(promise);
});
引數描述
thenable: Thenable<WorkspaceEdit>

解析為 WorkspaceEdit 的 thenable。

返回值描述
void

允許暫停事件迴圈,直到提供的 thenable 解析。

注意: 此函式只能在事件分派期間呼叫。

引數描述
thenable: Thenable<any>

延遲儲存的 thenable。

返回值描述
void

NotebookEdit

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。

建構函式

建立新的筆記本範圍。如果 start 不小於或等於 end,則值將被交換。

引數描述
start: number

起始索引

end: number

結束索引。

返回值描述
NotebookRange

屬性

此範圍的排他性結束索引(零基)。

如果 startend 相等,則為 true

此範圍的零基起始索引。

方法

從此範圍派生新範圍。

引數描述
change: {end: number, start: number}

描述對此範圍更改的物件。

返回值描述
NotebookRange

一個反映給定更改的範圍。如果更改未改變任何內容,將返回this範圍。

NotebookRendererMessaging

Renderer messaging 用於與單個渲染器通訊。它從 notebooks.createRendererMessaging 返回。

事件

當從渲染器接收到訊息時觸發的事件。

方法

將訊息傳送到一個或所有渲染器。

引數描述
message: any

要傳送的訊息

editor?: NotebookEditor

要將訊息定向到的編輯器。如果未提供,則訊息將傳送到所有渲染器。

返回值描述
Thenable<boolean>

一個布林值,指示訊息是否已成功傳遞給任何渲染器。

NotebookSerializer

Notebook serializer 使編輯器能夠開啟筆記本檔案。

核心上,編輯器只知道一個 筆記本資料結構,但不知道如何將該資料結構寫入檔案,也不知道如何從檔案讀取。Notebook serializer 透過將位元組反序列化為筆記本資料和反之亦然來彌合這一差距。

方法

將筆記本檔案的內容反序列化為筆記本資料結構。

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

表示在 overview ruler 中渲染裝飾的不同位置。overview ruler 支援三個通道。

列舉成員

overview ruler 的左側通道。

overview ruler 的中心通道。

overview ruler 的右側通道。

overview ruler 的所有通道。

ParameterInformation

表示可呼叫簽名的引數。引數可以有一個標籤和一個文件註釋。

建構函式

建立新的引數資訊物件。

引數描述
label: string | [number, number]

一個標籤字串或包含在簽名標籤內的偏移量(包含開始,不包含結束)。

documentation?: string | MarkdownString

文件字串。

返回值描述
ParameterInformation

屬性

此簽名的可讀文件註釋。將在 UI 中顯示,但可以省略。

此簽名的標籤。

可以是字串,也可以是包含在簽名信息 label 中的偏移量(包含開始,不包含結束)。注意:字串型別的標籤必須是其包含的簽名信息 label 的子字串。

Position

表示行和字元位置,例如游標的位置。

Position 物件是 **不可變的**。使用 withtranslate 方法從現有位置派生新位置。

建構函式

引數描述
line: number

基於 0 的行值。

character: number

基於 0 的字元值。

返回值描述
Position

屬性

基於 0 的字元值。

字元偏移量使用 UTF-16 程式碼單元表示。

基於 0 的行值。

方法

將此與 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

可以顯示進度資訊的位置。進度如何顯示取決於位置。

列舉成員

顯示原始碼管理檢視的進度,作為圖示疊加和檢視中的進度條(可見時)。都不支援取消、離散進度或描述操作的標籤。

在編輯器的狀態列中顯示進度。既不支援取消,也不支援離散進度。支援透過進度標籤中的 $(<name>) 語法渲染 主題圖示

顯示為通知,帶有可選的取消按鈕。支援顯示無限和離散進度,但不支援渲染圖示。

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 之前觸發的事件將被忽略。

示例:將終端名稱更改為“我的新終端”。

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 只會將游標向下移動一行,您還需要寫入 \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

快速 diff 提供程式提供一個 uri 來表示已修改資源的原始狀態。編輯器將使用此資訊在文字中渲染臨時 diff。

方法

提供一個 Uri 來表示任何給定資源的原始資源。

引數描述
uri: Uri

在文字編輯器中開啟的資源的 uri。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<Uri>

一個 thenable,它解析為匹配的原始資源的 uri。

QuickInput

所有快速輸入型別的基本介面。

快速輸入為擴充套件提供了一種透過簡單的 UI 元素與使用者進行互動的統一方式。快速輸入 UI 最初是不可見的。在透過其屬性配置它之後,擴充套件可以透過呼叫 show 來使其可見。

There are several reasons why this UI might have to be hidden and the extension will be notified through onDidHide. Examples include: an explicit call to hide, the user pressing Esc, some other input UI opening, etc.

使用者按 Enter 鍵或執行其他暗示接受當前狀態的手勢不會自動隱藏此 UI 元件。擴充套件應決定是否接受使用者的輸入以及是否應透過呼叫 hide 來隱藏 UI。

當擴充套件不再需要此輸入 UI 時,它應 dispose 它,以允許釋放與其相關的任何資源。

有關具體的 UI,請參閱 QuickPickInputBox

事件

An event signaling when this input UI is hidden.

There are several reasons why this UI might have to be hidden and the extension will be notified through onDidHide. Examples include: an explicit call to hide, the user pressing Esc, some other input UI opening, etc.

屬性

Determines if the UI should show a progress indicator. Defaults to false.

Change this to true, for example, while loading more data or validating user input.

Determines if the UI should allow for user input. Defaults to true.

Change this to false, for example, while validating user input or loading data for the next step in user input.

Determines if the UI should stay open even when losing UI focus. Defaults to false. This setting is ignored on iPad and is always false.

An optional current step count for multi-step input flows.

An optional title for the input UI.

可選的多步輸入流程的總步數。

方法

銷燬此輸入 UI 和任何相關資源。

如果 UI 仍然可見,它將首先被隱藏。在此呼叫之後,輸入 UI 將不再可用,並且不應再訪問其上的任何其他方法或屬性。相反,應該建立新的輸入 UI。

引數描述
返回值描述
void

隱藏此輸入 UI。

這將觸發一個 onDidHide 事件。

引數描述
返回值描述
void

使輸入 UI 以其當前配置可見。

任何其他輸入 UI 將首先觸發一個 onDidHide 事件。

引數描述
返回值描述
void

QuickInputButton

一個用於 QuickPickInputBox 中操作的按鈕。

屬性

按鈕的圖示。

滑鼠懸停在按鈕上時顯示的可選工具提示。

QuickInputButtons

用於 QuickPickInputBox 的預定義按鈕。

靜態

用於 QuickPickInputBox 的預定義後退按鈕。

當需要導航後退按鈕時,應使用此按鈕以保持一致性。它帶有預定義的圖示、工具提示和位置。

QuickPick<T>

一個具體的 QuickInput,允許使用者從型別為 T 的專案列表中選擇一個專案。

專案可以透過過濾文字欄位進行過濾,並且有一個可選的 canSelectMany 選項以允許選擇多個專案。

請注意,在許多情況下,更方便的 window.showQuickPick 更易於使用。window.createQuickPick 應在 window.showQuickPick 不提供所需靈活性時使用。

事件

當用戶表示接受選定的專案時觸發的事件。

活動專案更改時觸發的事件。

選定專案更改時觸發的事件。

過濾文字的值更改時觸發的事件。

An event signaling when this input UI is hidden.

There are several reasons why this UI might have to be hidden and the extension will be notified through onDidHide. Examples include: an explicit call to hide, the user pressing Esc, some other input UI opening, etc.

An event signaling when a button was triggered.

此事件由 buttons 陣列中儲存的按鈕觸發。此事件不為 QuickPickItem 上的按鈕觸發。

QuickPickItem 中某個按鈕被觸發時觸發的事件。

此事件不為標題欄中屬於 buttons 的按鈕觸發。

屬性

活動專案。擴充套件可以讀取和更新此屬性。

Determines if the UI should show a progress indicator. Defaults to false.

Change this to true, for example, while loading more data or validating user input.

Buttons for actions in the UI.

確定是否可以同時選擇多個專案。預設為 false

Determines if the UI should allow for user input. Defaults to true.

Change this to false, for example, while validating user input or loading data for the next step in user input.

Determines if the UI should stay open even when losing UI focus. Defaults to false. This setting is ignored on iPad and is always false.

可供選擇的專案。擴充套件可以讀取和更新此屬性。

確定在快速選擇專案更新時是否保留滾動位置。預設為 false

確定在過濾專案時是否也應匹配過濾文字與專案 description。預設為 false

確定在過濾專案時是否也應匹配過濾文字與專案 detail。預設為 false

當沒有輸入值時,在過濾文字框中顯示的佔位符文字。

選定的專案。擴充套件可以讀取和更新此屬性。

An optional current step count for multi-step input flows.

An optional title for the input UI.

可選的多步輸入流程的總步數。

過濾文字的當前值。

方法

銷燬此輸入 UI 和任何相關資源。

如果 UI 仍然可見,它將首先被隱藏。在此呼叫之後,輸入 UI 將不再可用,並且不應再訪問其上的任何其他方法或屬性。相反,應該建立新的輸入 UI。

引數描述
返回值描述
void

隱藏此輸入 UI。

這將觸發一個 onDidHide 事件。

引數描述
返回值描述
void

使輸入 UI 以其當前配置可見。

任何其他輸入 UI 將首先觸發一個 onDidHide 事件。

引數描述
返回值描述
void

QuickPickItem

表示可從專案列表中選擇的一個專案。

屬性

確定此專案是否始終顯示,即使被使用者輸入過濾掉。

注意:kind 設定為 QuickPickItemKind.Separator 時,將忽略此屬性。

將在此特定專案上渲染的可選按鈕。

當按下這些按鈕時,它們將觸發 QuickPickItemButtonEvent。只有在使用 createQuickPick API 建立的快速選擇中才會渲染按鈕。使用 showQuickPick API 時不會渲染按鈕。

注意:kind 設定為 QuickPickItemKind.Separator 時,將忽略此屬性。

人類可讀的字串,在同一行中不那麼顯眼地渲染。

支援透過 $(<name>) 語法渲染 主題圖示

注意:kind 設定為 QuickPickItemKind.Separator 時,將忽略此屬性。

人類可讀的字串,在單獨一行中不那麼顯眼地渲染。

支援透過 $(<name>) 語法渲染 主題圖示

注意:kind 設定為 QuickPickItemKind.Separator 時,將忽略此屬性。

專案的圖示。

此專案的種類,決定了它在快速選擇中的渲染方式。

如果未指定,則預設為 QuickPickItemKind.Default

人類可讀的字串,突出顯示。

支援透過 $(<name>) 語法渲染 主題圖示

注意:kind 設定為 QuickPickItemKind.Default(即常規專案而不是分隔符)時,它支援透過 $(<name>) 語法渲染 主題圖示

可選標誌,指示此專案是否已初始選中。

僅在使用 showQuickPick API 時有效。要使用 createQuickPick API 實現相同的功能,只需將 selectedItems 設定為您希望初始選中的專案即可。

注意:這僅在選擇器允許多項選擇時有效。

另請參閱 QuickPickOptions.canPickMany

注意:kind 設定為 QuickPickItemKind.Separator 時,將忽略此屬性。

QuickPickItemButtonEvent<T>

描述 QuickPickItem 上按下的按鈕的事件。

屬性

按下的按鈕。

按鈕所屬的專案。

QuickPickItemKind

定義 快速選擇專案 的種類。

列舉成員

提供視覺分組的分隔符專案。

QuickPickItem 的種類為 Separator 時,該專案僅為視覺分隔符,不代表可選擇的專案。唯一適用的屬性是 labelQuickPickItem 上的所有其他屬性都將被忽略且無效。

可在快速選擇中選擇的專案的預設種類。

QuickPickOptions

用於配置快速選擇 UI 行為的選項。

事件

選擇專案時呼叫的可選函式。

引數描述
item: string | QuickPickItem
返回值描述
any

屬性

確定選擇器是否允許多項選擇。如果為 true,則結果是專案陣列。

設定為 true 以在焦點移至編輯器其他部分或另一個視窗時保持選擇器開啟。此設定在 iPad 上被忽略,並且始終為 false

確定在過濾專案時是否應包含 description。預設為 false

確定在過濾專案時是否應包含 detail。預設為 false

可選字串,在輸入框中顯示為佔位符以指導使用者。

快速選擇的可選標題。

Range

Range 表示兩個位置的有序對。保證 start.isBeforeOrEqual(end)

Range 物件是不可變的。使用 withintersectionunion 方法從現有 Range 中派生新 Range。

建構函式

從兩個位置建立新 Range。如果 start 不在 end 之前或等於 end,則值將被交換。

引數描述
start: Position

一個位置。

end: Position

一個位置。

返回值描述
Range

從數字座標建立新 Range。這是使用 new Range(new Position(startLine, startCharacter), new Position(endLine, endCharacter)) 的更短的等效形式。

引數描述
startLine: number

基於 0 的行值。

startCharacter: number

基於 0 的字元值。

endLine: number

基於 0 的行值。

endCharacter: number

基於 0 的字元值。

返回值描述
Range

屬性

結束位置。它在 start 之後或等於 start

如果 startend 相等,則為 true

如果 start.lineend.line 相等,則為 true

開始位置。它在 end 之前或等於 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

在請求引用時包含附加資訊的 Value-object。

屬性

包含當前符號的宣告。

ReferenceProvider

ReferenceProvider 介面定義了擴充套件和 查詢引用 功能之間的約定。

方法

為給定的位置和文件提供一組專案範圍內的引用。

引數描述
document: TextDocument

呼叫命令的文件。

position: Position

呼叫命令的位置。

context: ReferenceContext

有關引用請求的附加資訊。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<Location[]>

位置陣列或可解析為此類陣列的 thenable。可以透過返回 undefinednull 或空陣列來表示缺少結果。

RelativePattern

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

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

檢索此擴充套件儲存的所有秘密的鍵。

引數描述
返回值描述
Thenable<string[]>

將秘密儲存在給定鍵下。

引數描述
key: string

儲存秘密的鍵。

value: string

秘密。

返回值描述
Thenable<void>

SecretStorageChangeEvent

新增或刪除秘密時觸發的事件資料。

屬性

已更改的秘密的鍵。

SelectedCompletionInfo

描述當前選中的補全項。

屬性

如果接受此補全項,將被替換的範圍。

如果接受此補全項,將被替換為該範圍的文字。

Selection

表示編輯器中的文字選擇。

建構函式

從兩個位置建立選擇。

引數描述
anchor: Position

一個位置。

active: Position

一個位置。

返回值描述
Selection

從四個座標建立選擇。

引數描述
anchorLine: number

基於 0 的行值。

anchorCharacter: number

基於 0 的字元值。

activeLine: number

基於 0 的行值。

activeCharacter: number

基於 0 的字元值。

返回值描述
Selection

屬性

游標的位置。此位置可能在 anchor 之前或之後。

選擇開始的位置。此位置可能在 active 之前或之後。

結束位置。它在 start 之後或等於 start

如果 startend 相等,則為 true

如果選擇的 anchorend 位置,則該選擇是反轉的。

如果 start.lineend.line 相等,則為 true

開始位置。它在 end 之前或等於 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

SelectionRange 表示選擇層次結構的一部分。SelectionRange 可能有一個包含它的父 SelectionRange。

建構函式

建立新的 SelectionRange。

引數描述
range: Range

SelectionRange 的範圍。

parent?: SelectionRange

SelectionRange 的父級。

返回值描述
SelectionRange

屬性

包含此範圍的父 SelectionRange。

此 SelectionRange 的 Range

SelectionRangeProvider

SelectionRangeProvider 介面定義了擴充套件和“擴充套件和收縮選擇”功能之間的約定。

方法

為給定的位置提供選擇範圍。

應為每個位置單獨計算並獨立計算選擇範圍。編輯器將合併和去重範圍,但提供者必須返回選擇範圍的層次結構,以便一個範圍被其父級 包含

引數描述
document: TextDocument

呼叫命令的文件。

positions: readonly Position[]

呼叫命令的位置。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<SelectionRange[]>

選擇範圍或可解析為此類範圍的 thenable。可以透過返回 undefinednull 來表示缺少結果。

SemanticTokens

表示語義令牌,無論是範圍內的還是整個文件內的。

另請參閱

建構函式

建立新的語義令牌。

引數描述
data: Uint32Array

令牌資料。

resultId?: string

結果識別符號。

返回值描述
SemanticTokens

屬性

實際的令牌資料。

另請參閱 provideDocumentSemanticTokens 以瞭解格式說明。

令牌的結果 ID。

這將是傳遞給 DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits(如果已實現)的 ID。

SemanticTokensBuilder

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

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 } 字面量,則使用 escapeChar 轉義 charsToEscape 中的所有字元。

用於強引用的字元。字串長度必須為 1。

用於弱引用的字元。字串長度必須為 1。

SignatureHelp

Signature help 代表可呼叫項的簽名。可以有多個簽名,但只有一個是活動的,並且只有一個引數是活動的。

建構函式

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

Snippet string 是一個模板,允許插入文字並控制插入時的編輯器游標。

Snippet 可以定義製表符和佔位符,如 $1$2${3:foo}$0 定義最終制表符,預設為 snippet 的末尾。變數使用 $name${name:default value} 定義。另請參閱 完整的 snippet 語法

建構函式

建立新的 snippet 字串。

引數描述
value?: string

Snippet 字串。

返回值描述
SnippetString

屬性

Snippet 字串。

方法

構建函式,將選擇項(${1|a,b,c|})附加到此 snippet 字串的 value

引數描述
values: readonly string[]

選擇項的值——字串陣列

number?: number

此製表符的編號,預設為從 1 開始的自動遞增值。

返回值描述
SnippetString

此 snippet 字串。

構建函式,將佔位符(${1:value})附加到此 snippet 字串的 value

引數描述
value: string | (snippet: SnippetString) => any

此佔位符的值——可以是字串,也可以是用於建立巢狀 snippet 的函式。

number?: number

此製表符的編號,預設為從 1 開始的自動遞增值。

返回值描述
SnippetString

此 snippet 字串。

構建函式,將製表符($1$2 等)附加到此 snippet 字串的 value

引數描述
number?: number

此製表符的編號,預設為從 1 開始的自動遞增值。

返回值描述
SnippetString

此 snippet 字串。

構建函式,將給定字串附加到此 snippet 字串的 value

引數描述
string: string

要“按原樣”附加的值。字串將被轉義。

返回值描述
SnippetString

此 snippet 字串。

構建函式,將變數(${VAR})附加到此 snippet 字串的 value

引數描述
name: string

變數的名稱——不包括 $

defaultValue: string | (snippet: SnippetString) => any

當變數名無法解析時使用的預設值——可以是字串,也可以是用於建立巢狀 snippet 的函式。

返回值描述
SnippetString

此 snippet 字串。

SnippetTextEdit

Snippet edit 代表編輯器執行的互動式編輯。

注意,Snippet edit 始終可以作為常規 文字編輯 執行。當沒有開啟匹配的編輯器時,或者當 工作區編輯 包含多個檔案的 snippet 編輯時,就會發生這種情況。在這種情況下,只有與活動編輯器匹配的才會作為 snippet 編輯執行,而其他則作為常規文字編輯執行。

靜態

用於建立插入 snippet 編輯的實用函式。

引數描述
position: Position

一個位置,將成為一個空範圍。

snippet: SnippetString

Snippet 字串。

返回值描述
SnippetTextEdit

一個新的 snippet 編輯物件。

用於建立替換 snippet 編輯的實用函式。

引數描述
range: Range

範圍。

snippet: SnippetString

Snippet 字串。

返回值描述
SnippetTextEdit

一個新的 snippet 編輯物件。

建構函式

建立新的 snippet 編輯。

引數描述
range: Range

範圍。

snippet: SnippetString

Snippet 字串。

返回值描述
SnippetTextEdit

屬性

是否應在保留現有空格的情況下應用 snippet 編輯。

此編輯適用的範圍。

此編輯將執行的 snippet

SourceBreakpoint

由原始碼位置指定的斷點。

建構函式

為原始碼位置建立新的斷點。

引數描述
location: Location
enabled?: boolean
condition?: string
hitCondition?: string
logMessage?: string
返回值描述
SourceBreakpoint

屬性

條件斷點的可選表示式。

斷點是否已啟用。

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

斷點的唯一 ID。

此斷點的原始碼和行位置。

斷點命中時要記錄的可選訊息。{} 中的嵌入表示式由除錯介面卡進行插值。

SourceControl

Source control 能夠向編輯器提供 資源狀態,並以多種與原始碼控制相關的方式與編輯器進行互動。

屬性

可選的接受輸入命令。

當用戶接受原始碼控制輸入中的值時,將呼叫此命令。

可選的提交模板字串。

原始碼控制檢視將使用此值填充原始碼控制輸入(在適當的情況下)。

此原始碼控制的 資源狀態 的 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"
      }
    ]
  }
}

這將僅為上下文值為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"
      }
    ]
  }
}

這將僅為上下文值為diffable的資源顯示操作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 Language Indicator”、“Git Status”等。請儘量使名稱簡短,但要足夠描述性,以便使用者能理解狀態列項的用途。

此項的優先順序。值越高表示該項應顯示在越靠左的位置。

要顯示在條目中的文字。您可以透過利用以下語法來嵌入圖示:

我的文字 $(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>

一個 Promise,當所有選項卡都已關閉時解析為 true

關閉選項卡組。這將使選項卡組物件失效,並且不應再使用該選項卡組進行任何進一步的操作。

引數描述
tabGroup: TabGroup | readonly TabGroup[]

要關閉的選項卡組。

preserveFocus?: boolean

如果為true,則焦點將保留在其當前位置。

返回值描述
Thenable<boolean>

一個 Promise,當所有選項卡組都已關閉時解析為 true

TabInputCustom

該選項卡代表一個自定義編輯器。

建構函式

構造一個自定義編輯器選項卡輸入。

引數描述
uri: Uri

選項卡的 URI。

viewType: string

自定義編輯器的檢視型別。

返回值描述
TabInputCustom

屬性

該選項卡所代表的 URI。

自定義編輯器的型別。

TabInputNotebook

此選項卡表示一個筆記本。

建構函式

構造一個用於筆記本的新選項卡輸入。

引數描述
uri: Uri

筆記本的 URI。

notebookType: string

筆記本的型別。對映到 NotebookDocument 的 notebookType

返回值描述
TabInputNotebook

屬性

筆記本的型別。對映到 NotebookDocument 的 notebookType

該選項卡所代表的 URI。

TabInputNotebookDiff

此選項卡表示處於差異配置中的兩個筆記本。

建構函式

構造一個筆記本差異選項卡輸入。

引數描述
original: Uri

原始未修改筆記本的 URI。

modified: Uri

已修改筆記本的 URI。

notebookType: string

筆記本的型別。對映到 NotebookDocument 的 notebookType

返回值描述
TabInputNotebookDiff

屬性

已修改筆記本的 URI。

筆記本的型別。對映到 NotebookDocument 的 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

定義系統中任務型別的結構。該值必須是 JSON 可序列化的。

屬性

任務定義,描述擴充套件提供的任務。通常,任務提供者定義更多屬性來標識任務。它們需要在擴充套件的 package.json 中 under 'taskDefinitions' 擴充套件點進行定義。例如,npm 任務定義如下:

interface NpmTaskDefinition extends TaskDefinition {
  script: string;
}

請注意,以 '$' 開頭的型別識別符號保留供內部使用,擴充套件不應使用它們。

TaskEndEvent

一個事件,用於指示已執行任務的結束。

此介面不旨在實現。

屬性

表示已完成任務的任務項。

TaskExecution

表示已執行任務的物件。可用於終止任務。

此介面不旨在實現。

屬性

已啟動的任務。

方法

終止任務執行。

引數描述
返回值描述
void

TaskFilter

任務過濾器按版本和型別來標識任務。

屬性

要返回的任務型別。

在 tasks.json 檔案中使用的任務版本。字串支援 package.json 的 semver 表示法。

TaskGroup

任務的 agrupamento。編輯器預設支援“Clean”、“Build”、“RebuildAll”和“Test”組。

靜態

構建任務組;

清理任務組;

重新構建所有任務組;

所有測試任務組;

建構函式

私有建構函式

引數描述
id: string

任務組的識別符號。

label: string

任務組的可讀名稱。

返回值描述
TaskGroup

屬性

任務組的 ID。它是 TaskGroup.Clean.id、TaskGroup.Build.id、TaskGroup.Rebuild.id 或 TaskGroup.Test.id 之一。

屬於此組的任務是否是該組的預設任務。此屬性不能透過 API 設定,由使用者的任務配置控制。

TaskPanelKind

控制任務之間的任務通道如何使用。

列舉成員

與其他任務共享面板。這是預設設定。

為此任務使用專用面板。該面板不與其他任務共享。

每次執行此任務時建立一個新面板。

TaskPresentationOptions

控制任務在 UI 中如何顯示。

屬性

控制在執行任務之前是否清除終端。

控制在執行任務之後是否關閉終端。

控制是否在使用者介面中顯示與任務關聯的命令。

控制顯示任務輸出的面板是否獲得焦點。

控制任務面板是僅用於此任務(專用)、在任務之間共享(共享)還是在每次執行任務時建立一個新面板(新)。預設為 TaskInstanceKind.Shared

控制是否在使用者介面中顯示任務輸出。預設為 RevealKind.Always

控制是否顯示“終端將被任務重用,按任意鍵關閉它”訊息。

TaskProcessEndEvent

一個事件,用於指示透過任務觸發的程序執行的結束。

屬性

啟動程序的任務執行。

程序的退出程式碼。當任務被終止時將為 undefined

TaskProcessStartEvent

一個事件,用於指示透過任務觸發的程序執行的開始。

屬性

啟動程序的任務執行。

底層程序 ID。

TaskProvider<T>

任務提供者允許將任務新增到任務服務。任務提供者透過 tasks.registerTaskProvider 註冊。

方法

提供任務。

引數描述
token: CancellationToken

取消令牌。

返回值描述
ProviderResult<T[]>

任務陣列

解析一個沒有設定 execution 的任務。任務通常根據 `tasks.json` 檔案中的資訊建立。這些任務缺少如何執行它們的資訊,任務提供者必須在 `resolveTask` 方法中填充缺失的資訊。對於從上面的 `provideTasks` 方法返回的任務,將不會呼叫此方法,因為這些任務總是完全解析的。 `resolveTask` 方法的一個有效預設實現是返回 `undefined`。

請注意,在填充 task 的屬性時,您必須確保使用完全相同的 TaskDefinition,而不是建立新的。其他屬性可能會被更改。

引數描述
task: T

要解析的任務。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<T>

已解析的任務

TaskRevealKind

控制終端可見性的行為。

列舉成員

如果執行任務,則始終將終端帶到前面。

僅當執行任務時檢測到問題時(例如,由於...無法啟動任務),才將終端帶到前面。

執行任務時,終端永遠不會出現在前面。

TaskScope

任務的範圍。

列舉成員

任務是全域性任務。目前不支援全域性任務。

任務是工作區任務

TaskStartEvent

一個事件,用於指示任務執行的開始。

此介面不旨在實現。

屬性

表示已啟動任務的任務項。

TelemetryLogger

一個遙測記錄器,擴充套件可以使用它來記錄使用情況和錯誤遙測。

一個包裝了 sender 的記錄器,但它保證

  • 會遵守使用者停用或調整遙測的設定,並且
  • 會移除潛在的敏感資料。

它還支援一個“回顯 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 的選項。

屬性

應注入到 data 物件中的任何其他通用屬性。

是否要避免將內建的通用屬性(如 os、副檔名等)注入到 data 物件中。如果未定義,則預設為 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 啟動的資料夾很有用。

終端的退出狀態,在終端處於活動狀態時將未定義。

示例:當終端以非零退出程式碼退出時,顯示帶有退出程式碼的通知。

window.onDidCloseTerminal(t => {
  if (t.exitStatus && t.exitStatus.code) {
    vscode.window.showInformationMessage(`Exit code: ${t.exitStatus.code}`);
  }
});

終端的名稱。

shell 程序的程序 ID。

包含終端的 shell 整合 驅動功能的物件的屬性。終端建立後,此屬性將始終為 undefined。偵聽 window.onDidChangeTerminalShellIntegration 以在終端的 shell 整合啟用時收到通知。

請注意,如果 shell 整合從未啟用,此物件可能仍然未定義。例如,命令提示符不支援 shell 整合,使用者的 shell 設定可能會與自動 shell 整合啟用衝突。

Terminal 的當前狀態。

方法

釋放並清理相關資源。

引數描述
返回值描述
void

如果終端面板當前顯示,則隱藏終端面板。

引數描述
返回值描述
void

向終端傳送文字。文字將被寫入終端的底層 pty 程序(shell)的標準輸入。

引數描述
text: string

要傳送的文字。

shouldExecute?: boolean

指示傳送的文字應被執行,而不僅僅是插入到終端中。新增的字元是 \n\r\n,具體取決於平臺。此項預設為 true

返回值描述
void

顯示終端面板並將此終端顯示在 UI 中。

引數描述
preserveFocus?: boolean

true 時,終端不會獲得焦點。

返回值描述
void

TerminalDimensions

表示終端的尺寸。

屬性

終端的列數。

終端的行數。

TerminalEditorLocationOptions

假定 TerminalLocation 為 editor,並允許指定 ViewColumnpreserveFocus 屬性。

屬性

一個可選標誌,當 true 時,將阻止 Terminal 獲得焦點。

應在編輯器區域顯示 terminal 的檢視列。預設值為 active。不存在的列將按需建立,最多為 ViewColumn.Nine。使用 ViewColumn.Beside 在當前活動編輯器旁邊開啟編輯器。

TerminalExitReason

終端退出原因型別。

列舉成員

未知原因。

視窗關閉/重新載入。

shell 程序已退出。

使用者關閉了終端。

某個擴充套件已釋放終端。

TerminalExitStatus

表示終端如何退出。

屬性

終端退出的退出程式碼,它可以具有以下值

  • 零:終端程序或自定義執行成功。
  • 非零:終端程序或自定義執行失敗。
  • undefined:使用者強制關閉了終端,或者自定義執行在未提供退出程式碼的情況下退出。

觸發終端退出的原因。

終端行上的連結。

建構函式

建立一個新的終端連結。

引數描述
startIndex: number

連結在 TerminalLinkContext.line 上的起始索引。

length: number

連結在 TerminalLinkContext.line 上的長度。

tooltip?: string

滑鼠懸停在此連結上時顯示的工具提示文字。

如果提供了工具提示,它將顯示在包含觸發連結說明的字串中,例如 {0} (ctrl + click)。具體說明因作業系統、使用者設定和本地化而異。

返回值描述
TerminalLink

屬性

連結在 TerminalLinkContext.line 上的長度。

連結在 TerminalLinkContext.line 上的起始索引。

滑鼠懸停在此連結上時顯示的工具提示文字。

如果提供了工具提示,它將顯示在包含觸發連結說明的字串中,例如 {0} (ctrl + click)。具體說明因作業系統、使用者設定和本地化而異。

TerminalLinkContext

提供終端行上的資訊,以便為其提供連結。

屬性

這是終端中未包裝行的文字。

連結所屬的終端。

TerminalLinkProvider<T>

一個提供程式,用於檢測和處理終端中的連結。

方法

處理已啟用的終端連結。

引數描述
link: T

要處理的連結。

返回值描述
ProviderResult<void>

為給定上下文提供終端連結。請注意,即使在之前的呼叫解析之前,此函式也可能被多次呼叫,請確保不要共享可能在非同步使用重疊時出現問題的全域性物件(例如 RegExp)。

引數描述
context: TerminalLinkContext

有關要提供連結的資訊。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<T[]>

給定行的終端連結列表。

TerminalLocation

終端的位置。

列舉成員

在終端檢視中

在編輯器區域中

TerminalOptions

描述終端應使用哪些選項的值物件。

屬性

終端的圖示 ThemeColor。建議使用 terminal.ansi* 主題鍵,以在不同主題之間獲得最佳對比度和一致性。

要用於終端的當前工作目錄的路徑或 URI。

將新增到編輯器程序的環境變數物件。

啟用後,終端將按正常方式執行程序,但除非呼叫 Terminal.show,否則不會向用戶顯示。這通常用於需要互動但只想在需要互動時才告知使用者的情況。請注意,終端仍將像往常一樣向所有擴充套件公開。隱藏的終端在工作區下次開啟時不會恢復。

終端的圖示路徑或 ThemeIcon

選擇退出在重啟和過載時自動持久化終端。只有當 terminal.integrated.enablePersistentSessions 啟用時,此選項才生效。

首次啟動時要寫入終端的訊息,請注意,此訊息不會發送到程序,而是直接寫入終端。它支援轉義序列,例如設定文字樣式。

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

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

用於驗證 shell 整合序列是否來自可信源的 nonce。UX 的一個示例影響是,如果命令列報告了一個 nonce,它將無需與使用者確認命令列是否正確即可透過 shell 整合命令裝飾 重新執行它。

如果終端包含 自定義 shell 整合支援,則應使用此項。它應設定為一個隨機 GUID,然後該 GUID 將設定 VSCODE_NONCE 環境變數。在 shell 中,應將其從環境變數中移除,以防止其被通用訪問。完成此操作後,可以將其傳遞到相關序列中以使其受信任。

要用在終端中的自定義 shell 可執行檔案的路徑。

終端程序環境是否應與 TerminalOptions.env 中提供的完全一致。當此值為 false(預設值)時,環境將基於視窗的環境,並應用配置的平臺設定,如 terminal.integrated.env.windows。當此值為 true 時,必須提供完整的環境,因為不會從程序或任何配置繼承任何內容。

TerminalProfile

終端配置檔案定義了終端將如何啟動。

建構函式

建立一個新的終端配置檔案。

引數描述
options: TerminalOptions | ExtensionTerminalOptions

終端將使用此選項啟動。

返回值描述
TerminalProfile

屬性

終端將使用此選項啟動。

TerminalProfileProvider

為透過 UI 或命令啟動的貢獻終端配置檔案提供一個終端配置檔案。

方法

提供終端配置檔案。

引數描述
token: CancellationToken

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

返回值描述
ProviderResult<TerminalProfile>

終端配置檔案。

TerminalShellExecution

在終端中執行的命令。

屬性

執行的命令列。此值的 confidence 取決於特定 shell 的 shell 整合實現的程度。在 window.onDidEndTerminalShellExecution 觸發後,此值可能會變得更準確。

示例

// Log the details of the command line on start and end
window.onDidStartTerminalShellExecution(event => {
  const commandLine = event.execution.commandLine;
  console.log(`Command started\n${summarizeCommandLine(commandLine)}`);
});
window.onDidEndTerminalShellExecution(event => {
  const commandLine = event.execution.commandLine;
  console.log(`Command ended\n${summarizeCommandLine(commandLine)}`);
});
function summarizeCommandLine(commandLine: TerminalShellExecutionCommandLine) {
  return [
    `  Command line: ${command.commandLine.value}`,
    `  Confidence: ${command.commandLine.confidence}`,
    `  Trusted: ${command.commandLine.isTrusted}
  ].join('\n');
}

shell 在命令執行時報告的工作目錄。此 Uri 可能表示另一臺機器上的檔案(例如,ssh 到另一臺機器)。這需要 shell 整合支援工作目錄報告。

方法

建立寫入終端的原始資料流(包括轉義序列)。這僅包括在首次呼叫 read 後寫入的資料,也就是說,您必須在透過 TerminalShellIntegration.executeCommandwindow.onDidStartTerminalShellExecution 執行命令後立即呼叫 read,以避免丟失任何資料。

示例

// Log all data written to the terminal for a command
const command = term.shellIntegration.executeCommand({ commandLine: 'echo "Hello world"' });
const stream = command.read();
for await (const data of stream) {
  console.log(data);
}
引數描述
返回值描述
AsyncIterable<string>

TerminalShellExecutionCommandLine

在終端中執行的命令列。

屬性

命令列值的置信度,由值的獲取方式決定。這取決於 shell 整合指令碼的實現。

命令列值是否來自可信來源,因此可以安全地執行而無需使用者額外確認,例如請求“您要執行(命令)嗎?”的通知。只有當您要再次執行該命令時,才可能需要此驗證。

僅當命令列由 shell 整合指令碼明確報告(即 高置信度)並且使用了 nonce 進行驗證時,此值為 true

執行的完整命令列,包括命令及其引數。

TerminalShellExecutionCommandLineConfidence

列舉成員

命令列值的置信度低。這意味著該值是從終端緩衝區中讀取的,使用了 shell 整合指令碼報告的標記。此外,將滿足以下條件之一:

  • 命令從最左邊的列開始,這是不尋常的,或者
  • 命令是多行的,由於行繼續字元和右提示符,因此更難準確檢測。
  • 命令列標記未被 shell 整合指令碼報告。

命令列值的置信度中等。這意味著該值是從終端緩衝區中讀取的,使用了 shell 整合指令碼報告的標記。命令是單行的,並且不從最左邊的列開始(這是不尋常的)。

命令列值的置信度高。這意味著該值是從 shell 整合指令碼顯式傳送的,或者命令是透過 TerminalShellIntegration.executeCommand API 執行的。

TerminalShellExecutionEndEvent

一個訊號,表示終端中的執行已結束。

屬性

已結束的終端 shell 執行。

shell 報告的退出程式碼。

當此值為 undefined 時,可能意味著多種情況:

  • shell 未報告退出程式碼(即 shell 整合指令碼行為異常)
  • shell 報告的命令在命令完成之前開始(例如,打開了子 shell)。
  • 使用者透過 ctrl+c 取消了命令。
  • 使用者在沒有輸入時按下了 Enter 鍵。

通常不應發生這種情況。根據用例,最好將其視為失敗。

示例

const execution = shellIntegration.executeCommand({
  command: 'echo',
  args: ['Hello world']
});
window.onDidEndTerminalShellExecution(event => {
  if (event.execution === execution) {
    if (event.exitCode === undefined) {
      console.log('Command finished but exit code is unknown');
    } else if (event.exitCode === 0) {
      console.log('Command succeeded');
    } else {
      console.log('Command failed');
    }
  }
});

shell 整合物件。

已啟用 shell 整合的終端。

TerminalShellExecutionStartEvent

一個訊號,表示終端中的執行已開始。

屬性

已結束的終端 shell 執行。

shell 整合物件。

已啟用 shell 整合的終端。

TerminalShellIntegration

Shell 整合驅動的功能,由終端擁有。

屬性

終端的當前工作目錄。此 Uri 可能表示另一臺機器上的檔案(例如,ssh 到另一臺機器)。這需要 shell 整合支援工作目錄報告。

方法

執行命令,必要時傳送 ^C 以中斷任何正在執行的命令。

  • 丟擲 - 在不支援此 API 的終端上執行時,例如任務終端。

示例

// Execute a command in a terminal immediately after being created
const myTerm = window.createTerminal();
window.onDidChangeTerminalShellIntegration(async ({ terminal, shellIntegration }) => {
  if (terminal === myTerm) {
    const execution = shellIntegration.executeCommand('echo "Hello world"');
    window.onDidEndTerminalShellExecution(event => {
      if (event.execution === execution) {
        console.log(`Command exited with code ${event.exitCode}`);
      }
    });
  }
}));
// Fallback to sendText if there is no shell integration within 3 seconds of launching
setTimeout(() => {
  if (!myTerm.shellIntegration) {
    myTerm.sendText('echo "Hello world"');
    // Without shell integration, we can't know when the command has finished or what the
    // exit code was.
  }
}, 3000);

示例

// Send command to terminal that has been alive for a while
const commandLine = 'echo "Hello world"';
if (term.shellIntegration) {
  const execution = shellIntegration.executeCommand({ commandLine });
  window.onDidEndTerminalShellExecution(event => {
    if (event.execution === execution) {
      console.log(`Command exited with code ${event.exitCode}`);
    }
  });
} else {
  term.sendText(commandLine);
  // Without shell integration, we can't know when the command has finished or what the
  // exit code was.
}
引數描述
commandLine: string

要執行的命令列,這是將傳送到終端的精確文字。

返回值描述
TerminalShellExecution

執行命令,必要時傳送 ^C 以中斷任何正在執行的命令。

注意:這不保證有效,因為 shell 整合 必須已啟用。檢查 TerminalShellExecution.exitCode 是否被拒絕,以驗證其是否成功。

示例

// Execute a command in a terminal immediately after being created
const myTerm = window.createTerminal();
window.onDidChangeTerminalShellIntegration(async ({ terminal, shellIntegration }) => {
  if (terminal === myTerm) {
    const command = shellIntegration.executeCommand({
      command: 'echo',
      args: ['Hello world']
    });
    const code = await command.exitCode;
    console.log(`Command exited with code ${code}`);
  }
}));
// Fallback to sendText if there is no shell integration within 3 seconds of launching
setTimeout(() => {
  if (!myTerm.shellIntegration) {
    myTerm.sendText('echo "Hello world"');
    // Without shell integration, we can't know when the command has finished or what the
    // exit code was.
  }
}, 3000);

示例

// Send command to terminal that has been alive for a while
const commandLine = 'echo "Hello world"';
if (term.shellIntegration) {
  const command = term.shellIntegration.executeCommand({
    command: 'echo',
    args: ['Hello world']
  });
  const code = await command.exitCode;
  console.log(`Command exited with code ${code}`);
} else {
  term.sendText(commandLine);
  // Without shell integration, we can't know when the command has finished or what the
  // exit code was.
}
引數描述
executable: string

要執行的命令。

args: string[]

啟動可執行檔案的引數。引數將被轉義,以便當引數同時包含空格且不包含任何單引號、雙引號或反引號字元時,它們被解釋為單個引數。

請注意,此轉義並非旨在作為安全措施,在將不受信任的資料傳遞給此 API 時要小心,因為諸如 $(...) 之類的字串通常可以在 shell 中用於在字串內執行程式碼。

返回值描述
TerminalShellExecution

TerminalShellIntegrationChangeEvent

一個訊號,表示終端的 shell 整合已更改。

屬性

shell 整合物件。

已啟用 shell 整合的終端。

TerminalSplitLocationOptions

使用父 Terminal 的位置作為此終端的位置。

屬性

要在此終端旁邊拆分的父終端。無論父終端是在面板還是編輯器區域中,這都可以工作。

TerminalState

表示 Terminal 的狀態。

屬性

Terminal 是否已互動過。互動意味著終端已將資料傳送到程序,具體取決於終端的模式。預設情況下,當按下鍵或命令或擴充套件傳送文字時會發送輸入,但根據終端的模式,它也可能在以下情況下發生:

  • 一個指標點選事件
  • 一個指標滾動事件
  • 一個指標移動事件
  • 終端焦點進入/退出

有關可傳送資料的事件的更多資訊,請參閱 https://invisible-island.net/xterm/ctlseqs/ctlseqs.html 上的“DEC Private Mode Set (DECSET)”

檢測到的 Terminal 的 shell 型別。當沒有明確的訊號表明 shell 是什麼,或者 shell 尚未支援時,此值將為 undefined。啟動子 shell 時(例如,在 zsh 中執行 bash),此值應更改為子 shell 的型別。

請注意,目前可能的值定義為以下任何一種:'bash', 'cmd', 'csh', 'fish', 'gitbash', 'julia', 'ksh', 'node', 'nu', 'pwsh', 'python', 'sh', 'wsl', 'zsh'。

TestController

發現和執行測試的入口點。它包含 TestController.items,用於填充編輯器 UI,並與 執行配置檔案 相關聯,以便執行測試。

屬性

tests.createTestController 中傳入的控制器的 ID。此 ID 必須是全域性唯一的。

一個“頂層” TestItem 例項的集合,這些例項本身可以有自己的 children 來形成“測試樹”。

擴充套件控制何時新增測試。例如,擴充套件程式應在 workspace.onDidOpenTextDocument 觸發時為檔案新增測試,以便檔案內的測試裝飾可見。

但是,編輯器有時可能會透過 resolveHandler 顯式請求子項。有關更多詳細資訊,請參閱該方法的文件。

測試控制器的可讀標籤。

如果存在此方法,UI 中將出現一個重新整理按鈕,點選該按鈕時將呼叫此方法。呼叫時,擴充套件程式應掃描工作區以查詢任何新新增、已更改或已刪除的測試。

建議擴充套件程式嘗試使用 FileSystemWatcher 等即時更新測試,並將此方法作為備用。

引數描述
token: CancellationToken
返回值描述
void | Thenable<void>

一個在測試重新整理完成後解析的 thenable。

TestItem.canResolveChildrentrue 時,編輯器可能會呼叫此函式來請求測試項的子項。呼叫時,應發現子項,並在發現子項時呼叫 TestController.createTestItem

通常,擴充套件程式會管理測試項的生命週期,但在某些情況下,編輯器可能會請求載入特定項的子項。例如,如果使用者在重新載入編輯器後請求重新執行測試,編輯器可能需要呼叫此方法來解析先前執行的測試。

在函式返回或返回的 thenable 解析之前,資源管理器中的項將自動標記為“忙碌”。

引數描述
item: TestItem

正在請求子項的未解析測試項,或 undefined 用於解析控制器初始的 items

返回值描述
void | Thenable<void>

方法

建立一個用於執行測試的配置檔案。擴充套件程式必須至少建立一個配置檔案,才能執行測試。

引數描述
label: string

此配置檔案的可讀標籤。

kind: TestRunProfileKind

配置此配置檔案管理哪種型別的執行。

runHandler: (request: TestRunRequest, token: CancellationToken) => void | Thenable<void>

呼叫以啟動測試執行的函式。

isDefault?: boolean

此是否是其型別的預設操作。

tag?: TestTag

配置檔案測試標籤。

supportsContinuousRun?: boolean

此配置檔案是否支援連續執行。

返回值描述
TestRunProfile

一個 TestRunProfile 的例項,它會自動與此控制器關聯。

建立一個新的託管 TestItem 例項。它可以新增到現有項的 TestItem.children 中,或者新增到 TestController.items 中。

引數描述
id: string

TestItem 的識別符號。TestItem 的 ID 在其新增到的 TestItemCollection 中必須是唯一的。

label: string

TestItem 的可讀標籤。

uri?: Uri

此 TestItem 關聯的 URI。可以是檔案或目錄。

返回值描述
TestItem

建立一個 TestRun。當請求執行測試時,應由 TestRunProfile 呼叫此方法,如果外部檢測到測試執行,也可能呼叫此方法。建立後,包含在請求中的測試將被移至排隊狀態。

使用同一 request 例項建立的所有執行將分組在一起。這在例如,在多個平臺上運行同一套測試時很有用。

引數描述
request: TestRunRequest

測試執行請求。只能修改 include 中的測試,並且忽略其 exclude 中的測試。

name?: string

執行的可讀名稱。這可用於區分測試執行中的多個結果集。例如,在跨多個平臺執行測試時很有用。

persist?: boolean

由執行建立的結果是否應在編輯器中持久化。如果結果來自已外部儲存的檔案(例如,覆蓋率資訊檔案),則此項可以為 false。

返回值描述
TestRun

一個 TestRun 的例項。從呼叫此方法的那一刻起,它將被視為“正在執行”,直到呼叫 TestRun.end 為止。

登出測試控制器,釋放其關聯的測試和未持久化的結果。

引數描述
返回值描述
void

將項的結果標記為已過時。當代碼或配置更改且先前結果不再被視為相關時,通常會呼叫此方法。用於將結果標記為過時相同的邏輯可用於驅動 連續測試執行

如果將項傳遞給此方法,則該項及其所有子項的測試結果將被標記為過時。如果未傳遞任何項,則控制器擁有的所有測試都將被標記為過時。

在此方法呼叫時刻之前開始的任何測試執行,包括可能仍在進行的執行,都將被標記為過時並在編輯器的 UI 中降低優先順序。

引數描述
items?: TestItem | readonly TestItem[]

標記為過時的項。如果為 undefined,則標記控制器所有項為過時。

返回值描述
void

TestCoverageCount

包含有關已覆蓋資源的資訊的類。可以為檔案中的行、分支和宣告提供計數。

建構函式

引數描述
covered: number
total: number
返回值描述
TestCoverageCount

屬性

檔案中覆蓋的項數。

檔案中覆蓋的總項數。

TestItem

“測試資源管理器”檢視中顯示的項。

TestItem 可以代表測試套件或測試本身,因為它們都具有類似的功能。

屬性

控制項在測試資源管理器檢視中是否顯示為“忙碌”。這在發現子項時顯示狀態很有用。

預設為 false

指示此測試項是否可以透過解析來發現子項。

如果為 true,則此項在測試資源管理器檢視中顯示為可展開,展開該項將導致使用該項呼叫 TestController.resolveHandler

預設為 false

此測試項的子項。對於測試套件,這可能包含單個測試用例或巢狀套件。

可選描述,顯示在標籤旁邊。

載入測試時遇到的可選錯誤。

請注意,這不是測試結果,僅用於表示測試發現中的錯誤,例如語法錯誤。

TestItem 的識別符號。這用於將文件中的測試結果和測試與工作區(測試資源管理器)中的測試進行關聯。此 ID 在 TestItem 的生命週期內不能更改,並且在其父項的直接子項中必須是唯一的。

描述測試用例的顯示名稱。

此項的父項。它會自動設定,對於 TestController.items 中的頂層項以及尚未包含在其他項的 children 中的項,它將為 undefined。

測試項在其 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。

返回值描述
TestItem

找到的項,如果不存在則為 undefined。

替換集合中儲存的項。

引數描述
items: readonly TestItem[]

要儲存的項。

返回值描述
void

TestMessage

與測試狀態關聯的訊息。可以連結到特定的源範圍 — 例如,對於斷言失敗很有用。

靜態

建立一個新的 TestMessage,它將在編輯器中顯示為 diff。

引數描述
message: string | MarkdownString

要顯示給使用者aneous的訊息。

expected: string

預期輸出。

actual: string

實際輸出。

返回值描述
TestMessage

建構函式

建立一個新的 TestMessage 例項。

引數描述
message: string | MarkdownString

要顯示給使用者的訊息。

返回值描述
TestMessage

屬性

實際測試輸出。如果與 expectedOutput 一起提供,將顯示 diff 檢視。

測試項的上下文值。可用於向測試 peek 檢視貢獻訊息特定的操作。此處設定的值可以在以下 menus 貢獻點中找到 testMessage 屬性

  • testing/message/context - 結果樹中訊息的上下文選單
  • testing/message/content - 覆蓋訊息顯示所在的編輯器內容的突出按鈕。

例如

"contributes": {
  "menus": {
    "testing/message/content": [
      {
        "command": "extension.deleteCommentThread",
        "when": "testMessage == canApplyRichDiff"
      }
    ]
  }
}

將使用一個包含以下內容的aught呼叫命令

預期測試輸出。如果與 actualOutput 一起提供,將顯示 diff 檢視。

關聯的檔案位置。

要顯示的文字訊息。

與訊息或失敗關聯的堆疊跟蹤。

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

要執行的特定測試陣列,如果未定義則執行所有測試。

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

另請參閱

此文件的版本號(在每次更改後將嚴格遞增,包括撤銷/重做)。

方法

獲取此文件的文字。透過提供範圍可以檢索子字串。範圍將 調整

引數描述
range?: Range

僅包括範圍內的文字。

返回值描述
字串

提供範圍內的文字或整個文字。

在給定位置獲取一個單詞範圍。預設情況下,單詞由常見分隔符定義,例如空格、-、_ 等。此外,還可以定義每個語言自定義的 [單詞定義]。還可以提供自定義正則表示式。

  • *注意 1:*自定義正則表示式不得匹配空字串,如果匹配,則將被忽略。
  • *注意 2:*自定義正則表示式將無法匹配多行字串,為了速度,正則表示式不應匹配帶空格的單詞。對於更復雜的、非單詞的場景,請使用 TextLine.text

該位置將 調整

引數描述
position: Position

一個位置。

regex?: RegExp

可選正則表示式,用於描述單詞的定義。

返回值描述
Range

跨越一個單詞的範圍,或 undefined

返回由行號表示的文字行。請注意,返回的物件*不是*即時的,文件的更改不會反映在此物件中。

引數描述
line: number

行號在 [0, lineCount) 範圍內。

返回值描述
TextLine

返回由位置表示的文字行。請注意,返回的物件*不是*即時的,文件的更改不會反映在此物件中。

該位置將 調整

*另請參閱* TextDocument.lineAt

引數描述
position: Position

一個位置。

返回值描述
TextLine

將位置轉換為基於零的偏移量。

該位置將 調整

引數描述
position: Position

一個位置。

返回值描述
number

UTF-16 程式碼單元中的有效基於零的偏移量。

將基於零的偏移量轉換為位置。

引數描述
offset: number

文件中的基於零的偏移量。此偏移量以 UTF-16 程式碼單元為單位。

返回值描述
Position

有效的 Position

儲存底層檔案。

引數描述
返回值描述
Thenable<boolean>

一個 Promise,該 Promise 將解析為 true,表示檔案已儲存。如果儲存失敗,則返回 false

確保位置包含在此文件的範圍內。

引數描述
position: Position

一個位置。

返回值描述
Position

給定位置或新的、已調整的位置。

確保範圍完全包含在此文件中。

引數描述
range: Range

範圍。

返回值描述
Range

給定的範圍或新的、已調整的範圍。

TextDocumentChangeEvent

描述事務性 文件更改的事件。

屬性

內容更改陣列。

受影響的文件。

文件更改的原因。如果原因未知,則為 undefined

TextDocumentChangeReason

文字文件發生更改的原因。

列舉成員

文字更改由撤銷操作引起。

文字更改由重做操作引起。

TextDocumentContentChangeEvent

描述 文件文字中單個更改的事件。

屬性

被替換的範圍。

被替換的範圍的長度。

被替換的範圍的偏移量。

範圍的新文字。

TextDocumentContentProvider

文字文件內容提供程式允許向編輯器新增只讀文件,例如來自 dll 的源或 md 生成的 html。

內容提供程式會針對 uri-scheme 進行 註冊。當要 載入 具有該方案的 uri 時,會詢問內容提供程式。

事件

用於指示資源已更改的事件。

方法

提供給定 uri 的文字內容。

編輯器將使用返回的字串內容來建立只讀的 文件。已分配的資源應在相應的文件 關閉 時釋放。

注意:由於行尾序列的標準化,建立的 文件 的內容可能與提供的文字不完全相同。

引數描述
uri: Uri

一個 scheme 與此提供程式 註冊 的 scheme 匹配的 uri。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<string>

一個字串或一個解析為該字串的 thenable。

TextDocumentSaveReason

表示文字文件儲存的原因。

列舉成員

手動觸發,例如使用者按下儲存、開始除錯或透過 API 呼叫。

延遲後自動儲存。

編輯器失去焦點時。

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

屬性

文件中使用的行尾序列。

請注意,行尾序列將應用於整個文件。

此編輯將插入的字串。

此編輯適用的範圍。

TextEditor

表示已附加到 文件 的編輯器。

屬性

與此文字編輯器關聯的文件。在文字編輯器的整個生命週期中,該文件將保持不變。

文字編輯器選項。

此文字編輯器上的主要選區。是 TextEditor.selections[0] 的簡寫。

此文字編輯器中的選區。主要選區始終位於索引 0。

此編輯器顯示的列。如果是嵌入式編輯器,或者編輯器列大於三,則可能為 undefined

編輯器中當前可見的範圍(垂直方向)。這僅考慮垂直滾動,而不考慮水平滾動。

方法

對與此文字編輯器關聯的文件執行編輯。

將呼叫給定的回撥函式,並傳入一個 編輯構建器,必須使用該構建器進行編輯。請注意,編輯構建器僅在回撥函式執行期間有效。

引數描述
callback: (editBuilder: TextEditorEdit) => void

一個可以使用 編輯構建器 建立編輯的函式。

options?: {undoStopAfter: boolean, undoStopBefore: boolean}

此編輯的撤銷/重做行為。預設情況下,將在編輯之前和之後建立撤銷停止點。

返回值描述
Thenable<boolean>

一個解析為布林值的 Promise,指示編輯是否可以應用。

隱藏文字編輯器。

  • 已棄用 - 請改用命令 workbench.action.closeActiveEditor。此方法將產生意外行為,並將在下一個主要版本中刪除。
引數描述
返回值描述
void

插入一個 片段 並將編輯器置於片段模式。“片段模式”意味著編輯器會新增佔位符和其他游標,以便使用者可以完成或接受片段。

引數描述
snippet: SnippetString

此編輯中要插入的片段。

location?: Range | Position | readonly Range[] | readonly Position[]

插入片段的位置或範圍,預設為當前編輯器選區或選區。

options?: {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

一個將在 TextEditor 上以一次事務方式應用的複雜編輯。它包含編輯的描述,如果編輯有效(例如,沒有重疊區域,文件在此期間未被更改等),則可以將其應用於與 文字編輯器 關聯的 文件

方法

刪除特定文字區域。

引數描述
location: Range | Selection

此操作應移除的範圍。

返回值描述
void

在指定位置插入文字。您可以在 value 中使用 \r\n\n,它們將被標準化為當前 文件 的行尾。儘管可以使用 replace 進行等效的文字編輯,但 insert 會產生不同的結果選區(它會移動)。

引數描述
location: Position

應插入新文字的位置。

value: string

此操作應插入的新文字。

返回值描述
void

用新值替換特定文字區域。您可以在 value 中使用 \r\n\n,它們將被標準化為當前 文件 的行尾。

引數描述
location: Range | Position | Selection

此操作應移除的範圍。

value: string

在移除 location 後,此操作應插入的新文字。

返回值描述
void

設定行尾序列。

引數描述
endOfLine: EndOfLine

文件 的行尾。

返回值描述
void

TextEditorLineNumbersStyle

行號的渲染樣式。

列舉成員

不渲染行號。

渲染行號。

渲染相對於主游標位置的行號。

每 10 行渲染一次行號。

TextEditorOptions

表示 文字編輯器選項

屬性

此編輯器中游標的渲染樣式。獲取文字編輯器選項時,此屬性始終存在。設定文字編輯器選項時,此屬性是可選的。

insertSpaces 為 true 時,插入的空格數。

獲取文字編輯器選項時,此屬性始終是一個數字(已解析)。設定文字編輯器選項時,此屬性是可選的,可以是數字或 "tabSize"

按下 Tab 鍵時插入 n 個空格。獲取文字編輯器選項時,此屬性始終是一個布林值(已解析)。設定文字編輯器選項時,此屬性是可選的,可以是布林值或 "auto"

相對於當前行號渲染相對行號。獲取文字編輯器選項時,此屬性始終存在。設定文字編輯器選項時,此屬性是可選的。

一個 Tab 所佔的空格數。它有兩個用途:

  • Tab 字元的渲染寬度;
  • insertSpaces 為 true 且 indentSize 設定為 "tabSize" 時,插入的空格數。

獲取文字編輯器選項時,此屬性始終是一個數字(已解析)。設定文字編輯器選項時,此屬性是可選的,可以是數字或 "auto"

TextEditorOptionsChangeEvent

表示一個事件,描述了 文字編輯器選項 的更改。

屬性

文字編輯器選項 的新值。

選項已更改的 文字編輯器

TextEditorRevealType

表示文字編輯器中不同的 顯示 策略。

列舉成員

將以最少的滾動量顯示範圍。

範圍將始終在視口的中心顯示。

如果範圍在視口之外,則將其顯示在視口中心。否則,將以最少的滾動量顯示範圍。

範圍將始終在視口的頂部顯示。

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](https://vscode.com.tw/api/references/theme-color) 中定義的某個工作區顏色的引用。使用主題顏色而不是自定義顏色是首選,因為它為主題作者和使用者提供了更改顏色的可能性。

建構函式

建立一個主題顏色的引用。

引數描述
id: string

顏色的。可用顏色列於 [https://vscode.com.tw/api/references/theme-color](https://vscode.com.tw/api/references/theme-color)。

返回值描述
ThemeColor

屬性

此顏色的 ID。

ThemeIcon

命名圖示的引用。當前支援 FileFolder 和 [https://vscode.com.tw/api/references/icons-in-labels#icon-listing](https://vscode.com.tw/api/references/icons-in-labels#icon-listing) 中的 ThemeIcon ID。使用主題圖示而不是自定義圖示是首選,因為它為產品主題作者提供了更改圖示的可能性。

注意,主題圖示也可以顯示在標籤和描述中。支援主題圖示的地方會詳細說明,它們使用 $(<name>) 語法,例如 quickPick.label = "Hello World $(globe)"

靜態

代表檔案的圖示的引用。該圖示來自當前檔案圖示主題,或使用佔位符圖示。

代表資料夾的圖示的引用。該圖示來自當前檔案圖示主題,或使用佔位符圖示。

建構函式

建立一個主題圖示的引用。

引數描述
id: string

圖示的 ID。可用圖示列於 [https://vscode.com.tw/api/references/icons-in-labels#icon-listing](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](https://vscode.com.tw/api/references/icons-in-labels#icon-listing)。

TreeCheckboxChangeEvent<T>

描述樹項複選框狀態變化的事件。

屬性

被選中或取消選擇的項。

TreeDataProvider<T>

提供樹資料的提供程式。

事件

一個可選事件,用於指示元素或根已更改。這將觸發檢視遞迴地更新已更改的元素/根及其子項(如果已顯示)。要指示根已更改,請不傳遞任何引數,或傳遞 undefinednull

方法

獲取 element 的子項,或者在未傳遞 element 時獲取根的子項。

引數描述
element?: T

提供程式從中獲取子項的元素。可以是 undefined

返回值描述
ProviderResult<T[]>

element 的子項,或者在未傳遞 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>

已解析的 tree item 或可解析為 tree item 的 thenable。返回給定的 item 是可以的。當未返回結果時,將使用給定的 item

TreeDragAndDropController<T>

TreeView 提供拖放支援。

屬性

TreeDragAndDropControllerhandleDrag 方法可能會新增到樹資料傳輸中的 MIME 型別。這可以是明確定義的現有 MIME 型別,也可以是擴充套件定義的 MIME 型別。

將自動新增樹的推薦 MIME 型別(application/vnd.code.tree.<treeidlowercase>)。

DragAndDropControllerhandleDrop 方法支援的 MIME 型別。這可以是明確定義的現有 MIME 型別,也可以是擴充套件定義的 MIME 型別。

要支援從樹中進行拖放,您需要新增該樹的 MIME 型別。這包括從同一樹內部進行拖放。建議樹的 MIME 型別格式為 application/vnd.code.tree.<treeidlowercase>

使用特殊的 files MIME 型別來支援所有型別的拖放檔案 files,無論檔案的實際 MIME 型別如何。

要了解拖動項的 MIME 型別

  1. 設定您的 DragAndDropController
  2. 使用命令“Developer: Set Log Level...”將級別設定為“Debug”
  3. 開啟開發者工具,並將具有未知 MIME 型別的項拖到您的樹上。MIME 型別將記錄到開發者控制檯中

請注意,無法傳送到擴充套件的 MIME 型別將被省略。

方法

當用戶開始從此 DragAndDropController 拖動項時,將呼叫 handleDrag。擴充套件可以使用 handleDrag 將其 DataTransferItem 項新增到拖放操作中。

handleDrag 中新增的 MIME 型別在應用程式外部將不可用。

當項被拖放到同一樹中的另一個樹項時,您的 DataTransferItem 物件將被保留。使用樹的推薦 MIME 型別(application/vnd.code.tree.<treeidlowercase>)來將樹物件新增到資料傳輸中。有關如何充分利用此功能的詳細資訊,請參閱 DataTransferItem 的文件。

要新增一個可以拖入編輯器的傳輸資料項,請使用應用程式特定的 MIME 型別“text/uri-list”。“text/uri-list”的資料應為字串,其中 toString() 後的 URI 以 \r\n 分隔。要指定檔案中的游標位置,請將 URI 的片段設定為 L3,5,其中 3 是行號,5 是列號。

引數描述
source: readonly T[]

拖放操作的源項。

dataTransfer: DataTransfer

與此拖動相關的資料傳輸。

token: CancellationToken

指示拖動已取消的取消標記。

返回值描述
void | Thenable<void>

當拖放操作導致在該 DragAndDropController 所屬的樹上發生放置時呼叫。

擴充套件應為需要重新整理的任何元素觸發 onDidChangeTreeData

引數描述
target: T

發生放置的目標樹項。如果為 undefined,則目標是根。

dataTransfer: DataTransfer

拖動源的資料傳輸項。

token: CancellationToken

指示放置已取消的取消標記。

返回值描述
void | Thenable<void>

TreeItem

樹項是樹的使用者介面元素。樹項由 資料提供程式建立。

建構函式

引數描述
label: string | TreeItemLabel

描述此項的直觀字串。

collapsibleState?: TreeItemCollapsibleState
返回值描述
TreeItem

引數描述
resourceUri: Uri

表示此項的資源的 Uri

collapsibleState?: TreeItemCollapsibleState
返回值描述
TreeItem

屬性

當螢幕閱讀器與此樹項互動時使用的可訪問性資訊。通常,TreeItem 無需設定可訪問性資訊的 role;但是,在某些 TreeItem 未以樹狀顯示的情況下,設定 role 可能有意義。

樹項的 TreeItemCheckboxState。當 checkboxState 更改時,應觸發 onDidChangeTreeData

當選擇樹項時應執行的 Command

當樹項開啟編輯器中的內容時,請使用 vscode.openvscode.diff 作為命令 ID。使用這些命令可確保生成的編輯器外觀與內建樹開啟編輯器的方式一致。

樹項的上下文值。可用於在樹中貢獻特定於項的操作。例如,如果樹項具有 folder 的上下文值。當使用 menus 擴充套件點向 view/item/context 貢獻操作時,您可以在 when 表示式中為鍵 viewItem 指定上下文值,例如 viewItem == folder

"contributes": {
  "menus": {
    "view/item/context": [
      {
        "command": "extension.deleteFolder",
        "when": "viewItem == folder"
      }
    ]
  }
}

這將僅為上下文值為 folder 的項顯示操作 extension.deleteFolder

不那麼顯眼地呈現的人類可讀字串。當為 true 時,它從 resourceUri 派生;當為假值時,它不顯示。

樹項的圖示路徑或 ThemeIcon。當為假值時,如果項是可摺疊的,則分配 Folder Theme Icon,否則分配 File Theme Icon。當指定檔案或資料夾 ThemeIcon 時,圖示將從當前檔案圖示主題使用指定的 ThemeIcon(如果提供了 resourceUri)派生。

樹項的可選 ID,必須在樹中唯一。ID 用於保留樹項的選擇和展開狀態。

如果未提供 ID,則會使用樹項的標籤生成 ID。注意,當標籤更改時,ID 也會更改,並且選擇和展開狀態將無法保持穩定。

描述此項的人類可讀字串。當為假值時,它從 resourceUri 派生。

表示此項的資源的 Uri

當未提供 label 時,將用於派生 label。當 iconPath 具有 ThemeIcon 值時,將用於從當前檔案圖示主題派生圖示。

The tooltip text when you hover over this item.

TreeItemCheckboxState

樹項的複選框狀態。

列舉成員

確定一項未被選中。

確定一項已被選中。

TreeItemCollapsibleState

樹項的摺疊狀態。

列舉成員

確定一項既不能摺疊也不能展開。暗示它沒有子項。

確定專案已摺疊。

確定專案已展開。

TreeItemLabel

描述 Tree item 的標籤。

屬性

標籤中要高亮的範圍。範圍定義為一對數字,第一個是包含的起始索引,第二個是排除的結束索引。

描述 Tree item 的人類可讀字串。

TreeView<T>

表示一個樹檢視。

事件

一個事件,用於指示元素或根已被選中或取消選擇。

selection 發生變化時觸發的事件。

visibility 發生變化時觸發的事件。

當元素被摺疊時觸發的事件。

當元素被展開時觸發的事件。

屬性

為該 TreeView 顯示的徽章。要刪除徽章,請將其設定為 undefined。

在檢視標題中不太顯眼地呈現的可選人類可讀描述。將標題描述設定為 null、undefined 或空字串將從檢視中刪除描述。

一個可選的人類可讀訊息,將在檢視中呈現。將 message 設定為 null、undefined 或空字串將從檢視中刪除該訊息。

當前選中的元素。

樹檢視的標題最初來自擴充套件包 package.json。對 title 屬性的更改將在檢視標題的使用者介面中正確反映。

如果 樹檢視 可見,則為 true,否則為 false

方法

處置此物件。

引數描述
返回值描述
any

在樹檢視中顯示給定元素。如果樹檢視不可見,則顯示樹檢視並顯示元素。

預設情況下,顯示的元素將被選中。為了不選中,請將選項 select 設定為 false。為了聚焦,請將選項 focus 設定為 true。為了展開顯示的元素,請將選項 expand 設定為 true。要遞迴展開,請將 expand 設定為要展開的級別數。

  • 注意:您最多隻能展開 3 個級別。
  • 注意:TreeView 註冊的 TreeDataProvider 必須實現 getParent 方法才能訪問此 API。
引數描述
element: T
options?: {expand: number | boolean, focus: boolean, select: boolean}
返回值描述
Thenable<void>

TreeViewExpansionEvent<T>

樹檢視 中的元素被展開或摺疊時觸發的事件。

屬性

展開或摺疊的元素。

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 的可能種類。

列舉成員

從桌面應用程式訪問擴充套件。

從 Web 瀏覽器訪問擴充套件。

Uri

一個通用資源識別符號,表示磁碟上的檔案或其他資源,例如未命名的資源。

靜態

從檔案系統路徑建立 URI。scheme 將是 file

Uri.parseUri.file 之間的區別在於,後者將引數視為路徑,而不是字串化的 URI。例如,Uri.file(path)等於 Uri.parse('file://' + path),因為路徑可能包含被解釋為特殊字元(#_ 和 ?)的字元。請參閱以下示例。

const good = URI.file('/coding/c#/project1');
good.scheme === 'file';
good.path === '/coding/c#/project1';
good.fragment === '';

const bad = URI.parse('file://' + '/coding/c#/project1');
bad.scheme === 'file';
bad.path === '/coding/c'; // path is now broken
bad.fragment === '/project1';
引數描述
path: string

檔案系統或 UNC 路徑。

返回值描述
Uri

新的 Uri 例項。

從其元件部分建立 URI。

另請參閱 Uri.toString

引數描述
components: {authority: string, fragment: string, path: string, query: string, scheme: string}

URI 的元件部分。

返回值描述
Uri

新的 Uri 例項。

建立一個新的 URI,其路徑是連線基 URI 的路徑與提供的路徑段的結果。

  • 注意 1:joinPath 僅影響路徑元件,所有其他元件(scheme、authority、query 和 fragment)將保持不變。
  • 注意 2:基 URI 必須具有路徑;否則將引發錯誤。

路徑段按以下方式進行規範化。

  • 路徑分隔符(/\)的序列將被替換為單個分隔符。
  • 對於 Windows 上的 file-uri,反斜槓(``)被視為路徑分隔符。
  • .. 段表示父段,. 表示當前段。
  • 路徑有一個根,它始終保留,例如,在 Windows 上,驅動器號是根,因此以下表達式為真:joinPath(Uri.file('file:///c:/root'), '../../other').fsPath === 'c:/other'
引數描述
base: Uri

一個 URI。必須有一個路徑。

...pathSegments: string[]

一個或多個路徑片段。

返回值描述
Uri

一個新 URI,其路徑已與給定片段連線。

從字串建立 URI,例如 http://www.example.com/some/pathfile:///usr/homescheme:with/path

注意,在一段時間內,沒有 scheme 的 URI 是被接受的。這是不正確的,因為所有 URI 都應該有一個 scheme。為了避免現有程式碼中斷,添加了可選的 strict 引數。我們強烈建議使用它,例如 Uri.parse('my:uri', true)

另請參閱 Uri.toString

引數描述
value: string

URI 的字串值。

strict?: boolean

value 為空或無法解析 scheme 時,丟擲錯誤。

返回值描述
Uri

新的 Uri 例項。

建構函式

使用 fileparse 工廠函式建立新的 Uri 物件。

引數描述
scheme: string
authority: string
path: string
query: string
fragment: string
返回值描述
Uri

屬性

Authority 是 http://www.example.com/some/path?query#fragment 中的 www.example.com 部分。位於第一個雙斜槓和下一個斜槓之間的部分。

Fragment 是 http://www.example.com/some/path?query#fragment 中的 fragment 部分。

表示此 URI 對應的檔案系統路徑的字串。

將處理 UNC 路徑並將 Windows 驅動器號規範化為小寫。還將使用特定於平臺的路徑分隔符。

  • 驗證路徑是否包含無效字元和語義。
  • 檢查此 URI 的 scheme。
  • 生成的字串不得用於顯示目的,而應用於磁碟操作,例如 readFile 等。

path 屬性的區別在於使用了特定於平臺的路徑分隔符以及對 UNC 路徑的處理。以下示例概述了區別。

const u = URI.parse('file://server/c$/folder/file.txt');
u.authority === 'server';
u.path === '/c$/folder/file.txt';
u.fsPath === '\\serverc$\folder\file.txt';

Path 是 http://www.example.com/some/path?query#fragment 中的 /some/path 部分。

Query 是 http://www.example.com/some/path?query#fragment 中的 query 部分。

Scheme 是 http://www.example.com/some/path?query#fragment 中的 http 部分。第一個冒號之前的部分。

方法

返回此 Uri 的 JSON 表示。

引數描述
返回值描述
any

一個物件。

返回此 Uri 的字串表示。URI 的表示和規範化取決於 scheme。

  • 生成的字串可以安全地用於 Uri.parse
  • 生成的字串不得用於顯示目的。

注意,實現將進行激進的編碼,這通常會導致意外但並非不正確的結果。例如,冒號將被編碼為 %3A,這對於檔案 URI 來說可能出乎意料。同樣,&= 也將被編碼,這對於 HTTP URI 來說也可能出乎意料。出於穩定性原因,這一點無法更改。如果您遇到過於激進的編碼問題,應使用 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 處理程式負責處理系統範圍的 URI

另請參閱 window.registerUriHandler

方法

處理提供的系統範圍的 Uri

另請參閱 window.registerUriHandler

引數描述
uri: Uri
返回值描述
ProviderResult<void>

ViewBadge

為檢視顯示值的徽章。

屬性

顯示在徽章工具提示中的標籤。

顯示在徽章中的值。

ViewColumn

表示編輯器在視窗中的位置。編輯器可以排列成網格,每個列按其出現順序表示網格中的一個編輯器位置。

列舉成員

一個象徵性的編輯器列,表示活動列旁邊的列。此值可用於開啟編輯器,但編輯器的解析後的 viewColumn 值將始終為 OneTwoThree... 或 undefined,但永遠不會是 Beside

一個象徵性的編輯器列,表示當前活動的列。此值可用於開啟編輯器,但編輯器的解析後的 viewColumn 值將始終為 OneTwoThree... 或 undefined,但永遠不會是 Active

第一個編輯器列。

第二個編輯器列。

第三個編輯器列。

第四個編輯器列。

第五個編輯器列。

第六個編輯器列。

第七個編輯器列。

第八個編輯器列。

第九個編輯器列。

Webview

顯示 HTML 內容,類似於 iframe。

事件

當 Webview 內容釋出訊息時觸發。

Webview 內容可以向擴充套件釋出字串或 JSON 可序列化物件。它們不能釋出 BlobFileImageData 和其他 DOM 特定的物件,因為接收訊息的擴充套件不在瀏覽器環境中執行。

屬性

Webview 資源的內容安全策略源。

這是內容安全策略規則中應使用的 origin。

`img-src https: ${webview.cspSource} ...;`;

Webview 的 HTML 內容。

這應該是一個完整、有效的 HTML 文件。更改此屬性將導致 Webview 重新載入。

Webviews 與普通擴充套件程序是隔離的,因此所有與 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 中。

請記住,即使 Webviews 是隔離的,它們仍然允許執行指令碼和載入任意內容,因此擴充套件在處理 Webviews 時必須遵循所有標準的 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 為 true)才會傳遞訊息。

引數描述
message: any

訊息體。這必須是字串或其他 JSON 可序列化物件。

對於較舊的 VS Code 版本,如果 `message` 中包含 `ArrayBuffer`,它將無法正確序列化,並且 webview 將無法接收。同樣,任何 TypedArrays(例如 `Uint8Array`)的序列化效率會非常低,並且在 webview 中也無法重新建立為 typed array。

但是,如果您的擴充套件在 `package.json` 的 `engines` 欄位中定位的是 VS Code 1.57+,那麼 `message` 中出現的任何 `ArrayBuffer` 值都將更有效地傳輸到 webview,並在 webview 中正確地重新建立。

返回值描述
Thenable<boolean>

一個 Promise,當訊息已釋出到 webview 或因訊息不可送達而被丟棄時解析。

如果訊息已釋出到 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 內容,我們建議您指定埠對映,即使 `webviewPort` 和 `extensionHostPort` 埠相同。

注意:埠對映僅適用於 `http` 或 `https` URL。WebSocket URL(例如 `ws://:3000`)不能對映到另一個埠。

WebviewPanel

包含 webview 的面板。

事件

當面板的檢視狀態改變時觸發。

面板被釋放時觸發。

這可能是因為使用者關閉了面板,或者因為對它呼叫了 `.dispose()`。

嘗試在面板被釋放後使用它將引發異常。

屬性

面板是否處於活動狀態(使用者聚焦)。

面板的圖示,顯示在 UI 中。

webview 面板的內容設定。

面板的標題,顯示在 UI 中。

面板的編輯器位置。僅當 webview 位於編輯器檢視列之一時,才會設定此屬性。

標識 webview 面板的型別,例如 `'markdown.preview'`。

面板是否可見。

面板所屬的 Webview

方法

釋放 webview 面板。

這會關閉正在顯示的面板,並釋放 webview 所擁有的資源。當用戶關閉 webview 面板時,webview 面板也會被釋放。這兩種情況都會觸發 `onDispose` 事件。

引數描述
返回值描述
any

在指定列中顯示 webview 面板。

webview 面板一次只能顯示在一個列中。如果它已經顯示,此方法將其移動到新列。

引數描述
viewColumn?: ViewColumn

要顯示面板的檢視列。如果未定義,則顯示在當前 `viewColumn` 中。

preserveFocus?: boolean

當 `true` 時,webview 將不會獲得焦點。

返回值描述
void

WebviewPanelOnDidChangeViewStateEvent

當 webview 面板的檢視狀態改變時觸發的事件。

屬性

檢視狀態已更改的 webview 面板。

WebviewPanelOptions

webview 面板的內容設定。

屬性

控制是否在面板中啟用查詢小部件。

預設為 false

控制即使面板不再可見,是否也保留 webview 面板的內容(iframe)。

通常,webview 面板的 html 內容在面板變為可見時建立,在隱藏時銷燬。具有複雜狀態或 UI 的擴充套件可以設定 `retainContextWhenHidden`,以使編輯器即使在 webview 移動到後臺選項卡時也保留 webview 上下文。當使用 `retainContextWhenHidden` 的 webview 被隱藏時,其指令碼和其他動態內容將被暫停。當面板再次可見時,上下文將自動恢復到原始狀態。即使啟用了 `retainContextWhenHidden`,您也無法向隱藏的 webview 傳送訊息。

`retainContextWhenHidden` 具有很高的記憶體開銷,僅當您的面板上下文無法快速儲存和恢復時才應使用。

WebviewPanelSerializer<T>

在 VS Code 關閉時恢復已持久化的 webview 面板。

有兩種型別的 webview 持久化:

  • 會話內持久化。
  • 跨會話持久化(跨編輯器重啟)。

僅在第二種情況(跨會話持久化 webview)下才需要 `WebviewPanelSerializer`。

會話內持久化允許 webview 在隱藏時儲存其狀態,並在再次可見時從該狀態恢復其內容。它完全由 webview 內容本身驅動。要儲存持久化狀態,請呼叫 `acquireVsCodeApi().setState()` 並傳入任何可 JSON 序列化的物件。要再次恢復狀態,請呼叫 `getState()`。

// Within the webview
const vscode = acquireVsCodeApi();

// Get existing state
const oldState = vscode.getState() || { value: 0 };

// Update state
setState({ value: oldState.value + 1 });

`WebviewPanelSerializer` 將此持久化擴充套件到編輯器重啟。當編輯器關閉時,它將儲存所有具有序列化器的 webview 的 `setState` 狀態。當 webview 在重啟後首次可見時,此狀態將傳遞給 `deserializeWebviewPanel`。然後,擴充套件可以從該狀態恢復舊的 `WebviewPanel`。

方法

從其序列化的 `state` 恢復 webview 面板。

當序列化的 webview 首次變得可見時呼叫。

引數描述
webviewPanel: WebviewPanel

要恢復的 webview 面板。序列化器應接管此面板的所有權。序列化器必須恢復 webview 的 `.html` 並掛載所有 webview 事件。

state: T

來自 webview 內容的持久化狀態。

返回值描述
Thenable<void>

一個 Thenable,表示 webview 已完全恢復。

WebviewPortMapping

定義 webview 中 localhost 使用的埠對映。

屬性

目標埠。`webviewPort` 將被解析到此埠。

在 webview 中重新對映的 localhost 埠。

WebviewView

基於 webview 的檢視。

事件

當檢視的可見性發生變化時觸發的事件。

觸發可見性變化的動作:

  • 檢視被摺疊或展開。
  • 使用者切換到側邊欄或面板中的另一個頂級檢視組。

注意,透過上下文選單隱藏檢視會將其釋放並觸發 `onDidDispose`。

檢視被釋放時觸發的事件。

檢視在使用者顯式隱藏時(當用戶右鍵單擊檢視並取消選中 webview 檢視時)被釋放。

嘗試在檢視被釋放後使用它將引發異常。

屬性

為該 webview 檢視顯示的徽章。要刪除徽章,請設定為 undefined。

人類可讀的字串,在標題中顯示得不那麼突出。

在 UI 中顯示的檢視標題。

檢視標題最初來自擴充套件 `package.json` 的貢獻。

標識 webview 檢視的型別,例如 `'hexEditor.dataView'`。

跟蹤 webview 當前是否可見。

當檢視在螢幕上且展開時,它們是可見的。

檢視的底層 webview。

方法

在 UI 中顯示檢視。

如果檢視已摺疊,這將展開它。

引數描述
preserveFocus?: boolean

當 `true` 時,檢視不會獲得焦點。

返回值描述
void

WebviewViewProvider

用於建立 `WebviewView` 元素的提供程式。

方法

解析 webview 檢視。

`resolveWebviewView` 在檢視首次可見時呼叫。這可能發生在檢視首次載入時,或者當用戶隱藏然後再次顯示檢視時。

引數描述
webviewView: WebviewView

要恢復的 webview 檢視。提供程式應接管此檢視的所有權。提供程式必須設定 webview 的 `.html` 並掛載它感興趣的所有 webview 事件。

context: WebviewViewResolveContext<unknown>

有關正在解析的檢視的其他元資料。

token: CancellationToken

指示正在提供的檢視不再需要的取消令牌。

返回值描述
void | Thenable<void>

可選的 thenable,指示檢視已完全解析。

WebviewViewResolveContext<T>

正在解析的 webview 檢視的其他資訊。

屬性

來自 webview 內容的持久化狀態。

為了節省資源,編輯器通常會釋放不可見的 webview 文件(iframe 內容)。例如,當用戶摺疊一個檢視或切換到側邊欄中的另一個頂級活動時,`WebviewView` 本身會被保留,但 webview 的底層文件會被釋放。當檢視再次可見時,它會被重新建立。

您可以設定 `WebviewOptions` 中的 `retainContextWhenHidden` 來阻止此行為。但是,這會增加資源使用量,應儘可能避免。相反,您可以使用持久化狀態來儲存 webview 的狀態,以便能夠快速按需重新建立。

要儲存持久化狀態,請在 webview 中呼叫 `acquireVsCodeApi().setState()` 並傳入任何可 JSON 序列化的物件。要再次恢復狀態,請呼叫 `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 };

注意:工作區和工作區資料夾配置包含 `launch` 和 `tasks` 設定。它們的基名將是節識別符號的一部分。以下程式碼片段展示瞭如何從 `launch.json` 中檢索所有配置:

// launch.json configuration
const config = workspace.getConfiguration(
  'launch',
  vscode.workspace.workspaceFolders[0].uri
);

// retrieve values
const values = config.get('configurations');

有關更多資訊,請參閱 設定

方法

從此配置返回一個值。

引數描述
section: string

配置名稱,支援點分隔的名稱。

返回值描述
T

`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`,則更新 工作區設定。- 如果為 `undefined` 或 `null`,則在配置是資源相關的時更新到 工作區資料夾設定,否則更新到 工作區設定

overrideInLanguage?: boolean

是否在請求的語言 ID 的範圍內更新值。- 如果為 `true`,則在請求的語言 ID 下更新值。- 如果為 `undefined`,僅當配置已為該語言定義時,才在請求的語言 ID 下更新值。

返回值描述
Thenable<void>

WorkspaceEdit

工作區編輯是多個資源和文件的文字和檔案更改的集合。

使用 `applyEdit` 函式來應用工作區編輯。

建構函式

引數描述
返回值描述
WorkspaceEdit

屬性

文字或資源更改受影響的資源數量。

方法

建立常規檔案。

引數描述
uri: Uri

新檔案的 URI。

options?: {contents: Uint8Array | DataTransferFile, ignoreIfExists: boolean, overwrite: boolean}

定義是否應覆蓋現有檔案或忽略它。當 `overwrite` 和 `ignoreIfExists` 都設定時,`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,然後提供具有部分 location 物件的符號,而無需定義 range。編輯器隨後將僅為選定的符號呼叫 resolveWorkspaceSymbol,例如在開啟工作區符號時。

引數描述
query: string

一個查詢字串,可以是空字串,在這種情況下應返回所有符號。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<T[]>

文件高亮陣列或解析為這些高亮的 thenable。可以透過返回 undefinednull 或空陣列來表示沒有結果。

給定一個符號,填充其 location。每當在 UI 中選擇一個符號時,都會呼叫此方法。提供程式可以實現此方法,並從 provideWorkspaceSymbols 返回不完整的符號,這通常有助於提高效能。

引數描述
symbol: T

要解析的符號。保證是一個物件例項,該物件是從早期呼叫 provideWorkspaceSymbols 返回的。

token: CancellationToken

取消令牌。

返回值描述
ProviderResult<T>

解析後的符號或解析為該符號的 thenable。如果未返回結果,則使用提供的 symbol

API 模式

這些是我們將在 VS Code API 中使用的一些常見模式。

Promises (承諾)

VS Code API 使用承諾來表示非同步操作。從擴充套件中,可以返回**任何**型別的承諾,例如 ES6、WinJS、A+ 等。

API 中獨立於特定承諾庫的表示是透過 Thenable 型別實現的。Thenable 代表了共同點,即 then 方法。

在大多數情況下,使用承諾是可選的,當 VS Code 呼叫擴充套件時,它可以處理*結果型別*以及*結果型別*的 Thenable。當使用承諾是可選的時,API 透過返回 or 型別來指示這一點。

provideNumber(): number | Thenable<number>

Cancellation Tokens (取消令牌)

操作通常在易失性狀態下啟動,而狀態會在操作完成之前發生變化。例如,計算 IntelliSense 會啟動,而使用者繼續鍵入,使得該操作的結果變得過時。

暴露給這種行為的 API 將接收一個 CancellationToken,您可以透過它來檢查取消(isCancellationRequested)或在發生取消時獲得通知(onCancellationRequested)。取消令牌通常是函式呼叫的最後一個引數,並且是可選的。

Disposables (可處置項)

VS Code API 使用dispose 模式來處理從 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)時觸發的事件。

Strict null (嚴格的 null 檢查)

VS Code API 在適當的地方使用 undefinednull TypeScript 型別來支援嚴格的 null 檢查

© . This site is unofficial and not affiliated with Microsoft.