VS Code API
VS Code API 是一套您可以在 Visual Studio Code 擴充套件中呼叫的 JavaScript API。本頁列出了所有提供給擴充套件作者的 VS Code API。
API 名稱空間和類
此列表來自 VS Code 儲存庫中的 vscode.d.ts 檔案編譯而成。
認證
事件
onDidChangeSessions: Event<AuthenticationSessionsChangeEvent>
當身份驗證提供程式的身份驗證會話被新增、刪除或更改時觸發的 Event。
函式
getAccounts(providerId: string): Thenable<readonly AuthenticationSessionAccountInformation[]>
獲取使用者登入的指定提供程式的所有賬戶。與 getSession 配對使用,以便獲取特定賬戶的身份驗證會話。
目前,編輯器內建的擴充套件貢獻了兩個身份驗證提供程式,分別實現了 GitHub 和 Microsoft 身份驗證:它們的 providerId 分別是 'github' 和 'microsoft'。
注意:獲取賬戶並不意味著您的擴充套件可以訪問該賬戶或其身份驗證會話。您可以透過呼叫 getSession 來驗證對賬戶的訪問許可權。
| 引數 | 描述 |
|---|---|
| providerId: string | 要使用的提供程式的 ID |
| 返回值 | 描述 |
| Thenable<readonly AuthenticationSessionAccountInformation[]> | 一個 thenable,它解析為只讀的身份驗證賬戶陣列。 |
getSession(providerId: string, scopeListOrRequest: readonly string[] | AuthenticationWwwAuthenticateRequest, options: AuthenticationGetSessionOptions & {createIfNone: true | AuthenticationGetSessionPresentationOptions}): Thenable<AuthenticationSession>
獲取匹配所需範圍或滿足 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,它解析為身份驗證會話 |
getSession(providerId: string, scopeListOrRequest: readonly string[] | AuthenticationWwwAuthenticateRequest, options: AuthenticationGetSessionOptions & {forceNewSession: true | AuthenticationGetSessionPresentationOptions}): Thenable<AuthenticationSession>
獲取匹配所需範圍或請求的身份驗證會話。如果未註冊具有 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,它解析為身份驗證會話 |
getSession(providerId: string, scopeListOrRequest: readonly string[] | AuthenticationWwwAuthenticateRequest, options?: AuthenticationGetSessionOptions): Thenable<AuthenticationSession | undefined>
獲取匹配所需範圍或請求的身份驗證會話。如果未註冊具有 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 |
registerAuthenticationProvider(id: string, label: string, provider: AuthenticationProvider, options?: AuthenticationProviderOptions): Disposable
註冊一個身份驗證提供程式。
每個 ID 只能有一個提供程式,並且當另一個提供程式已使用某個 ID 時會引發錯誤。ID 是區分大小寫的。
| 引數 | 描述 |
|---|---|
| id: string | 提供程式的唯一識別符號。 |
| label: string | 提供程式的易讀名稱。 |
| provider: AuthenticationProvider | 身份驗證提供程式。 |
| options?: AuthenticationProviderOptions | 提供程式的附加選項。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
chat
用於聊天功能的名稱空間。使用者透過向聊天檢視中的聊天參與者傳送訊息來與他們互動。聊天參與者可以透過 ChatResponseStream 以 Markdown 或其他型別的內容進行響應。
函式
createChatParticipant(id: string, handler: ChatRequestHandler): ChatParticipant
建立一個新的 聊天參與者 例項。
| 引數 | 描述 |
|---|---|
| id: string | 參與者的唯一識別符號。 |
| handler: ChatRequestHandler | 參與者的請求處理程式。 |
| 返回值 | 描述 |
| ChatParticipant | 一個新的聊天參與者 |
命令
用於處理命令的名稱空間。簡而言之,命令是一個具有唯一識別符號的函式。該函式有時也稱為命令處理程式。
命令可以使用 registerCommand 和 registerTextEditorCommand 函式新增到編輯器中。命令可以手動執行,也可以透過 UI 手勢執行。這些是:
- 命令面板 - 使用
package.json中的commands部分,使命令顯示在 命令面板 中。 - 鍵盤繫結 - 使用
package.json中的keybindings部分,為您的擴充套件啟用 鍵盤繫結。
來自其他擴充套件和編輯器本身的命令對擴充套件是可訪問的。但是,在呼叫編輯器命令時,並非所有引數型別都受支援。
這是一個註冊命令處理程式併為該命令在命令面板中新增條目的示例。首先使用識別符號 extension.sayHello 註冊命令處理程式。
commands.registerCommand('extension.sayHello', () => {
window.showInformationMessage('Hello World!');
});
其次,將命令識別符號繫結到一個將在命令面板中顯示的標題(package.json)。
{
"contributes": {
"commands": [
{
"command": "extension.sayHello",
"title": "Hello World"
}
]
}
}
函式
executeCommand<T>(command: string, ...rest: any[]): Thenable<T>
執行由給定命令識別符號表示的命令。
| 引數 | 描述 |
|---|---|
| command: string | 要執行的命令的識別符號。 |
| ...rest: any[] | 傳遞給命令函式的引數。 |
| 返回值 | 描述 |
| Thenable<T> | 一個 thenable,它解析為給定命令的返回值。如果命令處理程式函式不返回任何內容,則返回 |
getCommands(filterInternal?: boolean): Thenable<string[]>
檢索所有可用命令的列表。以下劃線開頭的命令被視為內部命令。
| 引數 | 描述 |
|---|---|
| filterInternal?: boolean | 設定為 |
| 返回值 | 描述 |
| Thenable<string[]> | 一個 thenable,它解析為命令 ID 列表。 |
registerCommand(command: string, callback: (args: any[]) => any, thisArg?: any): Disposable
註冊一個可以透過鍵盤快捷鍵、選單項、操作或直接呼叫的命令。
使用現有的命令識別符號重複註冊命令將導致錯誤。
| 引數 | 描述 |
|---|---|
| command: string | 命令的唯一識別符號。 |
| callback: (args: any[]) => any | 命令處理函式。 |
| thisArg?: any | 呼叫處理函式時使用的 |
| 返回值 | 描述 |
| Disposable | Disposable,在被釋放時登出此命令。 |
registerTextEditorCommand(command: string, callback: (textEditor: TextEditor, edit: TextEditorEdit, args: any[]) => void, thisArg?: any): Disposable
註冊一個可以透過鍵盤快捷鍵、選單項、操作或直接呼叫的文字編輯器命令。
文字編輯器命令與普通 命令 不同,它們僅在呼叫命令時存在活動編輯器時執行。此外,編輯器命令的處理程式可以訪問活動編輯器和一個 edit-builder。請注意,edit-builder 僅在回撥執行期間有效。
| 引數 | 描述 |
|---|---|
| command: string | 命令的唯一識別符號。 |
| callback: (textEditor: TextEditor, edit: TextEditorEdit, args: any[]) => void | |
| thisArg?: any | 呼叫處理函式時使用的 |
| 返回值 | 描述 |
| Disposable | Disposable,在被釋放時登出此命令。 |
comments
函式
createCommentController(id: string, label: string): CommentController
建立一個新的 評論控制器 例項。
| 引數 | 描述 |
|---|---|
| id: string | 評論控制器的 |
| label: string | 評論控制器的可讀字串。 |
| 返回值 | 描述 |
| CommentController | 評論控制器 的例項。 |
debug
用於除錯功能的名稱空間。
變數
activeDebugConsole: DebugConsole
當前活動的 除錯控制檯。如果沒有活動除錯會話,傳送到除錯控制檯的輸出將不會顯示。
activeDebugSession: DebugSession | undefined
當前活動的 除錯會話 或 undefined。活動除錯會話是由除錯操作浮動視窗表示的會話,或者當前顯示在除錯操作浮動視窗下拉選單中的會話。如果沒有活動除錯會話,則值為 undefined。
activeStackItem: DebugThread | DebugStackFrame | undefined
當前聚焦的執行緒或堆疊幀,或者 undefined(如果沒有聚焦執行緒或堆疊)。只要有活動的除錯會話,執行緒就可以被聚焦;而堆疊幀只有在會話暫停並且已檢索到呼叫堆疊時才能被聚焦。
breakpoints: readonly Breakpoint[]
斷點列表。
事件
onDidChangeActiveDebugSession: Event<DebugSession | undefined>
onDidChangeActiveStackItem: Event<DebugThread | DebugStackFrame | undefined>
當 debug.activeStackItem 更改時觸發的事件。
onDidChangeBreakpoints: Event<BreakpointsChangeEvent>
當斷點集被新增、刪除或更改時發出的 Event。
onDidReceiveDebugSessionCustomEvent: Event<DebugSessionCustomEvent>
onDidStartDebugSession: Event<DebugSession>
onDidTerminateDebugSession: Event<DebugSession>
函式
addBreakpoints(breakpoints: readonly Breakpoint[]): void
新增斷點。
| 引數 | 描述 |
|---|---|
| breakpoints: readonly Breakpoint[] | 要新增的斷點。 |
| 返回值 | 描述 |
| void |
asDebugSourceUri(source: DebugProtocolSource, session?: DebugSession): Uri
將透過除錯介面卡協議接收到的“Source”描述符物件轉換為可用於載入其內容的 URI。如果源描述符基於路徑,則返回檔案 URI。如果源描述符使用引用號,則會構造一個特定的除錯 URI(方案為“debug”),該 URI 需要一個相應的 ContentProvider 和一個正在執行的除錯會話。
如果“Source”描述符資訊不足以建立 URI,則會引發錯誤。
| 引數 | 描述 |
|---|---|
| source: DebugProtocolSource | 符合除錯介面卡協議中定義的 Source 型別的物件。 |
| session?: DebugSession | 一個可選的除錯會話,當源描述符使用引用號從活動除錯會話載入內容時使用。 |
| 返回值 | 描述 |
| Uri | 可用於載入源內容的 URI。 |
registerDebugAdapterDescriptorFactory(debugType: string, factory: DebugAdapterDescriptorFactory): Disposable
為特定除錯型別註冊 除錯介面卡描述符工廠。擴充套件只能為其定義的除錯型別註冊 DebugAdapterDescriptorFactory。否則會引發錯誤。為同一除錯型別註冊多個 DebugAdapterDescriptorFactory 會導致錯誤。
| 引數 | 描述 |
|---|---|
| debugType: string | 註冊工廠的除錯型別。 |
| factory: DebugAdapterDescriptorFactory | 要註冊的 除錯介面卡描述符工廠。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此工廠。 |
registerDebugAdapterTrackerFactory(debugType: string, factory: DebugAdapterTrackerFactory): Disposable
為給定的除錯型別註冊除錯介面卡跟蹤器工廠。
| 引數 | 描述 |
|---|---|
| debugType: string | 註冊工廠的除錯型別,或 '*' 用於匹配所有除錯型別。 |
| factory: DebugAdapterTrackerFactory | 要註冊的 除錯介面卡跟蹤器工廠。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此工廠。 |
registerDebugConfigurationProvider(debugType: string, provider: DebugConfigurationProvider, triggerKind?: DebugConfigurationProviderTriggerKind): Disposable
為特定除錯型別註冊 除錯配置提供程式。可選的 triggerKind 可用於指定何時觸發提供程式的 provideDebugConfigurations 方法。目前有兩種觸發方式:使用 Initial(或未提供觸發引數)值時,provideDebugConfigurations 方法用於提供要複製到新建立的 launch.json 的初始除錯配置。使用 Dynamic 觸發方式時,provideDebugConfigurations 方法用於動態確定要呈現給使用者的除錯配置(除了 launch.json 中的靜態配置)。請注意,triggerKind 引數僅適用於 provideDebugConfigurations 方法:因此 resolveDebugConfiguration 方法不受任何影響。為不同觸發方式註冊具有 resolve 方法的單個提供程式會導致相同的 resolve 方法被呼叫多次。可以為同一型別註冊多個提供程式。
| 引數 | 描述 |
|---|---|
| debugType: string | 註冊提供程式的除錯型別。 |
| provider: DebugConfigurationProvider | 要註冊的 除錯配置提供程式。 |
| triggerKind?: DebugConfigurationProviderTriggerKind | 註冊了提供程式的 'provideDebugConfiguration' 方法的 觸發器。如果缺少 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
removeBreakpoints(breakpoints: readonly Breakpoint[]): void
刪除斷點。
| 引數 | 描述 |
|---|---|
| breakpoints: readonly Breakpoint[] | 要刪除的斷點。 |
| 返回值 | 描述 |
| void |
startDebugging(folder: WorkspaceFolder, nameOrConfiguration: string | DebugConfiguration, parentSessionOrOptions?: DebugSession | DebugSessionOptions): Thenable<boolean>
透過使用命名啟動或命名複合配置,或直接傳遞 DebugConfiguration 來啟動除錯。命名配置在給定資料夾中的 '.vscode/launch.json' 中查詢。在除錯開始之前,所有未儲存的檔案都會被儲存,並且啟動配置會更新到最新。配置中使用的資料夾特定變數(例如 '${workspaceFolder}')會根據給定的資料夾進行解析。
| 引數 | 描述 |
|---|---|
| folder: WorkspaceFolder | 用於查詢命名配置和解析變數的 工作區資料夾,或用於非資料夾設定的 |
| nameOrConfiguration: string | DebugConfiguration | 除錯配置或複合配置的名稱,或者一個 DebugConfiguration 物件。 |
| parentSessionOrOptions?: DebugSession | DebugSessionOptions | 除錯會話選項。當傳遞父 除錯會話 時,假定選項僅包含此父會話。 |
| 返回值 | 描述 |
| Thenable<boolean> | 一個 thenable,在除錯成功啟動後解析。 |
stopDebugging(session?: DebugSession): Thenable<void>
停止給定的除錯會話,或在省略 session 時停止所有除錯會話。
| 引數 | 描述 |
|---|---|
| session?: DebugSession | 要停止的 除錯會話;如果省略,則停止所有會話。 |
| 返回值 | 描述 |
| Thenable<void> | 一個 thenable,在會話停止後解析。 |
env
描述編輯器執行環境的名稱空間。
變數
應用程式的託管位置。在桌面版上是 'desktop'。在 Web 版上是指定的嵌入器,例如 'github.dev'、'codespaces' 或 'web'(如果嵌入器未提供該資訊)。
編輯器的應用程式名稱,例如 'VS Code'。
編輯器執行的應用程式根資料夾。
請注意,當在沒有應用程式根資料夾表示的環境中執行時,該值為空字串。
clipboard: Clipboard
系統剪貼簿。
指示這是應用程式的全新安裝。如果在安裝後的第一天內為 true,否則為 false。
指示使用者是否啟用了遙測。可以觀察此值來確定擴充套件是否應傳送遙測資料。
表示首選使用者語言,例如 de-CH、fr 或 en-US。
logLevel: LogLevel
編輯器的當前日誌級別。
計算機的唯一識別符號。
remoteName: string | undefined
遠端資源的名稱。由擴充套件定義,常見的示例是 Linux 的 Windows 子系統(Windows Subsystem for Linux)的 wsl,或者使用安全外殼(secure shell)的遠端資源的 ssh-remote。
請注意,當沒有遠端擴充套件主機時,該值為 undefined。但如果存在遠端擴充套件主機,則在所有擴充套件主機(本地和遠端)中該值都是已定義的。請使用 Extension.extensionKind 來了解特定擴充套件是否在遠端執行。
當前會話的唯一識別符號。每次啟動編輯器時都會更改。
檢測到的擴充套件主機預設 shell,它會被擴充套件主機平臺的 terminal.integrated.defaultProfile 設定覆蓋。請注意,在不支援 shell 的環境中,此值為空字串。
uiKind: UIKind
UI kind 屬性指示從哪個 UI 訪問擴充套件。例如,擴充套件可以從桌面應用程式或 Web 瀏覽器訪問。
編輯器在作業系統中註冊的自定義 URI 方案。
事件
onDidChangeLogLevel: Event<LogLevel>
當編輯器的日誌級別發生變化時觸發的 事件。
onDidChangeShell: Event<string>
預設 shell 更改時觸發的 事件。該事件會傳遞新的 shell 路徑。
onDidChangeTelemetryEnabled: Event<boolean>
當用戶啟用或停用遙測時觸發的 事件。如果使用者啟用了遙測,則為 true;如果使用者停用了遙測,則為 false。
函式
asExternalUri(target: Uri): Thenable<Uri>
將 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 時,編輯器將開啟工作區。
createTelemetryLogger(sender: TelemetrySender, options?: TelemetryLoggerOptions): TelemetryLogger
建立一個新的 遙測記錄器。
| 引數 | 描述 |
|---|---|
| sender: TelemetrySender | 遙測記錄器使用的遙測傳送器。 |
| options?: TelemetryLoggerOptions | 遙測記錄器的選項。 |
| 返回值 | 描述 |
| TelemetryLogger | 一個新的遙測記錄器 |
openExternal(target: Uri): Thenable<boolean>
使用預設應用程式在外部開啟連結。根據所使用的方案,這可以是
- 瀏覽器(
http:,https:) - 郵件客戶端(
mailto:) - VSCode 本身(來自
vscode.env.uriScheme的vscode:)
請注意,showTextDocument 是在編輯器內部開啟文字文件的正確方法,而不是此函式。
| 引數 | 描述 |
|---|---|
| target: Uri | 要開啟的 URI。 |
| 返回值 | 描述 |
| Thenable<boolean> | 指示開啟是否成功的 Promise。 |
extensions
用於處理已安裝擴充套件的名稱空間。擴充套件由 Extension 介面表示,該介面支援對擴充套件的反思。
擴充套件作者可以透過從 activate 呼叫返回其 API 公共介面來向其他擴充套件提供 API。
export function activate(context: vscode.ExtensionContext) {
let api = {
sum(a, b) {
return a + b;
},
mul(a, b) {
return a * b;
}
};
// 'export' public api-surface
return api;
}
依賴於另一個擴充套件的 API 時,請在 package.json 中新增 extensionDependencies 條目,並使用 getExtension 函式和 exports 屬性,如下所示
let mathExt = extensions.getExtension('genius.math');
let importedApi = mathExt.exports;
console.log(importedApi.mul(42, 1));
變數
all: readonly Extension<any>[]
當前系統已知的 au 擴充套件。
事件
onDidChange: Event<void>
當 extensions.all 發生變化時觸發的事件。這可能發生在擴充套件安裝、解除安裝、啟用或停用時。
函式
getExtension<T>(extensionId: string): Extension<T> | undefined
透過以下格式的完整識別符號獲取擴充套件:publisher.name。
| 引數 | 描述 |
|---|---|
| extensionId: string | 擴充套件識別符號。 |
| 返回值 | 描述 |
| Extension<T> | undefined | 擴充套件或 |
l10n
擴充套件 API 中與本地化相關的功能的名稱空間。要正確使用此功能,必須在擴充套件清單中定義 l10n,並且擁有 bundle.l10n。
注意:內建擴充套件(例如 Git、TypeScript Language Features、GitHub Authentication)不包含在 l10n 屬性要求中。換句話說,它們不需要在擴充套件清單中指定 l10n,因為它們的翻譯字串來自語言包。
變數
已為擴充套件載入的本地化字串包。如果沒有載入包,則為 undefined。通常,如果沒有找到包或我們使用預設語言執行時,則不會載入包。
uri: Uri | undefined
已為擴充套件載入的本地化包的 URI。如果沒有載入包,則為 undefined。通常,如果沒有找到包或我們使用預設語言執行時,則不會載入包。
函式
t(message: string, ...args: Array<string | number | boolean>): string
標記字串以進行本地化。如果對於 env.language 指定的語言有可用的本地化包,並且該包對此訊息有本地化值,則將返回該本地化值(併為任何模板化值注入 args 值)。
示例
l10n.t('Hello {0}!', 'World');
| 引數 | 描述 |
|---|---|
| message: string | 要本地化的訊息。支援索引模板,其中字串如 |
| ...args: Array<string | number | boolean> | 將在本地化字串中使用的引數。引數的索引用於匹配本地化字串中的模板佔位符。 |
| 返回值 | 描述 |
| 字串 | 帶有注入引數的本地化字串。 |
t(message: string, args: Record<string, any>): string
標記字串以進行本地化。如果對於 env.language 指定的語言有可用的本地化包,並且該包對此訊息有本地化值,則將返回該本地化值(併為任何模板化值注入 args 值)。
示例
l10n.t('Hello {name}', { name: 'Erich' });
| 引數 | 描述 |
|---|---|
| message: string | 要本地化的訊息。支援命名模板,其中字串如 |
| args: Record<string, any> | 將在本地化字串中使用的引數。Record 中鍵的名稱用於匹配本地化字串中的模板佔位符。 |
| 返回值 | 描述 |
| 字串 | 帶有注入引數的本地化字串。 |
t(options: {args: Array<string | number | boolean> | Record<string, any>, comment: string | string[], message: string}): string
標記字串以進行本地化。如果對於 env.language 指定的語言有可用的本地化包,並且該包對此訊息有本地化值,則將返回該本地化值(併為任何模板化值注入 args 值)。
| 引數 | 描述 |
|---|---|
| options: {args: Array<string | number | boolean> | Record<string, any>, comment: string | string[], message: string} | 本地化訊息時使用的選項。 |
| 返回值 | 描述 |
| 字串 | 帶有注入引數的本地化字串。 |
語言
參與特定語言編輯器的 功能 的名稱空間,例如 IntelliSense、程式碼操作、診斷等。
存在許多程式語言,它們的語法、語義和正規化差異很大。儘管如此,諸如自動單詞補全、程式碼導航或程式碼檢查等功能已在不同程式語言的不同工具中流行起來。
編輯器提供了一個 API,透過提供所有 UI 和操作,並允許您僅透過提供資料來參與,從而簡化了這些常見功能的提供。例如,要貢獻一個懸停提示,您所要做的就是提供一個函式,該函式可以根據 TextDocument 和 Position 被呼叫,並返回懸停資訊。其餘的,如跟蹤滑鼠、定位懸停提示、保持懸停提示穩定等,都由編輯器負責。
languages.registerHoverProvider('javascript', {
provideHover(document, position, token) {
return new Hover('I am a hover!');
}
});
註冊使用 文件選擇器 完成,該選擇器可以是語言 ID,如 javascript,或者更復雜的 過濾器,如 { language: 'typescript', scheme: 'file' }。將文件與這樣的選擇器進行匹配將產生一個 分數,用於確定提供程式是否以及如何使用。當分數相等時,最後出現的提供程式獲勝。對於允許任意數量引數的功能,如 懸停,分數僅用於檢查是否 >0;對於其他功能,如 IntelliSense,分數用於確定按什麼順序詢問提供程式。
事件
onDidChangeDiagnostics: Event<DiagnosticChangeEvent>
全域性診斷集發生變化時觸發的 事件。這是新新增和移除的診斷。
函式
createDiagnosticCollection(name?: string): DiagnosticCollection
建立診斷集合。
| 引數 | 描述 |
|---|---|
| name?: string | 集合的 名稱。 |
| 返回值 | 描述 |
| DiagnosticCollection | 一個新的診斷集合。 |
createLanguageStatusItem(id: string, selector: DocumentSelector): LanguageStatusItem
建立一個新的 語言狀態項。
| 引數 | 描述 |
|---|---|
| id: string | 項的識別符號。 |
| selector: DocumentSelector | 定義該項顯示在哪些編輯器的文件選擇器。 |
| 返回值 | 描述 |
| LanguageStatusItem | 一個新的語言狀態項。 |
getDiagnostics(resource: Uri): Diagnostic[]
獲取給定資源的 au 診斷。
| 引數 | 描述 |
|---|---|
| resource: Uri | 資源 |
| 返回值 | 描述 |
| Diagnostic[] |
|
getDiagnostics(): Array<[Uri, Diagnostic[]]>
獲取 au 診斷。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| Array<[Uri, Diagnostic[]]> | URI-診斷元組陣列或空陣列。 |
getLanguages(): Thenable<string[]>
返回所有已知語言的識別符號。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| Thenable<string[]> | 解析為識別符號字串陣列的 Promise。 |
match(selector: DocumentSelector, document: TextDocument): number
計算文件 選擇器 與文件之間的匹配。大於零的值表示選擇器匹配文件。
匹配根據以下規則計算
- 當 DocumentSelector 為陣列時,計算包含的每個
DocumentFilter或語言識別符號的匹配項,並取最大值。 - 字串將被解構,成為 DocumentFilter 的
language部分,因此"fooLang"類似於{ language: "fooLang" }。 - 透過將 DocumentFilter 的各個部分與文件進行比較來計算匹配。適用以下規則
- 當
DocumentFilter為空({})時,結果為0 - 當
scheme、language、pattern或notebook已定義但其中一個不匹配時,結果為0 - 匹配
*會獲得5的分數,透過相等性或 glob 模式匹配會獲得10的分數 - 結果是每次匹配的最大值
- 當
示例
// default document from disk (file-scheme)
doc.uri; //'file:///my/file.js'
doc.languageId; // 'javascript'
match('javascript', doc); // 10;
match({ language: 'javascript' }, doc); // 10;
match({ language: 'javascript', scheme: 'file' }, doc); // 10;
match('*', doc); // 5
match('fooLang', doc); // 0
match(['fooLang', '*'], doc); // 5
// virtual document, e.g. from git-index
doc.uri; // 'git:/my/file.js'
doc.languageId; // 'javascript'
match('javascript', doc); // 10;
match({ language: 'javascript', scheme: 'git' }, doc); // 10;
match('*', doc); // 5
// notebook cell document
doc.uri; // `vscode-notebook-cell:///my/notebook.ipynb#gl65s2pmha`;
doc.languageId; // 'python'
match({ notebookType: 'jupyter-notebook' }, doc); // 10
match({ notebookType: 'fooNotebook', language: 'python' }, doc); // 0
match({ language: 'python' }, doc); // 10
match({ notebookType: '*' }, doc); // 5
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 文件選擇器。 |
| document: TextDocument | 文字檔案。 |
| 返回值 | 描述 |
| number | 當選擇器匹配時為 |
registerCallHierarchyProvider(selector: DocumentSelector, provider: CallHierarchyProvider): Disposable
註冊呼叫層次結構提供程式。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: CallHierarchyProvider | 呼叫層次結構提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerCodeActionsProvider(selector: DocumentSelector, provider: CodeActionProvider<CodeAction>, metadata?: CodeActionProviderMetadata): Disposable
註冊程式碼操作提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將並行被呼叫,結果將被合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: CodeActionProvider<CodeAction> | 程式碼操作提供程式。 |
| metadata?: CodeActionProviderMetadata | 關於提供程式所提供程式碼操作型別元資料。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerCodeLensProvider(selector: DocumentSelector, provider: CodeLensProvider<CodeLens>): Disposable
註冊程式碼 Lens 提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將並行被呼叫,結果將被合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: CodeLensProvider<CodeLens> | 程式碼 Lens 提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerColorProvider(selector: DocumentSelector, provider: DocumentColorProvider): Disposable
註冊顏色提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將並行被呼叫,結果將被合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: DocumentColorProvider | 顏色提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerCompletionItemProvider(selector: DocumentSelector, provider: CompletionItemProvider<CompletionItem>, ...triggerCharacters: string[]): Disposable
註冊補全提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將按其 分數 排序,並且具有相同分數的組將被順序地詢問補全項。當一個或多個提供程式返回結果時,該過程停止。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
補全項提供程式可以與一組 triggerCharacters 關聯。當鍵入觸發字元時,會請求補全,但僅從註冊了鍵入字元的提供程式處請求。因此,觸發字元應與 字詞字元 不同,常見的觸發字元是 . 以觸發成員補全。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: CompletionItemProvider<CompletionItem> | 補全提供程式。 |
| ...triggerCharacters: string[] | 鍵入這些字元之一時觸發補全。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerDeclarationProvider(selector: DocumentSelector, provider: DeclarationProvider): Disposable
註冊宣告提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將並行被呼叫,結果將被合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: DeclarationProvider | 宣告提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerDefinitionProvider(selector: DocumentSelector, provider: DefinitionProvider): Disposable
註冊定義提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將並行被呼叫,結果將被合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: DefinitionProvider | 定義提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerDocumentDropEditProvider(selector: DocumentSelector, provider: DocumentDropEditProvider<DocumentDropEdit>, metadata?: DocumentDropEditProviderMetadata): Disposable
註冊一個新的 DocumentDropEditProvider。
可以為一種語言註冊多個拖放提供程式。將內容拖放到編輯器中時,將根據它們處理的 MIME 型別(由其 DocumentDropEditProviderMetadata 指定)呼叫該編輯器註冊的所有提供程式。
每個提供程式可以返回一個或多個 DocumentDropEdits。編輯會根據 DocumentDropEdit.yieldTo 屬性進行排序。預設情況下,將應用第一個編輯。如果存在其他編輯,這些編輯將顯示給使用者,作為拖放控制元件中可選的拖放選項。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: DocumentDropEditProvider<DocumentDropEdit> | 拖放提供程式。 |
| metadata?: DocumentDropEditProviderMetadata | 有關提供程式的其他元資料。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在處置時會取消註冊此提供程式。 |
registerDocumentFormattingEditProvider(selector: DocumentSelector, provider: DocumentFormattingEditProvider): Disposable
註冊文件的格式化提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將按其 分數 排序,並使用最佳匹配的提供程式。所選提供程式的失敗將導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: DocumentFormattingEditProvider | 文件格式化編輯提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerDocumentHighlightProvider(selector: DocumentSelector, provider: DocumentHighlightProvider): Disposable
註冊文件高亮提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將按其 分數 排序,並按順序詢問文件高亮。當提供程式返回 非假值 或 非失敗 結果時,該過程停止。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: DocumentHighlightProvider | 文件高亮提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerDocumentLinkProvider(selector: DocumentSelector, provider: DocumentLinkProvider<DocumentLink>): Disposable
註冊文件連結提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將並行被呼叫,結果將被合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: DocumentLinkProvider<DocumentLink> | 文件連結提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerDocumentPasteEditProvider(selector: DocumentSelector, provider: DocumentPasteEditProvider<DocumentPasteEdit>, metadata: DocumentPasteProviderMetadata): Disposable
註冊一個新的 DocumentPasteEditProvider。
可以為一種語言註冊多個提供程式。所有已註冊的語言提供程式都將根據其處理的 MIME 型別(由 DocumentPasteProviderMetadata 指定)在複製和貼上操作中呼叫。
對於 複製操作,每個提供程式對 DataTransfer 所做的更改將合併到一個用於填充剪貼簿的 DataTransfer 中。
對於 [DocumentPasteEditProvider.providerDocumentPasteEdits 貼上操作](#_DocumentPasteEditProvider.providerDocumentPasteEdits 貼上操作),將呼叫每個提供程式,並且它們可以返回一個或多個 DocumentPasteEdits。編輯會根據 DocumentPasteEdit.yieldTo 屬性進行排序。預設情況下,將應用第一個編輯,其餘編輯將顯示給使用者,作為貼上控制元件中可選的貼上選項。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: DocumentPasteEditProvider<DocumentPasteEdit> | 貼上編輯器提供程式。 |
| metadata: DocumentPasteProviderMetadata | 有關提供程式的其他元資料。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在處置時會取消註冊此提供程式。 |
registerDocumentRangeFormattingEditProvider(selector: DocumentSelector, provider: DocumentRangeFormattingEditProvider): Disposable
為文件範圍註冊格式化提供程式。
注意: 文件範圍提供程式也是一個 文件格式化程式,這意味著在註冊範圍提供程式時,無需 註冊 文件格式化程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將按其 分數 排序,並使用最佳匹配的提供程式。所選提供程式的失敗將導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: DocumentRangeFormattingEditProvider | 文件範圍格式化編輯提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerDocumentRangeSemanticTokensProvider(selector: DocumentSelector, provider: DocumentRangeSemanticTokensProvider, legend: SemanticTokensLegend): Disposable
為文件範圍註冊語義令牌提供程式。
注意: 如果一個文件同時擁有 DocumentSemanticTokensProvider 和 DocumentRangeSemanticTokensProvider,則範圍提供程式僅在最初被呼叫,用於完全文件提供程式解析第一個請求所需的時間。一旦完全文件提供程式解析了第一個請求,透過範圍提供程式提供的語義令牌將被丟棄,此後將僅使用文件提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將按其 分數 排序,並使用最佳匹配的提供程式。所選提供程式的失敗將導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: DocumentRangeSemanticTokensProvider | 文件範圍語義令牌提供程式。 |
| legend: SemanticTokensLegend | |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerDocumentSemanticTokensProvider(selector: DocumentSelector, provider: DocumentSemanticTokensProvider, legend: SemanticTokensLegend): Disposable
為整個文件註冊語義令牌提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將按其 分數 排序,並使用最佳匹配的提供程式。所選提供程式的失敗將導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: DocumentSemanticTokensProvider | 文件語義令牌提供程式。 |
| legend: SemanticTokensLegend | |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerDocumentSymbolProvider(selector: DocumentSelector, provider: DocumentSymbolProvider, metaData?: DocumentSymbolProviderMetadata): Disposable
註冊文件符號提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將並行被呼叫,結果將被合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: DocumentSymbolProvider | 文件符號提供程式。 |
| metaData?: DocumentSymbolProviderMetadata | 提供程式的元資料。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerEvaluatableExpressionProvider(selector: DocumentSelector, provider: EvaluatableExpressionProvider): Disposable
註冊一個用於在文字文件中定位可求值表示式的提供程式。編輯器將在活動除錯會話中求值表示式,並在除錯懸停時顯示結果。
如果為語言註冊了多個提供程式,則將使用任意一個提供程式。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: EvaluatableExpressionProvider | 可求值表示式提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerFoldingRangeProvider(selector: DocumentSelector, provider: FoldingRangeProvider): Disposable
註冊摺疊範圍提供程式。
可以為語言註冊多個提供程式。在這種情況下,提供程式會並行請求,並將結果合併。如果多個摺疊範圍從同一位置開始,則僅使用第一個註冊提供程式的結果。如果摺疊範圍與一個位置更小的範圍重疊,它也會被忽略。
失敗的提供程式(承諾被拒絕或丟擲異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: FoldingRangeProvider | 摺疊範圍提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerHoverProvider(selector: DocumentSelector, provider: HoverProvider): Disposable
註冊懸停提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將並行被呼叫,結果將被合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: HoverProvider | 懸停提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerImplementationProvider(selector: DocumentSelector, provider: ImplementationProvider): Disposable
註冊實現提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將並行被呼叫,結果將被合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: ImplementationProvider | 實現提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerInlayHintsProvider(selector: DocumentSelector, provider: InlayHintsProvider<InlayHint>): Disposable
註冊內嵌提示提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將並行被呼叫,結果將被合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: InlayHintsProvider<InlayHint> | 內嵌提示提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerInlineCompletionItemProvider(selector: DocumentSelector, provider: InlineCompletionItemProvider): Disposable
註冊內聯完成提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將並行被呼叫,結果將被合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: InlineCompletionItemProvider | 內聯完成提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerInlineValuesProvider(selector: DocumentSelector, provider: InlineValuesProvider): Disposable
註冊一個為偵錯程式的“內聯值”功能提供資料的提供程式。每當通用偵錯程式在原始檔中停止時,就會呼叫為該檔案語言註冊的提供程式,以返回將在編輯器行末顯示的文字資料。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將並行被呼叫,結果將被合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: InlineValuesProvider | 內聯值提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerLinkedEditingRangeProvider(selector: DocumentSelector, provider: LinkedEditingRangeProvider): Disposable
註冊連結編輯範圍提供程式。
可以為語言註冊多個提供程式。在這種情況下,提供程式將按其 得分 進行排序,並使用具有結果的最佳匹配提供程式。選定提供程式的失敗將導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: LinkedEditingRangeProvider | 連結編輯範圍提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerOnTypeFormattingEditProvider(selector: DocumentSelector, provider: OnTypeFormattingEditProvider, firstTriggerCharacter: string, ...moreTriggerCharacter: string[]): Disposable
註冊一個在鍵入時工作的格式化提供程式。當用戶啟用 editor.formatOnType 設定時,該提供程式將處於活動狀態。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將按其 分數 排序,並使用最佳匹配的提供程式。所選提供程式的失敗將導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: OnTypeFormattingEditProvider | 鍵入時格式化編輯提供程式。 |
| firstTriggerCharacter: string | 應觸發格式化的字元,例如 |
| ...moreTriggerCharacter: string[] | 更多觸發字元。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerReferenceProvider(selector: DocumentSelector, provider: ReferenceProvider): Disposable
註冊引用提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將並行被呼叫,結果將被合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: ReferenceProvider | 引用提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerRenameProvider(selector: DocumentSelector, provider: RenameProvider): Disposable
註冊重新命名提供程式。
可以為語言註冊多個提供程式。在這種情況下,提供程式將按其 得分 進行排序,並按順序請求。第一個生成結果的提供程式定義了整個操作的結果。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: RenameProvider | 重新命名提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerSelectionRangeProvider(selector: DocumentSelector, provider: SelectionRangeProvider): Disposable
註冊選擇範圍提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將並行被呼叫,結果將被合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: SelectionRangeProvider | 選擇範圍提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerSignatureHelpProvider(selector: DocumentSelector, provider: SignatureHelpProvider, ...triggerCharacters: string[]): Disposable
註冊簽名幫助提供程式。
可以為語言註冊多個提供程式。在這種情況下,提供程式將按其 得分 進行排序,並按順序呼叫,直到某個提供程式返回有效結果。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: SignatureHelpProvider | 簽名幫助提供程式。 |
| ...triggerCharacters: string[] | 在使用者鍵入 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerSignatureHelpProvider(selector: DocumentSelector, provider: SignatureHelpProvider, metadata: SignatureHelpProviderMetadata): Disposable
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: SignatureHelpProvider | 簽名幫助提供程式。 |
| metadata: SignatureHelpProviderMetadata | 提供程式資訊。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerTypeDefinitionProvider(selector: DocumentSelector, provider: TypeDefinitionProvider): Disposable
註冊型別定義提供程式。
可以為一種語言註冊多個提供程式。在這種情況下,提供程式將並行被呼叫,結果將被合併。失敗的提供程式(拒絕的 Promise 或異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: TypeDefinitionProvider | 型別定義提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerTypeHierarchyProvider(selector: DocumentSelector, provider: TypeHierarchyProvider): Disposable
註冊型別層次結構提供程式。
| 引數 | 描述 |
|---|---|
| selector: DocumentSelector | 定義此提供程式適用於哪些文件的選擇器。 |
| provider: TypeHierarchyProvider | 型別層次結構提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerWorkspaceSymbolProvider(provider: WorkspaceSymbolProvider<SymbolInformation>): Disposable
註冊工作區符號提供程式。
可以註冊多個提供程式。在這種情況下,提供程式會並行請求,並將結果合併。失敗的提供程式(承諾被拒絕或丟擲異常)不會導致整個操作失敗。
| 引數 | 描述 |
|---|---|
| provider: WorkspaceSymbolProvider<SymbolInformation> | 工作區符號提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
setLanguageConfiguration(language: string, configuration: LanguageConfiguration): Disposable
為語言設定 語言配置。
| 引數 | 描述 |
|---|---|
| language: string | 語言識別符號,例如 |
| configuration: LanguageConfiguration | 語言配置。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,用於在移除配置時進行釋放。 |
setTextDocumentLanguage(document: TextDocument, languageId: string): Thenable<TextDocument>
設定(並更改)與給定文件關聯的 語言。
注意,呼叫此函式將觸發 onDidCloseTextDocument 事件,然後是 onDidOpenTextDocument 事件。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 要更改語言的文件。 |
| languageId: string | 新的語言識別符號。 |
| 返回值 | 描述 |
| Thenable<TextDocument> | 一個可等待的(thenable),它將以更新後的文件解析。 |
lm
與語言模型相關的功能的名稱空間。
變數
tools: readonly LanguageModelToolInformation[]
所有可用工具的列表,這些工具已透過 lm.registerTool 由所有擴充套件程式註冊。它們可以使用 lm.invokeTool 呼叫,其輸入應與宣告的 inputSchema 匹配。
事件
onDidChangeChatModels: Event<void>
當可用聊天模型集發生變化時觸發的事件。
函式
invokeTool(name: string, options: LanguageModelToolInvocationOptions<object>, token?: CancellationToken): Thenable<LanguageModelToolResult>
透過名稱和給定的輸入呼叫 lm.tools 中列出的工具。輸入將根據工具宣告的模式進行驗證。
工具可以由聊天參與者在處理聊天請求的上下文中呼叫,也可以由任何擴充套件在任何自定義流程中全域性呼叫。
在前一種情況下,呼叫者應傳遞 toolInvocationToken(來自 聊天請求),這可以確保聊天 UI 為正確的對話顯示工具呼叫。
工具 結果 是一個由 文字 和 prompt-tsx 部分組成的陣列。如果工具呼叫者使用 vscode/prompt-tsx,它可以將響應部分合併到其提示中使用 ToolResult。如果不是,則可以將這些部分透過帶有 LanguageModelToolResultPart 的使用者訊息傳遞給 LanguageModelChat。
如果聊天參與者希望保留跨多輪的工具結果,它可以將工具結果儲存在處理程式返回的 ChatResult.metadata 中,並在下一輪從 ChatResponseTurn.result 中檢索它們。
| 引數 | 描述 |
|---|---|
| name: string | 要呼叫的工具的名稱。 |
| options: LanguageModelToolInvocationOptions<object> | 呼叫工具時使用的選項。 |
| token?: CancellationToken | 取消令牌。有關如何建立令牌,請參閱 CancellationTokenSource。 |
| 返回值 | 描述 |
| Thenable<LanguageModelToolResult> | 工具呼叫的結果。 |
registerLanguageModelChatProvider(vendor: string, provider: LanguageModelChatProvider<LanguageModelChatInformation>): Disposable
註冊一個 LanguageModelChatProvider。注意:您還必須透過 package.json 中的 languageModelChatProviders 貢獻點來定義語言模型聊天提供程式。
| 引數 | 描述 |
|---|---|
| vendor: string | 此提供程式的供應商。必須是全域性唯一的。例如, |
| provider: LanguageModelChatProvider<LanguageModelChatInformation> | 要註冊的提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 disposable,在被釋放時取消註冊提供程式。 |
registerMcpServerDefinitionProvider(id: string, provider: McpServerDefinitionProvider<McpServerDefinition>): 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,在被釋放時取消註冊提供程式。 |
registerTool<T>(name: string, tool: LanguageModelTool<T>): Disposable
註冊一個 LanguageModelTool。該工具還必須在 package.json 的 languageModelTools 貢獻點中註冊。註冊的工具可在 lm.tools 列表中供任何擴充套件檢視。但是,為了讓語言模型看到它,它必須在 LanguageModelChatRequestOptions.tools 中提供的可用工具列表中。
| 引數 | 描述 |
|---|---|
| name: string | |
| tool: LanguageModelTool<T> | |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時取消註冊工具。 |
selectChatModels(selector?: LanguageModelChatSelector): Thenable<LanguageModelChat[]>
透過 選擇器 選擇聊天模型。這可能會產生零個或多個聊天模型,擴充套件程式必須優雅地處理這些情況,特別是當不存在聊天模型時。
const models = await vscode.lm.selectChatModels({ family: 'gpt-3.5-turbo' });
if (models.length > 0) {
const [first] = models;
const response = await first.sendRequest(...)
// ...
} else {
// NO chat models available
}
可以選擇器來廣泛匹配特定供應商或系列的模型,也可以透過 ID 來精確選擇單個模型。請記住,可用模型的集合會隨時間變化,而且提示在不同模型上的表現也可能不同。
注意,擴充套件程式可以保留此函式返回的結果並稍後使用。但是,當 onDidChangeChatModels 事件觸發時,聊天模型列表可能會發生變化,擴充套件程式應重新查詢。
| 引數 | 描述 |
|---|---|
| selector?: LanguageModelChatSelector | 聊天模型選擇器。如果省略,則返回所有聊天模型。 |
| 返回值 | 描述 |
| Thenable<LanguageModelChat[]> | 聊天模型陣列,可能為空! |
notebooks
筆記本的名稱空間。
筆記本功能由三個鬆散耦合的元件組成:
- NotebookSerializer 使編輯器能夠開啟、顯示和儲存筆記本。
- NotebookController 負責筆記本的執行,例如,它們會生成程式碼單元格的輸出。
- NotebookRenderer 在編輯器中呈現筆記本輸出。它們在單獨的上下文中執行。
函式
createNotebookController(id: string, notebookType: string, label: string, handler?: (cells: NotebookCell[], notebook: NotebookDocument, controller: NotebookController) => void | Thenable<void>): NotebookController
建立一個新的筆記本控制器。
| 引數 | 描述 |
|---|---|
| id: string | 控制器的識別符號。在擴充套件程式中必須是唯一的。 |
| notebookType: string | 此控制器所屬的筆記本型別。 |
| label: string | 控制器的標籤。 |
| handler?: (cells: NotebookCell[], notebook: NotebookDocument, controller: NotebookController) => void | Thenable<void> | 控制器的執行處理程式。 |
| 返回值 | 描述 |
| NotebookController | 新的筆記本控制器。 |
createRendererMessaging(rendererId: string): NotebookRendererMessaging
建立一個用於與特定渲染器通訊的新訊息例項。
- 注意 1:擴充套件只能建立它們在其
package.json檔案中定義的渲染器。 - 注意 2:只有當渲染器的
notebookRenderer貢獻中requiresMessaging設定為always或optional時,渲染器才能訪問訊息功能。
| 引數 | 描述 |
|---|---|
| rendererId: string | 要通訊的渲染器 ID |
| 返回值 | 描述 |
| NotebookRendererMessaging | 一個新的筆記本渲染器訊息物件。 |
registerNotebookCellStatusBarItemProvider(notebookType: string, provider: NotebookCellStatusBarItemProvider): Disposable
為給定的筆記本型別註冊一個 單元格狀態列項提供程式。
| 引數 | 描述 |
|---|---|
| notebookType: string | 註冊的筆記本型別。 |
| provider: NotebookCellStatusBarItemProvider | 一個單元格狀態列提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
scm
原始碼管理名稱空間。
變數
inputBox: SourceControlInputBox
擴充套件建立的最後一個源控制元件的 輸入框。
- 已棄用 - 請改用 SourceControl.inputBox
函式
createSourceControl(id: string, label: string, rootUri?: Uri): SourceControl
建立一個新的 源控制元件 例項。
| 引數 | 描述 |
|---|---|
| id: string | 源控制元件的 |
| label: string | 源控制元件的人類可讀字串。例如: |
| rootUri?: Uri | 源控制元件根目錄的 URI(可選)。例如: |
| 返回值 | 描述 |
| SourceControl | 源控制元件 的一個例項。 |
tasks
任務功能名稱空間。
變數
taskExecutions: readonly TaskExecution[]
當前活動的任務執行,或者一個空陣列。
事件
onDidEndTask: Event<TaskEndEvent>
任務結束時觸發。
onDidEndTaskProcess: Event<TaskProcessEndEvent>
底層程序結束時觸發。此事件不會為不執行底層程序的任務觸發。
onDidStartTask: Event<TaskStartEvent>
任務開始時觸發。
onDidStartTaskProcess: Event<TaskProcessStartEvent>
底層程序啟動時觸發。此事件不會為不執行底層程序的任務觸發。
函式
executeTask(task: Task): Thenable<TaskExecution>
執行由編輯器管理的任務。返回的任務執行可用於終止任務。
- 丟擲 - 當在無法啟動新程序的環境中執行 ShellExecution 或 ProcessExecution 任務時。在此類環境中,只能執行 CustomExecution 任務。
| 引數 | 描述 |
|---|---|
| task: Task | 要執行的任務 |
| 返回值 | 描述 |
| Thenable<TaskExecution> | 一個解析為任務執行的 thenable。 |
fetchTasks(filter?: TaskFilter): Thenable<Task[]>
獲取系統中所有可用的任務。這包括來自 tasks.json 檔案的任務,以及透過擴充套件貢獻的任務提供程式中的任務。
| 引數 | 描述 |
|---|---|
| filter?: TaskFilter | 可選過濾器,用於選擇特定型別或版本的任務。 |
| 返回值 | 描述 |
| Thenable<Task[]> | 一個解析為任務陣列的 thenable。 |
registerTaskProvider(type: string, provider: TaskProvider<Task>): Disposable
註冊一個任務提供程式。
| 引數 | 描述 |
|---|---|
| type: string | 此提供程式註冊的任務型別。 |
| provider: TaskProvider<Task> | 一個任務提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
tests
測試功能名稱空間。測試透過註冊 TestController 例項來發布,然後新增 TestItems。控制器還可以透過建立一或多個 TestRunProfile 例項來描述如何執行測試。
函式
createTestController(id: string, label: string): TestController
建立一個新的測試控制器。
| 引數 | 描述 |
|---|---|
| id: string | 控制器的識別符號,必須全域性唯一。 |
| label: string | 控制器的可讀標籤。 |
| 返回值 | 描述 |
| TestController | TestController 的一個例項。 |
window
處理編輯器當前視窗的名稱空間。即可見和活動的編輯器,以及顯示訊息、選擇和請求使用者輸入的 UI 元素。
變數
activeColorTheme: ColorTheme
根據設定配置的當前活動顏色主題。活動主題可以透過 workbench.colorTheme 設定進行更改。
activeNotebookEditor: NotebookEditor | undefined
當前活動的 筆記本編輯器 或 undefined。活動編輯器是當前具有焦點編輯器,或者在沒有編輯器有焦點時,是最近更改輸入的編輯器。
activeTerminal: Terminal | undefined
當前活動的終端或 undefined。活動終端是當前具有焦點或最近擁有焦點的終端。
activeTextEditor: TextEditor | undefined
當前活動的編輯器或 undefined。活動編輯器是當前具有焦點編輯器,或者在沒有編輯器有焦點時,是最近更改輸入的編輯器。
state: WindowState
表示當前視窗的狀態。
tabGroups: TabGroups
表示主編輯器區域內的網格小部件
terminals: readonly Terminal[]
當前開啟的終端,或者一個空陣列。
visibleNotebookEditors: readonly NotebookEditor[]
當前可見的 筆記本編輯器,或者一個空陣列。
visibleTextEditors: readonly TextEditor[]
當前可見的編輯器,或者一個空陣列。
事件
onDidChangeActiveColorTheme: Event<ColorTheme>
當活動顏色主題更改或發生更改時觸發的 Event。
onDidChangeActiveNotebookEditor: Event<NotebookEditor | undefined>
onDidChangeActiveTerminal: Event<Terminal | undefined>
onDidChangeActiveTextEditor: Event<TextEditor | undefined>
onDidChangeNotebookEditorSelection: Event<NotebookEditorSelectionChangeEvent>
onDidChangeNotebookEditorVisibleRanges: Event<NotebookEditorVisibleRangesChangeEvent>
當 筆記本編輯器可見範圍 更改時觸發的 Event。
onDidChangeTerminalShellIntegration: Event<TerminalShellIntegrationChangeEvent>
當終端中的 Shell Integration 啟用或其某個屬性更改時觸發。
onDidChangeTerminalState: Event<Terminal>
onDidChangeTextEditorOptions: Event<TextEditorOptionsChangeEvent>
當編輯器的選項更改時觸發的 Event。
onDidChangeTextEditorSelection: Event<TextEditorSelectionChangeEvent>
當編輯器中的選區更改時觸發的 Event。
onDidChangeTextEditorViewColumn: Event<TextEditorViewColumnChangeEvent>
當編輯器的檢視列更改時觸發的 Event。
onDidChangeTextEditorVisibleRanges: Event<TextEditorVisibleRangesChangeEvent>
當編輯器的可見範圍更改時觸發的 Event。
onDidChangeVisibleNotebookEditors: Event<readonly NotebookEditor[]>
onDidChangeVisibleTextEditors: Event<readonly TextEditor[]>
onDidChangeWindowState: Event<WindowState>
噹噹前視窗的焦點或活動狀態更改時觸發的 Event。事件的值表示視窗是否獲得焦點。
onDidCloseTerminal: Event<Terminal>
當終端被釋放時觸發的 Event。
onDidEndTerminalShellExecution: Event<TerminalShellExecutionEndEvent>
當終端命令結束時觸發。此事件僅在終端 激活了 Shell Integration 時觸發。
onDidOpenTerminal: Event<Terminal>
當終端被建立時(透過 createTerminal API 或命令)觸發的 Event。
onDidStartTerminalShellExecution: Event<TerminalShellExecutionStartEvent>
當終端命令開始時觸發。此事件僅在終端 激活了 Shell Integration 時觸發。
函式
createInputBox(): InputBox
建立一個 InputBox,讓使用者輸入文字。
請注意,在許多情況下,更方便的 window.showInputBox 更易於使用。window.createInputBox 應在 window.showInputBox 不提供所需靈活性時使用。
createOutputChannel(name: string, languageId?: string): OutputChannel
使用給定的名稱和語言 ID 建立一個新的 輸出通道。如果未提供語言 ID,則使用 Log 作為預設語言 ID。
您可以從 可見編輯器 或 活動編輯器 訪問可見或活動的輸出通道,作為 文字文件,並使用語言 ID 來貢獻語言功能,如語法著色、程式碼 Lens 等。
| 引數 | 描述 |
|---|---|
| name: string | 將在 UI 中用於表示通道的可讀字串。 |
| languageId?: string | 與通道關聯的語言的識別符號。 |
| 返回值 | 描述 |
| OutputChannel | 一個新的輸出通道。 |
createOutputChannel(name: string, options: {log: true}): LogOutputChannel
使用給定的名稱建立一個新的 日誌輸出通道。
| 引數 | 描述 |
|---|---|
| name: string | 將在 UI 中用於表示通道的可讀字串。 |
| options: {log: true} | 日誌輸出通道的選項。 |
| 返回值 | 描述 |
| LogOutputChannel | 一個新的日誌輸出通道。 |
createQuickPick<T extends QuickPickItem>(): QuickPick<T>
建立一個 QuickPick,讓使用者從 T 型別項的列表中選擇一個項。
請注意,在許多情況下,更方便的 window.showQuickPick 更易於使用。window.createQuickPick 應在 window.showQuickPick 不提供所需靈活性時使用。
createStatusBarItem(id: string, alignment?: StatusBarAlignment, priority?: number): StatusBarItem
建立一個狀態列 項。
| 引數 | 描述 |
|---|---|
| id: string | 項的識別符號。在擴充套件中必須是唯一的。 |
| alignment?: StatusBarAlignment | 項的對齊方式。 |
| priority?: number | 項的優先順序。值越高表示項應顯示在越靠左的位置。 |
| 返回值 | 描述 |
| StatusBarItem | 一個新的狀態列項。 |
createStatusBarItem(alignment?: StatusBarAlignment, priority?: number): StatusBarItem
建立一個狀態列 項。
另請參閱 createStatusBarItem,用於建立帶識別符號的狀態列項。
| 引數 | 描述 |
|---|---|
| alignment?: StatusBarAlignment | 項的對齊方式。 |
| priority?: number | 項的優先順序。值越高表示項應顯示在越靠左的位置。 |
| 返回值 | 描述 |
| StatusBarItem | 一個新的狀態列項。 |
createTerminal(name?: string, shellPath?: string, shellArgs?: string | readonly string[]): Terminal
使用後備 shell 程序建立一個 Terminal。終端的 cwd 將是工作區目錄(如果存在)。
- 丟擲 - 當在無法啟動新程序的環境中執行時。
createTerminal(options: TerminalOptions): Terminal
使用後備 shell 程序建立一個 Terminal。
- 丟擲 - 當在無法啟動新程序的環境中執行時。
| 引數 | 描述 |
|---|---|
| options: TerminalOptions | 描述新終端特性的 TerminalOptions 物件。 |
| 返回值 | 描述 |
| 終端 | 一個新的 Terminal。 |
createTerminal(options: ExtensionTerminalOptions): Terminal
建立一個由擴充套件控制其輸入和輸出的 Terminal。
| 引數 | 描述 |
|---|---|
| options: ExtensionTerminalOptions | 描述新終端特性的 ExtensionTerminalOptions 物件。 |
| 返回值 | 描述 |
| 終端 | 一個新的 Terminal。 |
createTextEditorDecorationType(options: DecorationRenderOptions): TextEditorDecorationType
建立一個 TextEditorDecorationType,用於向文字編輯器新增裝飾。
| 引數 | 描述 |
|---|---|
| options: DecorationRenderOptions | 裝飾型別的渲染選項。 |
| 返回值 | 描述 |
| TextEditorDecorationType | 一個新的裝飾型別例項。 |
createTreeView<T>(viewId: string, options: TreeViewOptions<T>): TreeView<T>
為使用 views 擴充套件點貢獻的檢視建立一個 TreeView。
| 引數 | 描述 |
|---|---|
| viewId: string | 使用 |
| options: TreeViewOptions<T> | 建立 TreeView 的選項。 |
| 返回值 | 描述 |
| TreeView<T> | 一個 TreeView。 |
createWebviewPanel(viewType: string, title: string, showOptions: ViewColumn | {preserveFocus: boolean, viewColumn: ViewColumn}, options?: WebviewPanelOptions & WebviewOptions): WebviewPanel
建立並顯示一個新的 Webview 面板。
| 引數 | 描述 |
|---|---|
| viewType: string | 標識 Webview 面板的型別。 |
| title: string | 面板的標題。 |
| showOptions: ViewColumn | {preserveFocus: boolean, viewColumn: ViewColumn} | 在編輯器中顯示 Webview 的位置。如果設定了 preserveFocus,則新 Webview 將不會獲得焦點。 |
| options?: WebviewPanelOptions & WebviewOptions | 新面板的設定。 |
| 返回值 | 描述 |
| WebviewPanel | 新的 Webview 面板。 |
registerCustomEditorProvider(viewType: string, provider: CustomTextEditorProvider | CustomReadonlyEditorProvider<CustomDocument> | CustomEditorProvider<CustomDocument>, options?: {supportsMultipleEditorsPerDocument: boolean, webviewOptions: WebviewPanelOptions}): Disposable
為 customEditors 擴充套件點貢獻的 viewType 註冊自定義編輯器提供程式。
當開啟自定義編輯器時,會觸發 onCustomEditor:viewType 啟用事件。您的擴充套件程式必須在啟用時為 viewType 註冊 CustomTextEditorProvider、CustomReadonlyEditorProvider 或 CustomEditorProvider。
| 引數 | 描述 |
|---|---|
| viewType: string | 自定義編輯器提供程式的唯一識別符號。這應該與 |
| provider: CustomTextEditorProvider | CustomReadonlyEditorProvider<CustomDocument> | CustomEditorProvider<CustomDocument> | 解析自定義編輯器的提供程式。 |
| options?: {supportsMultipleEditorsPerDocument: boolean, webviewOptions: WebviewPanelOptions} | 提供程式的選項。 |
| 返回值 | 描述 |
| Disposable | 登出提供程式的 Disposable 物件。 |
registerFileDecorationProvider(provider: FileDecorationProvider): Disposable
註冊檔案裝飾提供程式。
| 引數 | 描述 |
|---|---|
| provider: FileDecorationProvider | |
| 返回值 | 描述 |
| Disposable | 登出提供程式的 Disposable 物件。 |
registerTerminalLinkProvider(provider: TerminalLinkProvider<TerminalLink>): Disposable
註冊一個提供程式,用於在終端中檢測和處理連結。
| 引數 | 描述 |
|---|---|
| provider: TerminalLinkProvider<TerminalLink> | 提供終端連結的提供程式。 |
| 返回值 | 描述 |
| Disposable | 登出提供程式的 Disposable 物件。 |
registerTerminalProfileProvider(id: string, provider: TerminalProfileProvider): Disposable
為貢獻的終端配置檔案註冊一個提供程式。
| 引數 | 描述 |
|---|---|
| id: string | 貢獻的終端配置檔案的 ID。 |
| provider: TerminalProfileProvider | 終端配置檔案提供程式。 |
| 返回值 | 描述 |
| Disposable | 登出提供程式的 Disposable 物件。 |
registerTreeDataProvider<T>(viewId: string, treeDataProvider: TreeDataProvider<T>): Disposable
為使用 views 擴充套件點貢獻的檢視註冊一個 TreeDataProvider。這將允許您向 TreeView 貢獻資料並在資料更改時進行更新。
注意:要訪問 TreeView 並對其執行操作,請使用 createTreeView。
| 引數 | 描述 |
|---|---|
| viewId: string | 使用 |
| treeDataProvider: TreeDataProvider<T> | 提供檢視樹資料的 TreeDataProvider。 |
| 返回值 | 描述 |
| Disposable | 登出 TreeDataProvider 的 Disposable 物件。 |
registerUriHandler(handler: UriHandler): Disposable
註冊一個能夠處理系統範圍的 URI 的 URI 處理程式。如果打開了多個視窗,則最上面的視窗將處理 URI。URI 處理程式的作用域限定在其貢獻的擴充套件程式內;它只能處理定向到擴充套件程式本身的 URI。URI 必須遵守以下規則:
- URI 方案必須是
vscode.env.uriScheme; - URI 許可權必須是擴充套件 ID(例如
my.extension); - URI 路徑、查詢和片段部分是任意的。
例如,如果 my.extension 擴充套件程式註冊了一個 URI 處理程式,它將只能處理以 product-name://my.extension 開頭的 URI。
每個擴充套件程式在其整個啟用生命週期中只能註冊一個 URI 處理程式。
- 注意:存在一個
onUri啟用事件,當一個指向當前擴充套件程式的 URI 即將處理時,該事件會被觸發。
| 引數 | 描述 |
|---|---|
| handler: UriHandler | 要為此擴充套件程式註冊的 URI 處理程式。 |
| 返回值 | 描述 |
| Disposable | 登出處理程式的 Disposable 物件。 |
registerWebviewPanelSerializer(viewType: string, serializer: WebviewPanelSerializer<unknown>): Disposable
註冊 Webview 面板序列化器。
支援恢復的擴充套件程式應具有 "onWebviewPanel:viewType" 啟用事件,並確保在啟用期間呼叫 registerWebviewPanelSerializer。
對於給定的 viewType,一次只能註冊一個序列化器。
| 引數 | 描述 |
|---|---|
| viewType: string | 可以序列化的 Webview 面板的型別。 |
| serializer: WebviewPanelSerializer<unknown> | Webview 序列化器。 |
| 返回值 | 描述 |
| Disposable | 登出序列化器的 Disposable 物件。 |
registerWebviewViewProvider(viewId: string, provider: WebviewViewProvider, options?: {webviewOptions: {retainContextWhenHidden: boolean}}): Disposable
為 Webview 檢視註冊新的提供程式。
| 引數 | 描述 |
|---|---|
| viewId: string | 檢視的唯一 ID。這應該與 package.json 中的 |
| provider: WebviewViewProvider | Webview 檢視的提供程式。 |
| options?: {webviewOptions: {retainContextWhenHidden: boolean}} | |
| 返回值 | 描述 |
| Disposable | 登出提供程式的 Disposable 物件。 |
setStatusBarMessage(text: string, hideAfterTimeout: number): Disposable
在狀態列上設定一條訊息。這是更強大的狀態列 專案 的簡寫。
| 引數 | 描述 |
|---|---|
| text: string | 要顯示的訊息,支援圖示替換,如狀態列 專案 中所述。 |
| hideAfterTimeout: number | 訊息將被隱藏後的超時時間(毫秒)。 |
| 返回值 | 描述 |
| Disposable | 隱藏狀態列訊息的 Disposable 物件。 |
setStatusBarMessage(text: string, hideWhenDone: Thenable<any>): Disposable
在狀態列上設定一條訊息。這是更強大的狀態列 專案 的簡寫。
| 引數 | 描述 |
|---|---|
| text: string | 要顯示的訊息,支援圖示替換,如狀態列 專案 中所述。 |
| hideWhenDone: Thenable<any> | 訊息完成後(解析或拒絕)將被隱藏的 Promise。 |
| 返回值 | 描述 |
| Disposable | 隱藏狀態列訊息的 Disposable 物件。 |
setStatusBarMessage(text: string): Disposable
在狀態列上設定一條訊息。這是更強大的狀態列 專案 的簡寫。
注意狀態列訊息會堆疊,並且在使用完畢後必須將其 disposed。
| 引數 | 描述 |
|---|---|
| text: string | 要顯示的訊息,支援圖示替換,如狀態列 專案 中所述。 |
| 返回值 | 描述 |
| Disposable | 隱藏狀態列訊息的 Disposable 物件。 |
showErrorMessage<T extends string>(message: string, ...items: T[]): Thenable<T | undefined>
顯示錯誤訊息。
| 引數 | 描述 |
|---|---|
| message: string | 要顯示的訊息。 |
| ...items: T[] | 將顯示為訊息中可點選操作的一組專案。 |
| 返回值 | 描述 |
| Thenable<T | undefined> | 一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 |
showErrorMessage<T extends string>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
顯示錯誤訊息。
| 引數 | 描述 |
|---|---|
| message: string | 要顯示的訊息。 |
| options: MessageOptions | 配置訊息的行為。 |
| ...items: T[] | 將顯示為訊息中可點選操作的一組專案。 |
| 返回值 | 描述 |
| Thenable<T | undefined> | 一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 |
showErrorMessage<T extends MessageItem>(message: string, ...items: T[]): Thenable<T | undefined>
顯示錯誤訊息。
| 引數 | 描述 |
|---|---|
| message: string | 要顯示的訊息。 |
| ...items: T[] | 將顯示為訊息中可點選操作的一組專案。 |
| 返回值 | 描述 |
| Thenable<T | undefined> | 一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 |
showErrorMessage<T extends MessageItem>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
顯示錯誤訊息。
| 引數 | 描述 |
|---|---|
| message: string | 要顯示的訊息。 |
| options: MessageOptions | 配置訊息的行為。 |
| ...items: T[] | 將顯示為訊息中可點選操作的一組專案。 |
| 返回值 | 描述 |
| Thenable<T | undefined> | 一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 |
showInformationMessage<T extends string>(message: string, ...items: T[]): Thenable<T | undefined>
向用戶顯示資訊訊息。可以選擇提供一個數組的專案,這些專案將顯示為可點選的按鈕。
| 引數 | 描述 |
|---|---|
| message: string | 要顯示的訊息。 |
| ...items: T[] | 將顯示為訊息中可點選操作的一組專案。 |
| 返回值 | 描述 |
| Thenable<T | undefined> | 一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 |
showInformationMessage<T extends string>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
向用戶顯示資訊訊息。可以選擇提供一個數組的專案,這些專案將顯示為可點選的按鈕。
| 引數 | 描述 |
|---|---|
| message: string | 要顯示的訊息。 |
| options: MessageOptions | 配置訊息的行為。 |
| ...items: T[] | 將顯示為訊息中可點選操作的一組專案。 |
| 返回值 | 描述 |
| Thenable<T | undefined> | 一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 |
showInformationMessage<T extends MessageItem>(message: string, ...items: T[]): Thenable<T | undefined>
顯示資訊訊息。
| 引數 | 描述 |
|---|---|
| message: string | 要顯示的訊息。 |
| ...items: T[] | 將顯示為訊息中可點選操作的一組專案。 |
| 返回值 | 描述 |
| Thenable<T | undefined> | 一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 |
showInformationMessage<T extends MessageItem>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
顯示資訊訊息。
| 引數 | 描述 |
|---|---|
| message: string | 要顯示的訊息。 |
| options: MessageOptions | 配置訊息的行為。 |
| ...items: T[] | 將顯示為訊息中可點選操作的一組專案。 |
| 返回值 | 描述 |
| Thenable<T | undefined> | 一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 |
showInputBox(options?: InputBoxOptions, token?: CancellationToken): Thenable<string | undefined>
開啟一個輸入框,要求使用者輸入。
如果輸入框被取消(例如,按 ESC 鍵),則返回值將是 undefined。否則,返回值將是使用者鍵入的字串,如果使用者未鍵入任何內容但用 OK 按鈕關閉了輸入框,則返回空字串。
| 引數 | 描述 |
|---|---|
| options?: InputBoxOptions | 配置輸入框的行為。 |
| token?: CancellationToken | 可用於發出取消訊號的令牌。 |
| 返回值 | 描述 |
| Thenable<string | undefined> | 一個 Promise,解析為使用者提供的字串,或者在取消時解析為 |
showNotebookDocument(document: NotebookDocument, options?: NotebookDocumentShowOptions): Thenable<NotebookEditor>
在 筆記本編輯器 中顯示給定的 NotebookDocument。
| 引數 | 描述 |
|---|---|
| document: NotebookDocument | 要顯示的文字文件。 |
| options?: NotebookDocumentShowOptions | |
| 返回值 | 描述 |
| Thenable<NotebookEditor> | 一個解析為 筆記本編輯器 的 Promise。 |
showOpenDialog(options?: OpenDialogOptions): Thenable<Uri[] | undefined>
向用戶顯示檔案開啟對話方塊,允許選擇要開啟的檔案。
| 引數 | 描述 |
|---|---|
| options?: OpenDialogOptions | 控制對話方塊的選項。 |
| 返回值 | 描述 |
| Thenable<Uri[] | undefined> | 一個 Promise,解析為選定的資源或 |
showQuickPick(items: readonly string[] | Thenable<readonly string[]>, options: QuickPickOptions & {canPickMany: true}, token?: CancellationToken): Thenable<string[] | undefined>
顯示一個允許多選的選項列表。
| 引數 | 描述 |
|---|---|
| items: readonly string[] | Thenable<readonly string[]> | 一個字串陣列,或者一個解析為字串陣列的 Promise。 |
| options: QuickPickOptions & {canPickMany: true} | 配置選項列表的行為。 |
| token?: CancellationToken | 可用於發出取消訊號的令牌。 |
| 返回值 | 描述 |
| Thenable<string[] | undefined> | 一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 |
showQuickPick(items: readonly string[] | Thenable<readonly string[]>, options?: QuickPickOptions, token?: CancellationToken): Thenable<string | undefined>
顯示一個選項列表。
| 引數 | 描述 |
|---|---|
| items: readonly string[] | Thenable<readonly string[]> | 一個字串陣列,或者一個解析為字串陣列的 Promise。 |
| options?: QuickPickOptions | 配置選項列表的行為。 |
| token?: CancellationToken | 可用於發出取消訊號的令牌。 |
| 返回值 | 描述 |
| Thenable<string | undefined> | 一個 Promise,解析為選定的字串,或在取消時解析為 |
showQuickPick<T extends QuickPickItem>(items: readonly T[] | Thenable<readonly T[]>, options: QuickPickOptions & {canPickMany: true}, token?: CancellationToken): Thenable<T[] | undefined>
顯示一個允許多選的選項列表。
| 引數 | 描述 |
|---|---|
| items: readonly T[] | Thenable<readonly T[]> | 一個專案陣列,或者一個解析為專案陣列的 Promise。 |
| options: QuickPickOptions & {canPickMany: true} | 配置選項列表的行為。 |
| token?: CancellationToken | 可用於發出取消訊號的令牌。 |
| 返回值 | 描述 |
| Thenable<T[] | undefined> | 一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 |
showQuickPick<T extends QuickPickItem>(items: readonly T[] | Thenable<readonly T[]>, options?: QuickPickOptions, token?: CancellationToken): Thenable<T | undefined>
顯示一個選項列表。
| 引數 | 描述 |
|---|---|
| items: readonly T[] | Thenable<readonly T[]> | 一個專案陣列,或者一個解析為專案陣列的 Promise。 |
| options?: QuickPickOptions | 配置選項列表的行為。 |
| token?: CancellationToken | 可用於發出取消訊號的令牌。 |
| 返回值 | 描述 |
| Thenable<T | undefined> | 一個 Promise,解析為選定的專案,或在取消時解析為 |
showSaveDialog(options?: SaveDialogOptions): Thenable<Uri | undefined>
向用戶顯示檔案儲存對話方塊,允許選擇要儲存的檔案。
| 引數 | 描述 |
|---|---|
| options?: SaveDialogOptions | 控制對話方塊的選項。 |
| 返回值 | 描述 |
| Thenable<Uri | undefined> | 一個 Promise,解析為選定的資源或 |
showTextDocument(document: TextDocument, column?: ViewColumn, preserveFocus?: boolean): Thenable<TextEditor>
| 引數 | 描述 |
|---|---|
| document: TextDocument | 要顯示的文字文件。 |
| column?: ViewColumn | 應在其中顯示 編輯器 的檢視列。預設為 活動 列。不存在的列將根據需要建立,最多可達 ViewColumn.Nine。使用 ViewColumn.Beside 將編輯器開啟到當前活動編輯器旁邊。 |
| preserveFocus?: boolean | 如果設定為 |
| 返回值 | 描述 |
| Thenable<TextEditor> | 一個解析為 編輯器 的 Promise。 |
showTextDocument(document: TextDocument, options?: TextDocumentShowOptions): Thenable<TextEditor>
| 引數 | 描述 |
|---|---|
| document: TextDocument | 要顯示的文字文件。 |
| options?: TextDocumentShowOptions | |
| 返回值 | 描述 |
| Thenable<TextEditor> | 一個解析為 編輯器 的 Promise。 |
showTextDocument(uri: Uri, options?: TextDocumentShowOptions): Thenable<TextEditor>
openTextDocument(uri).then(document => showTextDocument(document, options)) 的簡寫。
| 引數 | 描述 |
|---|---|
| uri: Uri | 資源識別符號。 |
| options?: TextDocumentShowOptions | |
| 返回值 | 描述 |
| Thenable<TextEditor> | 一個解析為 編輯器 的 Promise。 |
showWarningMessage<T extends string>(message: string, ...items: T[]): Thenable<T | undefined>
顯示警告訊息。
| 引數 | 描述 |
|---|---|
| message: string | 要顯示的訊息。 |
| ...items: T[] | 將顯示為訊息中可點選操作的一組專案。 |
| 返回值 | 描述 |
| Thenable<T | undefined> | 一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 |
showWarningMessage<T extends string>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
顯示警告訊息。
| 引數 | 描述 |
|---|---|
| message: string | 要顯示的訊息。 |
| options: MessageOptions | 配置訊息的行為。 |
| ...items: T[] | 將顯示為訊息中可點選操作的一組專案。 |
| 返回值 | 描述 |
| Thenable<T | undefined> | 一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 |
showWarningMessage<T extends MessageItem>(message: string, ...items: T[]): Thenable<T | undefined>
顯示警告訊息。
| 引數 | 描述 |
|---|---|
| message: string | 要顯示的訊息。 |
| ...items: T[] | 將顯示為訊息中可點選操作的一組專案。 |
| 返回值 | 描述 |
| Thenable<T | undefined> | 一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 |
showWarningMessage<T extends MessageItem>(message: string, options: MessageOptions, ...items: T[]): Thenable<T | undefined>
顯示警告訊息。
| 引數 | 描述 |
|---|---|
| message: string | 要顯示的訊息。 |
| options: MessageOptions | 配置訊息的行為。 |
| ...items: T[] | 將顯示為訊息中可點選操作的一組專案。 |
| 返回值 | 描述 |
| Thenable<T | undefined> | 一個 Promise,解析為選定的專案,或在訊息被關閉時解析為 |
showWorkspaceFolderPick(options?: WorkspaceFolderPickOptions): Thenable<WorkspaceFolder | undefined>
顯示一個 工作區資料夾 選擇列表。如果未開啟任何資料夾,則返回 undefined。
| 引數 | 描述 |
|---|---|
| options?: WorkspaceFolderPickOptions | 配置工作區資料夾列表的行為。 |
| 返回值 | 描述 |
| Thenable<WorkspaceFolder | undefined> | 一個 Promise,解析為工作區資料夾或 |
withProgress<R>(options: ProgressOptions, task: (progress: Progress<{increment: number, message: string}>, token: CancellationToken) => Thenable<R>): Thenable<R>
在編輯器中顯示進度。在執行給定的回撥函式以及它返回的 Promise 未解析或拒絕之前,將顯示進度。進度應顯示的位置(以及其他詳細資訊)透過傳入的 ProgressOptions 來定義。
| 引數 | 描述 |
|---|---|
| options: ProgressOptions | 一個 ProgressOptions 物件,描述用於顯示進度的選項,例如其位置。 |
| task: (progress: Progress<{increment: number, message: string}>, token: CancellationToken) => Thenable<R> | 一個返回 Promise 的回撥函式。可以使用提供的 Progress 物件報告進度狀態。 要報告離散進度,請使用 要監視操作是否已被使用者取消,請使用提供的 CancellationToken。請注意,目前只有 |
| 返回值 | 描述 |
| Thenable<R> | 任務回撥函式返回的 Promise。 |
withScmProgress<R>(task: (progress: Progress<number>) => Thenable<R>): Thenable<R>
在執行給定的回撥函式期間以及在其返回的 Promise 未解析或拒絕時,在原始碼管理檢視中顯示進度。
- 已棄用 - 請改用
withProgress。
workspace
用於處理當前工作區的名稱空間。工作區是在編輯器視窗(例項)中開啟的一個或多個資料夾的集合。
也可以在沒有工作區的情況下開啟編輯器。例如,當您透過從平臺的“檔案”選單中選擇一個檔案來開啟新編輯器視窗時,您將不在工作區中。在此模式下,編輯器的某些功能會受到限制,但您仍然可以開啟文字檔案並對其進行編輯。
有關工作區的概念,請參閱 https://vscode.com.tw/docs/editor/workspaces。
工作區支援 監聽 fs 事件以及 查詢 檔案。兩者效能都很好,並且在編輯器程序之外執行,因此應始終使用它們而不是 nodejs 等效項。
變數
fs: FileSystem
一個 檔案系統 例項,允許與本地和遠端檔案進行互動,例如 vscode.workspace.fs.readDirectory(someUri) 允許檢索目錄的所有條目,或者 vscode.workspace.fs.stat(anotherUri) 返回檔案的元資料。
如果為 true,則使用者已明確信任工作區的內容。
工作區的名稱。當沒有開啟工作區時為 undefined。
有關工作區的概念,請參閱 https://vscode.com.tw/docs/editor/workspaces。
notebookDocuments: readonly NotebookDocument[]
編輯器當前已知的所有筆記本檔案。
string 形式的 workspaceFolders 的第一個條目的 URI。如果不存在第一個條目,則為 undefined。
有關工作區的概念,請參閱 https://vscode.com.tw/docs/editor/workspaces。
- 已棄用 - 請改用 workspaceFolders。
textDocuments: readonly TextDocument[]
編輯器當前已知的所有文字檔案。
workspaceFile: Uri | undefined
工作區檔案的位置,例如
file:///Users/name/Development/myProject.code-workspace
或
untitled:1555503116870
對於未命名且尚未儲存的工作區。
根據開啟的工作區,該值將是:
- 未開啟工作區時為
undefined。 - 否則,工作區檔案的路徑為
Uri。如果工作區未命名,則返回的 URI 將使用untitled:方案。
位置可用於 vscode.openFolder 命令,以便在工作區關閉後重新開啟它。
示例
vscode.commands.executeCommand('vscode.openFolder', uriOfWorkspace);
有關工作區的概念,請參閱 https://vscode.com.tw/docs/editor/workspaces。
注意:不建議使用 workspace.workspaceFile 將配置資料寫入檔案。為此,您可以使用 workspace.getConfiguration().update(),這在開啟單個資料夾或開啟未命名或已儲存的工作區時都適用。
workspaceFolders: readonly WorkspaceFolder[] | undefined
編輯器中開啟的工作區資料夾列表(0-N)。未開啟工作區時為 undefined。
有關工作區的概念,請參閱 https://vscode.com.tw/docs/editor/workspaces。
事件
onDidChangeConfiguration: Event<ConfigurationChangeEvent>
當 配置 發生更改時發出的事件。
onDidChangeNotebookDocument: Event<NotebookDocumentChangeEvent>
當 筆記本 發生更改時發出的事件。
onDidChangeTextDocument: Event<TextDocumentChangeEvent>
onDidChangeWorkspaceFolders: Event<WorkspaceFoldersChangeEvent>
新增或刪除工作區資料夾時發出的事件。
注意:如果新增、刪除或更改了第一個工作區資料夾,此事件將不會觸發,因為在這種情況下,當前正在執行的擴充套件(包括監聽此事件的擴充套件)將被終止並重新啟動,以便(已棄用的)rootPath 屬性更新為指向第一個工作區資料夾。
onDidCloseNotebookDocument: Event<NotebookDocument>
onDidCloseTextDocument: Event<TextDocument>
當 文字檔案 被釋放或文字檔案的語言 ID 已更改 時發出的事件。
注意 1:不能保證此事件在編輯器選項卡關閉時觸發,請使用 onDidChangeVisibleTextEditors 事件瞭解何時更改編輯器。
注意 2:文件可能已開啟但未顯示在編輯器中,這意味著此事件可能針對未在編輯器中顯示的文件觸發。
onDidCreateFiles: Event<FileCreateEvent>
檔案被建立時發出的事件。
注意:此事件由使用者操作觸發,例如從資源管理器或 workspace.applyEdit API 建立檔案,但當檔案在磁碟上更改時(例如由其他應用程式觸發)或使用 workspace.fs API 時,此事件不會觸發。
onDidDeleteFiles: Event<FileDeleteEvent>
檔案被刪除時發出的事件。
注意 1:此事件由使用者操作觸發,例如從資源管理器或 workspace.applyEdit API 刪除檔案,但當檔案在磁碟上更改時(例如由其他應用程式觸發)或使用 workspace.fs API 時,此事件不會觸發。
注意 2:刪除帶有子檔案的資料夾時,只觸發一個事件。
onDidGrantWorkspaceTrust: Event<void>
當前工作區被信任時觸發的事件。
onDidOpenNotebookDocument: Event<NotebookDocument>
當 筆記本 被開啟時發出的事件。
onDidOpenTextDocument: Event<TextDocument>
onDidRenameFiles: Event<FileRenameEvent>
檔案被重新命名時發出的事件。
注意 1:此事件由使用者操作觸發,例如從資源管理器或 workspace.applyEdit API 重新命名檔案,但當檔案在磁碟上更改時(例如由其他應用程式觸發)或使用 workspace.fs API 時,此事件不會觸發。
注意 2:重新命名帶有子檔案的資料夾時,只觸發一個事件。
onDidSaveNotebookDocument: Event<NotebookDocument>
當 筆記本 被儲存到磁碟時發出的事件。
onDidSaveTextDocument: Event<TextDocument>
當 文字檔案 被儲存到磁碟時發出的事件。
onWillCreateFiles: Event<FileWillCreateEvent>
檔案正在被建立時發出的事件。
注意 1:此事件由使用者操作觸發,例如從資源管理器或 workspace.applyEdit API 建立檔案。當檔案在磁碟上更改時(例如由其他應用程式觸發)或使用 workspace.fs API 時,此事件不會觸發。
注意 2:當觸發此事件時,無法對正在建立的檔案進行編輯。
onWillDeleteFiles: Event<FileWillDeleteEvent>
檔案正在被刪除時發出的事件。
注意 1:此事件由使用者操作觸發,例如從資源管理器或 workspace.applyEdit API 刪除檔案,但當檔案在磁碟上更改時(例如由其他應用程式觸發)或使用 workspace.fs API 時,此事件不會觸發。
注意 2:刪除帶有子檔案的資料夾時,只觸發一個事件。
onWillRenameFiles: Event<FileWillRenameEvent>
檔案正在被重新命名時發出的事件。
注意 1:此事件由使用者操作觸發,例如從資源管理器或 workspace.applyEdit API 重新命名檔案,但當檔案在磁碟上更改時(例如由其他應用程式觸發)或使用 workspace.fs API 時,此事件不會觸發。
注意 2:重新命名帶有子檔案的資料夾時,只觸發一個事件。
onWillSaveNotebookDocument: Event<NotebookDocumentWillSaveEvent>
onWillSaveTextDocument: Event<TextDocumentWillSaveEvent>
函式
applyEdit(edit: WorkspaceEdit, metadata?: WorkspaceEditMetadata): Thenable<boolean>
根據給定的 工作區編輯 來更改一個或多個資源,或建立、刪除和重新命名資源。
工作區編輯的所有更改都按其新增的順序應用。如果多個文字插入發生在同一位置,這些字串將按“插入”發生的順序出現在結果文字中,除非它們與資源編輯交織在一起。無效的序列,如“刪除檔案 a”->“在檔案 a 中插入文字”,會導致操作失敗。
應用由文字編輯組成的工作區編輯時,將使用“全部或無”策略。包含資源建立或刪除的工作區編輯將中止操作,例如,當單個編輯失敗時,將不會嘗試連續編輯。
| 引數 | 描述 |
|---|---|
| edit: WorkspaceEdit | 工作區編輯。 |
| metadata?: WorkspaceEditMetadata | 可選的 元資料。 |
| 返回值 | 描述 |
| Thenable<boolean> | 在編輯可以應用時解析的 Thenable。 |
asRelativePath(pathOrUri: string | Uri, includeWorkspaceFolder?: boolean): string
返回相對於工作區資料夾或資料夾的路徑。
當沒有 工作區資料夾 時,或者當路徑不包含在其中時,將返回輸入。
createFileSystemWatcher(globPattern: GlobPattern, ignoreCreateEvents?: boolean, ignoreChangeEvents?: boolean, ignoreDeleteEvents?: boolean): FileSystemWatcher
建立一個檔案系統監視器,根據提供的引數,它會在檔案事件(建立、更改、刪除)上收到通知。
預設情況下,將監視所有開啟的 工作區資料夾 的檔案更改(遞迴)。
可以透過提供帶有 base 路徑以進行監視的 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 | 新的檔案系統監視器例項。無需再使用時必須釋放。 |
decode(content: Uint8Array): Thenable<string>
將 Uint8Array 的內容解碼為 string。您必須一次性提供所有內容,以確保編碼能夠正確應用。請勿為此方法分塊解碼內容,這可能會導致結果不正確。
將根據設定和緩衝區的內容(例如位元組順序標記)選擇編碼。
注意,如果您解碼的內容不受編碼支援,結果可能會包含適當的替換字元。
- 丟擲 - 如果內容是二進位制的,此方法將丟擲錯誤。
| 引數 | 描述 |
|---|---|
| content: Uint8Array | 要解碼為 |
| 返回值 | 描述 |
| Thenable<string> | 一個解析為解碼後的 |
decode(content: Uint8Array, options: {encoding: string}): Thenable<string>
使用提供的編碼將 Uint8Array 的內容解碼為 string。您必須一次性提供所有內容,以確保編碼能夠正確應用。請勿為此方法分塊解碼內容,這可能會導致結果不正確。
注意,如果您解碼的內容不受編碼支援,結果可能會包含適當的替換字元。
- 丟擲 - 如果內容是二進位制的,此方法將丟擲錯誤。
| 引數 | 描述 |
|---|---|
| content: Uint8Array | 要解碼為 |
| options: {encoding: string} | 選擇編碼的附加上下文。 |
| 返回值 | 描述 |
| Thenable<string> | 一個解析為解碼後的 |
decode(content: Uint8Array, options: {uri: Uri}): Thenable<string>
將 Uint8Array 的內容解碼為 string。您必須一次性提供所有內容,以確保編碼能夠正確應用。請勿為此方法分塊解碼內容,這可能會導致結果不正確。
將根據設定和緩衝區的內容(例如位元組順序標記)選擇編碼。
注意,如果您解碼的內容不受編碼支援,結果可能會包含適當的替換字元。
- 丟擲 - 如果內容是二進位制的,此方法將丟擲錯誤。
| 引數 | 描述 |
|---|---|
| content: Uint8Array | 要解碼為 |
| options: {uri: Uri} | 選擇編碼的附加上下文。 |
| 返回值 | 描述 |
| Thenable<string> | 一個解析為解碼後的 |
encode(content: string): Thenable<Uint8Array>
將 string 的內容編碼為 Uint8Array。
將根據設定選擇編碼。
| 引數 | 描述 |
|---|---|
| content: string | 要解碼為 |
| 返回值 | 描述 |
| Thenable<Uint8Array> | 一個解析為編碼後的 |
encode(content: string, options: {encoding: string}): Thenable<Uint8Array>
使用提供的編碼將 string 的內容編碼為 Uint8Array。
| 引數 | 描述 |
|---|---|
| content: string | 要解碼為 |
| options: {encoding: string} | 選擇編碼的附加上下文。 |
| 返回值 | 描述 |
| Thenable<Uint8Array> | 一個解析為編碼後的 |
encode(content: string, options: {uri: Uri}): Thenable<Uint8Array>
將 string 的內容編碼為 Uint8Array。
將根據設定選擇編碼。
| 引數 | 描述 |
|---|---|
| content: string | 要解碼為 |
| options: {uri: Uri} | 選擇編碼的附加上下文。 |
| 返回值 | 描述 |
| Thenable<Uint8Array> | 一個解析為編碼後的 |
findFiles(include: GlobPattern, exclude?: GlobPattern, maxResults?: number, token?: CancellationToken): Thenable<Uri[]>
| 引數 | 描述 |
|---|---|
| include: GlobPattern | |
| exclude?: GlobPattern | 一個 glob 模式,用於定義要排除的檔案和資料夾。該 glob 模式將與結果匹配項相對於其工作區的路徑進行匹配。當為 |
| maxResults?: number | 結果的上限。 |
| token?: CancellationToken | 一個可用於向底層搜尋引擎發出取消訊號的 token。 |
| 返回值 | 描述 |
| Thenable<Uri[]> | 一個解析為資源識別符號陣列的 Thenable。如果沒有開啟 工作區資料夾,則返回無結果。 |
getConfiguration(section?: string, scope?: ConfigurationScope): WorkspaceConfiguration
獲取工作區配置物件。
當提供節識別符號時,將僅返回配置的該部分。節識別符號中的點被解釋為子訪問,例如 { myExt: { setting: { doIt: true }}} 和 getConfiguration('myExt.setting').get('doIt') === true。
當提供範圍時,將返回該範圍內的配置。範圍可以是資源或語言識別符號,或兩者兼而有之。
| 引數 | 描述 |
|---|---|
| section?: string | 用點分隔的識別符號。 |
| scope?: ConfigurationScope | 請求配置的範圍。 |
| 返回值 | 描述 |
| WorkspaceConfiguration | 完整的配置或其子集。 |
getWorkspaceFolder(uri: Uri): WorkspaceFolder | undefined
返回包含給定 URI 的工作區資料夾。
- 當給定的 URI 與任何工作區資料夾不匹配時,返回
undefined。 - 當給定的 URI 本身就是工作區資料夾時,返回輸入。
| 引數 | 描述 |
|---|---|
| uri: Uri | 一個 URI。 |
| 返回值 | 描述 |
| WorkspaceFolder | undefined | 工作區資料夾或 |
openNotebookDocument(uri: Uri): Thenable<NotebookDocument>
開啟一個筆記本。如果此筆記本已載入,則會提前返回。否則,筆記本將被載入,並且會觸發 onDidOpenNotebookDocument 事件。
請注意,返回的筆記本的生命週期由編輯器擁有,而不是由擴充套件擁有。這意味著 onDidCloseNotebookDocument 事件可能在開啟後隨時發生。
請注意,開啟筆記本並不會顯示筆記本編輯器。此函式僅返回一個筆記本文件,該文件可以在筆記本編輯器中顯示,也可以用於其他目的。
| 引數 | 描述 |
|---|---|
| uri: Uri | 要開啟的資源。 |
| 返回值 | 描述 |
| Thenable<NotebookDocument> | 解析為筆記本的 Promise。 |
openNotebookDocument(notebookType: string, content?: NotebookData): Thenable<NotebookDocument>
開啟一個未命名筆記本。當文件要儲存時,編輯器將提示使用者輸入檔案路徑。
| 引數 | 描述 |
|---|---|
| notebookType: string | 應使用的筆記本型別。 |
| content?: NotebookData | 筆記本的初始內容。 |
| 返回值 | 描述 |
| Thenable<NotebookDocument> | 解析為筆記本的 Promise。 |
openTextDocument(uri: Uri, options?: {encoding: string}): Thenable<TextDocument>
開啟一個文件。如果文件已開啟,則會提前返回。否則,文件將被載入,並且會觸發 didOpen 事件。
file方案:開啟磁碟上的檔案(openTextDocument(Uri.file(path)))。如果檔案不存在或無法載入,則會拒絕。untitled方案:開啟一個帶有關聯路徑的空白未命名檔案(openTextDocument(Uri.file(path).with({ scheme: 'untitled' })))。語言將從檔名派生。- 對於所有其他方案,會諮詢已貢獻的 文字文件內容提供程式 和 檔案系統提供程式。
請注意,返回的文件的生命週期由編輯器擁有,而不是由擴充套件擁有。這意味著 onDidClose 事件可能在開啟後隨時發生。
| 引數 | 描述 |
|---|---|
| uri: Uri | 標識要開啟的資源。 |
| options?: {encoding: string} | |
| 返回值 | 描述 |
| Thenable<TextDocument> | 解析為文件的 Promise。 |
openTextDocument(path: string, options?: {encoding: string}): Thenable<TextDocument>
openTextDocument(Uri.file(path)) 的簡寫。
| 引數 | 描述 |
|---|---|
| path: string | 磁碟上的檔案路徑。 |
| options?: {encoding: string} | |
| 返回值 | 描述 |
| Thenable<TextDocument> | 解析為文件的 Promise。 |
openTextDocument(options?: {content: string, encoding: string, language: string}): Thenable<TextDocument>
開啟一個未命名的文字文件。當文件要儲存時,編輯器將提示使用者輸入檔案路徑。options 引數允許指定文件的語言和/或內容。
| 引數 | 描述 |
|---|---|
| options?: {content: string, encoding: string, language: string} | 控制文件如何建立的選項。 |
| 返回值 | 描述 |
| Thenable<TextDocument> | 解析為文件的 Promise。 |
registerFileSystemProvider(scheme: string, provider: FileSystemProvider, options?: {isCaseSensitive: boolean, isReadonly: boolean | MarkdownString}): Disposable
為給定的方案(例如 ftp)註冊一個檔案系統提供程式。
每個方案只能有一個提供程式,並且當一個方案已被另一個提供程式宣告或被保留時,會丟擲錯誤。
| 引數 | 描述 |
|---|---|
| scheme: string | 提供程式註冊的 URI 方案。 |
| provider: FileSystemProvider | 檔案系統提供程式。 |
| options?: {isCaseSensitive: boolean, isReadonly: boolean | MarkdownString} | 關於提供程式的不可變元資料。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerNotebookSerializer(notebookType: string, serializer: NotebookSerializer, options?: NotebookDocumentContentOptions): Disposable
註冊一個筆記本序列化器。
筆記本序列化器必須透過 notebooks 擴充套件點進行貢獻。開啟筆記本檔案時,編輯器將傳送 onNotebook:<notebookType> 啟用事件,並且擴充套件必須相應地註冊其序列化器。
| 引數 | 描述 |
|---|---|
| notebookType: string | 一個筆記本。 |
| serializer: NotebookSerializer | 一個筆記本序列化器。 |
| options?: NotebookDocumentContentOptions | 定義應持久化哪些筆記本部分的可選上下文選項。 |
| 返回值 | 描述 |
| Disposable | 一個可Disposable,用於在登出此序列化器時解除註冊。 |
registerTaskProvider(type: string, provider: TaskProvider<Task>): Disposable
註冊一個任務提供程式。
- 已棄用 - 請改用
tasks名稱空間上的相應函式。
| 引數 | 描述 |
|---|---|
| type: string | 此提供程式註冊的任務型別。 |
| provider: TaskProvider<Task> | 一個任務提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
registerTextDocumentContentProvider(scheme: string, provider: TextDocumentContentProvider): Disposable
註冊一個文字文件內容提供程式。
每個方案只能註冊一個提供程式。
| 引數 | 描述 |
|---|---|
| scheme: string | 要註冊的 URI 方案。 |
| provider: TextDocumentContentProvider | 一個內容提供程式。 |
| 返回值 | 描述 |
| Disposable | 一個 Disposable,在被釋放時登出此提供程式。 |
save(uri: Uri): Thenable<Uri | undefined>
儲存由給定資源標識的編輯器,並返回結果資源,如果儲存不成功或未找到具有給定資源的編輯器,則返回 undefined。
請注意,必須開啟一個具有提供資源的編輯器才能進行儲存。
saveAll(includeUntitled?: boolean): Thenable<boolean>
儲存所有髒檔案。
| 引數 | 描述 |
|---|---|
| includeUntitled?: boolean | 也儲存在此會話期間建立的檔案。 |
| 返回值 | 描述 |
| Thenable<boolean> | 檔案儲存完成後解析的 thenable。對於任何未能儲存的檔案,將返回 |
saveAs(uri: Uri): Thenable<Uri | undefined>
將由給定資源標識的編輯器儲存到使用者提供的檔名,並返回結果資源,如果儲存不成功、被取消或未找到具有給定資源的編輯器,則返回 undefined。
請注意,必須開啟一個具有提供資源的編輯器才能另存為。
updateWorkspaceFolders(start: number, deleteCount: number, ...workspaceFoldersToAdd: Array<{name: string, uri: Uri}>): boolean
此方法將從索引 start 開始替換 deleteCount 個工作區資料夾,並可選地新增一組 workspaceFoldersToAdd 到 vscode.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()。
AccessibilityInformation
控制螢幕閱讀器行為的可訪問性資訊。
屬性
當專案獲得焦點時,螢幕閱讀器會讀取的標籤。
小部件的角色,該角色定義了螢幕閱讀器如何與其互動。當例如樹狀元素表現得像複選框時,應在特殊情況下設定角色。如果未指定角色,編輯器將自動選擇適當的角色。有關 ARIA 角色的更多資訊,請參見 https://w3c.github.io/aria/#widget_roles。
AuthenticationForceNewSessionOptions
在將標誌 forceNewSession 用於 authentication.getSession 時使用的可選選項。
- 已棄用 - 請改用 AuthenticationGetSessionPresentationOptions。
AuthenticationForceNewSessionOptions: AuthenticationGetSessionPresentationOptions
AuthenticationGetSessionOptions
在從 AuthenticationProvider 獲取 AuthenticationSession 時使用的選項。
屬性
account?: AuthenticationSessionAccountInformation
您希望獲取會話的帳戶。這會傳遞給身份驗證提供程式,用於建立正確的會話。
clearSessionPreference?: boolean
是否應清除現有的會話偏好設定。
對於支援一次登入多個帳戶的身份驗證提供程式,當呼叫 getSession 時,將提示使用者選擇要使用的帳戶。此偏好設定將一直保留,直到呼叫 getSession 並設定此標誌。
注意:偏好設定特定於擴充套件。因此,如果一個擴充套件呼叫 getSession,它不會影響另一個擴充套件呼叫 getSession 的會話偏好設定。此外,偏好設定是為當前工作區和全域性設定的。這意味著新的工作區將首先使用“全域性”值,然後當提供此標誌時,可以為該工作區設定新值。這也意味著預先存在的工作區不會丟失其偏好設定,如果新工作區設定了此標誌。
預設為 false。
createIfNone?: boolean | AuthenticationGetSessionPresentationOptions
如果沒有匹配的會話,是否應執行登入。
如果為 true,將顯示一個模態對話方塊,要求使用者登入。如果為 false,將在帳戶活動欄圖示上顯示一個編號徽章。將在選單下新增擴充套件的條目以登入。這允許悄悄提示使用者登入。
如果您提供選項,您也會看到對話方塊,但帶有提供的附加上下文。
如果存在匹配的會話但擴充套件尚未獲得訪問許可權,則將此設定為 true 也將導致立即顯示模態對話方塊,而 false 將在帳戶圖示上新增編號徽章。
預設為 false。
注意:您不能將此選項與 silent 一起使用。
forceNewSession?: boolean | AuthenticationGetSessionPresentationOptions
即使已有會話可用,是否應嘗試重新進行身份驗證。
如果為 true,將顯示一個模態對話方塊,要求使用者再次登入。這主要用於需要重新頒發令牌的場景,因為令牌已丟失某些授權。
如果您提供選項,您也會看到對話方塊,但帶有提供的附加上下文。
如果沒有現有會話且 forceNewSession 為 true,則其行為將與 createIfNone 完全相同。
預設為 false。
是否應在帳戶選單中顯示登入指示。
如果為 false,使用者將在帳戶選單上看到一個帶有擴充套件登入選項的徽章。如果為 true,則不會顯示任何指示。
預設為 false。
注意:您不能將此選項與任何其他會提示使用者的選項(如 createIfNone)一起使用。
AuthenticationGetSessionPresentationOptions
使用互動式選項 forceNewSession 和 createIfNone 呼叫 authentication.getSession 時使用的可選選項。
屬性
當要求使用者重新進行身份驗證時,將顯示給使用者的可選訊息。提供額外的上下文說明為何要求使用者重新進行身份驗證,有助於提高他們接受的可能性。
AuthenticationProvider
用於執行服務身份驗證的提供程式。
事件
onDidChangeSessions: Event<AuthenticationProviderAuthenticationSessionsChangeEvent>
當會話陣列發生更改或會話中的資料發生更改時觸發的 Event。
方法
createSession(scopes: readonly string[], options: AuthenticationProviderSessionOptions): Thenable<AuthenticationSession>
提示使用者登入。
如果登入成功,應觸發 onDidChangeSessions 事件。
如果登入失敗,應返回一個被拒絕的 Promise。
如果提供程式已指定不支援多個帳戶,則當存在與這些範圍匹配的現有會話時,不應呼叫此方法。
| 引數 | 描述 |
|---|---|
| scopes: readonly string[] | 新會話應建立的範圍(許可權)列表。 |
| options: AuthenticationProviderSessionOptions | 建立會話的附加選項。 |
| 返回值 | 描述 |
| Thenable<AuthenticationSession> | 解析為身份驗證會話的 Promise。 |
getSessions(scopes: readonly string[], options: AuthenticationProviderSessionOptions): Thenable<AuthenticationSession[]>
獲取會話列表。
| 引數 | 描述 |
|---|---|
| scopes: readonly string[] | 可選的範圍列表。如果提供,則返回的會話應與這些許可權匹配,否則應返回所有會話。 |
| options: AuthenticationProviderSessionOptions | 獲取會話的附加選項。 |
| 返回值 | 描述 |
| Thenable<AuthenticationSession[]> | 解析為身份驗證會話陣列的 Promise。 |
removeSession(sessionId: string): Thenable<void>
刪除與會話 ID 對應的會話。
如果刪除成功,應觸發 onDidChangeSessions 事件。
如果無法刪除會話,提供程式應以錯誤訊息拒絕。
| 引數 | 描述 |
|---|---|
| sessionId: string | 要刪除的會話的 ID。 |
| 返回值 | 描述 |
| Thenable<void> |
AuthenticationProviderAuthenticationSessionsChangeEvent
當 AuthenticationSession 被新增、刪除或更改時觸發的 Event。
屬性
added: readonly AuthenticationSession[]
changed: readonly AuthenticationSession[]
AuthenticationProvider 已更改的 AuthenticationSessions。當會話的資料(不包括 ID)更新時,會話會發生更改。一個例子是會話重新整理,導致為該會話設定了新的訪問令牌。
removed: readonly AuthenticationSession[]
AuthenticationProviderInformation
關於 AuthenticationProvider 的基本資訊。
屬性
身份驗證提供程式的唯一識別符號。
身份驗證提供程式的易讀名稱。
AuthenticationProviderOptions
建立 AuthenticationProvider 的選項。
屬性
supportsMultipleAccounts?: boolean
是否可以與此提供程式同時登入多個帳戶。如果未指定,則預設為 false。
AuthenticationProviderSessionOptions
屬性
account?: AuthenticationSessionAccountInformation
正在查詢的帳戶。如果提供了此項,提供程式應嘗試返回僅與此帳戶相關的會話。
AuthenticationSession
表示當前登入使用者的會話。
屬性
訪問令牌。此令牌應用於對服務進行身份驗證的請求。由 OAuth 普及。
account: AuthenticationSessionAccountInformation
與會話關聯的帳戶。
身份驗證會話的識別符號。
ID 令牌。此令牌包含使用者的身份資訊。由 OpenID Connect 普及。
會話訪問令牌授予的許可權。可用範圍由 AuthenticationProvider 定義。
AuthenticationSessionAccountInformation
與 AuthenticationSession 關聯的帳戶的資訊。
屬性
帳戶的唯一識別符號。
帳戶的易讀名稱。
AuthenticationSessionsChangeEvent
當 AuthenticationSession 被新增、刪除或更改時觸發的 Event。
屬性
provider: AuthenticationProviderInformation
其會話已更改的 AuthenticationProvider。
AuthenticationWwwAuthenticateRequest
表示基於 WWW-Authenticate 標頭值建立會話的引數。當 API 返回 401 並帶有指示需要其他身份驗證的 WWW-Authenticate 標頭時使用此引數。其詳細資訊將傳遞給身份驗證提供程式以建立會話。
- 注意 - 授權提供程式必須支援處理挑戰,特別是此 WWW-Authenticate 值中的挑戰。
- 注意 - 有關 WWW-Authenticate 的更多資訊,請參閱 https://mdn.club.tw/docs/Web/HTTP/Reference/Headers/WWW-Authenticate。
屬性
fallbackScopes?: readonly string[]
如果在 WWW-Authenticate 標頭中找不到範圍,則使用的備用範圍。
觸發此挑戰的原始 WWW-Authenticate 標頭值。該值將被身份驗證提供程式解析以提取必要的挑戰資訊。
AutoClosingPair
描述字串對,在鍵入開頭的字串時會自動插入結束字串。
屬性
鍵入開頭的字串時將自動插入的結束字串。
notIn?: SyntaxTokenType[]
不應自動關閉配對的令牌集。
將觸發自動插入結束字串的字串。
BranchCoverage
包含 StatementCoverage 分支的覆蓋率資訊。
建構函式
new BranchCoverage(executed: number | boolean, location?: Range | Position, label?: string): BranchCoverage
| 引數 | 描述 |
|---|---|
| executed: number | boolean | 此分支執行的次數,或指示其是否已執行的布林值(如果確切計數未知)。如果為零或 false,則該分支將被標記為未覆蓋。 |
| location?: Range | Position | 分支位置。 |
| label?: string | |
| 返回值 | 描述 |
| BranchCoverage |
屬性
此分支執行的次數,或指示其是否已執行的布林值(如果確切計數未知)。如果為零或 false,則該分支將被標記為未覆蓋。
分支的標籤,用於“未採用 ${label} 分支”的上下文,例如。
分支位置。
斷點
所有斷點型別的基類。
建構函式
new Breakpoint(enabled?: boolean, condition?: string, hitCondition?: string, logMessage?: string): Breakpoint
建立新的斷點
| 引數 | 描述 |
|---|---|
| enabled?: boolean | 斷點是否已啟用。 |
| condition?: string | 條件斷點的表示式 |
| hitCondition?: string | 控制斷點命中次數的表示式 |
| logMessage?: string | 斷點命中時顯示的日誌訊息 |
| 返回值 | 描述 |
| 斷點 |
屬性
條件斷點的可選表示式。
斷點是否已啟用。
可選表示式,用於控制忽略斷點多少次命中。
斷點的唯一 ID。
斷點命中時要記錄的可選訊息。{} 中的嵌入表示式由除錯介面卡進行插值。
斷點更改事件
描述 斷點 集合更改的事件。
屬性
added: readonly Breakpoint[]
新增的斷點。
changed: readonly Breakpoint[]
更改的斷點。
removed: readonly Breakpoint[]
刪除的斷點。
呼叫層次結構傳入呼叫
表示一個傳入呼叫,例如方法或建構函式的呼叫者。
建構函式
new CallHierarchyIncomingCall(item: CallHierarchyItem, fromRanges: Range[]): CallHierarchyIncomingCall
建立新的呼叫物件。
| 引數 | 描述 |
|---|---|
| item: CallHierarchyItem | 發起呼叫的項。 |
| fromRanges: Range[] | 調用出現的範圍。 |
| 返回值 | 描述 |
| 呼叫層次結構傳入呼叫 |
屬性
from: CallHierarchyItem
發起呼叫的項。
fromRanges: Range[]
調用出現的範圍。這相對於由 this.from 表示的呼叫者。
呼叫層次結構項
在呼叫層次結構的上下文中表示函式或建構函式等程式設計構造。
建構函式
new CallHierarchyItem(kind: SymbolKind, name: string, detail: string, uri: Uri, range: Range, selectionRange: Range): CallHierarchyItem
建立新的呼叫層次結構項。
| 引數 | 描述 |
|---|---|
| kind: SymbolKind | |
| name: string | |
| detail: string | |
| uri: Uri | |
| range: Range | |
| selectionRange: Range | |
| 返回值 | 描述 |
| 呼叫層次結構項 |
屬性
此項的更多詳細資訊,例如函式的簽名。
kind: SymbolKind
此項的種類。
此項的名稱。
range: Range
包含此符號的範圍,不包括前導/尾隨空格,但包括其他所有內容,例如註釋和程式碼。
selectionRange: Range
選擇和顯示此符號時應選擇和顯示的範圍,例如函式名稱。必須包含在 range 中。
tags?: readonly SymbolTag[]
此項的標籤。
uri: Uri
此項的資源識別符號。
呼叫層次結構傳出呼叫
表示一個傳出呼叫,例如從方法呼叫 getter,或從建構函式呼叫方法等。
建構函式
new CallHierarchyOutgoingCall(item: CallHierarchyItem, fromRanges: Range[]): CallHierarchyOutgoingCall
建立新的呼叫物件。
| 引數 | 描述 |
|---|---|
| item: CallHierarchyItem | 被呼叫的項 |
| fromRanges: Range[] | 調用出現的範圍。 |
| 返回值 | 描述 |
| 呼叫層次結構傳出呼叫 |
屬性
fromRanges: Range[]
呼叫此項的範圍。這是相對於呼叫者的範圍,例如傳遞給 provideCallHierarchyOutgoingCalls 的項,而不是 this.to。
被呼叫的項。
呼叫層次結構提供程式
呼叫層次結構提供程式介面描述了擴充套件和呼叫層次結構功能之間的約定,該功能允許瀏覽函式、方法、建構函式等的呼叫和呼叫者。
方法
prepareCallHierarchy(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<CallHierarchyItem | CallHierarchyItem[]>
透過返回由給定文件和位置表示的項來引導呼叫層次結構。此項將用作進入呼叫圖的入口。如果給定位置沒有項,提供程式應返回 undefined 或 null。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| position: Position | 呼叫命令的位置。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<CallHierarchyItem | CallHierarchyItem[]> | 一個或多個呼叫層次結構項,或一個解析為此類項的 thenable。可以透過返回 |
provideCallHierarchyIncomingCalls(item: CallHierarchyItem, token: CancellationToken): ProviderResult<CallHierarchyIncomingCall[]>
提供項的所有傳入呼叫,例如方法的所有呼叫者。在圖論術語中,這描述了呼叫圖內的有向和註解邊,例如給定的項是起始節點,結果是可以到達的節點。
| 引數 | 描述 |
|---|---|
| item: CallHierarchyItem | 應為其計算傳入呼叫的層次結構項。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<CallHierarchyIncomingCall[]> | 一組傳入呼叫,或一個解析為此類呼叫的 thenable。可以透過返回 |
provideCallHierarchyOutgoingCalls(item: CallHierarchyItem, token: CancellationToken): ProviderResult<CallHierarchyOutgoingCall[]>
提供項的所有傳出呼叫,例如從給定項呼叫函式、方法或建構函式。在圖論術語中,這描述了呼叫圖內的有向和註解邊,例如給定的項是起始節點,結果是可以到達的節點。
| 引數 | 描述 |
|---|---|
| item: CallHierarchyItem | 應為其計算傳出呼叫的層次結構項。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<CallHierarchyOutgoingCall[]> | 一組傳出呼叫,或一個解析為此類呼叫的 thenable。可以透過返回 |
取消錯誤
應使用此錯誤型別來指示操作已取消。
此型別可用於響應 取消令牌 被取消,或當操作被該操作的執行者取消時。
建構函式
new CancellationError(): CancellationError
建立新的取消錯誤。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| 取消錯誤 |
取消令牌
取消令牌會傳遞給非同步或長時間執行的操作以請求取消,例如,因為使用者繼續輸入而取消補全項的請求。
要獲取 CancellationToken 的例項,請使用 CancellationTokenSource。
屬性
isCancellationRequested: boolean
當令牌被取消時為 true,否則為 false。
onCancellationRequested: Event<any>
在取消時觸發的 事件。
取消令牌源
取消源建立並控制 取消令牌。
建構函式
new CancellationTokenSource(): CancellationTokenSource
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| 取消令牌源 |
屬性
token: CancellationToken
此源的取消令牌。
方法
在令牌上發出取消訊號。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
釋放物件並回收資源。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
字元對
一對字元,例如一對開括號和閉括號。
CharacterPair: [string, string]
聊天上下文
傳遞給參與者的額外上下文。
屬性
history: ReadonlyArray<ChatRequestTurn | ChatResponseTurn>
當前聊天會話中到目前為止的所有聊天訊息。目前,僅包含當前參與者的聊天訊息。
聊天錯誤詳情
表示聊天請求的錯誤結果。
屬性
顯示給使用者的錯誤訊息。
如果設定為 true,則響應將被部分模糊。
聊天后續問題
參與者建議的後續問題。
屬性
預設情況下,後續問題會發送到相同的參與者/命令。但可以設定此屬性來呼叫不同的命令。
向用戶顯示的標題。如果不指定,將預設顯示提示。
預設情況下,後續問題會發送到相同的參與者/命令。但可以設定此屬性透過 ID 呼叫不同的參與者。後續問題只能呼叫由同一副檔名貢獻的參與者。
傳送到聊天的訊息。
聊天后續問題提供程式
每次請求後都會呼叫一次,以獲取建議的後續問題顯示給使用者。使用者可以點選後續問題將其傳送到聊天。
方法
provideFollowups(result: ChatResult, context: ChatContext, token: CancellationToken): ProviderResult<ChatFollowup[]>
為給定結果提供後續問題。
| 引數 | 描述 |
|---|---|
| result: ChatResult | 此物件具有與參與者回撥返回的結果相同的屬性,包括 |
| context: ChatContext | 傳遞給參與者的額外上下文。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<ChatFollowup[]> |
聊天語言模型工具引用
使用者透過 # 語法內聯或透過回形針按鈕作為附件手動附加到其請求的工具的引用。
屬性
工具的名稱。指向 lm.tools 中列出的工具。
range?: [start: number, end: number]
在 prompt 中引用的開始和結束索引。如果未定義,則引用不是 prompt 文字的一部分。
注意,索引包含前導 # 字元,這意味著它們可用於按原樣修改 prompt。
聊天參與者
聊天參與者可以透過 字首在聊天會話中被使用者呼叫。當呼叫它時,它會處理聊天請求,並僅負責向用戶提供響應。聊天參與者使用 chat.createChatParticipant 建立。
事件
onDidReceiveFeedback: Event<ChatResultFeedback>
每當收到結果反饋時(例如,當用戶對結果進行點贊或點踩時)都會觸發的事件。
傳遞的 result 保證具有與此聊天參與者處理程式先前返回的結果相同的屬性。
屬性
followupProvider?: ChatFollowupProvider
每次請求後都會呼叫此提供程式來檢索建議的後續問題。
iconPath?: IconPath
用於在 UI 中顯示參與者的圖示。
此參與者的唯一 ID。
requestHandler: ChatRequestHandler
此參與者請求的處理程式。
方法
釋放此參與者並回收資源。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
聊天參與者工具令牌
在處理聊天請求的上下文中呼叫 lm.invokeTool 時可以傳遞給它的令牌。
ChatParticipantToolToken: never
聊天提示引用
對使用者新增到其聊天請求的值的引用。
屬性
此類引用的唯一識別符號。
可以用於 LLM prompt 的此值的描述。
range?: [start: number, end: number]
在 prompt 中引用的開始和結束索引。如果未定義,則引用不是 prompt 文字的一部分。
注意,索引包含前導 # 字元,這意味著它們可用於按原樣修改 prompt。
此引用的值。今天使用 string | Uri | Location 型別,但未來可能會擴充套件。
聊天請求
向聊天參與者的請求。
屬性
為此請求選擇的 ChatCommand 的名稱。
model: LanguageModelChat
這是當前在 UI 中選擇的模型。擴充套件可以使用此模型,或使用 lm.selectChatModels 來選擇另一個模型。請勿在請求生命週期之外保留此模型。
使用者輸入的提示。
有關此請求中使用的引用的資訊儲存在 ChatRequest.references 中。
注意,參與者的 [ChatParticipant.name name](#_ChatParticipant.name name) 和 [ChatCommand.name command](#_ChatCommand.name command) 不在 prompt 中。
references: readonly ChatPromptReference[]
在 prompt 中引用的引用及其值的列表。
注意,prompt 包含作者輸入的引用,由參與者進一步修改,例如透過內聯引用值或建立指向包含已解析值的標題的連結。引用按其在 prompt 中的範圍反向排序。這意味著 prompt 中的最後一個引用是此列表中的第一個。這簡化了 prompt 的字串操作。
在處理聊天請求的上下文中呼叫 lm.invokeTool 時可以傳遞給它的令牌。這會將工具呼叫與聊天會話關聯起來。
toolReferences: readonly ChatLanguageModelToolReference[]
使用者附加到其請求的工具列表。
當存在工具引用時,聊天參與者應使用 LanguageModelChatToolMode.Required 進行聊天請求,以強制語言模型為工具生成輸入。然後,參與者可以使用 lm.invokeTool 來使用該工具,並將結果附加到其對使用者 prompt 的請求中。該工具可能為使用者的請求提供有用的額外上下文。
聊天請求處理程式
ChatRequestHandler: (request: ChatRequest, context: ChatContext, response: ChatResponseStream, token: CancellationToken) => ProviderResult<ChatResult | void>
聊天請求輪次
表示聊天曆史中的使用者請求。
屬性
為此請求選擇的 ChatCommand 的名稱。
此請求的目標聊天參與者的 ID。
使用者輸入的提示。
有關此訊息中使用的引用的資訊儲存在 ChatRequestTurn.references 中。
注意,參與者的 [ChatParticipant.name name](#_ChatParticipant.name name) 和 [ChatCommand.name command](#_ChatCommand.name command) 不在 prompt 中。
references: ChatPromptReference[]
此訊息中使用的引用。
toolReferences: readonly ChatLanguageModelToolReference[]
附加到此請求的工具列表。
聊天響應錨點部分
表示聊天響應中作為錨點(呈現為指向目標的連結)的部分。
建構函式
new ChatResponseAnchorPart(value: Uri | Location, title?: string): ChatResponseAnchorPart
建立一個新的 ChatResponseAnchorPart。
| 引數 | 描述 |
|---|---|
| value: Uri | Location | 一個 URI 或位置。 |
| title?: string | 與 value 一起渲染的可選標題。 |
| 返回值 | 描述 |
| ChatResponseAnchorPart |
屬性
與 value 一起渲染的可選標題。
此錨點的目標。
ChatResponseCommandButtonPart
表示聊天響應中可執行命令的按鈕部分。
建構函式
new ChatResponseCommandButtonPart(value: Command): ChatResponseCommandButtonPart
建立一個新的 ChatResponseCommandButtonPart。
| 引數 | 描述 |
|---|---|
| value: Command | 點選按鈕時將執行的命令。 |
| 返回值 | 描述 |
| ChatResponseCommandButtonPart |
屬性
value: Command
點選按鈕時將執行的命令。
ChatResponseFileTree
表示聊天響應中的檔案樹結構。
屬性
children?: ChatResponseFileTree[]
子檔案樹的陣列,如果當前檔案樹是目錄。
檔案或目錄的名稱。
ChatResponseFileTreePart
表示聊天響應中檔案樹部分。
建構函式
new ChatResponseFileTreePart(value: ChatResponseFileTree[], baseUri: Uri): ChatResponseFileTreePart
建立一個新的 ChatResponseFileTreePart。
| 引數 | 描述 |
|---|---|
| value: ChatResponseFileTree[] | 檔案樹資料。 |
| baseUri: Uri | 此檔案樹的相對基礎 URI。 |
| 返回值 | 描述 |
| ChatResponseFileTreePart |
屬性
baseUri: Uri
此檔案樹的相對基礎 URI
value: ChatResponseFileTree[]
檔案樹資料。
ChatResponseMarkdownPart
表示聊天響應中以 Markdown 格式化部分。
建構函式
new ChatResponseMarkdownPart(value: string | MarkdownString): ChatResponseMarkdownPart
建立一個新的 ChatResponseMarkdownPart。
| 引數 | 描述 |
|---|---|
| value: string | MarkdownString | Markdown 字串或應解釋為 Markdown 的字串。不支援 MarkdownString.isTrusted 的布林形式。 |
| 返回值 | 描述 |
| ChatResponseMarkdownPart |
屬性
value: MarkdownString
Markdown 字串或應解釋為 Markdown 的字串。
ChatResponsePart
表示不同的聊天響應型別。
ChatResponsePart: ChatResponseMarkdownPart | ChatResponseFileTreePart | ChatResponseAnchorPart | ChatResponseProgressPart | ChatResponseReferencePart | ChatResponseCommandButtonPart
ChatResponseProgressPart
表示聊天響應中進度訊息的部分。
建構函式
new ChatResponseProgressPart(value: string): ChatResponseProgressPart
建立一個新的 ChatResponseProgressPart。
| 引數 | 描述 |
|---|---|
| value: string | 進度訊息 |
| 返回值 | 描述 |
| ChatResponseProgressPart |
屬性
進度訊息
ChatResponseReferencePart
表示聊天響應中單獨渲染於內容之外的引用部分。
建構函式
new ChatResponseReferencePart(value: Uri | Location, iconPath?: IconPath): ChatResponseReferencePart
建立一個新的 ChatResponseReferencePart。
| 引數 | 描述 |
|---|---|
| value: Uri | Location | 一個 URI 或位置 |
| iconPath?: IconPath | UI 中顯示的引用的圖示 |
| 返回值 | 描述 |
| ChatResponseReferencePart |
屬性
iconPath?: IconPath
引用的圖示。
引用的目標。
ChatResponseStream
ChatResponseStream 是參與者向聊天檢視返回內容的方式。它提供了幾種流式傳輸不同型別內容的方法,這些內容將在聊天檢視中以適當的方式呈現。參與者可以根據其要返回的內容型別使用輔助方法,也可以例項化一個 ChatResponsePart 並使用通用的 ChatResponseStream.push 方法返回它。
方法
anchor(value: Uri | Location, title?: string): void
將錨點部分推送到此流。push(new ChatResponseAnchorPart(value, title)) 的簡寫。錨點是對某種資源的內聯引用。
button(command: Command): void
將命令按鈕部分推送到此流。push(new ChatResponseCommandButtonPart(value, title)) 的簡寫。
| 引數 | 描述 |
|---|---|
| command: Command | 點選按鈕時將執行的命令。 |
| 返回值 | 描述 |
| void |
filetree(value: ChatResponseFileTree[], baseUri: Uri): void
將檔案樹部分推送到此流。push(new ChatResponseFileTreePart(value)) 的簡寫。
| 引數 | 描述 |
|---|---|
| value: ChatResponseFileTree[] | 檔案樹資料。 |
| baseUri: Uri | 此檔案樹的相對基礎 URI。 |
| 返回值 | 描述 |
| void |
markdown(value: string | MarkdownString): void
將 Markdown 部分推送到此流。push(new ChatResponseMarkdownPart(value)) 的簡寫。
| 引數 | 描述 |
|---|---|
| value: string | MarkdownString | Markdown 字串或應解釋為 Markdown 的字串。不支援 MarkdownString.isTrusted 的布林形式。 |
| 返回值 | 描述 |
| void |
將進度部分推送到此流。push(new ChatResponseProgressPart(value)) 的簡寫。
| 引數 | 描述 |
|---|---|
| value: string | 進度訊息 |
| 返回值 | 描述 |
| void |
push(part: ChatResponsePart): void
將一部分內容推送到此流。
| 引數 | 描述 |
|---|---|
| part: ChatResponsePart | 響應的一部分,已呈現或元資料 |
| 返回值 | 描述 |
| void |
reference(value: Uri | Location, iconPath?: IconPath): void
將引用推送到此流。push(new ChatResponseReferencePart(value)) 的簡寫。
注意,引用不會與響應一起內聯呈現。
ChatResponseTurn
表示聊天參與者在聊天曆史中的響應。
屬性
此響應來自的命令名稱。
此響應來自的聊天參與者的 ID。
response: ReadonlyArray<ChatResponseMarkdownPart | ChatResponseFileTreePart | ChatResponseAnchorPart | ChatResponseCommandButtonPart>
從聊天參與者收到的內容。只表示表示實際內容的流部分(非元資料)。
result: ChatResult
從聊天參與者收到的結果。
ChatResult
聊天請求的結果。
屬性
errorDetails?: ChatErrorDetails
如果請求導致錯誤,則此屬性定義了錯誤詳細資訊。
此結果的任意元資料。可以是任何內容,但必須是可 JSON 字串化的。
ChatResultFeedback
表示使用者對結果的反饋。
屬性
kind: ChatResultFeedbackKind
收到的反饋型別。
result: ChatResult
使用者提供反饋的 ChatResult。此物件具有與參與者回撥返回的結果相同的屬性,包括 metadata,但不是同一個例項。
ChatResultFeedbackKind
表示收到的使用者反饋的型別。
列舉成員
使用者將結果標記為無用。
使用者將結果標記為有用。
Clipboard
剪貼簿提供對系統剪貼簿的讀寫訪問。
方法
將當前剪貼簿內容讀取為文字。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| Thenable<string> | 一個可解析為字串的 thenable。 |
writeText(value: string): Thenable<void>
將文字寫入剪貼簿。
| 引數 | 描述 |
|---|---|
| value: string | |
| 返回值 | 描述 |
| Thenable<void> | 寫入完成後可解析的 thenable。 |
CodeAction
建構函式
new CodeAction(title: string, kind?: CodeActionKind): CodeAction
| 引數 | 描述 |
|---|---|
| title: string | 程式碼操作的標題。 |
| kind?: CodeActionKind | 程式碼操作的種類。 |
| 返回值 | 描述 |
| CodeAction |
屬性
command?: Command
此程式碼操作執行的 Command。
如果此命令丟擲異常,編輯器將在當前游標位置向用戶顯示異常訊息。
diagnostics?: Diagnostic[]
Diagnostics,此程式碼操作將解決這些問題。
標記程式碼操作當前無法應用。
| 引數 | 描述 |
|---|---|
| reason: string | 關於程式碼操作當前為何被停用的易於理解的描述。 這將在程式碼操作 UI 中顯示。 |
edit?: WorkspaceEdit
此程式碼操作執行的 workspace edit。
將其標記為首選操作。首選操作由 auto fix 命令使用,並且可以透過按鍵繫結進行定位。
快速修復應被標記為首選,如果它能正確解決潛在的錯誤。重構應被標記為首選,如果它是最合理的操作選擇。
kind?: CodeActionKind
程式碼操作的 Kind。
用於過濾程式碼操作。
此程式碼操作的簡短、易於理解的標題。
CodeActionContext
包含有關執行 程式碼操作時所處上下文的附加診斷資訊。
屬性
diagnostics: readonly Diagnostic[]
診斷的陣列。
only: CodeActionKind
請求返回的操作種類。
在此種類之外的操作將在 燈泡顯示之前被過濾掉。
triggerKind: CodeActionTriggerKind
請求程式碼操作的原因。
CodeActionKind
程式碼操作的種類。
種類是由 . 分隔的識別符號的層次結構列表,例如 "refactor.extract.function"。
程式碼操作種類用於編輯器中的 UI 元素,例如重構上下文選單。使用者也可以使用 editor.action.codeAction 命令觸發具有特定種類的程式碼操作。
靜態
Empty: CodeActionKind
空種類。
Notebook: CodeActionKind
適用於整個筆記本範圍的所有程式碼操作的基礎種類。使用此種類的 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: CodeActionKind
快速修復操作的基礎種類:quickfix。
快速修復操作旨在解決程式碼中的問題,並在常規程式碼操作上下文選單中顯示。
Refactor: CodeActionKind
重構操作的基礎種類:refactor
重構操作顯示在重構上下文選單中。
RefactorExtract: CodeActionKind
重構提取操作的基礎種類:refactor.extract
示例提取操作
- 提取方法
- 提取函式
- 提取變數
- 從類中提取介面
- ...
RefactorInline: CodeActionKind
重構內聯操作的基礎種類:refactor.inline
示例內聯操作
- 行內函數
- 內聯變數
- 內聯常量
- ...
RefactorMove: CodeActionKind
重構移動操作的基礎種類:refactor.move
示例移動操作
- 將函式移動到新檔案
- 在類之間移動屬性
- 將方法移動到基類
- ...
RefactorRewrite: CodeActionKind
重構重寫操作的基礎種類:refactor.rewrite
示例重寫操作
- 將 JavaScript 函式轉換為類
- 新增或刪除引數
- 封裝欄位
- 將方法設為靜態
- ...
Source: CodeActionKind
源操作的基礎種類:source
原始碼操作應用於整個檔案。它們必須顯式請求,並且不會顯示在常規的 燈泡選單中。源操作可以在儲存時使用 editor.codeActionsOnSave 執行,並且也會顯示在 source 上下文選單中。
SourceFixAll: CodeActionKind
自動修復源操作的基礎種類:source.fixAll。
修復所有操作會嘗試自動修復沒有明確修復且不需要使用者輸入的問題。它們不應抑制錯誤或執行不安全的操作,例如生成新型別或類。
SourceOrganizeImports: CodeActionKind
組織匯入源操作的基礎種類:source.organizeImports。
建構函式
new CodeActionKind(value: string): CodeActionKind
私有建構函式,請使用靜態 CodeActionKind.XYZ 從現有的程式碼操作種類派生。
| 引數 | 描述 |
|---|---|
| value: string | 種類的值,例如 |
| 返回值 | 描述 |
| CodeActionKind |
屬性
種類的字串值,例如 "refactor.extract.function"。
方法
append(parts: string): CodeActionKind
透過將更具體的選擇器附加到當前種類來建立新種類。
不會修改當前種類。
| 引數 | 描述 |
|---|---|
| parts: string | |
| 返回值 | 描述 |
| CodeActionKind |
contains(other: CodeActionKind): boolean
檢查 other 是否是此 CodeActionKind 的子種類。
例如,"refactor.extract" 種類包含 "refactor.extract" 和 "refactor.extract.function",但不包含 "unicorn.refactor.extract",或 "refactor.extractAll" 或 refactor。
| 引數 | 描述 |
|---|---|
| other: CodeActionKind | 要檢查的種類。 |
| 返回值 | 描述 |
| 布林值 |
intersects(other: CodeActionKind): boolean
檢查此程式碼操作種類是否與 other 相交。
例如,"refactor.extract" 種類與 refactor、"refactor.extract" 和 "refactor.extract.function" 相交,但不與 "unicorn.refactor.extract" 或 "refactor.extractAll" 相交。
| 引數 | 描述 |
|---|---|
| other: CodeActionKind | 要檢查的種類。 |
| 返回值 | 描述 |
| 布林值 |
CodeActionProvider<T>
提供程式碼的上下文操作。程式碼操作通常用於修復問題或美化/重構程式碼。
程式碼操作通過幾種不同的方式呈現給使用者
燈泡功能,它在當前游標位置顯示程式碼操作列表。燈泡的操作列表包括快速修復和重構。- 作為使用者可以執行的命令,例如
Refactor。使用者可以從命令面板或使用按鍵繫結執行這些命令。 - 作為源操作,例如
Organize Imports。 - 快速修復顯示在問題檢視中。
- 由
editor.codeActionsOnSave設定在儲存時應用的更改。
方法
provideCodeActions(document: TextDocument, range: Range | Selection, context: CodeActionContext, token: CancellationToken): ProviderResult<Array<Command | T>>
獲取文件中給定範圍的程式碼操作。
僅為請求的範圍返回與使用者相關的程式碼操作。另外,請牢記返回的程式碼操作在 UI 中的顯示方式。例如,燈泡小部件和 `Refactor` 命令會將返回的程式碼操作顯示為列表,因此不要返回過多可能使使用者不知所措的程式碼操作。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| range: Range | Selection | 呼叫命令的選擇器或範圍。如果正在請求當前活動編輯器中的程式碼操作,則始終是 selection。 |
| context: CodeActionContext | 提供有關正在請求哪些程式碼操作的附加資訊。您可以使用此資訊來檢視編輯器正在請求哪種特定型別的程式碼操作,以便返回更相關的操作並避免返回編輯器將丟棄的無關程式碼操作。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<Array<Command | T>> | 程式碼運算元組,例如快速修復或重構。可以透過返回 `undefined`、`null` 或空陣列來表示缺少結果。 我們還出於向後相容的原因支援返回 `Command`,但所有新擴充套件都應返回 `CodeAction` 物件。 |
resolveCodeAction(codeAction: T, token: CancellationToken): ProviderResult<T>
給定一個程式碼操作,填寫其 edit 屬性。其他所有屬性(如 title)的更改將被忽略。具有 edit 的程式碼操作將不會被解析。
請注意,返回命令而非程式碼操作的程式碼操作提供程式無法成功實現此函式。返回命令已棄用,應改用程式碼操作。
| 引數 | 描述 |
|---|---|
| codeAction: T | 一個程式碼操作。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T> | 已解析的程式碼操作或解析為該操作的 thenable。返回給定的 `item` 也是可以的。當沒有返回結果時,將使用給定的 `item`。 |
CodeActionProviderMetadata
有關 CodeActionProvider 所提供程式碼操作型別的元資料。
屬性
documentation?: ReadonlyArray<{command: Command, kind: CodeActionKind}>
一組程式碼操作的靜態文件。
當滿足以下任一條件時,將顯示來自提供程式的文件:
編輯器請求了 `kind` 型別的程式碼操作。在這種情況下,編輯器將顯示與所請求的程式碼操作型別最匹配的文件。例如,如果提供程式同時擁有 `Refactor` 和 `RefactorExtract` 的文件,當用戶請求 `RefactorExtract` 的程式碼操作時,編輯器將使用 `RefactorExtract` 的文件,而不是 `Refactor` 的文件。
提供程式返回了 `kind` 型別的任何程式碼操作。
每個提供程式最多顯示一條文件條目。
providedCodeActionKinds?: readonly CodeActionKind[]
CodeActionProvider 可能返回的 CodeActionKind 列表。
此列表用於確定是否應呼叫給定的 `CodeActionProvider`。為避免不必要的計算,每個 `CodeActionProvider` 都應列出 `providedCodeActionKinds`。種類列表可以是通用的,例如 `[CodeActionKind.Refactor]`,或者列出提供的所有種類,例如 `[CodeActionKind.Refactor.Extract.append('function'), CodeActionKind.Refactor.Extract.append('constant'), ...]`。
CodeActionTriggerKind
請求程式碼操作的原因。
列舉成員
程式碼操作由使用者或擴充套件顯式請求。
程式碼操作是自動請求的。
這通常發生在檔案中的當前選擇發生更改時,但也可以在檔案內容更改時觸發。
CodeLens
程式碼 Lens 表示一個應與原始碼一起顯示的 Command,例如引用次數、執行測試的方法等。
當沒有關聯命令時,程式碼 Lens 是未解析的。出於效能原因,程式碼 Lens 的建立和解析應分兩個階段進行。
另請參閱
建構函式
new CodeLens(range: Range, command?: Command): CodeLens
建立一個新的程式碼 Lens 物件。
屬性
command?: Command
此程式碼 Lens 所代表的命令。
當有關聯命令時為 `true`。
range: Range
此程式碼 Lens 有效的範圍。應僅跨單行。
CodeLensProvider<T>
程式碼 Lens 提供程式會在原始碼文字中新增 命令。這些命令將顯示在原始碼文字之間的專用水平行上。
事件
onDidChangeCodeLenses?: Event<void>
一個可選的事件,用於指示此提供程式的程式碼 Lens 已更改。
方法
provideCodeLenses(document: TextDocument, token: CancellationToken): ProviderResult<T[]>
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T[]> | 程式碼 Lens 陣列或解析為該陣列的 thenable。可以透過返回 `undefined`、`null` 或空陣列來表示缺少結果。 |
resolveCodeLens(codeLens: T, token: CancellationToken): ProviderResult<T>
此函式將針對每個可見的程式碼 Lens 呼叫,通常在滾動時以及呼叫 compute-lenses 之後。
| 引數 | 描述 |
|---|---|
| codeLens: T | 需要解析的程式碼 Lens。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T> | 已解析的程式碼 Lens 或解析為該 Lens 的 thenable。給定的已解析程式碼 Lens 或 thenable。 |
Color
表示 RGBA 空間中的顏色。
建構函式
new Color(red: number, green: number, blue: number, alpha: number): Color
建立一個新的顏色例項。
| 引數 | 描述 |
|---|---|
| red: number | 紅色分量。 |
| green: number | 綠色分量。 |
| blue: number | 藍色分量。 |
| alpha: number | Alpha 分量。 |
| 返回值 | 描述 |
| 顏色 |
屬性
此顏色 Alpha 分量,範圍為 `[0-1]`。
此顏色藍色分量,範圍為 `[0-1]`。
此顏色綠色分量,範圍為 `[0-1]`。
此顏色紅色分量,範圍為 `[0-1]`。
ColorInformation
表示文件中的顏色範圍。
建構函式
new ColorInformation(range: Range, color: Color): ColorInformation
屬性
color: Color
此顏色範圍的實際顏色值。
range: Range
顏色在文件中出現的範圍。
ColorPresentation
顏色表示物件描述了 Color 應如何表示為文字以及從原始碼中引用它所需的編輯。
對於某些語言,一種顏色可以有多種表示形式,例如,CSS 可以用常量 `Red`、十六進位制值 `#ff0000` 或 RGBA 和 HSLA 形式來表示紅色。在 C# 中,則有其他表示形式,例如 `System.Drawing.Color.Red`。
建構函式
new ColorPresentation(label: string): ColorPresentation
建立一個新的顏色表示。
| 引數 | 描述 |
|---|---|
| label: string | 此顏色表示的標籤。 |
| 返回值 | 描述 |
| 顏色表示 |
屬性
additionalTextEdits?: TextEdit[]
在選擇此顏色表示時應用的附加 text edits 的可選陣列。編輯不得與主 edit 或彼此重疊。
此顏色表示的標籤。它將顯示在顏色選擇器的標題上。預設情況下,這也是選擇此顏色表示時插入的文字。
textEdit?: TextEdit
ColorTheme
表示一個顏色主題。
屬性
kind: ColorThemeKind
此顏色主題的型別:淺色、深色、高對比度深色和高對比度淺色。
ColorThemeKind
表示顏色主題型別。
列舉成員
淺色主題。
深色主題。
高對比度深色主題。
高對比度淺色主題。
Command
表示對命令的引用。提供一個 `title`,它將用於在 UI 中表示命令,還可以選擇性地提供一個引數陣列,在呼叫命令處理程式函式時將傳遞這些引數。
屬性
命令處理程式應呼叫的引數。
實際命令處理程式的識別符號。
命令的標題,例如 `save`。
命令在 UI 中顯示時的工具提示。
Comment
評論在編輯器或評論面板中顯示,具體取決於其提供方式。
屬性
author: CommentAuthorInformation
評論的 作者資訊。
body: string | MarkdownString
人類可讀的評論正文。
評論的上下文值。這可用於貢獻特定於評論的操作。例如,評論會獲得一個上下文值 `editable`。當使用 `menus` 擴充套件點為 `comments/comment/title` 貢獻操作時,您可以在 `when` 表示式中為鍵 `comment` 指定上下文值,例如 `comment == editable`。
"contributes": {
"menus": {
"comments/comment/title": [
{
"command": "extension.deleteComment",
"when": "comment == editable"
}
]
}
}
這將僅為上下文值為 `editable` 的評論顯示操作 `extension.deleteComment`。
可選標籤,用於描述 Comment。如果存在,標籤將顯示在作者姓名旁邊。
mode: CommentMode
Comment mode of the comment.
reactions?: CommentReaction[]
Comment 的可選反應。
將顯示在評論中的可選時間戳。日期將根據使用者的區域設定和設定進行格式化。
CommentAuthorInformation
Comment 的作者資訊。
屬性
iconPath?: Uri
作者的可選圖示路徑。
評論作者的顯示名稱。
CommentController
評論控制器能夠為編輯器提供 評論 支援,併為使用者提供各種與評論互動的方式。
屬性
commentingRangeProvider?: CommentingRangeProvider
可選的評論範圍提供程式。為任何給定的資源 URI 提供支援評論的 範圍 列表。
如果未提供,使用者將無法留下任何評論。
此評論控制器的 ID。
此評論控制器的可讀標籤。
options?: CommentOptions
評論控制器選項。
reactionHandler?: (comment: Comment, reaction: CommentReaction) => Thenable<void>
用於在 Comment 上建立和刪除反應的可選反應處理程式。
| 引數 | 描述 |
|---|---|
| comment: Comment | |
| reaction: CommentReaction | |
| 返回值 | 描述 |
| Thenable<void> |
方法
createCommentThread(uri: Uri, range: Range, comments: readonly Comment[]): CommentThread
建立 comment thread。建立後,評論執行緒將在可見的文字編輯器(如果資源匹配)和評論面板中顯示。
Dispose 此評論控制器。
Dispose 後,此評論控制器建立的所有 comment threads 也將從編輯器和評論面板中移除。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
CommentingRangeProvider
comment controller 的評論範圍提供程式。
方法
provideCommentingRanges(document: TextDocument, token: CancellationToken): ProviderResult<Range[] | CommentingRanges>
提供一個允許建立新評論執行緒的範圍列表,或為給定文件提供 null。
| 引數 | 描述 |
|---|---|
| document: TextDocument | |
| token: CancellationToken | |
| 返回值 | 描述 |
| ProviderResult<Range[] | CommentingRanges> |
CommentingRanges
CommentingRangeProvider 啟用的評論範圍。
屬性
允許在沒有特定範圍的情況下向檔案新增評論。
ranges?: Range[]
允許建立新評論執行緒的範圍。
CommentMode
Comment 的評論模式。
列舉成員
顯示評論編輯器。
顯示評論的預覽。
CommentOptions
表示 comment controller 的 options。
屬性
當評論輸入框聚焦時,其中顯示的佔位符的可選字串。
當評論輸入框摺疊時,其中顯示的提示的可選字串。
CommentReaction
Comment 的反應。
屬性
評論的 作者 是否已對此反應做出反應。
對此反應做出反應的使用者數量。
iconPath: string | Uri
UI 中顯示的反應圖示。
反應的顯示標籤。
CommentReply
在 `comments/commentThread/context` 中註冊的操作的命令引數。
屬性
評論編輯器中的值。
thread: CommentThread
活動的 comment thread。
CommentRule
描述語言的評論工作方式。
屬性
blockComment?: CharacterPair
塊註釋字元對,例如 `/* block comment */`。
行註釋令牌,例如 `// this is a comment`。
CommentThread
一組 comments,代表文件中特定範圍內的對話。
屬性
canReply: boolean | CommentAuthorInformation
該執行緒是否支援回覆。預設為 true。
collapsibleState: CommentThreadCollapsibleState
在開啟文件時,該執行緒應摺疊還是展開。預設為 Collapsed。
comments: readonly Comment[]
執行緒的排序評論。
評論執行緒的上下文值。這可用於貢獻特定於評論執行緒的操作。例如,評論執行緒會獲得一個上下文值 `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 的可選人類可讀標籤。
range: Range
評論執行緒在文件內的範圍。執行緒圖示將顯示在範圍的最後一行。當設定為 undefined 時,評論將與檔案關聯,而不是與特定範圍關聯。
state?: CommentThreadState
評論執行緒的可選狀態,它可能影響評論的顯示方式。
uri: Uri
建立執行緒的文件的 URI。
方法
Dispose 此評論執行緒。
Dispose 後,此評論執行緒將在適當的時候從可見編輯器和評論面板中移除。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
CommentThreadCollapsibleState
comment thread 的可摺疊狀態。
列舉成員
確定專案已摺疊。
確定專案已展開。
CommentThreadState
評論執行緒的狀態。
列舉成員
未解決的執行緒狀態。
已解決的執行緒狀態。
CompletionContext
包含觸發 補全提供程式 的上下文的附加資訊。
屬性
觸發補全項提供程式的字元。
如果提供程式不是由字元觸發的,則為 undefined。
觸發補全提供程式時,觸發字元已在文件中。
triggerKind: CompletionTriggerKind
補全的觸發方式。
CompletionItem
補全項代表一個文字片段,該片段被提議用於完成正在鍵入的文字。
僅透過 標籤 建立補全項就足夠了。在這種情況下,補全項將用給定的標籤或 插入文字 替換游標之前的 單詞。否則,將使用給定的 編輯。
在編輯器中選擇補全項時,其定義的或合成的文字編輯將應用於所有游標/選擇,而 附加文字編輯 將按提供的方式應用。
另請參閱
建構函式
new CompletionItem(label: string | CompletionItemLabel, kind?: CompletionItemKind): CompletionItem
建立一個新的補全項。
補全項必須至少有一個 標籤,該標籤將用作插入文字,並用於排序和過濾。
| 引數 | 描述 |
|---|---|
| label: string | CompletionItemLabel | 補全的標籤。 |
| kind?: CompletionItemKind | 補全的 型別。 |
| 返回值 | 描述 |
| CompletionItem |
屬性
additionalTextEdits?: TextEdit[]
command?: Command
在插入此補全項之後執行的可選 命令。注意,對當前文件的其他修改應使用 additionalTextEdits 屬性進行描述。
當此補全項處於活動狀態時按下的一組可選字元,按下這些字元將首先接受補全項,然後鍵入該字元。注意,所有提交字元的 length 都應為 1,多餘的字元將被忽略。
一個人類可讀的字串,包含此項的附加資訊,例如型別或符號資訊。
documentation?: string | MarkdownString
一個人類可讀的字串,表示文件註釋。
insertText?: string | SnippetString
選擇此補全項時應插入到文件中的字串或片段。如果為 falsy,則使用 標籤。
保持 插入文字 中的空白符不變。預設情況下,編輯器會調整新行的前導空格,使其與接受補全項的行的縮排匹配 - 設定為 true 將阻止此操作。
kind?: CompletionItemKind
此補全項的型別。編輯器根據型別選擇圖示。
label: string | CompletionItemLabel
此補全項的標籤。預設情況下,這也是選擇此補全項時插入的文字。
顯示時選擇此項。注意,只能選擇一個補全項,由編輯器決定選擇哪個項。規則是選擇最匹配的項中的第一個。
range?: Range | {inserting: Range, replacing: Range}
tags?: readonly CompletionItemTag[]
此補全項的標籤。
textEdit?: TextEdit
- 已棄用 - 請改用
CompletionItem.insertText和CompletionItem.range。
選擇此補全項時應用於文件的 編輯。如果提供了編輯,則忽略 insertText 的值。
編輯的 範圍 必須是單行的,並且與請求補全的行相同。
CompletionItemKind
補全項型別。
列舉成員
Text 補全項型別。
Method 補全項型別。
Function 補全項型別。
Constructor 補全項型別。
Field 補全項型別。
Variable 補全項型別。
Class 補全項型別。
Interface 補全項型別。
Module 補全項型別。
Property 補全項型別。
Unit 補全項型別。
Value 補全項型別。
Enum 補全項型別。
Keyword 補全項型別。
Snippet 補全項型別。
Color 補全項型別。
File 補全項型別。
Reference 補全項型別。
Folder 補全項型別。
EnumMember 補全項型別。
Constant 補全項型別。
Struct 補全項型別。
Event 補全項型別。
Operator 補全項型別。
TypeParameter 補全項型別。
User 補全項型別。
Issue 補全項型別。
CompletionItemLabel
一個結構化的 補全項 標籤。
屬性
一個可選的字串,該字串在 CompletionItemLabel.detail 之後以不顯眼的方式渲染。應使用此字串來表示完全限定名稱或檔案路徑。
一個可選的字串,該字串在 標籤 之後立即以不顯眼的方式渲染,不帶任何空格。應使用此字串來表示函式簽名或型別註解。
此補全項的標籤。
預設情況下,這也是選擇此補全項時插入的文字。
CompletionItemProvider<T>
補全項提供程式介面定義了擴充套件和 IntelliSense 之間的契約。
提供程式可以透過實現 resolveCompletionItem 函式來延遲計算 detail 和 documentation 屬性。但是,對於初始排序和過濾至關重要的屬性,如 sortText、filterText、insertText 和 range,在解析過程中不得更改。
提供程式透過使用者的手勢顯式請求補全,或者根據配置,在鍵入單詞或觸發字元時隱式請求補全。
方法
provideCompletionItems(document: TextDocument, position: Position, token: CancellationToken, context: CompletionContext): ProviderResult<CompletionList<T> | T[]>
為給定位置和文件提供補全項。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| position: Position | 呼叫命令的位置。 |
| token: CancellationToken | 取消令牌。 |
| context: CompletionContext | 補全的觸發方式。 |
| 返回值 | 描述 |
| ProviderResult<CompletionList<T> | T[]> | 一組補全項、一個 補全列表 或一個解析為其中之一的 thenable。可以透過返回 |
resolveCompletionItem(item: T, token: CancellationToken): ProviderResult<T>
給定一個補全項,填充更多資料,例如 文件註釋 或 詳細資訊。
編輯器將只解析一次補全項。
注意,此函式在補全項已在 UI 中顯示或已選擇某個項進行插入時呼叫。因此,任何改變表示形式(標籤、排序、過濾等)或(主要)插入行為(insertText)的屬性都不能更改。
此函式可以填充 additionalTextEdits。但是,這意味著一個項可能會在解析完成之前插入,在這種情況下,編輯器將盡最大努力仍然應用這些附加文字編輯。
| 引數 | 描述 |
|---|---|
| item: T | 一個當前在 UI 中活動的補全項。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T> | 已解析的補全項或解析為該項的 thenable。返回給定的 |
CompletionItemTag
補全項標籤是用於調整補全項渲染的額外註解。
列舉成員
將補全項渲染為過時,通常使用刪除線。
CompletionList<T>
表示要呈現在編輯器中的 補全項 的集合。
建構函式
new CompletionList<T extends CompletionItem>(items?: T[], isIncomplete?: boolean): CompletionList<T>
建立一個新的補全列表。
| 引數 | 描述 |
|---|---|
| items?: T[] | 補全項。 |
| isIncomplete?: boolean | 列表不完整。 |
| 返回值 | 描述 |
| CompletionList<T> |
屬性
此列表不完整。繼續鍵入應導致重新計算此列表。
補全項。
CompletionTriggerKind
如何觸發 補全提供程式
列舉成員
正常觸發了補全。
透過觸發字元觸發了補全。
TriggerForIncompleteCompletions: 2
由於當前補全列表不完整而重新觸發了補全
ConfigurationChangeEvent
描述配置更改的事件
方法
affectsConfiguration(section: string, scope?: ConfigurationScope): boolean
檢查給定部分是否已更改。如果提供了作用域,則檢查在給定作用域下的資源的部分是否已更改。
| 引數 | 描述 |
|---|---|
| section: string | 配置名稱,支援點分隔的名稱。 |
| scope?: ConfigurationScope | 檢查時使用的一個作用域。 |
| 返回值 | 描述 |
| 布林值 | 如果給定的部分已更改,則為 |
ConfigurationScope
配置作用域可以是
- 一個代表資源的 Uri
- 一個代表已開啟文字文件的 TextDocument
- 一個代表工作區的 WorkspaceFolder
- 一個包含
uri: 可選的文字文件 UrilanguageId: 文字文件的語言識別符號
ConfigurationScope: Uri | TextDocument | WorkspaceFolder | {languageId: string, uri: Uri}
ConfigurationTarget
配置目標
列舉成員
全域性配置
工作區配置
工作區資料夾配置
CustomDocument
表示由 CustomEditorProvider 使用的自定義文件。
自定義文件僅在給定的 CustomEditorProvider 中使用。CustomDocument 的生命週期由編輯器管理。當不再引用 CustomDocument 時,它將被釋放。
屬性
uri: Uri
此文件的關聯 URI。
方法
釋放自定義文件。
當不再有對給定 CustomDocument 的引用時(例如,當與該文件關聯的所有編輯器都關閉時),編輯器將呼叫此函式。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
CustomDocumentBackup
CustomDocument 的備份。
屬性
備份的唯一識別符號。
當從備份開啟自定義編輯器時,此 ID 將被傳回給您的擴充套件程式,在 openCustomDocument 中。
方法
刪除當前備份。
當編輯器確定當前備份不再需要時(例如,當建立新備份或儲存檔案時),編輯器將呼叫此函式。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
CustomDocumentBackupContext
用於實現 CustomDocumentBackup 的附加資訊。
屬性
destination: Uri
寫入新備份的建議檔案位置。
請注意,您的擴充套件程式可以自由忽略此項,並使用自己的備份策略。
如果編輯器是針對當前工作區中的資源的,則 destination 將指向 ExtensionContext.storagePath 內的一個檔案。destination 的父資料夾可能不存在,因此請確保在將備份寫入該位置之前建立它。
CustomDocumentContentChangeEvent<T>
由擴充套件程式觸發的事件,用於向編輯器發出訊號,表明 CustomDocument 的內容已更改。
屬性
內容更改的文件。
CustomDocumentEditEvent<T>
由擴充套件程式觸發的事件,用於向編輯器發出訊號,表明 CustomDocument 上發生了編輯。
屬性
發生編輯的文件。
描述編輯的顯示名稱。
這將在 UI 中顯示給使用者,用於撤銷/重做操作。
方法
重做編輯操作。
當用戶重做此編輯時,編輯器會呼叫此方法。要實現 redo,您的擴充套件應該將文件和編輯器恢復到新增到編輯器內部編輯堆疊中的狀態,就在 onDidChangeCustomDocument 之前。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void | Thenable<void> |
撤銷編輯操作。
當用戶撤銷此編輯時,編輯器會呼叫此方法。要實現 undo,您的擴充套件應該將文件和編輯器恢復到新增到編輯器內部編輯堆疊中的狀態,就在 onDidChangeCustomDocument 之前。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void | Thenable<void> |
CustomDocumentOpenContext
關於開啟自定義文件的附加資訊。
屬性
用於恢復文件的備份 ID,如果沒有備份則為 undefined。
如果提供了此項,您的擴充套件應從備份中恢復編輯器,而不是從使用者工作區的讀取檔案。
untitledDocumentData: Uint8Array
如果 URI 是一個未命名的檔案,則會填充該檔案的位元組資料。
如果提供了此項,您的擴充套件應使用此位元組資料,而不是在傳遞的 URI 上執行 fs API。
CustomEditorProvider<T>
使用自定義文件模型的可編輯自定義編輯器的提供程式。
自定義編輯器使用 CustomDocument 作為其文件模型,而不是 TextDocument。這使擴充套件能夠完全控制諸如編輯、儲存和備份等操作。
在處理二進位制檔案或更復雜場景時,您應該使用這種型別的自定義編輯器。對於簡單的基於文字的文件,請改用 CustomTextEditorProvider。
事件
onDidChangeCustomDocument: Event<CustomDocumentEditEvent<T>> | Event<CustomDocumentContentChangeEvent<T>>
訊號自定義編輯器中發生了一個編輯。
每當自定義編輯器中發生編輯時,您的擴充套件都必須觸發此事件。編輯可以是任何內容,從更改文字、裁剪影像到重新排序列表。您的擴充套件可以自由定義編輯是什麼以及每個編輯儲存什麼資料。
觸發 onDidChange 會導致編輯器被標記為髒。當用戶儲存或恢復檔案時,此狀態會被清除。
支援撤銷/重做操作的編輯器在發生編輯時必須觸發 CustomDocumentEditEvent。這允許使用者使用編輯器的標準鍵盤快捷鍵來撤銷和重做該編輯。如果使用者撤銷了所有編輯直到最後一個儲存狀態,編輯器還將標記為不再是髒的。
支援編輯但無法使用編輯器標準撤銷/重做機制的編輯器必須觸發 CustomDocumentContentChangeEvent。對於不支援撤銷/重做的編輯器,使用者清除髒狀態的唯一方法是 save 或 revert 檔案。
編輯器應該只觸發 CustomDocumentEditEvent 事件,或者只觸發 CustomDocumentContentChangeEvent 事件。
方法
backupCustomDocument(document: T, context: CustomDocumentBackupContext, cancellation: CancellationToken): Thenable<CustomDocumentBackup>
備份一個髒的自定義文件。
備份用於熱退出和防止資料丟失。您的 backup 方法應將資源持久化到其當前狀態,即應用了編輯的狀態。最常見的是將資源儲存到 ExtensionContext.storagePath。當編輯器重新載入並且您的自定義編輯器為某個資源開啟時,您的擴充套件應首先檢查該資源是否存在任何備份。如果存在備份,您的擴充套件應從此備份載入檔案內容,而不是從工作區中的資源載入。
backup 方法將在使用者停止編輯文件約一秒後觸發。如果使用者快速編輯文件,backup 將不會被呼叫,直到編輯停止。
當啟用 自動儲存 時,不會呼叫 backup(因為自動儲存已將資源持久化)。
| 引數 | 描述 |
|---|---|
| document: T | 要備份的文件。 |
| context: CustomDocumentBackupContext | 可用於備份文件的資訊。 |
| cancellation: CancellationToken | 一個訊號,表示當前備份由於新的備份即將到來而取消。您的擴充套件可以決定如何響應取消。例如,如果您的擴充套件正在備份一個耗時操作的大檔案,您的擴充套件可能會選擇完成正在進行的備份而不是取消它,以確保編輯器有一個有效的備份。 |
| 返回值 | 描述 |
| Thenable<CustomDocumentBackup> |
openCustomDocument(uri: Uri, openContext: CustomDocumentOpenContext, token: CancellationToken): T | Thenable<T>
為給定的資源建立一個新文件。
openCustomDocument 在給定資源編輯器首次開啟時被呼叫。開啟的文件隨後將傳遞給 resolveCustomEditor,以便可以向用戶顯示編輯器。
如果使用者打開了更多編輯器,則會重用已開啟的 CustomDocument。當給定資源的所有編輯器都關閉時,CustomDocument 將被處置。此時開啟編輯器將觸發對 openCustomDocument 的另一次呼叫。
| 引數 | 描述 |
|---|---|
| uri: Uri | 要開啟的文件的 URI。 |
| openContext: CustomDocumentOpenContext | 關於開啟自定義文件的附加資訊。 |
| token: CancellationToken | 一個取消令牌,指示結果不再需要。 |
| 返回值 | 描述 |
| T | Thenable<T> | 自定義文件。 |
resolveCustomEditor(document: T, webviewPanel: WebviewPanel, token: CancellationToken): void | Thenable<void>
為給定的資源解析自定義編輯器。
每當使用者為此 CustomEditorProvider 開啟新編輯器時,都會呼叫此方法。
| 引數 | 描述 |
|---|---|
| document: T | 要解析的資源的文件。 |
| webviewPanel: WebviewPanel | 用於為此資源顯示編輯器 UI 的 Webview 面板。 在解析過程中,提供程式必須填充內容 Webview 面板的初始 HTML,併為其掛接所有感興趣的事件偵聽器。提供程式還可以保留 |
| token: CancellationToken | 一個取消令牌,指示結果不再需要。 |
| 返回值 | 描述 |
| void | Thenable<void> | 可選的 Thenable,指示自定義編輯器已解析。 |
revertCustomDocument(document: T, cancellation: CancellationToken): Thenable<void>
將自定義文件恢復到其最後儲存的狀態。
當用戶在自定義編輯器中觸發 檔案: 恢復檔案 時,編輯器會呼叫此方法。(請注意,這僅用於編輯器的 檔案: 恢復檔案 命令,而不是用於檔案的 git revert。)
要實現 revert,實現者必須確保 document 的所有編輯器例項(Webview)都顯示與儲存狀態相同的文件。這通常意味著從工作區重新載入檔案。
| 引數 | 描述 |
|---|---|
| document: T | 要恢復的文件。 |
| cancellation: CancellationToken | 一個訊號,表示不再需要恢復(例如,如果觸發了另一個恢復)。 |
| 返回值 | 描述 |
| Thenable<void> | 一個 Thenable,指示更改已完成。 |
saveCustomDocument(document: T, cancellation: CancellationToken): Thenable<void>
儲存自定義文件。
當用戶儲存自定義編輯器時,編輯器會呼叫此方法。這可能發生在使用者在自定義編輯器處於活動狀態時觸發儲存,透過 全部儲存 等命令,或透過自動儲存(如果已啟用)。
要實現 save,實現者必須持久化自定義編輯器。這通常意味著將自定義文件的檔案資料寫入磁碟。save 完成後,任何關聯的編輯器例項將不再被標記為髒。
| 引數 | 描述 |
|---|---|
| document: T | 要儲存的文件。 |
| cancellation: CancellationToken | 一個訊號,表示不再需要儲存(例如,如果觸發了另一個儲存)。 |
| 返回值 | 描述 |
| Thenable<void> | 一個 Thenable,指示儲存已完成。 |
saveCustomDocumentAs(document: T, destination: Uri, cancellation: CancellationToken): Thenable<void>
將自定義文件儲存到另一個位置。
當用戶在自定義編輯器上觸發“另存為”時,編輯器會呼叫此方法。實現者必須將自定義編輯器持久化到 destination。
當用戶接受“另存為”時,當前編輯器將被新儲存檔案的非髒編輯器替換。
| 引數 | 描述 |
|---|---|
| document: T | 要儲存的文件。 |
| destination: Uri | 要儲存的位置。 |
| cancellation: CancellationToken | 一個訊號,表示不再需要儲存。 |
| 返回值 | 描述 |
| Thenable<void> | 一個 Thenable,指示儲存已完成。 |
CustomExecution
用於將擴充套件回撥作為任務執行的類。
建構函式
new CustomExecution(callback: (resolvedDefinition: TaskDefinition) => Thenable<Pseudoterminal>): CustomExecution
構造一個 CustomExecution 任務物件。回撥將在任務執行時執行,此時擴充套件應返回它將“執行在”的 Pseudoterminal。任務應等到 Pseudoterminal.open 被呼叫後再執行。任務取消應使用 Pseudoterminal.close 處理。任務完成後,觸發 Pseudoterminal.onDidClose。
| 引數 | 描述 |
|---|---|
| callback: (resolvedDefinition: TaskDefinition) => Thenable<Pseudoterminal> | 當任務由使用者啟動時將呼叫的回撥。任務定義中的任何 ${} 樣式變數都將被解析並作為 |
| 返回值 | 描述 |
| CustomExecution |
CustomReadonlyEditorProvider<T>
使用自定義文件模型之只讀自定義編輯器的提供程式。
自定義編輯器使用 CustomDocument 作為其文件模型,而不是 TextDocument。
在處理二進位制檔案或更復雜場景時,您應該使用這種型別的自定義編輯器。對於簡單的基於文字的文件,請改用 CustomTextEditorProvider。
方法
openCustomDocument(uri: Uri, openContext: CustomDocumentOpenContext, token: CancellationToken): T | Thenable<T>
為給定的資源建立一個新文件。
openCustomDocument 在給定資源編輯器首次開啟時被呼叫。開啟的文件隨後將傳遞給 resolveCustomEditor,以便可以向用戶顯示編輯器。
如果使用者打開了更多編輯器,則會重用已開啟的 CustomDocument。當給定資源的所有編輯器都關閉時,CustomDocument 將被處置。此時開啟編輯器將觸發對 openCustomDocument 的另一次呼叫。
| 引數 | 描述 |
|---|---|
| uri: Uri | 要開啟的文件的 URI。 |
| openContext: CustomDocumentOpenContext | 關於開啟自定義文件的附加資訊。 |
| token: CancellationToken | 一個取消令牌,指示結果不再需要。 |
| 返回值 | 描述 |
| T | Thenable<T> | 自定義文件。 |
resolveCustomEditor(document: T, webviewPanel: WebviewPanel, token: CancellationToken): void | Thenable<void>
為給定的資源解析自定義編輯器。
每當使用者為此 CustomEditorProvider 開啟新編輯器時,都會呼叫此方法。
| 引數 | 描述 |
|---|---|
| document: T | 要解析的資源的文件。 |
| webviewPanel: WebviewPanel | 用於為此資源顯示編輯器 UI 的 Webview 面板。 在解析過程中,提供程式必須填充內容 Webview 面板的初始 HTML,併為其掛接所有感興趣的事件偵聽器。提供程式還可以保留 |
| token: CancellationToken | 一個取消令牌,指示結果不再需要。 |
| 返回值 | 描述 |
| void | Thenable<void> | 可選的 Thenable,指示自定義編輯器已解析。 |
CustomTextEditorProvider
基於文字的自定義編輯器的提供程式。
基於文字的自定義編輯器使用 TextDocument 作為其資料模型。這大大簡化了實現自定義編輯器的過程,因為它允許編輯器處理許多常見操作,如撤銷和備份。提供程式負責同步 Webview 和 TextDocument 之間的文字更改。
方法
resolveCustomTextEditor(document: TextDocument, webviewPanel: WebviewPanel, token: CancellationToken): void | Thenable<void>
為給定的文字資源解析自定義編輯器。
當用戶首次為 CustomTextEditorProvider 開啟資源,或者使用此 CustomTextEditorProvider 重新開啟現有編輯器時,將呼叫此方法。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 要解析的資源的文件。 |
| webviewPanel: WebviewPanel | 用於為此資源顯示編輯器 UI 的 Webview 面板。 在解析過程中,提供程式必須填充內容 Webview 面板的初始 HTML,併為其掛接所有感興趣的事件偵聽器。提供程式還可以保留 |
| token: CancellationToken | 一個取消令牌,指示結果不再需要。 |
| 返回值 | 描述 |
| void | Thenable<void> | 一個 Thenable,指示自定義編輯器已解析。 |
DataTransfer
一個對映,其中包含相應傳輸資料的 MIME 型別對映。
實現 handleDrag 的拖放控制器可以向資料傳輸新增額外的 MIME 型別。這些額外的 MIME 型別僅在拖動源自同一拖放控制器的元素時才會包含在 handleDrop 中。
建構函式
new DataTransfer(): DataTransfer
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| DataTransfer |
方法
[iterator](): IterableIterator<[mimeType: string, item: DataTransferItem]>
獲取一個包含此資料傳輸中每個元素的 [mime, item] 對的新迭代器。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| IterableIterator<[mimeType: string, item: DataTransferItem]> |
forEach(callbackfn: (item: DataTransferItem, mimeType: string, dataTransfer: DataTransfer) => void, thisArg?: any): void
允許迭代資料傳輸項。
| 引數 | 描述 |
|---|---|
| callbackfn: (item: DataTransferItem, mimeType: string, dataTransfer: DataTransfer) => void | 用於迭代資料傳輸項的回撥函式。 |
| thisArg?: any | 呼叫處理函式時使用的 |
| 返回值 | 描述 |
| void |
get(mimeType: string): DataTransferItem
檢索給定 MIME 型別的傳輸資料項。
| 引數 | 描述 |
|---|---|
| mimeType: string | 要獲取傳輸資料項的 MIME 型別,例如 特殊 MIME 型別
|
| 返回值 | 描述 |
| DataTransferItem |
set(mimeType: string, value: DataTransferItem): void
設定一個 MIME 型別到資料傳輸項的對映。
| 引數 | 描述 |
|---|---|
| mimeType: string | 要設定資料的 MIME 型別。MIME 型別儲存為小寫,查詢時不區分大小寫。 |
| value: DataTransferItem | 給定 MIME 型別的資料傳輸項。 |
| 返回值 | 描述 |
| void |
DataTransferFile
與 DataTransferItem 關聯的檔案。
此型別的例項只能由編輯器建立,不能由擴充套件建立。
屬性
檔案的名稱。
uri?: Uri
檔案的完整檔案路徑。
在 Web 端可能是 undefined。
方法
檔案的完整檔案內容。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| Thenable<Uint8Array> |
DataTransferItem
封裝在拖放操作期間傳輸的資料。
建構函式
new DataTransferItem(value: any): DataTransferItem
| 引數 | 描述 |
|---|---|
| value: any | 儲存在此項上的自定義資料。可以使用 DataTransferItem.value 檢索。 |
| 返回值 | 描述 |
| DataTransferItem |
屬性
儲存在此項上的自定義資料。
您可以使用 value 來共享跨操作的資料。只要建立 DataTransferItem 的擴充套件執行在同一個擴充套件主機中,就可以檢索原始物件。
方法
asFile(): DataTransferFile
嘗試獲取與此資料傳輸項關聯的 檔案。
請注意,檔案物件僅在拖放操作的範圍內有效。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| DataTransferFile | 資料傳輸的檔案,如果該項不是檔案或無法訪問檔案資料,則為 |
獲取此項的字串表示形式。
如果 DataTransferItem.value 是一個物件,則返回 JSON 字串化 DataTransferItem.value 值的 json.stringify 的結果。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| Thenable<string> |
DebugAdapter
如果實現了 DebugAdapter 介面,則可以向編輯器註冊實現 Debug Adapter Protocol 的除錯介面卡。
事件
onDidSendMessage: Event<DebugProtocolMessage>
在除錯介面卡將 Debug Adapter Protocol 訊息傳送給編輯器之後觸發的事件。訊息可以是請求、響應或事件。
方法
處置此物件。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| any |
handleMessage(message: DebugProtocolMessage): void
處理 Debug Adapter Protocol 訊息。訊息可以是請求、響應或事件。結果或錯誤透過 onSendMessage 事件返回。
| 引數 | 描述 |
|---|---|
| message: DebugProtocolMessage | 一個 Debug Adapter Protocol 訊息。 |
| 返回值 | 描述 |
| void |
DebugAdapterDescriptor
表示不同型別的除錯介面卡。
DebugAdapterDescriptor: DebugAdapterExecutable | DebugAdapterServer | DebugAdapterNamedPipeServer | DebugAdapterInlineImplementation
DebugAdapterDescriptorFactory
建立一個 除錯介面卡描述符 的除錯介面卡工廠。
方法
createDebugAdapterDescriptor(session: DebugSession, executable: DebugAdapterExecutable): ProviderResult<DebugAdapterDescriptor>
在除錯會話開始時呼叫 'createDebugAdapterDescriptor' 以提供有關要使用的除錯介面卡的詳細資訊。這些詳細資訊必須以 DebugAdapterDescriptor 型別物件的形式返回。目前支援兩種型別的除錯介面卡:
- 除錯介面卡可執行檔案被指定為命令路徑和引數(參見 DebugAdapterExecutable),
- 可以透過通訊埠訪問的除錯介面卡伺服器(參見 DebugAdapterServer)。如果未實現此方法,則預設行為如下:createDebugAdapter(session: DebugSession, executable: DebugAdapterExecutable) { if (typeof session.configuration.debugServer === 'number') { return new DebugAdapterServer(session.configuration.debugServer); } return executable; }
| 引數 | 描述 |
|---|---|
| session: DebugSession | 將使用除錯介面卡的 除錯會話。 |
| executable: DebugAdapterExecutable | 在 package.json 中指定的除錯介面卡可執行檔案資訊(如果不存在則為 undefined)。 |
| 返回值 | 描述 |
| ProviderResult<DebugAdapterDescriptor> | 一個 除錯介面卡描述符 或 undefined。 |
DebugAdapterExecutable
表示除錯介面卡可執行檔案以及傳遞給它的可選引數和執行時選項。
建構函式
new DebugAdapterExecutable(command: string, args?: string[], options?: DebugAdapterExecutableOptions): DebugAdapterExecutable
根據可執行程式建立除錯介面卡的描述。
| 引數 | 描述 |
|---|---|
| command: string | 實現除錯介面卡的命令或可執行檔案路徑。命令必須是可執行檔案的絕對路徑,或者是一個可以透過 PATH 環境變數查詢的命令名稱。 |
| args?: string[] | 要傳遞給命令或可執行檔案的可選引數。 |
| options?: DebugAdapterExecutableOptions | 啟動命令或可執行檔案時使用的可選選項。 |
| 返回值 | 描述 |
| DebugAdapterExecutable |
屬性
傳遞給除錯介面卡可執行檔案的引數。預設為空陣列。
除錯介面卡可執行檔案的命令或路徑。命令必須是可執行檔案的絕對路徑,或者是透過 PATH 環境變數查詢的命令名稱。特殊值 'node' 將對映到編輯器內建的 Node.js 執行時。
options?: DebugAdapterExecutableOptions
啟動除錯介面卡時使用的可選選項。預設為 undefined。
DebugAdapterExecutableOptions
除錯介面卡可執行檔案的選項。
屬性
已執行除錯介面卡的當前工作目錄。
已執行程式或 shell 的附加環境。如果省略,則使用父程序的環境。如果提供,則會與父程序的環境合併。
DebugAdapterInlineImplementation
用於內聯實現的除錯介面卡描述符。
建構函式
new DebugAdapterInlineImplementation(implementation: DebugAdapter): DebugAdapterInlineImplementation
建立用於除錯介面卡內聯實現的描述符。
| 引數 | 描述 |
|---|---|
| implementation: DebugAdapter | |
| 返回值 | 描述 |
| DebugAdapterInlineImplementation |
DebugAdapterNamedPipeServer
表示一個作為命名管道(Windows 上)/UNIX 域套接字(非 Windows 上)伺服器執行的除錯介面卡。
建構函式
new DebugAdapterNamedPipeServer(path: string): DebugAdapterNamedPipeServer
建立用於作為命名管道(Windows 上)/UNIX 域套接字(非 Windows 上)伺服器執行的除錯介面卡的描述。
| 引數 | 描述 |
|---|---|
| path: string | |
| 返回值 | 描述 |
| DebugAdapterNamedPipeServer |
屬性
命名管道/UNIX 域套接字的路徑。
DebugAdapterServer
表示一個作為套接字伺服器執行的除錯介面卡。
建構函式
new DebugAdapterServer(port: number, host?: string): DebugAdapterServer
建立用於作為套接字伺服器執行的除錯介面卡的描述。
| 引數 | 描述 |
|---|---|
| port: number | |
| host?: string | |
| 返回值 | 描述 |
| DebugAdapterServer |
屬性
主機。
埠。
DebugAdapterTracker
除錯介面卡跟蹤器是跟蹤編輯器與除錯介面卡之間通訊的一種方式。
事件
onDidSendMessage(message: any): void
除錯介面卡已向編輯器傳送了除錯介面卡協議訊息。
| 引數 | 描述 |
|---|---|
| message: any | |
| 返回值 | 描述 |
| void |
onWillReceiveMessage(message: any): void
除錯介面卡即將從編輯器接收除錯介面卡協議訊息。
| 引數 | 描述 |
|---|---|
| message: any | |
| 返回值 | 描述 |
| void |
與除錯介面卡的會話即將啟動。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
除錯介面卡會話即將停止。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
方法
除錯介面卡發生錯誤。
| 引數 | 描述 |
|---|---|
| error: Error | |
| 返回值 | 描述 |
| void |
onExit(code: number, signal: string): void
除錯介面卡已退出,具有給定的退出程式碼或訊號。
| 引數 | 描述 |
|---|---|
| code: number | |
| signal: string | |
| 返回值 | 描述 |
| void |
DebugAdapterTrackerFactory
建立除錯介面卡跟蹤器的除錯介面卡工廠。
方法
createDebugAdapterTracker(session: DebugSession): ProviderResult<DebugAdapterTracker>
在除錯會話開始時呼叫 `createDebugAdapterTracker` 方法,以返回一個“跟蹤器”物件,該物件提供對編輯器和除錯介面卡之間通訊的只讀訪問。
| 引數 | 描述 |
|---|---|
| session: DebugSession | 將用於除錯介面卡跟蹤器的除錯會話。 |
| 返回值 | 描述 |
| ProviderResult<DebugAdapterTracker> | 除錯介面卡跟蹤器或未定義。 |
DebugConfiguration
除錯會話的配置。
屬性
除錯會話的名稱。
除錯會話的請求型別。
除錯會話的型別。
DebugConfigurationProvider
除錯配置提供程式允許向除錯服務新增除錯配置,並在啟動除錯會話之前解析啟動配置。除錯配置提供程式透過 debug.registerDebugConfigurationProvider 註冊。
方法
provideDebugConfigurations(folder: WorkspaceFolder, token?: CancellationToken): ProviderResult<DebugConfiguration[]>
向除錯服務提供除錯配置。如果為同一型別註冊了多個除錯配置提供程式,則除錯配置將按任意順序連線。
| 引數 | 描述 |
|---|---|
| folder: WorkspaceFolder | 用於配置的工作區資料夾,或用於無資料夾設定的 |
| token?: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<DebugConfiguration[]> | 除錯配置陣列。 |
resolveDebugConfiguration(folder: WorkspaceFolder, debugConfiguration: DebugConfiguration, token?: CancellationToken): ProviderResult<DebugConfiguration>
透過填充缺失的值或新增/更改/刪除屬性來解析除錯配置。如果為同一型別註冊了多個除錯配置提供程式,則 `resolveDebugConfiguration` 呼叫將按任意順序連結,並且初始除錯配置將透過該連結傳遞。返回 `undefined` 會阻止除錯會話啟動。返回 `null` 會阻止除錯會話啟動,並改用開啟底層除錯配置。
| 引數 | 描述 |
|---|---|
| folder: WorkspaceFolder | 配置來源的工作區資料夾,或用於無資料夾設定的 |
| debugConfiguration: DebugConfiguration | 要解析的除錯配置。 |
| token?: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<DebugConfiguration> | 已解析的除錯配置或未定義或 null。 |
resolveDebugConfigurationWithSubstitutedVariables(folder: WorkspaceFolder, debugConfiguration: DebugConfiguration, token?: CancellationToken): ProviderResult<DebugConfiguration>
此鉤子在 `resolveDebugConfiguration` 之後直接呼叫,但所有變數都已替換。它可用於透過填充缺失的值或新增/更改/刪除屬性來解析或驗證除錯配置。如果為同一型別註冊了多個除錯配置提供程式,則 `resolveDebugConfigurationWithSubstitutedVariables` 呼叫將按任意順序連結,並且初始除錯配置將透過該連結傳遞。返回 `undefined` 會阻止除錯會話啟動。返回 `null` 會阻止除錯會話啟動,並改用開啟底層除錯配置。
| 引數 | 描述 |
|---|---|
| folder: WorkspaceFolder | 配置來源的工作區資料夾,或用於無資料夾設定的 |
| 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 |
appendLine(value: string): void
將給定值和一個換行符追加到除錯控制檯。
| 引數 | 描述 |
|---|---|
| value: string | 一個字串,假值會被列印。 |
| 返回值 | 描述 |
| void |
DebugConsoleMode
除錯會話使用的除錯控制檯模式,請參閱 options。
列舉成員
除錯會話應有一個單獨的除錯控制檯。
除錯會話應與其父會話共享除錯控制檯。此值對沒有父會話的會話無效。
DebugProtocolBreakpoint
DebugProtocolBreakpoint 是除錯介面卡協議中定義的 `Breakpoint` 型別的不透明佔位符型別。(Breakpoint)。
DebugProtocolMessage
DebugProtocolMessage 是除錯介面卡協議中定義的 `ProtocolMessage` 型別的 不透明佔位符型別。
DebugProtocolSource
DebugProtocolSource 是除錯介面卡協議中定義的 `Source` 型別的 不透明佔位符型別。
DebugSession
一個除錯會話。
屬性
configuration: DebugConfiguration
此會話的“已解析”除錯配置。 “已解析”意味著
- 所有變數都已替換
- 並且特定於平臺的屬性部分已為匹配的平臺“展平”,併為不匹配的平臺移除。
此除錯會話的唯一 ID。
除錯會話的名稱最初取自除錯配置。任何更改都將正確反映在 UI 中。
parentSession?: DebugSession
此除錯會話的父會話(如果它是作為子會話建立的)。
另請參閱 DebugSessionOptions.parentSession
來自除錯配置的除錯會話型別。
workspaceFolder: WorkspaceFolder
此會話的工作區資料夾,或用於無資料夾設定的 undefined。
方法
customRequest(command: string, args?: any): Thenable<any>
向除錯介面卡傳送自定義請求。
| 引數 | 描述 |
|---|---|
| command: string | |
| args?: any | |
| 返回值 | 描述 |
| Thenable<any> |
getDebugProtocolBreakpoint(breakpoint: Breakpoint): Thenable<DebugProtocolBreakpoint>
將編輯器中的斷點對映到除錯會話的除錯介面卡管理的相應除錯介面卡協議 (DAP) 斷點。如果不存在 DAP 斷點(因為編輯器斷點尚未註冊,或者除錯介面卡不關心該斷點),則返回 `undefined`。
| 引數 | 描述 |
|---|---|
| breakpoint: Breakpoint | 編輯器中的斷點。 |
| 返回值 | 描述 |
| Thenable<DebugProtocolBreakpoint> | 解析為除錯介面卡協議斷點或 `undefined` 的 Promise。 |
DebugSessionCustomEvent
從除錯會話收到的自定義除錯介面卡協議事件。
屬性
事件特定資訊。
事件型別。
session: DebugSession
收到自定義事件的除錯會話。
DebugSessionOptions
用於 啟動除錯會話 的選項。
屬性
控制是否在 CALL STACK 檢視中顯示除錯會話的父會話,即使它只有一個子項。預設情況下,除錯會話永遠不會隱藏其父會話。如果 `compact` 為 true,則隱藏具有單個子項的除錯會話,以使樹更緊湊。
consoleMode?: DebugConsoleMode
控制此會話是否應擁有獨立的除錯控制檯,還是應與父會話共享。對沒有父會話的會話無效。預設為 Separate。
lifecycleManagedByParent?: boolean
控制生命週期請求(如“重新啟動”)是傳送到新建立的會話還是其父會話。預設情況下(如果屬性為 false 或缺失),生命週期請求會發送到新會話。如果會話沒有父會話,則忽略此屬性。
控制此會話是否應在不除錯的情況下執行,從而忽略斷點。如果未指定此屬性,則使用父會話(如果存在)的值。
parentSession?: DebugSession
如果指定,新建立的除錯會話將註冊為該“父”除錯會話的“子”會話。
suppressDebugStatusbar?: boolean
如果為 true,則視窗狀態列顏色不會為此會話更改。
suppressDebugToolbar?: boolean
如果為 true,則不會為此會話顯示除錯工具欄。
如果為 true,則除錯檢視將不會為此會話自動顯示。
suppressSaveBeforeStart?: boolean
如果為 true,則無論 `debug.saveBeforeStart` 設定的值如何,在啟動除錯會話時都不會為開啟的編輯器觸發儲存。
testRun?: TestRun
指示編輯器該除錯會話是從測試執行請求啟動的。這用於在 UI 操作中連結除錯會話和測試執行的生命週期。
DebugStackFrame
表示除錯會話中的堆疊幀。
屬性
在除錯協議中堆疊幀的 ID。
session: DebugSession
執行緒的除錯會話。
在除錯協議中關聯執行緒的 ID。
DebugThread
表示除錯會話中的執行緒。
屬性
session: DebugSession
執行緒的除錯會話。
在除錯協議中關聯執行緒的 ID。
Declaration
Declaration: Location | Location[] | LocationLink[]
DeclarationCoverage
包含宣告的覆蓋率資訊。根據報告器和語言,這可能是函式、方法或名稱空間等型別。
建構函式
new DeclarationCoverage(name: string, executed: number | boolean, location: Range | Position): DeclarationCoverage
| 引數 | 描述 |
|---|---|
| name: string | |
| executed: number | boolean | 此宣告執行的次數,或一個指示它是否被執行的布林值(如果確切計數未知)。如果為零或 false,則宣告將被標記為未覆蓋。 |
| location: Range | Position | 宣告位置。 |
| 返回值 | 描述 |
| DeclarationCoverage |
屬性
此宣告執行的次數,或一個指示它是否被執行的布林值(如果確切計數未知)。如果為零或 false,則宣告將被標記為未覆蓋。
宣告位置。
宣告的名稱。
DeclarationProvider
宣告提供程式介面定義了擴充套件和轉到宣告功能之間的約定。
方法
provideDeclaration(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<Declaration>
提供給定位置和文件處的符號的宣告。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| position: Position | 呼叫命令的位置。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<Declaration> | 一個宣告或一個解析為該宣告的 thenable。可以透過返回 `undefined` 或 `null` 來發出無結果的訊號。 |
DecorationInstanceRenderOptions
表示裝飾例項的渲染選項。請參閱 DecorationOptions.renderOptions。
屬性
after?: ThemableDecorationAttachmentRenderOptions
定義插入到裝飾文字之後的附件的渲染選項。
before?: ThemableDecorationAttachmentRenderOptions
定義插入到裝飾文字之前的附件的渲染選項。
dark?: ThemableDecorationInstanceRenderOptions
深色主題的覆蓋選項。
light?: ThemableDecorationInstanceRenderOptions
淺色主題的覆蓋選項。
DecorationOptions
表示 裝飾集 中特定裝飾的選項。
屬性
hoverMessage?: MarkdownString | MarkedString | Array<MarkdownString | MarkedString>
懸停在裝飾上時應渲染的訊息。
range: Range
應用此裝飾的範圍。範圍不能為空。
renderOptions?: DecorationInstanceRenderOptions
應用於當前裝飾的渲染選項。為了效能起見,請保持裝飾特定選項的數量較少,並儘可能使用裝飾型別。
DecorationRangeBehavior
描述裝飾在邊緣鍵入/編輯時的行為。
列舉成員
當在開頭或結尾發生編輯時,裝飾的範圍會擴大。
當在開頭或結尾發生編輯時,裝飾的範圍不會擴大。
當在開頭髮生編輯時,裝飾的範圍會擴大,但在結尾不會。
當在結尾發生編輯時,裝飾的範圍會擴大,但在開頭不會。
DecorationRenderOptions
表示 文字編輯器裝飾 的渲染樣式。
屬性
after?: ThemableDecorationAttachmentRenderOptions
定義插入到裝飾文字之後的附件的渲染選項。
backgroundColor?: string | ThemeColor
裝飾的背景顏色。使用 rgba() 並定義透明背景顏色以與其他裝飾良好相容。或者,可以 引用 顏色登錄檔中的顏色。
before?: ThemableDecorationAttachmentRenderOptions
定義插入到裝飾文字之前的附件的渲染選項。
將應用於裝飾文字的 CSS 樣式屬性。
borderColor?: string | ThemeColor
將應用於裝飾文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
color?: string | ThemeColor
將應用於裝飾文字的 CSS 樣式屬性。
將應用於裝飾文字的 CSS 樣式屬性。
dark?: ThemableDecorationRenderOptions
深色主題的覆蓋選項。
將應用於裝飾文字的 CSS 樣式屬性。
將應用於裝飾文字的 CSS 樣式屬性。
gutterIconPath?: string | Uri
在裝訂線中渲染的影像的絕對路徑或 URI。
指定裝訂線圖示的大小。可用值為 'auto'、'contain'、'cover' 和任何百分比值。有關更多資訊:https://msdn.microsoft.com/en-us/library/jj127316(v=vs.85).aspx
裝飾是否也應在行文字之後的空白處渲染。預設為 false。
將應用於裝飾文字的 CSS 樣式屬性。
light?: ThemableDecorationRenderOptions
淺色主題的覆蓋選項。
將應用於裝飾文字的 CSS 樣式屬性。
將應用於裝飾文字的 CSS 樣式屬性。
outlineColor?: string | ThemeColor
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用 'outline' 來設定一個或多個單獨的輪廓屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用 'outline' 來設定一個或多個單獨的輪廓屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用 'outline' 來設定一個或多個單獨的輪廓屬性。
overviewRulerColor?: string | ThemeColor
概覽標尺中裝飾的顏色。使用 rgba() 並定義透明顏色以與其他裝飾配合使用。
overviewRulerLane?: OverviewRulerLane
裝飾應在概覽標尺中的哪個位置渲染。
rangeBehavior?: DecorationRangeBehavior
自定義裝飾在裝飾範圍的邊緣發生編輯時的增長行為。預設為 DecorationRangeBehavior.OpenOpen。
將應用於裝飾文字的 CSS 樣式屬性。
Definition
表示符號的定義,該定義是一個或多個 位置。對於大多數程式語言,符號只有一個定義位置。
Definition: Location | Location[]
DefinitionLink
有關符號定義位置的資訊。
提供比普通 Location 定義更多的元資料,包括定義符號的範圍。
DefinitionLink: LocationLink
DefinitionProvider
定義提供程式介面定義了擴充套件與 轉到定義 和檢視定義功能之間的契約。
方法
provideDefinition(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<Definition | LocationLink[]>
提供給定位置和文件中的符號定義。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| position: Position | 呼叫命令的位置。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<Definition | LocationLink[]> | 定義或一個可解析為該定義的 thenable。可以透過返回 |
Diagnostic
表示一個診斷,例如編譯器錯誤或警告。診斷物件僅在檔案範圍內有效。
建構函式
new Diagnostic(range: Range, message: string, severity?: DiagnosticSeverity): Diagnostic
建立一個新的診斷物件。
| 引數 | 描述 |
|---|---|
| range: Range | 此診斷適用的範圍。 |
| message: string | 人類可讀的訊息。 |
| severity?: DiagnosticSeverity | 嚴重性,預設為 錯誤。 |
| 返回值 | 描述 |
| Diagnostic |
屬性
code?: string | number | {target: Uri, value: string | number}
此診斷的程式碼或識別符號。應用於後續處理,例如在提供 程式碼操作 時。
人類可讀的訊息。
range: Range
此診斷適用的範圍。
relatedInformation?: DiagnosticRelatedInformation[]
相關診斷資訊的陣列,例如,當作用域內的符號名稱發生衝突時,可以透過此屬性標記所有定義。
severity: DiagnosticSeverity
嚴重性,預設為 錯誤。
描述此診斷來源的可讀字串,例如“typescript”或“super lint”。
tags?: DiagnosticTag[]
關於診斷的附加元資料。
DiagnosticChangeEvent
當診斷髮生更改時觸發的事件。
屬性
uris: readonly Uri[]
已更改診斷的資源陣列。
DiagnosticCollection
診斷集合是管理一組 診斷 的容器。診斷始終限定於診斷集合和資源。
要獲取 DiagnosticCollection 的例項,請使用 createDiagnosticCollection。
屬性
此診斷集合的名稱,例如 typescript。來自此集合的所有診斷都將與此名稱相關聯。此外,任務框架在定義 問題匹配器 時會使用此名稱。
方法
從此集合中刪除所有診斷。與呼叫 #set(undefined) 相同;
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
delete(uri: Uri): void
從此集合中刪除屬於提供的 uri 的所有診斷。與 #set(uri, undefined) 相同。
| 引數 | 描述 |
|---|---|
| uri: Uri | 資源識別符號。 |
| 返回值 | 描述 |
| void |
釋放並清理相關資源。呼叫 clear。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
forEach(callback: (uri: Uri, diagnostics: readonly Diagnostic[], collection: DiagnosticCollection) => any, thisArg?: any): void
迭代此集合中的每個條目。
| 引數 | 描述 |
|---|---|
| callback: (uri: Uri, diagnostics: readonly Diagnostic[], collection: DiagnosticCollection) => any | 為每個條目執行的函式。 |
| thisArg?: any | 呼叫處理函式時使用的 |
| 返回值 | 描述 |
| void |
get(uri: Uri): readonly Diagnostic[]
獲取給定資源的診斷。注意,您不能修改從此呼叫返回的診斷陣列。
| 引數 | 描述 |
|---|---|
| uri: Uri | 資源識別符號。 |
| 返回值 | 描述 |
| readonly Diagnostic[] | 診斷的不可變陣列或 |
has(uri: Uri): boolean
檢查此集合是否包含給定資源的診斷。
| 引數 | 描述 |
|---|---|
| uri: Uri | 資源識別符號。 |
| 返回值 | 描述 |
| 布林值 | 如果此集合包含給定資源的診斷,則為 |
set(uri: Uri, diagnostics: readonly Diagnostic[]): void
為給定資源分配診斷。將替換該資源的現有診斷。
| 引數 | 描述 |
|---|---|
| uri: Uri | 資源識別符號。 |
| diagnostics: readonly Diagnostic[] | 診斷陣列或 |
| 返回值 | 描述 |
| void |
set(entries: ReadonlyArray<[Uri, readonly Diagnostic[]]>): void
替換此集合中多個資源的診斷。
注意,具有相同 uri 的多個元組將被合併,例如 [[file1, [d1]], [file1, [d2]]] 等同於 [[file1, [d1, d2]]]。如果診斷項為 undefined,如 [file1, undefined],則會刪除所有先前的診斷,但不會刪除後續的診斷。
| 引數 | 描述 |
|---|---|
| entries: ReadonlyArray<[Uri, readonly Diagnostic[]]> | 元組陣列,如 |
| 返回值 | 描述 |
| void |
DiagnosticRelatedInformation
表示與診斷相關的訊息和原始碼位置。應使用此項指向導致或與診斷相關的程式碼位置,例如,在作用域中重複符號時。
建構函式
new DiagnosticRelatedInformation(location: Location, message: string): DiagnosticRelatedInformation
建立一個新的相關診斷資訊物件。
| 引數 | 描述 |
|---|---|
| location: Location | 位置。 |
| message: string | 訊息。 |
| 返回值 | 描述 |
| DiagnosticRelatedInformation |
屬性
location: Location
此相關診斷資訊的位置。
此相關診斷資訊的訊息。
DiagnosticSeverity
表示診斷的嚴重性。
列舉成員
語言規則或其他方式不允許的項。
可疑但允許的項。
用於告知的項,但不是問題。
用於提示更好的實現方式的項,例如建議重構。
DiagnosticTag
關於診斷型別的附加元資料。
列舉成員
未使用或不必要的程式碼。
帶有此標籤的診斷將顯示為淡出。淡出程度由 "editorUnnecessaryCode.opacity" 主題顏色控制。例如,"editorUnnecessaryCode.opacity": "#000000c0" 將以 75% 的不透明度顯示程式碼。對於高對比度主題,請使用 "editorUnnecessaryCode.border" 主題顏色為不必要的程式碼加下劃線,而不是使其淡出。
已棄用或過時的程式碼。
帶有此標籤的診斷將顯示為刪除線。
Disposable
表示可以釋放資源的型別,例如事件偵聽或計時器。
靜態
from(...disposableLikes: Array<{dispose: () => any}>): Disposable
將多個可處置物件合併為一個。當擁有具有 dispose 函式但不是 Disposable 例項的物件時,可以使用此方法。
| 引數 | 描述 |
|---|---|
| ...disposableLikes: Array<{dispose: () => any}> | 至少具有 |
| 返回值 | 描述 |
| Disposable | 返回一個新的可處置物件,該物件在 dispose 時將釋放所有提供的可處置物件。 |
建構函式
new Disposable(callOnDispose: () => any): Disposable
建立一個新的可處置物件,該物件在 dispose 時呼叫提供的函式。
注意,非同步函式不會被等待。
| 引數 | 描述 |
|---|---|
| callOnDispose: () => any | dispose 函式。 |
| 返回值 | 描述 |
| Disposable |
方法
處置此物件。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| any |
DocumentColorProvider
文件顏色提供程式定義了擴充套件與編輯器中顏色選取和修改功能之間的契約。
方法
provideColorPresentations(color: Color, context: {document: TextDocument, range: Range}, token: CancellationToken): ProviderResult<ColorPresentation[]>
為顏色提供 表示。
| 引數 | 描述 |
|---|---|
| color: Color | 要顯示和插入的顏色。 |
| context: {document: TextDocument, range: Range} | 包含附加資訊的上下文物件 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<ColorPresentation[]> | 顏色表示陣列或可解析為該陣列的 thenable。可以透過返回 |
provideDocumentColors(document: TextDocument, token: CancellationToken): ProviderResult<ColorInformation[]>
為給定文件提供顏色。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<ColorInformation[]> | 顏色資訊陣列或可解析為該陣列的 thenable。可以透過返回 |
DocumentDropEdit
在 drop 時應用的編輯操作。
建構函式
new DocumentDropEdit(insertText: string | SnippetString, title?: string, kind?: DocumentDropOrPasteEditKind): DocumentDropEdit
| 引數 | 描述 |
|---|---|
| insertText: string | SnippetString | 要在 drop 位置插入的文字或程式碼片段。 |
| title?: string | 描述編輯的人類可讀標籤。 |
| kind?: DocumentDropOrPasteEditKind | 編輯的 型別。 |
| 返回值 | 描述 |
| DocumentDropEdit |
屬性
additionalEdit?: WorkspaceEdit
在 drop 時應用的可選附加編輯。
insertText: string | SnippetString
要在 drop 位置插入的文字或程式碼片段。
kind?: DocumentDropOrPasteEditKind
編輯的 型別。
描述編輯的人類可讀標籤。
yieldTo?: readonly DocumentDropOrPasteEditKind[]
控制多個編輯的順序。如果此提供程式屈服於編輯,它將在列表中顯示得更低。
DocumentDropEditProvider<T>
處理將資源拖放到文字編輯器中的提供程式。
這允許使用者將資源(包括來自外部應用程式的資源)拖放到編輯器中。在拖放檔案時,使用者可以按住 shift 鍵將檔案拖放到編輯器中,而不是開啟它。需要啟用 editor.dropIntoEditor.enabled。
方法
provideDocumentDropEdits(document: TextDocument, position: Position, dataTransfer: DataTransfer, token: CancellationToken): ProviderResult<T | T[]>
提供將正在拖放的內容插入文件的編輯。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 發生 drop 的文件。 |
| position: Position | 發生 drop 的文件中的位置。 |
| dataTransfer: DataTransfer | 包含有關正在拖放內容的資料的 DataTransfer 物件。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T | T[]> | DocumentDropEdit 或可解析為該值的 thenable。可以透過返回 |
resolveDocumentDropEdit(edit: T, token: CancellationToken): ProviderResult<T>
可選方法,用於在應用編輯之前填充 DocumentDropEdit.additionalEdit。
每次編輯呼叫此方法一次,如果生成完整編輯可能需要很長時間,則應使用此方法。Resolve 只能用於更改 DocumentDropEdit.additionalEdit。
| 引數 | 描述 |
|---|---|
| edit: T | 要解析的 DocumentDropEdit。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T> | 解析後的編輯或可解析為該值的 thenable。返回給定的 |
DocumentDropEditProviderMetadata
提供有關 DocumentDropEditProvider 如何工作的附加元資料。
屬性
dropMimeTypes: readonly string[]
提供程式可以處理的 DataTransfer mime 型別的列表。
這可以是精確的 mime 型別,例如 image/png,也可以是萬用字元模式,例如 image/*。
使用 text/uri-list 來處理從工作區中的資源管理器或其他樹狀檢視拖放到其中的資源。
使用 files 來指示如果 DataTransfer 中存在任何 檔案,則應呼叫提供程式。請注意,只有在從編輯器外部(例如作業系統)拖放內容時,才會建立 DataTransferFile 條目。
providedDropEditKinds?: readonly DocumentDropOrPasteEditKind[]
提供程式可以在 provideDocumentDropEdits 中返回的 kind 列表。
這用於在請求特定 kind 的編輯時過濾掉提供程式。
DocumentDropOrPasteEditKind
DocumentDropEdit 或 DocumentPasteEdit 的識別符號
靜態
Empty: DocumentDropOrPasteEditKind
Text: DocumentDropOrPasteEditKind
用於基本文字編輯的根 kind。
此 kind 應用於將基本文字插入文件的編輯。一個好的例子是貼上剪貼簿文字,同時還根據貼上的文字更新檔案中的匯入。對於這種情況,我們可以使用諸如 text.updateImports.someLanguageId 之類的 kind。
儘管大多數拖放/貼上編輯最終都會插入文字,但不應將 Text 用作每個編輯的基礎 kind,因為這是冗餘的。相反,應使用更具體地描述所插入內容的 kind。例如,如果編輯添加了一個 Markdown 連結,請使用 markdown.link,因為儘管所插入的內容是文字,但知道該編輯插入的是 Markdown 語法更為重要。
TextUpdateImports: DocumentDropOrPasteEditKind
用於在插入文字之外還更新文件中的匯入的編輯的根 kind。
建構函式
new DocumentDropOrPasteEditKind(value: string): DocumentDropOrPasteEditKind
| 引數 | 描述 |
|---|---|
| value: string | |
| 返回值 | 描述 |
| DocumentDropOrPasteEditKind |
屬性
kind 的原始字串值。
方法
append(...parts: string[]): DocumentDropOrPasteEditKind
透過將其他範圍附加到當前 kind 來建立一個新 kind。
不會修改當前種類。
| 引數 | 描述 |
|---|---|
| ...parts: string[] | |
| 返回值 | 描述 |
| DocumentDropOrPasteEditKind |
contains(other: DocumentDropOrPasteEditKind): boolean
檢查 other 是否是此 DocumentDropOrPasteEditKind 的子 kind。
例如,kind "text.plain" 包含 "text.plain" 和 "text.plain.list",但不包含 "text" 或 "unicorn.text.plain"。
| 引數 | 描述 |
|---|---|
| other: DocumentDropOrPasteEditKind | 要檢查的種類。 |
| 返回值 | 描述 |
| 布林值 |
intersects(other: DocumentDropOrPasteEditKind): boolean
檢查此 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。
pattern?: GlobPattern
URI scheme,例如 file 或 untitled。
DocumentFormattingEditProvider
文件格式化提供程式介面定義了擴充套件和格式化功能之間的約定。
方法
provideDocumentFormattingEdits(document: TextDocument, options: FormattingOptions, token: CancellationToken): ProviderResult<TextEdit[]>
為整個文件提供格式化編輯。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| options: FormattingOptions | 控制格式化的選項。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<TextEdit[]> | 一組文字編輯或一個解析為這些編輯的 thenable。可以透過返回 |
DocumentHighlight
文件高亮是在文字文件中需要特別關注的一個範圍。通常,文件高亮透過更改其範圍的背景顏色來視覺化。
建構函式
new DocumentHighlight(range: Range, kind?: DocumentHighlightKind): DocumentHighlight
建立一個新的文件高亮物件。
| 引數 | 描述 |
|---|---|
| range: Range | 高亮適用的範圍。 |
| kind?: DocumentHighlightKind | 高亮 kind,預設為 text。 |
| 返回值 | 描述 |
| DocumentHighlight |
屬性
kind?: DocumentHighlightKind
高亮 kind,預設為 text。
range: Range
此高亮適用的範圍。
DocumentHighlightKind
文件高亮 kind。
列舉成員
文字出現。
符號的讀取訪問,例如讀取變數。
符號的寫入訪問,例如寫入變數。
DocumentHighlightProvider
文件高亮提供程式介面定義了擴充套件和單詞高亮功能之間的約定。
方法
provideDocumentHighlights(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<DocumentHighlight[]>
提供一組文件高亮,例如變數的所有出現或函式的所有退出點。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| position: Position | 呼叫命令的位置。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<DocumentHighlight[]> | 文件高亮陣列或解析為這些高亮的 thenable。可以透過返回 |
DocumentLink
文件連結是文字文件中連結到內部或外部資源的範圍,例如另一個文字文件或網站。
建構函式
new DocumentLink(range: Range, target?: Uri): DocumentLink
建立一個新的文件連結。
| 引數 | 描述 |
|---|---|
| range: Range | 文件連結適用的範圍。不能為空。 |
| target?: Uri | 文件連結指向的 URI。 |
| 返回值 | 描述 |
| DocumentLink |
屬性
range: Range
此連結適用的範圍。
target?: Uri
此連結指向的 URI。
滑鼠懸停在此連結上時顯示的工具提示文字。
如果提供了工具提示,它將顯示在包含觸發連結說明的字串中,例如 {0} (ctrl + click)。具體說明因作業系統、使用者設定和本地化而異。
DocumentLinkProvider<T>
文件連結提供程式定義了擴充套件和在編輯器中顯示連結的功能之間的約定。
方法
provideDocumentLinks(document: TextDocument, token: CancellationToken): ProviderResult<T[]>
為給定文件提供連結。請注意,編輯器附帶一個預設提供程式,該提供程式會檢測 http(s) 和 file 連結。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T[]> | 文件連結陣列或解析為這些連結的 thenable。可以透過返回 |
resolveDocumentLink(link: T, token: CancellationToken): ProviderResult<T>
給定一個連結,填充其 target。當 UI 中選擇了不完整的連結時,會呼叫此方法。提供程式可以實現此方法,並從 provideDocumentLinks 方法返回不完整的連結(沒有 target),這通常有助於提高效能。
| 引數 | 描述 |
|---|---|
| link: T | 要解析的連結。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T> |
DocumentPasteEdit
應用貼上操作的編輯。
建構函式
new DocumentPasteEdit(insertText: string | SnippetString, title: string, kind: DocumentDropOrPasteEditKind): DocumentPasteEdit
建立一個新的貼上編輯。
| 引數 | 描述 |
|---|---|
| insertText: string | SnippetString | 在貼上位置插入的文字或片段。 |
| title: string | 描述編輯的人類可讀標籤。 |
| kind: DocumentDropOrPasteEditKind | 編輯的 型別。 |
| 返回值 | 描述 |
| DocumentPasteEdit |
屬性
additionalEdit?: WorkspaceEdit
貼上時應用的可選附加編輯。
insertText: string | SnippetString
在貼上位置插入的文字或片段。
如果您的編輯需要更高階的插入邏輯,請將其設定為空字串,然後提供 additional edit。
kind: DocumentDropOrPasteEditKind
編輯的 型別。
描述編輯的人類可讀標籤。
yieldTo?: readonly DocumentDropOrPasteEditKind[]
控制當多個貼上編輯可能應用時的順序。
如果此編輯讓位於另一個編輯,它將在顯示給使用者的可能貼上編輯列表中排在後面。
DocumentPasteEditContext
有關貼上操作的附加資訊。
屬性
only: DocumentDropOrPasteEditKind
請求返回的貼上編輯的 kind。
當透過 PasteAs 請求顯式 kind 時,鼓勵提供程式在生成請求 kind 的編輯時更加靈活。
triggerKind: DocumentPasteTriggerKind
請求貼上編輯的原因。
DocumentPasteEditProvider<T>
當用戶在 TextDocument 中複製或貼上時呼叫的提供程式。
方法
prepareDocumentPaste(document: TextDocument, ranges: readonly Range[], dataTransfer: DataTransfer, token: CancellationToken): void | Thenable<void>
可選方法,在使用者從 文字編輯器複製後呼叫。
這允許提供程式將有關複製文字的元資料附加到 DataTransfer。然後,此資料傳輸將在 provideDocumentPasteEdits 中傳遞迴提供程式。
請注意,目前對 DataTransfer 的任何更改都僅限於當前編輯器視窗。這意味著任何新增的元資料都不能被其他編輯器視窗或其他應用程式看到。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 發生複製的文字文件。 |
| ranges: readonly Range[] | 在 document 中複製的範圍。 |
| dataTransfer: DataTransfer | 與複製關聯的資料傳輸。您可以為此儲存其他值,供以後在 provideDocumentPasteEdits 中使用。此物件僅在此方法持續時間內有效。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| void | Thenable<void> | 可選的 thenable,在對 |
provideDocumentPasteEdits(document: TextDocument, ranges: readonly Range[], dataTransfer: DataTransfer, context: DocumentPasteEditContext, token: CancellationToken): ProviderResult<T[]>
在使用者貼上到 文字編輯器之前呼叫。
返回的編輯可以替換標準的貼上行為。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 貼上到的文件 |
| ranges: readonly Range[] | 在 document 中貼上到的範圍。 |
| dataTransfer: DataTransfer | 與貼上關聯的 DataTransfer。此物件僅在貼上操作期間有效。 |
| context: DocumentPasteEditContext | 貼上的附加上下文。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T[]> | 可以應用貼上的潛在 編輯集。一次只應用一個返回的 DocumentPasteEdit。如果從所有提供程式返回多個編輯,則自動應用第一個,並顯示一個允許使用者切換到其他編輯的小部件。 |
resolveDocumentPasteEdit(pasteEdit: T, token: CancellationToken): ProviderResult<T>
可選方法,該方法在應用編輯之前填充 DocumentPasteEdit.additionalEdit。
此方法為每個編輯呼叫一次,如果生成完整編輯可能需要很長時間,則應使用此方法。Resolve 只能用於更改 DocumentPasteEdit.insertText 或 DocumentPasteEdit.additionalEdit。
| 引數 | 描述 |
|---|---|
| pasteEdit: T | 要解析的 DocumentPasteEdit。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T> | 解析後的貼上編輯或解析為這些編輯的 thenable。返回給定的 |
DocumentPasteProviderMetadata
提供有關 DocumentPasteEditProvider 如何工作的附加元資料。
屬性
copyMimeTypes?: readonly string[]
prepareDocumentPaste 在複製時可能新增的 MIME 型別。
pasteMimeTypes?: readonly string[]
provideDocumentPasteEdits 應該呼叫的 MIME 型別。
這可以是精確的 mime 型別,例如 image/png,也可以是萬用字元模式,例如 image/*。
使用 text/uri-list 來處理從工作區中的資源管理器或其他樹狀檢視拖放到其中的資源。
使用 files 來指示如果 DataTransfer 中存在任何 檔案,則應呼叫該提供程式。請注意,僅當從編輯器外部(例如從作業系統)貼上內容時,才會建立 DataTransferFile 條目。
providedPasteEditKinds: readonly DocumentDropOrPasteEditKind[]
提供程式可能在 provideDocumentPasteEdits 中返回的 kinds 列表。
這用於在請求特定 kind 的編輯時過濾掉提供程式。
DocumentPasteTriggerKind
請求貼上編輯的原因。
列舉成員
貼上是作為正常貼上操作的一部分請求的。
貼上是使用者透過 paste as 命令請求的。
DocumentRangeFormattingEditProvider
文件格式化提供程式介面定義了擴充套件和格式化功能之間的約定。
方法
provideDocumentRangeFormattingEdits(document: TextDocument, range: Range, options: FormattingOptions, token: CancellationToken): ProviderResult<TextEdit[]>
為文件中的某個範圍提供格式化編輯。
給定的範圍是一個提示,提供程式可以決定格式化一個更小或更大的範圍。這通常透過調整範圍的開始和結束到完整的語法節點來完成。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| range: Range | 應格式化的範圍。 |
| options: FormattingOptions | 控制格式化的選項。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<TextEdit[]> | 一組文字編輯或一個解析為這些編輯的 thenable。可以透過返回 |
provideDocumentRangesFormattingEdits(document: TextDocument, ranges: Range[], options: FormattingOptions, token: CancellationToken): ProviderResult<TextEdit[]>
為文件中的多個範圍提供格式化編輯。
此函式是可選的,但它允許格式化程式在僅格式化修改後的範圍或格式化大量選擇時執行得更快。
給定的範圍是提示,提供程式可以決定格式化一個更小或更大的範圍。這通常透過調整範圍的開始和結束到完整的語法節點來完成。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| ranges: Range[] | 應格式化的範圍。 |
| options: FormattingOptions | 控制格式化的選項。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<TextEdit[]> | 一組文字編輯或一個解析為這些編輯的 thenable。可以透過返回 |
DocumentRangeSemanticTokensProvider
文件範圍語義令牌提供程式介面定義了擴充套件和語義令牌之間的約定。
事件
onDidChangeSemanticTokens?: Event<void>
一個可選事件,用於訊號指示此提供程式的語義令牌已更改。
方法
provideDocumentRangeSemanticTokens(document: TextDocument, range: Range, token: CancellationToken): ProviderResult<SemanticTokens>
| 引數 | 描述 |
|---|---|
| document: TextDocument | |
| range: Range | |
| token: CancellationToken | |
| 返回值 | 描述 |
| ProviderResult<SemanticTokens> |
DocumentSelector
語言選擇器是語言識別符號和 語言過濾器 的組合。
請注意,僅由語言識別符號組成的文件選擇器會選擇所有文件,包括未儲存在磁碟上的文件。只有當功能在沒有進一步上下文的情況下工作時,才應使用此類選擇器,例如,無需解析關聯的“檔案”。
示例
let sel: DocumentSelector = { scheme: 'file', language: 'typescript' };
DocumentSelector: DocumentFilter | string | ReadonlyArray<DocumentFilter | string>
DocumentSemanticTokensProvider
文件語義令牌提供程式介面定義了擴充套件和語義令牌之間的約定。
事件
onDidChangeSemanticTokens?: Event<void>
一個可選事件,用於訊號指示此提供程式的語義令牌已更改。
方法
provideDocumentSemanticTokens(document: TextDocument, token: CancellationToken): ProviderResult<SemanticTokens>
檔案中的令牌表示為整數陣列。每個令牌的位置相對於前一個令牌進行表達,因為當在檔案中進行編輯時,大多數令牌相對於彼此保持穩定。
簡而言之,每個令牌需要 5 個整數來表示,因此檔案中特定令牌 i 由以下陣列索引組成:
- 在索引
5*i-deltaLine- 令牌行號,相對於前一個令牌 - 在索引
5*i+1-deltaStart- 令牌開始字元,相對於前一個令牌(如果它們在同一行,則相對於 0 或前一個令牌的開始) - 在索引
5*i+2-length- 令牌的長度。令牌不能跨越多行。 - 在索引
5*i+3-tokenType- 將在SemanticTokensLegend.tokenTypes中查詢。我們目前要求tokenType< 65536。 - 在索引
5*i+4-tokenModifiers- 每個設定的位都將在SemanticTokensLegend.tokenModifiers中查詢
如何編碼令牌
以下是一個在 uint32 陣列中編碼具有 3 個令牌的檔案的示例
{ line: 2, startChar: 5, length: 3, tokenType: "property", tokenModifiers: ["private", "static"] },
{ line: 2, startChar: 10, length: 4, tokenType: "type", tokenModifiers: [] },
{ line: 5, startChar: 2, length: 7, tokenType: "class", tokenModifiers: [] }
- 首先,必須設計一個圖例。此圖例必須預先提供,幷包含所有可能的令牌型別。在此示例中,我們將選擇以下圖例,在註冊提供程式時必須傳遞此圖例
tokenTypes: ['property', 'type', 'class'],
tokenModifiers: ['private', 'static']
- 第一個轉換步驟是使用圖例將
tokenType和tokenModifiers編碼為整數。令牌型別按索引查詢,因此tokenType值為1表示tokenTypes[1]。可以透過位標誌設定多個令牌修飾符,因此tokenModifier值為3最初被視為二進位制0b00000011,這意味著[tokenModifiers[0], tokenModifiers[1]],因為設定了位 0 和 1。使用此圖例,令牌現在是
{ line: 2, startChar: 5, length: 3, tokenType: 0, tokenModifiers: 3 },
{ line: 2, startChar: 10, length: 4, tokenType: 1, tokenModifiers: 0 },
{ line: 5, startChar: 2, length: 7, tokenType: 2, tokenModifiers: 0 }
- 下一步是表示檔案中的每個令牌相對於前一個令牌。在這種情況下,第二個令牌與第一個令牌在同一行,因此第二個令牌的
startChar相對於第一個令牌的startChar進行計算,因此它將是10 - 5。第三個令牌與第二個令牌不在同一行,因此第三個令牌的startChar將不會被更改
{ deltaLine: 2, deltaStartChar: 5, length: 3, tokenType: 0, tokenModifiers: 3 },
{ deltaLine: 0, deltaStartChar: 5, length: 4, tokenType: 1, tokenModifiers: 0 },
{ deltaLine: 3, deltaStartChar: 2, length: 7, tokenType: 2, tokenModifiers: 0 }
- 最後一步是將令牌的 5 個欄位內聯到一個數組中,這是一個記憶體友好的表示
// 1st token, 2nd token, 3rd token
[ 2,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ]
另請參閱 SemanticTokensBuilder 以獲取用於將令牌編碼為整數的幫助程式。注意:在進行編輯時,可能會發生多次編輯,直到編輯器決定呼叫語義令牌提供程式。注意:如果提供程式暫時無法計算語義令牌,則可以透過丟擲訊息為“Busy”的錯誤來指示。
| 引數 | 描述 |
|---|---|
| document: TextDocument | |
| token: CancellationToken | |
| 返回值 | 描述 |
| ProviderResult<SemanticTokens> |
provideDocumentSemanticTokensEdits(document: TextDocument, previousResultId: string, token: CancellationToken): ProviderResult<SemanticTokens | SemanticTokensEdits>
而不是始終返回檔案中的所有令牌,DocumentSemanticTokensProvider 可以實現此方法(provideDocumentSemanticTokensEdits),然後返回對先前提供的語義令牌的增量更新。
文件更改時令牌如何變化
假設 provideDocumentSemanticTokens 之前已返回以下語義令牌
// 1st token, 2nd token, 3rd token
[ 2,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ]
還假設在進行某些編輯後,檔案中的新語義令牌是
// 1st token, 2nd token, 3rd token
[ 3,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ]
可以透過應用於先前令牌的編輯來表達這些新令牌
[ 2,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ] // old tokens
[ 3,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ] // new tokens
edit: { start: 0, deleteCount: 1, data: [3] } // replace integer at offset 0 with 3
注意:如果提供程式無法計算 SemanticTokensEdits,它可以“放棄”並再次返回文件中的所有令牌。注意:SemanticTokensEdits 中的所有編輯都包含舊整數陣列中的索引,因此它們都引用以前的結果狀態。
| 引數 | 描述 |
|---|---|
| document: TextDocument | |
| previousResultId: string | |
| token: CancellationToken | |
| 返回值 | 描述 |
| ProviderResult<SemanticTokens | SemanticTokensEdits> |
DocumentSymbol
表示文件中出現的變數、類、介面等程式設計構造。文件符號可以是分層的,並且它們有兩個範圍:一個包含其定義,一個指向其最有趣範圍,例如識別符號的範圍。
建構函式
new DocumentSymbol(name: string, detail: string, kind: SymbolKind, range: Range, selectionRange: Range): DocumentSymbol
建立一個新的文件符號。
| 引數 | 描述 |
|---|---|
| name: string | 符號的名稱。 |
| detail: string | 符號的詳細資訊。 |
| kind: SymbolKind | 符號的型別。 |
| range: Range | 符號的完整範圍。 |
| selectionRange: Range | 應該顯示的範圍。 |
| 返回值 | 描述 |
| DocumentSymbol |
屬性
children: DocumentSymbol[]
此符號的子項,例如類的屬性。
此符號的更多詳細資訊,例如函式的簽名。
kind: SymbolKind
此符號的型別。
此符號的名稱。
range: Range
包含此符號的範圍,不包括前導/尾隨空格,但包括其他所有內容,例如註釋和程式碼。
selectionRange: Range
選擇和顯示此符號時應選擇的範圍,例如函式名。必須包含在 range 中。
tags?: readonly SymbolTag[]
此符號的標籤。
DocumentSymbolProvider
DocumentSymbolProvider 介面定義了擴充套件和 轉到符號功能之間的契約。
方法
provideDocumentSymbols(document: TextDocument, token: CancellationToken): ProviderResult<DocumentSymbol[] | SymbolInformation[]>
為給定的文件提供符號資訊。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<DocumentSymbol[] | SymbolInformation[]> | 文件高亮陣列或解析為這些高亮的 thenable。可以透過返回 |
DocumentSymbolProviderMetadata
有關文件符號提供程式元資料。
屬性
當一個文件顯示多個大綱樹時,顯示一個人類可讀的字串。
EndOfLine
表示 文件中的行結束字元序列。
列舉成員
換行符 \n。
回車換行符 \r\n。
EnterAction
描述按下 Enter 鍵時應執行的操作。
屬性
描述新行和縮排後要附加的文字。
indentAction: IndentAction
描述縮排的操作。
描述新行縮排要刪除的字元數。
EnvironmentVariableCollection
擴充套件可以應用於程序環境的突變集合。
屬性
description: string | MarkdownString
環境變數集合的描述,將用於在 UI 中描述更改。
集合是否應被快取以供工作區使用,並在視窗重新載入時應用於終端。如果為 true,則集合將立即生效,例如在視窗重新載入時。此外,如果快取版本存在,此 API 將返回快取版本。在擴充套件解除安裝或集合被清除時,集合將失效。預設為 true。
方法
append(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
將值追加到環境變數。
請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前對 replace、append 或 prepend 的所有呼叫。
| 引數 | 描述 |
|---|---|
| variable: string | 要追加到的變數。 |
| value: string | 要追加到變數的值。 |
| options?: EnvironmentVariableMutatorOptions | 應用於變異器的選項。如果未提供任何選項,則預設為 |
| 返回值 | 描述 |
| void |
清除此集合中的所有變異器。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
delete(variable: string): void
刪除此集合對變數的變異器。
| 引數 | 描述 |
|---|---|
| variable: string | 要刪除其變異器的變數。 |
| 返回值 | 描述 |
| void |
forEach(callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any, thisArg?: any): void
遍歷此集合中的每個變異器。
| 引數 | 描述 |
|---|---|
| callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any | 為每個條目執行的函式。 |
| thisArg?: any | 呼叫處理函式時使用的 |
| 返回值 | 描述 |
| void |
get(variable: string): EnvironmentVariableMutator
獲取此集合應用於變數的變異器(如果存在)。
| 引數 | 描述 |
|---|---|
| variable: string | 要獲取其變異器的變數。 |
| 返回值 | 描述 |
| EnvironmentVariableMutator |
prepend(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
將值前置到環境變數。
請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前對 replace、append 或 prepend 的所有呼叫。
| 引數 | 描述 |
|---|---|
| variable: string | 要前置到的變數。 |
| value: string | 要前置到變數的值。 |
| options?: EnvironmentVariableMutatorOptions | 應用於變異器的選項。如果未提供任何選項,則預設為 |
| 返回值 | 描述 |
| void |
replace(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
將環境變數替換為某個值。
請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前對 replace、append 或 prepend 的所有呼叫。
| 引數 | 描述 |
|---|---|
| variable: string | 要替換的變數。 |
| value: string | 用於替換變數的值。 |
| options?: EnvironmentVariableMutatorOptions | 應用於變異器的選項。如果未提供任何選項,則預設為 |
| 返回值 | 描述 |
| void |
EnvironmentVariableMutator
應用於環境變數的變異型別及其值。
屬性
options: EnvironmentVariableMutatorOptions
應用於變異器的選項。
type: EnvironmentVariableMutatorType
將要應用於變數的變異型別。
用於變數的值。
EnvironmentVariableMutatorOptions
應用於變異器的選項。
屬性
applyAtProcessCreation?: boolean
在程序建立之前應用於環境。預設為 false。
applyAtShellIntegration?: boolean
應用於 shell 整合指令碼中的環境。注意,如果 shell 整合被停用或因某種原因無法正常工作,此設定不會應用變異器。預設為 false。
EnvironmentVariableMutatorType
可以應用於環境變數的變異型別。
列舉成員
替換變數的現有值。
追加到變數現有值末尾。
前置到變數現有值開頭。
EnvironmentVariableScope
環境變數集合適用的作用域物件。
屬性
workspaceFolder?: WorkspaceFolder
用於獲取集合的任何特定工作區資料夾。
EvaluatableExpression
EvaluatableExpression 表示文件中可以由活動偵錯程式或執行時進行評估的表示式。此評估的結果將顯示在類似工具提示的小部件中。如果僅指定了範圍,則表示式將從底層文件中提取。可選的 expression 可以用來覆蓋提取的表示式。在這種情況下,範圍仍然用於突出顯示文件中的範圍。
建構函式
new EvaluatableExpression(range: Range, expression?: string): EvaluatableExpression
建立新的可計算表示式物件。
| 引數 | 描述 |
|---|---|
| range: Range | 從中提取可計算表示式的底層文件中的範圍。 |
| expression?: string | 如果指定,則覆蓋提取的表示式。 |
| 返回值 | 描述 |
| EvaluatableExpression |
屬性
如果指定,則表示式將覆蓋提取的表示式。
range: Range
範圍用於從底層文件中提取可計算表示式並突出顯示它。
EvaluatableExpressionProvider
EvaluatableExpressionProvider 介面定義了擴充套件與除錯懸停之間的契約。在此契約中,提供程式返回給定文件位置的可計算表示式,編輯器會在活動的除錯會話中評估此表示式,並將結果顯示在除錯懸停中。
方法
provideEvaluatableExpression(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<EvaluatableExpression>
為給定的文件和位置提供可計算表示式。編輯器將在活動的除錯會話中評估此表示式,並在除錯懸停中顯示結果。表示式可以由底層文件中的範圍隱式指定,也可以透過顯式返回表示式來指定。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 將要顯示除錯懸停的文件。 |
| position: Position | 將要顯示除錯懸停的文件中的行和字元位置。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<EvaluatableExpression> | EvaluatableExpression 或一個解析為此型別的 thenable。可以透過返回 |
Event<T>
表示一個型別化的事件。
一個函式,它表示一個事件,你可以透過呼叫它並傳遞一個監聽器函式作為引數來訂閱它。
示例
item.onDidChange(function(event) {
console.log('Event happened: ' + event);
});
(listener: (e: T) => any, thisArgs?: any, disposables?: Disposable[]): Disposable
一個函式,它表示一個事件,你可以透過呼叫它並傳遞一個監聽器函式作為引數來訂閱它。
| 引數 | 描述 |
|---|---|
| listener: (e: T) => any | 當事件發生時將呼叫監聽器函式。 |
| thisArgs?: any | 呼叫事件監聽器時將使用的 |
| disposables?: Disposable[] | 將向其新增 Disposable 的陣列。 |
| 返回值 | 描述 |
| Disposable | 一個用於取消事件監聽器的 disposable。 |
EventEmitter<T>
事件發射器可用於為他人建立和管理一個 Event 以便訂閱。一個發射器總是擁有一個事件。
如果您想從擴充套件中提供事件,例如在 TextDocumentContentProvider 內部或向其他擴充套件提供 API 時,請使用此類。
建構函式
new EventEmitter<T>(): EventEmitter<T>
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| EventEmitter<T> |
屬性
event: Event<T>
事件監聽器可以訂閱。
方法
釋放此物件並回收資源。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
通知 事件的所有訂閱者。一個或多個監聽器的失敗不會導致此函式呼叫失敗。
| 引數 | 描述 |
|---|---|
| data: T | 事件物件。 |
| 返回值 | 描述 |
| void |
Extension<T>
表示一個擴充套件。
要獲取 Extension 的例項,請使用 getExtension。
屬性
此擴充套件匯出的公共 API(activate 的返回值)。在此擴充套件啟用之前訪問此欄位是無效操作。
extensionKind: ExtensionKind
擴充套件種類描述了一個擴充套件是在 UI 執行的地方執行,還是在遠端擴充套件主機執行的地方執行。擴充套件種類在擴充套件的 package.json 檔案中定義,但也可以透過 remote.extensionKind 設定進行細化。當沒有遠端擴充套件主機存在時,值為 ExtensionKind.UI。
包含此擴充套件的目錄的絕對檔案路徑。是 Extension.extensionUri.fsPath 的簡寫(與 uri 方案無關)。
extensionUri: Uri
包含擴充套件的目錄的 uri。
規範的擴充套件識別符號,格式為:publisher.name。
如果擴充套件已啟用,則為 true。
擴充套件的 package.json 的解析內容。
方法
啟用此擴充套件並返回其公共 API。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| Thenable<T> | 一個將在擴充套件啟用時解析的 Promise。 |
ExtensionContext
擴充套件上下文是擴充套件私有的實用程式集合。
ExtensionContext 的例項作為第一個引數傳遞給擴充套件的 activate 呼叫。
屬性
environmentVariableCollection: GlobalEnvironmentVariableCollection
獲取此工作區的擴充套件全域性環境變數集合,從而可以對終端環境變數進行更改。
extension: Extension<any>
當前 Extension 例項。
extensionMode: ExtensionMode
擴充套件執行的模式。有關可能的值和場景,請參閱 ExtensionMode。
擴充套件目錄的絕對檔案路徑。是 ExtensionContext.extensionUri.fsPath 的簡寫(與 uri 方案無關)。
extensionUri: Uri
包含擴充套件的目錄的 uri。
globalState: Memento & {setKeysForSync}
一個 memento 物件,用於儲存與當前開啟的 工作區無關的狀態。
擴充套件可以在其中儲存全域性狀態的目錄的絕對檔案路徑。該目錄可能不存在於磁碟上,並且由擴充套件負責建立。但是,父目錄保證存在。
使用 globalState 儲存鍵值資料。
- 已棄用 - 請改用 globalStorageUri。
globalStorageUri: Uri
擴充套件可以在其中儲存全域性狀態的目錄的 uri。該目錄可能不存在於磁碟上,並且由擴充套件負責建立。但是,父目錄保證存在。
使用 globalState 儲存鍵值資料。
另請參閱 workspace.fs,瞭解如何從 uri 讀取和寫入檔案和資料夾。
languageModelAccessInformation: LanguageModelAccessInformation
一個儲存有關此擴充套件如何使用語言模型的資訊的物件。
擴充套件可以在其中建立日誌檔案的目錄的絕對檔案路徑。該目錄可能不存在於磁碟上,並且由擴充套件負責建立。但是,父目錄保證存在。
- 已棄用 - 請改用 logUri。
logUri: Uri
擴充套件可以在其中建立日誌檔案的目錄的 uri。該目錄可能不存在於磁碟上,並且由擴充套件負責建立。但是,父目錄保證存在。
另請參閱 workspace.fs,瞭解如何從 uri 讀取和寫入檔案和資料夾。
secrets: SecretStorage
一個 secret 儲存物件,用於儲存與當前開啟的 工作區無關的狀態。
擴充套件可以在其中儲存私有狀態的工作區特定目錄的絕對檔案路徑。該目錄可能不存在於磁碟上,並且由擴充套件負責建立。但是,父目錄保證存在。
使用 workspaceState 或 globalState 儲存鍵值資料。
- 已棄用 - 請改用 storageUri。
storageUri: Uri
擴充套件可以在其中儲存私有狀態的工作區特定目錄的 uri。該目錄可能不存在,並且由擴充套件負責建立。但是,父目錄保證存在。當沒有開啟工作區或資料夾時,值為 undefined。
使用 workspaceState 或 globalState 儲存鍵值資料。
另請參閱 workspace.fs,瞭解如何從 uri 讀取和寫入檔案和資料夾。
subscriptions: Array<{dispose}>
可以向其新增 disposable 的陣列。當此擴充套件被停用時,這些 disposable 將被釋放。
注意,非同步釋放函式不會被等待。
workspaceState: Memento
一個 memento 物件,用於在當前開啟的 工作區的上下文中儲存狀態。
方法
asAbsolutePath(relativePath: string): string
獲取擴充套件中包含的資源的絕對路徑。
注意,可以透過 Uri.joinPath 和 extensionUri 構建絕對 uri,例如 vscode.Uri.joinPath(context.extensionUri, relativePath);
| 引數 | 描述 |
|---|---|
| relativePath: string | 擴充套件中包含的資源的相對路徑。 |
| 返回值 | 描述 |
| 字串 | 資源的絕對路徑。 |
ExtensionKind
在遠端視窗中,擴充套件種類描述了一個擴充套件是在 UI(視窗)執行的地方執行,還是在遠端執行。
列舉成員
擴充套件在 UI 執行的地方執行。
擴充套件在遠端擴充套件主機執行的地方執行。
ExtensionMode
ExtensionMode 在 ExtensionContext 上提供,並指示特定擴充套件執行的模式。
列舉成員
擴充套件正常安裝在編輯器中(例如,從 marketplace 或 VSIX)。
擴充套件是從啟動編輯器時提供的 --extensionDevelopmentPath 執行的。
擴充套件是從 --extensionTestsPath 執行的,並且擴充套件主機正在執行單元測試。
ExtensionTerminalOptions
用於描述虛擬程序終端應使用哪些選項的值物件。
屬性
color?: ThemeColor
終端的圖示 ThemeColor。推薦使用標準的 terminal.ansi* 主題鍵,以獲得最佳對比度和跨主題的一致性。
iconPath?: IconPath
終端的圖示路徑或 ThemeIcon。
選擇退出在重啟和過載時自動持久化終端。只有當 terminal.integrated.enablePersistentSessions 啟用時,此選項才生效。
location?: TerminalEditorLocationOptions | TerminalSplitLocationOptions | TerminalLocation
一個人類可讀的字串,將用於在 UI 中表示終端。
pty: Pseudoterminal
一個 Pseudoterminal 的實現,允許擴充套件控制一個終端。
shellIntegrationNonce?: string
用於驗證 shell 整合序列是否來自可信源的 nonce。UX 的一個示例影響是,如果命令列報告了一個 nonce,它將無需與使用者確認命令列是否正確即可透過 shell 整合命令裝飾 重新執行它。
如果終端包含 自定義 shell 整合支援,則應使用此選項。應將其設定為一個隨機 GUID。在 Pseudoterminal 實現中,此值可以在相關序列中傳遞,以使其成為可信的。
FileChangeEvent
檔案系統提供程式必須使用此事件來指示檔案更改。
屬性
type: FileChangeType
更改的型別。
uri: Uri
已更改檔案的 URI。
FileChangeType
檔案更改型別的列舉。
列舉成員
檔案的內容或元資料已更改。
檔案已被建立。
檔案已被刪除。
FileCoverage
包含檔案的覆蓋元資料。
靜態
fromDetails(uri: Uri, details: readonly FileCoverageDetail[]): FileCoverage
使用覆蓋詳細資訊填充的計數器建立一個 FileCoverage 例項。
| 引數 | 描述 |
|---|---|
| uri: Uri | 已覆蓋檔案的 URI |
| details: readonly FileCoverageDetail[] | 詳細的覆蓋資訊 |
| 返回值 | 描述 |
| FileCoverage |
建構函式
new FileCoverage(uri: Uri, statementCoverage: TestCoverageCount, branchCoverage?: TestCoverageCount, declarationCoverage?: TestCoverageCount, includesTests?: TestItem[]): FileCoverage
| 引數 | 描述 |
|---|---|
| uri: Uri | 已覆蓋檔案的 URI |
| statementCoverage: TestCoverageCount | 語句覆蓋資訊。如果報告器不提供語句覆蓋資訊,則此項可用於表示行覆蓋。 |
| branchCoverage?: TestCoverageCount | 分支覆蓋資訊 |
| declarationCoverage?: TestCoverageCount | 宣告覆蓋資訊 |
| includesTests?: TestItem[] | 此覆蓋報告中包含的測試用例,請參閱 FileCoverage.includesTests |
| 返回值 | 描述 |
| FileCoverage |
屬性
branchCoverage?: TestCoverageCount
分支覆蓋資訊。
declarationCoverage?: TestCoverageCount
宣告覆蓋資訊。根據報告器和語言的不同,這可能是函式、方法或名稱空間等型別。
includesTests?: TestItem[]
生成此檔案覆蓋的 測試用例 列表。如果設定了此項,則還應在 TestRunProfile.loadDetailedCoverageForTest 中定義,以便檢索詳細的覆蓋資訊。
statementCoverage: TestCoverageCount
語句覆蓋資訊。如果報告器不提供語句覆蓋資訊,則此項可用於表示行覆蓋。
uri: Uri
檔案 URI。
FileCoverageDetail
從 TestRunProfile.loadDetailedCoverage 返回的覆蓋詳細資訊。
FileCoverageDetail: StatementCoverage | DeclarationCoverage
FileCreateEvent
檔案建立後觸發的事件。
屬性
files: readonly Uri[]
已建立的檔案。
FileDecoration
檔案裝飾表示可以與檔案一起渲染的元資料。
建構函式
new FileDecoration(badge?: string, tooltip?: string, color?: ThemeColor): FileDecoration
建立新的裝飾。
| 引數 | 描述 |
|---|---|
| badge?: string | 表示裝飾的字母。 |
| tooltip?: string | 裝飾的工具提示。 |
| color?: ThemeColor | 裝飾的顏色。 |
| 返回值 | 描述 |
| FileDecoration |
屬性
一個非常短的字串,表示此裝飾。
color?: ThemeColor
此裝飾的顏色。
一個布林標誌,表示此裝飾應傳播給其父級。
此裝飾的可讀工具提示。
FileDecorationProvider
裝飾提供程式介面定義了擴充套件與檔案裝飾之間的契約。
事件
onDidChangeFileDecorations?: Event<Uri | Uri[]>
方法
provideFileDecoration(uri: Uri, token: CancellationToken): ProviderResult<FileDecoration>
為給定的 URI 提供裝飾。
請注意,此函式僅在檔案 UI 中渲染時呼叫。這意味著,透過 onDidChangeFileDecorations 事件必須向編輯器發出關於向上傳播的子項的裝飾訊號。
| 引數 | 描述 |
|---|---|
| uri: Uri | 為提供裝飾的檔案的 URI。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<FileDecoration> | 一個裝飾或一個解析為該裝飾的可thenable。 |
FileDeleteEvent
檔案刪除後觸發的事件。
屬性
files: readonly Uri[]
已刪除的檔案。
FilePermission
檔案的許可權。
列舉成員
檔案是隻讀的。
注意:所有來自注冊了 isReadonly: true 選項的 FileSystemProvider 的 FileStat 都將被隱式視為設定了 FilePermission.Readonly。因此,無法註冊一個只讀檔案系統提供程式,其中某些 FileStat 不是隻讀的。
FileRenameEvent
檔案重新命名後觸發的事件。
屬性
files: ReadonlyArray<{newUri: Uri, oldUri: Uri}>
已重新命名的檔案。
FileStat
FileStat 型別表示檔案的元資料
屬性
建立時間戳(自 1970 年 1 月 1 日 00:00:00 UTC 以來的毫秒數)。
修改時間戳(自 1970 年 1 月 1 日 00:00:00 UTC 以來的毫秒數)。
注意:如果檔案已更改,請務必提供一個比先前值更晚的更新的 mtime。否則,可能會有最佳化導致編輯器不顯示更新後的檔案內容。
permissions?: FilePermission
檔案的許可權,例如檔案是否只讀。
注意:此值可能是一個位掩碼,例如 FilePermission.Readonly | FilePermission.Other。
大小(以位元組為單位)。
注意:如果檔案已更改,請務必提供更新的 size。否則,可能會有最佳化導致編輯器不顯示更新後的檔案內容。
type: FileType
檔案的型別,例如普通檔案、目錄或指向檔案的符號連結。
注意:此值可能是一個位掩碼,例如 FileType.File | FileType.SymbolicLink。
FileSystem
檔案系統介面公開編輯器內建和貢獻的 檔案系統提供程式。它允許擴充套件處理本地磁碟上的檔案以及來自遠端位置(如遠端擴充套件主機或 ftp 伺服器)的檔案。
請注意,此介面的一個例項可透過 workspace.fs 訪問。
方法
copy(source: Uri, target: Uri, options?: {overwrite: boolean}): Thenable<void>
複製檔案或資料夾。
createDirectory(uri: Uri): Thenable<void>
建立新目錄(注意,新檔案是透過 write 呼叫建立的)。
請注意,缺失的目錄會自動建立,例如此呼叫具有 mkdirp 的語義。
| 引數 | 描述 |
|---|---|
| uri: Uri | 新資料夾的 URI。 |
| 返回值 | 描述 |
| Thenable<void> |
delete(uri: Uri, options?: {recursive: boolean, useTrash: boolean}): Thenable<void>
刪除檔案。
| 引數 | 描述 |
|---|---|
| uri: Uri | 要刪除的資源。 |
| options?: {recursive: boolean, useTrash: boolean} | 定義是否使用回收站以及是否遞迴刪除資料夾。 |
| 返回值 | 描述 |
| Thenable<void> |
isWritableFileSystem(scheme: string): boolean
檢查給定的檔案系統是否支援寫入檔案。
請記住,即使檔案系統支援寫入,也並不意味著寫入總是會成功。可能存在許可權問題或其他錯誤導致檔案寫入失敗。
| 引數 | 描述 |
|---|---|
| scheme: string | 檔案系統的方案,例如 |
| 返回值 | 描述 |
| 布林值 | 如果檔案系統支援寫入,則為 |
readDirectory(uri: Uri): Thenable<Array<[string, FileType]>>
檢索 目錄 的所有條目。
readFile(uri: Uri): Thenable<Uint8Array>
讀取檔案的全部內容。
| 引數 | 描述 |
|---|---|
| uri: Uri | 檔案的 URI。 |
| 返回值 | 描述 |
| Thenable<Uint8Array> | 位元組陣列或解析為該陣列的可thenable。 |
rename(source: Uri, target: Uri, options?: {overwrite: boolean}): Thenable<void>
重新命名檔案或資料夾。
stat(uri: Uri): Thenable<FileStat>
writeFile(uri: Uri, content: Uint8Array): Thenable<void>
將資料寫入檔案,替換其所有內容。
| 引數 | 描述 |
|---|---|
| uri: Uri | 檔案的 URI。 |
| content: Uint8Array | 檔案的內容。 |
| 返回值 | 描述 |
| Thenable<void> |
FileSystemError
檔案系統提供程式應使用的型別來指示錯誤。
此類包含常見錯誤場景的工廠方法,例如 FileNotFound(檔案或資料夾不存在),用法如下:throw vscode.FileSystemError.FileNotFound(someUri);
靜態
FileExists(messageOrUri?: string | Uri): FileSystemError
建立錯誤以指示檔案或資料夾已存在,例如在建立但不覆蓋檔案時。
| 引數 | 描述 |
|---|---|
| messageOrUri?: string | Uri | 訊息或 URI。 |
| 返回值 | 描述 |
| FileSystemError |
FileIsADirectory(messageOrUri?: string | Uri): FileSystemError
建立錯誤以指示檔案是一個資料夾。
| 引數 | 描述 |
|---|---|
| messageOrUri?: string | Uri | 訊息或 URI。 |
| 返回值 | 描述 |
| FileSystemError |
FileNotADirectory(messageOrUri?: string | Uri): FileSystemError
建立錯誤以指示檔案不是一個資料夾。
| 引數 | 描述 |
|---|---|
| messageOrUri?: string | Uri | 訊息或 URI。 |
| 返回值 | 描述 |
| FileSystemError |
FileNotFound(messageOrUri?: string | Uri): FileSystemError
建立錯誤以指示檔案或資料夾未找到。
| 引數 | 描述 |
|---|---|
| messageOrUri?: string | Uri | 訊息或 URI。 |
| 返回值 | 描述 |
| FileSystemError |
NoPermissions(messageOrUri?: string | Uri): FileSystemError
建立錯誤以指示操作缺少必要的許可權。
| 引數 | 描述 |
|---|---|
| messageOrUri?: string | Uri | 訊息或 URI。 |
| 返回值 | 描述 |
| FileSystemError |
Unavailable(messageOrUri?: string | Uri): FileSystemError
建立錯誤以指示檔案系統不可用或過於繁忙而無法完成請求。
| 引數 | 描述 |
|---|---|
| messageOrUri?: string | Uri | 訊息或 URI。 |
| 返回值 | 描述 |
| FileSystemError |
建構函式
new FileSystemError(messageOrUri?: string | Uri): FileSystemError
建立新的檔案系統錯誤。
| 引數 | 描述 |
|---|---|
| messageOrUri?: string | Uri | 訊息或 URI。 |
| 返回值 | 描述 |
| FileSystemError |
屬性
標識此錯誤的程式碼。
可能的值是錯誤的名稱,例如 FileNotFound,或者 Unknown 表示未指定錯誤。
FileSystemProvider
檔案系統提供程式定義了編輯器讀取、寫入、發現以及管理檔案和資料夾所需的內容。它允許擴充套件從遠端位置(如 ftp 伺服器)提供檔案,並將這些檔案無縫整合到編輯器中。
事件
onDidChangeFile: Event<FileChangeEvent[]>
方法
copy(source: Uri, destination: Uri, options: {overwrite: boolean}): void | Thenable<void>
複製檔案或資料夾。實現此函式是可選的,但它會加快複製操作的速度。
- 丟擲 - FileNotFound,當
source不存在時。
- 丟擲 - FileNotFound,當
destination的父目錄不存在時,例如不需要mkdirp邏輯。
- 丟擲 - FileExists,當
destination已存在且overwrite選項不是true時。
- 丟擲 - NoPermissions,當權限不足時。
createDirectory(uri: Uri): void | Thenable<void>
建立新目錄(注意,新檔案是透過 write 呼叫建立的)。
- throws - FileNotFound 當
uri的父目錄不存在時,例如,不需要 mkdirp 邏輯。
- throws - FileExists 當
uri已存在時。
- 丟擲 - NoPermissions,當權限不足時。
| 引數 | 描述 |
|---|---|
| uri: Uri | 新資料夾的 URI。 |
| 返回值 | 描述 |
| void | Thenable<void> |
delete(uri: Uri, options: {recursive: boolean}): void | Thenable<void>
| 引數 | 描述 |
|---|---|
| uri: Uri | 要刪除的資源。 |
| options: {recursive: boolean} | 定義是否遞迴刪除資料夾。 |
| 返回值 | 描述 |
| void | Thenable<void> |
readDirectory(uri: Uri): Array<[string, FileType]> | Thenable<Array<[string, FileType]>>
檢索 目錄 的所有條目。
- throws - FileNotFound 當
uri不存在時。
readFile(uri: Uri): Uint8Array | Thenable<Uint8Array>
讀取檔案的全部內容。
- throws - FileNotFound 當
uri不存在時。
| 引數 | 描述 |
|---|---|
| uri: Uri | 檔案的 URI。 |
| 返回值 | 描述 |
| Uint8Array | Thenable<Uint8Array> | 位元組陣列或解析為該陣列的可thenable。 |
rename(oldUri: Uri, newUri: Uri, options: {overwrite: boolean}): void | Thenable<void>
重新命名檔案或資料夾。
- throws - FileNotFound 當
oldUri不存在時。
- throws - FileNotFound 當
newUri的父目錄不存在時,例如,不需要 mkdirp 邏輯。
- throws - FileExists 當
newUri已存在且overwrite選項不為true時。
- 丟擲 - NoPermissions,當權限不足時。
stat(uri: Uri): FileStat | Thenable<FileStat>
檢索檔案的元資料。
請注意,符號連結的元資料應為它們指向的檔案的元資料。但是,除了實際型別之外,還必須使用 FileType.SymbolicLink,例如 FileType.SymbolicLink | FileType.Directory。
- throws - FileNotFound 當
uri不存在時。
watch(uri: Uri, options: {excludes: readonly string[], recursive: boolean}): Disposable
訂閱檔案或資料夾(由 uri 表示)的更改事件。對於資料夾,recursive 選項表示是否也應監視子資料夾、子子資料夾等的檔案更改。當 recursive: false 時,只有資料夾的直接子檔案的更改才會觸發事件。
excludes 陣列用於指示應從檔案監視中排除的路徑。它通常派生自使用者可配置的 files.watcherExclude 設定。每個條目都可以是
- 要排除的絕對路徑
- 要排除的相對路徑(例如
build/output) - 簡單的 glob 模式(例如
**/build、output/**)
檔案系統提供商的職責是根據這些規則為每次更改呼叫 onDidChangeFile。不得為與提供的任何排除項匹配的檔案發出事件。
| 引數 | 描述 |
|---|---|
| uri: Uri | 要監視的檔案或資料夾的 uri。 |
| options: {excludes: readonly string[], recursive: boolean} | 配置監視。 |
| 返回值 | 描述 |
| Disposable | 一個 disposable,用於告知提供商停止監視 |
writeFile(uri: Uri, content: Uint8Array, options: {create: boolean, overwrite: boolean}): void | Thenable<void>
將資料寫入檔案,替換其所有內容。
- throws - FileNotFound 當
uri不存在且未設定create時。
- throws - FileNotFound 當
uri的父目錄不存在且設定了create時,例如,不需要 mkdirp 邏輯。
- throws - FileExists 當
uri已存在,設定了create但未設定overwrite時。
- 丟擲 - NoPermissions,當權限不足時。
| 引數 | 描述 |
|---|---|
| uri: Uri | 檔案的 URI。 |
| content: Uint8Array | 檔案的內容。 |
| options: {create: boolean, overwrite: boolean} | 定義是否應或必須建立不存在的檔案。 |
| 返回值 | 描述 |
| void | Thenable<void> |
FileSystemWatcher
檔案系統監視器會通知有關磁碟上的檔案和資料夾或其他 FileSystemProviders 的更改。
要獲取 FileSystemWatcher 的例項,請使用 createFileSystemWatcher。
事件
檔案/資料夾更改時觸發的事件。
檔案/資料夾建立時觸發的事件。
檔案/資料夾刪除時觸發的事件。
屬性
如果此檔案系統監視器建立時忽略了更改檔案系統事件,則為 true。
如果此檔案系統監視器建立時忽略了建立檔案系統事件,則為 true。
如果此檔案系統監視器建立時忽略了刪除檔案系統事件,則為 true。
方法
處置此物件。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| any |
FileType
檔案型別的列舉。File 和 Directory 型別也可以是符號連結,在這種情況下,請使用 FileType.File | FileType.SymbolicLink 和 FileType.Directory | FileType.SymbolicLink。
列舉成員
檔案型別未知。
普通檔案。
目錄。
指向檔案的符號連結。
FileWillCreateEvent
在檔案即將建立時觸發的事件。
要在檔案建立之前對工作區進行修改,請使用 waitUntil 函式呼叫一個解析為 workspace edit 的 thenable。
屬性
files: readonly Uri[]
將要建立的檔案。
token: CancellationToken
取消令牌。
方法
waitUntil(thenable: Thenable<WorkspaceEdit>): void
允許暫停事件並應用 workspace edit。
注意: 此函式只能在事件分派期間呼叫,不能非同步呼叫
workspace.onWillCreateFiles(event => {
// async, will *throw* an error
setTimeout(() => event.waitUntil(promise));
// sync, OK
event.waitUntil(promise);
});
| 引數 | 描述 |
|---|---|
| thenable: Thenable<WorkspaceEdit> | 延遲儲存的 thenable。 |
| 返回值 | 描述 |
| void |
waitUntil(thenable: Thenable<any>): void
允許暫停事件,直到提供的 thenable 解析。
注意: 此函式只能在事件分派期間呼叫。
| 引數 | 描述 |
|---|---|
| thenable: Thenable<any> | 延遲儲存的 thenable。 |
| 返回值 | 描述 |
| void |
FileWillDeleteEvent
在檔案即將刪除時觸發的事件。
要在檔案刪除之前對工作區進行修改,請使用 waitUntil 函式呼叫一個解析為 workspace edit 的 thenable。
屬性
files: readonly Uri[]
將要刪除的檔案。
token: CancellationToken
取消令牌。
方法
waitUntil(thenable: Thenable<WorkspaceEdit>): void
允許暫停事件並應用 workspace edit。
注意: 此函式只能在事件分派期間呼叫,不能非同步呼叫
workspace.onWillCreateFiles(event => {
// async, will *throw* an error
setTimeout(() => event.waitUntil(promise));
// sync, OK
event.waitUntil(promise);
});
| 引數 | 描述 |
|---|---|
| thenable: Thenable<WorkspaceEdit> | 延遲儲存的 thenable。 |
| 返回值 | 描述 |
| void |
waitUntil(thenable: Thenable<any>): void
允許暫停事件,直到提供的 thenable 解析。
注意: 此函式只能在事件分派期間呼叫。
| 引數 | 描述 |
|---|---|
| thenable: Thenable<any> | 延遲儲存的 thenable。 |
| 返回值 | 描述 |
| void |
FileWillRenameEvent
在檔案即將重新命名時觸發的事件。
要在檔案重新命名之前對工作區進行修改,請使用 waitUntil 函式呼叫一個解析為 workspace edit 的 thenable。
屬性
files: ReadonlyArray<{newUri: Uri, oldUri: Uri}>
將要重新命名的檔案。
token: CancellationToken
取消令牌。
方法
waitUntil(thenable: Thenable<WorkspaceEdit>): void
允許暫停事件並應用 workspace edit。
注意: 此函式只能在事件分派期間呼叫,不能非同步呼叫
workspace.onWillCreateFiles(event => {
// async, will *throw* an error
setTimeout(() => event.waitUntil(promise));
// sync, OK
event.waitUntil(promise);
});
| 引數 | 描述 |
|---|---|
| thenable: Thenable<WorkspaceEdit> | 延遲儲存的 thenable。 |
| 返回值 | 描述 |
| void |
waitUntil(thenable: Thenable<any>): void
允許暫停事件,直到提供的 thenable 解析。
注意: 此函式只能在事件分派期間呼叫。
| 引數 | 描述 |
|---|---|
| thenable: Thenable<any> | 延遲儲存的 thenable。 |
| 返回值 | 描述 |
| void |
FoldingContext
摺疊上下文(供將來使用)
FoldingRange
基於行的摺疊範圍。要有效,起始行和結束行必須大於零且小於文件行數。無效的範圍將被忽略。
建構函式
new FoldingRange(start: number, end: number, kind?: FoldingRangeKind): FoldingRange
建立新的摺疊範圍。
| 引數 | 描述 |
|---|---|
| start: number | 摺疊範圍的起始行。 |
| end: number | 摺疊範圍的結束行。 |
| kind?: FoldingRangeKind | 摺疊範圍的型別。 |
| 返回值 | 描述 |
| FoldingRange |
屬性
要摺疊的範圍的基於零的結束行。摺疊區域以行的最後一個字元結束。為了有效,結束行必須大於等於零且小於文件行數。
kind?: FoldingRangeKind
描述摺疊範圍的 Kind,例如 Comment 或 Region。Kind 用於對摺疊範圍進行分類,並由“摺疊所有註釋”等命令使用。請參閱 FoldingRangeKind 以瞭解所有 Kind 的列舉。如果未設定,則範圍源自語法元素。
要摺疊的範圍的基於零的起始行。摺疊區域從行的最後一個字元之後開始。為了有效,結束行必須大於等於零且小於文件行數。
FoldingRangeKind
特定摺疊範圍種類的列舉。Kind 是 FoldingRange 的可選欄位,用於區分特定摺疊範圍,例如源自注釋的範圍。Kind 由“摺疊所有註釋”或“摺疊所有區域”等命令使用。如果未在範圍內設定 Kind,則該範圍源自注釋、匯入或區域標記以外的語法元素。
列舉成員
代表註釋的摺疊範圍的 Kind。
代表匯入的摺疊範圍的 Kind。
代表源自摺疊標記(如 #region 和 #endregion)的區域的摺疊範圍的 Kind。
FoldingRangeProvider
摺疊範圍提供程式介面定義了擴充套件和編輯器中的 Folding 之間的合同。
事件
onDidChangeFoldingRanges?: Event<void>
一個可選事件,用於指示此提供程式的摺疊範圍已更改。
方法
provideFoldingRanges(document: TextDocument, context: FoldingContext, token: CancellationToken): ProviderResult<FoldingRange[]>
返回摺疊範圍列表,如果提供程式不想參與或被取消,則返回 null 和 undefined。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| context: FoldingContext | 附加上下文資訊(供將來使用) |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<FoldingRange[]> |
FormattingOptions
描述格式化應使用哪些選項的值物件。
屬性
偏好空格而不是製表符。
一個空格的製表符大小。
FunctionBreakpoint
由函式名指定的斷點。
建構函式
new FunctionBreakpoint(functionName: string, enabled?: boolean, condition?: string, hitCondition?: string, logMessage?: string): FunctionBreakpoint
建立新的函式斷點。
| 引數 | 描述 |
|---|---|
| functionName: string | |
| enabled?: boolean | |
| condition?: string | |
| hitCondition?: string | |
| logMessage?: string | |
| 返回值 | 描述 |
| FunctionBreakpoint |
屬性
條件斷點的可選表示式。
斷點是否已啟用。
此斷點附加到的函式的名稱。
可選表示式,用於控制忽略斷點多少次命中。
斷點的唯一 ID。
斷點命中時要記錄的可選訊息。{} 中的嵌入表示式由除錯介面卡進行插值。
GlobalEnvironmentVariableCollection
擴充套件可以應用於程序環境的變數集合。適用於所有範圍。
屬性
description: string | MarkdownString
環境變數集合的描述,將用於在 UI 中描述更改。
集合是否應被快取以供工作區使用,並在視窗重新載入時應用於終端。如果為 true,則集合將立即生效,例如在視窗重新載入時。此外,如果快取版本存在,此 API 將返回快取版本。在擴充套件解除安裝或集合被清除時,集合將失效。預設為 true。
方法
append(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
將值追加到環境變數。
請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前對 replace、append 或 prepend 的所有呼叫。
| 引數 | 描述 |
|---|---|
| variable: string | 要追加到的變數。 |
| value: string | 要追加到變數的值。 |
| options?: EnvironmentVariableMutatorOptions | 應用於變異器的選項。如果未提供任何選項,則預設為 |
| 返回值 | 描述 |
| void |
清除此集合中的所有變異器。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
delete(variable: string): void
刪除此集合對變數的變異器。
| 引數 | 描述 |
|---|---|
| variable: string | 要刪除其變異器的變數。 |
| 返回值 | 描述 |
| void |
forEach(callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any, thisArg?: any): void
遍歷此集合中的每個變異器。
| 引數 | 描述 |
|---|---|
| callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any | 為每個條目執行的函式。 |
| thisArg?: any | 呼叫處理函式時使用的 |
| 返回值 | 描述 |
| void |
get(variable: string): EnvironmentVariableMutator
獲取此集合應用於變數的變異器(如果存在)。
| 引數 | 描述 |
|---|---|
| variable: string | 要獲取其變異器的變數。 |
| 返回值 | 描述 |
| EnvironmentVariableMutator |
getScoped(scope: EnvironmentVariableScope): EnvironmentVariableCollection
獲取擴充套件的作用域特定環境變數集合。這使得僅在指定作用域內修改終端環境變數成為可能,並且是在全域性集合之上(以及之後)應用的。
透過此方法獲得的每個物件都是隔離的,並且不會影響其他作用域的物件,包括全域性集合。
| 引數 | 描述 |
|---|---|
| scope: EnvironmentVariableScope | 環境變數集合適用的作用域。 如果省略了作用域引數,則返回適用於該引數的所有相關作用域的集合。例如,如果未指定 'workspaceFolder' 引數,則將返回適用於所有工作區的集合。 |
| 返回值 | 描述 |
| EnvironmentVariableCollection | 傳入作用域的環境變數集合。 |
prepend(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
將值前置到環境變數。
請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前對 replace、append 或 prepend 的所有呼叫。
| 引數 | 描述 |
|---|---|
| variable: string | 要前置到的變數。 |
| value: string | 要前置到變數的值。 |
| options?: EnvironmentVariableMutatorOptions | 應用於變異器的選項。如果未提供任何選項,則預設為 |
| 返回值 | 描述 |
| void |
replace(variable: string, value: string, options?: EnvironmentVariableMutatorOptions): void
將環境變數替換為某個值。
請注意,擴充套件只能對任何一個變數進行一次更改,因此這將覆蓋之前對 replace、append 或 prepend 的所有呼叫。
| 引數 | 描述 |
|---|---|
| variable: string | 要替換的變數。 |
| value: string | 用於替換變數的值。 |
| options?: EnvironmentVariableMutatorOptions | 應用於變異器的選項。如果未提供任何選項,則預設為 |
| 返回值 | 描述 |
| void |
GlobPattern
用於匹配檔案路徑的 glob 檔案模式。這可以是 glob 模式字串(如 **/*.{ts,js} 或 *.{ts,js})或 relative pattern。
Glob 模式可以具有以下語法
*匹配路徑段中的零個或多個字元?匹配路徑段中的一個字元**匹配任意數量的路徑段,包括零個{}用於分組條件(例如**/*.{ts,js}匹配所有 TypeScript 和 JavaScript 檔案)[]用於宣告路徑段中要匹配的字元範圍(例如,example.[0-9]匹配example.0、example.1等)[!...]用於否定路徑段中要匹配的字元範圍(例如,example.[!0-9]匹配example.a、example.b,但不匹配example.0)
注意:反斜槓 (``) 在 glob 模式中無效。如果要匹配現有檔案路徑,請考慮使用 relative pattern 支援,該支援會自動將任何反斜槓轉換為斜槓。否則,請確保在建立 glob 模式時將任何反斜槓轉換為斜槓。
GlobPattern: string | RelativePattern
Hover
Hover 代表符號或單詞的附加資訊。Hover 將在類似工具提示的視窗中小部件中呈現。
建構函式
new Hover(contents: MarkdownString | MarkedString | Array<MarkdownString | MarkedString>, range?: Range): Hover
建立新的 Hover 物件。
| 引數 | 描述 |
|---|---|
| contents: MarkdownString | MarkedString | Array<MarkdownString | MarkedString> | Hover 的內容。 |
| range?: Range | Hover 適用的範圍。 |
| 返回值 | 描述 |
| Hover |
屬性
contents: Array<MarkdownString | MarkedString>
此 Hover 的內容。
range?: Range
此 Hover 適用的範圍。如果省略,編輯器將使用當前位置的單詞範圍或當前位置本身。
HoverProvider
Hover 提供程式介面定義了擴充套件和 hover 功能之間的合同。
方法
provideHover(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<Hover>
為給定的位置和文件提供 Hover。同一位置的多個 Hover 將由編輯器合併。Hover 可以有一個範圍,如果省略,則預設為當前位置的單詞範圍。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| position: Position | 呼叫命令的位置。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<Hover> | Hover 或解析為 Hover 的 thenable。可以透過返回 |
IconPath
表示 UI 中的圖示。這可以是 uri、淺色和深色主題的單獨 uri,或 theme icon。
IconPath: Uri | {dark: Uri, light: Uri} | ThemeIcon
ImplementationProvider
實現提供程式介面定義了擴充套件和轉到實現功能之間的合同。
方法
provideImplementation(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<Definition | LocationLink[]>
提供給定位置和文件中符號的實現。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| position: Position | 呼叫命令的位置。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<Definition | LocationLink[]> | 定義或一個可解析為該定義的 thenable。可以透過返回 |
IndentAction
描述按 Enter 鍵時如何處理縮排。
列舉成員
插入新行並複製上一行的縮排。
插入新行並縮排一次(相對於上一行的縮排)。
插入兩行新行
- 第一個被縮排,游標將停在那裡
- 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).
indentNextLinePattern?: RegExp
If a line matches this pattern, then only the next line after it should be indented once.
unIndentedLinePattern?: RegExp
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.
建構函式
new InlayHint(position: Position, label: string | InlayHintLabelPart[], kind?: InlayHintKind): InlayHint
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 |
屬性
kind?: InlayHintKind
The kind of this hint. The inlay hint kind defines the appearance of this inlay hint.
label: string | InlayHintLabelPart[]
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.
position: Position
The position of this hint.
textEdits?: TextEdit[]
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.
tooltip?: string | MarkdownString
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.
建構函式
new InlayHintLabelPart(value: string): InlayHintLabelPart
Creates a new inlay hint label part.
| 引數 | 描述 |
|---|---|
| value: string | The value of the part. |
| 返回值 | 描述 |
| InlayHintLabelPart |
屬性
command?: Command
location?: Location
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.
tooltip?: string | MarkdownString
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.
事件
onDidChangeInlayHints?: Event<void>
An optional event to signal that inlay hints from this provider have changed.
方法
provideInlayHints(document: TextDocument, range: Range, token: CancellationToken): ProviderResult<T[]>
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. |
resolveInlayHint(hint: T, token: CancellationToken): ProviderResult<T>
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 |
InlineCompletionContext
Provides information about the context in which an inline completion was requested.
屬性
selectedCompletionInfo: SelectedCompletionInfo
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.
triggerKind: InlineCompletionTriggerKind
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
建構函式
new InlineCompletionItem(insertText: string | SnippetString, range?: Range, command?: Command): InlineCompletionItem
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 |
屬性
command?: Command
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.
insertText: string | SnippetString
The text to replace the range with. Must be set. Is used both for the preview and the accept operation.
range?: Range
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.
方法
provideInlineCompletionItems(document: TextDocument, position: Position, context: InlineCompletionContext, token: CancellationToken): ProviderResult<InlineCompletionList | InlineCompletionItem[]>
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.
建構函式
new InlineCompletionList(items: InlineCompletionItem[]): InlineCompletionList
Creates a new list of inline completion items.
| 引數 | 描述 |
|---|---|
| items: InlineCompletionItem[] | |
| 返回值 | 描述 |
| InlineCompletionList |
屬性
items: InlineCompletionItem[]
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.
InlineValue: InlineValueText | InlineValueVariableLookup | InlineValueEvaluatableExpression
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.
stoppedLocation: Range
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.
建構函式
new InlineValueEvaluatableExpression(range: Range, expression?: string): InlineValueEvaluatableExpression
Creates a new InlineValueEvaluatableExpression object.
| 引數 | 描述 |
|---|---|
| range: Range | 從中提取可計算表示式的底層文件中的範圍。 |
| expression?: string | 如果指定,則覆蓋提取的表示式。 |
| 返回值 | 描述 |
| InlineValueEvaluatableExpression |
屬性
如果指定,則表示式將覆蓋提取的表示式。
range: Range
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.
事件
onDidChangeInlineValues?: Event<void>
An optional event to signal that inline values have changed.
另請參閱 EventEmitter
方法
provideInlineValues(document: TextDocument, viewPort: Range, context: InlineValueContext, token: CancellationToken): ProviderResult<InlineValue[]>
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 |
InlineValueText
Provide inline value as text.
建構函式
new InlineValueText(range: Range, text: string): InlineValueText
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 |
屬性
range: Range
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.
建構函式
new InlineValueVariableLookup(range: Range, variableName?: string, caseSensitiveLookup?: boolean): InlineValueVariableLookup
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.
range: Range
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 不提供所需靈活性時使用。
事件
onDidAccept: Event<void>
An event signaling when the user indicated acceptance of the input value.
onDidChangeValue: Event<string>
An event signaling when the value has changed.
onDidHide: Event<void>
onDidTriggerButton: Event<QuickInputButton>
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: readonly QuickInputButton[]
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.
可選的多步輸入流程的總步數。
validationMessage: string | InputBoxValidationMessage
一個可選的驗證訊息,指示當前輸入值存在問題。
透過設定一個字串,InputBox 將使用預設的 InputBoxValidationSeverity 級別 Error。返回 undefined 會清除驗證訊息。
當前的輸入值。
valueSelection: readonly [number, number]
輸入值中的選擇範圍。
定義為兩個數字的元組,第一個是包含的起始索引,第二個是排除的結束索引。當為 undefined 時,將選擇整個預填充值;當為空(開始等於結束)時,僅設定游標;否則,將選擇定義的範圍。
當用戶鍵入或進行選擇時,此屬性不會更新,但可以由擴充套件更新。
方法
銷燬此輸入 UI 和任何相關資源。
如果 UI 仍然可見,它將首先被隱藏。在此呼叫之後,輸入 UI 將不再可用,並且不應再訪問其上的任何其他方法或屬性。相反,應該建立新的輸入 UI。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
隱藏此輸入 UI。
這將觸發一個 onDidHide 事件。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
使輸入 UI 以其當前配置可見。
任何其他輸入 UI 將首先觸發一個 onDidHide 事件。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
InputBoxOptions
用於配置輸入框 UI 行為的選項。
屬性
設定為 true 可在焦點移至編輯器其他部分或另一個視窗時保持輸入框開啟。此設定在 iPad 上將被忽略,始終為 false。
控制是否顯示密碼輸入。密碼輸入會隱藏輸入的文字。
一個可選的字串,用作輸入框中的佔位符,以指導使用者輸入內容。
顯示在輸入框下方的文字。
一個可選的字串,表示輸入框的標題。
用於預填充輸入框的值。
valueSelection?: [number, number]
預填充的 value 的選擇範圍。定義為兩個數字的元組,第一個是包含的起始索引,第二個是排除的結束索引。當為 undefined 時,將選擇整個預填充值;當為空(開始等於結束)時,僅設定游標;否則,將選擇定義的範圍。
方法
validateInput(value: string): string | InputBoxValidationMessage | Thenable<string | InputBoxValidationMessage>
一個可選的函式,將用於驗證輸入並向用戶提供提示。
| 引數 | 描述 |
|---|---|
| value: string | 輸入框的當前值。 |
| 返回值 | 描述 |
| string | InputBoxValidationMessage | Thenable<string | InputBoxValidationMessage> | 一個人類可讀的字串,將作為錯誤訊息顯示,或者是一個 InputBoxValidationMessage,它可以提供特定的訊息嚴重性。當 'value' 有效時,返回 |
InputBoxValidationMessage
表示 InputBox 的驗證訊息。
屬性
要顯示給使用者的驗證訊息。
severity: InputBoxValidationSeverity
驗證訊息的嚴重性級別。
注意: 當使用 InputBoxValidationSeverity.Error 時,使用者將無法接受輸入(例如,透過按 Enter)。Info 和 Warning 嚴重性級別仍然允許接受輸入。
InputBoxValidationSeverity
輸入框驗證訊息的嚴重性級別。
列舉成員
表示一個資訊性訊息,它不會阻止輸入被接受。
表示一個警告性訊息,它不會阻止輸入被接受。
表示一個錯誤訊息,它會阻止使用者接受輸入。
LanguageConfiguration
語言配置介面定義了擴充套件與各種編輯器功能之間的契約,例如自動括號插入、自動縮排等。
屬性
__characterPairSupport?: {autoClosingPairs: Array<{close: string, notIn: string[], open: string}>}
已棄用 請勿使用。
- 已棄用 - * 請改用語言配置檔案中的 autoClosingPairs 屬性。
| 引數 | 描述 |
|---|---|
| autoClosingPairs: Array<{close: string, notIn: string[], open: string}> |
|
__electricCharacterSupport?: {brackets: any, docComment: {close: string, lineStart: string, open: string, scope: string}}
已棄用 請勿使用。
- 已棄用 - 將很快被更好的 API 取代。
| 引數 | 描述 |
|---|---|
| brackets: any | 此屬性已棄用,編輯器將忽略。
|
| docComment: {close: string, lineStart: string, open: string, scope: string} | 此屬性已棄用,編輯器不再完全支援(scope 和 lineStart 被忽略)。請改用語言配置檔案中的 autoClosingPairs 屬性。
|
autoClosingPairs?: AutoClosingPair[]
語言的自動閉合對。
brackets?: CharacterPair[]
語言的括號。此配置會隱式影響圍繞這些括號按下 Enter 鍵的行為。
comments?: CommentRule
語言的註釋設定。
indentationRules?: IndentationRule
語言的縮排設定。
onEnterRules?: OnEnterRule[]
按下 Enter 鍵時要評估的語言規則。
語言的單詞定義。如果語言支援 Unicode 識別符號(例如 JavaScript),最好提供一個單詞定義,該定義排除已知的分隔符。例如:一個匹配除已知分隔符之外的任何內容的正則表示式(小數點允許出現在浮點數中)。
/(-?\d*\.\d\w*)|([^\`\~\!\\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>/\?\s]+)/g
LanguageModelAccessInformation
表示擴充套件關於語言模型訪問的特定資訊。
事件
onDidChange: Event<void>
訪問資訊更改時觸發的事件。
方法
canSendRequest(chat: LanguageModelChat): boolean
檢查是否可以向語言模型傳送請求。
注意 呼叫此函式不會觸發同意 UI,只會檢查持久化狀態。
| 引數 | 描述 |
|---|---|
| chat: LanguageModelChat | 一個語言模型聊天物件。 |
| 返回值 | 描述 |
| 布林值 | 如果可以傳送請求,則為 |
LanguageModelChat
表示用於傳送聊天請求的語言模型。
另請參閱 lm.selectChatModels
屬性
語言模型的不透明系列名稱。值可能是 gpt-3.5-turbo、gpt4、phi2 或 llama,但它們由貢獻語言的擴充套件定義,並且可能會發生變化。
語言模型的不透明識別符號。
單次請求可以傳送到模型的最大 token 數。
語言模型的易於人類閱讀的名稱。
語言模型供應商的一個廣為人知的識別符號。例如 copilot,但值由貢獻聊天模型的擴充套件定義,並且需要與它們一起查詢。
模型的原始版本字串。這由貢獻語言模型的擴充套件定義,並且可能會發生變化。
方法
countTokens(text: string | LanguageModelChatMessage, token?: CancellationToken): Thenable<number>
使用模型特定的分詞器邏輯計算訊息中的 token 數。
| 引數 | 描述 |
|---|---|
| text: string | LanguageModelChatMessage | 一個字串或一個訊息例項。 |
| token?: CancellationToken | 可選的取消令牌。有關如何建立它的資訊,請參閱 CancellationTokenSource。 |
| 返回值 | 描述 |
| Thenable<number> | 一個 thenable,它將解析為 token 數。 |
sendRequest(messages: LanguageModelChatMessage[], options?: LanguageModelChatRequestOptions, token?: CancellationToken): Thenable<LanguageModelChatResponse>
使用語言模型傳送聊天請求。
注意 語言模型的使用可能受訪問限制和使用者同意的約束。首次(為擴充套件)呼叫此函式將向用戶顯示同意對話方塊,因此此函式僅在響應使用者操作時才能呼叫!擴充套件可以使用 LanguageModelAccessInformation.canSendRequest 來檢查它們是否具有傳送請求的必要許可權。
如果無法向語言模型發出請求,此函式將返回一個被拒絕的 Promise。原因可能包括:
- 使用者未授予同意,請參閱
NoPermissions - 模型不再存在,請參閱
NotFound - 配額限制已超出,請參閱
Blocked - 其他問題,在這種情況下,擴充套件必須檢查 [LanguageModelError.cause
LanguageModelError.cause](#_LanguageModelError.causeLanguageModelError.cause)
擴充套件可以透過將一組工具傳遞給 LanguageModelChatRequestOptions.tools 來利用語言模型的工具呼叫。語言模型將返回一個 LanguageModelToolCallPart,擴充套件可以呼叫該工具並用結果傳送另一個請求。
| 引數 | 描述 |
|---|---|
| messages: LanguageModelChatMessage[] | 訊息例項陣列。 |
| options?: LanguageModelChatRequestOptions | 控制請求的選項。 |
| token?: CancellationToken | 一個控制請求的取消令牌。有關如何建立它的資訊,請參閱 CancellationTokenSource。 |
| 返回值 | 描述 |
| Thenable<LanguageModelChatResponse> | 一個 thenable,它將解析為 LanguageModelChatResponse。如果請求無法發出,Promise 將被拒絕。 |
LanguageModelChatCapabilities
LanguageModelChatInformation 支援的各種功能,例如工具呼叫或影像輸入。
屬性
模型是否支援影像輸入。常見的支援影像是 jpg 和 png,但每個模型支援的 MIME 型別各不相同。
toolCalling?: number | boolean
模型是否支援工具呼叫。如果提供一個數字,則表示在一次請求中可以提供給模型的最大工具數量。
LanguageModelChatInformation
表示由 LanguageModelChatProvider 提供的語言模型。
屬性
capabilities: LanguageModelChatCapabilities
模型支援的各種功能,例如工具呼叫或影像輸入。
一個可選的、易於人類閱讀的字串,將與模型一起渲染。用於在 UI 中區分同名模型。
語言模型的系列名稱。值可能是 gpt-3.5-turbo、gpt4、phi2 或 llama。
語言模型的唯一識別符號。在提供者之間必須是唯一的,但不需要全域性唯一。
模型可以接受的最大輸入 token 數。
模型能夠生成的最大 token 數。
語言模型的易於人類閱讀的名稱。
懸停模型時渲染的工具提示。用於提供有關模型的更多資訊。
模型的原始版本字串。這用作 LanguageModelChatSelector.version 中的查詢值。例如,GPT 4o 有多個版本,如 2024-11-20 和 2024-08-06。
LanguageModelChatMessage
表示聊天中的一條訊息。可以承擔不同的角色,例如使用者或助手。
靜態
Assistant(content: string | Array<LanguageModelTextPart | LanguageModelDataPart | LanguageModelToolCallPart>, name?: string): LanguageModelChatMessage
用於建立新助手訊息的實用程式。
| 引數 | 描述 |
|---|---|
| content: string | Array<LanguageModelTextPart | LanguageModelDataPart | LanguageModelToolCallPart> | 訊息的內容。 |
| name?: string | 訊息的可選使用者名稱。 |
| 返回值 | 描述 |
| LanguageModelChatMessage |
User(content: string | Array<LanguageModelTextPart | LanguageModelToolResultPart | LanguageModelDataPart>, name?: string): LanguageModelChatMessage
用於建立新使用者訊息的實用程式。
| 引數 | 描述 |
|---|---|
| content: string | Array<LanguageModelTextPart | LanguageModelToolResultPart | LanguageModelDataPart> | 訊息的內容。 |
| name?: string | 訊息的可選使用者名稱。 |
| 返回值 | 描述 |
| LanguageModelChatMessage |
建構函式
new LanguageModelChatMessage(role: LanguageModelChatMessageRole, content: string | LanguageModelInputPart[], name?: string): LanguageModelChatMessage
建立一個新的使用者訊息。
| 引數 | 描述 |
|---|---|
| role: LanguageModelChatMessageRole | 訊息的角色。 |
| content: string | LanguageModelInputPart[] | 訊息的內容。 |
| name?: string | 訊息的可選使用者名稱。 |
| 返回值 | 描述 |
| LanguageModelChatMessage |
屬性
content: LanguageModelInputPart[]
一個字串或一個異構陣列,表示訊息可以包含的內容。某些部分可能因模型而異,是訊息型別特定的。
此訊息的可選使用者名稱。
role: LanguageModelChatMessageRole
此訊息的角色。
LanguageModelChatMessageRole
表示聊天訊息的角色。這是使用者或助手。
列舉成員
使用者角色,例如與語言模型互動的人。
助手角色,例如生成響應的語言模型。
LanguageModelChatProvider<T>
LanguageModelChatProvider 實現對語言模型的訪問,使用者可以透過聊天檢視或透過 API 獲取 LanguageModelChat 來使用這些模型。例如,OpenAI 提供程式提供 gpt-5、o3 等模型。
事件
onDidChangeLanguageModelChatInformation?: Event<void>
可用語言模型集更改時觸發的可選事件。
方法
provideLanguageModelChatInformation(options: PrepareLanguageModelChatModelOptions, token: CancellationToken): ProviderResult<T[]>
獲取此提供程式提供的可用語言模型列表。
| 引數 | 描述 |
|---|---|
| options: PrepareLanguageModelChatModelOptions | 指定此函式呼叫上下文的選項。 |
| token: CancellationToken | 一個取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T[]> | 可用語言模型列表 |
provideLanguageModelChatResponse(model: T, messages: readonly LanguageModelChatRequestMessage[], options: ProvideLanguageModelChatResponseOptions, progress: Progress<LanguageModelResponsePart>, token: CancellationToken): Thenable<void>
為聊天請求返回響應,並將結果傳遞給進度回撥。 LanguageModelChatProvider 必須在從語言模型接收到響應部分時,將它們傳送到進度回撥。
| 引數 | 描述 |
|---|---|
| model: T | 要使用的語言模型 |
| messages: readonly LanguageModelChatRequestMessage[] | 要包含在請求中的訊息 |
| options: ProvideLanguageModelChatResponseOptions | 請求的選項 |
| progress: Progress<LanguageModelResponsePart> | 用於傳送流式響應塊的進度回撥 |
| token: CancellationToken | 一個取消令牌。 |
| 返回值 | 描述 |
| Thenable<void> | 一個在響應完成後解析的 Promise。結果會實際傳遞給進度回撥。 |
provideTokenCount(model: T, text: string | LanguageModelChatRequestMessage, token: CancellationToken): Thenable<number>
使用特定模型的分詞器邏輯,返回給定文字的 token 數量。
| 引數 | 描述 |
|---|---|
| model: T | 要使用的語言模型 |
| text: string | LanguageModelChatRequestMessage | 要計算 token 的文字 |
| token: CancellationToken | 一個取消令牌。 |
| 返回值 | 描述 |
| Thenable<number> | token 數量 |
LanguageModelChatRequestMessage
Provider 版本的 LanguageModelChatMessage。
屬性
訊息可以包含的內容的異構陣列。某些部分可能針對某些模型是特定於訊息型別的。
此訊息的可選使用者名稱。
role: LanguageModelChatMessageRole
此訊息的角色。
LanguageModelChatRequestOptions
使用語言模型進行聊天請求的選項。
屬性
一條人類可讀的訊息,解釋了為什麼需要訪問語言模型以及它啟用了什麼功能。
一組控制語言模型行為的選項。這些選項特定於語言模型,需要在相應文件中查詢。
toolMode?: LanguageModelChatToolMode
要使用的工具選擇模式。預設為 LanguageModelChatToolMode.Auto。
tools?: LanguageModelChatTool[]
可供語言模型使用的工具的可選列表。這些工具可以是 lm.tools 可用的已註冊工具,也可以是僅在呼叫擴充套件中實現的私有工具。
如果 LLM 請求呼叫這些工具之一,它將在 LanguageModelChatResponse.stream 中返回一個 LanguageModelToolCallPart。呼叫方負責呼叫該工具。如果該工具已在 lm.tools 中註冊,則意味著呼叫 lm.invokeTool。
然後,可以透過建立一個具有 LanguageModelToolCallPart 的 Assistant 型別 LanguageModelChatMessage,然後是具有 LanguageModelToolResultPart 的 User 型別訊息,將工具結果提供給 LLM。
LanguageModelChatResponse
表示語言模型響應。
另請參閱 ChatRequest
屬性
stream: AsyncIterable<unknown>
一個非同步可迭代物件,它是構成整個響應的文字和工具呼叫部分的流。 LanguageModelTextPart 是助手響應的一部分,將顯示給使用者。 LanguageModelToolCallPart 是語言模型呼叫工具的請求。後者僅在透過 LanguageModelChatRequestOptions.tools 在請求中傳遞工具時返回。 unknown 型別用作未來部分(如影像資料部分)的佔位符。
注意,在資料接收過程中發生錯誤時,此流將出錯。流的消費者應相應地處理錯誤。
要取消流,消費者可以 取消 用於發出請求的 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 中過濾掉除文字部分之外的所有內容。
LanguageModelChatSelector
描述如何為聊天請求選擇語言模型。
另請參閱 lm.selectChatModels
屬性
語言模型家族。
語言模型的識別符號。
另請參閱 LanguageModelChat.id
語言模型的供應商。
語言模型的版本。
LanguageModelChatTool
可透過 LanguageModelChatRequestOptions 供語言模型使用的工具。語言模型使用此介面的所有屬性來決定呼叫哪個工具以及如何呼叫它。
屬性
工具的描述。
此工具接受的輸入的 JSON schema。
工具的名稱。
LanguageModelChatToolMode
語言模型使用的工具呼叫模式。
列舉成員
語言模型可以選擇呼叫工具或生成訊息。這是預設值。
語言模型必須呼叫提供的工具之一。注意,在某些模型中使用此模式時,它們僅支援單個工具。
LanguageModelDataPart
靜態
image(data: Uint8Array, mime: string): LanguageModelDataPart
為影像建立新的 LanguageModelDataPart。
| 引數 | 描述 |
|---|---|
| data: Uint8Array | 二進位制影像資料 |
| mime: string | 影像的 MIME 型別。常見值為 |
| 返回值 | 描述 |
| LanguageModelDataPart |
json(value: any, mime?: string): LanguageModelDataPart
為 JSON 建立新的 LanguageModelDataPart。
注意,此函式不期望“JSON 字串”,而是期望一個可以字串化的物件。當傳入的值無法 JSON 字串化時,此函式將丟擲錯誤。
| 引數 | 描述 |
|---|---|
| value: any | JSON 可字串化的值。 |
| mime?: string | 可選的 MIME 型別,預設為 |
| 返回值 | 描述 |
| LanguageModelDataPart |
text(value: string, mime?: string): LanguageModelDataPart
為文字建立新的 LanguageModelDataPart。
注意,使用 UTF-8 編碼器來建立字串的位元組。
| 引數 | 描述 |
|---|---|
| value: string | 文字資料 |
| mime?: string | MIME 型別(如果有)。常見值為 |
| 返回值 | 描述 |
| LanguageModelDataPart |
建構函式
new LanguageModelDataPart(data: Uint8Array, mimeType: string): LanguageModelDataPart
使用給定內容構造一個通用資料部分。
| 引數 | 描述 |
|---|---|
| data: Uint8Array | 此部分的資料位元組。 |
| mimeType: string | 資料的 MIME 型別。 |
| 返回值 | 描述 |
| LanguageModelDataPart |
屬性
此部分的資料位元組。
MIME 型別,它決定了如何解釋 data 屬性。
LanguageModelError
語言模型特定錯誤的錯誤型別。
語言模型的使用者應檢查 code 屬性以確定具體的失敗原因,例如,對於指代未知語言模型的情況,使用 if(someError.code === vscode.LanguageModelError.NotFound.name) {...}。對於未指定錯誤,cause 屬性將包含實際錯誤。
靜態
Blocked(message?: string): LanguageModelError
請求者被阻止使用此語言模型。
| 引數 | 描述 |
|---|---|
| message?: string | |
| 返回值 | 描述 |
| LanguageModelError |
NoPermissions(message?: string): LanguageModelError
請求者無權使用此語言模型
| 引數 | 描述 |
|---|---|
| message?: string | |
| 返回值 | 描述 |
| LanguageModelError |
NotFound(message?: string): LanguageModelError
語言模型不存在。
| 引數 | 描述 |
|---|---|
| message?: string | |
| 返回值 | 描述 |
| LanguageModelError |
建構函式
new LanguageModelError(message?: string): LanguageModelError
| 引數 | 描述 |
|---|---|
| message?: string | |
| 返回值 | 描述 |
| LanguageModelError |
屬性
標識此錯誤的程式碼。
可能的值是錯誤的名稱,例如 NotFound,或者對於來自語言模型本身的未指定錯誤為 Unknown。在後一種情況下,cause 屬性將包含實際錯誤。
LanguageModelInputPart
可以透過 LanguageModelChat.sendRequest 傳送並透過 LanguageModelChatProvider 處理的各種訊息型別。
LanguageModelInputPart: LanguageModelTextPart | LanguageModelToolResultPart | LanguageModelToolCallPart | LanguageModelDataPart
LanguageModelPromptTsxPart
包含來自 vscode/prompt-tsx 的 PromptElementJSON 的語言模型響應部分。
建構函式
new LanguageModelPromptTsxPart(value: unknown): LanguageModelPromptTsxPart
使用給定內容構造一個 prompt-tsx 部分。
| 引數 | 描述 |
|---|---|
| value: unknown | 該部分的值,來自 |
| 返回值 | 描述 |
| LanguageModelPromptTsxPart |
屬性
The value of the part.
LanguageModelResponsePart
LanguageModelChatProvider 可以在聊天響應流中發出的各種訊息型別。
LanguageModelResponsePart: LanguageModelTextPart | LanguageModelToolResultPart | LanguageModelToolCallPart | LanguageModelDataPart
LanguageModelTextPart
包含文字片段的語言模型響應部分,從 LanguageModelChatResponse 返回。
建構函式
new LanguageModelTextPart(value: string): LanguageModelTextPart
使用給定內容構造一個文字部分。
| 引數 | 描述 |
|---|---|
| value: string | 該部分包含的文字內容。 |
| 返回值 | 描述 |
| LanguageModelTextPart |
屬性
該部分包含的文字內容。
LanguageModelTool<T>
可透過呼叫 LanguageModelChat 來呼叫的工具。
方法
invoke(options: LanguageModelToolInvocationOptions<T>, token: CancellationToken): ProviderResult<LanguageModelToolResult>
使用給定的輸入呼叫工具並返回結果。
提供的 LanguageModelToolInvocationOptions.input 已根據宣告的 schema 進行驗證。
| 引數 | 描述 |
|---|---|
| options: LanguageModelToolInvocationOptions<T> | |
| token: CancellationToken | |
| 返回值 | 描述 |
| ProviderResult<LanguageModelToolResult> |
prepareInvocation(options: LanguageModelToolInvocationPrepareOptions<T>, token: CancellationToken): ProviderResult<PreparedToolInvocation>
在呼叫工具之前呼叫一次。建議實現此功能以自定義工具執行時顯示的進度訊息,並提供更具上下文資訊的訊息,其中包含呼叫輸入的內容。如果適用,還可以指示工具在執行前需要使用者確認。
- 注意 1: 必須無副作用。
- 注意 2: 呼叫
prepareInvocation不一定隨後會呼叫invoke。
| 引數 | 描述 |
|---|---|
| options: LanguageModelToolInvocationPrepareOptions<T> | |
| token: CancellationToken | |
| 返回值 | 描述 |
| ProviderResult<PreparedToolInvocation> |
LanguageModelToolCallPart
指示工具呼叫的語言模型響應部分,從 LanguageModelChatResponse 返回,也可以作為 LanguageModelChatMessage 的內容部分包含,以表示聊天請求中先前的工具呼叫。
建構函式
new LanguageModelToolCallPart(callId: string, name: string, input: object): LanguageModelToolCallPart
建立一個新的 LanguageModelToolCallPart。
| 引數 | 描述 |
|---|---|
| callId: string | 工具呼叫的 ID。 |
| name: string | 要呼叫的工具的名稱。 |
| input: object | 用於呼叫工具的輸入。 |
| 返回值 | 描述 |
| LanguageModelToolCallPart |
屬性
工具呼叫的 ID。這是聊天請求中工具呼叫的唯一識別符號。
用於呼叫工具的輸入。
要呼叫的工具的名稱。
LanguageModelToolConfirmationMessages
當此物件在 PreparedToolInvocation 中返回時,使用者將在執行工具前被要求確認。這些訊息將顯示帶有“繼續”和“取消”按鈕。
屬性
message: string | MarkdownString
確認訊息的正文。
確認訊息的標題。
LanguageModelToolInformation
有關 lm.tools 中可用已註冊工具的資訊。
屬性
該工具的描述,可能會傳遞給語言模型。
此工具接受的輸入的 JSON schema。
工具的唯一名稱。
工具宣告的一組標籤,大致描述了工具的功能。工具使用者可以使用這些標籤來過濾與當前任務相關的工具集。
LanguageModelToolInvocationOptions<T>
為工具呼叫提供的選項。
屬性
呼叫工具的輸入。輸入必須匹配 LanguageModelToolInformation.inputSchema 中定義的 schema。
tokenizationOptions?: LanguageModelToolTokenizationOptions
用於提示工具應在其響應中返回多少 token,並使工具能夠準確計算 token 的選項。
toolInvocationToken: undefined
一個不透明物件,將工具呼叫與 聊天參與者 的聊天請求關聯起來。
獲取有效的工具呼叫 token 的唯一方法是使用聊天請求中提供的 toolInvocationToken。在這種情況下,將自動在聊天響應檢視中為工具呼叫顯示進度條,如果工具需要使用者確認,它將內聯顯示在聊天檢視中。
如果工具在聊天請求之外被呼叫,則應傳遞 undefined,除了確認之外,不會顯示任何特殊 UI。
注意,在呼叫過程中呼叫另一個工具的工具可以傳遞它收到的 toolInvocationToken。
LanguageModelToolInvocationPrepareOptions<T>
屬性
工具被呼叫的輸入。
LanguageModelToolResult
從工具呼叫返回的結果。如果使用 vscode/prompt-tsx,可以使用 ToolResult 渲染此結果。
建構函式
new LanguageModelToolResult(content: unknown[]): LanguageModelToolResult
建立 LanguageModelToolResult。
| 引數 | 描述 |
|---|---|
| content: unknown[] | 工具結果內容部分列表。 |
| 返回值 | 描述 |
| LanguageModelToolResult |
屬性
工具結果內容部分列表。包含 unknown,因為此列表將來可能會擴充套件新的內容型別。
另請參閱 lm.invokeTool。
LanguageModelToolResultPart
工具呼叫的結果。這是 工具呼叫 的對應項,並且它只能包含在 User 訊息的內容中。
建構函式
new LanguageModelToolResultPart(callId: string, content: unknown[]): LanguageModelToolResultPart
| 引數 | 描述 |
|---|---|
| callId: string | 工具呼叫的 ID。 |
| content: unknown[] | 工具結果的內容。 |
| 返回值 | 描述 |
| LanguageModelToolResultPart |
屬性
工具呼叫的 ID。
注意,這應該與工具呼叫部分的 callId 匹配。
工具結果的值。
LanguageModelToolTokenizationOptions
用於工具呼叫的與分詞相關的選項。
屬性
如果已知,則工具應在結果中發出的最大 token 數。
方法
countTokens(text: string, token?: CancellationToken): Thenable<number>
使用模型特定的分詞器邏輯計算訊息中的 token 數。
| 引數 | 描述 |
|---|---|
| text: string | 一個字串。 |
| token?: CancellationToken | 可選的取消令牌。有關如何建立它的資訊,請參閱 CancellationTokenSource。 |
| 返回值 | 描述 |
| Thenable<number> | 一個 thenable,它將解析為 token 數。 |
LanguageStatusItem
LanguageStatusItem 是呈現活動文字編輯器語言狀態報告的首選方式,例如選擇的 linter 或關於配置問題的通知。
屬性
accessibilityInformation?: AccessibilityInformation
螢幕閱讀器與此項互動時使用的可訪問性資訊
控制該項是否顯示為“忙碌”。預設為 false。
command: Command
此項的 命令。
此項的可選、人類可讀的詳細資訊。
此項的識別符號。
此項的簡稱,例如“Java 語言狀態”等。
selector: DocumentSelector
一個 選擇器,用於定義此項顯示在哪些編輯器中。
severity: LanguageStatusSeverity
此項的嚴重程度。
預設為 Information。您可以使用此屬性向使用者發出需要注意的問題訊號,例如缺少可執行檔案或配置無效。
要顯示在條目中的文字。您可以透過利用以下語法來嵌入圖示:
我的文字 $(icon-name) 包含諸如 $(icon-name) 之類的圖示。
其中 icon-name 是從 ThemeIcon 圖示集 中獲取的,例如 light-bulb、thumbsup、zap 等。
方法
釋放並清理相關資源。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
LanguageStatusSeverity
表示語言狀態的嚴重程度級別。
列舉成員
資訊性嚴重程度級別。
警告性嚴重程度級別。
錯誤性嚴重程度級別。
LinkedEditingRangeProvider
LinkedEditingRangeProvider 介面定義了擴充套件與連結編輯功能之間的契約。
方法
provideLinkedEditingRanges(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<LinkedEditingRanges>
對於文件中的給定位置,返回該位置處的符號的範圍以及所有內容相同的範圍。如果新內容有效,則對一個範圍的更改可以應用於所有其他範圍。可選的單詞模式可以與結果一起返回,以描述有效內容。如果未提供特定於結果的單詞模式,則將使用語言配置中的單詞模式。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫提供程式的文件。 |
| position: Position | 呼叫提供程式的文件位置。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<LinkedEditingRanges> | 可以一起編輯的範圍列表 |
LinkedEditingRanges
表示可以一起編輯的範圍列表,以及用於描述有效範圍內容的單詞模式。
建構函式
new LinkedEditingRanges(ranges: Range[], wordPattern?: RegExp): LinkedEditingRanges
建立新的連結編輯範圍物件。
| 引數 | 描述 |
|---|---|
| ranges: Range[] | 可以一起編輯的範圍列表 |
| wordPattern?: RegExp | 描述給定範圍有效內容的可選單詞模式 |
| 返回值 | 描述 |
| LinkedEditingRanges |
屬性
ranges: Range[]
可以一起編輯的範圍列表。範圍必須具有相同的長度和文字內容。範圍不能重疊。
描述給定範圍有效內容的可選單詞模式。如果未提供模式,將使用語言配置的單詞模式。
Location
表示資源中的位置,例如文字檔案中的行。
建構函式
new Location(uri: Uri, rangeOrPosition: Range | Position): Location
屬性
range: Range
此位置的文件範圍。
uri: Uri
此位置的資源識別符號。
LocationLink
表示兩個位置之間的連線。提供比普通 Locations 更多的元資料,包括源範圍。
屬性
originSelectionRange?: Range
此連結源的選擇範圍。
用作滑鼠定義懸停的下劃線範圍。預設為定義位置的單詞範圍。
targetRange: Range
此連結的目標完整範圍。
targetSelectionRange?: Range
此連結的選擇範圍。
targetUri: Uri
此連結的目標資源識別符號。
LogLevel
日誌級別
列舉成員
此級別不記錄任何訊息。
此級別記錄所有訊息。
此級別記錄除錯及以上日誌級別的訊息。
此級別記錄資訊及以上日誌級別的訊息。
此級別記錄警告及以上日誌級別的訊息。
此級別僅記錄錯誤訊息。
LogOutputChannel
用於包含日誌輸出的通道。
要獲取 LogOutputChannel 的例項,請使用 createOutputChannel。
事件
onDidChangeLogLevel: Event<LogLevel>
當通道的日誌級別發生變化時觸發的 Event。
屬性
logLevel: LogLevel
通道的當前日誌級別。預設為 編輯器日誌級別。
此輸出通道的可讀名稱。
方法
將給定值附加到通道。
| 引數 | 描述 |
|---|---|
| value: string | 一個字串,假值不會被列印。 |
| 返回值 | 描述 |
| void |
appendLine(value: string): void
將給定值和換行符附加到通道。
| 引數 | 描述 |
|---|---|
| value: string | 一個字串,假值會被列印。 |
| 返回值 | 描述 |
| void |
清除通道中的所有輸出。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
debug(message: string, ...args: any[]): void
將給定的除錯訊息輸出到通道。
僅當通道配置為顯示 除錯 日誌級別或更低級別時,才會記錄該訊息。
| 引數 | 描述 |
|---|---|
| message: string | 要記錄的除錯訊息 |
| ...args: any[] | |
| 返回值 | 描述 |
| void |
釋放並清理相關資源。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
error(error: string | Error, ...args: any[]): void
將給定的錯誤或錯誤訊息輸出到通道。
僅當通道配置為顯示 錯誤 日誌級別或更低級別時,才會記錄該訊息。
| 引數 | 描述 |
|---|---|
| error: string | Error | 要記錄的錯誤或錯誤訊息 |
| ...args: any[] | |
| 返回值 | 描述 |
| void |
從 UI 中隱藏此通道。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
info(message: string, ...args: any[]): void
將給定的資訊訊息輸出到通道。
僅當通道配置為顯示 資訊 日誌級別或更低級別時,才會記錄該訊息。
| 引數 | 描述 |
|---|---|
| message: string | 要記錄的資訊訊息 |
| ...args: any[] | |
| 返回值 | 描述 |
| void |
用給定值替換通道中的所有輸出。
| 引數 | 描述 |
|---|---|
| value: string | 一個字串,假值不會被列印。 |
| 返回值 | 描述 |
| void |
show(preserveFocus?: boolean): void
在 UI 中顯示此通道。
| 引數 | 描述 |
|---|---|
| preserveFocus?: boolean | 如果為 |
| 返回值 | 描述 |
| void |
show(column?: ViewColumn, preserveFocus?: boolean): void
在 UI 中顯示此通道。
- 已棄用 - 請使用只有一個引數的過載(
show(preserveFocus?: boolean): void)。
| 引數 | 描述 |
|---|---|
| column?: ViewColumn | 此引數 **已棄用** 且將被忽略。 |
| preserveFocus?: boolean | 如果為 |
| 返回值 | 描述 |
| void |
trace(message: string, ...args: any[]): void
將給定的跟蹤訊息輸出到通道。使用此方法記錄詳細資訊。
僅當通道配置為顯示 跟蹤 日誌級別時,才會記錄該訊息。
| 引數 | 描述 |
|---|---|
| message: string | 要記錄的跟蹤訊息 |
| ...args: any[] | |
| 返回值 | 描述 |
| void |
warn(message: string, ...args: any[]): void
將給定的警告訊息輸出到通道。
僅當通道配置為顯示 警告 日誌級別或更低級別時,才會記錄該訊息。
| 引數 | 描述 |
|---|---|
| message: string | 要記錄的警告訊息 |
| ...args: any[] | |
| 返回值 | 描述 |
| void |
MarkdownString
支援透過 markdown 語法 進行格式化的可讀文字。
當 supportThemeIcons 設定為 true 時,支援透過 $(<name>) 語法渲染 主題圖示。
當 supportHtml 設定為 true 時,支援渲染嵌入式 HTML。
建構函式
new MarkdownString(value?: string, supportThemeIcons?: boolean): MarkdownString
使用給定值建立新的 markdown 字串。
| 引數 | 描述 |
|---|---|
| value?: string | 可選的初始值。 |
| supportThemeIcons?: boolean | 可選,指定 MarkdownString 中是否支援 ThemeIcons。 |
| 返回值 | 描述 |
| MarkdownString |
屬性
baseUri?: Uri
相對路徑是相對於其解析的 URI。
如果 baseUri 以 / 結尾,則它被視為目錄,markdown 中的相對路徑將相對於該目錄解析
const md = new vscode.MarkdownString(`[link](./file.js)`);
md.baseUri = vscode.Uri.file('/path/to/dir/');
// Here 'link' in the rendered markdown resolves to '/path/to/dir/file.js'
如果 baseUri 是一個檔案,markdown 中的相對路徑將相對於該檔案的父目錄解析
const md = new vscode.MarkdownString(`[link](./file.js)`);
md.baseUri = vscode.Uri.file('/path/to/otherFile.js');
// Here 'link' in the rendered markdown resolves to '/path/to/file.js'
isTrusted?: boolean | {enabledCommands: readonly string[]}
表示此 markdown 字串來自受信任的源。只有受信任的 markdown 才支援執行命令的連結,例如 [Run it](command:myCommandId)。
預設為 false(命令被停用)。
表示此 markdown 字串可以包含原始 HTML 標籤。預設為 false。
當 supportHtml 為 false 時,markdown 渲染器將刪除 markdown 文字中出現的任何原始 HTML 標籤。這意味著您只能使用 markdown 語法進行渲染。
當 supportHtml 為 true 時,markdown 渲染器還將允許渲染安全子集的 HTML 標籤和屬性。有關支援的標籤和屬性列表,請參閱 https://github.com/microsoft/vscode/blob/6d2920473c6f13759c978dd89104c4270a83422d/src/vs/base/browser/markdownRenderer.ts#L296。
表示此 markdown 字串可以包含 ThemeIcons,例如 $(zap)。
markdown 字串。
方法
appendCodeblock(value: string, language?: string): MarkdownString
將給定字串作為程式碼塊附加,使用提供的語言。
| 引數 | 描述 |
|---|---|
| value: string | 程式碼片段。 |
| language?: string | 可選的 語言識別符號。 |
| 返回值 | 描述 |
| MarkdownString |
appendMarkdown(value: string): MarkdownString
將給定字串“按原樣”附加到此 markdown 字串。當 supportThemeIcons 為 true 時,value 中的 ThemeIcons 將被圖示化。
| 引數 | 描述 |
|---|---|
| value: string | Markdown 字串。 |
| 返回值 | 描述 |
| MarkdownString |
appendText(value: string): MarkdownString
將給定字串附加並轉義到此 markdown 字串。
| 引數 | 描述 |
|---|---|
| value: string | 純文字。 |
| 返回值 | 描述 |
| MarkdownString |
MarkedString
MarkedString 可用於渲染可讀文字。它是一個 markdown 字串或一個提供語言和程式碼片段的程式碼塊。請注意,markdown 字串將被清理——這意味著 HTML 將被轉義。
- 已棄用 - 此型別已棄用,請改用 MarkdownString。
MarkedString: string | {language: string, value: string}
McpHttpServerDefinition
McpHttpServerDefinition 表示一個可透過 Streamable HTTP 傳輸訪問的 MCP 伺服器。
建構函式
new McpHttpServerDefinition(label: string, uri: Uri, headers?: Record<string, string>, version?: string): McpHttpServerDefinition
| 引數 | 描述 |
|---|---|
| label: string | 伺服器的可讀名稱。 |
| uri: Uri | 伺服器的 URI。 |
| headers?: Record<string, string> | 傳送到伺服器的每個請求的可選附加頭。 |
| version?: string | |
| 返回值 | 描述 |
| McpHttpServerDefinition |
屬性
headers: Record<string, string>
傳送到伺服器的每個請求的可選附加頭。
伺服器的可讀名稱。
uri: Uri
伺服器的 URI。編輯器將向此 URI 傳送 POST 請求以開始每個會話。
伺服器的可選版本標識。如果此值更改,編輯器將指示工具已更改並提示重新整理它們。
McpServerDefinition
描述不同型別的 Model Context Protocol 伺服器的定義,這些伺服器可以從 McpServerDefinitionProvider 返回。
McpServerDefinition: McpStdioServerDefinition | McpHttpServerDefinition
McpServerDefinitionProvider<T>
可以提供 Model Context Protocol 伺服器定義的型別。應在擴充套件啟用期間使用 lm.registerMcpServerDefinitionProvider 註冊此型別。
事件
onDidChangeMcpServerDefinitions?: Event<void>
一個可選事件,用於在可用伺服器集發生變化時發出訊號。
方法
provideMcpServerDefinitions(token: CancellationToken): ProviderResult<T[]>
提供可用的 MCP 伺服器。編輯器將提前呼叫此方法以確保語言模型的伺服器可用性,因此擴充套件不應執行需要使用者互動的操作,例如身份驗證。
| 引數 | 描述 |
|---|---|
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T[]> | 可用的 MCP 伺服器陣列 |
resolveMcpServerDefinition(server: T, token: CancellationToken): ProviderResult<T>
當編輯器需要啟動 MCP 伺服器時,將呼叫此函式。此時,擴充套件可以執行任何需要使用者互動的操作,例如身份驗證。伺服器的任何非 readonly 屬性都可以修改,並且擴充套件應返回解析後的伺服器。
擴充套件可以返回 undefined 來指示不應啟動伺服器,或丟擲錯誤。如果存在待處理的工具呼叫,編輯器將取消該呼叫並向語言模型返回錯誤訊息。
| 引數 | 描述 |
|---|---|
| server: T | 要解析的 MCP 伺服器 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T> | 解析後的伺服器或解析為該伺服器的 thenable。這可能是具有已填充的非 |
McpStdioServerDefinition
McpStdioServerDefinition 表示可以透過執行本地程序並操作其 stdin 和 stdout 流來訪問的 MCP 伺服器。該程序將作為擴充套件主機的子程序生成,預設情況下不會在 shell 環境中執行。
建構函式
new McpStdioServerDefinition(label: string, command: string, args?: string[], env?: Record<string, string | number>, version?: string): McpStdioServerDefinition
| 引數 | 描述 |
|---|---|
| label: string | 伺服器的可讀名稱。 |
| command: string | 用於啟動伺服器的命令。 |
| args?: string[] | 傳遞給伺服器的其他命令列引數。 |
| env?: Record<string, string | number> | 伺服器的可選附加環境資訊。 |
| version?: string | 伺服器的可選版本標識。 |
| 返回值 | 描述 |
| McpStdioServerDefinition |
屬性
傳遞給伺服器的其他命令列引數。
用於啟動伺服器的命令。基於 Node.js 的伺服器可以使用 process.execPath 來使用編輯器的 Node.js 版本來執行指令碼。
cwd?: Uri
用於啟動伺服器的工作目錄。
env: Record<string, string | number>
伺服器的可選附加環境資訊。此環境中的變數將覆蓋或刪除(如果為 null)編輯器擴充套件宿主器的預設環境變數。
伺服器的可讀名稱。
伺服器的可選版本標識。如果此值更改,編輯器將指示工具已更改並提示重新整理它們。
Memento
Memento 表示一個儲存實用程式。它可以儲存和檢索值。
方法
返回一個值。
| 引數 | 描述 |
|---|---|
| key: string | 一個字串。 |
| 返回值 | 描述 |
| T | 儲存的值或 |
get<T>(key: string, defaultValue: T): T
返回一個值。
| 引數 | 描述 |
|---|---|
| key: string | 一個字串。 |
| defaultValue: T | 當給定鍵沒有值( |
| 返回值 | 描述 |
| T | 儲存的值或預設值。 |
返回儲存的鍵。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| readonly string[] | 儲存的鍵。 |
update(key: string, value: any): Thenable<void>
儲存一個值。該值必須是 JSON 可序列化的。
請注意,使用 undefined 作為值將從底層儲存中刪除該鍵。
| 引數 | 描述 |
|---|---|
| key: string | 一個字串。 |
| value: any | 一個值。必須不包含迴圈引用。 |
| 返回值 | 描述 |
| Thenable<void> |
MessageItem
屬性
對於模態對話方塊,一個提示,表明當用戶取消對話方塊時(例如,透過按 ESC 鍵)應該觸發該項。
注意:此選項將被忽略非模態訊息。
一個簡短的標題,例如“重試”、“開啟日誌”等。
MessageOptions
屬性
人類可讀的詳細訊息,顯示不那麼突出。注意,只有對於 模態 訊息才會顯示詳細資訊。
指示此訊息應為模態。
NotebookCell
屬性
document: TextDocument
此單元格的 文字,表示為文字文件。
executionSummary: NotebookCellExecutionSummary
此單元格的最新 執行摘要。
此單元格在其 包含的筆記本 中的索引。當單元格在筆記本內移動時,索引會更新。當單元格從其筆記本中刪除時,索引為 -1。
kind: NotebookCellKind
此單元格的型別。
此單元格的元資料。可以是任何內容,但必須是 JSON 可序列化的。
notebook: NotebookDocument
包含此單元格的 筆記本。
outputs: readonly NotebookCellOutput[]
此單元格的輸出。
NotebookCellData
NotebookCellData 是筆記本單元格的原始表示。它是 NotebookData 的一部分。
建構函式
new NotebookCellData(kind: NotebookCellKind, value: string, languageId: string): NotebookCellData
建立新的單元格資料。最小單元格資料指定其型別、源值和源的語言識別符號。
| 引數 | 描述 |
|---|---|
| kind: NotebookCellKind | 型別。 |
| value: string | 源值。 |
| languageId: string | 源值的語言識別符號。 |
| 返回值 | 描述 |
| NotebookCellData |
屬性
executionSummary?: NotebookCellExecutionSummary
此單元格資料的執行摘要。
kind: NotebookCellKind
此單元格資料的 型別。
此單元格資料來源值的語言識別符號。可以是 getLanguages 中的任何值。
此單元格資料的任意元資料。可以是任何內容,但必須是 JSON 可序列化的。
outputs?: NotebookCellOutput[]
此單元格資料的輸出。
此單元格資料的源值 - 可以是原始碼或格式化文字。
NotebookCellExecution
NotebookCellExecution 是 筆記本控制器 在執行筆記本單元格時如何修改它的方式。
當建立一個單元格執行物件時,單元格進入 [NotebookCellExecutionState.Pending 掛起](#_NotebookCellExecutionState.Pending Pending) 狀態。當在執行任務上呼叫 start(...) 時,它進入 [NotebookCellExecutionState.Executing 執行中](#_NotebookCellExecutionState.Executing Executing) 狀態。當呼叫 end(...) 時,它進入 [NotebookCellExecutionState.Idle 空閒](#_NotebookCellExecutionState.Idle Idle) 狀態。
屬性
cell: NotebookCell
為此執行建立的 單元格。
設定和取消此單元格執行的順序。
token: CancellationToken
方法
appendOutput(out: NotebookCellOutput | readonly NotebookCellOutput[], cell?: NotebookCell): Thenable<void>
追加到正在執行的單元格的輸出,或追加到受此執行影響的其他單元格的輸出。
| 引數 | 描述 |
|---|---|
| out: NotebookCellOutput | readonly NotebookCellOutput[] | 追加到當前輸出的輸出。 |
| cell?: NotebookCell | 要清除輸出的單元格。預設為此執行的 單元格。 |
| 返回值 | 描述 |
| Thenable<void> | 操作完成後解析的 thenable。 |
appendOutputItems(items: NotebookCellOutputItem | readonly NotebookCellOutputItem[], output: NotebookCellOutput): Thenable<void>
將輸出項追加到現有單元格輸出。
| 引數 | 描述 |
|---|---|
| items: NotebookCellOutputItem | readonly NotebookCellOutputItem[] | 追加到現有輸出的輸出項。 |
| output: NotebookCellOutput | 已存在的輸出物件。 |
| 返回值 | 描述 |
| Thenable<void> | 操作完成後解析的 thenable。 |
clearOutput(cell?: NotebookCell): Thenable<void>
清除正在執行的單元格的輸出,或清除受此執行影響的其他單元格的輸出。
| 引數 | 描述 |
|---|---|
| cell?: NotebookCell | 要清除輸出的單元格。預設為此執行的 單元格。 |
| 返回值 | 描述 |
| Thenable<void> | 操作完成後解析的 thenable。 |
end(success: boolean, endTime?: number): void
發出執行已結束的訊號。
| 引數 | 描述 |
|---|---|
| success: boolean | 如果為 true,則單元格狀態列上顯示綠色勾號。如果為 false,則顯示紅色叉號。如果為 undefined,則不顯示勾號或叉號圖示。 |
| endTime?: number | 執行完成的時間,以 Unix 紀元毫秒為單位。 |
| 返回值 | 描述 |
| void |
replaceOutput(out: NotebookCellOutput | readonly NotebookCellOutput[], cell?: NotebookCell): Thenable<void>
替換正在執行的單元格的輸出,或替換受此執行影響的其他單元格的輸出。
| 引數 | 描述 |
|---|---|
| out: NotebookCellOutput | readonly NotebookCellOutput[] | 替換當前輸出的輸出。 |
| cell?: NotebookCell | 要清除輸出的單元格。預設為此執行的 單元格。 |
| 返回值 | 描述 |
| Thenable<void> | 操作完成後解析的 thenable。 |
replaceOutputItems(items: NotebookCellOutputItem | readonly NotebookCellOutputItem[], output: NotebookCellOutput): Thenable<void>
替換現有單元格輸出的所有輸出項。
| 引數 | 描述 |
|---|---|
| items: NotebookCellOutputItem | readonly NotebookCellOutputItem[] | 替換現有輸出項的輸出項。 |
| output: NotebookCellOutput | 已存在的輸出物件。 |
| 返回值 | 描述 |
| Thenable<void> | 操作完成後解析的 thenable。 |
start(startTime?: number): void
發出執行已開始的訊號。
| 引數 | 描述 |
|---|---|
| startTime?: number | 執行開始的時間,以 Unix 紀元毫秒為單位。用於驅動顯示單元格已執行多長時間的時鐘。如果未提供,則不顯示時鐘。 |
| 返回值 | 描述 |
| void |
NotebookCellExecutionSummary
筆記本單元格執行的摘要。
屬性
執行發生的順序。
執行是否成功完成。
timing?: {endTime: number, startTime: number}
執行開始和結束的時間,以 Unix 時間戳表示
| 引數 | 描述 |
|---|---|
| endTime: number | 執行結束時間。 |
| startTime: number | 執行開始時間。 |
NotebookCellKind
筆記本單元格型別。
列舉成員
標記單元格是用於顯示的格式化源。
NotebookCellOutput
NotebookCellOutput 表示執行單元格的結果。它是一個包含多個 輸出項 的容器型別,其中包含的項表示相同的結果,但使用不同的 MIME 型別。
建構函式
new NotebookCellOutput(items: NotebookCellOutputItem[], metadata?: ): NotebookCellOutput
建立新的筆記本輸出。
| 引數 | 描述 |
|---|---|
| items: NotebookCellOutputItem[] | 筆記本輸出項。 |
| metadata?: | 可選元資料。 |
| 返回值 | 描述 |
| NotebookCellOutput |
屬性
items: NotebookCellOutputItem[]
此輸出的輸出項。每項必須表示相同的結果。注意,每個輸出重複的 MIME 型別是無效的,編輯器只會選擇其中一個。
new vscode.NotebookCellOutput([
vscode.NotebookCellOutputItem.text('Hello', 'text/plain'),
vscode.NotebookCellOutputItem.text('<i>Hello</i>', 'text/html'),
vscode.NotebookCellOutputItem.text('_Hello_', 'text/markdown'),
vscode.NotebookCellOutputItem.text('Hey', 'text/plain') // INVALID: repeated type, editor will pick just one
]);
此單元格輸出的任意元資料。可以是任何內容,但必須是 JSON 可序列化的。
NotebookCellOutputItem
一個 筆記本輸出 的表示形式,由 MIME 型別和資料定義。
靜態
error(value: Error): NotebookCellOutputItem
用於建立使用 application/vnd.code.notebook.error MIME 型別的 NotebookCellOutputItem 的工廠函式。
| 引數 | 描述 |
|---|---|
| value: Error | 一個錯誤物件。 |
| 返回值 | 描述 |
| NotebookCellOutputItem | 一個新的輸出項物件。 |
json(value: any, mime?: string): NotebookCellOutputItem
用於從 JSON 物件建立 NotebookCellOutputItem 的工廠函式。
注意,此函式不期望“JSON 字串”,而是期望一個可以字串化的物件。當傳入的值無法 JSON 字串化時,此函式將丟擲錯誤。
| 引數 | 描述 |
|---|---|
| value: any | JSON 可字串化的值。 |
| mime?: string | 可選的 MIME 型別,預設為 |
| 返回值 | 描述 |
| NotebookCellOutputItem | 一個新的輸出項物件。 |
stderr(value: string): NotebookCellOutputItem
用於建立使用 application/vnd.code.notebook.stderr MIME 型別的 NotebookCellOutputItem 的工廠函式。
| 引數 | 描述 |
|---|---|
| value: string | 一個字串。 |
| 返回值 | 描述 |
| NotebookCellOutputItem | 一個新的輸出項物件。 |
stdout(value: string): NotebookCellOutputItem
用於建立使用 application/vnd.code.notebook.stdout MIME 型別的 NotebookCellOutputItem 的工廠函式。
| 引數 | 描述 |
|---|---|
| value: string | 一個字串。 |
| 返回值 | 描述 |
| NotebookCellOutputItem | 一個新的輸出項物件。 |
text(value: string, mime?: string): NotebookCellOutputItem
用於從字串建立 NotebookCellOutputItem 的工廠函式。
注意,使用 UTF-8 編碼器來建立字串的位元組。
| 引數 | 描述 |
|---|---|
| value: string | 一個字串。 |
| mime?: string | 可選 MIME 型別,預設為 |
| 返回值 | 描述 |
| NotebookCellOutputItem | 一個新的輸出項物件。 |
建構函式
new NotebookCellOutputItem(data: Uint8Array, mime: string): NotebookCellOutputItem
建立一個新的筆記本單元格輸出項。
| 引數 | 描述 |
|---|---|
| data: Uint8Array | 輸出項的值。 |
| mime: string | 輸出項的 MIME 型別。 |
| 返回值 | 描述 |
| NotebookCellOutputItem |
屬性
此輸出項的資料。必須始終是無符號 8 位整數陣列。
MIME 型別,決定如何解釋 data 屬性。
筆記本內建支援某些 MIME 型別,擴充套件可以新增對新型別的支援或覆蓋現有型別。
NotebookCellStatusBarAlignment
表示狀態列項的對齊方式。
列舉成員
左對齊。
右對齊。
NotebookCellStatusBarItem
單元格狀態列的貢獻項
建構函式
new NotebookCellStatusBarItem(text: string, alignment: NotebookCellStatusBarAlignment): NotebookCellStatusBarItem
建立新的 NotebookCellStatusBarItem。
| 引數 | 描述 |
|---|---|
| text: string | 要顯示的項的文字。 |
| alignment: NotebookCellStatusBarAlignment | 項是左對齊還是右對齊。 |
| 返回值 | 描述 |
| NotebookCellStatusBarItem |
屬性
accessibilityInformation?: AccessibilityInformation
當螢幕閱讀器與此項互動時使用的可訪問性資訊。
alignment: NotebookCellStatusBarAlignment
項是左對齊還是右對齊。
command?: string | Command
項的優先順序。值越高的項顯示在越靠左的位置。
要顯示的項的文字。
滑鼠懸停在項上時顯示的工具提示。
NotebookCellStatusBarItemProvider
一個可以為單元格編輯器下方的狀態列提供項的提供程式。
事件
onDidChangeCellStatusBarItems?: Event<void>
一個可選的事件,用於發出狀態列項已更改的訊號。將再次呼叫提供程式方法。
方法
provideCellStatusBarItems(cell: NotebookCell, token: CancellationToken): ProviderResult<NotebookCellStatusBarItem | NotebookCellStatusBarItem[]>
當單元格滾動到檢視中、其內容、輸出、語言或元資料更改以及執行狀態更改時,將呼叫該提供程式。
| 引數 | 描述 |
|---|---|
| cell: NotebookCell | 要返回項的單元格。 |
| token: CancellationToken | 如果此請求應被取消,則觸發的令牌。 |
| 返回值 | 描述 |
| ProviderResult<NotebookCellStatusBarItem | NotebookCellStatusBarItem[]> | 一個或多個 單元格狀態列項 |
NotebookController
NotebookController 表示一個可以執行筆記本單元格的實體。這通常被稱為核心。
可以有多個控制器,編輯器會允許使用者選擇為特定筆記本使用哪個控制器。notebookType 屬性定義了控制器是用於哪種筆記本的,而 updateNotebookAffinity 函式允許控制器為特定的筆記本文件設定偏好。當選擇了一個控制器後,它的 onDidChangeSelectedNotebooks 事件會觸發。
當單元格正在執行時,編輯器將呼叫 executeHandler,控制器應建立一個並完成一個 筆記本單元格執行。然而,控制器也可以自由地自行建立執行。
事件
onDidChangeSelectedNotebooks: Event<{notebook: NotebookDocument, selected: boolean}>
屬性
人類可讀的描述,顯示不那麼突出。
人類可讀的詳細資訊,顯示不那麼突出。
executeHandler: (cells: NotebookCell[], notebook: NotebookDocument, controller: NotebookController) => void | Thenable<void>
當在 UI 中選擇執行手勢時(例如,執行單元格、執行全部、執行選區等),將呼叫 executeHandler。executeHandler 負責建立和管理 執行 物件。
| 引數 | 描述 |
|---|---|
| cells: NotebookCell[] | |
| notebook: NotebookDocument | |
| controller: NotebookController | |
| 返回值 | 描述 |
| void | Thenable<void> |
此筆記本控制器的識別符號。
請注意,控制器透過其識別符號被記住,並且擴充套件應該在會話中使用穩定的識別符號。
interruptHandler?: (notebook: NotebookDocument) => void | Thenable<void>
可選的中斷處理程式。
預設情況下,單元格執行透過 令牌 取消。取消令牌要求控制器能夠跟蹤其執行,以便稍後取消特定執行。並非所有場景都允許這樣做,例如,REPL 式控制器通常透過中斷當前正在執行的任何內容來工作。對於這些情況,存在中斷處理程式 - 它可以被認為是終端中 SIGINT 或 Control+C 的等效項。
請注意,支援 取消令牌 是首選,並且僅在無法支援令牌時才應使用中斷處理程式。
| 引數 | 描述 |
|---|---|
| notebook: NotebookDocument | |
| 返回值 | 描述 |
| void | Thenable<void> |
此筆記本控制器的可讀標籤。
此控制器所屬的筆記本型別。
此控制器支援的語言識別符號陣列。可以是 getLanguages 中的任何語言識別符號。如果為假值,則支援所有語言。
示例
// support JavaScript and TypeScript
myController.supportedLanguages = ['javascript', 'typescript'];
// support all languages
myController.supportedLanguages = undefined; // falsy
myController.supportedLanguages = []; // falsy
supportsExecutionOrder?: boolean
此控制器是否支援執行順序,以便編輯器可以為其渲染佔位符。
方法
createNotebookCellExecution(cell: NotebookCell): NotebookCellExecution
建立單元格執行任務。
注意,每個單元格一次只能有一個執行,如果在一個單元格仍在活動時建立另一個單元格的執行,則會丟擲錯誤。
這應該在響應 executeHandler 被呼叫時使用,或者當單元格執行已開始時使用,例如當一個單元格已在執行或單元格執行是從另一個源觸發時。
| 引數 | 描述 |
|---|---|
| cell: NotebookCell | 要為其建立執行的筆記本單元格。 |
| 返回值 | 描述 |
| NotebookCellExecution | 筆記本單元格執行。 |
釋放並清理相關資源。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
updateNotebookAffinity(notebook: NotebookDocument, affinity: NotebookControllerAffinity): void
控制器可以為特定的筆記本文件設定關聯。這使得某個控制器在某些筆記本中更突出。
| 引數 | 描述 |
|---|---|
| notebook: NotebookDocument | 設定優先順序的筆記本。 |
| affinity: NotebookControllerAffinity | 控制器對筆記本的關聯。 |
| 返回值 | 描述 |
| void |
NotebookControllerAffinity
筆記本文件的筆記本控制器關聯。
列舉成員
預設關聯。
控制器是筆記本的首選。
NotebookData
建構函式
new NotebookData(cells: NotebookCellData[]): NotebookData
建立新的筆記本資料。
| 引數 | 描述 |
|---|---|
| cells: NotebookCellData[] | 單元格資料的陣列。 |
| 返回值 | 描述 |
| NotebookData |
屬性
cells: NotebookCellData[]
此筆記本資料的單元格資料。
筆記本資料的任意元資料。
NotebookDocument
屬性
筆記本中的單元格數量。
如果筆記本已關閉,則為 true。關閉的筆記本不再同步,並且在再次開啟同一資源時不會被重新使用。
如果有未持久化的更改,則為 true。
此筆記本是否代表一個尚未儲存的未命名檔案。
此筆記本的任意元資料。可以是任何東西,但必須是 JSON 可序列化的。
筆記本的型別。
uri: Uri
此筆記本的關聯 URI。
注意,大多數筆記本使用 file 方案,這意味著它們是磁碟上的檔案。但是,並非所有筆記本都儲存在磁碟上,因此在嘗試訪問底層檔案或磁碟上的同級檔案之前,必須檢查 scheme。
另請參閱 FileSystemProvider
此筆記本的版本號(在每次更改後都會嚴格增加,包括撤銷/重做)。
方法
cellAt(index: number): NotebookCell
返回指定索引處的單元格。索引將調整為筆記本的。
| 引數 | 描述 |
|---|---|
| index: number | 要檢索的單元格的索引。 |
| 返回值 | 描述 |
| NotebookCell | 一個 單元格。 |
getCells(range?: NotebookRange): NotebookCell[]
獲取此筆記本的單元格。可以透過提供範圍來檢索子集。範圍將調整為筆記本的。
| 引數 | 描述 |
|---|---|
| range?: NotebookRange | 筆記本範圍。 |
| 返回值 | 描述 |
| NotebookCell[] | 範圍包含的單元格或所有單元格。 |
儲存文件。儲存將由相應的 序列化程式 處理。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| Thenable<boolean> | 當文件已儲存時,將解析為 true 的 Promise。如果檔案未更改或儲存失敗,將返回 false。 |
NotebookDocumentCellChange
描述筆記本單元格的更改。
屬性
cell: NotebookCell
受影響的單元格。
document: TextDocument
單元格的文件,或 undefined,如果它沒有改變。
注意,您應該使用 onDidChangeTextDocument 事件來獲取詳細的更改資訊,例如執行了哪些編輯。
executionSummary: NotebookCellExecutionSummary
單元格的新執行摘要,或 undefined,如果它沒有改變。
單元格的新元資料,或 undefined,如果它沒有改變。
outputs: readonly NotebookCellOutput[]
單元格的新輸出,或 undefined,如果它們沒有改變。
NotebookDocumentChangeEvent
描述筆記本文件 事務性更改 的事件。
屬性
cellChanges: readonly NotebookDocumentCellChange[]
單元格更改 的陣列。
contentChanges: readonly NotebookDocumentContentChange[]
描述已新增或刪除的 單元格 的內容更改陣列。
筆記本的新元資料,或 undefined,如果它未更改。
notebook: NotebookDocument
受影響的筆記本。
NotebookDocumentContentChange
描述筆記本文件的結構性更改,例如新新增和刪除的單元格。
屬性
addedCells: readonly NotebookCell[]
已新增到文件的單元格。
range: NotebookRange
removedCells: readonly NotebookCell[]
已從文件中移除的單元格。
NotebookDocumentContentOptions
筆記本內容選項定義了筆記本的哪些部分將被持久化。注意
例如,筆記本序列化器可以選擇不儲存輸出,在這種情況下,當其輸出發生更改時,編輯器不會將筆記本標記為 dirty。
屬性
控制單元格元資料屬性更改事件是否會觸發筆記本文件內容更改事件以及是否在 diff 編輯器中使用,預設為 false。如果內容提供者不在檔案文件中持久化元資料屬性,則應將其設定為 true。
控制文件元資料屬性更改事件是否會觸發筆記本文件內容更改事件以及是否在 diff 編輯器中使用,預設為 false。如果內容提供者不在檔案文件中持久化元資料屬性,則應將其設定為 true。
控制輸出更改事件是否會觸發筆記本文件內容更改事件以及是否在 diff 編輯器中使用,預設為 false。如果內容提供者不在檔案文件中持久化輸出,則應將其設定為 true。
NotebookDocumentShowOptions
屬性
一個可選標誌,如果設定為 true,將阻止 筆記本編輯器 獲取焦點。
一個可選標誌,用於控制 筆記本編輯器 標籤頁是否顯示為預覽。預覽標籤頁將被替換並重用,直到被設定為保留 - 顯式或透過編輯。預設行為取決於 workbench.editor.enablePreview 設定。
selections?: readonly NotebookRange[]
在 筆記本編輯器 中應用於文件的可選選擇。
viewColumn?: ViewColumn
應顯示 筆記本編輯器 的可選檢視列。預設值為 活動。最多會建立到 ViewColumn.Nine 的不存在的列。使用 ViewColumn.Beside 將編輯器開啟到當前活動的編輯器旁邊。
NotebookDocumentWillSaveEvent
在 筆記本文件 將被儲存時觸發的事件。
要在儲存文件之前對其進行修改,請呼叫 waitUntil 函式,並傳入一個解析為 WorkspaceEdit 的 thenable。
屬性
notebook: NotebookDocument
將要儲存的 筆記本文件。
reason: TextDocumentSaveReason
觸發儲存的原因。
token: CancellationToken
取消令牌。
方法
waitUntil(thenable: Thenable<WorkspaceEdit>): void
允許暫停事件迴圈並應用 WorkspaceEdit。此函式後續呼叫的編輯將按順序應用。如果筆記本文件發生了併發修改,這些編輯將被 *忽略*。
注意: 此函式只能在事件分派期間呼叫,不能非同步呼叫
workspace.onWillSaveNotebookDocument(event => {
// async, will *throw* an error
setTimeout(() => event.waitUntil(promise));
// sync, OK
event.waitUntil(promise);
});
| 引數 | 描述 |
|---|---|
| thenable: Thenable<WorkspaceEdit> | 解析為 WorkspaceEdit 的 thenable。 |
| 返回值 | 描述 |
| void |
waitUntil(thenable: Thenable<any>): void
允許暫停事件迴圈,直到提供的 thenable 解析。
注意: 此函式只能在事件分派期間呼叫。
| 引數 | 描述 |
|---|---|
| thenable: Thenable<any> | 延遲儲存的 thenable。 |
| 返回值 | 描述 |
| void |
NotebookEdit
NotebookEdit 表示應應用於筆記本內容的編輯。
靜態
deleteCells(range: NotebookRange): NotebookEdit
建立刪除筆記本中單元格的編輯的實用程式。
| 引數 | 描述 |
|---|---|
| range: NotebookRange | 要刪除的單元格的範圍。 |
| 返回值 | 描述 |
| NotebookEdit |
insertCells(index: number, newCells: NotebookCellData[]): NotebookEdit
建立替換筆記本中單元格的編輯的實用程式。
| 引數 | 描述 |
|---|---|
| index: number | 插入單元格的索引。 |
| newCells: NotebookCellData[] | 新的筆記本單元格。 |
| 返回值 | 描述 |
| NotebookEdit |
replaceCells(range: NotebookRange, newCells: NotebookCellData[]): NotebookEdit
建立替換筆記本中單元格的編輯的實用程式。
| 引數 | 描述 |
|---|---|
| range: NotebookRange | 要替換的單元格範圍 |
| newCells: NotebookCellData[] | 新的筆記本單元格。 |
| 返回值 | 描述 |
| NotebookEdit |
updateCellMetadata(index: number, newCellMetadata: ): NotebookEdit
建立更新單元格元資料的編輯的實用程式。
| 引數 | 描述 |
|---|---|
| index: number | 要更新的單元格的索引。 |
| newCellMetadata: | 單元格的新元資料。 |
| 返回值 | 描述 |
| NotebookEdit |
updateNotebookMetadata(newNotebookMetadata: ): NotebookEdit
建立更新筆記本元資料的編輯的實用程式。
| 引數 | 描述 |
|---|---|
| newNotebookMetadata: | 筆記本的新元資料。 |
| 返回值 | 描述 |
| NotebookEdit |
建構函式
new NotebookEdit(range: NotebookRange, newCells: NotebookCellData[]): NotebookEdit
建立新的筆記本編輯。
| 引數 | 描述 |
|---|---|
| range: NotebookRange | 筆記本範圍。 |
| newCells: NotebookCellData[] | 新的單元格資料的陣列。 |
| 返回值 | 描述 |
| NotebookEdit |
屬性
單元格的可選新元資料。
newCells: NotebookCellData[]
正在插入的新單元格。可能為空。
筆記本的可選新元資料。
range: NotebookRange
正在編輯的單元格範圍。可能為空。
NotebookEditor
表示附加到 筆記本 的筆記本編輯器。NotebookEditor 的其他屬性可以在提議的 API 中找到,這些 API 將在稍後最終確定。
屬性
notebook: NotebookDocument
與此筆記本編輯器關聯的 筆記本文件。
selection: NotebookRange
此筆記本編輯器中的主要選擇。
selections: readonly NotebookRange[]
此筆記本編輯器中的所有選擇。
主要選擇(或焦點範圍)是 selections[0]。當文件沒有單元格時,主要選擇為空 { start: 0, end: 0 };
viewColumn?: ViewColumn
編輯器顯示的列。
visibleRanges: readonly NotebookRange[]
編輯器中當前可見的範圍(垂直方向)。
方法
revealRange(range: NotebookRange, revealType?: NotebookEditorRevealType): void
根據 revealType 滾動以顯示給定範圍。
| 引數 | 描述 |
|---|---|
| range: NotebookRange | 範圍。 |
| revealType?: NotebookEditorRevealType | 用於顯示 |
| 返回值 | 描述 |
| void |
NotebookEditorRevealType
表示附加到 筆記本 的筆記本編輯器。
列舉成員
將以最少的滾動量顯示範圍。
範圍將始終在視口的中心顯示。
如果範圍在視口之外,則將其顯示在視口中心。否則,將以最少的滾動量顯示範圍。
範圍將始終在視口的頂部顯示。
NotebookEditorSelectionChangeEvent
表示描述 筆記本編輯器選擇 更改的事件。
屬性
notebookEditor: NotebookEditor
其選擇已更改的 筆記本編輯器。
selections: readonly NotebookRange[]
筆記本編輯器選擇 的新值。
NotebookEditorVisibleRangesChangeEvent
表示描述 筆記本編輯器可見範圍 更改的事件。
屬性
notebookEditor: NotebookEditor
其可見範圍已更改的 筆記本編輯器。
visibleRanges: readonly NotebookRange[]
筆記本編輯器可見範圍 的新值。
NotebookRange
筆記本範圍表示兩個單元格索引的有序對。保證 start 小於或等於 end。
建構函式
new NotebookRange(start: number, end: number): NotebookRange
建立新的筆記本範圍。如果 start 不小於或等於 end,則值將被交換。
| 引數 | 描述 |
|---|---|
| start: number | 起始索引 |
| end: number | 結束索引。 |
| 返回值 | 描述 |
| NotebookRange |
屬性
此範圍的排他性結束索引(零基)。
如果 start 和 end 相等,則為 true。
此範圍的零基起始索引。
方法
with(change: {end: number, start: number}): NotebookRange
從此範圍派生新範圍。
| 引數 | 描述 |
|---|---|
| change: {end: number, start: number} | 描述對此範圍更改的物件。 |
| 返回值 | 描述 |
| NotebookRange | 一個反映給定更改的範圍。如果更改未改變任何內容,將返回 |
NotebookRendererMessaging
Renderer messaging 用於與單個渲染器通訊。它從 notebooks.createRendererMessaging 返回。
事件
onDidReceiveMessage: Event<{editor: NotebookEditor, message: any}>
當從渲染器接收到訊息時觸發的事件。
方法
postMessage(message: any, editor?: NotebookEditor): Thenable<boolean>
將訊息傳送到一個或所有渲染器。
| 引數 | 描述 |
|---|---|
| message: any | 要傳送的訊息 |
| editor?: NotebookEditor | 要將訊息定向到的編輯器。如果未提供,則訊息將傳送到所有渲染器。 |
| 返回值 | 描述 |
| Thenable<boolean> | 一個布林值,指示訊息是否已成功傳遞給任何渲染器。 |
NotebookSerializer
Notebook serializer 使編輯器能夠開啟筆記本檔案。
核心上,編輯器只知道一個 筆記本資料結構,但不知道如何將該資料結構寫入檔案,也不知道如何從檔案讀取。Notebook serializer 透過將位元組反序列化為筆記本資料和反之亦然來彌合這一差距。
方法
deserializeNotebook(content: Uint8Array, token: CancellationToken): NotebookData | Thenable<NotebookData>
將筆記本檔案的內容反序列化為筆記本資料結構。
| 引數 | 描述 |
|---|---|
| content: Uint8Array | 筆記本檔案的內容。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| NotebookData | Thenable<NotebookData> | 筆記本資料或可解析為該資料的 thenable。 |
serializeNotebook(data: NotebookData, token: CancellationToken): Uint8Array | Thenable<Uint8Array>
將筆記本資料序列化為檔案內容。
| 引數 | 描述 |
|---|---|
| data: NotebookData | 筆記本資料結構。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| Uint8Array | Thenable<Uint8Array> | 位元組陣列或解析為該陣列的可thenable。 |
OnEnterRule
描述按下 Enter 鍵時要評估的規則。
屬性
action: EnterAction
要執行的操作。
僅當游標後的文字與此正則表示式匹配時,此規則才會執行。
僅當游標前的文字與此正則表示式匹配時,此規則才會執行。
僅噹噹前行上方的文字與此正則表示式匹配時,此規則才會執行。
OnTypeFormattingEditProvider
文件格式化提供程式介面定義了擴充套件和格式化功能之間的約定。
方法
provideOnTypeFormattingEdits(document: TextDocument, position: Position, ch: string, options: FormattingOptions, token: CancellationToken): ProviderResult<TextEdit[]>
在鍵入字元後提供格式化編輯。
給定的位置和字元應提示提供程式要擴充套件到的範圍,例如在輸入 `}` 時查詢匹配的 `{`。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| position: Position | 呼叫命令的位置。 |
| ch: string | 鍵入的字元。 |
| options: FormattingOptions | 控制格式化的選項。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<TextEdit[]> | 一組文字編輯或一個解析為這些編輯的 thenable。可以透過返回 |
OpenDialogOptions
用於配置檔案開啟對話方塊行為的選項。
- 注意 1:在 Windows 和 Linux 上,檔案對話方塊不能同時是檔案選擇器和資料夾選擇器,因此如果您在這兩個平臺上都將
canSelectFiles和canSelectFolders設定為true,則會顯示一個資料夾選擇器。 - 注意 2:顯式將
canSelectFiles和canSelectFolders設定為false是徒勞的,編輯器隨後會靜默地調整選項以選擇檔案。
屬性
允許選擇檔案,預設為 true。
允許選擇資料夾,預設為 false。
允許選擇多個檔案或資料夾。
defaultUri?: Uri
對話方塊開啟時顯示的資源。
一對用於對話方塊的檔案過濾器。每個條目是一個人類可讀的標籤,例如“TypeScript”,以及一個副檔名陣列,例如
{
'Images': ['png', 'jpg'],
'TypeScript': ['ts', 'tsx']
}
“開啟”按鈕的字串,方便人類閱讀。
對話方塊標題。
此引數可能會被忽略,因為並非所有作業系統都會在開啟對話方塊時顯示標題(例如 macOS)。
OutputChannel
輸出通道是隻讀文字資訊的容器。
要獲取 OutputChannel 的例項,請使用 createOutputChannel。
屬性
此輸出通道的可讀名稱。
方法
將給定值附加到通道。
| 引數 | 描述 |
|---|---|
| value: string | 一個字串,假值不會被列印。 |
| 返回值 | 描述 |
| void |
appendLine(value: string): void
將給定值和換行符附加到通道。
| 引數 | 描述 |
|---|---|
| value: string | 一個字串,假值會被列印。 |
| 返回值 | 描述 |
| void |
清除通道中的所有輸出。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
釋放並清理相關資源。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
從 UI 中隱藏此通道。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
用給定值替換通道中的所有輸出。
| 引數 | 描述 |
|---|---|
| value: string | 一個字串,假值不會被列印。 |
| 返回值 | 描述 |
| void |
show(preserveFocus?: boolean): void
在 UI 中顯示此通道。
| 引數 | 描述 |
|---|---|
| preserveFocus?: boolean | 如果為 |
| 返回值 | 描述 |
| void |
show(column?: ViewColumn, preserveFocus?: boolean): void
在 UI 中顯示此通道。
- 已棄用 - 請使用只有一個引數的過載(
show(preserveFocus?: boolean): void)。
| 引數 | 描述 |
|---|---|
| column?: ViewColumn | 此引數 **已棄用** 且將被忽略。 |
| preserveFocus?: boolean | 如果為 |
| 返回值 | 描述 |
| void |
OverviewRulerLane
表示在 overview ruler 中渲染裝飾的不同位置。overview ruler 支援三個通道。
列舉成員
overview ruler 的左側通道。
overview ruler 的中心通道。
overview ruler 的右側通道。
overview ruler 的所有通道。
ParameterInformation
表示可呼叫簽名的引數。引數可以有一個標籤和一個文件註釋。
建構函式
new ParameterInformation(label: string | [number, number], documentation?: string | MarkdownString): ParameterInformation
建立新的引數資訊物件。
| 引數 | 描述 |
|---|---|
| label: string | [number, number] | 一個標籤字串或包含在簽名標籤內的偏移量(包含開始,不包含結束)。 |
| documentation?: string | MarkdownString | 文件字串。 |
| 返回值 | 描述 |
| ParameterInformation |
屬性
documentation?: string | MarkdownString
此簽名的可讀文件註釋。將在 UI 中顯示,但可以省略。
label: string | [number, number]
Position
建構函式
new Position(line: number, character: number): Position
| 引數 | 描述 |
|---|---|
| line: number | 基於 0 的行值。 |
| character: number | 基於 0 的字元值。 |
| 返回值 | 描述 |
| Position |
屬性
基於 0 的字元值。
字元偏移量使用 UTF-16 程式碼單元表示。
基於 0 的行值。
方法
compareTo(other: Position): number
將此與 other 進行比較。
| 引數 | 描述 |
|---|---|
| other: Position | 一個位置。 |
| 返回值 | 描述 |
| number | 如果此位置在給定位置之前,則返回小於零的數字;如果此位置在給定位置之後,則返回大於零的數字;如果此位置和給定位置相等,則返回零。 |
isAfter(other: Position): boolean
檢查此位置是否在 other 之後。
| 引數 | 描述 |
|---|---|
| other: Position | 一個位置。 |
| 返回值 | 描述 |
| 布林值 | 如果位置在更大的一行上,或者在同一行但字元更大,則為 |
isAfterOrEqual(other: Position): boolean
檢查此位置是否在 other 之後或等於 other。
| 引數 | 描述 |
|---|---|
| other: Position | 一個位置。 |
| 返回值 | 描述 |
| 布林值 | 如果位置在更大的一行上,或者在同一行但字元更大或相等,則為 |
isBefore(other: Position): boolean
檢查此位置是否在 other 之前。
| 引數 | 描述 |
|---|---|
| other: Position | 一個位置。 |
| 返回值 | 描述 |
| 布林值 | 如果位置在較小的一行上,或者在同一行但字元更小,則為 |
isBeforeOrEqual(other: Position): boolean
檢查此位置是否在 other 之前或等於 other。
| 引數 | 描述 |
|---|---|
| other: Position | 一個位置。 |
| 返回值 | 描述 |
| 布林值 | 如果位置在較小的一行上,或者在同一行但字元更小或相等,則為 |
isEqual(other: Position): boolean
檢查此位置是否等於 other。
| 引數 | 描述 |
|---|---|
| other: Position | 一個位置。 |
| 返回值 | 描述 |
| 布林值 | 如果給定位置的行和字元等於此位置的行和字元,則為 |
translate(lineDelta?: number, characterDelta?: number): Position
建立相對於此位置的新位置。
| 引數 | 描述 |
|---|---|
| lineDelta?: number | 行值的增量,預設為 |
| characterDelta?: number | 字元值的增量,預設為 |
| 返回值 | 描述 |
| Position | 一個位置,其行和字元是當前行和字元以及相應增量的總和。 |
translate(change: {characterDelta: number, lineDelta: number}): Position
派生一個相對於此位置的新位置。
| 引數 | 描述 |
|---|---|
| change: {characterDelta: number, lineDelta: number} | 一個描述此位置增量的物件。 |
| 返回值 | 描述 |
| Position | 一個反映給定增量的位置。如果更改未改變任何內容,則返回 |
with(line?: number, character?: number): Position
建立從此位置派生的新位置。
with(change: {character: number, line: number}): Position
派生一個從此位置獲得的新位置。
| 引數 | 描述 |
|---|---|
| change: {character: number, line: number} | 一個描述此位置更改的物件。 |
| 返回值 | 描述 |
| Position | 一個反映給定更改的位置。如果更改未改變任何內容,則返回 |
PreparedToolInvocation
屬性
confirmationMessages?: LanguageModelToolConfirmationMessages
此屬性的存在表明應在執行工具之前要求使用者確認。對於任何具有副作用或可能存在潛在危險的工具,都應要求使用者確認。
invocationMessage?: string | MarkdownString
工具執行時要顯示的自定義進度訊息。
PrepareLanguageModelChatModelOptions
屬性
是否應透過某種 UI 流程提示使用者,或者是否應嘗試靜默解析模型。如果 silent 為 true,由於缺少 API 金鑰等資訊,可能無法解析所有模型。
ProcessExecution
任務的執行作為外部程序進行,無需 shell 互動。
建構函式
new ProcessExecution(process: string, options?: ProcessExecutionOptions): ProcessExecution
建立程序執行。
| 引數 | 描述 |
|---|---|
| process: string | 要啟動的程序。 |
| options?: ProcessExecutionOptions | 啟動程序的可選選項。 |
| 返回值 | 描述 |
| ProcessExecution |
new ProcessExecution(process: string, args: string[], options?: ProcessExecutionOptions): ProcessExecution
建立程序執行。
| 引數 | 描述 |
|---|---|
| process: string | 要啟動的程序。 |
| args: string[] | 要傳遞給程序的引數。 |
| options?: ProcessExecutionOptions | 啟動程序的可選選項。 |
| 返回值 | 描述 |
| ProcessExecution |
屬性
傳遞給程序的引數。預設為空陣列。
options?: ProcessExecutionOptions
程序執行時使用的程序選項。預設為 undefined。
要執行的程序。
ProcessExecutionOptions
程序執行的選項
屬性
已執行程式或 shell 的當前工作目錄。如果省略,則使用工具的當前工作區根。
已執行程式或 shell 的附加環境。如果省略,則使用父程序的環境。如果提供,則會與父程序的環境合併。
Progress<T>
定義了報告進度更新的通用方法。
方法
報告進度更新。
| 引數 | 描述 |
|---|---|
| value: T | 進度項,例如一條訊息和/或關於已完成工作量的報告。 |
| 返回值 | 描述 |
| void |
ProgressLocation
可以顯示進度資訊的位置。進度如何顯示取決於位置。
列舉成員
顯示原始碼管理檢視的進度,作為圖示疊加和檢視中的進度條(可見時)。都不支援取消、離散進度或描述操作的標籤。
在編輯器的狀態列中顯示進度。既不支援取消,也不支援離散進度。支援透過進度標籤中的 $(<name>) 語法渲染 主題圖示。
顯示為通知,帶有可選的取消按鈕。支援顯示無限和離散進度,但不支援渲染圖示。
ProgressOptions
描述進度顯示位置和方式的值物件。
屬性
控制是否顯示取消按鈕以允許使用者取消長時間執行的操作。請注意,目前只有 ProgressLocation.Notification 支援顯示取消按鈕。
location: ProgressLocation | {viewId: string}
進度應顯示的位置。
將用於描述操作的可讀字串。
ProvideLanguageModelChatResponseOptions
LanguageModelChatRequestOptions 的提供程式版本
屬性
一組控制語言模型行為的選項。這些選項特定於語言模型。
toolMode: LanguageModelChatToolMode
要使用的工具選擇模式。提供程式必須遵守此模式。
tools?: readonly LanguageModelChatTool[]
可供語言模型使用的工具的可選列表。這些工具可以是 lm.tools 可用的已註冊工具,也可以是僅在呼叫擴充套件中實現的私有工具。
如果 LLM 請求呼叫這些工具之一,它將在 LanguageModelChatResponse.stream 中返回一個 LanguageModelToolCallPart。呼叫方負責呼叫該工具。如果該工具已在 lm.tools 中註冊,則意味著呼叫 lm.invokeTool。
然後,可以透過建立一個具有 LanguageModelToolCallPart 的 Assistant 型別 LanguageModelChatMessage,然後是具有 LanguageModelToolResultPart 的 User 型別訊息,將工具結果提供給 LLM。
ProviderResult<T>
提供程式結果表示提供程式(例如 HoverProvider)可能返回的值。一方面是實際結果型別 T,例如 Hover,或者是一個解析為該型別 T 的 thenable。此外,還可以直接或從 thenable 返回 null 和 undefined。
下面的程式碼片段都是 HoverProvider 的有效實現。
let a: HoverProvider = {
provideHover(doc, pos, token): ProviderResult<Hover> {
return new Hover('Hello World');
}
};
let b: HoverProvider = {
provideHover(doc, pos, token): ProviderResult<Hover> {
return new Promise(resolve => {
resolve(new Hover('Hello World'));
});
}
};
let c: HoverProvider = {
provideHover(doc, pos, token): ProviderResult<Hover> {
return; // undefined
}
};
ProviderResult: T | undefined | null | Thenable<T | undefined | null>
Pseudoterminal
定義終端 pty 的介面,使擴充套件能夠控制終端。
事件
onDidChangeName?: Event<string>
一個事件,當觸發時允許更改終端的名稱。
在呼叫 Pseudoterminal.open 之前觸發的事件將被忽略。
示例:將終端名稱更改為“我的新終端”。
const writeEmitter = new vscode.EventEmitter<string>();
const changeNameEmitter = new vscode.EventEmitter<string>();
const pty: vscode.Pseudoterminal = {
onDidWrite: writeEmitter.event,
onDidChangeName: changeNameEmitter.event,
open: () => changeNameEmitter.fire('My new terminal'),
close: () => {}
};
vscode.window.createTerminal({ name: 'My terminal', pty });
onDidClose?: Event<number | void>
當觸發時,該事件將發出訊號表示 pty 已關閉,並處置終端。
在呼叫 Pseudoterminal.open 之前觸發的事件將被忽略。
數字可用作終端的退出程式碼。退出程式碼必須為正數,非零退出程式碼表示失敗,這會為常規終端顯示通知,並在與 CustomExecution API 一起使用時允許依賴任務繼續執行。
示例:按下“y”時退出終端,否則顯示通知。
const writeEmitter = new vscode.EventEmitter<string>();
const closeEmitter = new vscode.EventEmitter<void>();
const pty: vscode.Pseudoterminal = {
onDidWrite: writeEmitter.event,
onDidClose: closeEmitter.event,
open: () => writeEmitter.fire('Press y to exit successfully'),
close: () => {},
handleInput: data => {
if (data !== 'y') {
vscode.window.showInformationMessage('Something went wrong');
}
closeEmitter.fire();
}
};
const terminal = vscode.window.createTerminal({ name: 'Exit example', pty });
terminal.show(true);
onDidOverrideDimensions?: Event<TerminalDimensions>
當觸發時,該事件允許覆蓋終端的 尺寸。請注意,設定後,覆蓋的尺寸只有在小於終端的實際尺寸時才會生效(即,永遠不會出現捲軸)。設定為 undefined 可讓終端恢復為常規尺寸(適合面板大小)。
在呼叫 Pseudoterminal.open 之前觸發的事件將被忽略。
示例:將終端的尺寸覆蓋為 20 列和 10 行
const dimensionsEmitter = new vscode.EventEmitter<vscode.TerminalDimensions>();
const pty: vscode.Pseudoterminal = {
onDidWrite: writeEmitter.event,
onDidOverrideDimensions: dimensionsEmitter.event,
open: () => {
dimensionsEmitter.fire({
columns: 20,
rows: 10
});
},
close: () => {}
};
vscode.window.createTerminal({ name: 'My terminal', pty });
onDidWrite: Event<string>
當觸發時,該事件會將資料寫入終端。與 Terminal.sendText(它將文字傳送到底層的子偽裝置(子程序))不同,此事件會將文字寫入父偽裝置(終端本身)。
注意,寫入 \n 只會將游標向下移動一行,您還需要寫入 \r 才能將游標移到最左邊的單元格。
在呼叫 Pseudoterminal.open 之前觸發的事件將被忽略。
示例:向終端寫入紅色文字
const writeEmitter = new vscode.EventEmitter<string>();
const pty: vscode.Pseudoterminal = {
onDidWrite: writeEmitter.event,
open: () => writeEmitter.fire('\x1b[31mHello world\x1b[0m'),
close: () => {}
};
vscode.window.createTerminal({ name: 'My terminal', pty });
示例:將游標移動到第 10 行和第 20 列並寫入一個星號
writeEmitter.fire('\x1b[10;20H*');
方法
實現此方法以處理使用者關閉終端的操作。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
handleInput(data: string): void
實現此方法以處理終端中的傳入按鍵或擴充套件呼叫 Terminal.sendText 時的情況。data 包含已序列化為其相應 VT 序列表示的按鍵/文字。
| 引數 | 描述 |
|---|---|
| data: string | 傳入的資料。 示例:在終端中回顯輸入。回車符(
|
| 返回值 | 描述 |
| void |
open(initialDimensions: TerminalDimensions): void
實現此方法以處理 pty 開啟並準備好開始觸發事件的情況。
| 引數 | 描述 |
|---|---|
| initialDimensions: TerminalDimensions | 終端的尺寸,如果終端面板在此之前未開啟,則此值為 |
| 返回值 | 描述 |
| void |
setDimensions(dimensions: TerminalDimensions): void
實現此方法以處理終端面板可容納的行數和列數發生變化的情況,例如更改字型大小時或調整面板大小時。終端尺寸的初始狀態應視為 undefined,直到觸發此事件,因為終端的大小在使用者介面中顯示之前是未知的。
當尺寸被 onDidOverrideDimensions 覆蓋時,setDimensions 將繼續使用常規面板尺寸被呼叫,允許擴充套件繼續響應尺寸變化。
| 引數 | 描述 |
|---|---|
| dimensions: TerminalDimensions | 新的尺寸。 |
| 返回值 | 描述 |
| void |
QuickDiffProvider
快速 diff 提供程式提供一個 uri 來表示已修改資源的原始狀態。編輯器將使用此資訊在文字中渲染臨時 diff。
方法
provideOriginalResource(uri: Uri, token: CancellationToken): ProviderResult<Uri>
提供一個 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 它,以允許釋放與其相關的任何資源。
事件
onDidHide: Event<void>
屬性
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
屬性
iconPath: IconPath
按鈕的圖示。
滑鼠懸停在按鈕上時顯示的可選工具提示。
QuickInputButtons
靜態
Back: QuickInputButton
QuickPick<T>
一個具體的 QuickInput,允許使用者從型別為 T 的專案列表中選擇一個專案。
專案可以透過過濾文字欄位進行過濾,並且有一個可選的 canSelectMany 選項以允許選擇多個專案。
請注意,在許多情況下,更方便的 window.showQuickPick 更易於使用。window.createQuickPick 應在 window.showQuickPick 不提供所需靈活性時使用。
事件
onDidAccept: Event<void>
當用戶表示接受選定的專案時觸發的事件。
onDidChangeActive: Event<readonly T[]>
活動專案更改時觸發的事件。
onDidChangeSelection: Event<readonly T[]>
選定專案更改時觸發的事件。
onDidChangeValue: Event<string>
過濾文字的值更改時觸發的事件。
onDidHide: Event<void>
onDidTriggerButton: Event<QuickInputButton>
An event signaling when a button was triggered.
此事件由 buttons 陣列中儲存的按鈕觸發。此事件不為 QuickPickItem 上的按鈕觸發。
onDidTriggerItemButton: Event<QuickPickItemButtonEvent<T>>
當 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: readonly QuickInputButton[]
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 時,將忽略此屬性。
buttons?: readonly QuickInputButton[]
將在此特定專案上渲染的可選按鈕。
當按下這些按鈕時,它們將觸發 QuickPickItemButtonEvent。只有在使用 createQuickPick API 建立的快速選擇中才會渲染按鈕。使用 showQuickPick API 時不會渲染按鈕。
注意:當 kind 設定為 QuickPickItemKind.Separator 時,將忽略此屬性。
人類可讀的字串,在同一行中不那麼顯眼地渲染。
支援透過 $(<name>) 語法渲染 主題圖示。
注意:當 kind 設定為 QuickPickItemKind.Separator 時,將忽略此屬性。
人類可讀的字串,在單獨一行中不那麼顯眼地渲染。
支援透過 $(<name>) 語法渲染 主題圖示。
注意:當 kind 設定為 QuickPickItemKind.Separator 時,將忽略此屬性。
iconPath?: IconPath
專案的圖示。
kind?: QuickPickItemKind
此專案的種類,決定了它在快速選擇中的渲染方式。
如果未指定,則預設為 QuickPickItemKind.Default。
人類可讀的字串,突出顯示。
支援透過 $(<name>) 語法渲染 主題圖示。
注意:當 kind 設定為 QuickPickItemKind.Default(即常規專案而不是分隔符)時,它支援透過 $(<name>) 語法渲染 主題圖示。
可選標誌,指示此專案是否已初始選中。
僅在使用 showQuickPick API 時有效。要使用 createQuickPick API 實現相同的功能,只需將 selectedItems 設定為您希望初始選中的專案即可。
注意:這僅在選擇器允許多項選擇時有效。
另請參閱 QuickPickOptions.canPickMany
注意:當 kind 設定為 QuickPickItemKind.Separator 時,將忽略此屬性。
QuickPickItemButtonEvent<T>
描述 QuickPickItem 上按下的按鈕的事件。
屬性
button: QuickInputButton
按下的按鈕。
按鈕所屬的專案。
QuickPickItemKind
定義 快速選擇專案 的種類。
列舉成員
提供視覺分組的分隔符專案。
當 QuickPickItem 的種類為 Separator 時,該專案僅為視覺分隔符,不代表可選擇的專案。唯一適用的屬性是 label。 QuickPickItem 上的所有其他屬性都將被忽略且無效。
可在快速選擇中選擇的專案的預設種類。
QuickPickOptions
用於配置快速選擇 UI 行為的選項。
事件
onDidSelectItem(item: string | QuickPickItem): any
選擇專案時呼叫的可選函式。
| 引數 | 描述 |
|---|---|
| item: string | QuickPickItem | |
| 返回值 | 描述 |
| any |
屬性
確定選擇器是否允許多項選擇。如果為 true,則結果是專案陣列。
設定為 true 以在焦點移至編輯器其他部分或另一個視窗時保持選擇器開啟。此設定在 iPad 上被忽略,並且始終為 false。
確定在過濾專案時是否應包含 description。預設為 false。
確定在過濾專案時是否應包含 detail。預設為 false。
可選字串,在輸入框中顯示為佔位符以指導使用者。
快速選擇的可選標題。
Range
Range 表示兩個位置的有序對。保證 start.isBeforeOrEqual(end)
Range 物件是不可變的。使用 with、intersection 或 union 方法從現有 Range 中派生新 Range。
建構函式
new Range(start: Position, end: Position): Range
從兩個位置建立新 Range。如果 start 不在 end 之前或等於 end,則值將被交換。
new Range(startLine: number, startCharacter: number, endLine: number, endCharacter: number): 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 |
屬性
end: Position
如果 start 和 end 相等,則為 true。
如果 start.line 和 end.line 相等,則為 true。
start: Position
方法
contains(positionOrRange: Range | Position): boolean
檢查一個位置或範圍是否包含在此範圍內。
intersection(range: Range): Range
將 range 與此範圍相交,並返回一個新範圍,如果範圍沒有重疊則返回 undefined。
isEqual(other: Range): boolean
with(start?: Position, end?: Position): Range
從此範圍派生一個新範圍。
with(change: {end: Position, start: Position}): Range
從此範圍派生一個新範圍。
ReferenceContext
在請求引用時包含附加資訊的 Value-object。
屬性
包含當前符號的宣告。
ReferenceProvider
ReferenceProvider 介面定義了擴充套件和 查詢引用 功能之間的約定。
方法
provideReferences(document: TextDocument, position: Position, context: ReferenceContext, token: CancellationToken): ProviderResult<Location[]>
為給定的位置和文件提供一組專案範圍內的引用。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| position: Position | 呼叫命令的位置。 |
| context: ReferenceContext | 有關引用請求的附加資訊。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<Location[]> | 位置陣列或可解析為此類陣列的 thenable。可以透過返回 |
RelativePattern
RelativePattern 是一個輔助工具,用於構造相對於基檔案路徑匹配的 glob 模式。基路徑可以是字串或 URI 格式的絕對檔案路徑,也可以是 工作區資料夾,這是建立相對模式的首選方式。
建構函式
new RelativePattern(base: string | Uri | WorkspaceFolder, pattern: string): RelativePattern
使用基檔案路徑和要匹配的模式建立一個新的相對模式物件。此模式將在相對於基的路徑上匹配。
示例
const folder = vscode.workspace.workspaceFolders?.[0];
if (folder) {
// Match any TypeScript file in the root of this workspace folder
const pattern1 = new vscode.RelativePattern(folder, '*.ts');
// Match any TypeScript file in `someFolder` inside this workspace folder
const pattern2 = new vscode.RelativePattern(folder, 'someFolder/*.ts');
}
| 引數 | 描述 |
|---|---|
| base: string | Uri | WorkspaceFolder | 將相對於此模式匹配的基礎。如果模式應在工作區內匹配,建議傳入 工作區資料夾。否則,僅當模式用於工作區外檔案路徑時,才應使用 URI 或字串。 |
| pattern: string | 一個檔案 glob 模式,例如 |
| 返回值 | 描述 |
| RelativePattern |
屬性
將相對於此模式匹配的基礎檔案路徑。
這匹配 RelativePattern.baseUri 的 fsPath 值。
注意: 更新此值將更新 RelativePattern.baseUri 以使用 file 方案的 URI。
- 已棄用 - 此屬性已被棄用,請改用 RelativePattern.baseUri。
baseUri: Uri
將相對於此模式匹配的基礎檔案路徑。檔案路徑必須是絕對路徑,不應有任何尾部路徑分隔符,也不應包含任何相對段 (. 或 ..)。
一個檔案 glob 模式,例如 *.{ts,js},它將在相對於基路徑的檔案路徑上匹配。
示例:給定基路徑為 /home/work/folder,檔案路徑為 /home/work/folder/index.js,檔案 glob 模式將匹配 index.js。
RenameProvider
RenameProvider 介面定義了擴充套件和 重新命名 功能之間的約定。
方法
prepareRename(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<Range | {placeholder: string, range: Range}>
可選函式,用於在執行重新命名之前解析和驗證位置。結果可以是範圍,也可以是範圍和佔位符文字。佔位符文字應為要重新命名的符號的識別符號 - 如果省略,則使用返回範圍中的文字。
注意: 如果提供的位置不允許重新命名,此函式應丟擲錯誤或返回被拒絕的 thenable。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 將呼叫重新命名的文件。 |
| position: Position | 將呼叫重新命名的位置。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<Range | {placeholder: string, range: Range}> | 要重新命名的識別符號的範圍或範圍和佔位符文字。可以透過返回 |
provideRenameEdits(document: TextDocument, position: Position, newName: string, token: CancellationToken): ProviderResult<WorkspaceEdit>
提供描述要對一個或多個資源所做的更改的編輯,以將符號重新命名為其他名稱。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| position: Position | 呼叫命令的位置。 |
| newName: string | 符號的新名稱。如果給定的名稱無效,提供者必須返回一個被拒絕的 promise。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<WorkspaceEdit> | 工作區編輯或可解析為此類編輯的 thenable。可以透過返回 |
RunOptions
任務的執行選項。
屬性
控制任務變數是否在重新執行時重新評估。
SaveDialogOptions
配置檔案儲存對話方塊行為的選項。
屬性
defaultUri?: Uri
對話方塊開啟時顯示的資源。
一對用於對話方塊的檔案過濾器。每個條目是一個人類可讀的標籤,例如“TypeScript”,以及一個副檔名陣列,例如
{
'Images': ['png', 'jpg'],
'TypeScript': ['ts', 'tsx']
}
儲存按鈕的可讀字串。
對話方塊標題。
此引數可能會被忽略,因為並非所有作業系統都會在儲存對話方塊上顯示標題(例如 macOS)。
SecretStorage
表示用於儲存秘密(或任何敏感資訊)的儲存實用程式,這些秘密將被加密儲存。秘密儲存的實現將因平臺而異,並且秘密不會在機器之間同步。
事件
onDidChange: Event<SecretStorageChangeEvent>
當儲存或刪除秘密時觸發。
方法
delete(key: string): Thenable<void>
從儲存中刪除秘密。
| 引數 | 描述 |
|---|---|
| key: string | 儲存秘密的鍵。 |
| 返回值 | 描述 |
| Thenable<void> |
get(key: string): Thenable<string>
檢索使用金鑰儲存的秘密。如果不存在匹配該金鑰的密碼,則返回 undefined。
| 引數 | 描述 |
|---|---|
| key: string | 儲存秘密的鍵。 |
| 返回值 | 描述 |
| Thenable<string> | 儲存的值或 |
檢索此擴充套件儲存的所有秘密的鍵。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| Thenable<string[]> |
store(key: string, value: string): Thenable<void>
將秘密儲存在給定鍵下。
| 引數 | 描述 |
|---|---|
| key: string | 儲存秘密的鍵。 |
| value: string | 秘密。 |
| 返回值 | 描述 |
| Thenable<void> |
SecretStorageChangeEvent
新增或刪除秘密時觸發的事件資料。
屬性
已更改的秘密的鍵。
SelectedCompletionInfo
描述當前選中的補全項。
屬性
range: Range
如果接受此補全項,將被替換的範圍。
如果接受此補全項,將被替換為該範圍的文字。
Selection
表示編輯器中的文字選擇。
建構函式
new Selection(anchor: Position, active: Position): Selection
new Selection(anchorLine: number, anchorCharacter: number, activeLine: number, activeCharacter: number): Selection
從四個座標建立選擇。
| 引數 | 描述 |
|---|---|
| anchorLine: number | 基於 0 的行值。 |
| anchorCharacter: number | 基於 0 的字元值。 |
| activeLine: number | 基於 0 的行值。 |
| activeCharacter: number | 基於 0 的字元值。 |
| 返回值 | 描述 |
| Selection |
屬性
active: Position
游標的位置。此位置可能在 anchor 之前或之後。
anchor: Position
選擇開始的位置。此位置可能在 active 之前或之後。
end: Position
如果 start 和 end 相等,則為 true。
如果 start.line 和 end.line 相等,則為 true。
start: Position
方法
contains(positionOrRange: Range | Position): boolean
檢查一個位置或範圍是否包含在此範圍內。
intersection(range: Range): Range
將 range 與此範圍相交,並返回一個新範圍,如果範圍沒有重疊則返回 undefined。
isEqual(other: Range): boolean
with(start?: Position, end?: Position): Range
從此範圍派生一個新範圍。
with(change: {end: Position, start: Position}): Range
從此範圍派生一個新範圍。
SelectionRange
SelectionRange 表示選擇層次結構的一部分。SelectionRange 可能有一個包含它的父 SelectionRange。
建構函式
new SelectionRange(range: Range, parent?: SelectionRange): SelectionRange
建立新的 SelectionRange。
| 引數 | 描述 |
|---|---|
| range: Range | SelectionRange 的範圍。 |
| parent?: SelectionRange | SelectionRange 的父級。 |
| 返回值 | 描述 |
| SelectionRange |
屬性
parent?: SelectionRange
包含此範圍的父 SelectionRange。
range: Range
此 SelectionRange 的 Range。
SelectionRangeProvider
SelectionRangeProvider 介面定義了擴充套件和“擴充套件和收縮選擇”功能之間的約定。
方法
provideSelectionRanges(document: TextDocument, positions: readonly Position[], token: CancellationToken): ProviderResult<SelectionRange[]>
為給定的位置提供選擇範圍。
應為每個位置單獨計算並獨立計算選擇範圍。編輯器將合併和去重範圍,但提供者必須返回選擇範圍的層次結構,以便一個範圍被其父級 包含。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| positions: readonly Position[] | 呼叫命令的位置。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<SelectionRange[]> | 選擇範圍或可解析為此類範圍的 thenable。可以透過返回 |
SemanticTokens
表示語義令牌,無論是範圍內的還是整個文件內的。
另請參閱
- 有關格式的說明,請參閱 provideDocumentSemanticTokens。
- 有關建立例項的幫助程式,請參閱 SemanticTokensBuilder。
建構函式
new SemanticTokens(data: Uint32Array, resultId?: string): SemanticTokens
建立新的語義令牌。
| 引數 | 描述 |
|---|---|
| data: Uint32Array | 令牌資料。 |
| resultId?: string | 結果識別符號。 |
| 返回值 | 描述 |
| SemanticTokens |
屬性
實際的令牌資料。
另請參閱 provideDocumentSemanticTokens 以瞭解格式說明。
令牌的結果 ID。
這將是傳遞給 DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits(如果已實現)的 ID。
SemanticTokensBuilder
SemanticTokensBuilder 可以幫助建立包含增量編碼的語義令牌的 SemanticTokens 例項。
建構函式
new SemanticTokensBuilder(legend?: SemanticTokensLegend): SemanticTokensBuilder
建立語義令牌構建器。
| 引數 | 描述 |
|---|---|
| legend?: SemanticTokensLegend | 語義令牌圖例。 |
| 返回值 | 描述 |
| SemanticTokensBuilder |
方法
build(resultId?: string): SemanticTokens
完成並建立 SemanticTokens 例項。
| 引數 | 描述 |
|---|---|
| resultId?: string | |
| 返回值 | 描述 |
| SemanticTokens |
push(line: number, char: number, length: number, tokenType: number, tokenModifiers?: number): void
新增另一個令牌。
| 引數 | 描述 |
|---|---|
| line: number | 令牌開始行號(絕對值)。 |
| char: number | 令牌開始字元(絕對值)。 |
| length: number | 令牌的長度(字元數)。 |
| tokenType: number | 編碼的令牌型別。 |
| tokenModifiers?: number | 編碼的令牌修飾符。 |
| 返回值 | 描述 |
| void |
push(range: Range, tokenType: string, tokenModifiers?: readonly string[]): void
新增另一個令牌。僅在提供圖例時使用。
| 引數 | 描述 |
|---|---|
| range: Range | 令牌的範圍。必須是單行。 |
| tokenType: string | 令牌型別。 |
| tokenModifiers?: readonly string[] | 令牌修飾符。 |
| 返回值 | 描述 |
| void |
SemanticTokensEdit
表示對語義令牌的編輯。
另請參閱 provideDocumentSemanticTokensEdits 以瞭解格式說明。
建構函式
new SemanticTokensEdit(start: number, deleteCount: number, data?: Uint32Array): SemanticTokensEdit
建立語義令牌編輯。
| 引數 | 描述 |
|---|---|
| start: number | 開始偏移量 |
| deleteCount: number | 要刪除的元素數量。 |
| data?: Uint32Array | 要插入的元素 |
| 返回值 | 描述 |
| SemanticTokensEdit |
屬性
要插入的元素。
要刪除的元素數量。
編輯的開始偏移量。
SemanticTokensEdits
表示對語義令牌的編輯。
另請參閱 provideDocumentSemanticTokensEdits 以瞭解格式說明。
建構函式
new SemanticTokensEdits(edits: SemanticTokensEdit[], resultId?: string): SemanticTokensEdits
建立新的語義令牌編輯。
| 引數 | 描述 |
|---|---|
| edits: SemanticTokensEdit[] | 語義令牌編輯陣列。 |
| resultId?: string | 結果識別符號。 |
| 返回值 | 描述 |
| SemanticTokensEdits |
屬性
edits: SemanticTokensEdit[]
令牌資料的編輯。所有編輯都引用初始資料狀態。
令牌的結果 ID。
這將是傳遞給 DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits(如果已實現)的 ID。
SemanticTokensLegend
SemanticTokensLegend 包含解讀語義令牌整數編碼表示所需的必要資訊。
建構函式
new SemanticTokensLegend(tokenTypes: string[], tokenModifiers?: string[]): SemanticTokensLegend
建立語義令牌圖例。
| 引數 | 描述 |
|---|---|
| tokenTypes: string[] | 令牌型別陣列。 |
| tokenModifiers?: string[] | 令牌修飾符陣列。 |
| 返回值 | 描述 |
| SemanticTokensLegend |
屬性
可能的令牌修飾符。
可能的令牌型別。
ShellExecution
表示在 shell 中執行的任務。
建構函式
new ShellExecution(commandLine: string, options?: ShellExecutionOptions): ShellExecution
使用完整的命令列建立 shell 執行。
| 引數 | 描述 |
|---|---|
| commandLine: string | 要執行的命令列。 |
| options?: ShellExecutionOptions | 啟動 shell 的可選選項。 |
| 返回值 | 描述 |
| ShellExecution |
new ShellExecution(command: string | ShellQuotedString, args: Array<string | ShellQuotedString>, options?: ShellExecutionOptions): ShellExecution
建立一個帶有命令和引數的 shell 執行。對於實際執行,編輯器將根據命令和引數構建命令列。這可能會被解釋,尤其是在處理引用時。如果需要完全控制命令列,請使用建立帶完整命令列的 ShellExecution 的建構函式。
| 引數 | 描述 |
|---|---|
| command: string | ShellQuotedString | 要執行的命令。 |
| args: Array<string | ShellQuotedString> | 命令引數。 |
| options?: ShellExecutionOptions | 啟動 shell 的可選選項。 |
| 返回值 | 描述 |
| ShellExecution |
屬性
args: Array<string | ShellQuotedString>
shell 引數。如果使用完整命令列建立,則為 undefined。
command: string | ShellQuotedString
shell 命令。如果使用完整命令列建立,則為 undefined。
shell 命令列。如果使用命令和引數建立,則為 undefined。
options?: ShellExecutionOptions
在 shell 中執行命令時使用的 shell 選項。預設為 undefined。
ShellExecutionOptions
shell 執行的選項
屬性
執行 shell 的當前工作目錄。如果省略,則使用工具的當前工作區根目錄。
執行 shell 的附加環境變數。如果省略,則使用父程序的環境。如果提供,它將與父程序的環境合併。
shell 可執行檔案。
要傳遞給 shell 可執行檔案的引數,用於執行任務。大多數 shell 需要特殊引數來執行命令。例如,bash 需要 -c 引數來執行命令,PowerShell 需要 -Command,而 cmd 需要 /d 和 /c。
shellQuoting?: ShellQuotingOptions
此 shell 支援的 shell 引用。
ShellQuotedString
一個根據所用 shell 進行引用的字串。
屬性
quoting: ShellQuoting
要使用的引用樣式。
實際的字串值。
ShellQuoting
定義當引數包含空格或不支援的字元時應如何引用它。
列舉成員
應使用字元轉義。例如,這在 bash 中使用 \,在 PowerShell 中使用 `。
應使用強字串引用。例如,這在 Windows cmd 中使用 ",在 bash 和 PowerShell 中使用 '。強引用將引數視為文字字串。在 PowerShell 中,echo 'The value is $(2 * 3)' 將列印 The value is $(2 * 3)。
應使用弱字串引用。例如,這在 Windows cmd、bash 和 PowerShell 中使用 "。弱引用在引用的字串內仍執行某些型別的評估。在 PowerShell 中,echo "The value is $(2 * 3)" 將列印 The value is 6。
ShellQuotingOptions
shell 引用選項。
屬性
escape?: string | {charsToEscape: string, escapeChar: string}
用於字元轉義的字元。如果提供字串,則僅轉義空格。如果提供 { escapeChar, charsToEscape } 字面量,則使用 escapeChar 轉義 charsToEscape 中的所有字元。
用於強引用的字元。字串長度必須為 1。
用於弱引用的字元。字串長度必須為 1。
SignatureHelp
Signature help 代表可呼叫項的簽名。可以有多個簽名,但只有一個是活動的,並且只有一個引數是活動的。
建構函式
new SignatureHelp(): SignatureHelp
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| SignatureHelp |
屬性
活動簽名的活動引數。
活動簽名。
signatures: SignatureInformation[]
一個或多個簽名。
SignatureHelpContext
有關 SignatureHelpProvider 觸發上下文的其他資訊。
屬性
activeSignatureHelp: SignatureHelp
當前活動的 SignatureHelp。
activeSignatureHelp 的 activeSignature 欄位會根據使用者在可用簽名之間移動游標而更新。
如果簽名幫助已顯示,則為 true。
重新觸發發生在簽名幫助已啟用時,可能由鍵入觸發字元、游標移動或文件內容更改等操作引起。
導致簽名幫助觸發的字元。
當簽名幫助不是由鍵入觸發時(例如,手動呼叫簽名幫助或移動游標時),此值為 undefined。
triggerKind: SignatureHelpTriggerKind
導致簽名幫助觸發的操作。
SignatureHelpProvider
簽名幫助提供程式介面定義了擴充套件與 引數提示 功能之間的合同。
方法
provideSignatureHelp(document: TextDocument, position: Position, token: CancellationToken, context: SignatureHelpContext): ProviderResult<SignatureHelp>
為給定位置和文件的簽名提供幫助。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| position: Position | 呼叫命令的位置。 |
| token: CancellationToken | 取消令牌。 |
| context: SignatureHelpContext | 有關如何觸發簽名幫助的資訊。 |
| 返回值 | 描述 |
| ProviderResult<SignatureHelp> | 簽名幫助或可解析為簽名的 thenable。可以透過返回 |
SignatureHelpProviderMetadata
有關已註冊的 SignatureHelpProvider 的元資料。
屬性
retriggerCharacters: readonly string[]
重新觸發簽名幫助的字元列表。
這些觸發字元僅在簽名幫助顯示時才啟用。所有觸發字元也算作重新觸發字元。
triggerCharacters: readonly string[]
觸發簽名幫助的字元列表。
SignatureHelpTriggerKind
如何觸發 SignatureHelpProvider。
列舉成員
簽名幫助由使用者或命令手動呼叫。
由觸發字元觸發的簽名幫助。
由游標移動或文件內容更改觸發的簽名幫助。
SignatureInformation
代表可呼叫項的簽名。簽名可以有一個標籤,如函式名、文件註釋以及一組引數。
建構函式
new SignatureInformation(label: string, documentation?: string | MarkdownString): SignatureInformation
建立一個新的簽名信息物件。
| 引數 | 描述 |
|---|---|
| label: string | 一個標籤字串。 |
| documentation?: string | MarkdownString | 文件字串。 |
| 返回值 | 描述 |
| SignatureInformation |
屬性
活動引數的索引。
如果提供,此引數將代替 SignatureHelp.activeParameter。
documentation?: string | MarkdownString
此簽名的可讀文件註釋。將在 UI 中顯示,但可以省略。
此簽名的標籤。將在 UI 中顯示。
parameters: ParameterInformation[]
此簽名的引數。
SnippetString
Snippet string 是一個模板,允許插入文字並控制插入時的編輯器游標。
Snippet 可以定義製表符和佔位符,如 $1、$2 和 ${3:foo}。$0 定義最終制表符,預設為 snippet 的末尾。變數使用 $name 和 ${name:default value} 定義。另請參閱 完整的 snippet 語法。
建構函式
new SnippetString(value?: string): SnippetString
建立新的 snippet 字串。
| 引數 | 描述 |
|---|---|
| value?: string | Snippet 字串。 |
| 返回值 | 描述 |
| SnippetString |
屬性
Snippet 字串。
方法
appendChoice(values: readonly string[], number?: number): SnippetString
構建函式,將選擇項(${1|a,b,c|})附加到此 snippet 字串的 value。
| 引數 | 描述 |
|---|---|
| values: readonly string[] | 選擇項的值——字串陣列 |
| number?: number | 此製表符的編號,預設為從 1 開始的自動遞增值。 |
| 返回值 | 描述 |
| SnippetString | 此 snippet 字串。 |
appendPlaceholder(value: string | (snippet: SnippetString) => any, number?: number): SnippetString
構建函式,將佔位符(${1:value})附加到此 snippet 字串的 value。
| 引數 | 描述 |
|---|---|
| value: string | (snippet: SnippetString) => any | 此佔位符的值——可以是字串,也可以是用於建立巢狀 snippet 的函式。 |
| number?: number | 此製表符的編號,預設為從 1 開始的自動遞增值。 |
| 返回值 | 描述 |
| SnippetString | 此 snippet 字串。 |
appendTabstop(number?: number): SnippetString
構建函式,將製表符($1、$2 等)附加到此 snippet 字串的 value。
| 引數 | 描述 |
|---|---|
| number?: number | 此製表符的編號,預設為從 1 開始的自動遞增值。 |
| 返回值 | 描述 |
| SnippetString | 此 snippet 字串。 |
appendText(string: string): SnippetString
構建函式,將給定字串附加到此 snippet 字串的 value。
| 引數 | 描述 |
|---|---|
| string: string | 要“按原樣”附加的值。字串將被轉義。 |
| 返回值 | 描述 |
| SnippetString | 此 snippet 字串。 |
appendVariable(name: string, defaultValue: string | (snippet: SnippetString) => any): SnippetString
構建函式,將變數(${VAR})附加到此 snippet 字串的 value。
| 引數 | 描述 |
|---|---|
| name: string | 變數的名稱——不包括 |
| defaultValue: string | (snippet: SnippetString) => any | 當變數名無法解析時使用的預設值——可以是字串,也可以是用於建立巢狀 snippet 的函式。 |
| 返回值 | 描述 |
| SnippetString | 此 snippet 字串。 |
SnippetTextEdit
Snippet edit 代表編輯器執行的互動式編輯。
注意,Snippet edit 始終可以作為常規 文字編輯 執行。當沒有開啟匹配的編輯器時,或者當 工作區編輯 包含多個檔案的 snippet 編輯時,就會發生這種情況。在這種情況下,只有與活動編輯器匹配的才會作為 snippet 編輯執行,而其他則作為常規文字編輯執行。
靜態
insert(position: Position, snippet: SnippetString): SnippetTextEdit
用於建立插入 snippet 編輯的實用函式。
| 引數 | 描述 |
|---|---|
| position: Position | 一個位置,將成為一個空範圍。 |
| snippet: SnippetString | Snippet 字串。 |
| 返回值 | 描述 |
| SnippetTextEdit | 一個新的 snippet 編輯物件。 |
replace(range: Range, snippet: SnippetString): SnippetTextEdit
用於建立替換 snippet 編輯的實用函式。
| 引數 | 描述 |
|---|---|
| range: Range | 範圍。 |
| snippet: SnippetString | Snippet 字串。 |
| 返回值 | 描述 |
| SnippetTextEdit | 一個新的 snippet 編輯物件。 |
建構函式
new SnippetTextEdit(range: Range, snippet: SnippetString): SnippetTextEdit
建立新的 snippet 編輯。
| 引數 | 描述 |
|---|---|
| range: Range | 範圍。 |
| snippet: SnippetString | Snippet 字串。 |
| 返回值 | 描述 |
| SnippetTextEdit |
屬性
是否應在保留現有空格的情況下應用 snippet 編輯。
range: Range
此編輯適用的範圍。
snippet: SnippetString
此編輯將執行的 snippet。
SourceBreakpoint
由原始碼位置指定的斷點。
建構函式
new SourceBreakpoint(location: Location, enabled?: boolean, condition?: string, hitCondition?: string, logMessage?: string): SourceBreakpoint
為原始碼位置建立新的斷點。
| 引數 | 描述 |
|---|---|
| location: Location | |
| enabled?: boolean | |
| condition?: string | |
| hitCondition?: string | |
| logMessage?: string | |
| 返回值 | 描述 |
| SourceBreakpoint |
屬性
條件斷點的可選表示式。
斷點是否已啟用。
可選表示式,用於控制忽略斷點多少次命中。
斷點的唯一 ID。
location: Location
此斷點的原始碼和行位置。
斷點命中時要記錄的可選訊息。{} 中的嵌入表示式由除錯介面卡進行插值。
SourceControl
Source control 能夠向編輯器提供 資源狀態,並以多種與原始碼控制相關的方式與編輯器進行互動。
屬性
acceptInputCommand?: Command
可選的接受輸入命令。
當用戶接受原始碼控制輸入中的值時,將呼叫此命令。
可選的提交模板字串。
原始碼控制檢視將使用此值填充原始碼控制輸入(在適當的情況下)。
此原始碼控制的 id。
inputBox: SourceControlInputBox
此原始碼控制的 輸入框。
此原始碼控制的可讀標籤。
quickDiffProvider?: QuickDiffProvider
可選的 快速 diff 提供程式。
rootUri: Uri
此原始碼控制根目錄的 (可選) Uri。
statusBarCommands?: Command[]
可選的狀態列命令。
這些命令將在編輯器的狀態列中顯示。
方法
createResourceGroup(id: string, label: string): SourceControlResourceGroup
建立一個新的 資源組。
| 引數 | 描述 |
|---|---|
| id: string | |
| label: string | |
| 返回值 | 描述 |
| SourceControlResourceGroup |
銷燬此原始碼控制。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
SourceControlInputBox
代表原始碼控制檢視中的輸入框。
屬性
控制輸入框是否啟用(預設為 true)。
在輸入框中顯示的佔位符字串,以指導使用者。
輸入框內容的設定器和獲取器。
控制輸入框是否可見(預設為 true)。
SourceControlResourceDecorations
原始碼控制資源狀態 的裝飾。可以獨立為亮色和暗色主題指定。
屬性
dark?: SourceControlResourceThemableDecorations
暗色主題的裝飾。
是否應在 UI 中淡化 原始碼控制資源狀態。
iconPath?: string | Uri | ThemeIcon
一個特定源控制資源狀態的圖示路徑。
light?: SourceControlResourceThemableDecorations
淺色主題的裝飾。
UI中是否應刪除源控制資源狀態的刪除線。
一個特定源控制資源狀態的標題。
SourceControlResourceGroup
源控制資源組是源控制資源狀態的集合。
屬性
資源組的上下文值。這可用於貢獻特定於資源組的操作。例如,如果一個資源組被賦予了exportable的上下文值,在使用menus擴充套件點向scm/resourceGroup/context貢獻操作時,您可以在when表示式中為scmResourceGroupState鍵指定上下文值,例如scmResourceGroupState == exportable。
"contributes": {
"menus": {
"scm/resourceGroup/context": [
{
"command": "extension.export",
"when": "scmResourceGroupState == exportable"
}
]
}
}
這將僅為上下文值為exportable的資源組顯示操作extension.export。
當此源控制資源組不包含任何源控制資源狀態時,是否隱藏它。
此源控制資源組的ID。
此源控制資源組的標籤。
resourceStates: SourceControlResourceState[]
此組的源控制資源狀態集合。
方法
釋放此源控制資源組。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
SourceControlResourceState
源控制資源狀態代表特定源控制組中工作區底層資源的狀態。
屬性
command?: Command
資源狀態在源控制檢視中開啟時應執行的命令。
資源狀態的上下文值。這可用於貢獻特定於資源的操作。例如,如果一個資源被賦予了diffable的上下文值。在使用menus擴充套件點向scm/resourceState/context貢獻操作時,您可以在when表示式中為scmResourceState鍵指定上下文值,例如scmResourceState == diffable。
"contributes": {
"menus": {
"scm/resourceState/context": [
{
"command": "extension.diff",
"when": "scmResourceState == diffable"
}
]
}
}
這將僅為上下文值為diffable的資源顯示操作extension.diff。
decorations?: SourceControlResourceDecorations
此源控制資源狀態的裝飾。
resourceUri: Uri
工作區內底層資源的URI。
SourceControlResourceThemableDecorations
一個源控制資源狀態的主題感知裝飾。
屬性
iconPath?: string | Uri | ThemeIcon
一個特定源控制資源狀態的圖示路徑。
StatementCoverage
包含單個語句或行的覆蓋資訊。
建構函式
new StatementCoverage(executed: number | boolean, location: Range | Position, branches?: BranchCoverage[]): StatementCoverage
| 引數 | 描述 |
|---|---|
| executed: number | boolean | 此語句執行的次數,或指示其是否已執行的布林值(如果確切計數未知)。如果為零或 false,則語句將被標記為未覆蓋。 |
| location: Range | Position | 語句位置。 |
| branches?: BranchCoverage[] | 此行分支的覆蓋率。如果不是條件語句,則應省略此項。 |
| 返回值 | 描述 |
| StatementCoverage |
屬性
branches: BranchCoverage[]
此行或語句分支的覆蓋率。如果不是條件語句,則此陣列將為空。
此語句執行的次數,或指示其是否已執行的布林值(如果確切計數未知)。如果為零或 false,則語句將被標記為未覆蓋。
語句位置。
StatusBarAlignment
表示狀態列項的對齊方式。
列舉成員
左對齊。
右對齊。
StatusBarItem
狀態列項是可以在點選時顯示文字和圖示並執行命令的狀態列貢獻。
屬性
accessibilityInformation: AccessibilityInformation
螢幕閱讀器與此狀態列項互動時使用的可訪問性資訊
alignment: StatusBarAlignment
此項的對齊方式。
backgroundColor: ThemeColor
此條目的背景色。
注意:僅支援以下顏色
new ThemeColor('statusBarItem.errorBackground')new ThemeColor('statusBarItem.warningBackground')
將來可能會支援更多背景顏色。
注意:當設定了背景色時,狀態列可能會覆蓋color選項,以確保該條目在所有主題中都可讀。
color: string | ThemeColor
此條目的前景色。
command: string | Command
此項的識別符號。
注意:如果window.createStatusBarItem方法未提供識別符號,則識別符號將與擴充套件識別符號匹配。
條目的名稱,例如“Python Language Indicator”、“Git Status”等。請儘量使名稱簡短,但要足夠描述性,以便使用者能理解狀態列項的用途。
此項的優先順序。值越高表示該項應顯示在越靠左的位置。
要顯示在條目中的文字。您可以透過利用以下語法來嵌入圖示:
我的文字 $(icon-name) 包含諸如 $(icon-name) 之類的圖示。
其中 icon-name 是從 ThemeIcon 圖示集 中獲取的,例如 light-bulb、thumbsup、zap 等。
tooltip: string | MarkdownString
滑鼠懸停在此條目上時顯示的工具提示文字。
方法
釋放並清理關聯的資源。呼叫hide。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
隱藏狀態列中的條目。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
在狀態列中顯示條目。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
SymbolInformation
代表有關變數、類、介面等程式設計構造的資訊。
建構函式
new SymbolInformation(name: string, kind: SymbolKind, containerName: string, location: Location): SymbolInformation
建立一個新的符號資訊物件。
| 引數 | 描述 |
|---|---|
| name: string | 符號的名稱。 |
| kind: SymbolKind | 符號的型別。 |
| containerName: string | 包含該符號的符號的名稱。 |
| location: Location | 符號的位置。 |
| 返回值 | 描述 |
| SymbolInformation |
new SymbolInformation(name: string, kind: SymbolKind, range: Range, uri?: Uri, containerName?: string): SymbolInformation
建立一個新的符號資訊物件。
- 已棄用 - 請使用接受Location物件的建構函式。
| 引數 | 描述 |
|---|---|
| name: string | 符號的名稱。 |
| kind: SymbolKind | 符號的型別。 |
| range: Range | 符號位置的範圍。 |
| uri?: Uri | 符號位置的資源,預設為當前文件。 |
| containerName?: string | 包含該符號的符號的名稱。 |
| 返回值 | 描述 |
| SymbolInformation |
屬性
包含此符號的符號的名稱。
kind: SymbolKind
此符號的型別。
location: Location
此符號的位置。
此符號的名稱。
tags?: readonly SymbolTag[]
此符號的標籤。
SymbolKind
符號種類。
列舉成員
File符號種類。
Module符號種類。
Namespace符號種類。
Package符號種類。
Class符號種類。
Method符號種類。
Property符號種類。
Field符號種類。
Constructor符號種類。
Enum符號種類。
Interface符號種類。
Function符號種類。
Variable符號種類。
Constant符號種類。
String符號種類。
Number符號種類。
Boolean符號種類。
Array符號種類。
Object符號種類。
Key符號種類。
Null符號種類。
EnumMember符號種類。
Struct符號種類。
Event符號種類。
Operator符號種類。
TypeParameter符號種類。
SymbolTag
符號標籤是用於微調符號渲染的額外註釋。
列舉成員
將符號渲染為過時的,通常使用刪除線。
SyntaxTokenType
常見語法標記型別的列舉。
列舉成員
除註釋、字串字面量和正則表示式中的標記之外的所有內容。
註釋。
字串字面量。
正則表示式。
Tab
代表選項卡組中的一個選項卡。選項卡僅僅是編輯器區域內的圖形表示。後端編輯器並非必需。
屬性
group: TabGroup
該選項卡所屬的組。
定義選項卡的結構,即文字、筆記本、自定義等。資源和其他有用屬性定義在選項卡型別上。
該選項卡當前是否為活動選項卡。這由其在組中是否被選中來決定。
該選項卡上是否顯示髒指示器。
該選項卡是否被固定(顯示圖釘圖示)。
該選項卡是否處於預覽模式。
顯示在選項卡上的文字。
TabChangeEvent
描述選項卡更改的事件。
屬性
changed: readonly Tab[]
已更改的選項卡,例如更改了其活動狀態。
closed: readonly Tab[]
已關閉的選項卡。
opened: readonly Tab[]
已開啟的選項卡。
TabGroup
表示一個選項卡組。選項卡組本身包含多個選項卡。
屬性
activeTab: Tab
tabs: readonly Tab[]
組中包含的選項卡列表。如果組中沒有開啟的選項卡,此列表可能為空。
viewColumn: ViewColumn
組的檢視列。
TabGroupChangeEvent
描述選項卡組更改的事件。
屬性
changed: readonly TabGroup[]
已更改的選項卡組,例如更改了其活動狀態。
closed: readonly TabGroup[]
已關閉的選項卡組。
opened: readonly TabGroup[]
已開啟的選項卡組。
TabGroups
代表主編輯器區域,它由包含選項卡的多個組組成。
事件
onDidChangeTabGroups: Event<TabGroupChangeEvent>
onDidChangeTabs: Event<TabChangeEvent>
屬性
activeTabGroup: TabGroup
當前活動的組。
all: readonly TabGroup[]
組容器內的所有組。
方法
close(tab: Tab | readonly Tab[], preserveFocus?: boolean): Thenable<boolean>
關閉選項卡。這將使選項卡物件失效,並且不應再使用該選項卡進行任何進一步的操作。注意:在選項卡是髒的情況下,將顯示一個確認對話方塊,該對話方塊可能會被取消。如果被取消,選項卡仍然有效。
close(tabGroup: TabGroup | readonly TabGroup[], preserveFocus?: boolean): Thenable<boolean>
關閉選項卡組。這將使選項卡組物件失效,並且不應再使用該選項卡組進行任何進一步的操作。
TabInputCustom
該選項卡代表一個自定義編輯器。
建構函式
new TabInputCustom(uri: Uri, viewType: string): TabInputCustom
構造一個自定義編輯器選項卡輸入。
| 引數 | 描述 |
|---|---|
| uri: Uri | 選項卡的 URI。 |
| viewType: string | 自定義編輯器的檢視型別。 |
| 返回值 | 描述 |
| TabInputCustom |
屬性
uri: Uri
該選項卡所代表的 URI。
自定義編輯器的型別。
TabInputNotebook
此選項卡表示一個筆記本。
建構函式
new TabInputNotebook(uri: Uri, notebookType: string): TabInputNotebook
構造一個用於筆記本的新選項卡輸入。
| 引數 | 描述 |
|---|---|
| uri: Uri | 筆記本的 URI。 |
| notebookType: string | 筆記本的型別。對映到 NotebookDocument 的 notebookType |
| 返回值 | 描述 |
| TabInputNotebook |
屬性
筆記本的型別。對映到 NotebookDocument 的 notebookType
uri: Uri
該選項卡所代表的 URI。
TabInputNotebookDiff
此選項卡表示處於差異配置中的兩個筆記本。
建構函式
new TabInputNotebookDiff(original: Uri, modified: Uri, notebookType: string): TabInputNotebookDiff
構造一個筆記本差異選項卡輸入。
| 引數 | 描述 |
|---|---|
| original: Uri | 原始未修改筆記本的 URI。 |
| modified: Uri | 已修改筆記本的 URI。 |
| notebookType: string | 筆記本的型別。對映到 NotebookDocument 的 notebookType |
| 返回值 | 描述 |
| TabInputNotebookDiff |
屬性
modified: Uri
已修改筆記本的 URI。
筆記本的型別。對映到 NotebookDocument 的 notebookType
original: Uri
原始筆記本的 URI。
TabInputTerminal
此選項卡表示編輯器區域中的一個終端。
建構函式
new TabInputTerminal(): TabInputTerminal
構造一個終端選項卡輸入。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| TabInputTerminal |
TabInputText
此選項卡表示一個單一的基於文字的資源。
建構函式
new TabInputText(uri: Uri): TabInputText
使用給定的 URI 構造一個文字選項卡輸入。
| 引數 | 描述 |
|---|---|
| uri: Uri | 選項卡的 URI。 |
| 返回值 | 描述 |
| TabInputText |
屬性
uri: Uri
選項卡表示的 URI。
TabInputTextDiff
此選項卡表示兩個文字資源,並以差異形式顯示。
建構函式
new TabInputTextDiff(original: Uri, modified: Uri): TabInputTextDiff
使用給定的 URI 構造一個新文字差異選項卡輸入。
| 引數 | 描述 |
|---|---|
| original: Uri | 原始文字資源的 URI。 |
| modified: Uri | 修改後的文字資源的 URI。 |
| 返回值 | 描述 |
| TabInputTextDiff |
屬性
modified: Uri
修改後的文字資源的 URI。
original: Uri
原始文字資源的 URI。
TabInputWebview
此選項卡表示一個 Webview。
建構函式
new TabInputWebview(viewType: string): TabInputWebview
使用給定的檢視型別構造一個 Webview 選項卡輸入。
| 引數 | 描述 |
|---|---|
| viewType: string | Webview 的型別。對映到 WebviewPanel 的 viewType |
| 返回值 | 描述 |
| TabInputWebview |
屬性
Webview 的型別。對映到 WebviewPanel 的 viewType
Task
要執行的任務
建構函式
new Task(taskDefinition: TaskDefinition, scope: WorkspaceFolder | Global | Workspace, name: string, source: string, execution?: ProcessExecution | ShellExecution | CustomExecution, problemMatchers?: string | string[]): Task
建立新任務。
| 引數 | 描述 |
|---|---|
| taskDefinition: TaskDefinition | 任務定義,如在 taskDefinitions 擴充套件點中定義的那樣。 |
| scope: WorkspaceFolder | Global | Workspace | 指定任務的範圍。它是全域性任務、工作區任務或特定工作區資料夾的任務。目前不支援全域性任務。 |
| name: string | 任務的名稱。顯示在使用者介面中。 |
| source: string | 任務的來源(例如,“gulp”,“npm”...)。顯示在使用者介面中。 |
| execution?: ProcessExecution | ShellExecution | CustomExecution | 程序或 Shell 執行。 |
| problemMatchers?: string | string[] | 要使用的問題匹配器的名稱,如 '$tsc' 或 '$eslint'。問題匹配器可以透過 `problemMatchers` 擴充套件點由擴充套件貢獻。 |
| 返回值 | 描述 |
| Task |
new Task(taskDefinition: TaskDefinition, name: string, source: string, execution?: ProcessExecution | ShellExecution, problemMatchers?: string | string[]): Task
建立新任務。
- 已棄用 - 請使用允許指定任務範圍的新建構函式。
| 引數 | 描述 |
|---|---|
| taskDefinition: TaskDefinition | 任務定義,如在 taskDefinitions 擴充套件點中定義的那樣。 |
| name: string | 任務的名稱。顯示在使用者介面中。 |
| source: string | 任務的來源(例如,“gulp”,“npm”...)。顯示在使用者介面中。 |
| execution?: ProcessExecution | ShellExecution | 程序或 Shell 執行。 |
| problemMatchers?: string | string[] | 要使用的問題匹配器的名稱,如 '$tsc' 或 '$eslint'。問題匹配器可以透過 `problemMatchers` 擴充套件點由擴充套件貢獻。 |
| 返回值 | 描述 |
| Task |
屬性
definition: TaskDefinition
任務的定義。
一個人類可讀的字串,在顯示任務名稱的地方以不太顯眼的方式顯示在單獨的行上。透過 $(<name>)-語法支援渲染 主題圖示。
execution?: ProcessExecution | ShellExecution | CustomExecution
任務的執行引擎
group?: TaskGroup
此任務所屬的任務組。請參閱 TaskGroup 以獲取可用組的預定義集。預設為 undefined,表示任務不屬於任何特殊組。
任務是否為後臺任務。
任務的名稱
presentationOptions: TaskPresentationOptions
顯示選項。預設為空字面量。
附加到任務的問題匹配器。預設為空陣列。
runOptions: RunOptions
任務的執行選項
scope: WorkspaceFolder | Global | Workspace
任務的範圍。
描述此 Shell 任務來源的可讀字串,例如“gulp”或“npm”。透過 $(<name>)-語法支援渲染 主題圖示。
TaskDefinition
定義系統中任務型別的結構。該值必須是 JSON 可序列化的。
屬性
任務定義,描述擴充套件提供的任務。通常,任務提供者定義更多屬性來標識任務。它們需要在擴充套件的 package.json 中 under 'taskDefinitions' 擴充套件點進行定義。例如,npm 任務定義如下:
interface NpmTaskDefinition extends TaskDefinition {
script: string;
}
請注意,以 '$' 開頭的型別識別符號保留供內部使用,擴充套件不應使用它們。
TaskEndEvent
一個事件,用於指示已執行任務的結束。
此介面不旨在實現。
屬性
execution: TaskExecution
表示已完成任務的任務項。
TaskExecution
表示已執行任務的物件。可用於終止任務。
此介面不旨在實現。
屬性
task: Task
已啟動的任務。
方法
終止任務執行。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
TaskFilter
任務過濾器按版本和型別來標識任務。
屬性
要返回的任務型別。
在 tasks.json 檔案中使用的任務版本。字串支援 package.json 的 semver 表示法。
TaskGroup
任務的 agrupamento。編輯器預設支援“Clean”、“Build”、“RebuildAll”和“Test”組。
靜態
Build: TaskGroup
構建任務組;
Clean: TaskGroup
清理任務組;
Rebuild: TaskGroup
重新構建所有任務組;
Test: TaskGroup
所有測試任務組;
建構函式
new TaskGroup(id: string, label: string): TaskGroup
私有建構函式
| 引數 | 描述 |
|---|---|
| id: string | 任務組的識別符號。 |
| label: string | 任務組的可讀名稱。 |
| 返回值 | 描述 |
| TaskGroup |
屬性
任務組的 ID。它是 TaskGroup.Clean.id、TaskGroup.Build.id、TaskGroup.Rebuild.id 或 TaskGroup.Test.id 之一。
屬於此組的任務是否是該組的預設任務。此屬性不能透過 API 設定,由使用者的任務配置控制。
TaskPanelKind
控制任務之間的任務通道如何使用。
列舉成員
與其他任務共享面板。這是預設設定。
為此任務使用專用面板。該面板不與其他任務共享。
每次執行此任務時建立一個新面板。
TaskPresentationOptions
控制任務在 UI 中如何顯示。
屬性
控制在執行任務之前是否清除終端。
控制在執行任務之後是否關閉終端。
控制是否在使用者介面中顯示與任務關聯的命令。
控制顯示任務輸出的面板是否獲得焦點。
panel?: TaskPanelKind
控制任務面板是僅用於此任務(專用)、在任務之間共享(共享)還是在每次執行任務時建立一個新面板(新)。預設為 TaskInstanceKind.Shared。
reveal?: TaskRevealKind
控制是否在使用者介面中顯示任務輸出。預設為 RevealKind.Always。
控制是否顯示“終端將被任務重用,按任意鍵關閉它”訊息。
TaskProcessEndEvent
一個事件,用於指示透過任務觸發的程序執行的結束。
屬性
execution: TaskExecution
啟動程序的任務執行。
程序的退出程式碼。當任務被終止時將為 undefined。
TaskProcessStartEvent
一個事件,用於指示透過任務觸發的程序執行的開始。
屬性
execution: TaskExecution
啟動程序的任務執行。
底層程序 ID。
TaskProvider<T>
任務提供者允許將任務新增到任務服務。任務提供者透過 tasks.registerTaskProvider 註冊。
方法
provideTasks(token: CancellationToken): ProviderResult<T[]>
提供任務。
| 引數 | 描述 |
|---|---|
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T[]> | 任務陣列 |
resolveTask(task: T, token: CancellationToken): ProviderResult<T>
解析一個沒有設定 execution 的任務。任務通常根據 `tasks.json` 檔案中的資訊建立。這些任務缺少如何執行它們的資訊,任務提供者必須在 `resolveTask` 方法中填充缺失的資訊。對於從上面的 `provideTasks` 方法返回的任務,將不會呼叫此方法,因為這些任務總是完全解析的。 `resolveTask` 方法的一個有效預設實現是返回 `undefined`。
請注意,在填充 task 的屬性時,您必須確保使用完全相同的 TaskDefinition,而不是建立新的。其他屬性可能會被更改。
| 引數 | 描述 |
|---|---|
| task: T | 要解析的任務。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T> | 已解析的任務 |
TaskRevealKind
控制終端可見性的行為。
列舉成員
如果執行任務,則始終將終端帶到前面。
僅當執行任務時檢測到問題時(例如,由於...無法啟動任務),才將終端帶到前面。
執行任務時,終端永遠不會出現在前面。
TaskScope
任務的範圍。
列舉成員
任務是全域性任務。目前不支援全域性任務。
任務是工作區任務
TaskStartEvent
一個事件,用於指示任務執行的開始。
此介面不旨在實現。
屬性
execution: TaskExecution
表示已啟動任務的任務項。
TelemetryLogger
一個遙測記錄器,擴充套件可以使用它來記錄使用情況和錯誤遙測。
一個包裝了 sender 的記錄器,但它保證
- 會遵守使用者停用或調整遙測的設定,並且
- 會移除潛在的敏感資料。
它還支援一個“回顯 UI”,可以打印發送的任何資料,並允許編輯器將未處理的錯誤轉發給相應的擴充套件。
要獲取 TelemetryLogger 的例項,請使用 createTelemetryLogger。
事件
onDidChangeEnableStates: Event<TelemetryLogger>
當使用情況或錯誤遙測的啟用狀態發生變化時觸發的 Event。
屬性
此記錄器是否啟用了錯誤遙測。
此記錄器是否啟用了使用情況遙測。
方法
釋放此物件並回收資源。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
logError(eventName: string, data?: Record<string, any>): void
記錄一個錯誤事件。
完成清理、遙測設定檢查和資料混合後,呼叫 TelemetrySender.sendEventData 來記錄事件。與 logUsage 不同,它會在遙測設定為 Error+ 時記錄事件。自動支援回顯到擴充套件遙測輸出通道。
| 引數 | 描述 |
|---|---|
| eventName: string | 要記錄的事件名稱 |
| data?: Record<string, any> | 要記錄的資料 |
| 返回值 | 描述 |
| void |
logError(error: Error, data?: Record<string, any>): void
記錄一個錯誤事件。
呼叫 TelemetrySender.sendErrorData。執行清理、遙測檢查和資料混合。自動支援回顯到擴充套件遙測輸出通道。還將自動記錄在擴充套件主機程序中丟擲的任何異常。
| 引數 | 描述 |
|---|---|
| error: Error | 已清理 PII 的錯誤物件(包含堆疊跟蹤) |
| data?: Record<string, any> | 與堆疊跟蹤一起記錄的其他資料 |
| 返回值 | 描述 |
| void |
logUsage(eventName: string, data?: Record<string, any>): void
記錄一個使用情況事件。
完成清理、遙測設定檢查和資料混合後,呼叫 TelemetrySender.sendEventData 來記錄事件。自動支援回顯到擴充套件遙測輸出通道。
| 引數 | 描述 |
|---|---|
| eventName: string | 要記錄的事件名稱 |
| data?: Record<string, any> | 要記錄的資料 |
| 返回值 | 描述 |
| void |
TelemetryLoggerOptions
建立 TelemetryLogger 的選項。
屬性
additionalCommonProperties?: Record<string, any>
應注入到 data 物件中的任何其他通用屬性。
ignoreBuiltInCommonProperties?: boolean
是否要避免將內建的通用屬性(如 os、副檔名等)注入到 data 物件中。如果未定義,則預設為 false。
ignoreUnhandledErrors?: boolean
由您的擴充套件引起的擴充套件主機上的未處理錯誤是否應記錄到您的傳送者。如果未定義,則預設為 false。
TelemetrySender
遙測傳送者是遙測記錄器與某些遙測服務之間的約定。請注意,擴充套件不得直接呼叫其傳送者的方法,因為記錄器提供了額外的保護和清理。
const sender: vscode.TelemetrySender = {...};
const logger = vscode.env.createTelemetryLogger(sender);
// GOOD - uses the logger
logger.logUsage('myEvent', { myData: 'myValue' });
// BAD - uses the sender directly: no data cleansing, ignores user settings, no echoing to the telemetry output channel etc
sender.logEvent('myEvent', { myData: 'myValue' });
方法
flush(): void | Thenable<void>
可選的重新整理函式,它將使此傳送者有機會在 TelemetryLogger 被處置時傳送任何剩餘事件。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void | Thenable<void> |
sendErrorData(error: Error, data?: Record<string, any>): void
用於傳送錯誤的功能。在 TelemetryLogger 中使用。
| 引數 | 描述 |
|---|---|
| error: Error | 正在記錄的錯誤 |
| data?: Record<string, any> | 隨異常收集的任何其他資料 |
| 返回值 | 描述 |
| void |
sendEventData(eventName: string, data?: Record<string, any>): void
用於傳送不帶堆疊跟蹤的事件資料的功能。在 TelemetryLogger 中使用。
| 引數 | 描述 |
|---|---|
| eventName: string | 您正在記錄的事件名稱 |
| data?: Record<string, any> | 正在記錄的可序列化鍵值對 |
| 返回值 | 描述 |
| void |
TelemetryTrustedValue<T>
一個特殊的包裝器,表示一個可以安全地不進行清理的值。當您可以保證值中不包含任何可識別資訊,並且清理操作會不正確地將其刪除時,應使用此包裝器。
建構函式
new TelemetryTrustedValue<T>(value: T): TelemetryTrustedValue<T>
建立一個新的遙測受信任值。
| 引數 | 描述 |
|---|---|
| value: T | 要信任的值 |
| 返回值 | 描述 |
| TelemetryTrustedValue<T> |
屬性
受信任不包含 PII 的值。
Terminal
整合終端中的單個終端例項。
屬性
creationOptions: Readonly<TerminalOptions | ExtensionTerminalOptions>
用於初始化終端的物件,例如,這對於檢測未由此擴充套件啟動的終端的 shell 型別或檢測 shell 啟動的資料夾很有用。
exitStatus: TerminalExitStatus
終端的退出狀態,在終端處於活動狀態時將未定義。
示例:當終端以非零退出程式碼退出時,顯示帶有退出程式碼的通知。
window.onDidCloseTerminal(t => {
if (t.exitStatus && t.exitStatus.code) {
vscode.window.showInformationMessage(`Exit code: ${t.exitStatus.code}`);
}
});
終端的名稱。
shell 程序的程序 ID。
shellIntegration: TerminalShellIntegration
包含終端的 shell 整合 驅動功能的物件的屬性。終端建立後,此屬性將始終為 undefined。偵聽 window.onDidChangeTerminalShellIntegration 以在終端的 shell 整合啟用時收到通知。
請注意,如果 shell 整合從未啟用,此物件可能仍然未定義。例如,命令提示符不支援 shell 整合,使用者的 shell 設定可能會與自動 shell 整合啟用衝突。
state: TerminalState
Terminal 的當前狀態。
方法
釋放並清理相關資源。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
如果終端面板當前顯示,則隱藏終端面板。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
sendText(text: string, shouldExecute?: boolean): void
向終端傳送文字。文字將被寫入終端的底層 pty 程序(shell)的標準輸入。
| 引數 | 描述 |
|---|---|
| text: string | 要傳送的文字。 |
| shouldExecute?: boolean | 指示傳送的文字應被執行,而不僅僅是插入到終端中。新增的字元是 |
| 返回值 | 描述 |
| void |
show(preserveFocus?: boolean): void
顯示終端面板並將此終端顯示在 UI 中。
| 引數 | 描述 |
|---|---|
| preserveFocus?: boolean | 當 |
| 返回值 | 描述 |
| void |
TerminalDimensions
表示終端的尺寸。
屬性
終端的列數。
終端的行數。
TerminalEditorLocationOptions
假定 TerminalLocation 為 editor,並允許指定 ViewColumn 和 preserveFocus 屬性。
屬性
一個可選標誌,當 true 時,將阻止 Terminal 獲得焦點。
viewColumn: ViewColumn
應在編輯器區域顯示 terminal 的檢視列。預設值為 active。不存在的列將按需建立,最多為 ViewColumn.Nine。使用 ViewColumn.Beside 在當前活動編輯器旁邊開啟編輯器。
TerminalExitReason
終端退出原因型別。
列舉成員
未知原因。
視窗關閉/重新載入。
shell 程序已退出。
使用者關閉了終端。
某個擴充套件已釋放終端。
TerminalExitStatus
表示終端如何退出。
屬性
終端退出的退出程式碼,它可以具有以下值
- 零:終端程序或自定義執行成功。
- 非零:終端程序或自定義執行失敗。
undefined:使用者強制關閉了終端,或者自定義執行在未提供退出程式碼的情況下退出。
reason: TerminalExitReason
觸發終端退出的原因。
TerminalLink
終端行上的連結。
建構函式
new TerminalLink(startIndex: number, length: number, tooltip?: string): TerminalLink
建立一個新的終端連結。
| 引數 | 描述 |
|---|---|
| startIndex: number | 連結在 TerminalLinkContext.line 上的起始索引。 |
| length: number | 連結在 TerminalLinkContext.line 上的長度。 |
| tooltip?: string | 滑鼠懸停在此連結上時顯示的工具提示文字。 如果提供了工具提示,它將顯示在包含觸發連結說明的字串中,例如 |
| 返回值 | 描述 |
| TerminalLink |
屬性
連結在 TerminalLinkContext.line 上的長度。
連結在 TerminalLinkContext.line 上的起始索引。
滑鼠懸停在此連結上時顯示的工具提示文字。
如果提供了工具提示,它將顯示在包含觸發連結說明的字串中,例如 {0} (ctrl + click)。具體說明因作業系統、使用者設定和本地化而異。
TerminalLinkContext
提供終端行上的資訊,以便為其提供連結。
屬性
這是終端中未包裝行的文字。
terminal: Terminal
連結所屬的終端。
TerminalLinkProvider<T>
一個提供程式,用於檢測和處理終端中的連結。
方法
handleTerminalLink(link: T): ProviderResult<void>
處理已啟用的終端連結。
| 引數 | 描述 |
|---|---|
| link: T | 要處理的連結。 |
| 返回值 | 描述 |
| ProviderResult<void> |
provideTerminalLinks(context: TerminalLinkContext, token: CancellationToken): ProviderResult<T[]>
為給定上下文提供終端連結。請注意,即使在之前的呼叫解析之前,此函式也可能被多次呼叫,請確保不要共享可能在非同步使用重疊時出現問題的全域性物件(例如 RegExp)。
| 引數 | 描述 |
|---|---|
| context: TerminalLinkContext | 有關要提供連結的資訊。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T[]> | 給定行的終端連結列表。 |
TerminalLocation
終端的位置。
列舉成員
在終端檢視中
在編輯器區域中
TerminalOptions
描述終端應使用哪些選項的值物件。
屬性
color?: ThemeColor
終端的圖示 ThemeColor。建議使用 terminal.ansi* 主題鍵,以在不同主題之間獲得最佳對比度和一致性。
cwd?: string | Uri
要用於終端的當前工作目錄的路徑或 URI。
將新增到編輯器程序的環境變數物件。
啟用後,終端將按正常方式執行程序,但除非呼叫 Terminal.show,否則不會向用戶顯示。這通常用於需要互動但只想在需要互動時才告知使用者的情況。請注意,終端仍將像往常一樣向所有擴充套件公開。隱藏的終端在工作區下次開啟時不會恢復。
iconPath?: IconPath
終端的圖示路徑或 ThemeIcon。
選擇退出在重啟和過載時自動持久化終端。只有當 terminal.integrated.enablePersistentSessions 啟用時,此選項才生效。
location?: TerminalEditorLocationOptions | TerminalSplitLocationOptions | TerminalLocation
首次啟動時要寫入終端的訊息,請注意,此訊息不會發送到程序,而是直接寫入終端。它支援轉義序列,例如設定文字樣式。
一個人類可讀的字串,將用於在 UI 中表示終端。
自定義 shell 可執行檔案的引數。在 Windows 上可以使用字串,它允許在 命令列格式 中指定 shell 引數。
shellIntegrationNonce?: string
用於驗證 shell 整合序列是否來自可信源的 nonce。UX 的一個示例影響是,如果命令列報告了一個 nonce,它將無需與使用者確認命令列是否正確即可透過 shell 整合命令裝飾 重新執行它。
如果終端包含 自定義 shell 整合支援,則應使用此項。它應設定為一個隨機 GUID,然後該 GUID 將設定 VSCODE_NONCE 環境變數。在 shell 中,應將其從環境變數中移除,以防止其被通用訪問。完成此操作後,可以將其傳遞到相關序列中以使其受信任。
要用在終端中的自定義 shell 可執行檔案的路徑。
終端程序環境是否應與 TerminalOptions.env 中提供的完全一致。當此值為 false(預設值)時,環境將基於視窗的環境,並應用配置的平臺設定,如 terminal.integrated.env.windows。當此值為 true 時,必須提供完整的環境,因為不會從程序或任何配置繼承任何內容。
TerminalProfile
終端配置檔案定義了終端將如何啟動。
建構函式
new TerminalProfile(options: TerminalOptions | ExtensionTerminalOptions): TerminalProfile
建立一個新的終端配置檔案。
| 引數 | 描述 |
|---|---|
| options: TerminalOptions | ExtensionTerminalOptions | 終端將使用此選項啟動。 |
| 返回值 | 描述 |
| TerminalProfile |
屬性
options: TerminalOptions | ExtensionTerminalOptions
終端將使用此選項啟動。
TerminalProfileProvider
為透過 UI 或命令啟動的貢獻終端配置檔案提供一個終端配置檔案。
方法
provideTerminalProfile(token: CancellationToken): ProviderResult<TerminalProfile>
提供終端配置檔案。
| 引數 | 描述 |
|---|---|
| token: CancellationToken | 一個取消令牌,指示結果不再需要。 |
| 返回值 | 描述 |
| ProviderResult<TerminalProfile> | 終端配置檔案。 |
TerminalShellExecution
在終端中執行的命令。
屬性
commandLine: TerminalShellExecutionCommandLine
執行的命令列。此值的 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');
}
cwd: Uri
shell 在命令執行時報告的工作目錄。此 Uri 可能表示另一臺機器上的檔案(例如,ssh 到另一臺機器)。這需要 shell 整合支援工作目錄報告。
方法
建立寫入終端的原始資料流(包括轉義序列)。這僅包括在首次呼叫 read 後寫入的資料,也就是說,您必須在透過 TerminalShellIntegration.executeCommand 或 window.onDidStartTerminalShellExecution 執行命令後立即呼叫 read,以避免丟失任何資料。
示例
// Log all data written to the terminal for a command
const command = term.shellIntegration.executeCommand({ commandLine: 'echo "Hello world"' });
const stream = command.read();
for await (const data of stream) {
console.log(data);
}
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| AsyncIterable<string> |
TerminalShellExecutionCommandLine
在終端中執行的命令列。
屬性
confidence: TerminalShellExecutionCommandLineConfidence
命令列值的置信度,由值的獲取方式決定。這取決於 shell 整合指令碼的實現。
命令列值是否來自可信來源,因此可以安全地執行而無需使用者額外確認,例如請求“您要執行(命令)嗎?”的通知。只有當您要再次執行該命令時,才可能需要此驗證。
僅當命令列由 shell 整合指令碼明確報告(即 高置信度)並且使用了 nonce 進行驗證時,此值為 true。
執行的完整命令列,包括命令及其引數。
TerminalShellExecutionCommandLineConfidence
列舉成員
命令列值的置信度低。這意味著該值是從終端緩衝區中讀取的,使用了 shell 整合指令碼報告的標記。此外,將滿足以下條件之一:
- 命令從最左邊的列開始,這是不尋常的,或者
- 命令是多行的,由於行繼續字元和右提示符,因此更難準確檢測。
- 命令列標記未被 shell 整合指令碼報告。
命令列值的置信度中等。這意味著該值是從終端緩衝區中讀取的,使用了 shell 整合指令碼報告的標記。命令是單行的,並且不從最左邊的列開始(這是不尋常的)。
命令列值的置信度高。這意味著該值是從 shell 整合指令碼顯式傳送的,或者命令是透過 TerminalShellIntegration.executeCommand API 執行的。
TerminalShellExecutionEndEvent
一個訊號,表示終端中的執行已結束。
屬性
execution: TerminalShellExecution
已結束的終端 shell 執行。
shell 報告的退出程式碼。
當此值為 undefined 時,可能意味著多種情況:
- shell 未報告退出程式碼(即 shell 整合指令碼行為異常)
- shell 報告的命令在命令完成之前開始(例如,打開了子 shell)。
- 使用者透過 ctrl+c 取消了命令。
- 使用者在沒有輸入時按下了 Enter 鍵。
通常不應發生這種情況。根據用例,最好將其視為失敗。
示例
const execution = shellIntegration.executeCommand({
command: 'echo',
args: ['Hello world']
});
window.onDidEndTerminalShellExecution(event => {
if (event.execution === execution) {
if (event.exitCode === undefined) {
console.log('Command finished but exit code is unknown');
} else if (event.exitCode === 0) {
console.log('Command succeeded');
} else {
console.log('Command failed');
}
}
});
shellIntegration: TerminalShellIntegration
shell 整合物件。
terminal: Terminal
已啟用 shell 整合的終端。
TerminalShellExecutionStartEvent
一個訊號,表示終端中的執行已開始。
屬性
execution: TerminalShellExecution
已結束的終端 shell 執行。
shellIntegration: TerminalShellIntegration
shell 整合物件。
terminal: Terminal
已啟用 shell 整合的終端。
TerminalShellIntegration
Shell 整合驅動的功能,由終端擁有。
屬性
cwd: Uri
終端的當前工作目錄。此 Uri 可能表示另一臺機器上的檔案(例如,ssh 到另一臺機器)。這需要 shell 整合支援工作目錄報告。
方法
executeCommand(commandLine: string): TerminalShellExecution
執行命令,必要時傳送 ^C 以中斷任何正在執行的命令。
- 丟擲 - 在不支援此 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 |
executeCommand(executable: string, args: string[]): TerminalShellExecution
執行命令,必要時傳送 ^C 以中斷任何正在執行的命令。
注意:這不保證有效,因為 shell 整合 必須已啟用。檢查 TerminalShellExecution.exitCode 是否被拒絕,以驗證其是否成功。
示例
// Execute a command in a terminal immediately after being created
const myTerm = window.createTerminal();
window.onDidChangeTerminalShellIntegration(async ({ terminal, shellIntegration }) => {
if (terminal === myTerm) {
const command = shellIntegration.executeCommand({
command: 'echo',
args: ['Hello world']
});
const code = await command.exitCode;
console.log(`Command exited with code ${code}`);
}
}));
// Fallback to sendText if there is no shell integration within 3 seconds of launching
setTimeout(() => {
if (!myTerm.shellIntegration) {
myTerm.sendText('echo "Hello world"');
// Without shell integration, we can't know when the command has finished or what the
// exit code was.
}
}, 3000);
示例
// Send command to terminal that has been alive for a while
const commandLine = 'echo "Hello world"';
if (term.shellIntegration) {
const command = term.shellIntegration.executeCommand({
command: 'echo',
args: ['Hello world']
});
const code = await command.exitCode;
console.log(`Command exited with code ${code}`);
} else {
term.sendText(commandLine);
// Without shell integration, we can't know when the command has finished or what the
// exit code was.
}
| 引數 | 描述 |
|---|---|
| executable: string | 要執行的命令。 |
| args: string[] | 啟動可執行檔案的引數。引數將被轉義,以便當引數同時包含空格且不包含任何單引號、雙引號或反引號字元時,它們被解釋為單個引數。 請注意,此轉義並非旨在作為安全措施,在將不受信任的資料傳遞給此 API 時要小心,因為諸如 |
| 返回值 | 描述 |
| TerminalShellExecution |
TerminalShellIntegrationChangeEvent
一個訊號,表示終端的 shell 整合已更改。
屬性
shellIntegration: TerminalShellIntegration
shell 整合物件。
terminal: Terminal
已啟用 shell 整合的終端。
TerminalSplitLocationOptions
使用父 Terminal 的位置作為此終端的位置。
屬性
parentTerminal: Terminal
要在此終端旁邊拆分的父終端。無論父終端是在面板還是編輯器區域中,這都可以工作。
TerminalState
表示 Terminal 的狀態。
屬性
該 Terminal 是否已互動過。互動意味著終端已將資料傳送到程序,具體取決於終端的模式。預設情況下,當按下鍵或命令或擴充套件傳送文字時會發送輸入,但根據終端的模式,它也可能在以下情況下發生:
- 一個指標點選事件
- 一個指標滾動事件
- 一個指標移動事件
- 終端焦點進入/退出
有關可傳送資料的事件的更多資訊,請參閱 https://invisible-island.net/xterm/ctlseqs/ctlseqs.html 上的“DEC 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 必須是全域性唯一的。
items: TestItemCollection
一個“頂層” TestItem 例項的集合,這些例項本身可以有自己的 children 來形成“測試樹”。
擴充套件控制何時新增測試。例如,擴充套件程式應在 workspace.onDidOpenTextDocument 觸發時為檔案新增測試,以便檔案內的測試裝飾可見。
但是,編輯器有時可能會透過 resolveHandler 顯式請求子項。有關更多詳細資訊,請參閱該方法的文件。
測試控制器的可讀標籤。
refreshHandler: (token: CancellationToken) => void | Thenable<void>
如果存在此方法,UI 中將出現一個重新整理按鈕,點選該按鈕時將呼叫此方法。呼叫時,擴充套件程式應掃描工作區以查詢任何新新增、已更改或已刪除的測試。
建議擴充套件程式嘗試使用 FileSystemWatcher 等即時更新測試,並將此方法作為備用。
| 引數 | 描述 |
|---|---|
| token: CancellationToken | |
| 返回值 | 描述 |
| void | Thenable<void> | 一個在測試重新整理完成後解析的 thenable。 |
resolveHandler?: (item: TestItem) => void | Thenable<void>
當 TestItem.canResolveChildren 為 true 時,編輯器可能會呼叫此函式來請求測試項的子項。呼叫時,應發現子項,並在發現子項時呼叫 TestController.createTestItem。
通常,擴充套件程式會管理測試項的生命週期,但在某些情況下,編輯器可能會請求載入特定項的子項。例如,如果使用者在重新載入編輯器後請求重新執行測試,編輯器可能需要呼叫此方法來解析先前執行的測試。
在函式返回或返回的 thenable 解析之前,資源管理器中的項將自動標記為“忙碌”。
方法
createRunProfile(label: string, kind: TestRunProfileKind, runHandler: (request: TestRunRequest, token: CancellationToken) => void | Thenable<void>, isDefault?: boolean, tag?: TestTag, supportsContinuousRun?: boolean): TestRunProfile
建立一個用於執行測試的配置檔案。擴充套件程式必須至少建立一個配置檔案,才能執行測試。
| 引數 | 描述 |
|---|---|
| label: string | 此配置檔案的可讀標籤。 |
| kind: TestRunProfileKind | 配置此配置檔案管理哪種型別的執行。 |
| runHandler: (request: TestRunRequest, token: CancellationToken) => void | Thenable<void> | 呼叫以啟動測試執行的函式。 |
| isDefault?: boolean | 此是否是其型別的預設操作。 |
| tag?: TestTag | 配置檔案測試標籤。 |
| supportsContinuousRun?: boolean | 此配置檔案是否支援連續執行。 |
| 返回值 | 描述 |
| TestRunProfile | 一個 TestRunProfile 的例項,它會自動與此控制器關聯。 |
createTestItem(id: string, label: string, uri?: Uri): TestItem
建立一個新的託管 TestItem 例項。它可以新增到現有項的 TestItem.children 中,或者新增到 TestController.items 中。
| 引數 | 描述 |
|---|---|
| id: string | TestItem 的識別符號。TestItem 的 ID 在其新增到的 TestItemCollection 中必須是唯一的。 |
| label: string | TestItem 的可讀標籤。 |
| uri?: Uri | 此 TestItem 關聯的 URI。可以是檔案或目錄。 |
| 返回值 | 描述 |
| TestItem |
createTestRun(request: TestRunRequest, name?: string, persist?: boolean): TestRun
建立一個 TestRun。當請求執行測試時,應由 TestRunProfile 呼叫此方法,如果外部檢測到測試執行,也可能呼叫此方法。建立後,包含在請求中的測試將被移至排隊狀態。
使用同一 request 例項建立的所有執行將分組在一起。這在例如,在多個平臺上運行同一套測試時很有用。
| 引數 | 描述 |
|---|---|
| request: TestRunRequest | 測試執行請求。只能修改 |
| name?: string | 執行的可讀名稱。這可用於區分測試執行中的多個結果集。例如,在跨多個平臺執行測試時很有用。 |
| persist?: boolean | 由執行建立的結果是否應在編輯器中持久化。如果結果來自已外部儲存的檔案(例如,覆蓋率資訊檔案),則此項可以為 false。 |
| 返回值 | 描述 |
| TestRun | 一個 TestRun 的例項。從呼叫此方法的那一刻起,它將被視為“正在執行”,直到呼叫 TestRun.end 為止。 |
登出測試控制器,釋放其關聯的測試和未持久化的結果。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
invalidateTestResults(items?: TestItem | readonly TestItem[]): void
將項的結果標記為已過時。當代碼或配置更改且先前結果不再被視為相關時,通常會呼叫此方法。用於將結果標記為過時相同的邏輯可用於驅動 連續測試執行。
如果將項傳遞給此方法,則該項及其所有子項的測試結果將被標記為過時。如果未傳遞任何項,則控制器擁有的所有測試都將被標記為過時。
在此方法呼叫時刻之前開始的任何測試執行,包括可能仍在進行的執行,都將被標記為過時並在編輯器的 UI 中降低優先順序。
TestCoverageCount
包含有關已覆蓋資源的資訊的類。可以為檔案中的行、分支和宣告提供計數。
建構函式
new TestCoverageCount(covered: number, total: number): TestCoverageCount
| 引數 | 描述 |
|---|---|
| covered: number | |
| total: number | |
| 返回值 | 描述 |
| TestCoverageCount |
屬性
檔案中覆蓋的項數。
檔案中覆蓋的總項數。
TestItem
“測試資源管理器”檢視中顯示的項。
TestItem 可以代表測試套件或測試本身,因為它們都具有類似的功能。
屬性
控制項在測試資源管理器檢視中是否顯示為“忙碌”。這在發現子項時顯示狀態很有用。
預設為 false。
指示此測試項是否可以透過解析來發現子項。
如果為 true,則此項在測試資源管理器檢視中顯示為可展開,展開該項將導致使用該項呼叫 TestController.resolveHandler。
預設為 false。
children: TestItemCollection
此測試項的子項。對於測試套件,這可能包含單個測試用例或巢狀套件。
可選描述,顯示在標籤旁邊。
error: string | MarkdownString
載入測試時遇到的可選錯誤。
請注意,這不是測試結果,僅用於表示測試發現中的錯誤,例如語法錯誤。
TestItem 的識別符號。這用於將文件中的測試結果和測試與工作區(測試資源管理器)中的測試進行關聯。此 ID 在 TestItem 的生命週期內不能更改,並且在其父項的直接子項中必須是唯一的。
描述測試用例的顯示名稱。
parent: TestItem
此項的父項。它會自動設定,對於 TestController.items 中的頂層項以及尚未包含在其他項的 children 中的項,它將為 undefined。
range: Range
測試項在其 uri 中的位置。
僅當 uri 指向檔案時,此項才有意義。
在與此項進行比較時應使用的字串。當為 falsy 時,使用 label。
tags: readonly TestTag[]
與此測試項關聯的標籤。可以與 tags 結合使用,或者僅作為組織功能。
uri: Uri
此 TestItem 關聯的 URI。可以是檔案或目錄。
TestItemCollection
測試項的集合,位於 TestItem.children 和 TestController.items 中。
屬性
獲取集合中項的數量。
方法
add(item: TestItem): void
將測試項新增到子項中。如果已存在 ID 相同的項,將被替換。
| 引數 | 描述 |
|---|---|
| item: TestItem | 要新增的項。 |
| 返回值 | 描述 |
| void |
從集合中刪除單個測試項。
| 引數 | 描述 |
|---|---|
| itemId: string | 要刪除的項 ID。 |
| 返回值 | 描述 |
| void |
forEach(callback: (item: TestItem, collection: TestItemCollection) => unknown, thisArg?: any): void
迭代此集合中的每個條目。
| 引數 | 描述 |
|---|---|
| callback: (item: TestItem, collection: TestItemCollection) => unknown | 為每個條目執行的函式。 |
| thisArg?: any | 呼叫處理函式時使用的 |
| 返回值 | 描述 |
| void |
get(itemId: string): TestItem
如果項存在,則高效地按 ID 獲取子項中的測試項。
| 引數 | 描述 |
|---|---|
| itemId: string | 要獲取的項 ID。 |
| 返回值 | 描述 |
| TestItem | 找到的項,如果不存在則為 undefined。 |
replace(items: readonly TestItem[]): void
替換集合中儲存的項。
| 引數 | 描述 |
|---|---|
| items: readonly TestItem[] | 要儲存的項。 |
| 返回值 | 描述 |
| void |
TestMessage
與測試狀態關聯的訊息。可以連結到特定的源範圍 — 例如,對於斷言失敗很有用。
靜態
diff(message: string | MarkdownString, expected: string, actual: string): TestMessage
建立一個新的 TestMessage,它將在編輯器中顯示為 diff。
| 引數 | 描述 |
|---|---|
| message: string | MarkdownString | 要顯示給使用者aneous的訊息。 |
| expected: string | 預期輸出。 |
| actual: string | 實際輸出。 |
| 返回值 | 描述 |
| TestMessage |
建構函式
new TestMessage(message: string | MarkdownString): 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呼叫命令
test: 訊息關聯的 TestItem,*如果*它仍然存在於 TestController.items 集合中。message: TestMessage 例項。
預期測試輸出。如果與 actualOutput 一起提供,將顯示 diff 檢視。
location?: Location
關聯的檔案位置。
message: string | MarkdownString
要顯示的文字訊息。
stackTrace?: TestMessageStackFrame[]
與訊息或失敗關聯的堆疊跟蹤。
TestMessageStackFrame
在 TestMessage.stackTrace 中找到的堆疊幀。
建構函式
new TestMessageStackFrame(label: string, uri?: Uri, position?: Position): TestMessageStackFrame
| 引數 | 描述 |
|---|---|
| label: string | 堆疊幀的名稱 |
| uri?: Uri | |
| position?: Position | 堆疊幀在檔案中的位置 |
| 返回值 | 描述 |
| TestMessageStackFrame |
屬性
堆疊幀的名稱,通常是方法或函式名稱。
position?: Position
堆疊幀在檔案中的位置。
uri?: Uri
此堆疊幀的位置。如果編輯器可以訪問呼叫幀的位置,則應將其提供為 URI。
TestRun
TestRun 代表一個正在進行或已完成的測試執行,並提供方法來報告執行中各個測試的狀態。
事件
onDidDispose: Event<void>
當編輯器不再對與測試執行相關的資料感興趣時觸發的事件。
屬性
測試執行是否會在編輯器重新載入後持久化。
執行的可讀名稱。這可用於區分測試執行中的多個結果集。例如,在跨多個平臺執行測試時很有用。
token: CancellationToken
取消令牌,當測試執行從 UI 中取消時將被觸發。
方法
addCoverage(fileCoverage: FileCoverage): void
為執行中的檔案新增覆蓋率。
| 引數 | 描述 |
|---|---|
| fileCoverage: FileCoverage | |
| 返回值 | 描述 |
| void |
appendOutput(output: string, location?: Location, test?: TestItem): void
附加來自測試執行程式的原始輸出。應使用者請求,輸出將在終端中顯示。ANSI 轉義序列(如顏色和文字樣式)受支援。必須將新行提供為 CRLF (\r\n),而不是 LF (\n)。
表示測試執行結束。執行中所有狀態未更新的測試的狀態將被重置。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
enqueued(test: TestItem): void
指示測試已排隊等待稍後執行。
| 引數 | 描述 |
|---|---|
| test: TestItem | 要更新的測試項。 |
| 返回值 | 描述 |
| void |
errored(test: TestItem, message: TestMessage | readonly TestMessage[], duration?: number): void
指示測試已出錯。您應傳遞一個或多個 TestMessages 來描述失敗。這與“失敗”狀態不同,因為它表示測試根本無法執行,例如由於編譯錯誤。
| 引數 | 描述 |
|---|---|
| test: TestItem | 要更新的測試項。 |
| message: TestMessage | readonly TestMessage[] | 與測試失敗相關的訊息。 |
| duration?: number | 測試執行花費的時間(以毫秒為單位)。 |
| 返回值 | 描述 |
| void |
failed(test: TestItem, message: TestMessage | readonly TestMessage[], duration?: number): void
指示測試已失敗。您應傳遞一個或多個 TestMessages 來描述失敗。
| 引數 | 描述 |
|---|---|
| test: TestItem | 要更新的測試項。 |
| message: TestMessage | readonly TestMessage[] | 與測試失敗相關的訊息。 |
| duration?: number | 測試執行花費的時間(以毫秒為單位)。 |
| 返回值 | 描述 |
| void |
passed(test: TestItem, duration?: number): void
指示測試已透過。
| 引數 | 描述 |
|---|---|
| test: TestItem | 要更新的測試項。 |
| duration?: number | 測試執行花費的時間(以毫秒為單位)。 |
| 返回值 | 描述 |
| void |
skipped(test: TestItem): void
指示測試已被跳過。
| 引數 | 描述 |
|---|---|
| test: TestItem | 要更新的測試項。 |
| 返回值 | 描述 |
| void |
started(test: TestItem): void
指示測試已開始執行。
| 引數 | 描述 |
|---|---|
| test: TestItem | 要更新的測試項。 |
| 返回值 | 描述 |
| void |
TestRunProfile
TestRunProfile 描述了在 TestController 中執行測試的一種方式。
事件
onDidChangeDefault: Event<boolean>
當用戶更改此項是否為預設配置檔案時觸發。該事件包含 isDefault 的新值。
屬性
如果存在此方法,則 UI 中將出現一個配置齒輪,並且在單擊該齒輪時將呼叫此方法。呼叫時,您可以執行其他編輯器操作,例如顯示快速選擇或開啟配置檔案。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
控制此配置檔案是否是在操作其種類時將執行的預設操作。例如,如果使用者單擊通用的“執行所有”按鈕,則將執行 TestRunProfileKind.Run 的預設配置檔案,儘管使用者可以配置此項。
使用者對其預設配置檔案的更改將在 onDidChangeDefault 事件後反映在此屬性中。
kind: TestRunProfileKind
配置此配置檔案控制的執行種類。如果某種型別的配置檔案不存在,則該型別在 UI 中將不可用。
在 UI 中向用戶顯示的標籤。
請注意,當用戶請求以某種方式重新執行測試時,標籤具有一定意義。例如,如果測試正常執行,使用者請求以除錯模式重新執行它們,編輯器將嘗試使用具有與 Debug 種類相同標籤的配置。如果沒有這樣的配置,則會使用預設配置。
loadDetailedCoverage?: (testRun: TestRun, fileCoverage: FileCoverage, token: CancellationToken) => Thenable<FileCoverageDetail[]>
擴充套件提供的函式,用於提供檔案的詳細語句和函式級別的覆蓋率。當需要有關檔案的更多詳細資訊時,例如在編輯器中開啟檔案或在“測試覆蓋率”檢視中展開檔案時,編輯器將呼叫此函式。
傳遞給此函式的 FileCoverage 物件是與此配置檔案相關的 TestRun.addCoverage 呼叫上發出的相同例項。
| 引數 | 描述 |
|---|---|
| testRun: TestRun | |
| fileCoverage: FileCoverage | |
| token: CancellationToken | |
| 返回值 | 描述 |
| Thenable<FileCoverageDetail[]> |
loadDetailedCoverageForTest?: (testRun: TestRun, fileCoverage: FileCoverage, fromTestItem: TestItem, token: CancellationToken) => Thenable<FileCoverageDetail[]>
擴充套件提供的函式,用於提供檔案中單個測試的詳細語句和函式級別的覆蓋率。這是 TestRunProfile.loadDetailedCoverage 的每個測試的對應項,僅在 FileCoverage.includesTests 中提供了測試項並且僅為報告了此類資料的檔案呼叫。
通常,當用戶開啟檔案時會首先呼叫 TestRunProfile.loadDetailedCoverage,然後如果他們深入研究特定的每個測試覆蓋率資訊,則會呼叫此方法。然後,此方法應僅返回該測試在執行期間執行的語句和宣告的覆蓋率資料。
傳遞給此函式的 FileCoverage 物件是與此配置檔案相關的 TestRun.addCoverage 呼叫上發出的相同例項。
| 引數 | 描述 |
|---|---|
| testRun: TestRun | 生成覆蓋率資料的測試執行。 |
| fileCoverage: FileCoverage | 要載入詳細覆蓋率的檔案覆蓋率物件。 |
| fromTestItem: TestItem | 請求覆蓋率資訊的測試項。 |
| token: CancellationToken | 指示操作應被取消的取消令牌。 |
| 返回值 | 描述 |
| Thenable<FileCoverageDetail[]> |
runHandler: (request: TestRunRequest, token: CancellationToken) => void | Thenable<void>
呼叫此處理程式以啟動測試執行。呼叫時,該函式應至少呼叫一次 TestController.createTestRun,並且與請求關聯的所有測試執行都應在函式返回或返回的 Promise 解析之前建立。
如果設定了 supportsContinuousRun,則 TestRunRequest.continuous 可能為 true。在這種情況下,配置檔案應監視原始碼更改並呼叫 TestController.createTestRun 來建立新的測試執行,直到在 token 上請求取消。
| 引數 | 描述 |
|---|---|
| request: TestRunRequest | 測試執行的請求資訊。 |
| token: CancellationToken | |
| 返回值 | 描述 |
| void | Thenable<void> |
supportsContinuousRun: boolean
此配置檔案是否支援連續執行請求。如果是,則 TestRunRequest.continuous 可能設定為 true。預設為 false。
tag: TestTag
與配置檔案關聯的標籤。如果設定了此項,則只有在 TestItem.tags 陣列中包含相同標籤的 TestItem 例項才有資格在此配置檔案中執行。
方法
刪除執行配置檔案。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
TestRunProfileKind
TestRunProfiles 控制的執行種類。
列舉成員
Run 測試配置檔案種類。
Debug 測試配置檔案種類。
Coverage 測試配置檔案種類。
TestRunRequest
TestRunRequest 是 TestRun 的前身,而 TestRun 是透過將請求傳遞給 TestController.createTestRun 來建立的。TestRunRequest 包含有關應執行哪些測試、不應執行哪些測試以及如何執行它們(透過 profile)的資訊。
通常,TestRunRequests 由編輯器建立並傳遞給 TestRunProfile.runHandler,但您也可以在 runHandler 外部建立測試請求和執行。
建構函式
new TestRunRequest(include?: readonly TestItem[], exclude?: readonly TestItem[], profile?: TestRunProfile, continuous?: boolean, preserveFocus?: boolean): TestRunRequest
| 引數 | 描述 |
|---|---|
| include?: readonly TestItem[] | 要執行的特定測試陣列,如果未定義則執行所有測試。 |
| exclude?: readonly TestItem[] | 要從執行中排除的測試陣列。 |
| profile?: TestRunProfile | 為此請求使用的執行配置檔案。 |
| continuous?: boolean | 是否連續執行測試。 |
| preserveFocus?: boolean | 啟動執行時是否保留使用者焦點。 |
| 返回值 | 描述 |
| TestRunRequest |
屬性
配置檔案是否應隨著原始碼更改而連續執行。僅對設定了 TestRunProfile.supportsContinuousRun 的配置檔案有效。
exclude: readonly TestItem[]
使用者標記為排除在本執行包含的測試中的測試陣列;排除項應在包含項之後應用。
如果沒有請求排除項,則可以省略。測試控制器不應執行已排除的測試或已排除測試的任何子項。
include: readonly TestItem[]
用於執行特定測試的過濾器。如果提供,擴充套件程式應執行所有包含的測試及其所有子項,排除 TestRunRequest.exclude 中出現的任何測試。如果此屬性未定義,則擴充套件程式應僅執行所有測試。
執行測試的過程應解析尚未解析的任何測試項的子項。
控制測試結果檢視的焦點。如果為 true,編輯器將保持使用者焦點。如果為 false,編輯器將優先將焦點移至測試結果檢視,儘管使用者可以對此進行配置。
profile: TestRunProfile
為此請求使用的配置檔案。對於從編輯器 UI 發出的請求,這將始終定義;但擴充套件程式可以以程式設計方式建立與任何配置檔案無關的請求。
TestTag
標籤可以與 TestItems 和 TestRunProfiles 相關聯。具有標籤的配置檔案只能執行在其 TestItem.tags 陣列中包含該標籤的測試。
建構函式
new TestTag(id: string): TestTag
建立新的 TestTag 例項。
| 引數 | 描述 |
|---|---|
| id: string | 測試標籤的 ID。 |
| 返回值 | 描述 |
| TestTag |
屬性
測試標籤的 ID。ID 相同的 TestTag 例項被視為相同。
TextDocument
表示一個文字文件,例如原始檔。文字文件具有 行,並且瞭解底層資源(如檔案)。
屬性
文件儲存時將使用的此文件的檔案編碼。
使用 onDidChangeTextDocument 事件來獲取文件編碼更改的通知。
請注意,當前可能的編碼值定義為以下任何項:“utf8”、“utf8bom”、“utf16le”、“utf16be”、“windows1252”、“iso88591”、“iso88593”、“iso885915”、“macroman”、“cp437”、“windows1256”、“iso88596”、“windows1257”、“iso88594”、“iso885914”、“windows1250”、“iso88592”、“cp852”、“windows1251”、“cp866”、“cp1125”、“iso88595”、“koi8r”、“koi8u”、“iso885913”、“windows1253”、“iso88597”、“windows1255”、“iso88598”、“iso885910”、“iso885916”、“windows1254”、“iso88599”、“windows1258”、“gbk”、“gb18030”、“cp950”、“big5hkscs”、“shiftjis”、“eucjp”、“euckr”、“windows874”、“iso885911”、“koi8ru”、“koi8t”、“gb2312”、“cp865”、“cp850”。
eol: EndOfLine
此文件中主要使用的 行尾 序列。
關聯資源的檔案系統路徑。 TextDocument.uri.fsPath 的簡寫表示。與 uri 方案無關。
如果文件已關閉,則為 true。已關閉的文件不再同步,並且在再次開啟同一資源時不會被重複使用。
如果有未持久化的更改,則為 true。
此文件是否表示一個從未儲存過的未命名檔案。*注意*,這並不意味著文件將被儲存到磁碟,請使用 Uri.scheme 來確定文件將 儲存 到何處,例如 file、ftp 等。
與此文件關聯的語言的識別符號。
此文件中的行數。
uri: Uri
此文件的關聯 URI。
*注意*,大多數文件使用 file 方案,這意味著它們是磁碟上的檔案。但是,*並非*所有文件都儲存在磁碟上,因此在嘗試訪問底層檔案或磁碟上的同級檔案之前,必須檢查 scheme。
另請參閱
此文件的版本號(在每次更改後將嚴格遞增,包括撤銷/重做)。
方法
getText(range?: Range): string
getWordRangeAtPosition(position: Position, regex?: RegExp): Range
在給定位置獲取一個單詞範圍。預設情況下,單詞由常見分隔符定義,例如空格、-、_ 等。此外,還可以定義每個語言自定義的 [單詞定義]。還可以提供自定義正則表示式。
- *注意 1:*自定義正則表示式不得匹配空字串,如果匹配,則將被忽略。
- *注意 2:*自定義正則表示式將無法匹配多行字串,為了速度,正則表示式不應匹配帶空格的單詞。對於更復雜的、非單詞的場景,請使用 TextLine.text。
該位置將 調整。
lineAt(line: number): TextLine
返回由行號表示的文字行。請注意,返回的物件*不是*即時的,文件的更改不會反映在此物件中。
lineAt(position: Position): TextLine
offsetAt(position: Position): number
positionAt(offset: number): Position
儲存底層檔案。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| Thenable<boolean> | 一個 Promise,該 Promise 將解析為 |
validatePosition(position: Position): Position
validateRange(range: Range): Range
TextDocumentChangeEvent
描述事務性 文件更改的事件。
屬性
contentChanges: readonly TextDocumentContentChangeEvent[]
內容更改陣列。
document: TextDocument
受影響的文件。
reason: TextDocumentChangeReason
文件更改的原因。如果原因未知,則為 undefined。
TextDocumentChangeReason
文字文件發生更改的原因。
列舉成員
文字更改由撤銷操作引起。
文字更改由重做操作引起。
TextDocumentContentChangeEvent
描述 文件文字中單個更改的事件。
屬性
range: Range
被替換的範圍。
被替換的範圍的長度。
被替換的範圍的偏移量。
範圍的新文字。
TextDocumentContentProvider
文字文件內容提供程式允許向編輯器新增只讀文件,例如來自 dll 的源或 md 生成的 html。
內容提供程式會針對 uri-scheme 進行 註冊。當要 載入 具有該方案的 uri 時,會詢問內容提供程式。
事件
用於指示資源已更改的事件。
方法
provideTextDocumentContent(uri: Uri, token: CancellationToken): ProviderResult<string>
| 引數 | 描述 |
|---|---|
| uri: Uri | 一個 scheme 與此提供程式 註冊 的 scheme 匹配的 uri。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<string> | 一個字串或一個解析為該字串的 thenable。 |
TextDocumentSaveReason
表示文字文件儲存的原因。
列舉成員
手動觸發,例如使用者按下儲存、開始除錯或透過 API 呼叫。
延遲後自動儲存。
編輯器失去焦點時。
TextDocumentShowOptions
屬性
一個可選標誌,當設定為 true 時,將阻止 編輯器 獲取焦點。
一個可選標誌,用於控制 編輯器 標籤頁是否顯示為預覽。預覽標籤頁將被替換和重用,直到設定為保留 - 顯式設定或透過編輯。
請注意,如果使用者在設定中停用了預覽編輯器,則該標誌將被忽略。
selection?: Range
一個可選的選區,用於在 編輯器 中應用於該文件。
viewColumn?: ViewColumn
一個可選的檢視列,應在該列中顯示 編輯器。預設是 活動 列。不存在的列將根據需要建立,最多可達 ViewColumn.Nine。使用 ViewColumn.Beside 在當前活動編輯器旁邊開啟編輯器。
TextDocumentWillSaveEvent
屬性
document: TextDocument
將要儲存的文件。
reason: TextDocumentSaveReason
觸發儲存的原因。
方法
waitUntil(thenable: Thenable<readonly TextEdit[]>): void
允許暫停事件迴圈並應用 儲存前編輯。對此函式後續呼叫的編輯將按順序應用。如果文件發生併發修改,則這些編輯將 *被忽略*。
注意: 此函式只能在事件分派期間呼叫,不能非同步呼叫
workspace.onWillSaveTextDocument(event => {
// async, will *throw* an error
setTimeout(() => event.waitUntil(promise));
// sync, OK
event.waitUntil(promise);
});
waitUntil(thenable: Thenable<any>): void
允許暫停事件迴圈,直到提供的 thenable 解析。
注意: 此函式只能在事件分派期間呼叫。
| 引數 | 描述 |
|---|---|
| thenable: Thenable<any> | 延遲儲存的 thenable。 |
| 返回值 | 描述 |
| void |
TextEdit
一個文字編輯,表示應應用於文件的編輯。
靜態
delete(range: Range): TextEdit
insert(position: Position, newText: string): TextEdit
replace(range: Range, newText: string): TextEdit
setEndOfLine(eol: EndOfLine): TextEdit
建構函式
new TextEdit(range: Range, newText: string): TextEdit
屬性
newEol?: EndOfLine
文件中使用的行尾序列。
請注意,行尾序列將應用於整個文件。
此編輯將插入的字串。
range: Range
此編輯適用的範圍。
TextEditor
表示已附加到 文件 的編輯器。
屬性
document: TextDocument
與此文字編輯器關聯的文件。在文字編輯器的整個生命週期中,該文件將保持不變。
options: TextEditorOptions
文字編輯器選項。
selection: Selection
此文字編輯器上的主要選區。是 TextEditor.selections[0] 的簡寫。
selections: readonly Selection[]
此文字編輯器中的選區。主要選區始終位於索引 0。
viewColumn: ViewColumn
此編輯器顯示的列。如果是嵌入式編輯器,或者編輯器列大於三,則可能為 undefined。
visibleRanges: readonly Range[]
編輯器中當前可見的範圍(垂直方向)。這僅考慮垂直滾動,而不考慮水平滾動。
方法
edit(callback: (editBuilder: TextEditorEdit) => void, options?: {undoStopAfter: boolean, undoStopBefore: boolean}): Thenable<boolean>
對與此文字編輯器關聯的文件執行編輯。
將呼叫給定的回撥函式,並傳入一個 編輯構建器,必須使用該構建器進行編輯。請注意,編輯構建器僅在回撥函式執行期間有效。
| 引數 | 描述 |
|---|---|
| callback: (editBuilder: TextEditorEdit) => void | 一個可以使用 編輯構建器 建立編輯的函式。 |
| options?: {undoStopAfter: boolean, undoStopBefore: boolean} | 此編輯的撤銷/重做行為。預設情況下,將在編輯之前和之後建立撤銷停止點。 |
| 返回值 | 描述 |
| Thenable<boolean> | 一個解析為布林值的 Promise,指示編輯是否可以應用。 |
隱藏文字編輯器。
- 已棄用 - 請改用命令
workbench.action.closeActiveEditor。此方法將產生意外行為,並將在下一個主要版本中刪除。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
insertSnippet(snippet: SnippetString, location?: Range | Position | readonly Range[] | readonly Position[], options?: {keepWhitespace: boolean, undoStopAfter: boolean, undoStopBefore: boolean}): Thenable<boolean>
插入一個 片段 並將編輯器置於片段模式。“片段模式”意味著編輯器會新增佔位符和其他游標,以便使用者可以完成或接受片段。
| 引數 | 描述 |
|---|---|
| snippet: SnippetString | 此編輯中要插入的片段。 |
| location?: Range | Position | readonly Range[] | readonly Position[] | 插入片段的位置或範圍,預設為當前編輯器選區或選區。 |
| options?: {keepWhitespace: boolean, undoStopAfter: boolean, undoStopBefore: boolean} | 此編輯的撤銷/重做行為。預設情況下,將在編輯之前和之後建立撤銷停止點。 |
| 返回值 | 描述 |
| Thenable<boolean> | 一個 Promise,解析為布林值,表示片段是否可以插入。請注意,此 Promise 不表示片段已完全填寫或接受。 |
revealRange(range: Range, revealType?: TextEditorRevealType): void
根據 revealType 滾動以顯示給定範圍。
| 引數 | 描述 |
|---|---|
| range: Range | 範圍。 |
| revealType?: TextEditorRevealType | 用於顯示 |
| 返回值 | 描述 |
| void |
setDecorations(decorationType: TextEditorDecorationType, rangesOrOptions: readonly Range[] | readonly DecorationOptions[]): void
| 引數 | 描述 |
|---|---|
| decorationType: TextEditorDecorationType | 裝飾型別。 |
| rangesOrOptions: readonly Range[] | readonly DecorationOptions[] | |
| 返回值 | 描述 |
| void |
show(column?: ViewColumn): void
顯示文字編輯器。
- 已棄用 - 請改用 window.showTextDocument。
| 引數 | 描述 |
|---|---|
| column?: ViewColumn | 顯示此編輯器的 列。此方法將產生意外行為,並將在下一個主要版本中刪除。 |
| 返回值 | 描述 |
| void |
TextEditorCursorStyle
游標的渲染樣式。
列舉成員
將游標渲染為粗豎線。
將游標渲染為填充塊。
將游標渲染為粗橫線。
將游標渲染為細豎線。
將游標渲染為塊狀輪廓。
將游標渲染為細橫線。
TextEditorDecorationType
表示一組在 文字編輯器 中共享相同 樣式選項 的裝飾控制代碼。
要獲取 TextEditorDecorationType 的例項,請使用 createTextEditorDecorationType。
屬性
控制代碼的內部表示。
方法
刪除此裝飾型別以及所有使用它的文字編輯器上的所有裝飾。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| void |
TextEditorEdit
方法
delete(location: Range | Selection): void
insert(location: Position, value: string): void
在指定位置插入文字。您可以在 value 中使用 \r\n 或 \n,它們將被標準化為當前 文件 的行尾。儘管可以使用 replace 進行等效的文字編輯,但 insert 會產生不同的結果選區(它會移動)。
| 引數 | 描述 |
|---|---|
| location: Position | 應插入新文字的位置。 |
| value: string | 此操作應插入的新文字。 |
| 返回值 | 描述 |
| void |
replace(location: Range | Position | Selection, value: string): void
用新值替換特定文字區域。您可以在 value 中使用 \r\n 或 \n,它們將被標準化為當前 文件 的行尾。
setEndOfLine(endOfLine: EndOfLine): void
TextEditorLineNumbersStyle
行號的渲染樣式。
列舉成員
不渲染行號。
渲染行號。
渲染相對於主游標位置的行號。
每 10 行渲染一次行號。
TextEditorOptions
屬性
cursorStyle?: TextEditorCursorStyle
此編輯器中游標的渲染樣式。獲取文字編輯器選項時,此屬性始終存在。設定文字編輯器選項時,此屬性是可選的。
當 insertSpaces 為 true 時,插入的空格數。
獲取文字編輯器選項時,此屬性始終是一個數字(已解析)。設定文字編輯器選項時,此屬性是可選的,可以是數字或 "tabSize"。
insertSpaces?: string | boolean
按下 Tab 鍵時插入 n 個空格。獲取文字編輯器選項時,此屬性始終是一個布林值(已解析)。設定文字編輯器選項時,此屬性是可選的,可以是布林值或 "auto"。
lineNumbers?: TextEditorLineNumbersStyle
相對於當前行號渲染相對行號。獲取文字編輯器選項時,此屬性始終存在。設定文字編輯器選項時,此屬性是可選的。
一個 Tab 所佔的空格數。它有兩個用途:
- Tab 字元的渲染寬度;
- 當 insertSpaces 為 true 且
indentSize設定為"tabSize"時,插入的空格數。
獲取文字編輯器選項時,此屬性始終是一個數字(已解析)。設定文字編輯器選項時,此屬性是可選的,可以是數字或 "auto"。
TextEditorOptionsChangeEvent
表示一個事件,描述了 文字編輯器選項 的更改。
屬性
options: TextEditorOptions
文字編輯器選項 的新值。
textEditor: TextEditor
選項已更改的 文字編輯器。
TextEditorRevealType
表示文字編輯器中不同的 顯示 策略。
列舉成員
將以最少的滾動量顯示範圍。
範圍將始終在視口的中心顯示。
如果範圍在視口之外,則將其顯示在視口中心。否則,將以最少的滾動量顯示範圍。
範圍將始終在視口的頂部顯示。
TextEditorSelectionChangeEvent
表示一個事件,描述了 文字編輯器選區 的更改。
屬性
kind: TextEditorSelectionChangeKind
觸發此事件的 更改型別。可能為 undefined。
selections: readonly Selection[]
文字編輯器選區 的新值。
textEditor: TextEditor
選區已更改的 文字編輯器。
TextEditorSelectionChangeKind
表示可能導致 選區更改事件 的來源。
列舉成員
由於在編輯器中鍵入而導致選區更改。
由於在編輯器中單擊而導致選區更改。
由於執行命令而導致選區更改。
TextEditorViewColumnChangeEvent
表示一個事件,描述了 文字編輯器檢視列 的更改。
屬性
textEditor: TextEditor
檢視列已更改的 文字編輯器。
viewColumn: ViewColumn
文字編輯器檢視列 的新值。
TextEditorVisibleRangesChangeEvent
表示一個事件,描述了 文字編輯器可見範圍 的更改。
屬性
textEditor: TextEditor
可見範圍已更改的 文字編輯器。
visibleRanges: readonly Range[]
文字編輯器可見範圍 的新值。
TextLine
表示一行文字,例如一行原始碼。
TextLine 物件是**不可變的**。當 文件 發生更改時,先前檢索到的行將不再代表最新狀態。
屬性
firstNonWhitespaceCharacterIndex: number
第一個非空白字元的偏移量,空白字元由 /\s/ 定義。**注意**,如果一行全為空白,則返回該行的長度。
該行是否僅包含空白字元,是 TextLine.firstNonWhitespaceCharacterIndex === TextLine.text.length 的簡寫。
從零開始的行號。
range: Range
該行覆蓋的範圍,不包括行分隔符字元。
rangeIncludingLineBreak: Range
該行覆蓋的範圍,包括行分隔符字元。
不包含行分隔符的行文字。
ThemableDecorationAttachmentRenderOptions
屬性
backgroundColor?: string | ThemeColor
將應用於裝飾附件的 CSS 樣式屬性。
將應用於裝飾附件的 CSS 樣式屬性。
borderColor?: string | ThemeColor
將應用於裝飾文字的 CSS 樣式屬性。
color?: string | ThemeColor
將應用於裝飾附件的 CSS 樣式屬性。
contentIconPath?: string | Uri
一個用於渲染到附件中的圖片的絕對路徑或 URI。可以顯示圖示或文字,但不能同時顯示兩者。
定義了在附件中顯示的文字內容。可以顯示圖示或文字,但不能同時顯示兩者。
將應用於裝飾附件的 CSS 樣式屬性。
將應用於裝飾附件的 CSS 樣式屬性。
將應用於裝飾附件的 CSS 樣式屬性。
將應用於裝飾附件的 CSS 樣式屬性。
將應用於裝飾附件的 CSS 樣式屬性。
將應用於裝飾附件的 CSS 樣式屬性。
ThemableDecorationInstanceRenderOptions
表示裝飾例項的可主題化渲染選項。
屬性
after?: ThemableDecorationAttachmentRenderOptions
定義插入到裝飾文字之後的附件的渲染選項。
before?: ThemableDecorationAttachmentRenderOptions
定義插入到裝飾文字之前的附件的渲染選項。
ThemableDecorationRenderOptions
表示文字編輯器裝飾的主題特定渲染樣式。
屬性
after?: ThemableDecorationAttachmentRenderOptions
定義插入到裝飾文字之後的附件的渲染選項。
backgroundColor?: string | ThemeColor
裝飾的背景顏色。使用 rgba() 並定義透明背景顏色以與其他裝飾良好相容。或者,可以 引用 顏色登錄檔中的顏色。
before?: ThemableDecorationAttachmentRenderOptions
定義插入到裝飾文字之前的附件的渲染選項。
將應用於裝飾文字的 CSS 樣式屬性。
borderColor?: string | ThemeColor
將應用於裝飾文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
將應用於裝飾文字的 CSS 樣式屬性。最好使用“border”來設定一個或多個單獨的邊框屬性。
color?: string | ThemeColor
將應用於裝飾文字的 CSS 樣式屬性。
將應用於裝飾文字的 CSS 樣式屬性。
將應用於裝飾文字的 CSS 樣式屬性。
將應用於裝飾文字的 CSS 樣式屬性。
gutterIconPath?: string | Uri
在裝訂線中渲染的影像的絕對路徑或 URI。
指定裝訂線圖示的大小。可用值為 'auto'、'contain'、'cover' 和任何百分比值。有關更多資訊:https://msdn.microsoft.com/en-us/library/jj127316(v=vs.85).aspx
將應用於裝飾文字的 CSS 樣式屬性。
將應用於裝飾文字的 CSS 樣式屬性。
將應用於裝飾文字的 CSS 樣式屬性。
outlineColor?: string | ThemeColor
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用 'outline' 來設定一個或多個單獨的輪廓屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用 'outline' 來設定一個或多個單獨的輪廓屬性。
將應用於裝飾包圍的文字的 CSS 樣式屬性。最好使用 'outline' 來設定一個或多個單獨的輪廓屬性。
overviewRulerColor?: string | ThemeColor
概覽標尺中裝飾的顏色。使用 rgba() 並定義透明顏色以與其他裝飾配合使用。
將應用於裝飾文字的 CSS 樣式屬性。
ThemeColor
指向 [https://vscode.com.tw/api/references/theme-color](https://vscode.com.tw/api/references/theme-color) 中定義的某個工作區顏色的引用。使用主題顏色而不是自定義顏色是首選,因為它為主題作者和使用者提供了更改顏色的可能性。
建構函式
new ThemeColor(id: string): ThemeColor
建立一個主題顏色的引用。
| 引數 | 描述 |
|---|---|
| id: string | 顏色的。可用顏色列於 [https://vscode.com.tw/api/references/theme-color](https://vscode.com.tw/api/references/theme-color)。 |
| 返回值 | 描述 |
| ThemeColor |
屬性
此顏色的 ID。
ThemeIcon
命名圖示的引用。當前支援 File、Folder 和 [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)"。
靜態
File: ThemeIcon
代表檔案的圖示的引用。該圖示來自當前檔案圖示主題,或使用佔位符圖示。
Folder: ThemeIcon
代表資料夾的圖示的引用。該圖示來自當前檔案圖示主題,或使用佔位符圖示。
建構函式
new ThemeIcon(id: string, color?: ThemeColor): ThemeIcon
建立一個主題圖示的引用。
| 引數 | 描述 |
|---|---|
| id: string | 圖示的 ID。可用圖示列於 [https://vscode.com.tw/api/references/icons-in-labels#icon-listing](https://vscode.com.tw/api/references/icons-in-labels#icon-listing)。 |
| color?: ThemeColor | 可選的圖示 |
| 返回值 | 描述 |
| ThemeIcon |
屬性
color?: ThemeColor
圖示的可選 ThemeColor。顏色目前僅在 TreeItem 中使用。
圖示的 ID。可用圖示列於 [https://vscode.com.tw/api/references/icons-in-labels#icon-listing](https://vscode.com.tw/api/references/icons-in-labels#icon-listing)。
TreeCheckboxChangeEvent<T>
描述樹項複選框狀態變化的事件。
屬性
items: ReadonlyArray<[T, TreeItemCheckboxState]>
被選中或取消選擇的項。
TreeDataProvider<T>
提供樹資料的提供程式。
事件
onDidChangeTreeData?: Event<void | T | T[]>
一個可選事件,用於指示元素或根已更改。這將觸發檢視遞迴地更新已更改的元素/根及其子項(如果已顯示)。要指示根已更改,請不傳遞任何引數,或傳遞 undefined 或 null。
方法
getChildren(element?: T): ProviderResult<T[]>
獲取 element 的子項,或者在未傳遞 element 時獲取根的子項。
| 引數 | 描述 |
|---|---|
| element?: T | 提供程式從中獲取子項的元素。可以是 |
| 返回值 | 描述 |
| ProviderResult<T[]> |
|
getParent(element: T): ProviderResult<T>
可選方法,用於返回 element 的父項。如果 element 是根的子項,則返回 null 或 undefined。
注意:必須實現此方法才能訪問 reveal API。
| 引數 | 描述 |
|---|---|
| element: T | 需要返回父項的元素。 |
| 返回值 | 描述 |
| ProviderResult<T> |
|
getTreeItem(element: T): TreeItem | Thenable<TreeItem>
獲取 element 的 TreeItem 表示形式。
resolveTreeItem(item: TreeItem, element: T, token: CancellationToken): ProviderResult<TreeItem>
在懸停時呼叫以解析 TreeItem 屬性(如果未定義)。在單擊/開啟樹項時呼叫以解析 TreeItem 屬性(如果未定義)。在 resolveTreeItem 中只能解析未定義的屬性。將來可能會擴充套件功能,以便在選擇和/或開啟時呼叫以解析其他缺失的屬性。
每個 TreeItem 只會被呼叫一次。
不應從 resolveTreeItem 中觸發 onDidChangeTreeData。
注意,此函式在樹項已顯示在 UI 中時呼叫。因此,不能更改任何影響呈現(標籤、描述等)的屬性。
| 引數 | 描述 |
|---|---|
| item: TreeItem | 應設定 |
| element: T | 與 TreeItem 關聯的物件。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<TreeItem> | 已解析的 tree item 或可解析為 tree item 的 thenable。返回給定的 |
TreeDragAndDropController<T>
為 TreeView 提供拖放支援。
屬性
dragMimeTypes: readonly string[]
此 TreeDragAndDropController 的 handleDrag 方法可能會新增到樹資料傳輸中的 MIME 型別。這可以是明確定義的現有 MIME 型別,也可以是擴充套件定義的 MIME 型別。
將自動新增樹的推薦 MIME 型別(application/vnd.code.tree.<treeidlowercase>)。
dropMimeTypes: readonly string[]
此 DragAndDropController 的 handleDrop 方法支援的 MIME 型別。這可以是明確定義的現有 MIME 型別,也可以是擴充套件定義的 MIME 型別。
要支援從樹中進行拖放,您需要新增該樹的 MIME 型別。這包括從同一樹內部進行拖放。建議樹的 MIME 型別格式為 application/vnd.code.tree.<treeidlowercase>。
使用特殊的 files MIME 型別來支援所有型別的拖放檔案 files,無論檔案的實際 MIME 型別如何。
要了解拖動項的 MIME 型別
- 設定您的
DragAndDropController - 使用命令“Developer: Set Log Level...”將級別設定為“Debug”
- 開啟開發者工具,並將具有未知 MIME 型別的項拖到您的樹上。MIME 型別將記錄到開發者控制檯中
請注意,無法傳送到擴充套件的 MIME 型別將被省略。
方法
handleDrag(source: readonly T[], dataTransfer: DataTransfer, token: CancellationToken): void | Thenable<void>
當用戶開始從此 DragAndDropController 拖動項時,將呼叫 handleDrag。擴充套件可以使用 handleDrag 將其 DataTransferItem 項新增到拖放操作中。
在 handleDrag 中新增的 MIME 型別在應用程式外部將不可用。
當項被拖放到同一樹中的另一個樹項時,您的 DataTransferItem 物件將被保留。使用樹的推薦 MIME 型別(application/vnd.code.tree.<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> |
handleDrop(target: T, dataTransfer: DataTransfer, token: CancellationToken): void | Thenable<void>
當拖放操作導致在該 DragAndDropController 所屬的樹上發生放置時呼叫。
擴充套件應為需要重新整理的任何元素觸發 onDidChangeTreeData。
| 引數 | 描述 |
|---|---|
| target: T | 發生放置的目標樹項。如果為 undefined,則目標是根。 |
| dataTransfer: DataTransfer | 拖動源的資料傳輸項。 |
| token: CancellationToken | 指示放置已取消的取消標記。 |
| 返回值 | 描述 |
| void | Thenable<void> |
TreeItem
樹項是樹的使用者介面元素。樹項由 資料提供程式建立。
建構函式
new TreeItem(label: string | TreeItemLabel, collapsibleState?: TreeItemCollapsibleState): TreeItem
| 引數 | 描述 |
|---|---|
| label: string | TreeItemLabel | 描述此項的直觀字串。 |
| collapsibleState?: TreeItemCollapsibleState | |
| 返回值 | 描述 |
| TreeItem |
new TreeItem(resourceUri: Uri, collapsibleState?: TreeItemCollapsibleState): TreeItem
| 引數 | 描述 |
|---|---|
| resourceUri: Uri | 表示此項的資源的 Uri。 |
| collapsibleState?: TreeItemCollapsibleState | |
| 返回值 | 描述 |
| TreeItem |
屬性
accessibilityInformation?: AccessibilityInformation
當螢幕閱讀器與此樹項互動時使用的可訪問性資訊。通常,TreeItem 無需設定可訪問性資訊的 role;但是,在某些 TreeItem 未以樹狀顯示的情況下,設定 role 可能有意義。
checkboxState?: TreeItemCheckboxState | {accessibilityInformation: AccessibilityInformation, state: TreeItemCheckboxState, tooltip: string}
樹項的 TreeItemCheckboxState。當 checkboxState 更改時,應觸發 onDidChangeTreeData。
collapsibleState?: TreeItemCollapsibleState
command?: Command
當選擇樹項時應執行的 Command。
當樹項開啟編輯器中的內容時,請使用 vscode.open 或 vscode.diff 作為命令 ID。使用這些命令可確保生成的編輯器外觀與內建樹開啟編輯器的方式一致。
樹項的上下文值。可用於在樹中貢獻特定於項的操作。例如,如果樹項具有 folder 的上下文值。當使用 menus 擴充套件點向 view/item/context 貢獻操作時,您可以在 when 表示式中為鍵 viewItem 指定上下文值,例如 viewItem == folder。
"contributes": {
"menus": {
"view/item/context": [
{
"command": "extension.deleteFolder",
"when": "viewItem == folder"
}
]
}
}
這將僅為上下文值為 folder 的項顯示操作 extension.deleteFolder。
description?: string | boolean
不那麼顯眼地呈現的人類可讀字串。當為 true 時,它從 resourceUri 派生;當為假值時,它不顯示。
iconPath?: string | IconPath
樹項的圖示路徑或 ThemeIcon。當為假值時,如果項是可摺疊的,則分配 Folder Theme Icon,否則分配 File Theme Icon。當指定檔案或資料夾 ThemeIcon 時,圖示將從當前檔案圖示主題使用指定的 ThemeIcon(如果提供了 resourceUri)派生。
樹項的可選 ID,必須在樹中唯一。ID 用於保留樹項的選擇和展開狀態。
如果未提供 ID,則會使用樹項的標籤生成 ID。注意,當標籤更改時,ID 也會更改,並且選擇和展開狀態將無法保持穩定。
label?: string | TreeItemLabel
描述此項的人類可讀字串。當為假值時,它從 resourceUri 派生。
resourceUri?: Uri
tooltip?: string | MarkdownString
The tooltip text when you hover over this item.
TreeItemCheckboxState
樹項的複選框狀態。
列舉成員
確定一項未被選中。
確定一項已被選中。
TreeItemCollapsibleState
樹項的摺疊狀態。
列舉成員
確定一項既不能摺疊也不能展開。暗示它沒有子項。
確定專案已摺疊。
確定專案已展開。
TreeItemLabel
描述 Tree item 的標籤。
屬性
highlights?: Array<[number, number]>
標籤中要高亮的範圍。範圍定義為一對數字,第一個是包含的起始索引,第二個是排除的結束索引。
描述 Tree item 的人類可讀字串。
TreeView<T>
表示一個樹檢視。
事件
onDidChangeCheckboxState: Event<TreeCheckboxChangeEvent<T>>
一個事件,用於指示元素或根已被選中或取消選擇。
onDidChangeSelection: Event<TreeViewSelectionChangeEvent<T>>
當 selection 發生變化時觸發的事件。
onDidChangeVisibility: Event<TreeViewVisibilityChangeEvent>
當 visibility 發生變化時觸發的事件。
onDidCollapseElement: Event<TreeViewExpansionEvent<T>>
當元素被摺疊時觸發的事件。
onDidExpandElement: Event<TreeViewExpansionEvent<T>>
當元素被展開時觸發的事件。
屬性
badge?: ViewBadge
為該 TreeView 顯示的徽章。要刪除徽章,請將其設定為 undefined。
在檢視標題中不太顯眼地呈現的可選人類可讀描述。將標題描述設定為 null、undefined 或空字串將從檢視中刪除描述。
一個可選的人類可讀訊息,將在檢視中呈現。將 message 設定為 null、undefined 或空字串將從檢視中刪除該訊息。
當前選中的元素。
樹檢視的標題最初來自擴充套件包 package.json。對 title 屬性的更改將在檢視標題的使用者介面中正確反映。
如果 樹檢視 可見,則為 true,否則為 false。
方法
處置此物件。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| any |
reveal(element: T, options?: {expand: number | boolean, focus: boolean, select: boolean}): Thenable<void>
在樹檢視中顯示給定元素。如果樹檢視不可見,則顯示樹檢視並顯示元素。
預設情況下,顯示的元素將被選中。為了不選中,請將選項 select 設定為 false。為了聚焦,請將選項 focus 設定為 true。為了展開顯示的元素,請將選項 expand 設定為 true。要遞迴展開,請將 expand 設定為要展開的級別數。
| 引數 | 描述 |
|---|---|
| element: T | |
| options?: {expand: number | boolean, focus: boolean, select: boolean} | |
| 返回值 | 描述 |
| Thenable<void> |
TreeViewExpansionEvent<T>
當 樹檢視 中的元素被展開或摺疊時觸發的事件。
屬性
展開或摺疊的元素。
TreeViewOptions<T>
建立 TreeView 的選項。
屬性
樹是否支援多選。當樹支援多選且從樹執行命令時,命令的第一個引數是執行命令的樹項,第二個引數是包含所有選定樹項的陣列。
dragAndDropController?: TreeDragAndDropController<T>
一個用於在樹檢視中實現拖放的可選介面。
manageCheckboxStateManually?: boolean
預設情況下,當樹項的子項已被獲取時,子複選框會根據父樹項的選中狀態自動管理。如果樹項預設摺疊(意味著子項尚未獲取),則子複選框不會更新。要覆蓋此行為並在擴充套件中管理子複選框和父複選框狀態,請將其設定為 true。
TreeViewOptions.manageCheckboxStateManually 為 false 的示例,這是預設行為。
選中一個樹項,然後獲取其子項。子項將被選中。
選中樹項的父項。該樹項及其所有同級項都將被選中。
- 父級
- 子項 1
- 子項 2 使用者選中“父級”時,樹會顯示如下
- 父級
- 子項 1
- 子項 2
- 選中樹項及其所有同級項。父項將被選中。
- 父級
- 子項 1
- 子項 2 使用者選中“子項 1”和“子項 2”時,樹會顯示如下
- 父級
- 子項 1
- 子項 2
- 取消選中一個樹項。父項將被取消選中。
- 父級
- 子項 1
- 子項 2 使用者取消選中“子項 1”時,樹會顯示如下
- 父級
- 子項 1
- 子項 2
是否顯示摺疊所有操作。
treeDataProvider: TreeDataProvider<T>
提供樹資料的資料提供程式。
TreeViewSelectionChangeEvent<T>
當 樹檢視選擇 發生變化時觸發的事件。
屬性
選中的元素。
TreeViewVisibilityChangeEvent
當 樹檢視可見性 發生變化時觸發的事件。
屬性
如果 樹檢視 可見,則為 true,否則為 false。
TypeDefinitionProvider
型別定義提供程式定義了擴充套件和轉到型別定義功能之間的契約。
方法
provideTypeDefinition(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<Definition | LocationLink[]>
提供文件和位置處的符號的型別定義。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| position: Position | 呼叫命令的位置。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<Definition | LocationLink[]> | 定義或一個可解析為該定義的 thenable。可以透過返回 |
TypeHierarchyItem
表示型別層次結構中的一個項,例如類或介面。
建構函式
new TypeHierarchyItem(kind: SymbolKind, name: string, detail: string, uri: Uri, range: Range, selectionRange: Range): TypeHierarchyItem
建立新的型別層次結構項。
| 引數 | 描述 |
|---|---|
| kind: SymbolKind | 項的種類。 |
| name: string | 項的名稱。 |
| detail: string | 項的詳細資訊。 |
| uri: Uri | 項的 Uri。 |
| range: Range | 項的整個範圍。 |
| selectionRange: Range | 項的選定範圍。 |
| 返回值 | 描述 |
| TypeHierarchyItem |
屬性
此項的更多詳細資訊,例如函式的簽名。
kind: SymbolKind
此項的種類。
此項的名稱。
range: Range
包含此符號的範圍,不包括前導/尾隨空格,但包括其他所有內容,例如註釋和程式碼。
selectionRange: Range
選擇和顯示此符號時應選中的範圍,例如類的名稱。必須包含在 range 屬性內。
tags?: readonly SymbolTag[]
此項的標籤。
uri: Uri
此項的資源識別符號。
TypeHierarchyProvider
型別層次結構提供程式介面描述了擴充套件和型別層次結構功能之間的契約。
方法
prepareTypeHierarchy(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<TypeHierarchyItem | TypeHierarchyItem[]>
透過返回由給定文件和位置表示的項來引導型別層次結構。該項將用作型別圖的入口點。如果沒有位於給定位置的項,提供程式應返回 undefined 或 null。
| 引數 | 描述 |
|---|---|
| document: TextDocument | 呼叫命令的文件。 |
| position: Position | 呼叫命令的位置。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<TypeHierarchyItem | TypeHierarchyItem[]> | 一個或多個型別層次結構項,或解析為這些項的 thenable。可以透過返回 |
provideTypeHierarchySubtypes(item: TypeHierarchyItem, token: CancellationToken): ProviderResult<TypeHierarchyItem[]>
為項提供所有子型別,例如所有從給定項派生/繼承的型別。在圖論中,這描述了型別圖中的有向和帶註釋的邊,例如,給定項是起始節點,結果是可以到達的節點。
| 引數 | 描述 |
|---|---|
| item: TypeHierarchyItem | 應為其計算子型別的層次結構項。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<TypeHierarchyItem[]> | 一組直接子型別或解析為這些子型別的 thenable。可以透過返回 |
provideTypeHierarchySupertypes(item: TypeHierarchyItem, token: CancellationToken): ProviderResult<TypeHierarchyItem[]>
為項提供所有超型別,例如所有從中派生/繼承型別的型別。在圖論中,這描述了型別圖中的有向和帶註釋的邊,例如,給定項是起始節點,結果是可以到達的節點。
| 引數 | 描述 |
|---|---|
| item: TypeHierarchyItem | 應為其計算超型別的層次結構項。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<TypeHierarchyItem[]> | 一組直接超型別或解析為這些超型別的 thenable。可以透過返回 |
UIKind
可以使用擴充套件的 UI 的可能種類。
列舉成員
從桌面應用程式訪問擴充套件。
從 Web 瀏覽器訪問擴充套件。
Uri
一個通用資源識別符號,表示磁碟上的檔案或其他資源,例如未命名的資源。
靜態
file(path: string): Uri
從檔案系統路徑建立 URI。scheme 將是 file。
Uri.parse 與 Uri.file 之間的區別在於,後者將引數視為路徑,而不是字串化的 URI。例如,Uri.file(path)不等於 Uri.parse('file://' + path),因為路徑可能包含被解釋為特殊字元(#_ 和 ?)的字元。請參閱以下示例。
const good = URI.file('/coding/c#/project1');
good.scheme === 'file';
good.path === '/coding/c#/project1';
good.fragment === '';
const bad = URI.parse('file://' + '/coding/c#/project1');
bad.scheme === 'file';
bad.path === '/coding/c'; // path is now broken
bad.fragment === '/project1';
| 引數 | 描述 |
|---|---|
| path: string | 檔案系統或 UNC 路徑。 |
| 返回值 | 描述 |
| Uri | 新的 Uri 例項。 |
from(components: {authority: string, fragment: string, path: string, query: string, scheme: string}): Uri
從其元件部分建立 URI。
另請參閱 Uri.toString。
| 引數 | 描述 |
|---|---|
| components: {authority: string, fragment: string, path: string, query: string, scheme: string} | URI 的元件部分。 |
| 返回值 | 描述 |
| Uri | 新的 Uri 例項。 |
joinPath(base: Uri, ...pathSegments: string[]): Uri
建立一個新的 URI,其路徑是連線基 URI 的路徑與提供的路徑段的結果。
- 注意 1:
joinPath僅影響路徑元件,所有其他元件(scheme、authority、query 和 fragment)將保持不變。 - 注意 2:基 URI 必須具有路徑;否則將引發錯誤。
路徑段按以下方式進行規範化。
- 路徑分隔符(
/或\)的序列將被替換為單個分隔符。 - 對於 Windows 上的
file-uri,反斜槓(``)被視為路徑分隔符。 ..段表示父段,.表示當前段。- 路徑有一個根,它始終保留,例如,在 Windows 上,驅動器號是根,因此以下表達式為真:
joinPath(Uri.file('file:///c:/root'), '../../other').fsPath === 'c:/other'。
parse(value: string, strict?: boolean): Uri
從字串建立 URI,例如 http://www.example.com/some/path、file:///usr/home 或 scheme:with/path。
注意,在一段時間內,沒有 scheme 的 URI 是被接受的。這是不正確的,因為所有 URI 都應該有一個 scheme。為了避免現有程式碼中斷,添加了可選的 strict 引數。我們強烈建議使用它,例如 Uri.parse('my:uri', true)。
另請參閱 Uri.toString。
| 引數 | 描述 |
|---|---|
| value: string | URI 的字串值。 |
| strict?: boolean | 當 |
| 返回值 | 描述 |
| Uri | 新的 Uri 例項。 |
建構函式
new Uri(scheme: string, authority: string, path: string, query: string, fragment: string): Uri
使用 file 和 parse 工廠函式建立新的 Uri 物件。
| 引數 | 描述 |
|---|---|
| scheme: string | |
| authority: string | |
| path: string | |
| query: string | |
| fragment: string | |
| 返回值 | 描述 |
| Uri |
屬性
Authority 是 http://www.example.com/some/path?query#fragment 中的 www.example.com 部分。位於第一個雙斜槓和下一個斜槓之間的部分。
Fragment 是 http://www.example.com/some/path?query#fragment 中的 fragment 部分。
表示此 URI 對應的檔案系統路徑的字串。
將處理 UNC 路徑並將 Windows 驅動器號規範化為小寫。還將使用特定於平臺的路徑分隔符。
- 將不驗證路徑是否包含無效字元和語義。
- 將不檢查此 URI 的 scheme。
- 生成的字串不得用於顯示目的,而應用於磁碟操作,例如
readFile等。
與 path 屬性的區別在於使用了特定於平臺的路徑分隔符以及對 UNC 路徑的處理。以下示例概述了區別。
const u = URI.parse('file://server/c$/folder/file.txt');
u.authority === 'server';
u.path === '/c$/folder/file.txt';
u.fsPath === '\\serverc$\folder\file.txt';
Path 是 http://www.example.com/some/path?query#fragment 中的 /some/path 部分。
Query 是 http://www.example.com/some/path?query#fragment 中的 query 部分。
Scheme 是 http://www.example.com/some/path?query#fragment 中的 http 部分。第一個冒號之前的部分。
方法
返回此 Uri 的 JSON 表示。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| any | 一個物件。 |
toString(skipEncoding?: boolean): string
返回此 Uri 的字串表示。URI 的表示和規範化取決於 scheme。
- 生成的字串可以安全地用於 Uri.parse。
- 生成的字串不得用於顯示目的。
注意,實現將進行激進的編碼,這通常會導致意外但並非不正確的結果。例如,冒號將被編碼為 %3A,這對於檔案 URI 來說可能出乎意料。同樣,& 和 = 也將被編碼,這對於 HTTP URI 來說也可能出乎意料。出於穩定性原因,這一點無法更改。如果您遇到過於激進的編碼問題,應使用 skipEncoding 引數:uri.toString(true)。
| 引數 | 描述 |
|---|---|
| skipEncoding?: boolean | 不進行百分比編碼結果,預設為 |
| 返回值 | 描述 |
| 字串 | 此 Uri 的字串表示。 |
with(change: {authority: string, fragment: string, path: string, query: string, scheme: string}): Uri
從此 Uri 派生一個新的 Uri。
let file = Uri.parse('before:some/file/path');
let other = file.with({ scheme: 'after' });
assert.ok(other.toString() === 'after:some/file/path');
| 引數 | 描述 |
|---|---|
| change: {authority: string, fragment: string, path: string, query: string, scheme: string} | 描述對此 Uri 的更改的物件。要取消設定元件,請使用 |
| 返回值 | 描述 |
| Uri | 反映給定更改的新 Uri。如果更改不改變任何內容,則返回 |
UriHandler
URI 處理程式負責處理系統範圍的 URI。
方法
handleUri(uri: Uri): ProviderResult<void>
處理提供的系統範圍的 Uri。
| 引數 | 描述 |
|---|---|
| uri: Uri | |
| 返回值 | 描述 |
| ProviderResult<void> |
ViewBadge
為檢視顯示值的徽章。
屬性
顯示在徽章工具提示中的標籤。
顯示在徽章中的值。
ViewColumn
表示編輯器在視窗中的位置。編輯器可以排列成網格,每個列按其出現順序表示網格中的一個編輯器位置。
列舉成員
一個象徵性的編輯器列,表示活動列旁邊的列。此值可用於開啟編輯器,但編輯器的解析後的 viewColumn 值將始終為 One、Two、Three... 或 undefined,但永遠不會是 Beside。
一個象徵性的編輯器列,表示當前活動的列。此值可用於開啟編輯器,但編輯器的解析後的 viewColumn 值將始終為 One、Two、Three... 或 undefined,但永遠不會是 Active。
第一個編輯器列。
第二個編輯器列。
第三個編輯器列。
第四個編輯器列。
第五個編輯器列。
第六個編輯器列。
第七個編輯器列。
第八個編輯器列。
第九個編輯器列。
Webview
顯示 HTML 內容,類似於 iframe。
事件
onDidReceiveMessage: Event<any>
當 Webview 內容釋出訊息時觸發。
Webview 內容可以向擴充套件釋出字串或 JSON 可序列化物件。它們不能釋出 Blob、File、ImageData 和其他 DOM 特定的物件,因為接收訊息的擴充套件不在瀏覽器環境中執行。
屬性
Webview 資源的內容安全策略源。
這是內容安全策略規則中應使用的 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 安全最佳實踐。這包括正確清理所有不受信任的輸入(包括來自工作區的輸入)並設定內容安全策略。
options: WebviewOptions
Webview 的內容設定。
方法
asWebviewUri(localResource: Uri): Uri
將本地檔案系統的 URI 轉換為可在 Webview 中使用的 URI。
Webviews 不能直接使用 file: URI 從工作區或本地檔案系統載入資源。asWebviewUri 函式接收一個本地 file: URI 並將其轉換為可在 Webview 中用於載入同一資源的 URI。
webview.html = `<img src="${webview.asWebviewUri(
vscode.Uri.file('/Users/codey/workspace/cat.gif')
)}">`;
postMessage(message: any): Thenable<boolean>
向 Webview 內容傳送訊息。
僅當 Webview 處於活動狀態時(可見或在後臺且 retainContextWhenHidden 為 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 的內容設定。
屬性
enableCommandUris?: boolean | readonly string[]
控制是否在 webview 內容中啟用命令 URI。
預設為 `false`(停用命令 URI)。
如果傳入一個數組,則只允許陣列中的命令。
控制是否在 webview 內容中啟用表單。
如果啟用了 指令碼,則預設為 true。否則預設為 false。顯式將此屬性設定為 true 或 false 會覆蓋預設值。
控制是否在 webview 內容中啟用指令碼。
預設為 false(停用指令碼)。
localResourceRoots?: readonly Uri[]
webview 可以使用 `asWebviewUri` 中的 URI 從中載入本地(檔案系統)資源的根路徑。
預設為當前工作區的根資料夾加上擴充套件的安裝目錄。
傳入一個空陣列以禁止訪問任何本地資源。
portMapping?: readonly WebviewPortMapping[]
webview 中使用的 localhost 埠的對映。
埠對映允許 webview 透明地定義 localhost 埠的解析方式。這可以用來允許在 webview 中使用一個靜態的 localhost 埠,該埠被解析到服務正在執行的隨機埠。
如果 webview 訪問 localhost 內容,我們建議您指定埠對映,即使 `webviewPort` 和 `extensionHostPort` 埠相同。
注意:埠對映僅適用於 `http` 或 `https` URL。WebSocket URL(例如 `ws://:3000`)不能對映到另一個埠。
WebviewPanel
包含 webview 的面板。
事件
onDidChangeViewState: Event<WebviewPanelOnDidChangeViewStateEvent>
當面板的檢視狀態改變時觸發。
onDidDispose: Event<void>
面板被釋放時觸發。
這可能是因為使用者關閉了面板,或者因為對它呼叫了 `.dispose()`。
嘗試在面板被釋放後使用它將引發異常。
屬性
面板是否處於活動狀態(使用者聚焦)。
iconPath?: Uri | {dark: Uri, light: Uri}
面板的圖示,顯示在 UI 中。
options: WebviewPanelOptions
webview 面板的內容設定。
面板的標題,顯示在 UI 中。
viewColumn: ViewColumn
面板的編輯器位置。僅當 webview 位於編輯器檢視列之一時,才會設定此屬性。
標識 webview 面板的型別,例如 `'markdown.preview'`。
面板是否可見。
webview: Webview
面板所屬的 Webview。
方法
釋放 webview 面板。
這會關閉正在顯示的面板,並釋放 webview 所擁有的資源。當用戶關閉 webview 面板時,webview 面板也會被釋放。這兩種情況都會觸發 `onDispose` 事件。
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| any |
reveal(viewColumn?: ViewColumn, preserveFocus?: boolean): void
在指定列中顯示 webview 面板。
webview 面板一次只能顯示在一個列中。如果它已經顯示,此方法將其移動到新列。
| 引數 | 描述 |
|---|---|
| viewColumn?: ViewColumn | 要顯示面板的檢視列。如果未定義,則顯示在當前 `viewColumn` 中。 |
| preserveFocus?: boolean | 當 `true` 時,webview 將不會獲得焦點。 |
| 返回值 | 描述 |
| void |
WebviewPanelOnDidChangeViewStateEvent
當 webview 面板的檢視狀態改變時觸發的事件。
屬性
webviewPanel: WebviewPanel
檢視狀態已更改的 webview 面板。
WebviewPanelOptions
webview 面板的內容設定。
屬性
控制是否在面板中啟用查詢小部件。
預設為 false。
retainContextWhenHidden?: boolean
控制即使面板不再可見,是否也保留 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`。
方法
deserializeWebviewPanel(webviewPanel: WebviewPanel, state: T): Thenable<void>
從其序列化的 `state` 恢復 webview 面板。
當序列化的 webview 首次變得可見時呼叫。
| 引數 | 描述 |
|---|---|
| webviewPanel: WebviewPanel | 要恢復的 webview 面板。序列化器應接管此面板的所有權。序列化器必須恢復 webview 的 `.html` 並掛載所有 webview 事件。 |
| state: T | 來自 webview 內容的持久化狀態。 |
| 返回值 | 描述 |
| Thenable<void> | 一個 Thenable,表示 webview 已完全恢復。 |
WebviewPortMapping
定義 webview 中 localhost 使用的埠對映。
屬性
目標埠。`webviewPort` 將被解析到此埠。
在 webview 中重新對映的 localhost 埠。
WebviewView
基於 webview 的檢視。
事件
onDidChangeVisibility: Event<void>
當檢視的可見性發生變化時觸發的事件。
觸發可見性變化的動作:
- 檢視被摺疊或展開。
- 使用者切換到側邊欄或面板中的另一個頂級檢視組。
注意,透過上下文選單隱藏檢視會將其釋放並觸發 `onDidDispose`。
onDidDispose: Event<void>
檢視被釋放時觸發的事件。
檢視在使用者顯式隱藏時(當用戶右鍵單擊檢視並取消選中 webview 檢視時)被釋放。
嘗試在檢視被釋放後使用它將引發異常。
屬性
badge?: ViewBadge
為該 webview 檢視顯示的徽章。要刪除徽章,請設定為 undefined。
人類可讀的字串,在標題中顯示得不那麼突出。
在 UI 中顯示的檢視標題。
檢視標題最初來自擴充套件 `package.json` 的貢獻。
標識 webview 檢視的型別,例如 `'hexEditor.dataView'`。
跟蹤 webview 當前是否可見。
當檢視在螢幕上且展開時,它們是可見的。
webview: Webview
檢視的底層 webview。
方法
show(preserveFocus?: boolean): void
在 UI 中顯示檢視。
如果檢視已摺疊,這將展開它。
| 引數 | 描述 |
|---|---|
| preserveFocus?: boolean | 當 `true` 時,檢視不會獲得焦點。 |
| 返回值 | 描述 |
| void |
WebviewViewProvider
用於建立 `WebviewView` 元素的提供程式。
方法
resolveWebviewView(webviewView: WebviewView, context: WebviewViewResolveContext<unknown>, token: CancellationToken): void | Thenable<void>
解析 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 返回)透過以下順序覆蓋或合併計算:
defaultValue(如果已在 `package.json` 中定義,否則從值的型別派生)globalValue(如果已定義)workspaceValue(如果已定義)workspaceFolderValue(如果已定義)defaultLanguageValue(如果已定義)globalLanguageValue(如果已定義)workspaceLanguageValue(如果已定義)workspaceFolderLanguageValue(如果已定義)
注意:只有 `object` 值型別會被合併,所有其他值型別都會被覆蓋。
示例 1:覆蓋
defaultValue = 'on';
globalValue = 'relative';
workspaceFolderValue = 'off';
value = 'off';
示例 2:語言值
defaultValue = 'on';
globalValue = 'relative';
workspaceFolderValue = 'off';
globalLanguageValue = 'on';
value = 'on';
示例 3:物件值
defaultValue = { a: 1, b: 2 };
globalValue = { b: 3, c: 4 };
value = { a: 1, b: 3, c: 4 };
注意:工作區和工作區資料夾配置包含 `launch` 和 `tasks` 設定。它們的基名將是節識別符號的一部分。以下程式碼片段展示瞭如何從 `launch.json` 中檢索所有配置:
// launch.json configuration
const config = workspace.getConfiguration(
'launch',
vscode.workspace.workspaceFolders[0].uri
);
// retrieve values
const values = config.get('configurations');
有關更多資訊,請參閱 設定。
方法
從此配置返回一個值。
| 引數 | 描述 |
|---|---|
| section: string | 配置名稱,支援點分隔的名稱。 |
| 返回值 | 描述 |
| T | `section` 指定的值或 `undefined`。 |
get<T>(section: string, defaultValue: T): T
從此配置返回一個值。
| 引數 | 描述 |
|---|---|
| section: string | 配置名稱,支援點分隔的名稱。 |
| defaultValue: T | 當找不到值時,返回 `undefined` 或預設值。 |
| 返回值 | 描述 |
| T | `section` 指定的值或預設值。 |
檢查此配置是否具有某個值。
| 引數 | 描述 |
|---|---|
| section: string | 配置名稱,支援點分隔的名稱。 |
| 返回值 | 描述 |
| 布林值 | 如果節不解析為 `undefined`,則為 `true`。 |
inspect<T>(section: string): {defaultLanguageValue: T, defaultValue: T, globalLanguageValue: T, globalValue: T, key: string, languageIds: string[], workspaceFolderLanguageValue: T, workspaceFolderValue: T, workspaceLanguageValue: T, workspaceValue: T}
檢索有關配置設定的所有資訊。配置值通常由預設值、全域性或安裝範圍的值、工作區特定的值、資料夾特定的值和語言特定的值(如果 WorkspaceConfiguration 作用於某個語言)組成。
還提供了定義了給定配置設定的所有語言 ID。
注意:配置名稱必須表示配置樹中的一個葉節點(例如 `editor.fontSize` 而不是 `editor`),否則將不返回任何結果。
| 引數 | 描述 |
|---|---|
| section: string | 配置名稱,支援點分隔的名稱。 |
| 返回值 | 描述 |
| {defaultLanguageValue: T, defaultValue: T, globalLanguageValue: T, globalValue: T, key: string, languageIds: string[], workspaceFolderLanguageValue: T, workspaceFolderValue: T, workspaceLanguageValue: T, workspaceValue: T} | 關於配置設定的資訊或 `undefined`。 |
update(section: string, value: any, configurationTarget?: boolean | ConfigurationTarget, overrideInLanguage?: boolean): Thenable<void>
更新配置值。更新後的配置值將被持久化。
值可以在以下位置更改:
注意:要刪除配置值,請使用 `undefined`,例如:`config.update('somekey', undefined)`
- 丟擲 - 更新時出錯
- 未註冊的配置。
- 將視窗配置為工作區資料夾。
- 當沒有開啟工作區時,將配置設定為工作區或工作區資料夾。
- 當沒有工作區資料夾設定時,將配置設定為工作區資料夾。
- 當 WorkspaceConfiguration 未作用於某個資源時,將配置設定為工作區資料夾。
| 引數 | 描述 |
|---|---|
| section: string | 配置名稱,支援點分隔的名稱。 |
| value: any | 新值。 |
| configurationTarget?: boolean | ConfigurationTarget | |
| overrideInLanguage?: boolean | 是否在請求的語言 ID 的範圍內更新值。- 如果為 `true`,則在請求的語言 ID 下更新值。- 如果為 `undefined`,僅當配置已為該語言定義時,才在請求的語言 ID 下更新值。 |
| 返回值 | 描述 |
| Thenable<void> |
WorkspaceEdit
工作區編輯是多個資源和文件的文字和檔案更改的集合。
使用 `applyEdit` 函式來應用工作區編輯。
建構函式
new WorkspaceEdit(): WorkspaceEdit
| 引數 | 描述 |
|---|---|
| 返回值 | 描述 |
| WorkspaceEdit |
屬性
文字或資源更改受影響的資源數量。
方法
createFile(uri: Uri, options?: {contents: Uint8Array | DataTransferFile, ignoreIfExists: boolean, overwrite: boolean}, metadata?: WorkspaceEditEntryMetadata): void
建立常規檔案。
| 引數 | 描述 |
|---|---|
| uri: Uri | 新檔案的 URI。 |
| options?: {contents: Uint8Array | DataTransferFile, ignoreIfExists: boolean, overwrite: boolean} | 定義是否應覆蓋現有檔案或忽略它。當 `overwrite` 和 `ignoreIfExists` 都設定時,`overwrite` 生效。當兩者都未設定且檔案已存在時,編輯將無法成功應用。`content` 屬性允許設定檔案建立時的初始內容。 |
| metadata?: WorkspaceEditEntryMetadata | 條目的可選元資料。 |
| 返回值 | 描述 |
| void |
delete(uri: Uri, range: Range, metadata?: WorkspaceEditEntryMetadata): void
刪除給定範圍的文字。
| 引數 | 描述 |
|---|---|
| uri: Uri | 資源識別符號。 |
| range: Range | 範圍。 |
| metadata?: WorkspaceEditEntryMetadata | 條目的可選元資料。 |
| 返回值 | 描述 |
| void |
deleteFile(uri: Uri, options?: {ignoreIfNotExists: boolean, recursive: boolean}, metadata?: WorkspaceEditEntryMetadata): void
刪除檔案或資料夾。
| 引數 | 描述 |
|---|---|
| uri: Uri | 要刪除的檔案 URI。 |
| options?: {ignoreIfNotExists: boolean, recursive: boolean} | |
| metadata?: WorkspaceEditEntryMetadata | 條目的可選元資料。 |
| 返回值 | 描述 |
| void |
entries(): Array<[Uri, TextEdit[]]>
has(uri: Uri): boolean
檢查是否存在資源的文字編輯。
| 引數 | 描述 |
|---|---|
| uri: Uri | 資源識別符號。 |
| 返回值 | 描述 |
| 布林值 | 如果給定資源將受到此編輯的影響,則為 `true`。 |
insert(uri: Uri, position: Position, newText: string, metadata?: WorkspaceEditEntryMetadata): void
在給定位置插入給定文字。
| 引數 | 描述 |
|---|---|
| uri: Uri | 資源識別符號。 |
| position: Position | 一個位置。 |
| newText: string | 一個字串。 |
| metadata?: WorkspaceEditEntryMetadata | 條目的可選元資料。 |
| 返回值 | 描述 |
| void |
renameFile(oldUri: Uri, newUri: Uri, options?: {ignoreIfExists: boolean, overwrite: boolean}, metadata?: WorkspaceEditEntryMetadata): void
重新命名檔案或資料夾。
| 引數 | 描述 |
|---|---|
| oldUri: Uri | 現有的檔案。 |
| newUri: Uri | 新的位置。 |
| options?: {ignoreIfExists: boolean, overwrite: boolean} | 定義是否應覆蓋現有檔案或忽略它們。當 overwrite 和 ignoreIfExists 都設定時,overwrite 生效。 |
| metadata?: WorkspaceEditEntryMetadata | 條目的可選元資料。 |
| 返回值 | 描述 |
| void |
replace(uri: Uri, range: Range, newText: string, metadata?: WorkspaceEditEntryMetadata): void
用給定文字替換給定資源的給定範圍。
| 引數 | 描述 |
|---|---|
| uri: Uri | 資源識別符號。 |
| range: Range | 範圍。 |
| newText: string | 一個字串。 |
| metadata?: WorkspaceEditEntryMetadata | 條目的可選元資料。 |
| 返回值 | 描述 |
| void |
set(uri: Uri, edits: ReadonlyArray<TextEdit | SnippetTextEdit>): void
為資源設定(並替換)文字編輯或片段編輯。
| 引數 | 描述 |
|---|---|
| uri: Uri | 資源識別符號。 |
| edits: ReadonlyArray<TextEdit | SnippetTextEdit> | 編輯陣列。 |
| 返回值 | 描述 |
| void |
set(uri: Uri, edits: ReadonlyArray<[TextEdit | SnippetTextEdit, WorkspaceEditEntryMetadata]>): void
為資源設定(並替換)帶有元資料的文字編輯或片段編輯。
| 引數 | 描述 |
|---|---|
| uri: Uri | 資源識別符號。 |
| edits: ReadonlyArray<[TextEdit | SnippetTextEdit, WorkspaceEditEntryMetadata]> | 編輯陣列。 |
| 返回值 | 描述 |
| void |
set(uri: Uri, edits: readonly NotebookEdit[]): void
為資源設定(並替換)筆記本的編輯內容。
| 引數 | 描述 |
|---|---|
| uri: Uri | 資源識別符號。 |
| edits: readonly NotebookEdit[] | 編輯陣列。 |
| 返回值 | 描述 |
| void |
set(uri: Uri, edits: ReadonlyArray<[NotebookEdit, WorkspaceEditEntryMetadata]>): void
為資源設定(並替換)帶有元資料的筆記本的編輯內容。
| 引數 | 描述 |
|---|---|
| uri: Uri | 資源識別符號。 |
| edits: ReadonlyArray<[NotebookEdit, WorkspaceEditEntryMetadata]> | 編輯陣列。 |
| 返回值 | 描述 |
| void |
WorkspaceEditEntryMetadata
工作區編輯條目的附加資料。支援為條目新增標籤,並標記需要使用者確認的條目。編輯器將具有相同標籤的編輯內容分組到樹節點中,例如所有標記為“字串中的更改”的編輯內容將構成一個樹節點。
屬性
人類可讀的字串,顯示在同一行上,但不太突出。
iconPath?: IconPath
編輯的圖示路徑或ThemeIcon。
人類可讀的字串,顯示得很突出。
一個標誌,指示需要使用者確認。
WorkspaceEditMetadata
有關工作區編輯的附加資料。
屬性
向編輯器發出訊號,表明此編輯是重構。
WorkspaceFolder
工作區資料夾是編輯器開啟的多個根之一。所有工作區資料夾都是平等的,這意味著沒有活動或主工作區資料夾的概念。
屬性
此工作區資料夾的序號。
此工作區資料夾的名稱。預設為其uri路徑的基本名稱。
uri: Uri
此工作區資料夾的關聯 URI。
注意:選擇Uri型別是故意的,以便將來版本的編輯器可以支援非本地儲存的工作區資料夾,例如 ftp://server/workspaces/foo。
WorkspaceFolderPickOptions
用於配置工作區資料夾選擇 UI 行為的選項。
屬性
設定為 true 以在焦點移至編輯器其他部分或另一個視窗時保持選擇器開啟。此設定在 iPad 上被忽略,並且始終為 false。
可選字串,在輸入框中顯示為佔位符以指導使用者。
WorkspaceFoldersChangeEvent
描述工作區資料夾集更改的事件。
屬性
added: readonly WorkspaceFolder[]
新增的工作區資料夾。
removed: readonly WorkspaceFolder[]
移除的工作區資料夾。
WorkspaceSymbolProvider<T>
工作區符號提供程式介面定義了擴充套件與按名稱開啟符號功能之間的約定。
方法
provideWorkspaceSymbols(query: string, token: CancellationToken): ProviderResult<T[]>
專案範圍內匹配給定查詢字串的符號搜尋。
query 引數應以*寬鬆的方式*解釋,因為編輯器將自行對結果進行高亮顯示和評分。一個好的經驗法則是進行不區分大小寫的匹配,並簡單地檢查 query 的字元是否按順序出現在候選符號中。不要使用字首、子字串或類似的嚴格匹配。
為了提高效能,實現者可以實現 resolveWorkspaceSymbol,然後提供具有部分 location 物件的符號,而無需定義 range。編輯器隨後將僅為選定的符號呼叫 resolveWorkspaceSymbol,例如在開啟工作區符號時。
| 引數 | 描述 |
|---|---|
| query: string | 一個查詢字串,可以是空字串,在這種情況下應返回所有符號。 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T[]> | 文件高亮陣列或解析為這些高亮的 thenable。可以透過返回 |
resolveWorkspaceSymbol(symbol: T, token: CancellationToken): ProviderResult<T>
給定一個符號,填充其 location。每當在 UI 中選擇一個符號時,都會呼叫此方法。提供程式可以實現此方法,並從 provideWorkspaceSymbols 返回不完整的符號,這通常有助於提高效能。
| 引數 | 描述 |
|---|---|
| symbol: T | 要解析的符號。保證是一個物件例項,該物件是從早期呼叫 |
| token: CancellationToken | 取消令牌。 |
| 返回值 | 描述 |
| ProviderResult<T> | 解析後的符號或解析為該符號的 thenable。如果未返回結果,則使用提供的 |
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 在適當的地方使用 undefined 和 null TypeScript 型別來支援嚴格的 null 檢查。
用於身份驗證的名稱空間。