VS Code API

VS Code API 是一组可以在 Visual Studio Code 扩展中调用的 JavaScript API。本页面列出了扩展作者可用的所有 VS Code API。

API 命名空间和类

此列表是从VS Code仓库中的vscode.d.ts文件编译而来。

认证

用于身份验证的命名空间。

事件

当认证提供者的认证会话被添加、移除或更改时触发的事件

函数

获取用户登录到指定提供商的所有账户。 将此与getSession结合使用,以获取特定账户的认证会话。

目前,只有两个认证提供者是由内置扩展贡献给编辑器的,它们实现了GitHub和Microsoft认证:它们的providerId分别是'github'和'microsoft'。

注意:获取账户并不意味着您的扩展程序可以访问该账户或其认证会话。您可以通过调用getSession来验证对账户的访问权限。

ParameterDescription
providerId: string

要使用的提供者的ID

ReturnsDescription
Thenable<readonly AuthenticationSessionAccountInformation[]>

一个可解析为只读身份验证账户数组的 thenable。

获取与所需范围匹配的认证会话。如果未注册具有providerId的提供程序,或者用户不同意与扩展共享认证信息,则拒绝。如果有多个具有相同范围的会话,将向用户显示一个快速选择器,以选择他们想要使用的帐户。

目前,只有两个认证提供者是由内置扩展贡献给编辑器的,它们实现了GitHub和Microsoft认证:它们的providerId分别是'github'和'microsoft'。

ParameterDescription
providerId: string

要使用的提供者的ID

scopes: readonly string[]

表示请求的权限范围列表。这些权限取决于认证提供者。

options: AuthenticationGetSessionOptions & {createIfNone: true}
ReturnsDescription
Thenable<AuthenticationSession>

一个可解析为认证会话的thenable

获取与所需范围匹配的认证会话。如果未注册具有providerId的提供程序,或者用户不同意与扩展共享认证信息,则拒绝。如果有多个具有相同范围的会话,将向用户显示一个快速选择器,以选择他们想要使用的帐户。

目前,只有两个认证提供者是由内置扩展贡献给编辑器的,它们实现了GitHub和Microsoft认证:它们的providerId分别是'github'和'microsoft'。

ParameterDescription
providerId: string

要使用的提供者的ID

scopes: readonly string[]

表示请求的权限范围的列表。这些权限取决于认证提供者。

options: AuthenticationGetSessionOptions & {forceNewSession: true | AuthenticationForceNewSessionOptions}
ReturnsDescription
Thenable<AuthenticationSession>

一个可解析为认证会话的thenable

获取与所需范围匹配的认证会话。如果未注册具有providerId的提供程序,或者用户不同意与扩展共享认证信息,则拒绝。如果有多个具有相同范围的会话,将向用户显示一个快速选择器,以选择他们想要使用的帐户。

目前,只有两个认证提供者是由内置扩展贡献给编辑器的,它们实现了GitHub和Microsoft认证:它们的providerId分别是'github'和'microsoft'。

ParameterDescription
providerId: string

要使用的提供者的ID

scopes: readonly string[]

表示请求的权限范围的列表。这些权限取决于认证提供者。

options?: AuthenticationGetSessionOptions
ReturnsDescription
Thenable<AuthenticationSession | undefined>

一个可解析为认证会话的thenable,如果没有会话则为undefined

注册一个认证提供者。

每个ID只能有一个提供者,当某个ID已被另一个提供者使用时,会抛出错误。ID区分大小写。

ParameterDescription
id: string

提供者的唯一标识符。

label: string

提供者的人类可读名称。

provider: AuthenticationProvider

认证提供者提供者。

options?: AuthenticationProviderOptions

提供者的额外选项。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

聊天

聊天功能的命名空间。用户通过在聊天视图中发送消息与聊天参与者互动。聊天参与者可以通过ChatResponseStream使用Markdown或其他类型的内容进行回复。

函数

创建一个新的聊天参与者实例。

ParameterDescription
id: string

参与者的唯一标识符。

handler: ChatRequestHandler

参与者的请求处理程序。

ReturnsDescription
ChatParticipant

一个新的聊天参与者

命令

用于处理命令的命名空间。简而言之,命令是一个具有唯一标识符的函数。该函数有时也称为命令处理程序

可以使用registerCommandregisterTextEditorCommand函数将命令添加到编辑器中。命令可以手动执行或通过UI手势执行。这些是:

  • 调色板 - 使用package.json中的commands部分使命令显示在命令调色板中。
  • 键绑定 - 使用package.json中的keybindings部分来为您的扩展启用 键绑定

扩展可以访问来自其他扩展和编辑器本身的命令。然而,在调用编辑器命令时,并非所有参数类型都受支持。

这是一个示例,注册一个命令处理程序并将该命令的条目添加到调色板中。首先使用标识符extension.sayHello注册一个命令处理程序。

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

其次,将命令标识符绑定到一个标题下,该标题将在调色板中显示(package.json)。

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

函数

执行由给定命令标识符表示的命令。

  • 注意 1: 执行编辑器命令时,并非所有类型都可以作为参数传递。允许的类型包括基本类型 string, boolean, number, undefined, 和 null, 以及 Position, Range, UriLocation
  • 注意 2: 执行由扩展贡献的命令时没有任何限制。
ParameterDescription
command: string

要执行的命令的标识符。

...rest: any[]

传递给命令函数的参数。

ReturnsDescription
Thenable<T>

一个可解析为给定命令返回值的 thenable。当命令处理函数没有返回任何内容时,返回 undefined

检索所有可用命令的列表。以下划线开头的命令被视为内部命令。

ParameterDescription
filterInternal?: boolean

设置为true以不显示内部命令(以下划线开头)

ReturnsDescription
Thenable<string[]>

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

注册一个可以通过键盘快捷键、菜单项、操作或直接调用的命令。

使用现有命令标识符注册命令两次将导致错误。

ParameterDescription
command: string

命令的唯一标识符。

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

一个命令处理函数。

thisArg?: any

调用处理程序函数时使用的 this 上下文。

ReturnsDescription
Disposable

一次性使用,处理时取消注册此命令。

注册一个可以通过键盘快捷键、菜单项、操作或直接调用的文本编辑器命令。

文本编辑器命令与普通的命令不同,因为它们仅在调用命令时存在活动编辑器时执行。此外,编辑器命令的处理程序可以访问活动编辑器和编辑构建器。请注意,编辑构建器仅在回调执行期间有效。

ParameterDescription
command: string

命令的唯一标识符。

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

一个命令处理函数,可以访问编辑器编辑

thisArg?: any

调用处理程序函数时使用的this上下文。

ReturnsDescription
Disposable

一次性使用,在处置时取消注册此命令。

评论

函数

创建一个新的评论控制器实例。

ParameterDescription
id: string

评论控制器的id

label: string

评论控制器的人类可读字符串。

ReturnsDescription
CommentController

评论控制器的一个实例。

调试

调试功能的命名空间。

变量

当前活动的调试控制台。 如果没有活动的调试会话,发送到调试控制台的输出将不会显示。

当前活动的调试会话undefined。活动的调试会话是由调试操作浮动窗口表示的会话,或者是当前显示在调试操作浮动窗口下拉菜单中的会话。如果没有活动的调试会话,则值为undefined

当前聚焦的线程或堆栈帧,如果没有聚焦的线程或堆栈,则为undefined。当有活动的调试会话时,线程可以随时聚焦,而堆栈帧只能在会话暂停并且调用堆栈已检索时聚焦。

断点列表。

事件

活动调试会话发生变化时触发的事件注意,当活动调试会话变为undefined时,该事件也会触发。

debug.activeStackItem发生变化时触发的事件。

当断点集合被添加、移除或更改时发出的事件

当从调试会话接收到自定义DAP事件时触发的事件

当一个新的调试会话开始时触发的事件

调试会话终止时触发的事件

函数

添加断点。

ParameterDescription
breakpoints: readonly Breakpoint[]

要添加的断点。

ReturnsDescription
void

将通过调试适配器协议接收的“Source”描述符对象转换为可用于加载其内容的Uri。 如果源描述符基于路径,则返回文件Uri。 如果源描述符使用引用号,则构建一个特定的调试Uri(方案'debug'),该Uri需要相应的ContentProvider和正在运行的调试会话

如果“Source”描述符没有足够的信息来创建Uri,则会抛出错误。

ParameterDescription
source: DebugProtocolSource

一个符合调试适配器协议中定义的Source类型的对象。

session?: DebugSession

一个可选的调试会话,当源描述符使用引用编号从活动调试会话加载内容时,将使用此会话。

ReturnsDescription
Uri

一个可用于加载源内容的URI。

为特定的调试类型注册一个调试适配器描述符工厂。 扩展程序只能为其定义的调试类型注册DebugAdapterDescriptorFactory。否则会抛出错误。 为一个调试类型注册多个DebugAdapterDescriptorFactory会导致错误。

ParameterDescription
debugType: string

工厂注册的调试类型。

factory: DebugAdapterDescriptorFactory
ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此工厂。

为给定的调试类型注册一个调试适配器跟踪器工厂。

ParameterDescription
debugType: string

工厂注册的调试类型或 '*' 以匹配所有调试类型。

factory: DebugAdapterTrackerFactory
ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此工厂。

为特定的调试类型注册一个调试配置提供者。 可选的triggerKind可用于指定提供者的provideDebugConfigurations方法何时被触发。 目前有两种触发类型:当值为Initial(或未提供触发类型参数)时,provideDebugConfigurations方法用于提供初始调试配置,这些配置将被复制到新创建的launch.json中。 当触发类型为Dynamic时,provideDebugConfigurations方法用于动态确定要呈现给用户的调试配置(除了来自launch.json的静态配置之外)。 请注意,triggerKind参数仅适用于provideDebugConfigurations方法:因此resolveDebugConfiguration方法完全不受影响。 为不同的触发类型注册一个具有解析方法的提供者,会导致相同的解析方法被多次调用。 可以为同一类型注册多个提供者。

ParameterDescription
debugType: string

提供程序注册的调试类型。

provider: DebugConfigurationProvider

要注册的调试配置提供程序

triggerKind?: DebugConfigurationProviderTriggerKind

提供者的provideDebugConfiguration方法注册的触发器。如果缺少triggerKind,则假定值为DebugConfigurationProviderTriggerKind.Initial

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

移除断点。

ParameterDescription
breakpoints: readonly Breakpoint[]

要删除的断点。

ReturnsDescription
void

通过使用命名的启动或命名的复合配置开始调试,或者直接传递一个DebugConfiguration。命名的配置在给定文件夹中的'.vscode/launch.json'中查找。在调试开始之前,所有未保存的文件都会被保存,并且启动配置会被更新为最新状态。配置中使用的文件夹特定变量(例如'${workspaceFolder}')会根据给定文件夹进行解析。

ParameterDescription
folder: WorkspaceFolder

用于查找命名配置和解析变量的工作区文件夹,或为非文件夹设置返回undefined

nameOrConfiguration: string | DebugConfiguration

调试或复合配置的名称,或者是一个DebugConfiguration对象。

parentSessionOrOptions?: DebugSession | DebugSessionOptions

调试会话选项。当传递一个父调试会话时,假定仅使用此父会话的选项。

ReturnsDescription
Thenable<boolean>

一个当调试成功启动时可以解析的thenable。

停止给定的调试会话,如果省略会话,则停止所有调试会话。

ParameterDescription
session?: DebugSession

要停止的调试会话;如果省略,则停止所有会话。

ReturnsDescription
Thenable<void>

当会话停止时解析的 thenable。

环境

描述编辑器运行环境的命名空间。

变量

应用程序的托管位置 在桌面上,这是'desktop' 在网页上,这是指定的嵌入器,即'github.dev'、'codespaces',如果嵌入器未提供该信息,则为'web'

编辑器的应用程序名称,例如 'VS Code'。

编辑器运行的应用程序根文件夹。

注意,在没有应用程序根文件夹表示的环境中运行时,该值为空字符串。

系统剪贴板。

表示这是应用程序的首次安装。 true 如果在安装的第一天内,否则为 false

指示用户是否启用了遥测功能。 可以观察到以确定扩展是否应发送遥测数据。

表示首选用户语言,如 de-CHfren-US

编辑器的当前日志级别。

计算机的唯一标识符。

远程的名称。由扩展定义,常见的示例是用于Windows子系统的wsl或使用安全外壳的远程的ssh-remote

注意,当没有远程扩展主机时,值为undefined,但如果存在远程扩展主机,则该值在所有扩展主机(本地和远程)中都有定义。使用Extension.extensionKind来了解特定扩展是否在远程运行。

当前会话的唯一标识符。 每次启动编辑器时都会更改。

检测到的扩展主机的默认shell,这会被扩展主机平台的terminal.integrated.defaultProfile设置覆盖。请注意,在不支持shell的环境中,该值为空字符串。

UI kind 属性指示从哪个 UI 扩展访问。例如,扩展可以从桌面应用程序或网页浏览器访问。

编辑器在操作系统中注册的自定义URI方案。

事件

当编辑器的日志级别发生变化时触发的事件

当默认 shell 更改时触发的 Event。此事件会携带新的 shell 路径。

当用户启用或禁用遥测时触发的事件true 如果用户启用了遥测,或 false 如果用户禁用了遥测。

函数

将URI解析为可从外部访问的形式。

http:https: 方案

解析一个外部 URI,例如从扩展运行的http:https:链接,到客户端机器上相同资源的URI。

如果扩展在客户端机器上运行,则这是一个无操作。

如果扩展程序在远程运行,此函数会自动建立一个从本地机器到远程target的端口转发隧道,并返回隧道的本地URI。端口转发隧道的生命周期由编辑器管理,用户也可以关闭隧道。

注意,通过 openExternal 传递的 uris 会自动解析,您不应该对它们调用 asExternalUri

vscode.env.uriScheme

创建一个URI - 如果在浏览器中打开(例如通过openExternal) - 将触发已注册的UriHandler

扩展程序不应对生成的uri做出任何假设,也不应以任何方式更改它。 相反,扩展程序可以例如在认证流程中使用此uri,通过将uri作为回调查询参数添加到服务器以进行认证。

注意,如果服务器决定向uri添加额外的查询参数(例如令牌或密钥),它将会出现在传递给UriHandler的uri中。

示例 认证流程:

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

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

注意,扩展程序不应缓存asExternalUri的结果,因为解析的URI可能会由于系统或用户操作而失效——例如,在远程情况下,用户可能会关闭由asExternalUri打开的端口转发隧道。

任何其他方案

任何其他方案将被视为提供的URI是工作区URI。在这种情况下,该方法将返回一个URI,当处理时,将使编辑器打开工作区。

ParameterDescription
target: Uri
ReturnsDescription
Thenable<Uri>

可以在客户端机器上使用的uri。

创建一个新的遥测记录器

ParameterDescription
sender: TelemetrySender

遥测记录器使用的遥测发送器。

options?: TelemetryLoggerOptions

遥测记录器的选项。

ReturnsDescription
TelemetryLogger

一个新的遥测记录器

使用默认应用程序外部打开链接。根据使用的方案,这可以是:

  • 一个浏览器 (http:, https:)
  • 邮件客户端 (mailto:)
  • VSCode 本身 (vscode: 来自 vscode.env.uriScheme)

注意showTextDocument 是在编辑器中打开文本文档的正确方式,而不是这个函数。

ParameterDescription
target: Uri

应该打开的uri。

ReturnsDescription
Thenable<boolean>

一个指示打开是否成功的承诺。

扩展

用于处理已安装扩展的命名空间。扩展由Extension接口表示,该接口使它们能够进行反射。

扩展作者可以通过从activate调用返回其API公共接口来向其他扩展提供API。

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

当依赖于另一个扩展的API时,向package.json添加一个extensionDependencies条目,并使用getExtension函数和exports属性,如下所示:

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

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

变量

系统当前已知的所有扩展。

事件

extensions.all发生变化时触发的事件。这可能在扩展被安装、卸载、启用或禁用时发生。

函数

通过其完整标识符获取扩展,格式为:publisher.name

ParameterDescription
extensionId: string

扩展标识符。

ReturnsDescription
Extension<T> | undefined

一个扩展或 undefined

本地化

扩展API中与本地化相关的功能的命名空间。要正确使用此功能,您必须在扩展清单中定义l10n,并拥有bundle.l10n..json文件。有关如何生成bundle.l10n..json文件的更多信息,请查看vscode-l10n仓库

注意:内置扩展(例如,Git、TypeScript 语言功能、GitHub 认证)不受 l10n 属性要求的限制。换句话说,它们不需要在扩展清单中指定 l10n,因为它们的翻译字符串来自语言包。

变量

已加载的扩展程序的本地化字符串包。如果未加载任何包,则未定义。通常,如果未找到包或我们使用默认语言运行时,不会加载包。

已为扩展加载的本地化包的URI。如果未加载任何包,则为未定义。通常,如果未找到包或我们使用默认语言运行时,不会加载该包。

函数

标记一个字符串以便进行本地化。如果为env.language指定的语言有可用的本地化包,并且该包中有此消息的本地化值,则将返回该本地化值(对于任何模板值,将注入args值)。

示例

l10n.t('Hello {0}!', 'World');
ParameterDescription
message: string

要本地化的消息。支持索引模板,其中像 {0}{1} 这样的字符串会被 args 数组中相应索引的项替换。

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

用于本地化字符串的参数。参数的索引用于匹配本地化字符串中的模板占位符。

ReturnsDescription
string

带有注入参数的本地化字符串。

标记一个字符串以便进行本地化。如果为env.language指定的语言有可用的本地化包,并且该包中有此消息的本地化值,则将返回该本地化值(对于任何模板值,将注入args值)。

示例

l10n.t('Hello {name}', { name: 'Erich' });
ParameterDescription
message: string

要本地化的消息。支持命名模板,其中像 {foo}{bar} 这样的字符串会被 Record 中该键(foo、bar 等)的值替换。

args: Record<string, any>

用于本地化字符串的参数。记录中的键名用于匹配本地化字符串中的模板占位符。

ReturnsDescription
string

带有注入参数的本地化字符串。

标记一个字符串以便进行本地化。如果为env.language指定的语言提供了本地化包,并且该包中有此消息的本地化值,则将返回该本地化值(对于任何模板值,将注入参数值)。

ParameterDescription
options: {args: Array<string | number | boolean> | Record<string, any>, comment: string | string[], message: string}

本地化消息时使用的选项。

ReturnsDescription
string

带有注入参数的本地化字符串。

语言

用于参与语言特定编辑器功能的命名空间, 如IntelliSense、代码操作、诊断等。

存在许多编程语言,它们在语法、语义和范式上有很大的差异。尽管如此,像自动单词补全、代码导航或代码检查这样的功能在不同的编程语言工具中已经变得流行。

编辑器提供了一个API,通过已经准备好的所有UI和操作,并允许您仅通过提供数据来参与,使得提供这些常见功能变得简单。例如,要提供一个悬停功能,您只需提供一个函数,该函数可以使用TextDocumentPosition调用,返回悬停信息。其余的工作,如跟踪鼠标、定位悬停、保持悬停稳定等,都由编辑器处理。

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

注册是通过使用文档选择器完成的,该选择器可以是语言ID,如javascript,也可以是更复杂的过滤器,如{ language: 'typescript', scheme: 'file' }。将文档与此类选择器匹配将产生一个分数,该分数用于确定是否以及如何使用提供程序。当分数相等时,最后注册的提供程序将获胜。对于允许完全参数化的功能,如悬停,分数只需检查是否>0,而对于其他功能,如IntelliSense,分数用于确定提供程序参与的顺序。

事件

当全局诊断集发生变化时触发的事件。这是新增和移除的诊断。

函数

创建一个诊断集合。

ParameterDescription
name?: string

集合的name

ReturnsDescription
DiagnosticCollection

一个新的诊断集合。

创建一个新的语言状态项

ParameterDescription
id: string

项目的标识符。

selector: DocumentSelector

定义项目显示在哪些编辑器中的文档选择器。

ReturnsDescription
LanguageStatusItem

一个新的语言状态项。

获取给定资源的所有诊断信息。

ParameterDescription
resource: Uri

一个资源

ReturnsDescription
Diagnostic[]

一个诊断对象的数组或一个空数组。

获取所有诊断信息。

ParameterDescription
ReturnsDescription
Array<[Uri, Diagnostic[]]>

一个包含uri-diagnostics元组的数组或一个空数组。

返回所有已知语言的标识符。

ParameterDescription
ReturnsDescription
Thenable<string[]>

Promise 解析为一个标识符字符串数组。

计算文档选择器与文档之间的匹配度。大于零的值表示选择器与文档匹配。

匹配是根据以下规则计算的:

  1. DocumentSelector是一个数组时,计算每个包含的DocumentFilter或语言标识符的匹配值,并取最大值。
  2. 一个字符串将被解析为DocumentFilterlanguage部分,因此"fooLang"类似于{ language: "fooLang" }
  3. 一个DocumentFilter将通过将其部分与文档进行比较来匹配文档。以下规则适用:
    1. DocumentFilter为空({})时,结果为0
    2. 当定义了schemelanguagepatternnotebook但其中一个不匹配时,结果为0
    3. *匹配得分为5,通过相等或通过通配符模式匹配得分为10
    4. 结果是每个匹配的最大值

示例:

// default document from disk (file-scheme)
doc.uri; //'file:///my/file.js'
doc.languageId; // 'javascript'
match('javascript', doc); // 10;
match({ language: 'javascript' }, doc); // 10;
match({ language: 'javascript', scheme: 'file' }, doc); // 10;
match('*', doc); // 5
match('fooLang', doc); // 0
match(['fooLang', '*'], doc); // 5

// virtual document, e.g. from git-index
doc.uri; // 'git:/my/file.js'
doc.languageId; // 'javascript'
match('javascript', doc); // 10;
match({ language: 'javascript', scheme: 'git' }, doc); // 10;
match('*', doc); // 5

// notebook cell document
doc.uri; // `vscode-notebook-cell:///my/notebook.ipynb#gl65s2pmha`;
doc.languageId; // 'python'
match({ notebookType: 'jupyter-notebook' }, doc); // 10
match({ notebookType: 'fooNotebook', language: 'python' }, doc); // 0
match({ language: 'python' }, doc); // 10
match({ notebookType: '*' }, doc); // 5
ParameterDescription
selector: DocumentSelector

文档选择器。

document: TextDocument

一个文本文档。

ReturnsDescription
number

当选择器匹配时,数字 >0;当选择器不匹配时,数字 0

注册一个调用层次结构提供者。

ParameterDescription
selector: DocumentSelector

一个选择器,定义了此提供者适用的文档。

provider: CallHierarchyProvider

调用层次结构提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个代码操作提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行请求,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: CodeActionProvider<CodeAction>

一个代码操作提供者。

metadata?: CodeActionProviderMetadata

关于提供者提供的代码操作类型的元数据。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个代码镜头提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行请求,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: CodeLensProvider<CodeLens>

一个代码镜头提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个颜色提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行请求,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: DocumentColorProvider

一个颜色提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个完成提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会根据它们的分数进行排序,并且相同分数的组会依次请求完成项。当一个或多个组的提供者返回结果时,过程停止。失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

一个完成项提供者可以与一组triggerCharacters相关联。当输入触发字符时,会请求完成项,但仅从注册了该输入字符的提供者那里获取。因此,触发字符应该与单词字符不同,常见的触发字符是.,用于触发成员完成项。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: CompletionItemProvider<CompletionItem>

一个完成提供者。

...triggerCharacters: string[]

当用户输入其中一个字符时触发完成。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个声明提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行请求,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: DeclarationProvider

一个声明提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个定义提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行请求,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: DefinitionProvider

一个定义提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个新的DocumentDropEditProvider

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: DocumentDropEditProvider

一个下拉提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

为文档注册一个格式化提供程序。

可以为一种语言注册多个提供者。在这种情况下,提供者会根据它们的分数进行排序,并使用最佳匹配的提供者。所选提供者的失败将导致整个操作的失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: DocumentFormattingEditProvider

一个文档格式化编辑提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个文档高亮提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会根据它们的分数进行排序,并依次请求文档高亮。当提供者返回non-falsynon-failure结果时,过程停止。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: DocumentHighlightProvider

文档高亮提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个文档链接提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行请求,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: DocumentLinkProvider<DocumentLink>

一个文档链接提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

为文档范围注册一个格式化提供程序。

注意: 文档范围提供者也是一个文档格式化器,这意味着在注册范围提供者时,不需要再注册文档格式化器。

可以为一种语言注册多个提供者。在这种情况下,提供者会根据它们的分数进行排序,并使用最佳匹配的提供者。所选提供者的失败将导致整个操作的失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: DocumentRangeFormattingEditProvider

一个文档范围格式化编辑提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

为文档范围注册一个语义标记提供者。

注意: 如果一个文档同时具有 DocumentSemanticTokensProviderDocumentRangeSemanticTokensProvider, 范围提供程序将仅在最初被调用,即在全文档提供程序解析第一个请求的时间内。一旦全文档提供程序解析了第一个请求,通过范围提供程序提供的语义标记将被丢弃,从那时起,将仅使用文档提供程序。

可以为一种语言注册多个提供者。在这种情况下,提供者会根据它们的分数进行排序,并使用最佳匹配的提供者。所选提供者的失败将导致整个操作的失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: DocumentRangeSemanticTokensProvider

文档范围语义标记提供者。

legend: SemanticTokensLegend
ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

为整个文档注册一个语义标记提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会根据它们的分数进行排序,并使用最佳匹配的提供者。所选提供者的失败将导致整个操作的失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: DocumentSemanticTokensProvider

文档语义标记提供者。

legend: SemanticTokensLegend
ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个文档符号提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行请求,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: DocumentSymbolProvider

一个文档符号提供者。

metaData?: DocumentSymbolProviderMetadata

关于提供者的元数据

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个提供者,用于在文本文档中定位可评估的表达式。 编辑器将在活动的调试会话中评估该表达式,并在调试悬停中显示结果。

如果为一种语言注册了多个提供者,将使用任意一个提供者。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: EvaluatableExpressionProvider

一个可评估的表达式提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个折叠范围提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行询问,并且结果会被合并。 如果多个折叠范围从同一位置开始,则只使用第一个注册提供者的范围。 如果一个折叠范围与另一个位置较小的范围重叠,则它也会被忽略。

失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: FoldingRangeProvider

一个折叠范围提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个悬停提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行请求,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: HoverProvider

一个悬停提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个实现提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行请求,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: ImplementationProvider

一个实现提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个内嵌提示提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行请求,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: InlayHintsProvider<InlayHint>

一个嵌入提示提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个内联完成提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行请求,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: InlineCompletionItemProvider

一个内联完成提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个提供程序,该程序返回调试器的“内联值”功能所需的数据。 每当通用调试器在源文件中停止时,就会调用为该文件语言注册的提供程序, 以返回将在编辑器行尾显示的文本数据。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行请求,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: InlineValuesProvider

一个内联值提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个链接编辑范围提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会根据它们的分数进行排序,并使用具有结果的最佳匹配提供者。所选提供者的失败将导致整个操作的失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: LinkedEditingRangeProvider

一个链接编辑范围提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个适用于类型的格式化提供程序。当用户启用设置editor.formatOnType时,该提供程序将处于活动状态。

可以为一种语言注册多个提供者。在这种情况下,提供者会根据它们的分数进行排序,并使用最佳匹配的提供者。所选提供者的失败将导致整个操作的失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: OnTypeFormattingEditProvider

一种类型格式化编辑提供者。

firstTriggerCharacter: string

一个应该触发格式化的字符,比如 }

...moreTriggerCharacter: string[]

更多触发字符。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个参考提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行请求,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: ReferenceProvider

一个参考提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个重命名提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会根据它们的分数进行排序,并按顺序询问。第一个产生结果的提供者将定义整个操作的结果。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: RenameProvider

一个重命名提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个选择范围提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行请求,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: SelectionRangeProvider

一个选择范围提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个签名帮助提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会根据它们的分数进行排序,并按顺序调用,直到某个提供者返回有效结果。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: SignatureHelpProvider

一个签名帮助提供者。

...triggerCharacters: string[]

当用户输入其中一个字符时触发签名帮助,例如 ,(

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: SignatureHelpProvider

一个签名帮助提供者。

metadata: SignatureHelpProviderMetadata

关于提供商的信息。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个类型定义提供者。

可以为一种语言注册多个提供者。在这种情况下,提供者会被并行请求,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: TypeDefinitionProvider

类型定义提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个类型层次结构提供者。

ParameterDescription
selector: DocumentSelector

定义此提供程序适用的文档的选择器。

provider: TypeHierarchyProvider

类型层次结构提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个工作区符号提供者。

可以注册多个提供者。在这种情况下,提供者会被并行询问,并且结果会被合并。一个失败的提供者(被拒绝的承诺或异常)不会导致整个操作失败。

ParameterDescription
provider: WorkspaceSymbolProvider<SymbolInformation>

一个工作区符号提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

为一种语言设置语言配置

ParameterDescription
language: string

一个语言标识符,如 typescript

configuration: LanguageConfiguration

语言配置。

ReturnsDescription
Disposable

一个Disposable,用于取消此配置。

设置(并更改)与给定文档关联的语言

注意,调用此函数将触发 onDidCloseTextDocument 事件,随后触发 onDidOpenTextDocument 事件。

ParameterDescription
document: TextDocument

要更改语言的文档

languageId: string

新的语言标识符。

ReturnsDescription
Thenable<TextDocument>

一个可解析为更新后文档的 thenable。

lm

语言模型相关功能的命名空间。

变量

所有扩展注册的可用工具列表,使用lm.registerTool注册。它们可以通过lm.invokeTool调用,输入需符合其声明的inputSchema

事件

当可用聊天模型集合发生变化时触发的事件。

函数

通过名称调用lm.tools中列出的工具,并使用给定的输入。输入将根据工具声明的模式进行验证。

工具可以由聊天参与者在处理聊天请求的上下文中调用,也可以由任何扩展在任何自定义流程中全局调用。

在前一种情况下,调用者应传递 toolInvocationToken,该令牌随 聊天请求一起提供。这确保了聊天界面显示正确的对话工具调用。

一个工具结果是一个由文本-提示-tsx-部分组成的数组。如果工具调用者使用vscode/prompt-tsx,它可以 使用ToolResult将响应部分合并到其提示中。如果不使用,这些部分可以通过带有LanguageModelToolResultPart的用户消息传递给 LanguageModelChat

如果聊天参与者希望保留跨多个回合请求的工具结果,它可以将工具结果存储在从处理程序返回的ChatResult.metadata中,并在下一个回合从ChatResponseTurn.result中检索它们。

ParameterDescription
name: string

要调用的工具名称。

options: LanguageModelToolInvocationOptions<object>

调用工具时要使用的选项。

token?: CancellationToken

一个取消令牌。有关如何创建一个,请参见CancellationTokenSource

ReturnsDescription
Thenable<LanguageModelToolResult>

工具调用的结果。

注册一个LanguageModelTool。该工具还必须在package.json的languageModelTools贡献点中注册。注册的工具可以在lm.tools列表中供任何扩展查看。但为了让语言模型能够看到它,必须在LanguageModelChatRequestOptions.tools的可用工具列表中传递它。

ParameterDescription
name: string
tool: LanguageModelTool<T>
ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册该工具。

通过选择器选择聊天模型。这可能会产生多个或没有聊天模型,扩展必须优雅地处理这些情况,特别是在没有聊天模型存在时。

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

选择器可以广泛匹配给定供应商或系列的所有模型,也可以通过ID精确选择一个模型。 请记住,可用的模型集将随时间变化,而且不同模型中的提示表现可能不同。

注意,扩展可以保留此函数返回的结果并在以后使用它们。然而,当触发 onDidChangeChatModels事件时,聊天模型列表可能已更改,扩展应重新查询。

ParameterDescription
selector?: LanguageModelChatSelector

聊天模型选择器。当省略时,返回所有聊天模型。

ReturnsDescription
Thenable<LanguageModelChat[]>

一组聊天模型,可以为空!

笔记本

笔记本的命名空间。

笔记本功能由三个松散耦合的组件组成:

  1. NotebookSerializer 使编辑器能够打开、显示和保存笔记本
  2. NotebookController 拥有笔记本的执行权限,例如它们从代码单元创建输出。
  3. NotebookRenderer 在编辑器中呈现笔记本输出。它们在单独的上下文中运行。

函数

创建一个新的笔记本控制器。

ParameterDescription
id: string

控制器的标识符。每个扩展中必须是唯一的。

notebookType: string

此控制器适用的笔记本类型。

label: string

控制器的标签。

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

控制器的执行处理器。

ReturnsDescription
NotebookController

一个新的笔记本控制器。

创建一个新的消息传递实例,用于与特定的渲染器进行通信。

  • 注意 1: 扩展只能创建它们在 package.json 文件中定义的渲染器
  • 注意2: 渲染器只有在notebookRenderer贡献中requiresMessaging设置为alwaysoptional时才能访问消息传递。
ParameterDescription
rendererId: string

用于通信的渲染器ID

ReturnsDescription
NotebookRendererMessaging

一个新的笔记本渲染器消息对象。

为给定的笔记本类型注册一个单元格状态栏项提供者

ParameterDescription
notebookType: string

要注册的笔记本类型。

provider: NotebookCellStatusBarItemProvider

一个单元格状态栏提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

scm

源代码管理的命名空间。

变量

扩展创建的最后一个源代码控制的输入框

  • 已弃用 - 请改用 SourceControl.inputBox

函数

创建一个新的源代码控制实例。

ParameterDescription
id: string

一个用于源代码控制的id。简短的内容,例如:git

label: string

用于源代码控制的人类可读字符串。例如:Git

rootUri?: Uri

源控制根目录的可选Uri。例如:Uri.parse(workspaceRoot)

ReturnsDescription
SourceControl

源代码控制的一个实例。

任务

任务功能的命名空间。

变量

当前活动的任务执行或一个空数组。

事件

当任务结束时触发。

当底层进程结束时触发。 对于不执行底层进程的任务,此事件不会触发。

当任务开始时触发。

当底层进程启动时触发。 对于不执行底层进程的任务,此事件不会触发。

函数

执行由编辑器管理的任务。返回的任务执行可用于终止任务。

  • 抛出 - 在无法启动新进程的环境中运行ShellExecution或ProcessExecution任务时。在此类环境中,只能运行CustomExecution任务。
ParameterDescription
task: Task

要执行的任务

ReturnsDescription
Thenable<TaskExecution>

一个可解析为任务执行的 thenable。

获取系统中所有可用的任务。这包括来自tasks.json文件的任务,以及通过扩展贡献的任务提供者的任务。

ParameterDescription
filter?: TaskFilter

可选过滤器,用于选择特定类型或版本的任务。

ReturnsDescription
Thenable<Task[]>

一个可解析为任务数组的 thenable。

注册一个任务提供者。

ParameterDescription
type: string

此提供程序注册的任务类型。

provider: TaskProvider<Task>

一个任务提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

测试

用于测试功能的命名空间。测试通过注册 TestController 实例发布,然后添加 TestItems。 控制器还可以通过创建一个或多个 TestRunProfile 实例来描述如何运行测试。

函数

创建一个新的测试控制器。

ParameterDescription
id: string

控制器的标识符,必须是全局唯一的。

label: string

控制器的可读标签。

ReturnsDescription
TestController

TestController 的一个实例。

窗口

用于处理编辑器当前窗口的命名空间。这包括可见和活动的编辑器,以及用于显示消息、选择和要求用户输入的UI元素。

变量

当前在设置中配置的活动颜色主题。可以通过workbench.colorTheme设置更改活动主题。

当前活动的notebook editorundefined。活动编辑器是当前具有焦点的编辑器,或者在没有焦点时,最近更改输入的编辑器。

当前活动的终端或undefined。活动终端是当前具有焦点或最近具有焦点的终端。

当前活动的编辑器或undefined。活动编辑器是当前获得焦点的编辑器,或者在没有焦点时,最近更改输入的编辑器。

表示当前窗口的状态。

表示主编辑器区域内的网格小部件

当前打开的终端或一个空数组。

当前可见的notebook editors或一个空数组。

当前可见的编辑器或一个空数组。

事件

当活动颜色主题更改或发生变化时触发的事件

活动笔记本编辑器发生变化时触发的事件注意,当活动编辑器变为undefined时,该事件也会触发。

活动终端发生变化时触发的事件注意,当活动终端变为undefined时,该事件也会触发。

活动编辑器发生变化时触发的事件注意,当活动编辑器变为undefined时,该事件也会触发。

笔记本编辑器选择发生变化时触发的事件

笔记本编辑器可见范围发生变化时触发的事件

当终端中的 shell 集成激活或其属性之一发生变化时触发。

终端的状态发生变化时触发的事件

当编辑器的选项发生变化时触发的事件

当编辑器中的选择发生变化时触发的事件

当编辑器的视图列发生变化时触发的事件

当编辑器的可见范围发生变化时触发的事件

可见的笔记本编辑器发生变化时触发的事件

可见编辑器的数组发生变化时触发的事件

当当前窗口的焦点或活动状态发生变化时触发的事件。事件的值表示窗口是否处于焦点状态。

当终端被处理时触发的事件

当终端命令结束时,将触发此事件。此事件仅在终端的shell集成被激活时触发。

当终端被创建时触发的事件,无论是通过createTerminal API还是命令。

当终端命令启动时,此事件将被触发。此事件仅在终端的shell集成被激活时触发。

函数

创建一个InputBox,让用户输入一些文本。

请注意,在许多情况下,更方便的window.showInputBox更容易使用。当window.showInputBox不提供所需的灵活性时,应使用window.createInputBox

ParameterDescription
ReturnsDescription
InputBox

一个新的InputBox

创建一个具有给定名称和语言ID的新输出通道 如果未提供语言ID,则默认使用Log作为语言ID。

你可以从可见编辑器活动编辑器中访问可见或活动的输出通道作为文本文档,并使用语言ID来贡献语言功能,如语法着色、代码镜头等。

ParameterDescription
name: string

在用户界面中用于表示通道的人类可读字符串。

languageId?: string

与频道关联的语言标识符。

ReturnsDescription
OutputChannel

一个新的输出通道。

创建一个具有给定名称的新日志输出通道

ParameterDescription
name: string

在用户界面中用于表示通道的人类可读字符串。

options: {log: true}

日志输出通道的选项。

ReturnsDescription
LogOutputChannel

一个新的日志输出通道。

创建一个QuickPick,让用户从类型为T的项目列表中选择一个项目。

请注意,在许多情况下,使用更方便的window.showQuickPick更为简单。当window.showQuickPick无法提供所需的灵活性时,应使用window.createQuickPick

ParameterDescription
ReturnsDescription
QuickPick<T>

一个新的QuickPick

创建一个状态栏项目

ParameterDescription
id: string

项目的标识符。在扩展中必须是唯一的。

alignment?: StatusBarAlignment

项目的对齐方式。

priority?: number

项目的优先级。数值越高,项目应显示在更左侧。

ReturnsDescription
StatusBarItem

一个新的状态栏项目。

创建一个状态栏项目

另请参阅 createStatusBarItem 用于创建带有标识符的状态栏项。

ParameterDescription
alignment?: StatusBarAlignment

项目的对齐方式。

priority?: number

项目的优先级。数值越高,项目应显示在更左侧。

ReturnsDescription
StatusBarItem

一个新的状态栏项目。

创建一个带有后台shell进程的终端。如果存在工作区目录,终端的当前工作目录将是该目录。

  • 抛出 - 在无法启动新进程的环境中运行时。
ParameterDescription
name?: string

可选的人类可读字符串,将用于在用户界面中表示终端。

shellPath?: string

终端中使用的自定义 shell 可执行文件的可选路径。

shellArgs?: string | readonly string[]

自定义shell可执行文件的可选参数。仅在Windows上可以使用字符串,允许以命令行格式指定shell参数。

ReturnsDescription
Terminal

一个新的终端。

创建一个带有后台shell进程的终端

  • 抛出 - 在无法启动新进程的环境中运行时。
ParameterDescription
options: TerminalOptions

一个描述新终端特性的TerminalOptions对象。

ReturnsDescription
Terminal

一个新的终端。

创建一个终端,其中扩展控制其输入和输出。

ParameterDescription
options: ExtensionTerminalOptions

一个描述新终端特性的ExtensionTerminalOptions对象。

ReturnsDescription
Terminal

一个新的终端。

创建一个TextEditorDecorationType,可用于向文本编辑器添加装饰。

ParameterDescription
options: DecorationRenderOptions

装饰类型的渲染选项。

ReturnsDescription
TextEditorDecorationType

一个新的装饰类型实例。

为使用扩展点views贡献的视图创建一个TreeView

ParameterDescription
viewId: string

使用扩展点views贡献的视图的Id。

options: TreeViewOptions<T>

创建TreeView的选项

ReturnsDescription
TreeView<T>

一个 TreeView

创建并显示一个新的webview面板。

ParameterDescription
viewType: string

识别网页视图面板的类型。

title: string

面板的标题。

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

在编辑器中显示webview的位置。如果设置了preserveFocus,新的webview将不会获取焦点。

options?: WebviewPanelOptions & WebviewOptions

新面板的设置。

ReturnsDescription
WebviewPanel

新建网页视图面板。

customEditors扩展点贡献的viewType注册一个自定义编辑器的提供者。

当自定义编辑器打开时,会触发一个onCustomEditor:viewType激活事件。您的扩展必须为viewType注册一个CustomTextEditorProviderCustomReadonlyEditorProviderCustomEditorProvider作为激活的一部分。

ParameterDescription
viewType: string

自定义编辑器提供者的唯一标识符。这应与customEditors贡献点中的viewType匹配。

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

解析自定义编辑器的提供者。

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

提供者的选项。

ReturnsDescription
Disposable

用于注销提供者的可丢弃对象。

注册一个文件装饰提供者。

ParameterDescription
provider: FileDecorationProvider
ReturnsDescription
Disposable

一个Disposable,用于注销提供者。

注册提供程序,使终端能够检测和处理链接。

ParameterDescription
provider: TerminalLinkProvider<TerminalLink>

提供终端链接的提供者。

ReturnsDescription
Disposable

用于注销提供者的可丢弃对象。

注册一个提供者以贡献终端配置文件。

ParameterDescription
id: string

贡献的终端配置文件的ID。

provider: TerminalProfileProvider

终端配置文件提供者。

ReturnsDescription
Disposable

一个disposable,用于注销提供者。

为使用扩展点views贡献的视图注册一个TreeDataProvider。 这将允许您向TreeView贡献数据,并在数据更改时进行更新。

注意:要访问TreeView并对其进行操作,请使用createTreeView

ParameterDescription
viewId: string

使用扩展点views贡献的视图的Id。

treeDataProvider: TreeDataProvider<T>

一个TreeDataProvider,为视图提供树形数据

ReturnsDescription
Disposable

一个disposable,用于注销TreeDataProvider

注册一个能够处理系统范围内urisuri处理程序。 如果有多个窗口打开,最顶层的窗口将处理该uri。 一个uri处理程序的作用范围仅限于其贡献的扩展;它只能处理指向扩展本身的uris。一个uri必须遵守以下规则:

  • uri-scheme 必须是 vscode.env.uriScheme;
  • uri-authority 必须是扩展 ID(例如 my.extension);
  • uri-path、-query 和 -fragment 部分是任意的。

例如,如果my.extension扩展注册了一个uri处理程序,它将只被允许处理前缀为product-name://my.extension的uris。

扩展在其整个激活生命周期内只能注册一个URI处理程序。

  • 注意:有一个激活事件 onUri,当指向当前扩展的URI即将被处理时会触发。
ParameterDescription
handler: UriHandler

为此扩展注册的URI处理程序。

ReturnsDescription
Disposable

一个disposable,用于取消注册处理程序。

注册一个webview面板序列化器。

支持恢复的扩展应该有一个"onWebviewPanel:viewType"激活事件,并确保在激活期间调用registerWebviewPanelSerializer

对于给定的viewType,一次只能注册一个序列化器。

ParameterDescription
viewType: string

可以序列化的网页视图面板类型。

serializer: WebviewPanelSerializer<unknown>

Webview 序列化器。

ReturnsDescription
Disposable

一个disposable,用于注销序列化器。

为webview视图注册一个新的提供者。

ParameterDescription
viewId: string

视图的唯一标识符。这应该与 package.json 中 views 贡献的 id 匹配。

provider: WebviewViewProvider

为webview视图提供者。

options?: {webviewOptions: {retainContextWhenHidden: boolean}}
ReturnsDescription
Disposable

用于注销提供者的可丢弃对象。

设置状态栏的消息。这是更强大的状态栏项目的简写。

ParameterDescription
text: string

要显示的消息,支持像状态栏项目中的图标替换。

hideAfterTimeout: number

超时时间(以毫秒为单位),超过此时间后消息将被处理。

ReturnsDescription
Disposable

一个用于隐藏状态栏消息的一次性对象。

设置状态栏的消息。这是更强大的状态栏项目的简写。

ParameterDescription
text: string

要显示的消息,支持像状态栏项目中的图标替换。

hideWhenDone: Thenable<any>

消息将在其完成(解决或拒绝)的Thenable上被处理。

ReturnsDescription
Disposable

一个用于隐藏状态栏消息的一次性对象。

设置状态栏的消息。这是更强大的状态栏项目的简写。

注意状态栏消息会堆叠,当不再使用时必须处理掉。

ParameterDescription
text: string

要显示的消息,支持像状态栏项目中的图标替换。

ReturnsDescription
Disposable

一个用于隐藏状态栏消息的一次性对象。

显示错误信息。

另请参阅 showInformationMessage

ParameterDescription
message: string

要显示的消息。

...items: T[]

一组将在消息中呈现为操作的项。

ReturnsDescription
Thenable<T | undefined>

一个可解析为选定项或在被取消时解析为undefined的thenable。

显示错误信息。

另请参阅 showInformationMessage

ParameterDescription
message: string

要显示的消息。

options: MessageOptions

配置消息的行为。

...items: T[]

一组将作为消息中的操作呈现的项目。

ReturnsDescription
Thenable<T | undefined>

一个可解析为选定项或在被取消时解析为undefined的thenable。

显示错误信息。

另请参阅 showInformationMessage

ParameterDescription
message: string

要显示的消息。

...items: T[]

一组将在消息中呈现为操作的项。

ReturnsDescription
Thenable<T | undefined>

一个可解析为选定项或在被取消时解析为undefined的thenable。

显示错误信息。

另请参阅 showInformationMessage

ParameterDescription
message: string

要显示的消息。

options: MessageOptions

配置消息的行为。

...items: T[]

一组将在消息中呈现为操作的项。

ReturnsDescription
Thenable<T | undefined>

一个可解析为选定项或在被取消时解析为undefined的thenable。

向用户显示一条信息消息。可以选择提供一个项目数组,这些项目将显示为可点击的按钮。

ParameterDescription
message: string

要显示的消息。

...items: T[]

一组将作为消息中的操作呈现的项目。

ReturnsDescription
Thenable<T | undefined>

一个可解析为选定项或在被取消时解析为undefined的thenable。

向用户显示一条信息消息。可以选择提供一个项目数组,这些项目将显示为可点击的按钮。

ParameterDescription
message: string

要显示的消息。

options: MessageOptions

配置消息的行为。

...items: T[]

一组将作为消息中的操作呈现的项目。

ReturnsDescription
Thenable<T | undefined>

一个可解析为选定项或在被取消时解析为undefined的thenable。

显示一条信息消息。

另请参阅 showInformationMessage

ParameterDescription
message: string

要显示的消息。

...items: T[]

一组将作为消息中的操作呈现的项目。

ReturnsDescription
Thenable<T | undefined>

一个可解析为选定项或在被取消时解析为undefined的thenable。

显示一条信息消息。

另请参阅 showInformationMessage

ParameterDescription
message: string

要显示的消息。

options: MessageOptions

配置消息的行为。

...items: T[]

一组将作为消息中的操作呈现的项目。

ReturnsDescription
Thenable<T | undefined>

一个可解析为选定项或在被取消时解析为undefined的thenable。

打开一个输入框以向用户请求输入。

如果输入框被取消(例如按下ESC键),返回值将是undefined。否则,返回值将是用户输入的字符串,如果用户没有输入任何内容但通过OK按钮关闭了输入框,则返回空字符串。

ParameterDescription
options?: InputBoxOptions

配置输入框的行为。

token?: CancellationToken

一个可用于发出取消信号的令牌。

ReturnsDescription
Thenable<string | undefined>

一个承诺,解析为用户提供的字符串,或在取消的情况下解析为undefined

笔记本编辑器中显示给定的NotebookDocument

ParameterDescription
document: NotebookDocument

要显示的文本文档。

options?: NotebookDocumentShowOptions

编辑器选项 用于配置显示 笔记本编辑器 的行为。

ReturnsDescription
Thenable<NotebookEditor>

一个承诺,解析为notebook editor

向用户显示一个文件打开对话框,允许选择文件以用于打开目的。

ParameterDescription
options?: OpenDialogOptions

控制对话框的选项。

ReturnsDescription
Thenable<Uri[] | undefined>

一个承诺,解析为选定的资源或undefined

[]>, options: QuickPickOptions & {canPickMany: true}, token?: CancellationToken): Thenable<string[] | undefined>

显示一个允许多选的选项列表。

ParameterDescription
items: readonly string[] | Thenable<readonly string[]>

一个字符串数组,或者一个解析为字符串数组的承诺。

options: QuickPickOptions & {canPickMany: true}

配置选择列表的行为。

token?: CancellationToken

一个可用于发出取消信号的令牌。

ReturnsDescription
Thenable<string[] | undefined>

一个承诺,解析为选定的项目或undefined

[]>, options?: QuickPickOptions, token?: CancellationToken): Thenable<string | undefined>

显示一个选择列表。

ParameterDescription
items: readonly string[] | Thenable<readonly string[]>

一个字符串数组,或者一个解析为字符串数组的承诺。

options?: QuickPickOptions

配置选择列表的行为。

token?: CancellationToken

一个可用于发出取消信号的令牌。

ReturnsDescription
Thenable<string | undefined>

一个承诺,解析为选择或 undefined

[]>, options: QuickPickOptions & {canPickMany: true}, token?: CancellationToken): Thenable<T[] | undefined>

显示一个允许多选的选项列表。

ParameterDescription
items: readonly T[] | Thenable<readonly T[]>

一个项目数组,或者一个解析为项目数组的承诺。

options: QuickPickOptions & {canPickMany: true}

配置选择列表的行为。

token?: CancellationToken

一个可用于发出取消信号的令牌。

ReturnsDescription
Thenable<T[] | undefined>

一个承诺,解析为选定的项目或undefined

显示一个选择列表。

ParameterDescription
items: readonly T[] | Thenable<readonly T[]>

一个项目数组,或者一个解析为项目数组的承诺。

options?: QuickPickOptions

配置选择列表的行为。

token?: CancellationToken

一个可用于发出取消信号的令牌。

ReturnsDescription
Thenable<T | undefined>

一个承诺,解析为所选项目或undefined

向用户显示一个文件保存对话框,允许选择文件以进行保存。

ParameterDescription
options?: SaveDialogOptions

控制对话框的选项。

ReturnsDescription
Thenable<Uri | undefined>

一个承诺,解析为选定的资源或undefined

在文本编辑器中显示给定的文档。可以提供来控制编辑器的显示位置。可能会更改活动编辑器

ParameterDescription
document: TextDocument

要显示的文本文档。

column?: ViewColumn

一个视图列,其中应显示编辑器。默认为活动列。 根据需要将创建不存在的列,最多可达ViewColumn.Nine。使用ViewColumn.Beside 在当前活动列的旁边打开编辑器。

preserveFocus?: boolean

true 时,编辑器将不会获取焦点。

ReturnsDescription
Thenable<TextEditor>

一个承诺,解析为一个编辑器

在文本编辑器中显示给定的文档。可以提供选项来控制显示的编辑器选项。可能会更改活动编辑器

ParameterDescription
document: TextDocument

要显示的文本文档。

options?: TextDocumentShowOptions

编辑器选项 用于配置显示 编辑器 的行为。

ReturnsDescription
Thenable<TextEditor>

一个承诺,解析为一个编辑器

openTextDocument(uri).then(document => showTextDocument(document, options)) 的简写。

另请参阅 workspace.openTextDocument

ParameterDescription
uri: Uri

资源标识符。

options?: TextDocumentShowOptions

编辑器选项 用于配置显示 编辑器 的行为。

ReturnsDescription
Thenable<TextEditor>

一个承诺,解析为一个编辑器

显示一条警告信息。

另请参阅 showInformationMessage

ParameterDescription
message: string

要显示的消息。

...items: T[]

一组将作为消息中的操作呈现的项目。

ReturnsDescription
Thenable<T | undefined>

一个可解析为选定项或在被取消时解析为undefined的thenable。

显示一条警告信息。

另请参阅 showInformationMessage

ParameterDescription
message: string

要显示的消息。

options: MessageOptions

配置消息的行为。

...items: T[]

一组将作为消息中的操作呈现的项目。

ReturnsDescription
Thenable<T | undefined>

一个可解析为选定项或在被取消时解析为undefined的thenable。

显示一条警告信息。

另请参阅 showInformationMessage

ParameterDescription
message: string

要显示的消息。

...items: T[]

一组将作为消息中的操作呈现的项目。

ReturnsDescription
Thenable<T | undefined>

一个可解析为选定项或在被取消时解析为undefined的thenable。

显示一条警告信息。

另请参阅 showInformationMessage

ParameterDescription
message: string

要显示的消息。

options: MessageOptions

配置消息的行为。

...items: T[]

一组将作为消息中的操作呈现的项目。

ReturnsDescription
Thenable<T | undefined>

一个可解析为选定项或在被取消时解析为undefined的thenable。

显示一个可供选择的工作区文件夹列表。 如果没有打开的文件夹,则返回undefined

ParameterDescription
options?: WorkspaceFolderPickOptions

配置工作区文件夹列表的行为。

ReturnsDescription
Thenable<WorkspaceFolder | undefined>

一个承诺,解析为工作区文件夹或undefined

在编辑器中显示进度。进度在运行给定的回调时显示,并且在它返回的承诺既未解决也未拒绝时显示。进度应显示的位置(以及其他详细信息)通过传递的ProgressOptions定义。

ParameterDescription
options: ProgressOptions

一个ProgressOptions对象,用于描述显示进度的选项,例如其位置

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

一个返回承诺的回调函数。可以使用提供的Progress对象报告进度状态。

要报告离散进度,请使用increment来指示已完成的工作量。每次调用带有increment值的调用将被累加并反映为总体进度,直到达到100%(例如,值为10表示已完成10%的工作)。 请注意,目前只有ProgressLocation.Notification能够显示离散进度。

要监控操作是否已被用户取消,请使用提供的CancellationToken。 请注意,目前只有ProgressLocation.Notification支持显示取消按钮以取消长时间运行的操作。

ReturnsDescription
Thenable<R>

任务回调返回的thenable。

在运行给定的回调函数及其返回的承诺未解决或拒绝时,在源代码控制小部件中显示进度。

  • 已弃用 - 请改用 withProgress
ParameterDescription
task: (progress: Progress<number>) => Thenable<R>

一个返回承诺的回调函数。可以使用提供的Progress对象报告进度增量。

ReturnsDescription
Thenable<R>

任务返回的thenable。

工作区

用于处理当前工作区的命名空间。工作区是在编辑器窗口(实例)中打开的一个或多个文件夹的集合。

也可以在没有工作区的情况下打开编辑器。例如,当您通过从平台的“文件”菜单中选择文件来打开新编辑器窗口时,您将不在工作区内。在此模式下,编辑器的某些功能会减少,但您仍然可以打开文本文件并进行编辑。

有关工作区概念的更多信息,请参阅https://code.visualstudio.com/docs/editor/workspaces

工作区支持监听文件系统事件和查找文件。两者都表现良好,并且在编辑器进程外部运行,因此应始终使用它们而不是nodejs的等效功能。

变量

一个文件系统实例,允许与本地和远程文件进行交互,例如vscode.workspace.fs.readDirectory(someUri)允许检索目录的所有条目,或者vscode.workspace.fs.stat(anotherUri)返回文件的元数据。

当为true时,用户已明确信任工作区的内容。

工作区的名称。当没有工作区被打开时,undefined

有关工作区概念的更多信息,请参阅https://code.visualstudio.com/docs/editor/workspaces

编辑器当前已知的所有笔记本文档。

workspaceFolders 的第一个条目的 uri 作为 string。如果没有第一个条目,则为 undefined

有关工作区的更多信息,请参阅https://code.visualstudio.com/docs/editor/workspaces

编辑器当前已知的所有文本文档。

工作区文件的位置,例如:

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

untitled:1555503116870

对于一个未命名且尚未保存的工作区。

根据打开的工作空间,值将是:

  • undefined 当没有工作区被打开时
  • 工作区文件的路径为Uri,否则。如果工作区未命名,返回的URI将使用untitled:方案

位置可以例如与vscode.openFolder命令一起使用,以便在关闭后再次打开工作区。

示例:

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

有关工作区概念的更多信息,请参阅https://code.visualstudio.com/docs/editor/workspaces

注意:不建议使用workspace.workspaceFile将配置数据写入文件。您可以使用workspace.getConfiguration().update()来实现此目的,该函数在打开单个文件夹以及未命名或已保存的工作区时都有效。

编辑器中打开的工作区文件夹列表(0-N)。当没有工作区被打开时,undefined

有关工作区的更多信息,请参阅https://code.visualstudio.com/docs/editor/workspaces

事件

配置更改时发出的事件。

notebook发生变化时发出的事件。

文本文档发生更改时发出的事件。这通常发生在内容更改时,但也可能发生在其他情况,如状态更改时。

当工作区文件夹被添加或移除时发出的事件。

注意:如果添加、删除或更改了第一个工作区文件夹,此事件将不会触发, 因为在这种情况下,当前正在执行的扩展(包括监听此事件的扩展)将被终止并重新启动,以便(已弃用的)rootPath属性更新为指向第一个工作区文件夹。

当一个notebook被释放时发出的事件。

注意 1: 无法保证在关闭编辑器标签时触发此事件。

注意 2: 笔记本可以打开但不在编辑器中显示,这意味着此事件可能针对尚未在编辑器中显示的笔记本触发。

文本文档被释放或文本文档的语言ID被更改时发出的事件。

注意 1: 无法保证在关闭编辑器标签时触发此事件,请使用 onDidChangeVisibleTextEditors 事件来了解编辑器的变化。

注意2: 文档可以打开但不在编辑器中显示,这意味着此事件可能针对尚未在编辑器中显示的文档触发。

当文件被创建时发出的事件。

注意: 此事件由用户手势触发,例如从资源管理器创建文件,或通过 workspace.applyEdit-api,但当文件在磁盘上更改时,例如由另一个应用程序触发,或使用 workspace.fs-api 时,此事件不会触发。

当文件被删除时发出的事件。

注意 1: 此事件由用户手势触发,例如从资源管理器中删除文件,或通过 workspace.applyEdit-api 触发,但当文件在磁盘上更改时,例如由另一个应用程序触发,或使用 workspace.fs-api 时,此事件不会触发。

注意 2: 当删除包含子文件夹的文件夹时,只会触发一个事件。

当当前工作区被信任时触发的事件。

notebook被打开时发出的事件。

文本文档被打开或文本文档的语言ID被更改时发出的事件。

要在打开可见文本文档时添加事件监听器,请使用TextEditor事件在window命名空间中。请注意:

当文件被重命名时发出的事件。

注意 1: 此事件由用户手势触发,例如从资源管理器中重命名文件,以及通过 workspace.applyEdit-api 触发,但当文件在磁盘上更改时,例如由另一个应用程序触发,或使用 workspace.fs-api 时,此事件不会触发。

注意 2: 当重命名包含子文件夹的文件夹时,只会触发一个事件。

当一个笔记本被保存时发出的事件。

文本文档保存到磁盘时发出的事件。

当文件正在创建时发出的事件。

注意 1: 此事件由用户手势触发,例如从资源管理器中创建文件,或通过 workspace.applyEdit-api。当文件在磁盘上更改时,例如由另一个应用程序触发,或使用 workspace.fs-api 时,此事件不会触发。

注意 2: 当此事件触发时,正在创建的文件无法应用编辑。

当文件被删除时发出的事件。

注意 1: 此事件由用户手势触发,例如从资源管理器中删除文件,或通过 workspace.applyEdit-api 触发,但当文件在磁盘上更改时,例如由另一个应用程序触发,或使用 workspace.fs-api 时,此事件不会触发。

注意 2: 当删除包含子文件夹的文件夹时,只会触发一个事件。

当文件被重命名时发出的事件。

注意 1: 此事件由用户手势触发,例如从资源管理器中重命名文件,以及通过 workspace.applyEdit-api 触发,但当文件在磁盘上更改时,例如由另一个应用程序触发,或使用 workspace.fs-api 时,此事件不会触发。

注意 2: 当重命名包含子文件夹的文件夹时,只会触发一个事件。

当一个笔记本文档将被保存到磁盘时发出的事件。

注意 1: 订阅者可以通过注册异步工作来延迟保存。为了数据完整性,编辑器可能会在不触发此事件的情况下保存。例如,在关闭时如果有未保存的文件。

注意2:订阅者按顺序被调用,他们可以通过注册异步工作来延迟保存。针对行为不当的监听者的保护措施如下实现:

  • 有一个所有监听器共享的总体时间预算,如果该预算耗尽,则不会调用进一步的监听器
  • 长时间运行或频繁产生错误的监听器将不再被调用

当前的阈值是1.5秒作为总时间预算,监听器在被忽略之前可以行为不当3次。

文本文档将被保存到磁盘时发出的事件。

注意 1: 订阅者可以通过注册异步工作来延迟保存。为了数据完整性,编辑器可能会在不触发此事件的情况下保存。例如,在关闭时如果有未保存的文件。

注意 2: 订阅者按顺序被调用,他们可以通过注册异步工作来延迟保存。针对行为不当的监听者的保护措施如下实现:

  • 有一个所有监听器共享的总体时间预算,如果该预算耗尽,则不会调用进一步的监听器
  • 长时间运行或频繁产生错误的监听器将不再被调用

当前的阈值是1.5秒作为总时间预算,监听器在被忽略之前可以行为不当3次。

函数

对给定工作区编辑中定义的一个或多个资源进行更改,或创建、删除和重命名资源。

工作区编辑的所有更改都按照它们被添加的顺序应用。如果在同一位置进行了多个文本插入,这些字符串将按照“插入”操作的顺序出现在结果文本中,除非它们与资源编辑交错。像“删除文件a” -> “在文件a中插入文本”这样的无效序列会导致操作失败。

当应用仅由文本编辑组成的工作区编辑时,使用“全有或全无”策略。包含资源创建或删除的工作区编辑将中止操作,例如,当单个编辑失败时,不会尝试连续的编辑。

ParameterDescription
edit: WorkspaceEdit

工作区编辑。

metadata?: WorkspaceEditMetadata

可选的元数据用于编辑。

ReturnsDescription
Thenable<boolean>

一个当编辑可以应用时解析的thenable。

返回相对于工作区文件夹或文件夹的路径。

当没有工作区文件夹或路径不包含在其中时,将返回输入。

ParameterDescription
pathOrUri: string | Uri

路径或URI。当提供URI时,将使用其fsPath

includeWorkspaceFolder?: boolean

true且给定路径包含在工作区文件夹内时,工作区的名称会被前置。当存在多个工作区文件夹时,默认为true,否则为false

ReturnsDescription
string

相对于根目录或输入的路径。

创建一个文件系统监视器,根据提供的参数在文件事件(创建、更改、删除)发生时收到通知。

默认情况下,所有打开的工作区文件夹将被递归地监视文件更改。

可以通过提供一个带有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'));

并使用复杂的全局模式进行递归监视:

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, '*')
);
ParameterDescription
globPattern: GlobPattern

一个glob模式,用于控制观察者应报告哪些文件事件。

ignoreCreateEvents?: boolean

忽略文件已创建的情况。

ignoreChangeEvents?: boolean

当文件已被更改时忽略。

ignoreDeleteEvents?: boolean

忽略已删除的文件。

ReturnsDescription
FileSystemWatcher

一个新的文件系统监视器实例。不再需要时必须处理掉。

在工作区中查找所有工作区文件夹中的文件。

示例

findFiles('**/*.js', '**/node_modules/**', 10);
ParameterDescription
include: GlobPattern

一个glob模式,用于定义要搜索的文件。该glob模式将与相对于其工作区的结果匹配的文件路径进行匹配。使用相对模式可以将搜索结果限制在工作区文件夹中。

exclude?: GlobPattern

一个glob模式,用于定义要排除的文件和文件夹。该glob模式将与相对于其工作区的结果匹配的文件路径进行匹配。当undefined时,将应用默认的文件排除(例如files.exclude设置,但不包括search.exclude)。当null时,将不应用任何排除。

maxResults?: number

结果的上限。

token?: CancellationToken

一个可以用于向底层搜索引擎发出取消信号的令牌。

ReturnsDescription
Thenable<Uri[]>

一个可解析为资源标识符数组的 thenable。如果没有打开任何工作区文件夹,将不会返回任何结果。

获取工作区配置对象。

当提供部分标识符时,仅返回配置的该部分。部分标识符中的点被解释为子访问,如{ myExt: { setting: { doIt: true }}}getConfiguration('myExt.setting').get('doIt') === true

当提供一个作用域时,返回仅限于该作用域的配置。作用域可以是一个资源或一个语言标识符,或者两者兼有。

ParameterDescription
section?: string

一个以点分隔的标识符。

scope?: ConfigurationScope

请求配置的范围。

ReturnsDescription
WorkspaceConfiguration

完整配置或子集。

返回包含给定uri的工作区文件夹

  • 当给定的uri不匹配任何工作区文件夹时,返回undefined
  • 当给定的URI是工作区文件夹本身时,返回输入
ParameterDescription
uri: Uri

一个URI。

ReturnsDescription
WorkspaceFolder | undefined

一个工作区文件夹或 undefined

打开一个笔记本。如果这个笔记本已经加载,将提前返回。否则,笔记本将被加载,并且onDidOpenNotebookDocument事件将触发。

注意,返回的笔记本的生命周期由编辑器拥有,而不是由扩展拥有。这意味着在之后的任何时间都可能发生onDidCloseNotebookDocument事件。

注意,打开一个笔记本并不会显示笔记本编辑器。此函数仅返回一个笔记本文档,该文档可以在笔记本编辑器中显示,但也可以用于其他用途。

ParameterDescription
uri: Uri

要打开的资源。

ReturnsDescription
Thenable<NotebookDocument>

一个承诺,解析为笔记本

打开一个未命名的笔记本。当文档需要保存时,编辑器将提示用户输入文件路径。

另请参阅 workspace.openNotebookDocument

ParameterDescription
notebookType: string

应该使用的笔记本类型。

content?: NotebookData

笔记本的初始内容。

ReturnsDescription
Thenable<NotebookDocument>

一个承诺,解析为一个笔记本

打开一个文档。如果该文档已经打开,则会提前返回。否则,文档将被加载并触发didOpen事件。

文档由Uri表示。根据scheme的不同,适用以下规则:

  • file-scheme: 打开磁盘上的文件 (openTextDocument(Uri.file(path)))。如果文件不存在或无法加载,将被拒绝。
  • untitled-scheme: 打开一个带有相关路径的空白未命名文件 (openTextDocument(Uri.file(path).with({ scheme: 'untitled' }))). 语言将从文件名中派生。
  • 对于所有其他方案,会咨询文本文档内容提供者文件系统提供者

注意,返回的文档的生命周期由编辑器拥有,而不是由扩展拥有。这意味着在打开它之后,onDidClose事件可能随时发生。

ParameterDescription
uri: Uri

标识要打开的资源。

ReturnsDescription
Thenable<TextDocument>

一个解析为文档的承诺。

openTextDocument(Uri.file(path)) 的简写。

另请参阅 workspace.openTextDocument

ParameterDescription
path: string

磁盘上文件的路径。

ReturnsDescription
Thenable<TextDocument>

一个解析为文档的承诺。

打开一个无标题的文本文档。当文档需要保存时,编辑器将提示用户输入文件路径。options参数允许指定文档的语言和/或内容

ParameterDescription
options?: {content: string, language: string}

控制文档创建方式的选项。

ReturnsDescription
Thenable<TextDocument>

一个解析为文档的承诺。

为给定的方案注册一个文件系统提供者,例如 ftp

每个方案只能有一个提供者,当一个方案已被另一个提供者声明或保留时,会抛出错误。

ParameterDescription
scheme: string

提供者注册的uri-scheme

provider: FileSystemProvider

文件系统提供者。

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

关于提供者的不可变元数据。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个notebook serializer

笔记本序列化器必须通过notebooks扩展点提供。当打开笔记本文件时,编辑器将发送onNotebook:激活事件,扩展必须相应地注册其序列化器。

ParameterDescription
notebookType: string

一个笔记本。

serializer: NotebookSerializer

一个笔记本序列化器。

options?: NotebookDocumentContentOptions

定义应持久化笔记本哪些部分的可选上下文选项

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此序列化器。

注册一个任务提供者。

  • 已弃用 - 请改用 tasks 命名空间上的相应函数
ParameterDescription
type: string

此提供程序注册的任务类型。

provider: TaskProvider<Task>

一个任务提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

注册一个文本文档内容提供者。

每个方案只能注册一个提供者。

ParameterDescription
scheme: string

要注册的URI方案。

provider: TextDocumentContentProvider

一个内容提供者。

ReturnsDescription
Disposable

一个Disposable,当被释放时取消注册此提供者。

保存由给定资源标识的编辑器,并返回结果资源或undefined(如果保存不成功或未找到具有给定资源的编辑器)。

注意,必须打开带有提供资源的编辑器才能保存。

ParameterDescription
uri: Uri

打开的编辑器用于保存的关联URI。

ReturnsDescription
Thenable<Uri | undefined>

一个当保存操作完成时解析的thenable。

保存所有未保存的文件。

ParameterDescription
includeUntitled?: boolean

同时保存在此会话期间创建的文件。

ReturnsDescription
Thenable<boolean>

一个当文件保存后解析的thenable。对于任何保存失败的文件,将返回false

将用户提供的资源标识的编辑器保存到用户提供的新文件名,并返回结果资源,如果保存不成功或取消,或未找到具有给定资源的编辑器,则返回undefined

注意,必须打开带有提供资源的编辑器才能另存为。

ParameterDescription
uri: Uri

打开的编辑器用于保存的关联URI。

ReturnsDescription
Thenable<Uri | undefined>

一个在另存为操作完成时解析的thenable。

此方法从索引start开始,用一组可选的workspaceFoldersToAdd替换vscode.workspace.workspaceFolders数组中的deleteCount工作区文件夹。这种“拼接”行为可用于在单个操作中添加、删除和更改工作区文件夹。

注意:在某些情况下,调用此方法可能会导致当前正在执行的扩展(包括调用此方法的扩展)被终止并重新启动。例如,当添加、删除或更改第一个工作区文件夹时,(已弃用的)rootPath属性会更新以指向第一个工作区文件夹。另一种情况是从空工作区或单文件夹工作区过渡到多文件夹工作区时(另请参阅:https://code.visualstudio.com/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()是无效的。

ParameterDescription
start: number

从当前打开的工作区文件夹列表中开始删除工作区文件夹的从零开始的位置。

deleteCount: number

要移除的可选工作区文件夹数量。

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

可选的工作区文件夹变量集,用于替换已删除的文件夹。 每个工作区通过一个必需的URI和一个可选的名称来标识。

ReturnsDescription
boolean

如果操作成功启动则为 true,否则如果使用了会导致工作区文件夹状态无效的参数(例如,两个具有相同 URI 的文件夹)则为 false。

可访问性信息

控制屏幕阅读器行为的可访问性信息。

属性

当项目获得焦点时,屏幕阅读器将读出此标签。

小部件的角色定义了屏幕阅读器如何与其交互。 在特殊情况下,例如树状元素的行为类似于复选框时,应设置角色。 如果未指定角色,编辑器将自动选择适当的角色。 有关ARIA角色的更多信息可以在这里找到 https://w3c.github.io/aria/#widget_roles

AuthenticationForceNewSessionOptions

在调用authentication.getSession时使用的可选选项,带有标志forceNewSession

属性

当要求重新认证时,将显示给用户的可选消息。提供额外的上下文说明为什么要求用户重新认证,可以帮助增加他们接受的可能性。

AuthenticationGetSessionOptions

AuthenticationProvider获取AuthenticationSession时要使用的选项。

属性

您希望获取会话的账户。这将传递给认证提供者,用于创建正确的会话。

是否应清除现有的会话偏好。

对于支持同时登录多个帐户的身份验证提供者,当调用getSession时,用户将被提示选择一个要使用的帐户。此偏好将被记住,直到使用此标志调用getSession

注意: 偏好设置是特定于扩展的。因此,如果一个扩展调用 getSession,它不会影响另一个调用 getSession 的扩展的会话偏好。此外, 偏好设置是针对当前工作区以及全局设置的。这意味着新的工作区将首先使用“全局”值,然后当提供此标志时,可以为该工作区设置一个新值。这也意味着 如果新工作区设置此标志,现有工作区不会丢失其偏好设置。

默认为 false。

如果没有匹配的会话,是否应执行登录。

如果为true,将显示一个模态对话框,要求用户登录。如果为false,将在账户活动栏图标上显示一个带数字的徽章。扩展程序的条目将添加到菜单下以供登录。这样可以安静地提示用户登录。

如果存在匹配的会话但扩展程序尚未被授予访问权限,将此设置为true将立即导致模态对话框的出现,而false将在账户图标上添加一个带编号的徽章。

默认为 false。

注意:你不能将此选项与silent一起使用。

即使已经有可用的会话,我们是否应该尝试重新认证。

如果为真,将显示一个模态对话框,要求用户重新登录。这主要用于需要重新生成令牌的场景,因为它失去了一些授权。

如果没有现有的会话并且forceNewSession为true,它的行为将与 createIfNone相同。

默认情况下为false。

我们是否应该在账户菜单中显示登录提示。

如果为false,用户将在账户菜单上看到一个徽章,提示他们可以为扩展程序登录。 如果为true,将不会显示任何提示。

默认为 false。

注意:你不能将此选项与任何其他提示用户的选项一起使用,例如createIfNone

AuthenticationProvider

用于执行服务身份验证的提供程序。

事件

当会话数组发生变化,或会话中的数据发生变化时触发的事件

方法

提示用户登录。

如果登录成功,应该触发onDidChangeSessions事件。

如果登录失败,应该返回一个被拒绝的承诺。

如果提供者指定不支持多个账户,那么如果已经存在与这些范围匹配的现有会话,则不应调用此操作。

ParameterDescription
scopes: readonly string[]

新会话应创建的范围、权限列表。

options: AuthenticationProviderSessionOptions

创建会话的额外选项。

ReturnsDescription
Thenable<AuthenticationSession>

一个解析为认证会话的承诺。

获取会话列表。

ParameterDescription
scopes: readonly string[]

一个可选的范围列表。如果提供了,返回的会话应匹配这些权限,否则应返回所有会话。

options: AuthenticationProviderSessionOptions

获取会话的额外选项。

ReturnsDescription
Thenable<AuthenticationSession[]>

一个承诺,解析为一个认证会话数组。

移除与会话ID对应的会话。

如果移除成功,应该会触发 onDidChangeSessions 事件。

如果无法删除会话,提供者应拒绝并显示错误消息。

ParameterDescription
sessionId: string

要移除的会话的ID。

ReturnsDescription
Thenable<void>

AuthenticationProviderAuthenticationSessionsChangeEvent

当添加、删除或更改AuthenticationSession时触发的Event

属性

AuthenticationSessionsAuthenticationProvider 已被更改。 当会话的数据(不包括ID)被更新时,会话会发生变化。例如,会话刷新会导致为会话设置新的访问令牌。

认证提供者信息

关于AuthenticationProvider的基本信息

属性

认证提供者的唯一标识符。

认证提供者的人类可读名称。

AuthenticationProviderOptions

创建AuthenticationProvider的选项。

属性

是否可以使用此提供商同时登录多个账户。 如果未指定,将默认为false。

AuthenticationProviderSessionOptions

属性

被查询的账户。如果传入了此参数,提供者应尝试返回仅与此账户相关的会话。

AuthenticationSession

表示当前登录用户的会话。

属性

访问令牌。

与会话关联的账户。

认证会话的标识符。

会话访问令牌授予的权限。可用范围由AuthenticationProvider定义。

认证会话账户信息

AuthenticationSession关联的账户信息。

属性

账户的唯一标识符。

账户的可读名称。

AuthenticationSessionsChangeEvent

当添加、删除或更改AuthenticationSession时触发的Event

属性

会话已更改的AuthenticationProvider

自动关闭对

描述字符串对,其中在输入开头字符串时将自动插入结尾字符串。

属性

在输入开头字符串时,将自动插入的结尾字符串。

一组不应自动关闭的标记对。

将触发自动插入闭合字符串的字符串。

分支覆盖率

包含StatementCoverage分支的覆盖信息。

构造函数

ParameterDescription
executed: number | boolean

该分支被执行的次数,或者如果确切次数未知,则是一个布尔值,表示是否被执行。如果为零或假,该分支将被标记为未覆盖。

location?: Range | Position

分支位置。

label?: string
ReturnsDescription
BranchCoverage

属性

该分支被执行的次数,或者如果确切次数未知,则是一个布尔值,表示是否被执行。如果为零或假,该分支将被标记为未覆盖。

分支的标签,用于上下文中的“未采用${label}分支”,例如。

分支机构位置。

断点

所有断点类型的基类。

构造函数

创建一个新的断点

ParameterDescription
enabled?: boolean

断点是否启用。

condition?: string

条件断点的表达式

hitCondition?: string

控制断点命中次数被忽略的表达式

logMessage?: string

当达到断点时显示的日志消息

ReturnsDescription
Breakpoint

属性

用于条件断点的可选表达式。

断点是否启用。

一个可选的表达式,用于控制忽略多少次断点的命中。

断点的唯一ID。

当达到此断点时记录的可选消息。嵌入在{}中的表达式由调试适配器进行插值。

BreakpointsChangeEvent

描述断点集合变化的事件。

属性

添加了断点。

更改了断点。

已移除断点。

CallHierarchyIncomingCall

表示一个传入的调用,例如方法或构造函数的调用者。

构造函数

创建一个新的调用对象。

ParameterDescription
item: CallHierarchyItem

发起调用的项目。

fromRanges: Range[]

调用出现的范围。

ReturnsDescription
CallHierarchyIncomingCall

属性

进行调用的项目。

调用出现的范围。这是相对于由this.from表示的调用者而言的。

调用层次结构项

表示在调用层次结构上下文中的编程构造,如函数或构造函数。

构造函数

创建一个新的调用层次结构项。

ParameterDescription
kind: SymbolKind
name: string
detail: string
uri: Uri
range: Range
selectionRange: Range
ReturnsDescription
CallHierarchyItem

属性

有关此项目的更多详细信息,例如函数的签名。

此项目的种类。

此项目的名称。

此符号的范围不包括前导/尾随空格,但包括其他所有内容,例如注释和代码。

当选择此符号时应选择并显示的范围,例如函数的名称。 必须包含在range中。

此项目的标签。

此项目的资源标识符。

CallHierarchyOutgoingCall

表示一个外拨调用,例如从方法中调用getter或从构造函数中调用方法等。

构造函数

创建一个新的调用对象。

ParameterDescription
item: CallHierarchyItem

被调用的项目

fromRanges: Range[]

调用出现的范围。

ReturnsDescription
CallHierarchyOutgoingCall

属性

此项目被调用的范围。这是相对于调用者的范围,例如传递给provideCallHierarchyOutgoingCalls的项目,而不是this.to

被调用的项目。

调用层次结构提供者

调用层次结构提供者接口描述了扩展与调用层次结构功能之间的契约,该功能允许浏览函数、方法、构造函数等的调用和被调用情况。

方法

通过返回由给定文档和位置表示的项目来启动调用层次结构。此项目将用作调用图的入口。当给定位置没有项目时,提供者应返回undefinednull

ParameterDescription
document: TextDocument

调用命令的文档。

position: Position

命令被调用的位置。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<CallHierarchyItem | CallHierarchyItem[]>

一个或多个调用层次结构项,或解析为此类的可thenable对象。可以通过返回undefinednull或空数组来表示没有结果。

提供一个项目的所有传入调用,例如一个方法的所有调用者。在图论术语中,这描述了调用图中的有向和注释边,例如给定项目是起始节点,结果是可到达的节点。

ParameterDescription
item: CallHierarchyItem

应计算传入调用的层次结构项。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<CallHierarchyIncomingCall[]>

一组传入的调用或一个解析为此的可thenable对象。可以通过返回undefinednull来表示没有结果。

提供一个项目的所有出站调用,例如从给定项目调用函数、方法或构造函数。在图论中,这描述了调用图中的有向和带注释的边,例如给定项目是起始节点,结果是可到达的节点。

ParameterDescription
item: CallHierarchyItem

应计算其传出调用的层次结构项。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<CallHierarchyOutgoingCall[]>

一组出站调用或解析为此类的可调用对象。可以通过返回undefinednull来表示没有结果。

CancellationError

一种错误类型,应用于表示操作取消的信号。

这种类型可以用于响应取消令牌 被取消或当操作被该操作的执行者取消时。

构造函数

创建一个新的取消错误。

ParameterDescription
ReturnsDescription
CancellationError

CancellationToken

取消令牌被传递给异步或长时间运行的操作以请求取消,例如因为用户继续输入而取消完成项的请求。

要获取CancellationToken的实例,请使用 CancellationTokenSource

属性

当令牌已被取消时为 true,否则为 false

一个在取消时触发的事件

CancellationTokenSource

取消源创建并控制一个取消令牌

构造函数

ParameterDescription
ReturnsDescription
CancellationTokenSource

属性

此源的取消令牌。

方法

令牌上的信号取消。

ParameterDescription
ReturnsDescription
void

处理对象并释放资源。

ParameterDescription
ReturnsDescription
void

字符对

一个由两个字符组成的元组,就像一对开闭括号。

ChatContext

传递给参与者的额外上下文。

属性

当前聊天会话中的所有聊天消息。目前,仅包括当前参与者的聊天消息。

ChatErrorDetails

表示聊天请求的错误结果。

属性

向用户显示的错误消息。

如果设置为true,响应将部分模糊。

ChatFollowup

参与者提出的后续问题。

属性

默认情况下,后续操作会发送给相同的参与者/命令。但可以设置此属性以调用不同的命令。

显示给用户的标题。当未指定时,默认会显示提示。

默认情况下,后续操作会发送给相同的参与者/命令。但可以通过设置此属性来调用不同ID的参与者。 后续操作只能调用由同一扩展贡献的参与者。

发送到聊天的消息。

ChatFollowupProvider

每次请求后将调用一次,以获取建议的后续问题显示给用户。用户可以点击后续问题将其发送到聊天中。

方法

为给定的结果提供后续操作。

ParameterDescription
result: ChatResult

此对象具有与参与者回调返回的结果相同的属性,包括metadata,但不是同一个实例。

context: ChatContext

传递给参与者的额外上下文。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<ChatFollowup[]>

ChatLanguageModelToolReference

对用户手动附加到其请求的工具的引用,无论是使用#-语法内联,还是通过回形针按钮作为附件。

属性

工具名称。指的是在lm.tools中列出的工具。

参考在prompt中的起始和结束索引。当未定义时,参考不是提示文本的一部分。

注意,索引考虑了前导的#字符,这意味着它们可以用来直接修改提示。

ChatParticipant

用户可以在聊天会话中使用前缀调用聊天参与者。当它被调用时,它会处理聊天请求,并全权负责向用户提供响应。ChatParticipant是通过chat.createChatParticipant创建的。

事件

每当接收到结果的反馈时触发的事件,例如当用户对结果进行赞成或反对投票时。

传递的result保证具有与此聊天参与者的处理程序先前返回的结果相同的属性。

属性

此提供程序将在每次请求后被调用一次,以检索建议的后续问题。

用户界面中显示的参与者图标。

此参与者的唯一ID。

此参与者的请求处理程序。

方法

处理此参与者并释放资源。

ParameterDescription
ReturnsDescription
void

ChatParticipantToolToken

一个令牌,可以在处理聊天请求的上下文中调用工具时传递给lm.invokeTool

ChatPromptReference

用户添加到聊天请求中的值的引用。

属性

此类引用的唯一标识符。

这个值的描述,可以在LLM提示中使用。

参考在prompt中的起始和结束索引。当未定义时,参考不是提示文本的一部分。

注意,索引考虑了前导的#字符,这意味着它们可以用来直接修改提示。

此引用的值。目前使用string | Uri | Location类型,但未来可能会扩展。

ChatRequest

向聊天参与者发出的请求。

属性

为此请求选择的[ChatCommand命令](#ChatCommand command)的名称。

这是当前在用户界面中选择的模型。扩展可以使用此模型或使用chat.selectChatModels来选择另一个模型。不要在请求的生命周期结束后保留此模型。

用户输入的提示。

关于此请求中使用的引用信息存储在ChatRequest.references中。

注意,参与者的 [ChatParticipant.name name](#ChatParticipant.name name) 和 [ChatCommand.name command](#ChatCommand.name command) 不是提示的一部分。

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

注意提示中包含作者提供的引用,参与者需要进一步修改提示,例如通过内联引用值或创建指向包含解析值的标题的链接。引用在提示中按其范围反向排序。这意味着提示中的最后一个引用在此列表中排在第一位。这简化了提示的字符串操作。

一个令牌,可以在处理聊天请求的上下文中调用工具时传递给lm.invokeTool。这将工具调用与聊天会话关联起来。

用户附加到其请求的工具列表。

当存在工具引用时,聊天参与者应使用 LanguageModelChatToolMode.Required 强制语言模型生成工具的输入。然后, 参与者可以使用 lm.invokeTool 使用工具并将结果附加到其请求中,以响应用户的提示。该 工具可能会为用户请求提供有用的额外上下文。

ChatRequestHandler

ChatRequestTurn

表示聊天历史中的用户请求。

属性

为此请求选择的[ChatCommand命令](#ChatCommand command)的名称。

此请求所指向的聊天参与者的ID。

用户输入的提示。

关于此请求中使用的引用信息存储在ChatRequestTurn.references中。

注意,参与者的 [ChatParticipant.name name](#ChatParticipant.name name) 和 [ChatCommand.name command](#ChatCommand.name command) 不是提示的一部分。

本消息中使用的参考文献。

此请求附带的工具列表。

ChatResponseAnchorPart

表示聊天响应的一部分,它是一个锚点,渲染为指向目标的链接。

构造函数

创建一个新的 ChatResponseAnchorPart。

ParameterDescription
value: Uri | Location

一个URI或位置。

title?: string

一个可选的标题,与值一起呈现。

ReturnsDescription
ChatResponseAnchorPart

属性

一个可选的标题,与值一起呈现。

此锚点的目标。

ChatResponseCommandButtonPart

表示聊天响应的一部分,是一个执行命令的按钮。

构造函数

创建一个新的ChatResponseCommandButtonPart。

ParameterDescription
value: Command

当按钮被点击时将执行的命令。

ReturnsDescription
ChatResponseCommandButtonPart

属性

当按钮被点击时将执行的命令。

ChatResponseFileTree

表示聊天响应中的文件树结构。

属性

如果当前文件树是一个目录,则是一个子文件树的数组。

文件或目录的名称。

ChatResponseFileTreePart

表示聊天响应的一部分,即文件树。

构造函数

创建一个新的 ChatResponseFileTreePart。

ParameterDescription
value: ChatResponseFileTree[]

文件树数据。

baseUri: Uri

此文件树所基于的基本URI。

ReturnsDescription
ChatResponseFileTreePart

属性

此文件树所基于的基本URI

文件树数据。

ChatResponseMarkdownPart

表示聊天响应中格式化为Markdown的部分。

构造函数

创建一个新的 ChatResponseMarkdownPart。

ParameterDescription
value: string | MarkdownString

一个markdown字符串或应被解释为markdown的字符串。不支持MarkdownString.isTrusted的布尔形式。

ReturnsDescription
ChatResponseMarkdownPart

属性

一个markdown字符串或应被解释为markdown的字符串。

ChatResponsePart

表示不同的聊天响应类型。

ChatResponseProgressPart

表示聊天响应中作为进度消息的一部分。

构造函数

创建一个新的 ChatResponseProgressPart。

ParameterDescription
value: string

进度消息

ReturnsDescription
ChatResponseProgressPart

属性

进度消息

ChatResponseReferencePart

表示聊天响应中作为参考的一部分,与内容分开呈现。

构造函数

创建一个新的ChatResponseReferencePart。

ParameterDescription
value: Uri | Location

一个URI或位置

iconPath?: IconPath

UI中显示的参考图标

ReturnsDescription
ChatResponseReferencePart

属性

参考的图标。

参考目标。

ChatResponseStream

ChatResponseStream 是参与者能够将内容返回到聊天视图的方式。它提供了几种方法来流式传输不同类型的内容,这些内容将在聊天视图中以适当的方式呈现。参与者可以使用它想要返回的内容类型的辅助方法,或者它可以实例化一个 ChatResponsePart 并使用通用的 ChatResponseStream.push 方法来返回它。

方法

将一个锚点部分推送到此流中。这是push(new ChatResponseAnchorPart(value, title))的简写。 锚点是对某种类型资源的内联引用。

ParameterDescription
value: Uri | Location

一个URI或位置。

title?: string

一个可选的标题,与值一起呈现。

ReturnsDescription
void

将一个命令按钮部分推送到此流中。是push(new ChatResponseCommandButtonPart(value, title))的简写。

ParameterDescription
command: Command

当按钮被点击时将执行的命令。

ReturnsDescription
void

将文件树部分推送到此流。这是push(new ChatResponseFileTreePart(value))的简写。

ParameterDescription
value: ChatResponseFileTree[]

文件树数据。

baseUri: Uri

此文件树所基于的基本URI。

ReturnsDescription
void

将markdown部分推送到此流中。是push(new ChatResponseMarkdownPart(value))的简写。

另请参阅 ChatResponseStream.push

ParameterDescription
value: string | MarkdownString

一个markdown字符串或应被解释为markdown的字符串。不支持MarkdownString.isTrusted的布尔形式。

ReturnsDescription
void

将进度部分推送到此流。简写为 push(new ChatResponseProgressPart(value))

ParameterDescription
value: string

进度消息

ReturnsDescription
void

将一部分推送到此流中。

ParameterDescription
part: ChatResponsePart

响应部分,渲染或元数据

ReturnsDescription
void

推送对此流的引用。是push(new ChatResponseReferencePart(value))的简写。

注意,引用不会与响应内联呈现。

ParameterDescription
value: Uri | Location

一个URI或位置

iconPath?: IconPath

UI中显示的参考图标

ReturnsDescription
void

ChatResponseTurn

表示聊天历史中聊天参与者的响应。

属性

此响应来自的命令名称。

此响应来自的聊天参与者的ID。

从聊天参与者接收到的内容。仅表示实际内容(而非元数据)的流部分被表示出来。

从聊天参与者那里收到的结果。

ChatResult

聊天请求的结果。

属性

如果请求导致错误,此属性定义错误详情。

此结果的任意元数据。可以是任何内容,但必须是可JSON序列化的。

ChatResultFeedback

表示对结果的用户反馈。

属性

收到的反馈类型。

用户提供反馈的ChatResult。 此对象具有与参与者回调返回的结果相同的属性,包括metadata,但不是同一个实例。

ChatResultFeedbackKind

表示收到的用户反馈类型。

枚举成员

用户将结果标记为无帮助。

用户将结果标记为有帮助。

剪贴板

剪贴板提供对系统剪贴板的读写访问。

方法

读取当前剪贴板内容为文本。

ParameterDescription
ReturnsDescription
Thenable<string>

一个可解析为字符串的 thenable。

将文本写入剪贴板。

ParameterDescription
value: string
ReturnsDescription
Thenable<void>

一个在写入发生时解析的 thenable。

代码操作

代码操作表示可以在代码中执行的更改,例如修复问题或重构代码。

一个CodeAction必须设置edit和/或command。如果两者都提供了,首先应用edit,然后执行命令。

构造函数

创建一个新的代码操作。

代码操作必须至少有一个标题编辑和/或一个命令

ParameterDescription
title: string

代码操作的标题。

kind?: CodeActionKind

代码操作的类型。

ReturnsDescription
CodeAction

属性

此代码操作执行的Command

如果此命令抛出异常,编辑器将在当前光标位置向用户显示异常消息。

诊断 此代码操作解决的问题。

标记代码操作当前无法应用。

  • 禁用的代码操作不会显示在自动的灯泡代码操作菜单中。

  • 当用户请求更特定类型的代码操作(如重构)时,禁用的操作在代码操作菜单中显示为淡出。

  • 如果用户有一个快捷键 可以自动应用代码操作,并且只返回了禁用的代码操作,编辑器将向用户显示一个带有reason的错误消息。

ParameterDescription
reason: string

代码操作当前被禁用的原因的人类可读描述。

这是在代码操作界面中显示的。

此代码操作执行的工作区编辑

将此标记为首选操作。首选操作用于auto fix命令,并且可以通过键绑定进行定位。

如果快速修复能够正确解决根本错误,则应将其标记为首选。 如果重构是最合理的行动选择,则应将其标记为首选。

Kind 代码操作的类型。

用于过滤代码操作。

此代码操作的简短、人类可读的标题。

CodeActionContext

包含有关运行代码操作的上下文的额外诊断信息。

属性

一组诊断信息。

请求返回的操作类型。

不属于此类别的操作在通过灯泡显示之前会被过滤掉。

请求代码操作的原因。

CodeActionKind

一种代码操作。

种类是由.分隔的标识符的层次结构列表,例如"refactor.extract.function"

代码操作类型由编辑器用于UI元素,如重构上下文菜单。用户也可以使用editor.action.codeAction命令触发特定类型的代码操作。

静态

空类型。

适用于整个笔记本范围的所有代码操作的基本类型。使用此CodeActionKinds的代码应始终以notebook.开头。

这需要为其创建新的CodeActions并通过扩展提供。现有的类型不能仅仅添加新的notebook.前缀,因为该功能是完整笔记本范围所独有的。

Notebook CodeActionKinds 可以初始化为以下任意一种(两者都会导致 notebook.source.xyz):

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

示例种类/操作:

  • notebook.source.organizeImports(可能会将所有导入移动到新的顶部单元格)
  • notebook.source.normalizeVariableNames(可能会将所有变量重命名为标准的大小写格式)

快速修复操作的基本类型:quickfix

快速修复操作解决了代码中的问题,并显示在正常的代码操作上下文菜单中。

重构操作的基本类型:refactor

重构操作显示在重构上下文菜单中。

重构提取操作的基本类型:refactor.extract

示例提取操作:

  • 提取方法
  • 提取函数
  • 提取变量
  • 从类中提取接口
  • ...

重构内联操作的基本类型:refactor.inline

示例内联操作:

  • 内联函数
  • 内联变量
  • 内联常量
  • ...

重构移动操作的基本类型:refactor.move

示例移动操作:

  • 将函数移动到新文件
  • 在类之间移动属性
  • 将方法移动到基类
  • ...

重构重写操作的基本类型:refactor.rewrite

示例重写操作:

  • 将JavaScript函数转换为类
  • 添加或删除参数
  • 封装字段
  • 使方法静态化
  • ...

源操作的基本类型:source

源代码操作适用于整个文件。它们必须明确请求,并且不会显示在正常的灯泡菜单中。源代码操作可以在保存时使用editor.codeActionsOnSave运行,并且也会显示在source上下文菜单中。

自动修复源操作的基本类型:source.fixAll

自动修复所有操作,修复那些有明确修复方法且不需要用户输入的错误。 它们不应抑制错误或执行不安全的修复,例如生成新类型或类。

组织导入源操作的基本类型:source.organizeImports

构造函数

私有构造函数,使用静态 CodeActionKind.XYZ 从现有的代码操作类型派生。

ParameterDescription
value: string

类型的值,例如 refactor.extract.function

ReturnsDescription
CodeActionKind

属性

类型的字符串值,例如 "refactor.extract.function"

方法

通过在当前种类后附加一个更具体的选择器来创建一个新的种类。

不修改当前类型。

ParameterDescription
parts: string
ReturnsDescription
CodeActionKind

检查other是否是此CodeActionKind的子类型。

例如,类型 "refactor.extract" 包含 "refactor.extract" 和 ``"refactor.extract.function",但不包含 "unicorn.refactor.extract",或 "refactor.extractAll"refactor`。

ParameterDescription
other: CodeActionKind

要检查的类型。

ReturnsDescription
boolean

检查此代码操作类型是否与 other 相交。

例如,种类 "refactor.extract"refactor"refactor.extract""refactor.extract.function" 相交, 但不与 "unicorn.refactor.extract""refactor.extractAll" 相交。

ParameterDescription
other: CodeActionKind

要检查的类型。

ReturnsDescription
boolean

CodeActionProvider

为代码提供上下文操作。代码操作通常用于修复问题或美化/重构代码。

代码操作以几种不同的方式向用户展示:

  • 灯泡功能,显示当前光标位置处的代码操作列表。灯泡的操作列表包括快速修复和重构。
  • 作为用户可以运行的命令,例如Refactor。用户可以从命令面板或使用快捷键运行这些命令。
  • 作为源操作,例如Organize Imports
  • Quick fixes 显示在问题视图中。
  • 保存时应用的更改由editor.codeActionsOnSave设置。

方法

获取文档中给定范围的代码操作。

仅返回与用户请求范围相关的代码操作。同时要考虑返回的代码操作在用户界面中的显示方式。例如,灯泡小部件和Refactor命令会将返回的代码操作显示为列表,因此不要返回大量代码操作,以免让用户感到不知所措。

ParameterDescription
document: TextDocument

调用命令的文档。

range: Range | Selection

调用命令的选择器或范围。如果操作是在当前活动的编辑器中请求的,这将始终是一个选择

context: CodeActionContext

提供有关正在请求的代码操作的附加信息。您可以使用此信息来查看编辑器正在请求的特定类型的代码操作,以便返回更相关的操作,并避免返回编辑器将丢弃的不相关的代码操作。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<Array<Command | T>>

一组代码操作,例如快速修复或重构。可以通过返回undefinednull或空数组来表示没有结果。

出于兼容性考虑,我们也支持返回Command,但所有新的扩展应返回CodeAction对象。

给定一个代码操作,填写其edit属性。对其他属性的更改,如标题,将被忽略。具有编辑操作的代码操作将不会被解析。

注意,返回命令而不是代码操作的代码操作提供者无法成功实现此功能。返回命令已被弃用,应改为返回代码操作。

ParameterDescription
codeAction: T

一个代码操作。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<T>

解析后的代码操作或解析为此类的可thenable对象。返回给定的item是可以的。当没有返回结果时,将使用给定的item

CodeActionProviderMetadata

关于CodeActionProvider提供的代码操作类型的元数据。

属性

静态文档,用于一类代码操作。

如果满足以下任一条件,提供者的文档将显示在代码操作菜单中:

  • 编辑器会请求kind的代码操作。在这种情况下,编辑器将显示与请求的代码操作类型最匹配的文档。例如,如果提供者有RefactorRefactorExtract的文档,当用户请求RefactorExtract的代码操作时,编辑器将使用RefactorExtract的文档,而不是Refactor的文档。

  • 任何kind的代码操作都由提供者返回。

每个提供者最多只会显示一个文档条目。

CodeActionKinds 的列表,CodeActionProvider 可能返回的内容。

此列表用于确定是否应调用给定的CodeActionProvider。 为了避免不必要的计算,每个CodeActionProvider都应列出使用providedCodeActionKinds。 种类列表可以是通用的,例如[CodeActionKind.Refactor],或者列出提供的每种类型, 例如[CodeActionKind.Refactor.Extract.append('function'), CodeActionKind.Refactor.Extract.append('constant'), ...]

CodeActionTriggerKind

请求代码操作的原因。

枚举成员

代码操作是由用户或扩展明确请求的。

代码操作已自动请求。

这通常发生在文件中的当前选择发生变化时,但也可能在文件内容发生变化时触发。

CodeLens

代码镜头表示一个命令,它应该与源代码文本一起显示,例如引用次数、运行测试的方法等。

当没有命令与之关联时,代码镜头是未解析的。出于性能原因,代码镜头的创建和解析应分为两个阶段进行。

另请参阅

构造函数

创建一个新的代码镜头对象。

ParameterDescription
range: Range

此代码镜头适用的范围。

command?: Command

与此代码透镜关联的命令。

ReturnsDescription
CodeLens

属性

此代码透镜表示的命令。

true 当有与之关联的命令时。

此代码镜头有效的范围。应仅跨越单行。

CodeLensProvider

代码镜头提供者向源代码文本添加命令。这些命令将显示为源代码文本之间的专用水平线。

事件

一个可选的事件,用于表示此提供者的代码镜头已更改。

方法

计算一个lenses的列表。此调用应尽可能快地返回,如果计算命令的成本很高,实现者应仅返回设置了范围的代码镜头对象,并实现resolve

ParameterDescription
document: TextDocument

调用命令的文档。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<T[]>

一组代码镜头或一个可解析为此的thenable。可以通过返回undefinednull或空数组来表示没有结果。

此函数将为每个可见的代码镜头调用,通常在滚动后和调用compute-lenses之后。

ParameterDescription
codeLens: T

必须解决的代码镜头。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<T>

给定的、已解析的代码镜头或解析为此类的可解析对象。

颜色

表示RGBA空间中的颜色。

构造函数

创建一个新的颜色实例。

ParameterDescription
red: number

红色组件。

green: number

绿色组件。

blue: number

蓝色组件。

alpha: number

透明度组件。

ReturnsDescription
Color

属性

此颜色的alpha分量在范围[0-1]内。

此颜色的蓝色分量在范围 [0-1] 内。

此颜色的绿色分量在范围 [0-1] 内。

此颜色的红色分量在范围 [0-1] 内。

颜色信息

表示文档中的颜色范围。

构造函数

创建一个新的颜色范围。

ParameterDescription
range: Range

颜色出现的范围。不能为空。

color: Color

颜色的值。

ReturnsDescription
ColorInformation

属性

此颜色范围的实际颜色值。

文档中出现此颜色的范围。

颜色表示

一个颜色表示对象描述了如何将Color表示为文本以及从源代码中引用它所需的编辑。

对于某些语言,一种颜色可以有多种表示方式,例如,CSS 可以使用常量 Red、十六进制值 #ff0000,或者 rgba 和 hsla 形式来表示红色。在 C# 中,其他表示方式也适用,例如 System.Drawing.Color.Red

构造函数

创建一个新的颜色表示。

ParameterDescription
label: string

此颜色展示的标签。

ReturnsDescription
ColorPresentation

属性

一个可选的附加文本编辑数组,在选择此颜色表示时应用。编辑不得与主编辑重叠,也不得相互重叠。

此颜色展示的标签。它将在颜色选择器头部显示。默认情况下,这也是选择此颜色展示时插入的文本。

当选择此颜色表示时,应用于文档的编辑。当falsy时,使用标签

颜色主题

代表一个颜色主题。

属性

这种颜色主题的类型:浅色、深色、高对比度深色和高对比度浅色。

ColorThemeKind

表示颜色主题类型。

枚举成员

一个浅色主题。

深色主题。

一个深色高对比度的颜色主题。

一个轻量高对比度的颜色主题。

命令

表示对命令的引用。提供一个标题,该标题将用于在用户界面中表示命令,并且可选地提供一个参数数组,这些参数将在调用命令处理函数时传递给它。

属性

命令处理程序应调用的参数。

实际命令处理程序的标识符。

另请参阅 commands.registerCommand

命令的标题,如 save

命令的工具提示,当在用户界面中显示时。

评论

评论显示在编辑器或评论面板中,具体取决于其提供方式。

属性

评论的作者信息

人类可读的评论正文

评论的上下文值。这可以用于贡献特定于评论的操作。 例如,评论被赋予了一个上下文值editable。当使用menus扩展点向comments/comment/title贡献操作时,你可以在when表达式中为键comment指定上下文值,如comment == editable

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

这将仅显示针对contextValueeditable的评论的操作extension.deleteComment

可选的标签描述Comment 如果存在,标签将显示在作者名称旁边。

Comment mode 的评论

Comment的可选反应

可选的时间戳,将在评论中显示。 日期将根据用户的语言环境和设置进行格式化。

评论作者信息

一个评论的作者信息

属性

作者的可选图标路径

评论作者的显示名称

CommentController

评论控制器能够为编辑器提供评论支持,并为用户提供多种与评论互动的方式。

属性

可选的注释范围提供者。提供一个支持对任何给定资源URI进行注释的范围列表。

如果没有提供,用户不能留下任何评论。

此评论控制器的ID。

此评论控制器的人类可读标签。

评论控制器选项

用于在评论上创建和删除反应的可选反应处理程序。

ParameterDescription
comment: Comment
reaction: CommentReaction
ReturnsDescription
Thenable<void>

方法

创建一个评论线程。评论线程一旦创建,将在可见的文本编辑器(如果资源匹配)和评论面板中显示。

ParameterDescription
uri: Uri

线程创建时所基于的文档的URI。

range: Range

评论线程在文档中的范围。

comments: readonly Comment[]

线程的有序评论。

ReturnsDescription
CommentThread

处理此评论控制器。

一旦被处理,所有由该评论控制器创建的评论线程也将从编辑器和评论面板中移除。

ParameterDescription
ReturnsDescription
void

CommentingRangeProvider

评论控制器提供注释范围的提供者。

方法

提供一个允许创建新评论线程的范围列表,或为给定文档提供null

ParameterDescription
document: TextDocument
token: CancellationToken
ReturnsDescription
ProviderResult<Range[]>

CommentMode

Comment的评论模式

枚举成员

显示评论编辑器

显示评论的预览

CommentOptions

表示一个评论控制器选项

属性

当评论输入框获得焦点时,显示为占位符的可选字符串。

当评论输入框折叠时,显示的可选字符串。

CommentReaction

Comment 的反应

属性

评论的作者是否对此反应做出了反应

对此反应做出反应的用户数量

UI中显示的反应图标。

反应的人类可读标签

CommentReply

comments/commentThread/context中注册的操作的命令参数。

属性

注释编辑器中的值

活动的评论线程

CommentRule

描述了一种语言的注释是如何工作的。

属性

块注释字符对,如 /* block comment */

行注释标记,如 // 这是一个注释

CommentThread

表示文档中特定范围内对话的评论集合。

属性

线程是否支持回复。 默认为 true。

打开文档时,线程是否应折叠或展开。默认为折叠。

线程的有序评论。

评论线程的上下文值。这可以用于贡献线程特定的操作。 例如,一个评论线程被赋予了一个上下文值editable。当使用menus扩展点向comments/commentThread/title贡献操作时,你可以在when表达式中为键commentThread指定上下文值,如commentThread == editable

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

这将仅显示针对contextValueeditable的评论线程的extension.deleteCommentThread操作。

可选的、描述评论线程的人类可读标签

评论线程在文档中的范围。线程图标将显示在范围的最后一行。

评论线程的可选状态,可能会影响评论的显示方式。

线程创建时所基于的文档的URI。

方法

处理此评论线程。

一旦处理完毕,此评论线程将在适当时从可见编辑器和评论面板中移除。

ParameterDescription
ReturnsDescription
void

CommentThreadCollapsibleState

可折叠状态的评论线程

枚举成员

确定一个项目是否被折叠

确定一个项目是否展开

CommentThreadState

评论线程的状态。

枚举成员

未解决的线程状态

已解决的线程状态

CompletionContext

包含有关触发完成提供程序的上下文的其他信息。

属性

触发完成项提供程序的字符。

undefined 如果提供者不是由字符触发的。

当完成提供程序被触发时,触发字符已经在文档中。

完成是如何触发的。

CompletionItem

完成项代表一个文本片段,用于建议完成正在输入的文本。

只需从标签创建完成项就足够了。在这种情况下,完成项将替换单词直到光标位置,使用给定的标签或插入文本。否则,将使用给定的编辑

在编辑器中选择完成项时,其定义或合成的文本编辑将应用于所有光标/选择,而additionalTextEdits将按提供的方式应用。

另请参阅

构造函数

创建一个新的完成项。

完成项必须至少有一个标签,该标签将用作插入文本以及排序和过滤。

ParameterDescription
label: string | CompletionItemLabel

完成的标签。

kind?: CompletionItemKind

kind 的完成类型。

ReturnsDescription
CompletionItem

属性

一个可选的附加文本编辑数组,当选择此完成时应用。编辑不得与主编辑重叠,也不得与自身重叠。

一个可选的Command,在插入此完成项之后执行。注意,对当前文档的额外修改应使用 additionalTextEdits属性来描述。

一组可选的字符,当此补全处于活动状态时按下这些字符将首先接受补全,然后输入该字符。注意,所有提交字符的长度应为length=1,多余的字符将被忽略。

一个人类可读的字符串,包含有关此项目的附加信息,如类型或符号信息。

表示文档注释的人类可读字符串。

一个字符串,应在过滤一组完成项时使用。当falsy时,使用label

请注意,过滤文本是与由range属性定义的前导词(前缀)匹配的。

当选择此完成项时,应插入文档中的字符串或片段。当falsy时,使用label

保持insertText的空格不变。默认情况下,编辑器会调整新行的前导空格,使其与接受项目的行的缩进匹配 - 将此设置为true将防止这种情况。

此完成项的类型。根据类型,编辑器会选择相应的图标。

此完成项的标签。默认情况下,这也是选择此完成项时插入的文本。

在显示时选择此项。注意,只能选择一个完成项,且编辑器决定选择哪个项。规则是选择匹配最佳的第一个项。

一个范围或插入和替换范围,选择应由此完成项替换的文本。

当省略时,使用当前单词的范围作为替换范围,并使用从当前单词开始到当前位置的范围作为插入范围。

注意1: 范围必须是单行,并且必须包含完成请求的位置。 注意2: 插入范围必须是替换范围的前缀,这意味着它必须被包含并且从相同的位置开始。

一个字符串,用于将此项目与其他项目进行比较。当falsy时,使用label

请注意,sortText仅用于完成项的初始排序。当存在前导词(前缀)时,排序基于完成项与该前缀的匹配程度,而初始排序仅在完成项匹配程度相同时使用。前缀由range属性定义,因此每个完成项的前缀可能不同。

此完成项的标签。

  • 已弃用 - 请使用 CompletionItem.insertTextCompletionItem.range 代替。

当选择此完成时应用于文档的编辑。当提供编辑时,insertText的值将被忽略。

Range 的编辑范围必须是单行的,并且与请求补全的位置在同一行。

CompletionItemKind

完成项类型。

枚举成员

Text 完成项类型。

Method 完成项类型。

Function 完成项类型。

Constructor 完成项类型。

Field 补全项类型。

Variable 完成项类型。

Class 完成项类型。

Interface 完成项类型。

Module 完成项类型。

Property 完成项类型。

Unit 完成项类型。

Value 完成项类型。

Enum 完成项类型。

Keyword 补全项类型。

Snippet 完成项类型。

Color 完成项类型。

File 完成项类型。

Reference 补全项类型。

Folder 完成项类型。

EnumMember 完成项类型。

Constant 补全项类型。

Struct 完成项类型。

Event 完成项类型。

Operator 完成项类型。

TypeParameter 完成项类型。

User 完成项类型。

Issue 完成项类型。

CompletionItemLabel

用于完成项的结构化标签。

属性

一个可选的字符串,在CompletionItemLabel.detail之后以不太显眼的方式呈现。应该用于完全限定的名称或文件路径。

一个可选的字符串,它在label之后以较不突出的方式直接呈现,没有任何间距。应该用于函数签名或类型注释。

此完成项的标签。

默认情况下,这也是选择此完成时插入的文本。

CompletionItemProvider

完成项提供者接口定义了扩展与 IntelliSense之间的契约。

提供者可以通过实现resolveCompletionItem函数来延迟计算detaildocumentation属性。然而,初始排序和过滤所需的属性,如sortTextfilterTextinsertTextrange,在解析过程中不得更改。

提供者会根据用户的手势明确请求补全,或者根据配置在输入单词或触发字符时隐式请求补全。

方法

为给定的位置和文档提供完成项。

ParameterDescription
document: TextDocument

调用命令的文档。

position: Position

命令被调用的位置。

token: CancellationToken

一个取消令牌。

context: CompletionContext

完成是如何触发的。

ReturnsDescription
ProviderResult<CompletionList<T> | T[]>

一个完成项的数组,一个完成列表,或者一个可以解析为其中之一的thenable。 可以通过返回undefinednull或一个空数组来表示没有结果。

给定一个完成项,填写更多数据,如文档注释详细信息

编辑器只会解析一次完成项。

注意,当UI中已经显示完成项或已选择某项进行插入时,会调用此函数。因此,不能更改影响显示(标签、排序、过滤等)或(主要)插入行为(insertText)的属性。

此函数可能会填充additionalTextEdits。然而,这意味着在解析完成之前可能会插入一个项目,在这种情况下,编辑器将尽力仍然应用这些额外的文本编辑。

ParameterDescription
item: T

当前在用户界面中处于活动状态的完成项。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<T>

解析完成的项或解析为此类的可解析项。返回给定的item是可以的。当没有返回结果时,将使用给定的item

CompletionItemTag

完成项标签是用于调整完成项渲染的额外注释。

枚举成员

将完成状态渲染为过时,通常使用删除线。

CompletionList

表示要在编辑器中显示的完成项的集合。

构造函数

创建一个新的完成列表。

ParameterDescription
items?: T[]

完成项。

isIncomplete?: boolean

列表不完整。

ReturnsDescription
CompletionList<T>

属性

此列表不完整。进一步的输入应导致重新计算此列表。

完成项。

CompletionTriggerKind

如何触发完成提供者

枚举成员

完成是正常触发的。

完成是由触发字符触发的。

由于当前完成列表不完整,已重新触发完成

配置变更事件

描述配置更改的事件

方法

检查给定部分是否已更改。 如果提供了范围,则检查给定范围内的资源的部分是否已更改。

ParameterDescription
section: string

配置名称,支持点分隔的名称。

scope?: ConfigurationScope

检查的范围。

ReturnsDescription
boolean

true 如果给定的部分已更改。

ConfigurationScope

配置范围可以是一个 'resource' 或一个 languageId 或两者兼有,或者 一个 'TextDocument' 或 一个 'WorkspaceFolder'

ConfigurationTarget

配置目标

枚举成员

全局配置

工作区配置

工作区文件夹配置

自定义文档

表示由CustomEditorProvider使用的自定义文档。

自定义文档仅在给定的CustomEditorProvider内使用。CustomDocument的生命周期由编辑器管理。当不再有对CustomDocument的引用时,它将被释放。

属性

此文档的关联URI。

方法

处理自定义文档。

当没有对给定CustomDocument的更多引用时(例如,当与文档关联的所有编辑器都已关闭时),编辑器会调用此方法。

ParameterDescription
ReturnsDescription
void

自定义文档备份

一个用于CustomDocument的备份。

属性

备份的唯一标识符。

当从备份中打开自定义编辑器时,此ID会在openCustomDocument中传递回您的扩展程序。

方法

删除当前备份。

当编辑器确定不再需要当前备份时,例如当创建了新备份或文件被保存时,会调用此函数。

ParameterDescription
ReturnsDescription
void

自定义文档备份上下文

用于实现CustomDocumentBackup的附加信息。

属性

建议的文件位置以写入新的备份。

请注意,您的扩展可以自由忽略此内容并使用自己的备份策略。

如果编辑器用于当前工作区中的资源,destination 将指向 ExtensionContext.storagePath 内的一个文件。destination 的父文件夹可能不存在,因此在将备份写入此位置之前,请确保创建它。

CustomDocumentContentChangeEvent

由扩展触发的事件,用于向编辑器发出信号,表明CustomDocument的内容已更改。

另请参阅 CustomEditorProvider.onDidChangeCustomDocument.

属性

变更所针对的文档。

CustomDocumentEditEvent

由扩展触发的事件,用于向编辑器发出信号,表明在CustomDocument上发生了编辑。

另请参阅 CustomEditorProvider.onDidChangeCustomDocument.

属性

编辑所针对的文档。

描述编辑的显示名称。

这将在用户界面中显示给用户,用于撤销/重做操作。

方法

重新执行编辑操作。

当用户重做此编辑时,编辑器会调用此方法。要实现redo,您的扩展程序应将文档和编辑器恢复到onDidChangeCustomDocument将此编辑添加到编辑器的内部编辑堆栈之后的状态。

ParameterDescription
ReturnsDescription
void | Thenable<void>

撤销编辑操作。

当用户撤销此编辑时,编辑器会调用此方法。要实现undo,您的扩展程序应将文档和编辑器恢复到onDidChangeCustomDocument将此编辑添加到编辑器的内部编辑堆栈之前的状态。

ParameterDescription
ReturnsDescription
void | Thenable<void>

CustomDocumentOpenContext

关于打开自定义文档的附加信息。

属性

用于恢复文档的备份ID,如果没有备份则为undefined

如果提供了这个,您的扩展应该从备份中恢复编辑器,而不是从用户的工作区读取文件。

如果URI是一个未命名的文件,这将填充该文件的字节数据

如果提供了这个,您的扩展应该利用这些字节数据,而不是在传入的URI上执行fs API。

CustomEditorProvider

提供可编辑的自定义编辑器,这些编辑器使用自定义文档模型。

自定义编辑器使用CustomDocument作为其文档模型,而不是TextDocument。 这使得扩展能够完全控制诸如编辑、保存和备份等操作。

在处理二进制文件或更复杂的场景时,您应该使用这种类型的自定义编辑器。对于简单的基于文本的文档,请改用CustomTextEditorProvider

事件

信号表示在自定义编辑器内发生了编辑。

每当在自定义编辑器中进行编辑时,您的扩展程序必须触发此事件。编辑可以是任何操作,从更改某些文本,到裁剪图像,再到重新排序列表。您的扩展程序可以自由定义什么是编辑以及每次编辑时存储的数据。

触发 onDidChange 会导致编辑器被标记为“脏”状态。当用户保存或恢复文件时,此状态将被清除。

支持撤销/重做的编辑器必须在每次编辑发生时触发一个CustomDocumentEditEvent。这允许用户使用编辑器的标准键盘快捷键来撤销和重做编辑。如果用户撤销所有编辑到上次保存的状态,编辑器还会将编辑器标记为不再脏。

支持编辑但不能使用编辑器标准撤销/重做机制的编辑器必须触发CustomDocumentContentChangeEvent。 用户清除不支持撤销/重做的编辑器的脏状态的唯一方法是 保存恢复文件。

编辑器应该只触发CustomDocumentEditEvent事件,或者只触发CustomDocumentContentChangeEvent事件。

方法

备份一个脏的自定义文档。

备份用于热退出和防止数据丢失。您的backup方法应保存资源当前状态,即应用了编辑的状态。最常见的情况是将资源保存到ExtensionContext.storagePath中的磁盘。当编辑器重新加载并为资源打开您的自定义编辑器时,您的扩展应首先检查是否存在该资源的任何备份。如果有备份,您的扩展应从备份中加载文件内容,而不是从工作区中的资源加载。

backup 在用户停止编辑文档大约一秒钟后触发。如果用户快速编辑文档,backup 将不会在编辑停止之前被调用。

当启用auto save时,不会调用backup(因为自动保存已经持久化了资源)。

ParameterDescription
document: T

要备份的文档。

context: CustomDocumentBackupContext

可用于备份文档的信息。

cancellation: CancellationToken

表示当前备份的令牌,因为新的备份即将到来。由您的扩展决定如何响应取消。例如,如果您的扩展正在备份一个大文件,并且该操作需要时间完成,您的扩展可能会决定完成正在进行的备份,而不是取消它,以确保编辑器有一些有效的备份。

ReturnsDescription
Thenable<CustomDocumentBackup>

为给定资源创建一个新文档。

openCustomDocument 在首次打开给定资源的编辑器时被调用。然后,打开的文档会传递给 resolveCustomEditor,以便向用户显示编辑器。

如果用户打开了额外的编辑器,已经打开的CustomDocument会被重新使用。当给定资源的所有编辑器都关闭时,CustomDocument会被处理掉。此时打开编辑器将触发对openCustomDocument的另一次调用。

ParameterDescription
uri: Uri

要打开的文档的Uri。

openContext: CustomDocumentOpenContext

关于打开自定义文档的附加信息。

token: CancellationToken

一个取消令牌,表示不再需要结果。

ReturnsDescription
T | Thenable<T>

自定义文档。

为给定资源解析自定义编辑器。

每当用户为此CustomEditorProvider打开新编辑器时,都会调用此方法。

ParameterDescription
document: T

正在解析的资源的文档。

webviewPanel: WebviewPanel

用于显示此资源编辑器UI的webview面板。

在解析过程中,提供者必须为内容网页视图面板填充初始HTML,并连接所有它感兴趣的事件监听器。提供者还可以保留WebviewPanel以便稍后使用,例如在命令中使用。有关更多详细信息,请参见WebviewPanel

token: CancellationToken

一个取消令牌,表示不再需要结果。

ReturnsDescription
void | Thenable<void>

可选的 thenable 表示自定义编辑器已解决。

将自定义文档恢复到上次保存的状态。

当用户在自定义编辑器中触发File: Revert File时,编辑器会调用此方法。(请注意,这仅在编辑器的File: Revert File命令中使用,而不用于文件的git revert操作)。

要实现revert,实现者必须确保所有document的编辑器实例(webviews)都显示与保存状态相同的文档。这通常意味着从工作区重新加载文件。

ParameterDescription
document: T

要恢复的文档。

cancellation: CancellationToken

表示不再需要回滚的令牌。

ReturnsDescription
Thenable<void>

Thenable 信号表示更改已完成。

保存自定义文档。

当用户保存自定义编辑器时,编辑器会调用此方法。这可能在用户触发保存时发生,例如当自定义编辑器处于活动状态时,通过诸如save all等命令,或者如果启用了自动保存。

要实现save,实现者必须持久化自定义编辑器。这通常意味着将自定义文档的文件数据写入磁盘。save完成后,任何关联的编辑器实例将不再被标记为脏。

ParameterDescription
document: T

要保存的文档。

cancellation: CancellationToken

表示不再需要保存的令牌(例如,如果触发了另一个保存)。

ReturnsDescription
Thenable<void>

Thenable 信号表示保存已完成。

将自定义文档保存到不同的位置。

当用户在自定义编辑器上触发“另存为”时,编辑器会调用此方法。实现者必须将自定义编辑器持久化到destination

当用户接受另存为时,当前编辑器将被替换为新保存文件的非脏编辑器。

ParameterDescription
document: T

要保存的文档。

destination: Uri

保存位置。

cancellation: CancellationToken

表示不再需要保存的令牌。

ReturnsDescription
Thenable<void>

Thenable 信号表示保存已完成。

自定义执行

用于将扩展回调作为任务执行的类。

构造函数

构建一个CustomExecution任务对象。当任务运行时,回调将被执行,此时扩展应返回它将“运行”的Pseudoterminal。任务应等待进一步执行,直到调用Pseudoterminal.open。任务取消应使用Pseudoterminal.close处理。当任务完成时,触发Pseudoterminal.onDidClose

ParameterDescription
callback: (resolvedDefinition: TaskDefinition) => Thenable<Pseudoterminal>

当用户启动任务时将调用的回调函数。任务定义中的任何${}样式变量将被解析并作为resolvedDefinition传递给回调函数。

ReturnsDescription
CustomExecution

CustomReadonlyEditorProvider

提供只读自定义编辑器的提供程序,这些编辑器使用自定义文档模型。

自定义编辑器使用CustomDocument作为其文档模型,而不是TextDocument

在处理二进制文件或更复杂的场景时,您应该使用这种类型的自定义编辑器。对于简单的基于文本的文档,请改用CustomTextEditorProvider

方法

为给定资源创建一个新文档。

openCustomDocument 在首次打开给定资源的编辑器时被调用。然后,打开的文档会传递给 resolveCustomEditor,以便向用户显示编辑器。

如果用户打开了额外的编辑器,已经打开的CustomDocument会被重新使用。当给定资源的所有编辑器都关闭时,CustomDocument会被处理掉。此时打开编辑器将触发对openCustomDocument的另一次调用。

ParameterDescription
uri: Uri

要打开的文档的Uri。

openContext: CustomDocumentOpenContext

关于打开自定义文档的附加信息。

token: CancellationToken

一个取消令牌,表示不再需要结果。

ReturnsDescription
T | Thenable<T>

自定义文档。

为给定资源解析自定义编辑器。

每当用户为此CustomEditorProvider打开新编辑器时,都会调用此方法。

ParameterDescription
document: T

正在解析的资源的文档。

webviewPanel: WebviewPanel

用于显示此资源编辑器UI的webview面板。

在解析过程中,提供者必须为内容网页视图面板填充初始HTML,并连接所有它感兴趣的事件监听器。提供者还可以保留WebviewPanel以便稍后使用,例如在命令中使用。有关更多详细信息,请参见WebviewPanel

token: CancellationToken

一个取消令牌,表示不再需要结果。

ReturnsDescription
void | Thenable<void>

可选的 thenable 表示自定义编辑器已解决。

自定义文本编辑器提供者

提供基于文本的自定义编辑器。

基于文本的自定义编辑器使用TextDocument作为其数据模型。这大大简化了自定义编辑器的实现,因为它允许编辑器处理许多常见操作,如撤销和备份。提供者负责在webview和TextDocument之间同步文本更改。

方法

为给定的文本资源解析自定义编辑器。

当用户首次为CustomTextEditorProvider打开资源时,或者如果他们使用此CustomTextEditorProvider重新打开现有编辑器时,将调用此方法。

ParameterDescription
document: TextDocument

用于解析资源的文档。

webviewPanel: WebviewPanel

用于显示此资源编辑器UI的webview面板。

在解析过程中,提供者必须为内容网页视图面板填充初始HTML,并连接所有它感兴趣的事件监听器。提供者还可以保留WebviewPanel以便稍后使用,例如在命令中使用。有关更多详细信息,请参见WebviewPanel

token: CancellationToken

一个取消令牌,表示不再需要结果。

ReturnsDescription
void | Thenable<void>

Thenable 表示自定义编辑器已解决。

数据转移

一个包含相应传输数据的MIME类型映射的映射表。

实现handleDrag的拖放控制器可以向数据传输添加额外的MIME类型。这些额外的MIME类型仅在从同一拖放控制器中的元素启动拖动时包含在handleDrop中。

构造函数

ParameterDescription
ReturnsDescription
DataTransfer

方法

获取一个新的迭代器,其中包含此数据传输中每个元素的[mime, item]对。

ParameterDescription
ReturnsDescription
IterableIterator<[mimeType: string, item: DataTransferItem]>

允许遍历数据传输项。

ParameterDescription
callbackfn: (item: DataTransferItem, mimeType: string, dataTransfer: DataTransfer) => void

用于遍历数据传输项的回调函数。

thisArg?: any

调用处理程序函数时使用的this上下文。

ReturnsDescription
void

检索给定MIME类型的数据传输项。

ParameterDescription
mimeType: string

获取数据传输项的MIME类型,例如text/plainimage/png。MIME类型的查找是大小写不敏感的。

特殊的MIME类型:

  • text/uri-list — 一个包含由toString()处理的Uris的字符串,这些Uris由\r\n分隔。要在文件中指定光标位置,将Uri的片段设置为L3,5,其中3是行号,5是列号。
ReturnsDescription
DataTransferItem

设置一个MIME类型到数据传输项的映射。

ParameterDescription
mimeType: string

要设置数据的MIME类型。MIME类型以小写存储,查找时不区分大小写。

value: DataTransferItem

给定MIME类型的数据传输项。

ReturnsDescription
void

DataTransferFile

DataTransferItem关联的文件。

此类型的实例只能由编辑器创建,而不能由扩展创建。

属性

文件的名称。

文件的完整路径。

在网页上可能是 undefined

方法

文件的完整内容。

ParameterDescription
ReturnsDescription
Thenable<Uint8Array>

DataTransferItem

封装在拖放操作期间传输的数据。

构造函数

ParameterDescription
value: any

存储在此项目上的自定义数据。可以使用DataTransferItem.value进行检索。

ReturnsDescription
DataTransferItem

属性

存储在此项目上的自定义数据。

你可以使用value在操作之间共享数据。只要创建DataTransferItem的扩展在同一个扩展主机中运行,就可以检索原始对象。

方法

尝试获取与此数据传输项关联的文件

请注意,文件对象仅在拖放操作的范围内有效。

ParameterDescription
ReturnsDescription
DataTransferFile

数据传输的文件,如果项目不是文件或无法访问文件数据,则为undefined

获取此项目的字符串表示。

如果 DataTransferItem.value 是一个对象,这将返回将 DataTransferItem.value 值进行 JSON 字符串化的结果。

ParameterDescription
ReturnsDescription
Thenable<string>

调试适配器

如果实现了DebugAdapter接口,可以实现调试适配器协议的调试适配器可以在编辑器中注册。

事件

一个事件,在调试适配器向编辑器发送调试适配器协议消息后触发。消息可以是请求、响应或事件。

方法

释放此对象。

ParameterDescription
ReturnsDescription
any

处理调试适配器协议消息。 消息可以是请求、响应或事件。 结果或错误通过onSendMessage事件返回。

ParameterDescription
message: DebugProtocolMessage

调试适配器协议消息

ReturnsDescription
void

调试适配器描述符

表示不同类型的调试适配器

DebugAdapterDescriptorFactory

一个调试适配器工厂,用于创建调试适配器描述符

方法

'createDebugAdapterDescriptor' 在调试会话开始时被调用,以提供有关要使用的调试适配器的详细信息。 这些详细信息必须作为 DebugAdapterDescriptor 类型的对象返回。 目前支持两种类型的调试适配器:

  • 调试适配器可执行文件被指定为命令路径和参数(参见DebugAdapterExecutable),
  • 一个可通过通信端口访问的调试适配器服务器(参见DebugAdapterServer)。 如果未实现该方法,默认行为如下: createDebugAdapter(session: DebugSession, executable: DebugAdapterExecutable) { if (typeof session.configuration.debugServer === 'number') { return new DebugAdapterServer(session.configuration.debugServer); } return executable; }
ParameterDescription
session: DebugSession

调试会话将使用调试适配器。

executable: DebugAdapterExecutable

调试适配器的可执行信息,如package.json中所指定的(如果不存在此类信息,则为undefined)。

ReturnsDescription
ProviderResult<DebugAdapterDescriptor>

一个 debug adapter descriptor 或未定义。

DebugAdapterExecutable

表示一个调试适配器可执行文件以及传递给它的可选参数和运行时选项。

构造函数

为基于可执行程序的调试适配器创建描述。

ParameterDescription
command: string

实现调试适配器的命令或可执行路径。

args?: string[]

传递给命令或可执行文件的可选参数。

options?: DebugAdapterExecutableOptions

启动命令或可执行文件时使用的可选选项。

ReturnsDescription
DebugAdapterExecutable

属性

传递给调试适配器可执行文件的参数。默认为空数组。

调试适配器可执行文件的命令或路径。 命令必须是可执行文件的绝对路径或通过PATH环境变量查找的命令名称。 特殊值'node'将映射到编辑器的内置Node.js运行时。

调试适配器启动时可选的选项。 默认为未定义。

调试适配器可执行选项

调试适配器可执行文件的选项。

属性

执行的调试适配器的当前工作目录。

执行的程序或shell的附加环境。如果省略,则使用父进程的环境。如果提供,则与父进程的环境合并。

DebugAdapterInlineImplementation

用于内联实现的调试适配器描述符。

构造函数

为调试适配器的内联实现创建一个描述符。

ParameterDescription
implementation: DebugAdapter
ReturnsDescription
DebugAdapterInlineImplementation

DebugAdapterNamedPipeServer

表示一个作为命名管道(在Windows上)/UNIX域套接字(在非Windows上)服务器运行的调试适配器。

构造函数

为作为命名管道(在Windows上)/UNIX域套接字(在非Windows上)服务器运行的调试适配器创建描述。

ParameterDescription
path: string
ReturnsDescription
DebugAdapterNamedPipeServer

属性

NamedPipe/UNIX域套接字的路径。

DebugAdapterServer

表示一个作为基于套接字的服务器运行的调试适配器。

构造函数

为作为基于套接字的服务器运行的调试适配器创建描述。

ParameterDescription
port: number
host?: string
ReturnsDescription
DebugAdapterServer

属性

主机。

端口。

DebugAdapterTracker

调试适配器跟踪器是一种用于跟踪编辑器与调试适配器之间通信的工具。

事件

调试适配器已向编辑器发送了一条调试适配器协议消息。

ParameterDescription
message: any
ReturnsDescription
void

调试适配器即将从编辑器接收调试适配器协议消息。

ParameterDescription
message: any
ReturnsDescription
void

调试适配器的会话即将开始。

ParameterDescription
ReturnsDescription
void

调试适配器会话即将停止。

ParameterDescription
ReturnsDescription
void

方法

调试适配器发生了一个错误。

ParameterDescription
error: Error
ReturnsDescription
void

调试适配器已退出,并返回了给定的退出代码或信号。

ParameterDescription
code: number
signal: string
ReturnsDescription
void

DebugAdapterTrackerFactory

一个调试适配器工厂,用于创建调试适配器跟踪器

方法

方法 'createDebugAdapterTracker' 在调试会话开始时被调用,以便返回一个“跟踪器”对象,该对象提供对编辑器与调试适配器之间通信的读取访问。

ParameterDescription
session: DebugSession

将使用调试适配器跟踪器的调试会话

ReturnsDescription
ProviderResult<DebugAdapterTracker>

一个调试适配器跟踪器或未定义。

调试配置

调试会话的配置。

属性

调试会话的名称。

调试会话的请求类型。

调试会话的类型。

DebugConfigurationProvider

调试配置提供程序允许向调试服务添加调试配置,并在用于启动调试会话之前解析启动配置。调试配置提供程序通过debug.registerDebugConfigurationProvider注册。

方法

向调试服务提供调试配置。如果为同一类型注册了多个调试配置提供程序,则调试配置将以任意顺序连接。

ParameterDescription
folder: WorkspaceFolder

使用配置的工作区文件夹,或者对于无文件夹设置则为undefined

token?: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<DebugConfiguration[]>

一个调试配置的数组。

通过填充缺失的值或添加/更改/删除属性来解析调试配置。 如果为同一类型注册了多个调试配置提供程序,则resolveDebugConfiguration调用将以任意顺序链接,并且初始调试配置将通过链传递。 返回'undefined'值会阻止调试会话启动。 返回'null'值会阻止调试会话启动,并打开底层的调试配置。

ParameterDescription
folder: WorkspaceFolder

配置来源的工作区文件夹,或者对于无文件夹设置则为undefined

debugConfiguration: DebugConfiguration

要解析的调试配置

token?: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<DebugConfiguration>

已解析的调试配置或未定义或为空。

此钩子在 'resolveDebugConfiguration' 之后直接调用,但所有变量都已替换。 它可用于通过填充缺失值或添加/更改/删除属性来解析或验证调试配置。 如果为同一类型注册了多个调试配置提供程序,则 'resolveDebugConfigurationWithSubstitutedVariables' 调用会以任意顺序链接, 并且初始调试配置会通过链传递。 返回 'undefined' 值会阻止调试会话启动。 返回 'null' 值会阻止调试会话启动,并打开基础调试配置。

ParameterDescription
folder: WorkspaceFolder

配置来源的工作区文件夹,或者对于无文件夹设置则为undefined

debugConfiguration: DebugConfiguration

要解析的调试配置

token?: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<DebugConfiguration>

已解析的调试配置或未定义或为空。

DebugConfigurationProviderTriggerKind

DebugConfigurationProviderTriggerKind 指定了 DebugConfigurationProviderprovideDebugConfigurations 方法何时被触发。 目前有两种情况:为新创建的 launch.json 提供初始调试配置,或者当用户通过 UI(例如通过“选择并开始调试”命令)请求时提供动态生成的调试配置。 在通过 debug.registerDebugConfigurationProvider 注册 DebugConfigurationProvider 时,会使用触发类型。

枚举成员

DebugConfigurationProvider.provideDebugConfigurations 被调用来为新创建的 launch.json 提供初始调试配置。

DebugConfigurationProvider.provideDebugConfigurations 被调用以提供动态生成的调试配置,当用户通过UI(例如通过“选择并开始调试”命令)请求时。

调试控制台

表示调试控制台。

方法

将给定值附加到调试控制台。

ParameterDescription
value: string

一个字符串,假值将不会被打印。

ReturnsDescription
void

将给定的值和换行符附加到调试控制台。

ParameterDescription
value: string

一个字符串,假值将被打印。

ReturnsDescription
void

调试控制台模式

调试会话使用的调试控制台模式,请参阅选项

枚举成员

调试会话应该有一个单独的调试控制台。

调试会话应与其父会话共享调试控制台。 对于没有父会话的会话,此值无效。

DebugProtocolBreakpoint

DebugProtocolBreakpoint 是 Debug Adapter Protocol 中定义的 Breakpoint 类型的不透明替代类型。

调试协议消息

DebugProtocolMessage 是 Debug Adapter Protocol 中定义的 ProtocolMessage 类型的不透明占位符类型。

DebugProtocolSource

DebugProtocolSource 是 Debug Adapter Protocol 中定义的 Source 类型的不透明替代类型。

调试会话

调试会话。

属性

此会话的“已解析”调试配置。 “已解析”意味着

  • 所有变量都已替换并且
  • 平台特定属性部分已针对匹配平台进行了“扁平化”处理,并针对非匹配平台进行了移除。

此调试会话的唯一ID。

调试会话的名称最初取自调试配置。 任何更改都会在用户界面中正确反映。

此调试会话的父会话,如果它是作为子会话创建的。

另请参阅 DebugSessionOptions.parentSession

调试会话的类型来自调试配置

此会话的工作区文件夹,或无文件夹设置时的undefined

方法

向调试适配器发送自定义请求。

ParameterDescription
command: string
args?: any
ReturnsDescription
Thenable<any>

将编辑器中的断点映射到由调试会话的调试适配器管理的相应调试适配器协议(DAP)断点。 如果不存在DAP断点(可能是因为编辑器断点尚未注册,或者因为调试适配器对该断点不感兴趣),则返回undefined值。

ParameterDescription
breakpoint: Breakpoint

编辑器中的断点

ReturnsDescription
Thenable<DebugProtocolBreakpoint>

一个承诺,解析为调试适配器协议断点或undefined

调试会话自定义事件

调试会话接收到的自定义调试适配器协议事件。

属性

事件特定信息。

事件类型。

接收自定义事件的调试会话

调试会话选项

启动调试会话的选项。

属性

控制调试会话的父会话是否在调用堆栈视图中显示,即使它只有一个子会话。 默认情况下,调试会话永远不会隐藏其父会话。 如果compact为true,则在调用堆栈视图中隐藏只有一个子会话的调试会话,以使树更加紧凑。

控制此会话是否应具有单独的调试控制台或与父会话共享它。对于没有父会话的会话没有影响。默认为Separate。

控制是否将诸如“重启”之类的生命周期请求发送到新创建的会话或其父会话。 默认情况下(如果该属性为false或缺失),生命周期请求将发送到新会话。 如果会话没有父会话,则忽略此属性。

控制此会话是否应在没有调试的情况下运行,从而忽略断点。 当未指定此属性时,将使用父会话的值(如果有的话)。

当指定时,新创建的调试会话将注册为此“父”调试会话的“子”会话。

当为true时,此会话的窗口状态栏颜色将不会更改。

当为true时,调试工具栏将不会在此会话中显示。

当为true时,调试视图将不会在此会话中自动显示。

当为true时,在启动调试会话时,不会为打开的编辑器触发保存操作,无论debug.saveBeforeStart设置的值如何。

向编辑器发出信号,表示调试会话是从测试运行请求开始的。这用于在UI操作中链接调试会话和测试运行的生命周期。

DebugStackFrame

表示调试会话中的堆栈帧。

属性

调试协议中堆栈帧的ID。

线程的调试会话。

调试协议中关联线程的ID。

调试线程

表示调试会话中的一个线程。

属性

线程的调试会话。

调试协议中关联线程的ID。

声明

符号表示声明为一个或多个位置位置链接

DeclarationCoverage

包含声明的覆盖信息。根据报告器和语言的不同,这可能是诸如函数、方法或命名空间等类型。

构造函数

ParameterDescription
name: string
executed: number | boolean

此声明被执行的次数,或者如果确切次数未知,则是一个布尔值,表示是否已执行。如果为零或假,则声明将被标记为未覆盖。

location: Range | Position

声明位置。

ReturnsDescription
DeclarationCoverage

属性

此声明被执行的次数,或者如果确切次数未知,则是一个布尔值,指示是否已执行。如果为零或假,则声明将被标记为未覆盖。

声明位置。

声明的名称。

DeclarationProvider

声明提供者接口定义了扩展与转到声明功能之间的契约。

方法

提供给定位置和文档中符号的声明。

ParameterDescription
document: TextDocument

调用命令的文档。

position: Position

命令被调用的位置。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<Declaration>

一个声明或一个可以解析为此的thenable。可以通过返回undefinednull来表示没有结果。

DecorationInstanceRenderOptions

表示装饰实例的渲染选项。参见DecorationOptions.renderOptions

属性

定义在装饰文本后插入的附件的渲染选项。

定义在装饰文本之前插入的附件的渲染选项。

覆盖深色主题的选项。

覆盖浅色主题的选项。

DecorationOptions

表示装饰集中特定装饰的选项。

属性

当悬停在装饰上时应显示的消息。

此装饰应用的范围。范围不能为空。

应用于当前装饰的渲染选项。出于性能考虑,请尽量减少装饰特定选项的数量,并尽可能使用装饰类型。

DecorationRangeBehavior

描述在装饰边缘键入/编辑时的行为。

枚举成员

当编辑发生在开始或结束时,装饰的范围将会扩大。

装饰的范围在开始或结束时发生编辑时不会扩大。

装饰的范围会在编辑发生在开始时扩大,但不会在结束时扩大。

装饰的范围会在编辑发生在末尾时扩大,但不会在开头时扩大。

DecorationRenderOptions

表示文本编辑器装饰的渲染样式。

属性

定义在装饰文本后插入的附件的渲染选项。

装饰的背景颜色。使用 rgba() 并定义透明背景颜色以与其他装饰良好配合。 或者可以从颜色注册表中引用颜色。

定义在装饰文本之前插入的附件的渲染选项。

将应用于由装饰包围的文本的CSS样式属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'border'来设置一个或多个单独的边框属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'border'来设置一个或多个单独的边框属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'border'来设置一个或多个单独的边框属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'border'来设置一个或多个单独的边框属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'border'来设置一个或多个单独的边框属性。

将应用于由装饰包围的文本的CSS样式属性。

将应用于由装饰包围的文本的CSS样式属性。

覆盖深色主题的选项。

将应用于由装饰包围的文本的CSS样式属性。

将应用于由装饰包围的文本的CSS样式属性。

一个绝对路径或一个URI,用于在边栏中渲染图像。

指定图标槽的大小。 可用值为 'auto'、'contain'、'cover' 和任何百分比值。 更多信息:https://msdn.microsoft.com/en-us/library/jj127316(v=vs.85).aspx

是否应在行文本后的空白处也渲染装饰。默认为 false

将应用于由装饰包围的文本的CSS样式属性。

覆盖浅色主题的选项。

将应用于由装饰包围的文本的CSS样式属性。

将应用于由装饰包围的文本的CSS样式属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'outline'来设置一个或多个单独的轮廓属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'outline'来设置一个或多个单独的轮廓属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'outline'来设置一个或多个单独的轮廓属性。

概览标尺中装饰的颜色。使用rgba()并定义透明颜色以与其他装饰良好配合。

概览标尺中应呈现装饰的位置。

自定义装饰范围边缘发生编辑时的增长行为。 默认为 DecorationRangeBehavior.OpenOpen

将应用于由装饰包围的文本的CSS样式属性。

定义

符号的定义表示为一个或多个位置。对于大多数编程语言来说,符号的定义只有一个位置。

关于符号定义位置的信息。

提供超出普通位置定义的额外元数据,包括定义符号的范围

DefinitionProvider

定义提供者接口定义了扩展与转到定义和查看定义功能之间的契约。

方法

提供给定位置和文档中符号的定义。

ParameterDescription
document: TextDocument

调用命令的文档。

position: Position

命令被调用的位置。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<Definition | LocationLink[]>

一个定义或一个解析为此的可thenable对象。可以通过返回undefinednull来表示没有结果。

诊断

表示一个诊断信息,例如编译器错误或警告。诊断对象仅在文件范围内有效。

构造函数

创建一个新的诊断对象。

ParameterDescription
range: Range

此诊断适用的范围。

message: string

人类可读的消息。

severity?: DiagnosticSeverity

严重程度,默认为 error

ReturnsDescription
Diagnostic

属性

此诊断的代码或标识符。 应用于后续处理,例如在提供代码操作时。

人类可读的消息。

此诊断适用的范围。

一组相关的诊断信息数组,例如,当作用域内的符号名称冲突时,所有定义都可以通过此属性进行标记。

严重程度,默认为 error

描述此诊断来源的人类可读字符串,例如 'typescript' 或 'super lint'。

关于诊断的附加元数据。

诊断变更事件

当诊断发生变化时触发的事件。

属性

诊断已更改的资源数组。

诊断集合

诊断集合是一个管理一组诊断的容器。诊断总是限定在诊断集合和资源的范围内。

要获取DiagnosticCollection的实例,请使用 createDiagnosticCollection

属性

此诊断集合的名称,例如 typescript。此集合中的每个诊断都将与此名称相关联。此外,任务框架在定义 问题匹配器 时使用此名称。

方法

从此集合中移除所有诊断信息。与调用#set(undefined)相同;

ParameterDescription
ReturnsDescription
void

从此集合中移除所有属于提供的uri的诊断信息。与#set(uri, undefined)相同。

ParameterDescription
uri: Uri

资源标识符。

ReturnsDescription
void

释放并清理相关资源。调用 clear

ParameterDescription
ReturnsDescription
void

遍历此集合中的每个条目。

ParameterDescription
callback: (uri: Uri, diagnostics: readonly Diagnostic[], collection: DiagnosticCollection) => any

为每个条目执行的函数。

thisArg?: any

调用处理程序函数时使用的this上下文。

ReturnsDescription
void

获取给定资源的诊断信息。注意,您不能修改从此调用返回的诊断数组。

ParameterDescription
uri: Uri

资源标识符。

ReturnsDescription
readonly Diagnostic[]

一个不可变的诊断数组或undefined

检查此集合是否包含给定资源的诊断信息。

ParameterDescription
uri: Uri

资源标识符。

ReturnsDescription
boolean

true 如果此集合包含给定资源的诊断信息。

为给定资源分配诊断。将替换该资源的现有诊断。

ParameterDescription
uri: Uri

资源标识符。

diagnostics: readonly Diagnostic[]

诊断数组或 undefined

ReturnsDescription
void

替换此集合中多个资源的诊断信息。

注意,相同uri的多个元组将被合并,例如 [[file1, [d1]], [file1, [d2]]] 等同于 [[file1, [d1, d2]]]。 如果诊断项为 undefined,如 [file1, undefined], 则所有之前的诊断将被移除,但后续的诊断不会受到影响。

ParameterDescription
entries: ReadonlyArray<[Uri, readonly Diagnostic[]]>

一个元组数组,例如 [[file1, [d1, d2]], [file2, [d3, d4, d5]]],或者 undefined

ReturnsDescription
void

诊断相关信息

表示诊断的相关消息和源代码位置。这应该用于指向导致或与诊断相关的代码位置,例如在作用域中复制符号时。

构造函数

创建一个新的相关诊断信息对象。

ParameterDescription
location: Location

位置。

message: string

消息。

ReturnsDescription
DiagnosticRelatedInformation

属性

此相关诊断信息的位置。

此相关诊断信息的消息。

诊断严重性

表示诊断的严重程度。

枚举成员

某些不被语言规则或其他方式允许的内容。

有些可疑但被允许的事情。

有些事情需要通知,但不是问题。

提示更好的方法,比如建议进行重构。

诊断标签

关于诊断类型的附加元数据。

枚举成员

未使用或不必要的代码。

带有此标签的诊断信息会以淡出效果显示。淡出的程度由"editorUnnecessaryCode.opacity"主题颜色控制。例如,"editorUnnecessaryCode.opacity": "#000000c0"将使代码以75%的不透明度显示。对于高对比度主题,使用"editorUnnecessaryCode.border"主题颜色来为不必要的代码添加下划线,而不是淡出效果。

已弃用或过时的代码。

带有此标签的诊断信息将以删除线形式呈现。

一次性

表示一种可以释放资源的类型,例如事件监听或计时器。

静态

将多个可销毁对象合并为一个。当你有带有销毁函数的对象,而这些对象不是Disposable的实例时,可以使用此方法。

ParameterDescription
...disposableLikes: Array<{dispose: () => any}>

具有至少一个dispose函数成员的对象。请注意,异步的dispose函数不会被等待。

ReturnsDescription
Disposable

返回一个新的可处置对象,该对象在处置时将处置所有提供的可处置对象。

构造函数

创建一个新的可销毁对象,该对象在销毁时调用提供的函数。

注意,异步函数没有被等待。

ParameterDescription
callOnDispose: () => any

处理某物的函数。

ReturnsDescription
Disposable

方法

释放此对象。

ParameterDescription
ReturnsDescription
any

DocumentColorProvider

文档颜色提供者定义了扩展与编辑器中选取和修改颜色功能之间的契约。

方法

提供颜色的表示

ParameterDescription
color: Color

显示和插入的颜色。

context: {document: TextDocument, range: Range}

一个包含附加信息的上下文对象

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<ColorPresentation[]>

一组颜色表示或一个解析为此的可thenable对象。可以通过返回undefinednull或空数组来表示没有结果。

为给定的文档提供颜色。

ParameterDescription
document: TextDocument

调用命令的文档。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<ColorInformation[]>

一个颜色信息的数组或一个解析为此的可thenable对象。可以通过返回undefinednull或空数组来表示没有结果。

DocumentDropEdit

应用于拖放的编辑操作。

构造函数

ParameterDescription
insertText: string | SnippetString

要在放置位置插入的文本或代码片段。

ReturnsDescription
DocumentDropEdit

属性

在拖放时应用的可选额外编辑。

要在放置位置插入的文本或代码片段。

DocumentDropEditProvider

处理将资源拖放到文本编辑器中的提供程序。

这允许用户将资源(包括来自外部应用程序的资源)拖放到编辑器中。在拖放文件时,用户可以按住shift键将文件放入编辑器而不是打开它。需要editor.dropIntoEditor.enabled开启。

方法

提供编辑功能,将拖放的内容插入到文档中。

ParameterDescription
document: TextDocument

发生拖放操作的文档。

position: Position

文档中发生拖放的位置。

dataTransfer: DataTransfer

一个DataTransfer对象,用于保存关于正在拖放的数据。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<DocumentDropEdit>

一个DocumentDropEdit或一个解析为此的可thenable对象。可以通过返回undefinednull来表示没有结果。

DocumentFilter

文档过滤器通过不同的属性来表示一个文档,例如 语言、其资源的方案, 或应用于路径的全局模式。

示例 一个适用于磁盘上TypeScript文件的语言过滤器

{ language: 'typescript', scheme: 'file' }

示例 一个适用于所有package.json路径的语言过滤器

{ language: 'json', pattern: '**/package.json' }

属性

一个语言标识符,比如 typescript

类型 的笔记本,如 jupyter-notebook。这允许 缩小到 单元格文档 所属的笔记本类型。

注意,设置notebookType属性会改变schemepattern的解释方式。当设置时,它们是根据notebook uri而不是文档uri进行评估的。

示例 匹配尚未存储的Jupyter笔记本中的Python文档(untitled

{ language: 'python', notebookType: 'jupyter-notebook', scheme: 'untitled' }

一个glob模式,用于匹配文档的绝对路径。使用相对模式来过滤文档到一个工作区文件夹

一个Uri scheme,比如 fileuntitled

DocumentFormattingEditProvider

文档格式化提供者接口定义了扩展与格式化功能之间的契约。

方法

为整个文档提供格式化编辑。

ParameterDescription
document: TextDocument

调用命令的文档。

options: FormattingOptions

控制格式化的选项。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<TextEdit[]>

一组文本编辑或一个解析为此的可thenable对象。可以通过返回undefinednull或空数组来表示没有结果。

DocumentHighlight

文档高亮是文本文档中值得特别关注的一个范围。通常,文档高亮通过改变其范围的背景颜色来可视化。

构造函数

创建一个新的文档高亮对象。

ParameterDescription
range: Range

高亮显示适用的范围。

kind?: DocumentHighlightKind

高亮类型,默认为 text

ReturnsDescription
DocumentHighlight

属性

高亮类型,默认为 text

此高亮显示适用的范围。

DocumentHighlightKind

文档高亮类型。

枚举成员

一个文本出现。

读取符号的访问权限,例如读取变量。

对符号的写访问,例如写入变量。

DocumentHighlightProvider

文档高亮提供者接口定义了扩展与单词高亮功能之间的契约。

方法

提供一组文档高亮显示,例如变量的所有出现位置或函数的所有退出点。

ParameterDescription
document: TextDocument

调用命令的文档。

position: Position

命令被调用的位置。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<DocumentHighlight[]>

一个文档高亮数组或一个解析为此的可thenable对象。可以通过返回undefinednull或空数组来表示没有结果。

文档链接是文本文档中链接到内部或外部资源(如另一个文本文档或网站)的范围。

构造函数

创建一个新的文档链接。

ParameterDescription
range: Range

文档链接适用的范围。不能为空。

target?: Uri

文档链接指向的URI。

ReturnsDescription
DocumentLink

属性

此链接适用的范围。

此链接指向的URI。

当您悬停在此链接上时显示的提示文本。

如果提供了工具提示,它将以包含如何触发链接的说明的字符串显示,例如{0} (ctrl + click)。具体说明因操作系统、用户设置和本地化而异。

DocumentLinkProvider

文档链接提供者定义了扩展与在编辑器中显示链接功能之间的契约。

方法

为给定文档提供链接。请注意,编辑器附带了一个默认提供程序,可以检测到 http(s)file 链接。

ParameterDescription
document: TextDocument

调用命令的文档。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<T[]>

一个文档链接数组或一个解析为此的可thenable对象。可以通过返回undefinednull或空数组来表示没有结果。

给定一个链接,填写其目标。当在用户界面中选择不完整的链接时,会调用此方法。提供者可以实现此方法,并从provideDocumentLinks方法返回不完整的链接(没有目标),这通常有助于提高性能。

ParameterDescription
link: T

要解析的链接。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<T>

DocumentRangeFormattingEditProvider

文档格式化提供者接口定义了扩展与格式化功能之间的契约。

方法

为文档中的某个范围提供格式化编辑。

给定的范围是一个提示,提供者可以决定格式化一个更小或更大的范围。通常这是通过将范围的开始和结束调整为完整的语法节点来实现的。

ParameterDescription
document: TextDocument

调用命令的文档。

range: Range

应该格式化的范围。

options: FormattingOptions

控制格式化的选项。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<TextEdit[]>

一组文本编辑或一个解析为此的可thenable对象。可以通过返回undefinednull或空数组来表示没有结果。

为文档中的多个范围提供格式化编辑。

此函数是可选的,但允许格式化程序在仅格式化修改的范围或格式化大量选择时执行得更快。

给定的范围是提示,提供者可以决定格式化较小或较大的范围。通常这是通过将范围的开始和结束调整为完整的语法节点来完成的。

ParameterDescription
document: TextDocument

调用命令的文档。

ranges: Range[]

应该格式化的范围。

options: FormattingOptions

控制格式化的选项。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<TextEdit[]>

一组文本编辑或一个解析为此的可thenable对象。可以通过返回undefinednull或空数组来表示没有结果。

DocumentRangeSemanticTokensProvider

文档范围语义标记提供者接口定义了扩展和语义标记之间的契约。

方法

ParameterDescription
document: TextDocument
range: Range
token: CancellationToken
ReturnsDescription
ProviderResult<SemanticTokens>

DocumentSelector

语言选择器是一个或多个语言标识符和语言过滤器的组合。

注意,仅包含语言标识符的文档选择器会选择所有文档,甚至包括那些未保存在磁盘上的文档。只有在功能不需要进一步上下文(例如,不需要解析相关“文件”)时,才使用此类选择器。

示例

let sel: DocumentSelector = { scheme: 'file', language: 'typescript' };

DocumentSemanticTokensProvider

文档语义标记提供者接口定义了扩展和语义标记之间的契约。

事件

一个可选的事件,用于表示此提供者的语义标记已更改。

方法

文件中的令牌被表示为一个整数数组。每个令牌的位置是相对于它前面的令牌表示的,因为当在文件中进行编辑时,大多数令牌相对于彼此保持稳定。


简而言之,每个标记用5个整数表示,因此文件中的特定标记i由以下数组索引组成:

  • 在索引 5*i 处 - deltaLine: 标记行号,相对于前一个标记
  • 在索引 5*i+1 - deltaStart 处:标记的起始字符,相对于前一个标记(如果它们在同一行上,则相对于0或前一个标记的起始位置)
  • 在索引 5*i+2 - length: 令牌的长度。令牌不能跨越多行。
  • 在索引 5*i+3 - tokenType:将在 SemanticTokensLegend.tokenTypes 中查找。我们目前要求 tokenType < 65536。
  • 在索引 5*i+4 - tokenModifiers:每个设置的位将在 SemanticTokensLegend.tokenModifiers 中查找

如何编码令牌

这是一个将文件编码为包含3个标记的uint32数组的示例:

   { line: 2, startChar:  5, length: 3, tokenType: "property",  tokenModifiers: ["private", "static"] },
   { line: 2, startChar: 10, length: 4, tokenType: "type",      tokenModifiers: [] },
   { line: 5, startChar:  2, length: 7, tokenType: "class",     tokenModifiers: [] }
  1. 首先,必须设计一个图例。这个图例必须提前提供,并捕获所有可能的令牌类型。 对于这个例子,我们将选择以下图例,该图例必须在注册提供者时传入:
   tokenTypes: ['property', 'type', 'class'],
   tokenModifiers: ['private', 'static']
  1. 第一个转换步骤是使用图例将tokenTypetokenModifiers编码为整数。令牌类型通过索引查找,因此tokenType值为1意味着tokenTypes[1]。可以通过使用位标志来设置多个令牌修饰符,因此tokenModifier值为3首先被视为二进制0b00000011,这意味着[tokenModifiers[0], tokenModifiers[1]],因为位0和1被设置。使用这个图例,令牌现在为:
   { line: 2, startChar:  5, length: 3, tokenType: 0, tokenModifiers: 3 },
   { line: 2, startChar: 10, length: 4, tokenType: 1, tokenModifiers: 0 },
   { line: 5, startChar:  2, length: 7, tokenType: 2, tokenModifiers: 0 }
  1. 下一步是表示文件中每个标记相对于前一个标记的位置。在这种情况下,第二个标记与第一个标记在同一行,因此第二个标记的startChar相对于第一个标记的startChar进行调整,所以它将是10 - 5。第三个标记与第二个标记不在同一行,因此第三个标记的startChar将不会被改变:
   { deltaLine: 2, deltaStartChar: 5, length: 3, tokenType: 0, tokenModifiers: 3 },
   { deltaLine: 0, deltaStartChar: 5, length: 4, tokenType: 1, tokenModifiers: 0 },
   { deltaLine: 3, deltaStartChar: 2, length: 7, tokenType: 2, tokenModifiers: 0 }
  1. 最后一步是将每个标记的5个字段内联到一个数组中,这是一种内存友好的表示方式:
   // 1st token,  2nd token,  3rd token
   [  2,5,3,0,3,  0,5,4,1,0,  3,2,7,2,0 ]

另请参阅 SemanticTokensBuilder 用于帮助将标记编码为整数。 注意:在进行编辑时,可能会发生多次编辑,直到编辑器决定调用语义标记提供程序。 注意:如果提供程序暂时无法计算语义标记,可以通过抛出带有消息“Busy”的错误来指示这一点。

ParameterDescription
document: TextDocument
token: CancellationToken
ReturnsDescription
ProviderResult<SemanticTokens>

与总是返回文件中的所有标记不同,DocumentSemanticTokensProvider可以实现此方法(provideDocumentSemanticTokensEdits),然后返回对先前提供的语义标记的增量更新。


文档更改时令牌如何变化

假设 provideDocumentSemanticTokens 之前返回了以下语义标记:

   // 1st token,  2nd token,  3rd token
   [  2,5,3,0,3,  0,5,4,1,0,  3,2,7,2,0 ]

还假设经过一些编辑后,文件中的新语义标记为:

   // 1st token,  2nd token,  3rd token
   [  3,5,3,0,3,  0,5,4,1,0,  3,2,7,2,0 ]

可以用应用于先前令牌的编辑来表达这些新令牌:

   [  2,5,3,0,3,  0,5,4,1,0,  3,2,7,2,0 ] // old tokens
   [  3,5,3,0,3,  0,5,4,1,0,  3,2,7,2,0 ] // new tokens

   edit: { start:  0, deleteCount: 1, data: [3] } // replace integer at offset 0 with 3

注意: 如果提供者无法计算SemanticTokensEdits,它可以“放弃”并再次返回文档中的所有标记。 注意: SemanticTokensEdits中的所有编辑都包含旧整数数组中的索引,因此它们都引用之前的结果状态。

ParameterDescription
document: TextDocument
previousResultId: string
token: CancellationToken
ReturnsDescription
ProviderResult<SemanticTokens | SemanticTokensEdits>

DocumentSymbol

表示文档中出现的编程结构,如变量、类、接口等。文档符号可以是分层的,它们有两个范围:一个范围包含其定义,另一个范围指向其最有趣的范围,例如标识符的范围。

构造函数

创建一个新的文档符号。

ParameterDescription
name: string

符号的名称。

detail: string

符号的详细信息。

kind: SymbolKind

符号的类型。

range: Range

符号的完整范围。

selectionRange: Range

应该显示的范围。

ReturnsDescription
DocumentSymbol

属性

此符号的子项,例如类的属性。

有关此符号的更多详细信息,例如函数的签名。

这个符号的类型。

这个符号的名称。

此符号的范围不包括前导/尾随空格,但包括其他所有内容,例如注释和代码。

当选择此符号时应选择并显示的范围,例如函数的名称。 必须包含在range中。

此符号的标签。

DocumentSymbolProvider

文档符号提供者接口定义了扩展与转到符号功能之间的契约。

方法

为给定文档提供符号信息。

ParameterDescription
document: TextDocument

调用命令的文档。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<DocumentSymbol[] | SymbolInformation[]>

一个文档高亮数组或一个解析为此的可thenable对象。可以通过返回undefinednull或空数组来表示没有结果。

DocumentSymbolProviderMetadata

关于文档符号提供者的元数据。

属性

当多个大纲树显示在一个文档中时显示的人类可读字符串。

EndOfLine

表示文档中的行尾字符序列。

枚举成员

换行符 \n

回车换行 \r\n 序列。

EnterAction

描述按下回车键时的操作。

属性

描述在新行和缩进后要附加的文本。

描述如何处理缩进。

描述要从新行的缩进中移除的字符数。

环境变量集合

扩展可以应用于进程环境的一组突变。

属性

环境变量集合的描述,这将用于描述UI中的更改。

是否应为工作区缓存集合并将其应用于终端,以便在窗口重新加载时使用。当为true时,集合将立即生效,例如当窗口重新加载时。此外,如果存在缓存版本,此API将返回缓存版本。当扩展被卸载或集合被清除时,集合将失效。默认为true。

方法

将一个值附加到环境变量中。

请注意,扩展只能对任何一个变量进行一次更改,因此这将覆盖之前对替换、追加或前置的任何调用。

ParameterDescription
variable: string

要附加到的变量。

value: string

要附加到变量的值。

options?: EnvironmentVariableMutatorOptions

应用于变异器的选项,当未提供选项时,将默认为 { applyAtProcessCreation: true }

ReturnsDescription
void

清除此集合中的所有变异器。

ParameterDescription
ReturnsDescription
void

删除此集合的变量修改器。

ParameterDescription
variable: string

用于删除变异器的变量。

ReturnsDescription
void

遍历此集合中的每个变异器。

ParameterDescription
callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any

为每个条目执行的函数。

thisArg?: any

调用处理程序函数时使用的this上下文。

ReturnsDescription
void

获取此集合应用于变量的修改器(如果有的话)。

ParameterDescription
variable: string

获取变异器的变量。

ReturnsDescription
EnvironmentVariableMutator

在环境变量前添加一个值。

请注意,扩展只能对任何一个变量进行一次更改,因此这将覆盖之前对替换、追加或前置的任何调用。

ParameterDescription
variable: string

要前置的变量。

value: string

要添加到变量前面的值。

options?: EnvironmentVariableMutatorOptions

应用于变异器的选项,当未提供选项时,将默认为 { applyAtProcessCreation: true }

ReturnsDescription
void

用值替换环境变量。

请注意,扩展只能对任何一个变量进行一次更改,因此这将覆盖之前对替换、追加或前置的任何调用。

ParameterDescription
variable: string

要替换的变量。

value: string

用于替换变量的值。

options?: EnvironmentVariableMutatorOptions

应用于变异器的选项,当未提供选项时,将默认为 { applyAtProcessCreation: true }

ReturnsDescription
void

环境变量修改器

一种突变类型及其应用于环境变量的值。

属性

应用于变异器的选项。

变量将发生的突变类型。

用于变量的值。

环境变量修改器选项

应用于变异器的选项。

属性

在创建进程之前应用于环境。默认为 false。

在shell集成脚本中应用到环境。请注意,如果shell集成被禁用或由于某种原因无法工作,这不会应用变异器。默认为false。

环境变量修改器类型

一种可以应用于环境变量的突变类型。

枚举成员

替换变量的现有值。

追加到变量现有值的末尾。

在变量现有值的开头添加内容。

环境变量范围

环境变量集合适用的范围对象。

属性

获取集合的任何特定工作区文件夹。

可评估表达式

可评估表达式表示文档中可由活动调试器或运行时评估的表达式。 此评估的结果显示在类似工具提示的小部件中。 如果仅指定了范围,则将从基础文档中提取表达式。 可以使用可选的表达式来覆盖提取的表达式。 在这种情况下,范围仍用于突出显示文档中的范围。

构造函数

创建一个新的可评估表达式对象。

ParameterDescription
range: Range

从基础文档中提取可评估表达式的范围。

expression?: string

如果指定,则覆盖提取的表达式。

ReturnsDescription
EvaluatableExpression

属性

EvaluatableExpressionProvider

可评估表达式提供者接口定义了扩展与调试悬停之间的契约。在此契约中,提供者为文档中的给定位置返回一个可评估表达式,编辑器在活动的调试会话中评估此表达式,并在调试悬停中显示结果。

方法

为给定的文档和位置提供一个可评估的表达式。 编辑器将在活动的调试会话中评估此表达式,并在调试悬停中显示结果。 表达式可以通过底层文档中的范围隐式指定,也可以通过显式返回表达式来指定。

ParameterDescription
document: TextDocument

即将显示调试悬停的文档。

position: Position

文档中调试悬停即将出现的行和字符位置。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<EvaluatableExpression>

一个可评估的表达式或一个解析为此的thenable。可以通过返回undefinednull来表示没有结果。

事件

表示一个类型化的事件。

一个表示事件的函数,您可以通过将监听函数作为参数调用来订阅该事件。

示例

item.onDidChange(function(event) {
  console.log('Event happened: ' + event);
});

一个表示事件的函数,您可以通过使用监听函数作为参数调用它来订阅该事件。

ParameterDescription
listener: (e: T) => any

当事件发生时,监听器函数将被调用。

thisArgs?: any

调用事件监听器时将使用的this参数。

disposables?: Disposable[]

一个数组,Disposable 将被添加到其中。

ReturnsDescription
Disposable

一个用于取消订阅事件监听器的可丢弃对象。

EventEmitter

事件发射器可用于创建和管理一个事件,供其他人订阅。一个发射器总是拥有一个事件。

如果您想从扩展内部提供事件,例如在TextDocumentContentProvider内部或向其他扩展提供API时,请使用此类。

构造函数

ParameterDescription
ReturnsDescription
EventEmitter<T>

属性

事件监听器可以订阅。

方法

释放此对象并释放资源。

ParameterDescription
ReturnsDescription
void

通知所有订阅者关于事件。一个或多个监听器的失败不会导致此函数调用失败。

ParameterDescription
data: T

事件对象。

ReturnsDescription
void

扩展

表示一个扩展。

要获取Extension的实例,请使用getExtension

属性

此扩展导出的公共API(activate的返回值)。 在此扩展激活之前访问此字段是无效的操作。

扩展类型描述了扩展是在UI运行的地方运行,还是在远程扩展主机运行的地方运行。扩展类型在扩展的package.json文件中定义,但也可以通过remote.extensionKind设置进行细化。当不存在远程扩展主机时,值为ExtensionKind.UI

包含此扩展的目录的绝对文件路径。是Extension.extensionUri.fsPath的简写形式(与uri方案无关)。

包含扩展的目录的URI。

规范扩展标识符的形式为:publisher.name

true 如果扩展已被激活。

扩展的 package.json 解析内容。

方法

激活此扩展并返回其公共API。

ParameterDescription
ReturnsDescription
Thenable<T>

当此扩展被激活时将解决的承诺。

ExtensionContext

扩展上下文是一个扩展私有的实用工具集合。

一个ExtensionContext的实例作为扩展的activate调用的第一个参数提供。

属性

获取此工作区的扩展全局环境变量集合,使更改能够应用于终端环境变量。

当前的 Extension 实例。

扩展运行的模式。请参阅ExtensionMode了解可能的值和场景。

包含扩展的目录的绝对文件路径。是ExtensionContext.extensionUri.fsPath的简写表示(与uri方案无关)。

包含扩展的目录的URI。

一个存储状态的纪念品对象,该状态独立于当前打开的工作区

扩展可以存储全局状态的绝对文件路径。 该目录可能不存在于磁盘上,创建由扩展决定。 但是,保证父目录存在。

使用 globalState 来存储键值数据。

扩展可以存储全局状态的目录的URI。 该目录可能不存在于磁盘上,创建由扩展决定。但是,保证父目录存在。

使用 globalState 来存储键值数据。

另请参阅 workspace.fs 了解如何从URI读取和写入文件和文件夹。

一个对象,用于保存有关此扩展如何使用语言模型的信息。

另请参阅 LanguageModelChat.sendRequest

一个目录的绝对文件路径,扩展程序可以在其中创建日志文件。 该目录可能不存在于磁盘上,创建由扩展程序决定。然而, 父目录保证是存在的。

  • 已弃用 - 请改用 logUri

扩展可以创建日志文件的目录的uri。 该目录可能不存在于磁盘上,创建由扩展决定。然而, 父目录保证是存在的。

另请参阅 workspace.fs 了解如何从URI读取和写入文件和文件夹。

一个秘密存储对象,用于存储与当前打开的工作区无关的状态。

工作区特定目录的绝对文件路径,扩展程序可以在其中存储私有状态。该目录可能不存在于磁盘上,创建由扩展程序决定。但是,保证父目录存在。

使用 workspaceStateglobalState 来存储键值数据。

扩展可以存储私有状态的工作区特定目录的URI。该目录可能不存在,创建由扩展决定。但是,保证父目录存在。当没有打开工作区或文件夹时,值为undefined

使用 workspaceStateglobalState 来存储键值数据。

另请参阅 workspace.fs 了解如何从URI读取和写入文件和文件夹。

一个可以添加可处置项的数组。当此扩展被停用时,这些可处置项将被处置。

注意,异步的 dispose 函数不会被等待。

一个备忘录对象,用于在当前打开的工作区上下文中存储状态。

方法

获取扩展中包含的资源的绝对路径。

注意,可以通过 Uri.joinPathextensionUri 构造一个绝对 URI,例如 vscode.Uri.joinPath(context.extensionUri, relativePath);

ParameterDescription
relativePath: string

扩展中包含的资源的相对路径。

ReturnsDescription
string

资源的绝对路径。

ExtensionKind

在远程窗口中,扩展类型描述了扩展是在UI(窗口)运行的地方运行,还是远程运行。

枚举成员

扩展在用户界面运行的地方运行。

扩展在远程扩展主机运行的地方运行。

扩展模式

ExtensionMode 在 ExtensionContext 上提供,并指示特定扩展正在运行的模式。

枚举成员

扩展程序在编辑器中正常安装(例如,从市场或VSIX安装)。

扩展程序是从启动编辑器时提供的--extensionDevelopmentPath运行的。

扩展正在从--extensionTestsPath运行,并且扩展主机正在运行单元测试。

扩展终端选项

描述虚拟进程终端应使用哪些选项的值对象。

属性

终端的图标 ThemeColor。 建议使用标准的 terminal.ansi* 主题键,以获得最佳对比度和跨主题的一致性。

终端的图标路径或ThemeIcon

在重新启动和重新加载时选择退出默认的终端持久化。 这仅在启用terminal.integrated.enablePersistentSessions时生效。

一个人类可读的字符串,将用于在用户界面中表示终端。

一个伪终端的实现,允许扩展控制终端。

文件更改事件

事件文件系统提供者必须用来发出文件更改信号。

属性

变更的类型。

已更改文件的URI。

文件更改类型

文件更改类型的枚举。

枚举成员

文件的内容或元数据已更改。

文件已创建。

一个文件已被删除。

文件覆盖率

包含文件的覆盖元数据。

静态

创建一个FileCoverage实例,并从覆盖详情中填充计数。

ParameterDescription
uri: Uri

覆盖的文件URI

details: readonly FileCoverageDetail[]
ReturnsDescription
FileCoverage

构造函数

ParameterDescription
uri: Uri

覆盖的文件URI

statementCoverage: TestCoverageCount

语句覆盖率信息。如果报告器不提供语句覆盖率信息,这可以用来表示行覆盖率。

branchCoverage?: TestCoverageCount

分支覆盖信息

declarationCoverage?: TestCoverageCount

声明覆盖率信息

includesTests?: TestItem[]

此覆盖率报告中包含的测试用例,请参见includesTests

ReturnsDescription
FileCoverage

属性

分支覆盖信息。

声明覆盖率信息。根据报告器和语言的不同,这些类型可能包括函数、方法或命名空间等。

生成本文件覆盖率的测试用例列表。如果设置了,那么还应定义TestRunProfile.loadDetailedCoverageForTest以检索详细的覆盖率信息。

语句覆盖率信息。如果报告器不提供语句覆盖率信息,这可以用来表示行覆盖率。

文件URI。

文件覆盖详情

TestRunProfile.loadDetailedCoverage返回的覆盖率详情。

FileCreateEvent

在文件创建后触发的事件。

属性

创建的文件。

文件装饰

文件装饰表示可以与文件一起呈现的元数据。

构造函数

创建一个新的装饰。

ParameterDescription
badge?: string

表示装饰的字母。

tooltip?: string

装饰的工具提示。

color?: ThemeColor

装饰的颜色。

ReturnsDescription
FileDecoration

属性

表示此装饰的非常短的字符串。

此装饰的颜色。

一个标志,表示此装饰应传播到其父级。

此装饰的人类可读工具提示。

文件装饰提供者

装饰提供者接口定义了扩展和文件装饰之间的契约。

事件

一个可选事件,用于表示一个或多个文件的装饰已更改。

注意,此事件应用于传播有关子元素的信息。

另请参阅 EventEmitter

方法

为给定的uri提供装饰。

注意,此函数仅在文件在用户界面中渲染时调用。 这意味着从子级向上传播的装饰必须通过onDidChangeFileDecorations事件通知编辑器。

ParameterDescription
uri: Uri

要为其提供装饰的文件的URI。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<FileDecoration>

一个装饰器或一个解析为此类的thenable。

文件删除事件

文件删除后触发的事件。

属性

被删除的文件。

文件权限

文件的权限。

枚举成员

文件是只读的。

注意:所有来自注册了isReadonly: true选项的FileSystemProviderFileStat将被隐式处理,就像设置了FilePermission.Readonly一样。因此,不可能注册一个只读文件系统提供者,其中一些FileStat不是只读的。

文件重命名事件

文件重命名后触发的事件。

属性

被重命名的文件。

文件状态

FileStat类型表示文件的元数据

属性

创建时间戳,以自1970年1月1日00:00:00 UTC以来的毫秒数表示。

自1970年1月1日00:00:00 UTC以来的修改时间戳,以毫秒为单位。

注意: 如果文件已更改,重要的是提供一个更新的 mtime,该值应比之前的值更晚。否则,可能会有一些优化措施导致更新后的文件内容不会在编辑器中显示。

文件的权限,例如文件是否为只读。

注意: 这个值可能是一个位掩码,例如 FilePermission.Readonly | FilePermission.Other

大小(以字节为单位)。

注意: 如果文件已更改,提供更新的 size 非常重要。否则,可能会有优化措施导致在编辑器中无法显示更新后的文件内容。

文件的类型,例如是常规文件、目录或指向文件的符号链接。

注意: 这个值可能是一个位掩码,例如 FileType.File | FileType.SymbolicLink

文件系统

文件系统接口暴露了编辑器的内置和贡献的 文件系统提供者。它允许扩展与本地磁盘上的文件以及远程位置的文件(如远程扩展主机或ftp服务器)一起工作。

注意,此接口的实例可作为 workspace.fs 使用。

方法

复制文件或文件夹。

ParameterDescription
source: Uri

现有文件。

target: Uri

目的地位置。

options?: {overwrite: boolean}

定义是否应覆盖现有文件。

ReturnsDescription
Thenable<void>

创建一个新目录(注意,新文件是通过write调用创建的)。

注意,缺失的目录会自动创建,例如这个调用具有 mkdirp 语义。

ParameterDescription
uri: Uri

新文件夹的URI。

ReturnsDescription
Thenable<void>

删除一个文件。

ParameterDescription
uri: Uri

要删除的资源。

options?: {recursive: boolean, useTrash: boolean}

定义是否应使用垃圾桶以及文件夹的删除是否为递归

ReturnsDescription
Thenable<void>

检查给定的文件系统是否支持写入文件。

请记住,即使文件系统支持写入,这并不意味着写入操作总是会成功。可能存在权限问题或其他错误,导致无法写入文件。

ParameterDescription
scheme: string

文件系统的方案,例如 filegit

ReturnsDescription
boolean

true 如果文件系统支持写入,false 如果不支持写入(即它是只读的),并且 undefined 如果编辑器不知道文件系统。

, FileType]>>

检索目录的所有条目。

ParameterDescription
uri: Uri

文件夹的URI。

ReturnsDescription
Thenable<Array<[string, FileType]>>

一个名称/类型元组的数组或一个解析为此类的可thenable对象。

读取文件的全部内容。

ParameterDescription
uri: Uri

文件的URI。

ReturnsDescription
Thenable<Uint8Array>

一个字节数组或一个解析为此类的可thenable对象。

重命名文件或文件夹。

ParameterDescription
source: Uri

现有文件。

target: Uri

新位置。

options?: {overwrite: boolean}

定义是否应覆盖现有文件。

ReturnsDescription
Thenable<void>

检索文件的元数据。

ParameterDescription
uri: Uri

要检索元数据的文件的URI。

ReturnsDescription
Thenable<FileStat>

文件的元数据。

将数据写入文件,替换其全部内容。

ParameterDescription
uri: Uri

文件的URI。

content: Uint8Array

文件的新内容。

ReturnsDescription
Thenable<void>

FileSystemError

文件系统提供者应使用的一种类型来指示错误。

这个类有用于常见错误情况的工厂方法,比如当文件或文件夹不存在时的FileNotFound,可以这样使用:throw vscode.FileSystemError.FileNotFound(someUri);

静态

创建一个错误以表示文件或文件夹已存在,例如在创建但不覆盖文件时。

ParameterDescription
messageOrUri?: string | Uri

消息或URI。

ReturnsDescription
FileSystemError

创建一个错误以指示文件是一个文件夹。

ParameterDescription
messageOrUri?: string | Uri

消息或URI。

ReturnsDescription
FileSystemError

创建一个错误以指示文件不是文件夹。

ParameterDescription
messageOrUri?: string | Uri

消息或URI。

ReturnsDescription
FileSystemError

创建一个错误以表示未找到文件或文件夹。

ParameterDescription
messageOrUri?: string | Uri

消息或URI。

ReturnsDescription
FileSystemError

创建一个错误,以表示操作缺少所需的权限。

ParameterDescription
messageOrUri?: string | Uri

消息或URI。

ReturnsDescription
FileSystemError

创建一个错误,以表示文件系统不可用或过于繁忙,无法完成请求。

ParameterDescription
messageOrUri?: string | Uri

消息或URI。

ReturnsDescription
FileSystemError

构造函数

创建一个新的文件系统错误。

ParameterDescription
messageOrUri?: string | Uri

消息或URI。

ReturnsDescription
FileSystemError

属性

标识此错误的代码。

可能的值为错误名称,例如FileNotFound,或Unknown用于未指定的错误。

文件系统提供者

文件系统提供者定义了编辑器需要读取、写入、发现和管理文件和文件夹的内容。它允许扩展从远程位置(如FTP服务器)提供文件,并将这些文件无缝集成到编辑器中。

  • 注意 1: 文件系统提供者 API 使用 uris 并假设路径是分层的,例如 foo:/my/pathfoo:/my/ 的子路径,也是 foo:/my/path/deeper 的父路径。
  • 注意 2: 当访问文件或文件夹时,会触发一个激活事件 onFileSystem:
  • 注意 3: 单词 'file' 通常用于表示所有 种类 的文件,例如文件夹、符号链接和常规文件。

事件

一个信号,表示资源已被创建、更改或删除。此事件应针对被此提供者的客户端监视的资源触发。

注意: 重要的是,更改文件的元数据应提供一个更新的 mtime,该值应从 stat 中的先前值前进,并且提供一个正确的 size 值。否则,可能会有优化措施导致更改不会在编辑器中显示。

方法

复制文件或文件夹。实现此功能是可选的,但它将加速复制操作。

  • 抛出 - 当destination的父目录不存在时,抛出FileNotFound,例如不需要mkdirp逻辑。
  • 抛出 - 当destination存在且overwrite选项不为true时,抛出FileExists
ParameterDescription
source: Uri

现有文件。

destination: Uri

目的地位置。

options: {overwrite: boolean}

定义是否应覆盖现有文件。

ReturnsDescription
void | Thenable<void>

创建一个新目录(注意,新文件是通过write调用创建的)。

  • 抛出 - 当uri的父级不存在时,抛出FileNotFound,例如不需要mkdirp逻辑。
  • 抛出 - 当uri已经存在时,抛出FileExists
ParameterDescription
uri: Uri

新文件夹的URI。

ReturnsDescription
void | Thenable<void>

删除一个文件。

ParameterDescription
uri: Uri

要删除的资源。

options: {recursive: boolean}

定义文件夹的删除是否为递归的。

ReturnsDescription
void | Thenable<void>

检索目录的所有条目。

ParameterDescription
uri: Uri

文件夹的URI。

ReturnsDescription
Array<[string, FileType]> | Thenable<Array<[string, FileType]>>

一个名称/类型元组的数组或一个解析为此类的可thenable对象。

读取文件的全部内容。

ParameterDescription
uri: Uri

文件的URI。

ReturnsDescription
Uint8Array | Thenable<Uint8Array>

一个字节数组或一个解析为此类的可thenable对象。

重命名文件或文件夹。

  • 抛出 - 当newUri的父级不存在时,抛出FileNotFound,例如不需要mkdirp逻辑。
  • 抛出 - 当newUri存在且overwrite选项不为true时,抛出FileExists
ParameterDescription
oldUri: Uri

现有文件。

newUri: Uri

新位置。

options: {overwrite: boolean}

定义是否应覆盖现有文件。

ReturnsDescription
void | Thenable<void>

检索文件的元数据。

请注意,符号链接的元数据应该是它们所指向文件的元数据。 尽管如此,除了实际类型外,还必须使用SymbolicLink类型,例如 FileType.SymbolicLink | FileType.Directory

ParameterDescription
uri: Uri

要检索元数据的文件的URI。

ReturnsDescription
FileStat | Thenable<FileStat>

文件的元数据。

订阅由uri表示的文件或文件夹中的文件更改事件。对于文件夹,选项recursive指示是否还应监视子文件夹、子子文件夹等的文件更改。使用recursive: false时,只有文件夹的直接子文件中的更改才会触发事件。

excludes 数组用于指示应从文件监视中排除的路径。它通常来源于用户可配置的 files.watcherExclude 设置。每个条目可以是:

  • 要排除的绝对路径
  • 要排除的相对路径(例如 build/output
  • 一个简单的全局模式(例如 **/build, output/**

文件系统提供者的任务是按照这些规则为每个更改调用onDidChangeFile。对于匹配任何提供的排除项的文件,不应发出任何事件。

ParameterDescription
uri: Uri

要监视的文件或文件夹的URI。

options: {excludes: readonly string[], recursive: boolean}

配置监视器。

ReturnsDescription
Disposable

一个一次性对象,告诉提供者停止监视uri

将数据写入文件,替换其全部内容。

  • 抛出 - 当uri不存在且create未设置时,抛出FileNotFound
  • 抛出 - 当uri的父级不存在且create被设置时,抛出FileNotFound,例如不需要mkdirp逻辑。
  • 抛出 - 当uri已经存在,create被设置但overwrite未被设置时,抛出FileExists
ParameterDescription
uri: Uri

文件的URI。

content: Uint8Array

文件的新内容。

options: {create: boolean, overwrite: boolean}

定义是否应或必须创建缺失的文件。

ReturnsDescription
void | Thenable<void>

文件系统监视器

文件系统监视器会通知磁盘上或其他FileSystemProviders中的文件和文件夹的更改。

要获取FileSystemWatcher的实例,请使用 createFileSystemWatcher

事件

在文件/文件夹更改时触发的事件。

在文件/文件夹创建时触发的事件。

在文件/文件夹删除时触发的事件。

属性

如果此文件系统监视器已创建为忽略更改文件系统事件,则为true。

如果此文件系统监视器已创建为忽略创建文件系统事件,则为true。

如果此文件系统监视器已创建为忽略删除文件系统事件,则为true。

方法

释放此对象。

ParameterDescription
ReturnsDescription
any

文件类型

文件类型的枚举。类型FileDirectory也可以是符号链接,在这种情况下使用FileType.File | FileType.SymbolicLinkFileType.Directory | FileType.SymbolicLink

枚举成员

文件类型未知。

一个常规文件。

一个目录。

文件的符号链接。

FileWillCreateEvent

当文件即将被创建时触发的事件。

在文件创建之前对工作区进行修改,调用waitUntil函数,并传入一个解析为工作区编辑的thenable。

属性

将要创建的文件。

一个取消令牌。

方法

允许暂停事件并应用工作区编辑

注意: 此函数只能在事件分发期间调用,不能以异步方式调用:

workspace.onWillCreateFiles(event => {
  // async, will *throw* an error
  setTimeout(() => event.waitUntil(promise));

  // sync, OK
  event.waitUntil(promise);
});
ParameterDescription
thenable: Thenable<WorkspaceEdit>

一个延迟保存的thenable。

ReturnsDescription
void

允许暂停事件,直到提供的thenable解析完成。

注意: 此函数只能在事件调度期间调用。

ParameterDescription
thenable: Thenable<any>

一个延迟保存的thenable。

ReturnsDescription
void

文件即将删除事件

当文件即将被删除时触发的事件。

在文件被删除之前对工作区进行修改, 调用waitUntil函数,并传入一个 解析为工作区编辑的thenable。

属性

将要被删除的文件。

一个取消令牌。

方法

允许暂停事件并应用工作区编辑

注意: 此函数只能在事件分发期间调用,不能以异步方式调用:

workspace.onWillCreateFiles(event => {
  // async, will *throw* an error
  setTimeout(() => event.waitUntil(promise));

  // sync, OK
  event.waitUntil(promise);
});
ParameterDescription
thenable: Thenable<WorkspaceEdit>

一个延迟保存的thenable。

ReturnsDescription
void

允许暂停事件,直到提供的thenable解析完成。

注意: 此函数只能在事件调度期间调用。

ParameterDescription
thenable: Thenable<any>

一个延迟保存的thenable。

ReturnsDescription
void

文件即将重命名事件

当文件即将被重命名时触发的事件。

在文件重命名之前对工作区进行修改,请调用waitUntil函数,并传入一个解析为工作区编辑的thenable。

属性

将要被重命名的文件。

一个取消令牌。

方法

允许暂停事件并应用工作区编辑

注意: 此函数只能在事件分发期间调用,不能以异步方式调用:

workspace.onWillCreateFiles(event => {
  // async, will *throw* an error
  setTimeout(() => event.waitUntil(promise));

  // sync, OK
  event.waitUntil(promise);
});
ParameterDescription
thenable: Thenable<WorkspaceEdit>

一个延迟保存的thenable。

ReturnsDescription
void

允许暂停事件,直到提供的thenable解析完成。

注意: 此函数只能在事件调度期间调用。

ParameterDescription
thenable: Thenable<any>

一个延迟保存的thenable。

ReturnsDescription
void

FoldingContext

折叠上下文(供将来使用)

FoldingRange

基于行的折叠范围。要有效,起始行和结束行必须大于零且小于文档中的行数。无效的范围将被忽略。

构造函数

创建一个新的折叠范围。

ParameterDescription
start: number

折叠范围的起始行。

end: number

折叠范围的结束行。

kind?: FoldingRangeKind

折叠范围的类型。

ReturnsDescription
FoldingRange

属性

要折叠范围的基于零的结束行。折叠区域以该行的最后一个字符结束。 为了有效,结束行必须为零或更大,并且小于文档中的行数。

描述了折叠范围的类型,例如注释区域。该类型用于对折叠范围进行分类,并被诸如“折叠所有注释”之类的命令使用。请参阅 FoldingRangeKind以获取所有类型的枚举。 如果未设置,则范围源自语法元素。

要折叠范围的从零开始的行号。折叠区域从该行的最后一个字符之后开始。 为了有效,结束行号必须为零或更大,并且小于文档中的行数。

FoldingRangeKind

特定折叠范围类型的枚举。类型是FoldingRange的一个可选字段,用于区分特定的折叠范围,例如源自注释的范围。类型被诸如Fold all commentsFold all regions等命令使用。如果范围上未设置类型,则该范围源自注释、导入或区域标记之外的语法元素。

枚举成员

用于表示注释的折叠范围的类型。

用于表示导入的折叠范围的类型。

用于表示由折叠标记(如#region#endregion)生成的区域的折叠范围的类型。

FoldingRangeProvider

折叠范围提供者接口定义了扩展与编辑器中的折叠之间的契约。

事件

一个可选的事件,用于表示此提供程序的折叠范围已更改。

方法

返回一个折叠范围的列表,如果提供者不想参与或被取消,则返回null和undefined。

ParameterDescription
document: TextDocument

调用命令的文档。

context: FoldingContext

额外的上下文信息(供将来使用)

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<FoldingRange[]>

格式化选项

描述格式化应使用哪些选项的值对象。

属性

优先使用空格而不是制表符。

制表符的空格大小。

FunctionBreakpoint

由函数名称指定的断点。

构造函数

创建一个新的函数断点。

ParameterDescription
functionName: string
enabled?: boolean
condition?: string
hitCondition?: string
logMessage?: string
ReturnsDescription
FunctionBreakpoint

属性

用于条件断点的可选表达式。

断点是否启用。

此断点附加到的函数的名称。

一个可选的表达式,用于控制忽略多少次断点的命中。

断点的唯一ID。

当达到此断点时记录的可选消息。嵌入在{}中的表达式由调试适配器进行插值。

全局环境变量集合

扩展可以应用于进程环境的一组突变。适用于所有范围。

属性

环境变量集合的描述,这将用于描述UI中的更改。

是否应为工作区缓存集合并将其应用于终端,以便在窗口重新加载时使用。当为true时,集合将立即生效,例如当窗口重新加载时。此外,如果存在缓存版本,此API将返回缓存版本。当扩展被卸载或集合被清除时,集合将失效。默认为true。

方法

将一个值附加到环境变量中。

请注意,扩展只能对任何一个变量进行一次更改,因此这将覆盖之前对替换、追加或前置的任何调用。

ParameterDescription
variable: string

要附加到的变量。

value: string

要附加到变量的值。

options?: EnvironmentVariableMutatorOptions

应用于变异器的选项,当未提供选项时,将默认为 { applyAtProcessCreation: true }

ReturnsDescription
void

清除此集合中的所有变异器。

ParameterDescription
ReturnsDescription
void

删除此集合的变量修改器。

ParameterDescription
variable: string

用于删除变异器的变量。

ReturnsDescription
void

遍历此集合中的每个变异器。

ParameterDescription
callback: (variable: string, mutator: EnvironmentVariableMutator, collection: EnvironmentVariableCollection) => any

为每个条目执行的函数。

thisArg?: any

调用处理程序函数时使用的this上下文。

ReturnsDescription
void

获取此集合应用于变量的修改器(如果有的话)。

ParameterDescription
variable: string

获取变异器的变量。

ReturnsDescription
EnvironmentVariableMutator

获取扩展的范围特定环境变量集合。这使得可以在指定范围内单独更改终端环境变量,并且是在全局集合之后(并且在其之后)应用的。

通过此方法获得的每个对象都是独立的,不会影响其他范围的对象,包括全局集合。

ParameterDescription
scope: EnvironmentVariableScope

环境变量集合适用的范围。

如果省略了范围参数,则返回适用于该参数所有相关范围的集合。例如,如果未指定'workspaceFolder'参数,则将返回适用于所有工作区文件夹的集合。

ReturnsDescription
EnvironmentVariableCollection

传入范围的环境变量集合。

在环境变量前添加一个值。

请注意,扩展只能对任何一个变量进行一次更改,因此这将覆盖之前对替换、追加或前置的任何调用。

ParameterDescription
variable: string

要前置的变量。

value: string

要添加到变量前面的值。

options?: EnvironmentVariableMutatorOptions

应用于变异器的选项,当未提供选项时,将默认为 { applyAtProcessCreation: true }

ReturnsDescription
void

用值替换环境变量。

请注意,扩展只能对任何一个变量进行一次更改,因此这将覆盖之前对替换、追加或前置的任何调用。

ParameterDescription
variable: string

要替换的变量。

value: string

用于替换变量的值。

options?: EnvironmentVariableMutatorOptions

应用于变异器的选项,当未提供选项时,将默认为 { applyAtProcessCreation: true }

ReturnsDescription
void

GlobPattern

用于匹配文件路径的文件通配符模式。这可以是一个通配符模式字符串(如 **/*.{ts,js}*.{ts,js})或一个 相对模式

全局模式可以有以下语法:

  • * 用于匹配路径段中的零个或多个字符
  • ? 用于匹配路径段中的一个字符
  • ** 用于匹配任意数量的路径段,包括无
  • {} 用于分组条件(例如 **/*.{ts,js} 匹配所有 TypeScript 和 JavaScript 文件)
  • [] 用于声明路径段中要匹配的字符范围(例如,example.[0-9] 用于匹配 example.0example.1,…)
  • [!...] 用于否定路径段中的字符范围以匹配(例如,example.[!0-9] 匹配 example.aexample.b,但不匹配 example.0

注意:反斜杠(``)在全局模式中无效。如果您有一个现有的文件路径需要匹配,请考虑使用相对模式支持,它会负责将任何反斜杠转换为斜杠。否则,在创建全局模式时,请确保将任何反斜杠转换为斜杠。

悬停

悬停表示符号或单词的附加信息。悬停信息以类似工具提示的小部件呈现。

构造函数

创建一个新的悬停对象。

ParameterDescription
contents: MarkdownString | MarkedString | Array<MarkdownString | MarkedString>

悬停的内容。

range?: Range

悬停效果应用的范围。

ReturnsDescription
Hover

属性

此悬停的内容。

此悬停效果适用的范围。当缺失时,编辑器将使用当前位置的范围或当前位置本身。

HoverProvider

悬停提供者接口定义了扩展与悬停功能之间的契约。

方法

为给定的位置和文档提供一个悬停提示。编辑器会合并同一位置的多个悬停提示。悬停提示可以有一个范围,当省略时,默认使用该位置的单词范围。

ParameterDescription
document: TextDocument

调用命令的文档。

position: Position

命令被调用的位置。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<Hover>

一个悬停或一个可解析为悬停的thenable。可以通过返回undefinednull来表示没有结果。

IconPath

表示用户界面中的一个图标。这可以是一个URI,分别用于浅色和深色主题的URI,或者是一个主题图标

ImplementationProvider

实现提供者接口定义了扩展与转到实现功能之间的契约。

方法

提供给定位置和文档中符号的实现。

ParameterDescription
document: TextDocument

调用命令的文档。

position: Position

命令被调用的位置。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<Definition | LocationLink[]>

一个定义或一个解析为此的可thenable对象。可以通过返回undefinednull来表示没有结果。

IndentAction

描述按下回车键时如何处理缩进。

枚举成员

插入新行并复制前一行的缩进。

插入新行并缩进一次(相对于前一行的缩进)。

插入两行新内容:

  • 第一个缩进的将保存光标
  • 同一缩进级别的第二个

插入新行并相对于前一行的缩进减少一次缩进。

缩进规则

描述一种语言的缩进规则。

属性

如果一行匹配此模式,则其后的所有行应取消一次缩进(直到另一个规则匹配)。

如果一行匹配此模式,则其后的所有行应缩进一次(直到另一条规则匹配)。

如果一行匹配此模式,则仅下一行应缩进一次。

如果一行匹配此模式,则不应更改其缩进,并且不应根据其他规则进行评估。

InlayHint

嵌入提示信息。

构造函数

创建一个新的内联提示。

ParameterDescription
position: Position

提示的位置。

label: string | InlayHintLabelPart[]

提示的标签。

kind?: InlayHintKind

kind 提示的类型。

ReturnsDescription
InlayHint

属性

这种提示的类型。内联提示类型定义了这种内联提示的外观。

此提示的标签。一个人类可读的字符串或一个标签部分的数组。

注意,字符串和标签部分都不能为空。

在提示前渲染填充。填充将使用编辑器的背景颜色,而不是提示本身的背景颜色。这意味着填充可以用于视觉上对齐/分隔内联提示。

在提示后渲染填充。填充将使用编辑器的背景颜色,而不是提示本身的背景颜色。这意味着填充可以用于视觉上对齐/分隔内联提示。

此提示的位置。

可选的文本编辑,在接受此内联提示时执行。接受内联提示的默认手势是双击。

注意,编辑预计会更改文档,以便嵌入提示(或其最近的变体)现在是文档的一部分,而嵌入提示本身现在已过时。

注意,此属性可以在解析嵌入提示的过程中稍后设置。

当您悬停在此项目上时显示的工具提示文本。

注意,此属性可以在解析嵌入提示时稍后设置。

InlayHintKind

嵌入提示类型。

内联提示的类型定义了它的外观,例如使用相应的前景和背景颜色。

枚举成员

一个用于类型注解的内嵌提示。

用于参数的嵌入提示。

InlayHintLabelPart

内嵌提示标签部分允许内嵌提示的交互式和复合标签。

构造函数

创建一个新的内嵌提示标签部分。

ParameterDescription
value: string

部分的值。

ReturnsDescription
InlayHintLabelPart

属性

此标签部分的可选命令。

编辑器将带有命令的部分渲染为可点击的链接。当标签部分定义了locationcommand时,该命令会被添加到上下文菜单中。

注意,此属性可以在解析嵌入提示时稍后设置。

一个可选的源代码位置,表示此标签部分。

编辑器将使用此位置进行悬停和代码导航功能:这部分将成为一个可点击的链接,解析为给定位置的符号定义(不一定是位置本身),它显示在给定位置显示的悬停,并显示带有进一步代码导航命令的上下文菜单。

注意,此属性可以在解析嵌入提示时稍后设置。

当您悬停在此标签部分时显示的工具提示文本。

注意,此属性可以在解析嵌入提示时稍后设置。

此标签部分的值。

InlayHintsProvider

嵌入提示提供者接口定义了扩展与嵌入提示功能之间的契约。

事件

一个可选的事件,用于表示此提供者的嵌入提示已更改。

方法

为给定的范围和文档提供嵌入提示。

注意,不在给定范围内的内联提示将被忽略。

ParameterDescription
document: TextDocument

调用命令的文档。

range: Range

应计算内联提示的范围。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<T[]>

一个内联提示数组或一个解析为此类的可thenable对象。

给定一个内嵌提示,填写工具提示文本编辑,或完整的标签部分

注意,编辑器最多只会解析一次内联提示。

ParameterDescription
hint: T

一个内嵌提示。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<T>

解析的内嵌提示或解析为此类的可thenable对象。返回给定的item是可以的。当没有返回结果时,将使用给定的item

InlineCompletionContext

提供有关请求内联补全的上下文信息。

属性

如果自动完成小部件可见,则提供有关当前选定项目的信息。

如果设置,提供的行内补全必须扩展所选项目的文本并使用相同的范围,否则它们不会显示为预览。例如,如果文档文本是console.且所选项目是.log替换文档中的.,则行内补全也必须替换.并以.log开头,例如.log()

每当所选项目更改时,都会再次请求内联完成提供程序。

描述内联完成是如何触发的。

InlineCompletionItem

内联完成项代表一个文本片段,该片段被提议内联以完成正在输入的文本。

另请参阅 InlineCompletionItemProvider.provideInlineCompletionItems

构造函数

创建一个新的内联完成项。

ParameterDescription
insertText: string | SnippetString

用于替换范围的文本。

range?: Range

要替换的范围。如果未设置,将使用请求位置的单词。

command?: Command

一个可选的Command,在插入此完成项之后执行。

ReturnsDescription
InlineCompletionItem

属性

一个可选的Command,在插入此完成项之后执行。

用于决定是否应显示此内联补全的文本。当falsy时,将使用InlineCompletionItem.insertText

如果要替换的文本是过滤文本的前缀,则会显示内联完成。

用于替换范围的文本。必须设置。 用于预览和接受操作。

要替换的范围。 必须在同一行开始和结束。

优先使用替换而不是插入,以在用户删除键入的文本时提供更好的体验。

InlineCompletionItemProvider

内联完成项提供者接口定义了扩展和内联完成功能之间的契约。

提供者在用户明确的手势或输入时隐式地请求完成。

方法

为给定位置和文档提供内联完成项。 如果启用了内联完成,每当用户停止输入时,将调用此方法。 当用户显式触发内联完成或显式请求下一个或上一个内联完成时,也会调用此方法。 在这种情况下,应返回所有可用的内联完成项。 context.triggerKind 可用于区分这些场景。

ParameterDescription
document: TextDocument

请求文档内联补全。

position: Position

请求内联补全的位置。

context: InlineCompletionContext

一个包含附加信息的上下文对象。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<InlineCompletionList | InlineCompletionItem[]>

一个完成项的数组或一个解析为完成项数组的thenable。

InlineCompletionList

表示要在编辑器中显示的内联完成项的集合。

构造函数

创建一个新的内联完成项列表。

ParameterDescription
items: InlineCompletionItem[]
ReturnsDescription
InlineCompletionList

属性

内联完成项。

InlineCompletionTriggerKind

描述如何触发内联完成提供者

枚举成员

完成是由用户手势明确触发的。 返回多个完成项以启用循环浏览它们。

在编辑时自动触发了完成。 在这种情况下,返回单个完成项就足够了。

InlineValue

内联值信息可以通过不同的方式提供:

  • 直接作为文本值(类 InlineValueText)。
  • 作为用于变量查找的名称(类 InlineValueVariableLookup)
  • 作为一个可评估的表达式(类 InlineValueEvaluatableExpression) InlineValue 类型将所有内联值类型组合成一个类型。

InlineValueContext

一个值对象,当从InlineValuesProvider请求内联值时,包含上下文信息。

属性

执行停止时的堆栈帧(作为DAP Id)。

执行停止的文档范围。 通常,范围的结束位置表示显示内联值的行。

InlineValueEvaluatableExpression

通过表达式评估提供内联值。 如果仅指定了范围,则将从基础文档中提取表达式。 可以使用可选的表达式来覆盖提取的表达式。

构造函数

创建一个新的InlineValueEvaluatableExpression对象。

ParameterDescription
range: Range

从基础文档中提取可评估表达式的范围。

expression?: string

如果指定,则覆盖提取的表达式。

ReturnsDescription
InlineValueEvaluatableExpression

属性

如果指定了表达式,它将覆盖提取的表达式。

内联值适用的文档范围。 该范围用于从基础文档中提取可评估的表达式。

InlineValuesProvider

内联值提供者接口定义了扩展与编辑器的调试器内联值功能之间的契约。 在此契约中,提供者返回给定文档范围的内联值信息, 而编辑器则在行末显示此信息。

事件

一个可选事件,用于表示内联值已更改。

另请参阅 EventEmitter

方法

为给定的文档和范围提供“内联值”信息。 每当调试在给定文档中停止时,编辑器都会调用此方法。 返回的内联值信息将在编辑器中的行尾呈现。

ParameterDescription
document: TextDocument

需要内联值信息的文档。

viewPort: Range

应计算内联值的可见文档范围。

context: InlineValueContext

一个包含上下文信息的包,比如当前位置。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<InlineValue[]>

一个InlineValueDescriptors数组或一个解析为此类的thenable。可以通过返回undefinednull来表示没有结果。

InlineValueText

提供内联值作为文本。

构造函数

创建一个新的InlineValueText对象。

ParameterDescription
range: Range

显示内联值的文档行。

text: string

要显示的行的值。

ReturnsDescription
InlineValueText

属性

内联值适用的文档范围。

内联值的文本。

InlineValueVariableLookup

通过变量查找提供内联值。 如果仅指定了范围,变量名称将从基础文档中提取。 可以使用可选的变量名称来覆盖提取的名称。

构造函数

创建一个新的 InlineValueVariableLookup 对象。

ParameterDescription
range: Range

显示内联值的文档行。

variableName?: string

要查找的变量的名称。

caseSensitiveLookup?: boolean

如何执行查找。如果缺少查找,则区分大小写。

ReturnsDescription
InlineValueVariableLookup

属性

如何执行查找。

内联值适用的文档范围。 该范围用于从基础文档中提取变量名。

如果指定了要查找的变量名称。

输入框

一个具体的QuickInput,用于让用户输入文本值。

请注意,在许多情况下,更方便的window.showInputBox更容易使用。当window.showInputBox不提供所需的灵活性时,应使用window.createInputBox

事件

当用户表示接受输入值时发出的事件。

当值发生变化时发出的事件信号。

当此输入UI隐藏时发出的事件信号。

有几个原因可能导致此UI需要隐藏,并且扩展将通过QuickInput.onDidHide收到通知。 (例如:显式调用QuickInput.hide,用户按下Esc键,其他输入UI打开等。)

当按钮被触发时发出的事件信号。

属性

如果用户界面应显示进度指示器。默认为 false。

将此更改为true,例如,在加载更多数据或验证用户输入时。

用户界面中的操作按钮。

如果用户界面应允许用户输入。默认为 true。

将其更改为false,例如,在验证用户输入或加载用户输入下一步的数据时。

如果UI在失去焦点时仍应保持打开状态。默认为false。 此设置在iPad上被忽略,并且始终为false。

如果输入值应该被隐藏。默认为 false。

当没有输入值时显示的可选占位符。

一个可选的提示文本,向用户提供一些询问或解释。

一个可选的当前步骤计数。

一个可选的标题。

一个可选的步骤总数。

一个可选的验证消息,指示当前输入值存在问题。 通过返回一个字符串,InputBox 将使用默认的 InputBoxValidationSeverity 为错误。 返回 undefined 将清除验证消息。

当前输入值。

输入值中的选择范围。定义为两个数字的元组,其中第一个是包含的起始索引,第二个是排除的结束索引。当undefined时,将选择整个预填充值;当为空时(起始等于结束),仅设置光标;否则,将选择定义的范围。

当用户输入或进行选择时,此属性不会更新,但可以通过扩展进行更新。

方法

处理此输入UI及其相关资源。如果它仍然可见,首先会隐藏它。在此调用之后,输入UI将不再可用,不应再访问其任何额外的方法或属性。相反,应创建一个新的输入UI。

ParameterDescription
ReturnsDescription
void

隐藏此输入界面。这也会触发一个QuickInput.onDidHide事件。

ParameterDescription
ReturnsDescription
void

使输入UI在其当前配置中可见。任何其他输入UI将首先触发一个QuickInput.onDidHide事件。

ParameterDescription
ReturnsDescription
void

InputBoxOptions

配置输入框UI行为的选项。

属性

设置为true以在焦点移动到编辑器的其他部分或另一个窗口时保持输入框打开。 此设置在iPad上被忽略,并且始终为false。

控制是否显示密码输入。密码输入会隐藏输入的文本。

一个可选的字符串,显示在输入框中作为占位符,以指导用户输入内容。

在输入框下方显示的文本。

一个可选的字符串,表示输入框的标题。

预填充在输入框中的值。

选择预填充的。定义为两个数字的元组,其中第一个是包含的起始索引,第二个是排除的结束索引。当undefined时,将选择整个预填充的值,当为空时(起始等于结束),仅设置光标,否则将选择定义的范围。

方法

一个可选函数,将用于验证输入并向用户提供提示。

ParameterDescription
value: string

输入框的当前值。

ReturnsDescription
string | InputBoxValidationMessage | Thenable<string | InputBoxValidationMessage>

可以是一个人类可读的字符串,作为错误信息显示,或者是一个InputBoxValidationMessage,它可以提供特定的消息严重性。当'value'有效时,返回undefinednull或空字符串。

InputBoxValidationMessage

用于配置验证消息行为的对象。

属性

要显示的验证消息。

验证消息的严重性。 注意:当使用InputBoxValidationSeverity.Error时,用户将不被允许接受(按下回车键)输入。 InfoWarning仍然允许InputBox接受输入。

InputBoxValidationSeverity

输入框验证的严重级别。

枚举成员

信息严重级别。

警告严重级别。

错误严重级别。

语言配置

语言配置接口定义了扩展与各种编辑器功能之间的契约,例如自动括号插入、自动缩进等。

属性

已弃用 请勿使用。

  • 已弃用 - * 请改用语言配置文件中的 autoClosingPairs 属性。
ParameterDescription
autoClosingPairs: Array<{close: string, notIn: string[], open: string}>
  • 已弃用

已弃用 请勿使用。

  • 已弃用 - 很快将被更好的API取代。
ParameterDescription
brackets: any

此属性已弃用,并将从编辑器中忽略

  • 已弃用
docComment: {close: string, lineStart: string, open: string, scope: string}

此属性已被弃用,编辑器不再完全支持(忽略scope和lineStart)。 请改用语言配置文件中的autoClosingPairs属性。

  • 已弃用

语言的自动闭合对。

语言的括号。 此配置隐式影响在这些括号周围按下回车键。

语言的注释设置。

语言的缩进设置。

按下回车键时要评估的语言规则。

语言的字词定义。 如果语言支持Unicode标识符(例如JavaScript),最好提供一个使用排除已知分隔符的字词定义。 例如:一个匹配除已知分隔符之外的任何内容的正则表达式(并且允许在浮点数中出现点):

/(-?\d*\.\d\w*)|([^\`\~\!\\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>/\?\s]+)/g

语言模型访问信息

表示关于访问语言模型的扩展特定信息。

事件

当访问信息发生变化时触发的事件。

方法

检查是否可以向语言模型发出请求。

注意,调用此函数不会触发同意界面,而只是检查持久化状态。

ParameterDescription
chat: LanguageModelChat

一个语言模型聊天对象。

ReturnsDescription
boolean

true 如果可以发出请求,false 如果不可以,undefined 如果语言模型不存在或尚未请求同意。

语言模型聊天

表示用于进行聊天请求的语言模型。

另请参阅 lm.selectChatModels

属性

语言模型的不透明家族名称。值可能是 gpt-3.5-turbo, gpt4, phi2, 或 llama,但它们由提供语言的扩展定义,并可能发生变化。

语言模型的不透明标识符。

单次请求中可以发送到模型的最大令牌数。

语言模型的人类可读名称。

语言模型供应商的知名标识符。例如copilot,但值由提供聊天模型的扩展定义,需要与它们一起查找。

模型的不透明版本字符串。这是由提供语言模型的扩展定义的,并且可能会发生变化。

方法

使用模型特定的标记器逻辑计算消息中的标记数量。

ParameterDescription
text: string | LanguageModelChatMessage

一个字符串或消息实例。

token?: CancellationToken

可选的取消令牌。有关如何创建一个,请参见CancellationTokenSource

ReturnsDescription
Thenable<number>

一个可解析为令牌数量的thenable。

使用语言模型进行聊天请求。

注意,语言模型的使用可能受到访问限制和用户同意的约束。首次调用此函数(对于扩展程序)将向用户显示同意对话框,因此此函数必须仅在响应用户操作时调用!扩展程序可以使用LanguageModelAccessInformation.canSendRequest来检查它们是否具有发出请求的必要权限。

如果无法向语言模型发出请求,此函数将返回一个被拒绝的承诺。可能的原因包括:

  • 用户未同意,请参阅 NoPermissions
  • 模型不再存在,请参见 NotFound
  • 配额限制已超出,请参阅 Blocked
  • 其他问题,在这种情况下扩展必须检查 [LanguageModelError.cause LanguageModelError.cause](#LanguageModelError.cause LanguageModelError.cause)

扩展可以通过向LanguageModelChatRequestOptions.tools传递一组工具来利用语言模型工具调用。语言模型将返回一个LanguageModelToolCallPart,扩展可以调用该工具并使用结果发出另一个请求。

ParameterDescription
messages: LanguageModelChatMessage[]

消息实例的数组。

options?: LanguageModelChatRequestOptions

控制请求的选项。

token?: CancellationToken

一个控制请求的取消令牌。有关如何创建一个,请参见CancellationTokenSource

ReturnsDescription
Thenable<LanguageModelChatResponse>

一个可解析为LanguageModelChatResponse的thenable。当请求无法完成时,promise将被拒绝。

LanguageModelChatMessage

表示聊天中的一条消息。可以承担不同的角色,如用户或助手。

静态

用于创建新助手消息的工具。

ParameterDescription
content: string | Array<LanguageModelTextPart | LanguageModelToolCallPart>

消息的内容。

name?: string

消息的可选用户名。

ReturnsDescription
LanguageModelChatMessage

用于创建新用户消息的工具。

ParameterDescription
content: string | Array<LanguageModelTextPart | LanguageModelToolResultPart>

消息的内容。

name?: string

消息的可选用户名。

ReturnsDescription
LanguageModelChatMessage

构造函数

创建一个新的用户消息。

ParameterDescription
role: LanguageModelChatMessageRole

消息的角色。

content: string | Array<LanguageModelTextPart | LanguageModelToolResultPart | LanguageModelToolCallPart>

消息的内容。

name?: string

消息的可选用户名。

ReturnsDescription
LanguageModelChatMessage

属性

消息可以包含的内容的字符串或异构数组。某些部分可能特定于某些模型的消息类型。

此消息的可选用户名。

此消息的角色。

LanguageModelChatMessageRole

表示聊天消息的角色。这可以是用户或助手。

枚举成员

用户角色,例如与语言模型交互的人类。

助手角色,例如生成响应的语言模型。

LanguageModelChatRequestOptions

使用语言模型进行聊天请求的选项。

另请参阅 LanguageModelChat.sendRequest

属性

一条人类可读的消息,解释了为什么需要访问语言模型以及它启用了什么功能。

一组控制语言模型行为的选项。这些选项特定于语言模型,需要在相应的文档中查找。

使用的工具选择模式。默认情况下为LanguageModelChatToolMode.Auto

一个可选的工具列表,这些工具可供语言模型使用。这些可能是通过lm.tools注册的工具,或者只是在调用扩展中实现的私有工具。

如果LLM请求调用其中一个工具,它将在LanguageModelChatResponse.stream中返回一个LanguageModelToolCallPart。调用者的责任是调用该工具。如果它是注册在lm.tools中的工具,这意味着调用lm.invokeTool

然后,可以通过创建一个带有LanguageModelToolCallPart的助手类型LanguageModelChatMessage,然后是一个带有LanguageModelToolResultPart的用户类型消息,将工具结果提供给LLM。

LanguageModelChatResponse

表示一个语言模型的响应。

另请参阅 LanguageModelAccess.chatRequest

属性

一个异步可迭代对象,它是文本和工具调用部分的流,形成整体响应。LanguageModelTextPart 是助手响应的一部分,用于显示给用户。LanguageModelToolCallPart 是语言模型调用工具的请求。只有在请求中通过 LanguageModelChatRequestOptions.tools 传递了工具时,才会返回后者。unknown 类型用作未来部分的占位符,如图像数据部分。

注意,此流在数据接收过程中发生错误时会出错。流的消费者应相应地处理这些错误。

要取消流,消费者可以取消用于发出请求的令牌或从for循环中跳出。

示例

try {
  // consume stream
  for await (const chunk of response.stream) {
    if (chunk instanceof LanguageModelTextPart) {
      console.log('TEXT', chunk);
    } else if (chunk instanceof LanguageModelToolCallPart) {
      console.log('TOOL CALL', chunk);
    }
  }
} catch (e) {
  // stream ended with an error
  console.error(e);
}

这相当于从LanguageModelChatResponse.stream中过滤掉除文本部分之外的所有内容。

另请参阅 LanguageModelChatResponse.stream

LanguageModelChatSelector

描述如何为聊天请求选择语言模型。

另请参阅 lm.selectChatModels

属性

一系列语言模型。

另请参阅 LanguageModelChat.family

语言模型的标识符。

另请参阅 LanguageModelChat.id

语言模型的供应商。

另请参阅 LanguageModelChat.vendor

语言模型的版本。

另请参阅 LanguageModelChat.version

LanguageModelChatTool

一个工具,语言模型可以通过LanguageModelChatRequestOptions使用。语言模型使用此接口的所有属性来决定调用哪个工具以及如何调用它。

属性

工具的说明。

此工具接受的输入的JSON模式。

工具的名称。

LanguageModelChatToolMode

语言模型使用的工具调用模式。

枚举成员

语言模型可以选择调用工具或生成消息。这是默认设置。

语言模型必须调用提供的工具之一。注意-某些模型在使用此模式时仅支持单个工具。

LanguageModelError

语言模型特定错误的错误类型。

语言模型的消费者应检查代码属性以确定具体的失败原因,例如if(someError.code === vscode.LanguageModelError.NotFound.name) {...}用于引用未知语言模型的情况。对于未指定的错误,cause属性将包含实际错误。

静态

请求者被阻止使用此语言模型。

ParameterDescription
message?: string
ReturnsDescription
LanguageModelError

请求者没有权限使用此语言模型

ParameterDescription
message?: string
ReturnsDescription
LanguageModelError

语言模型不存在。

ParameterDescription
message?: string
ReturnsDescription
LanguageModelError

构造函数

ParameterDescription
message?: string
ReturnsDescription
LanguageModelError

属性

标识此错误的代码。

可能的值为错误名称,如NotFound,或Unknown表示语言模型本身未指定的错误。在后一种情况下,cause属性将包含实际错误。

LanguageModelPromptTsxPart

包含来自vscode/prompt-tsx的PromptElementJSON的语言模型响应部分。

另请参阅 LanguageModelToolResult

构造函数

使用给定的内容构建一个prompt-tsx部分。

ParameterDescription
value: unknown

部分的值,来自vscode/prompt-tsxrenderPromptElementJSON的结果。

ReturnsDescription
LanguageModelPromptTsxPart

属性

部分的值。

LanguageModelTextPart

包含一段文本的语言模型响应部分,从LanguageModelChatResponse返回。

构造函数

使用给定的内容构造一个文本部分。

ParameterDescription
value: string

部分的文本内容。

ReturnsDescription
LanguageModelTextPart

属性

部分的文本内容。

LanguageModelTool

一个可以通过调用LanguageModelChat来调用的工具。

方法

使用给定的输入调用工具并返回结果。

提供的 LanguageModelToolInvocationOptions.input 已根据声明的模式进行了验证。

ParameterDescription
options: LanguageModelToolInvocationOptions<T>
token: CancellationToken
ReturnsDescription
ProviderResult<LanguageModelToolResult>

在工具被调用之前调用一次。建议实现此功能以自定义工具运行时显示的进度消息,并提供包含调用输入上下文的更有用的消息。如果合适,还可以指示工具在运行之前需要用户确认。

  • 注意 1: 必须没有副作用。
  • 注意 2: 调用 prepareInvocation 后不一定会调用 invoke
ParameterDescription
options: LanguageModelToolInvocationPrepareOptions<T>
token: CancellationToken
ReturnsDescription
ProviderResult<PreparedToolInvocation>

LanguageModelToolCallPart

表示工具调用的语言模型响应部分,从LanguageModelChatResponse返回,也可以作为内容部分包含在LanguageModelChatMessage中,以表示聊天请求中的先前工具调用。

构造函数

创建一个新的LanguageModelToolCallPart。

ParameterDescription
callId: string

工具调用的ID。

name: string

要调用的工具名称。

input: object

用于调用工具的输入。

ReturnsDescription
LanguageModelToolCallPart

属性

工具调用的ID。这是聊天请求中工具调用的唯一标识符。

用于调用工具的输入。

要调用的工具名称。

LanguageModelToolConfirmationMessages

当在PreparedToolInvocation中返回此内容时,用户将在运行工具之前被要求确认。这些消息将显示带有“继续”和“取消”按钮。

属性

确认消息的正文。

确认消息的标题。

语言模型工具信息

关于在lm.tools中可用的注册工具的信息。

属性

此工具的说明可能会传递给语言模型。

此工具接受的输入的JSON模式。

工具的唯一名称。

一组由工具声明的标签,大致描述了工具的功能。工具用户可以使用这些标签来过滤工具集,仅保留与当前任务相关的工具。

LanguageModelToolInvocationOptions

为工具调用提供的选项。

属性

用于调用工具的输入。输入必须匹配在 LanguageModelToolInformation.inputSchema中定义的架构。

提示工具在其响应中应返回多少令牌的选项,并使工具能够准确计数令牌。

一个不透明的对象,将工具调用与来自聊天参与者的聊天请求绑定在一起。

获取有效工具调用令牌的唯一方法是使用聊天请求中提供的toolInvocationToken。在这种情况下,聊天响应视图中将自动显示工具调用的进度条,如果工具需要用户确认,它将在聊天视图中内联显示。

如果工具在聊天请求之外被调用,则应传递undefined,并且除了确认之外不会显示任何特殊的UI。

注意,一个工具在调用过程中调用另一个工具时,可以传递它接收到的toolInvocationToken

LanguageModelToolInvocationPrepareOptions

属性

工具被调用时使用的输入。

LanguageModelToolResult

从工具调用返回的结果。如果使用vscode/prompt-tsx,这个结果可能会使用ToolResult进行渲染。

构造函数

创建一个LanguageModelToolResult

ParameterDescription
content: Array<LanguageModelTextPart | LanguageModelPromptTsxPart>

工具结果内容部分的列表

ReturnsDescription
LanguageModelToolResult

属性

工具结果内容部分的列表。包括unknown,因为此列表可能会在未来扩展新的内容类型。

另请参阅 lm.invokeTool

LanguageModelToolResultPart

工具调用的结果。这是工具调用的对应部分,它只能包含在用户消息的内容中。

构造函数

ParameterDescription
callId: string

工具调用的ID。

content: unknown[]

工具结果的内容。

ReturnsDescription
LanguageModelToolResultPart

属性

工具调用的ID。

注意,这应该与工具调用部分的callId匹配。

工具结果的值。

LanguageModelToolTokenizationOptions

与工具调用的标记化相关的选项。

属性

如果已知,工具应在其结果中发出的最大令牌数。

方法

使用模型特定的标记器逻辑计算消息中的标记数量。

ParameterDescription
text: string

一个字符串。

token?: CancellationToken

可选的取消令牌。有关如何创建一个,请参见CancellationTokenSource

ReturnsDescription
Thenable<number>

一个可解析为令牌数量的thenable。

LanguageStatusItem

语言状态项是展示活动文本编辑器语言状态报告的首选方式,例如是否选择了linter或通知配置问题。

属性

屏幕阅读器与此项目交互时使用的可访问性信息

控制项目是否显示为“忙碌”。默认为false

此项目的命令

可选的,此项目的人类可读详细信息。

此项目的标识符。

此项目的简称,如“Java语言状态”等。

一个选择器,定义了此项目显示在哪些编辑器中。

此项目的严重程度。

默认为information。您可以使用此属性向用户发出信号,表明存在需要关注的问题,例如缺少可执行文件或无效配置。

要显示的条目文本。您可以通过利用以下语法在文本中嵌入图标:

我的文本 $(icon-name) 包含像 $(icon-name) 这样的图标。

其中图标名称取自ThemeIcon 图标集,例如 light-bulb, thumbsup, zap 等。

方法

释放并清理相关资源。

ParameterDescription
ReturnsDescription
void

LanguageStatusSeverity

表示语言状态的严重程度级别。

枚举成员

信息严重级别。

警告严重级别。

错误严重级别。

LinkedEditingRangeProvider

链接编辑范围提供者接口定义了扩展与链接编辑功能之间的契约。

方法

对于文档中的给定位置,返回该位置符号的范围以及所有具有相同内容的范围。如果新内容有效,则对一个范围的更改可以应用于所有其他范围。可以选择性地返回一个单词模式,以描述有效内容。如果没有提供特定于结果的单词模式,则使用语言配置中的单词模式。

ParameterDescription
document: TextDocument

调用提供程序的文档。

position: Position

调用提供者的位置。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<LinkedEditingRanges>

可以一起编辑的范围列表

LinkedEditingRanges

表示可以一起编辑的范围列表以及描述有效范围内容的单词模式。

构造函数

创建一个新的链接编辑范围对象。

ParameterDescription
ranges: Range[]

可以一起编辑的范围列表

wordPattern?: RegExp

一个可选的单词模式,用于描述给定范围的有效内容

ReturnsDescription
LinkedEditingRanges

属性

可以一起编辑的范围列表。这些范围必须具有相同的长度和文本内容。范围不能重叠。

一个可选的单词模式,用于描述给定范围内的有效内容。 如果没有提供模式,将使用语言配置的单词模式。

位置

表示资源内部的位置,例如文本文件中的一行。

构造函数

创建一个新的位置对象。

ParameterDescription
uri: Uri

资源标识符。

rangeOrPosition: Range | Position

范围或位置。位置将被转换为空范围。

ReturnsDescription
Location

属性

此位置的文档范围。

此位置的资源标识符。

表示两个位置的连接。提供了比普通位置更多的元数据,包括一个原始范围。

属性

此链接起源的范围。

用作鼠标定义悬停的下划线范围。默认为定义位置处的单词范围。

此链接的完整目标范围。

此链接的范围。

此链接的目标资源标识符。

LogLevel

日志级别

枚举成员

没有消息以此级别记录。

所有消息都以此级别记录。

使用此级别记录调试及更高级别的日志消息。

信息和更高级别的日志消息以此级别记录。

带有警告及更高日志级别的消息将以此级别记录。

只有错误信息会以这个级别记录。

LogOutputChannel

一个用于包含日志输出的通道。

要获取LogOutputChannel的实例,请使用 createOutputChannel

事件

当通道的日志级别发生变化时触发的事件

属性

通道的当前日志级别。默认为编辑器日志级别

此输出通道的人类可读名称。

方法

将给定值附加到通道。

ParameterDescription
value: string

一个字符串,假值将不会被打印。

ReturnsDescription
void

将给定的值和换行符附加到通道。

ParameterDescription
value: string

一个字符串,假值将被打印。

ReturnsDescription
void

移除通道中的所有输出。

ParameterDescription
ReturnsDescription
void

将给定的调试消息输出到通道。

只有在通道配置为显示debug日志级别或更低级别时,才会记录该消息。

ParameterDescription
message: string

调试信息记录到日志

...args: any[]
ReturnsDescription
void

释放并清理相关资源。

ParameterDescription
ReturnsDescription
void

将给定的错误或错误消息输出到通道。

只有在通道配置为显示error日志级别或更低级别时,才会记录该消息。

ParameterDescription
error: string | Error

要记录的错误或错误消息

...args: any[]
ReturnsDescription
void

从用户界面中隐藏此频道。

ParameterDescription
ReturnsDescription
void

将给定的信息消息输出到通道。

只有在通道配置为显示info日志级别或更低级别时,才会记录该消息。

ParameterDescription
message: string

记录的信息消息

...args: any[]
ReturnsDescription
void

用给定值替换来自通道的所有输出。

ParameterDescription
value: string

一个字符串,假值将不会被打印。

ReturnsDescription
void

在用户界面中显示此频道。

ParameterDescription
preserveFocus?: boolean

true 时,通道将不会获取焦点。

ReturnsDescription
void

在用户界面中显示此频道。

  • 已弃用 - 使用仅有一个参数的过载(show(preserveFocus?: boolean): void)。
ParameterDescription
column?: ViewColumn

此参数已弃用,将被忽略。

preserveFocus?: boolean

true 时,通道将不会获取焦点。

ReturnsDescription
void

将给定的跟踪消息输出到通道。使用此方法记录详细信息。

只有在通道配置为显示trace日志级别时,才会记录该消息。

ParameterDescription
message: string

将消息跟踪到日志

...args: any[]
ReturnsDescription
void

将给定的警告消息输出到通道。

只有在通道配置为显示警告日志级别或更低级别时,才会记录该消息。

ParameterDescription
message: string

警告信息记录

...args: any[]
ReturnsDescription
void

MarkdownString

支持通过markdown语法进行格式化的人类可读文本。

supportThemeIcons设置为true时,支持通过$()语法渲染主题图标

supportHtml设置为true时,支持渲染嵌入的html。

构造函数

使用给定的值创建一个新的markdown字符串。

ParameterDescription
value?: string

可选的初始值。

supportThemeIcons?: boolean

可选,指定是否在MarkdownString中支持ThemeIcons

ReturnsDescription
MarkdownString

属性

相对路径解析所基于的Uri。

如果 baseUri/ 结尾,它被视为一个目录,并且 markdown 中的相对路径将相对于该目录解析:

const md = new vscode.MarkdownString(`[link](./file.js)`);
md.baseUri = vscode.Uri.file('/path/to/dir/');
// Here 'link' in the rendered markdown resolves to '/path/to/dir/file.js'

如果baseUri是一个文件,markdown中的相对路径将相对于该文件的父目录解析:

const md = new vscode.MarkdownString(`[link](./file.js)`);
md.baseUri = vscode.Uri.file('/path/to/otherFile.js');
// Here 'link' in the rendered markdown resolves to '/path/to/file.js'

表示此Markdown字符串来自可信来源。只有可信的Markdown支持执行命令的链接,例如[Run it](command:myCommandId)

默认为 false(命令被禁用)。

表示此markdown字符串可以包含原始html标签。默认为false

supportHtml为false时,markdown渲染器将去除markdown文本中出现的任何原始html标签。这意味着你只能使用markdown语法进行渲染。

supportHtml为true时,markdown渲染器还将允许渲染一组安全的html标签和属性。有关所有支持的标签和属性的列表,请参见https://github.com/microsoft/vscode/blob/6d2920473c6f13759c978dd89104c4270a83422d/src/vs/base/browser/markdownRenderer.ts#L296

表示此markdown字符串可以包含ThemeIcons,例如$(zap)

Markdown 字符串。

方法

使用提供的语言将给定的字符串附加为代码块。

ParameterDescription
value: string

一段代码片段。

language?: string

一个可选的 语言标识符

ReturnsDescription
MarkdownString

将给定的字符串“原样”附加到此markdown字符串中。当supportThemeIconstrue时,value中的ThemeIcons将被图标化。

ParameterDescription
value: string

Markdown 字符串。

ReturnsDescription
MarkdownString

将给定的字符串追加并转义到此markdown字符串中。

ParameterDescription
value: string

纯文本。

ReturnsDescription
MarkdownString

MarkedString

MarkedString 可用于渲染人类可读的文本。它可以是 markdown 字符串,也可以是提供语言和代码片段的代码块。请注意,markdown 字符串将被清理 - 这意味着 html 将被转义。

备忘录

memento 代表一个存储工具。它可以存储和检索值。

方法

返回一个值。

ParameterDescription
key: string

一个字符串。

ReturnsDescription
T

存储的值或undefined

返回一个值。

ParameterDescription
key: string

一个字符串。

defaultValue: T

当给定键没有值(undefined)时应返回的值。

ReturnsDescription
T

存储的值或默认值。

返回存储的键。

ParameterDescription
ReturnsDescription
readonly string[]

存储的键。

存储一个值。该值必须是可JSON序列化的。

注意,使用 undefined 作为值会从底层存储中移除该键。

ParameterDescription
key: string

一个字符串。

value: any

一个值。不得包含循环引用。

ReturnsDescription
Thenable<void>

MessageItem

表示与信息、警告或错误消息一起显示的操作。

另请参阅

属性

模态对话框的提示,当用户取消对话框时(例如通过按下ESC键)应触发该项目。

注意:此选项对于非模态消息将被忽略。

简短的标题,如“重试”、“打开日志”等。

MessageOptions

配置消息行为的选项。

另请参阅

属性

人类可读的详细信息,显示得较为不显眼。注意,详细信息仅显示在模态消息中。

表示此消息应为模态。

NotebookCell

表示笔记本中的一个单元格,可以是代码单元格 或标记单元格。

NotebookCell 实例是不可变的,并且只要它们是笔记本的一部分,就会保持同步。

属性

此单元格的文本,表示为文本文档。

此单元格的最近执行摘要

此单元格在其包含的笔记本中的索引。当单元格在其笔记本中移动时,索引会更新。当单元格从其笔记本中移除时,索引为-1

此单元格的类型。

此单元格的元数据。可以是任何内容,但必须是可JSON序列化的。

包含此单元格的notebook

此单元格的输出。

NotebookCellData

NotebookCellData 是笔记本单元格的原始表示形式。它是 NotebookData 的一部分。

构造函数

创建新的单元格数据。最小的单元格数据指定其类型、其源值及其源的语言标识符。

ParameterDescription
kind: NotebookCellKind

种类。

value: string

源值。

languageId: string

源值的语言标识符。

ReturnsDescription
NotebookCellData

属性

此单元格数据的执行摘要。

此单元格数据的类型

此单元格数据的源值的语言标识符。任何来自 getLanguages 的值都是可能的。

此单元格数据的任意元数据。可以是任何内容,但必须是可JSON序列化的。

此单元格数据的输出。

此单元格数据的源值 - 源代码或格式化文本。

NotebookCellExecution

NotebookCellExecution 是 notebook controller 在执行时修改笔记本单元格的方式。

当创建一个单元格执行对象时,单元格进入[NotebookCellExecutionState.Pending Pending](#NotebookCellExecutionState.Pending Pending)状态。 当在执行任务上调用start(...)时,它进入[NotebookCellExecutionState.Executing Executing](#NotebookCellExecutionState.Executing Executing)状态。当 调用end(...)时,它进入[NotebookCellExecutionState.Idle Idle](#NotebookCellExecutionState.Idle Idle)状态。

属性

此执行所创建的单元格

设置和取消此单元格执行的顺序。

当从用户界面取消单元格执行时,将触发的取消令牌。

注意,当创建此执行的控制器使用中断处理程序时,取消令牌将不会被触发。

方法

追加到正在执行的单元格的输出,或追加到受此执行影响的其他单元格。

ParameterDescription
out: NotebookCellOutput | readonly NotebookCellOutput[]

附加到当前输出的输出。

cell?: NotebookCell

清除输出的单元格。默认为此执行的单元格

ReturnsDescription
Thenable<void>

一个在操作完成时解析的thenable。

将输出项附加到现有单元格输出。

ParameterDescription
items: NotebookCellOutputItem | readonly NotebookCellOutputItem[]

输出附加到现有输出的项目。

output: NotebookCellOutput

已存在的输出对象。

ReturnsDescription
Thenable<void>

一个在操作完成时解析的thenable。

清除正在执行的单元格或受此执行影响的其他单元格的输出。

ParameterDescription
cell?: NotebookCell

清除输出的单元格。默认为此执行的cell

ReturnsDescription
Thenable<void>

一个在操作完成时解析的thenable。

信号表示执行已结束。

ParameterDescription
success: boolean

如果为真,单元格状态栏上会显示一个绿色的勾号。 如果为假,会显示一个红色的X。 如果未定义,则不会显示勾号或X图标。

endTime?: number

执行完成的时间,以Unix纪元中的毫秒为单位。

ReturnsDescription
void

替换正在执行的单元格的输出或受此执行影响的其他单元格的输出。

ParameterDescription
out: NotebookCellOutput | readonly NotebookCellOutput[]

替换当前输出的输出。

cell?: NotebookCell

清除输出的单元格。默认为此执行的cell

ReturnsDescription
Thenable<void>

一个在操作完成时解析的thenable。

替换现有单元格输出的所有输出项。

ParameterDescription
items: NotebookCellOutputItem | readonly NotebookCellOutputItem[]

输出替换现有输出项的项目。

output: NotebookCellOutput

已存在的输出对象。

ReturnsDescription
Thenable<void>

一个在操作完成时解析的thenable。

信号表示执行已经开始。

ParameterDescription
startTime?: number

执行开始的时间,以Unix纪元中的毫秒表示。用于驱动显示单元格运行时间的时钟。如果未提供,则不会显示时钟。

ReturnsDescription
void

NotebookCellExecutionSummary

笔记本单元格执行的摘要。

属性

执行发生的顺序。

如果执行成功完成。

执行开始和结束的时间,以unix时间戳表示

ParameterDescription
endTime: number

执行结束时间。

startTime: number

执行开始时间。

NotebookCellKind

一个笔记本单元格类型。

枚举成员

标记单元是用于显示的格式化源代码。

代码单元是可以执行并生成输出的源代码。

NotebookCellOutput

Notebook 单元格输出表示执行单元格的结果。它是多个输出项的容器类型,其中包含的项表示相同的结果,但使用不同的 MIME 类型。

构造函数

创建新的笔记本输出。

ParameterDescription
items: NotebookCellOutputItem[]

笔记本输出项。

metadata?:

可选的元数据。

ReturnsDescription
NotebookCellOutput

属性

此输出的输出项。每个项必须代表相同的结果。注意,每个输出中重复的MIME类型是无效的,编辑器将只选择其中一个。

new vscode.NotebookCellOutput([
  vscode.NotebookCellOutputItem.text('Hello', 'text/plain'),
  vscode.NotebookCellOutputItem.text('<i>Hello</i>', 'text/html'),
  vscode.NotebookCellOutputItem.text('_Hello_', 'text/markdown'),
  vscode.NotebookCellOutputItem.text('Hey', 'text/plain') // INVALID: repeated type, editor will pick just one
]);

此单元格输出的任意元数据。可以是任何内容,但必须是可JSON序列化的。

NotebookCellOutputItem

一个笔记本输出的表示,由MIME类型和数据定义。

静态

工厂函数用于创建一个使用application/vnd.code.notebook.error MIME类型的NotebookCellOutputItem

ParameterDescription
value: Error

一个错误对象。

ReturnsDescription
NotebookCellOutputItem

一个新的输出项对象。

工厂函数,用于从JSON对象创建NotebookCellOutputItem

注意,此函数不期望接收“字符串化的JSON”,而是可以字符串化的对象。当传递的值无法被JSON字符串化时,此函数将抛出错误。

ParameterDescription
value: any

一个可JSON序列化的值。

mime?: string

可选的MIME类型,默认为application/json

ReturnsDescription
NotebookCellOutputItem

一个新的输出项对象。

工厂函数用于创建一个使用application/vnd.code.notebook.stderr MIME类型的NotebookCellOutputItem

ParameterDescription
value: string

一个字符串。

ReturnsDescription
NotebookCellOutputItem

一个新的输出项对象。

工厂函数用于创建一个使用application/vnd.code.notebook.stdout MIME类型的NotebookCellOutputItem

ParameterDescription
value: string

一个字符串。

ReturnsDescription
NotebookCellOutputItem

一个新的输出项对象。

工厂函数,用于从字符串创建NotebookCellOutputItem

注意,使用UTF-8编码器为字符串创建字节。

ParameterDescription
value: string

一个字符串。

mime?: string

可选的MIME类型,默认为text/plain

ReturnsDescription
NotebookCellOutputItem

一个新的输出项对象。

构造函数

创建一个新的笔记本单元格输出项。

ParameterDescription
data: Uint8Array

输出项的值。

mime: string

输出项的MIME类型。

ReturnsDescription
NotebookCellOutputItem

属性

此输出项的数据。必须始终是一个无符号8位整数的数组。

mime类型决定了如何解释data属性。

Notebooks 对某些 mime 类型有内置支持,扩展可以添加对新类型的支持并覆盖现有类型。

NotebookCellStatusBarAlignment

表示状态栏项目的对齐方式。

枚举成员

向左对齐。

向右对齐。

NotebookCellStatusBarItem

对单元格状态栏的贡献

构造函数

创建一个新的NotebookCellStatusBarItem。

ParameterDescription
text: string

要显示的项目文本。

alignment: NotebookCellStatusBarAlignment

项目是否向左或向右对齐。

ReturnsDescription
NotebookCellStatusBarItem

属性

当屏幕阅读器与此项目交互时使用的可访问性信息。

项目是否向左或向右对齐。

一个可选的Command或点击时运行的命令标识符。

命令必须是已知的

请注意,如果这是一个Command对象,编辑器只会使用commandarguments

项目的优先级。值越高的项目将显示在更靠左的位置。

要显示的项目文本。

当项目悬停时显示的工具提示。

NotebookCellStatusBarItemProvider

一个可以提供项目到状态栏的提供者,该状态栏出现在单元格编辑器下方。

事件

一个可选的事件,用于通知状态栏项已更改。将再次调用提供方法。

方法

当单元格滚动进入视图时,当它的内容、输出、语言或元数据发生变化时,以及当它改变执行状态时,提供者将被调用。

ParameterDescription
cell: NotebookCell

要返回项目的单元格。

token: CancellationToken

如果应取消此请求,则触发的令牌。

ReturnsDescription
ProviderResult<NotebookCellStatusBarItem | NotebookCellStatusBarItem[]>

一个或多个单元格状态栏项

NotebookController

笔记本控制器代表一个可以执行笔记本单元格的实体。这通常被称为内核。

可以有多个控制器,编辑器将让用户选择为某个笔记本使用哪个控制器。notebookType属性定义了控制器适用于哪种类型的笔记本,而updateNotebookAffinity函数允许控制器为特定的笔记本文档设置偏好。当选择了一个控制器时,其onDidChangeSelectedNotebooks事件将被触发。

当一个单元格正在运行时,编辑器将调用executeHandler,并且控制器需要创建并完成一个notebook cell execution。然而,控制器也可以自由地自行创建执行。

事件

每当为笔记本文档选择或取消选择控制器时触发的事件。

一个笔记本可以有多个控制器,在这种情况下,需要选择一个控制器。这是一个用户手势,当与一个控制器被建议的笔记本交互时,它要么明确地发生,要么隐含地发生。在可能的情况下,编辑器会建议一个最有可能被选择的控制器。

注意,控制器选择会被持久化(通过控制器的id),并且一旦控制器被重新创建或笔记本被打开,就会恢复。

属性

人类可读的描述,其显示较为不显眼。

人类可读的细节,使其显得不那么突出。

当在用户界面中选择运行手势时,例如运行单元格、全部运行、运行选择等,执行处理程序会被调用。执行处理程序负责创建和管理执行对象。

ParameterDescription
cells: NotebookCell[]
notebook: NotebookDocument
controller: NotebookController
ReturnsDescription
void | Thenable<void>

此笔记本控制器的标识符。

注意控制器是通过它们的标识符来记住的,扩展应该在会话之间使用稳定的标识符。

可选的中断处理程序。

默认情况下,单元格执行通过tokens取消。取消令牌要求控制器能够跟踪其执行,以便在稍后取消特定执行。并非所有场景都允许这样做,例如,REPL风格的控制器通常通过中断当前正在运行的内容来工作。对于这些情况,存在中断处理程序 - 可以将其视为终端中的SIGINTControl+C的等效物。

注意,支持取消令牌是首选,中断处理程序应仅在无法支持令牌时使用。

ParameterDescription
notebook: NotebookDocument
ReturnsDescription
void | Thenable<void>

此笔记本控制器的人类可读标签。

此控制器适用的笔记本类型。

此控制器支持的语言标识符数组。来自getLanguages的任何语言标识符都是可能的。当为假值时,支持所有语言。

示例:

// support JavaScript and TypeScript
myController.supportedLanguages = ['javascript', 'typescript'];

// support all languages
myController.supportedLanguages = undefined; // falsy
myController.supportedLanguages = []; // falsy

此控制器是否支持执行顺序,以便编辑器可以为它们渲染占位符。

方法

创建一个单元格执行任务。

注意,每个单元格一次只能执行一个操作,如果在另一个操作仍在进行时创建单元格执行,则会抛出错误。

这应该用于响应执行处理程序被调用时,或者当单元格执行已经开始时,例如当单元格已经在执行时,或者当单元格执行是从另一个来源触发时。

ParameterDescription
cell: NotebookCell

为其创建执行的笔记本单元格。

ReturnsDescription
NotebookCellExecution

一个笔记本单元格的执行。

释放并清理相关资源。

ParameterDescription
ReturnsDescription
void

控制器可以为特定的笔记本文档设置亲和性。这使得控制器在某些笔记本中更加突出。

ParameterDescription
notebook: NotebookDocument

设置了优先级的笔记本。

affinity: NotebookControllerAffinity

控制器亲和性

ReturnsDescription
void

NotebookControllerAffinity

笔记本控制器对笔记本文档的亲和性。

另请参阅 NotebookController.updateNotebookAffinity

枚举成员

默认亲和性。

控制器是笔记本的首选。

NotebookData

笔记本的原始表示。

扩展负责创建NotebookData,以便编辑器可以创建NotebookDocument

另请参阅 NotebookSerializer

构造函数

创建新的笔记本数据。

ParameterDescription
cells: NotebookCellData[]

一组单元格数据。

ReturnsDescription
NotebookData

属性

此笔记本数据的单元格数据。

笔记本数据的任意元数据。

NotebookDocument

表示一个笔记本,它本身是由代码或标记单元格组成的序列。笔记本文档是从笔记本数据创建的。

属性

笔记本中的单元格数量。

true 如果笔记本已关闭。关闭的笔记本不再同步,并且在再次打开相同资源时不会重新使用。

true 如果有未持久化的更改。

这个笔记本是否代表一个尚未保存的无标题文件。

此笔记本的任意元数据。可以是任何内容,但必须是可JSON序列化的。

笔记本的类型。

此笔记本的关联URI。

注意,大多数笔记本使用file方案,这意味着它们是磁盘上的文件。然而,并非所有笔记本都保存在磁盘上,因此在尝试访问磁盘上的底层文件或相关文件之前,必须检查scheme

另请参阅 FileSystemProvider

此笔记本的版本号(每次更改后,包括撤销/重做,它将严格递增)。

方法

返回指定索引处的单元格。索引将调整为笔记本的索引。

ParameterDescription
index: number

要检索的单元格的索引。

ReturnsDescription
NotebookCell

一个单元格

获取此笔记本的单元格。可以通过提供范围来检索子集。范围将根据笔记本进行调整。

ParameterDescription
range?: NotebookRange

一个笔记本范围。

ReturnsDescription
NotebookCell[]

范围包含的单元格或所有单元格。

保存文档。保存将由相应的序列化器处理。

ParameterDescription
ReturnsDescription
Thenable<boolean>

一个承诺,当文档保存后将解析为true。如果文件未被修改或保存失败,则返回false。

NotebookDocumentCellChange

描述了对笔记本单元格的更改。

另请参阅 NotebookDocumentChangeEvent

属性

受影响的单元格。

单元格的文档或未更改时的undefined

注意,你应该使用 onDidChangeTextDocument 事件来获取详细的更改信息,例如执行了哪些编辑操作。

单元格的新执行摘要或当它没有改变时为undefined

单元格的新元数据或当未更改时为undefined

单元格的新输出或当它们没有改变时为undefined

NotebookDocumentChangeEvent

描述事务性笔记本更改的事件。

属性

一个包含单元格更改的数组。

描述添加或删除的单元格的内容更改数组。

笔记本的新元数据或当它没有改变时为undefined

受影响的笔记本。

NotebookDocumentContentChange

描述了对笔记本文档的结构性更改,例如新增和删除的单元格。

另请参阅 NotebookDocumentChangeEvent

属性

已添加到文档中的单元格。

单元格被添加或移除的范围。

请注意,当此范围为空时,没有单元格被移除

已从文档中移除的单元格。

NotebookDocumentContentOptions

笔记本内容选项定义了笔记本的哪些部分会被持久化。注意

例如,笔记本序列化器可以选择不保存输出,在这种情况下,当输出发生变化时,编辑器不会将笔记本标记为dirty

属性

控制单元格元数据属性更改事件是否会触发笔记本文档内容更改事件,以及是否会在差异编辑器中使用,默认为false。如果内容提供者未在文件文档中持久化元数据属性,则应将其设置为true。

控制文档元数据属性更改事件是否会触发笔记本文档内容更改事件,以及是否会在差异编辑器中使用,默认为false。如果内容提供者未在文件文档中持久化元数据属性,则应将其设置为true。

控制输出更改事件是否会触发笔记本文档内容更改事件,以及是否会在差异编辑器中使用,默认为false。如果内容提供者未将输出持久化在文件文档中,则应将其设置为true。

NotebookDocumentShowOptions

表示在笔记本编辑器中显示笔记本文档的行为配置选项。

属性

一个可选的标志,当true时,将阻止notebook editor获取焦点。

一个可选标志,用于控制笔记本编辑器标签是否显示为预览。预览标签将被替换和重复使用,直到设置为保持 - 无论是显式设置还是通过编辑。默认行为取决于workbench.editor.enablePreview设置。

notebook编辑器中应用于文档的可选选择。

一个可选的视图列,其中应显示笔记本编辑器。 默认为活动列。不存在的列将根据需要创建,最多到ViewColumn.Nine。 使用ViewColumn.Beside在当前活动列的旁边打开编辑器。

NotebookDocumentWillSaveEvent

笔记本文档将要保存时触发的事件。

要在文档保存之前对其进行修改,请调用 waitUntil函数,并传入一个可解析为 工作区编辑的thenable。

属性

将要保存的notebook document

触发保存的原因。

一个取消令牌。

方法

允许暂停事件循环并应用工作区编辑。 对此函数的后续调用的编辑将按顺序应用。如果笔记本文档发生了并发修改,这些编辑将被忽略

注意: 此函数只能在事件分发期间调用,不能以异步方式调用:

workspace.onWillSaveNotebookDocument(event => {
  // async, will *throw* an error
  setTimeout(() => event.waitUntil(promise));

  // sync, OK
  event.waitUntil(promise);
});
ParameterDescription
thenable: Thenable<WorkspaceEdit>

一个可解析为工作区编辑的thenable。

ReturnsDescription
void

允许暂停事件循环,直到提供的 thenable 解析完成。

注意: 此函数只能在事件调度期间调用。

ParameterDescription
thenable: Thenable<any>

一个延迟保存的thenable。

ReturnsDescription
void

NotebookEdit

笔记本编辑表示应应用于笔记本内容的编辑。

静态

用于创建删除笔记本中单元格的编辑工具。

ParameterDescription
range: NotebookRange

要删除的单元格范围。

ReturnsDescription
NotebookEdit

用于创建替换笔记本中单元格的编辑工具。

ParameterDescription
index: number

插入单元格的索引。

newCells: NotebookCellData[]

新的笔记本单元格。

ReturnsDescription
NotebookEdit

用于创建替换笔记本中单元格的编辑工具。

ParameterDescription
range: NotebookRange

要替换的单元格范围

newCells: NotebookCellData[]

新的笔记本单元格。

ReturnsDescription
NotebookEdit

用于创建更新单元格元数据的编辑工具。

ParameterDescription
index: number

要更新的单元格的索引。

newCellMetadata:

单元格的新元数据。

ReturnsDescription
NotebookEdit

用于创建更新笔记本元数据的编辑的实用程序。

ParameterDescription
newNotebookMetadata:

笔记本的新元数据。

ReturnsDescription
NotebookEdit

构造函数

创建一个新的笔记本编辑。

ParameterDescription
range: NotebookRange

一个笔记本范围。

newCells: NotebookCellData[]

一组新的单元格数据。

ReturnsDescription
NotebookEdit

属性

单元格的可选新元数据。

正在插入新单元格。可能为空。

笔记本的可选新元数据。

正在编辑的单元格范围。可能为空。

NotebookEditor

表示附加到notebook的笔记本编辑器。 NotebookEditor的附加属性在提议的API中可用,该API将在稍后最终确定。

属性

与此笔记本编辑器关联的笔记本文档

此笔记本编辑器中的主要选择。

此笔记本编辑器中的所有选择。

主要选择(或焦点范围)是 selections[0]。当文档没有单元格时,主要选择为空 { start: 0, end: 0 };

此编辑器显示的列。

编辑器中当前可见的范围(垂直方向)。

方法

按照revealType指示滚动以显示给定范围。

ParameterDescription
range: NotebookRange

一个范围。

revealType?: NotebookEditorRevealType

用于显示range的滚动策略。

ReturnsDescription
void

NotebookEditorRevealType

表示一个附加到notebook的笔记本编辑器。

枚举成员

范围将尽可能少地滚动显示。

范围将始终在视口的中心显示。

如果范围在视口之外,它将在视口中心显示。 否则,它将尽可能少地滚动显示。

范围将始终显示在视口的顶部。

NotebookEditorSelectionChangeEvent

表示描述笔记本编辑器选择变化的事件。

属性

notebook editor 的选择已更改。

NotebookEditorVisibleRangesChangeEvent

表示描述笔记本编辑器的可见范围变化的事件。

属性

notebook editor 的可见范围已更改。

NotebookRange

笔记本范围表示两个单元格索引的有序对。 保证开始小于或等于结束。

构造函数

创建一个新的笔记本范围。如果start不在end之前或等于end,则值将被交换。

ParameterDescription
start: number

起始索引

end: number

结束索引。

ReturnsDescription
NotebookRange

属性

此范围的独占结束索引(从零开始)。

true 如果 startend 相等。

此范围的从零开始的起始索引。

方法

为这个范围推导一个新的范围。

ParameterDescription
change: {end: number, start: number}

描述此范围更改的对象。

ReturnsDescription
NotebookRange

反映给定更改的范围。如果更改没有改变任何内容,将返回this范围。

NotebookRendererMessaging

渲染器消息传递用于与单个渲染器进行通信。它从notebooks.createRendererMessaging返回。

事件

当从渲染器接收到消息时触发的事件。

方法

向一个或所有渲染器发送消息。

ParameterDescription
message: any

要发送的消息

editor?: NotebookEditor

目标编辑器以接收消息。如果未提供,消息将发送给所有渲染器。

ReturnsDescription
Thenable<boolean>

一个布尔值,指示消息是否成功传递到任何渲染器。

NotebookSerializer

笔记本序列化器使编辑器能够打开笔记本文件。

编辑器的核心仅了解笔记本数据结构,但不知道如何将该数据结构写入文件,也不知道如何从文件中读取该数据结构。笔记本序列化器通过将字节反序列化为笔记本数据来弥合这一差距,反之亦然。

方法

将笔记本文件的内容反序列化为笔记本数据结构。

ParameterDescription
content: Uint8Array

笔记本文件的内容。

token: CancellationToken

一个取消令牌。

ReturnsDescription
NotebookData | Thenable<NotebookData>

Notebook 数据或解析为此类的 thenable。

将笔记本数据序列化为文件内容。

ParameterDescription
data: NotebookData

一个笔记本数据结构。

token: CancellationToken

一个取消令牌。

ReturnsDescription
Uint8Array | Thenable<Uint8Array>

一个字节数组或一个解析为此类的可thenable对象。

OnEnterRule

描述按下回车键时要评估的规则。

属性

要执行的操作。

此规则仅在光标后的文本与此正则表达式匹配时执行。

此规则仅在光标前的文本与此正则表达式匹配时执行。

此规则仅在当前行上方的文本与此正则表达式匹配时执行。

OnTypeFormattingEditProvider

文档格式化提供者接口定义了扩展与格式化功能之间的契约。

方法

在输入字符后提供格式化编辑。

给定的位置和字符应该提示提供者 位置扩展到的范围,比如当输入}时 找到匹配的{

ParameterDescription
document: TextDocument

调用命令的文档。

position: Position

命令被调用的位置。

ch: string

已输入的字符。

options: FormattingOptions

控制格式化的选项。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<TextEdit[]>

一组文本编辑或一个解析为此的可thenable对象。可以通过返回undefinednull或空数组来表示没有结果。

OpenDialogOptions

配置文件打开对话框行为的选项。

  • 注意1:在Windows和Linux上,文件对话框不能同时是文件选择器和文件夹选择器,因此如果你在这些平台上将canSelectFilescanSelectFolders都设置为true,将会显示一个文件夹选择器。
  • 注意2:显式地将canSelectFilescanSelectFolders设置为false是无效的, 编辑器会默默地调整选项以选择文件。

属性

允许选择文件,默认为 true

允许选择文件夹,默认为 false

允许选择多个文件或文件夹。

对话框打开时显示的资源。

对话框使用的一组文件过滤器。每个条目都是一个人类可读的标签,例如“TypeScript”,以及一个扩展名数组,例如:

{
    'Images': ['png', 'jpg'],
    'TypeScript': ['ts', 'tsx']
}

打开按钮的可读字符串。

对话框标题。

此参数可能会被忽略,因为并非所有操作系统都会在打开对话框时显示标题(例如,macOS)。

OutputChannel

输出通道是只读文本信息的容器。

要获取OutputChannel的实例,请使用 createOutputChannel

属性

此输出通道的人类可读名称。

方法

将给定值附加到通道。

ParameterDescription
value: string

一个字符串,假值将不会被打印。

ReturnsDescription
void

将给定的值和换行符附加到通道。

ParameterDescription
value: string

一个字符串,假值将被打印。

ReturnsDescription
void

移除通道中的所有输出。

ParameterDescription
ReturnsDescription
void

释放并清理相关资源。

ParameterDescription
ReturnsDescription
void

从用户界面中隐藏此频道。

ParameterDescription
ReturnsDescription
void

用给定值替换来自通道的所有输出。

ParameterDescription
value: string

一个字符串,假值将不会被打印。

ReturnsDescription
void

在用户界面中显示此频道。

ParameterDescription
preserveFocus?: boolean

true 时,通道将不会获取焦点。

ReturnsDescription
void

在用户界面中显示此频道。

  • 已弃用 - 使用仅有一个参数的过载(show(preserveFocus?: boolean): void)。
ParameterDescription
column?: ViewColumn

此参数已弃用,将被忽略。

preserveFocus?: boolean

true 时,通道将不会获取焦点。

ReturnsDescription
void

OverviewRulerLane

表示在概览标尺中渲染装饰的不同位置。概览标尺支持三个通道。

枚举成员

概览标尺的左侧车道。

概览标尺的中央车道。

概览标尺的右侧车道。

概览标尺的所有车道。

参数信息

表示可调用签名的一个参数。一个参数可以有一个标签和一个文档注释。

构造函数

创建一个新的参数信息对象。

ParameterDescription
label: string | [number, number]

标签字符串或其包含的签名标签内的包含起始和排除结束偏移量。

documentation?: string | MarkdownString

一个文档字符串。

ReturnsDescription
ParameterInformation

属性

此签名的人类可读文档注释。将在用户界面中显示,但可以省略。

此签名的标签。

可以是一个字符串,也可以是其包含的签名标签内的包含起始和排除结束的偏移量。注意:字符串类型的标签必须是其包含的签名信息的标签的子字符串。

位置

表示行和字符的位置,例如光标的位置。

位置对象是不可变的。使用withtranslate方法从现有位置派生新位置。

构造函数

ParameterDescription
line: number

一个基于零的行值。

character: number

一个从零开始的字符值。

ReturnsDescription
Position

属性

从零开始的字符值。

从零开始的行值。

方法

将此与 other 进行比较。

ParameterDescription
other: Position

一个位置。

ReturnsDescription
number

如果此位置在给定位置之前,则返回小于零的数字;如果此位置在给定位置之后,则返回大于零的数字;如果此位置与给定位置相等,则返回零。

检查这个位置是否在 other 之后。

ParameterDescription
other: Position

一个位置。

ReturnsDescription
boolean

true 如果位置在更大的行上 或在同一行的更大字符上。

检查此位置是否在other之后或等于other

ParameterDescription
other: Position

一个位置。

ReturnsDescription
boolean

true 如果位置在更大的行上 或在同一行上但字符更大或相等。

检查此位置是否在 other 之前。

ParameterDescription
other: Position

一个位置。

ReturnsDescription
boolean

true 如果位置在较小的行上 或在同一行的较小字符上。

检查此位置是否在other之前或等于。

ParameterDescription
other: Position

一个位置。

ReturnsDescription
boolean

true 如果位置在较小的行上 或在相同行上但字符较小或相等。

检查这个位置是否等于 other

ParameterDescription
other: Position

一个位置。

ReturnsDescription
boolean

true 如果给定位置的行和字符与此位置的行和字符相等。

创建一个相对于此位置的新位置。

ParameterDescription
lineDelta?: number

线条值的增量值,默认为 0

characterDelta?: number

字符值的增量值,默认是 0

ReturnsDescription
Position

一个位置,其行和字符是当前行和字符与相应增量的总和。

相对于此位置派生一个新位置。

ParameterDescription
change: {characterDelta: number, lineDelta: number}

描述此位置的增量的对象。

ReturnsDescription
Position

反映给定增量的位置。如果更改没有改变任何内容,将返回this位置。

从此位置创建一个新的位置。

ParameterDescription
line?: number

应该用作行值的值,默认是现有值

character?: number

应该用作字符值的值,默认是现有值

ReturnsDescription
Position

一个位置,其中行和字符被给定的值替换。

从这个位置派生出一个新的位置。

ParameterDescription
change: {character: number, line: number}

描述此位置更改的对象。

ReturnsDescription
Position

反映给定变化的位置。如果变化没有改变任何内容,将返回this位置。

PreparedToolInvocation

属性

此属性的存在表示在运行工具之前应询问用户是否确认。对于任何具有副作用或可能潜在危险的工具,都应向用户请求确认。

工具运行时显示的自定义进度消息。

ProcessExecution

任务的执行作为一个外部进程进行,无需与shell交互。

构造函数

创建一个进程执行。

ParameterDescription
process: string

要启动的进程。

options?: ProcessExecutionOptions

启动进程的可选选项。

ReturnsDescription
ProcessExecution

创建一个进程执行。

ParameterDescription
process: string

启动的过程。

args: string[]

传递给进程的参数。

options?: ProcessExecutionOptions

启动进程的可选选项。

ReturnsDescription
ProcessExecution

属性

传递给进程的参数。默认为空数组。

进程执行时使用的进程选项。 默认为未定义。

要执行的进程。

ProcessExecutionOptions

进程执行的选项

属性

执行的程序或shell的当前工作目录。 如果省略,则使用工具的当前工作区根目录。

执行的程序或shell的附加环境。如果省略,则使用父进程的环境。如果提供,则与父进程的环境合并。

进度

定义了一种报告进度更新的通用方式。

方法

报告进度更新。

ParameterDescription
value: T

一个进度项,如消息和/或关于已完成工作量的报告

ReturnsDescription
void

ProgressLocation

编辑器中的一个位置,可以在此显示进度信息。进度的视觉表示取决于该位置。

枚举成员

显示源代码控制小视图的进度,作为图标的覆盖层和小视图内的进度条(当可见时)。既不支持取消,也不支持离散进度,也不支持描述操作的标签。

在编辑器的状态栏中显示进度。既不支持取消,也不支持离散进度。 支持通过进度标签中的$()语法渲染主题图标

显示进度作为通知,带有可选的取消按钮。支持显示无限和离散进度,但不支持渲染图标。

进度选项

描述进度应显示的位置和方式的值对象。

属性

控制是否显示取消按钮以允许用户取消长时间运行的操作。请注意,目前只有ProgressLocation.Notification支持显示取消按钮。

进度应显示的位置。

一个人类可读的字符串,用于描述操作。

ProviderResult

提供者结果表示提供者(如HoverProvider)可能返回的值。这包括实际的结果类型T,例如Hover,或者解析为该类型T的thenable。此外,可以直接或通过thenable返回nullundefined

下面的代码片段都是HoverProvider的有效实现:

let a: HoverProvider = {
  provideHover(doc, pos, token): ProviderResult<Hover> {
    return new Hover('Hello World');
  }
};

let b: HoverProvider = {
  provideHover(doc, pos, token): ProviderResult<Hover> {
    return new Promise(resolve => {
      resolve(new Hover('Hello World'));
    });
  }
};

let c: HoverProvider = {
  provideHover(doc, pos, token): ProviderResult<Hover> {
    return; // undefined
  }
};

伪终端

定义终端pty的接口,使扩展能够控制终端。

事件

一个事件,当触发时允许更改终端的名称。

在调用Pseudoterminal.open之前触发的事件将被忽略。

示例: 将终端名称更改为“我的新终端”。

const writeEmitter = new vscode.EventEmitter<string>();
const changeNameEmitter = new vscode.EventEmitter<string>();
const pty: vscode.Pseudoterminal = {
  onDidWrite: writeEmitter.event,
  onDidChangeName: changeNameEmitter.event,
  open: () => changeNameEmitter.fire('My new terminal'),
  close: () => {}
};
vscode.window.createTerminal({ name: 'My terminal', pty });

当触发时,该事件将发出信号,表示pty已关闭并处理终端。

在调用Pseudoterminal.open之前触发的事件将被忽略。

数字可以用来为终端提供一个退出代码。退出代码必须是正数,非零的退出代码表示失败,这会在常规终端中显示通知,并在使用CustomExecution API时允许依赖任务继续执行。

示例: 当按下 "y" 时退出终端,否则显示通知。

const writeEmitter = new vscode.EventEmitter<string>();
const closeEmitter = new vscode.EventEmitter<void>();
const pty: vscode.Pseudoterminal = {
  onDidWrite: writeEmitter.event,
  onDidClose: closeEmitter.event,
  open: () => writeEmitter.fire('Press y to exit successfully'),
  close: () => {},
  handleInput: data => {
    if (data !== 'y') {
      vscode.window.showInformationMessage('Something went wrong');
    }
    closeEmitter.fire();
  }
};
const terminal = vscode.window.createTerminal({ name: 'Exit example', pty });
terminal.show(true);

一个事件,当触发时允许覆盖终端的尺寸。请注意,当设置时,覆盖的尺寸只有在它们小于终端的实际尺寸时才会生效(即永远不会出现滚动条)。设置为undefined以使终端恢复到常规尺寸(适合面板的大小)。

在调用Pseudoterminal.open之前触发的事件将被忽略。

示例: 将终端的尺寸覆盖为20列和10行

const dimensionsEmitter = new vscode.EventEmitter<vscode.TerminalDimensions>();
const pty: vscode.Pseudoterminal = {
  onDidWrite: writeEmitter.event,
  onDidOverrideDimensions: dimensionsEmitter.event,
  open: () => {
    dimensionsEmitter.fire({
      columns: 20,
      rows: 10
    });
  },
  close: () => {}
};
vscode.window.createTerminal({ name: 'My terminal', pty });

一个事件,当触发时会将数据写入终端。与Terminal.sendText不同,后者将文本发送到底层的子伪设备(子设备),而此事件将文本写入父伪设备(终端本身)。

注意,写入 \n 只会将光标向下移动一行,你还需要写入 \r 来将光标移动到最左边的单元格。

在调用Pseudoterminal.open之前触发的事件将被忽略。

示例: 在终端中写入红色文本

const writeEmitter = new vscode.EventEmitter<string>();
const pty: vscode.Pseudoterminal = {
  onDidWrite: writeEmitter.event,
  open: () => writeEmitter.fire('\x1b[31mHello world\x1b[0m'),
  close: () => {}
};
vscode.window.createTerminal({ name: 'My terminal', pty });

示例: 将光标移动到第10行和第20列并写入一个星号

writeEmitter.fire('\x1b[10;20H*');

方法

实现处理当终端被用户操作关闭时的情况。

ParameterDescription
ReturnsDescription
void

实现以处理终端中的传入按键或当扩展调用 Terminal.sendText时。data包含按键/文本序列化为 其对应的VT序列表示。

ParameterDescription
data: string

传入的数据。

示例: 在终端中回显输入。回车符(\r)被转换为CRLF以换行并将光标移动到行首。

const writeEmitter = new vscode.EventEmitter<string>();
const pty: vscode.Pseudoterminal = {
  onDidWrite: writeEmitter.event,
  open: () => {},
  close: () => {},
  handleInput: data => writeEmitter.fire(data === '\r' ? '\r\n' : data)
};
vscode.window.createTerminal({ name: 'Local echo', pty });
ReturnsDescription
void

实现处理当pty打开并准备开始触发事件时。

ParameterDescription
initialDimensions: TerminalDimensions

终端的尺寸,如果在调用此函数之前终端面板尚未打开,则此值将为undefined。

ReturnsDescription
void

实现处理当终端面板中适合的行数和列数发生变化时的情况,例如当字体大小改变或面板调整大小时。终端的初始尺寸状态应被视为undefined,直到此事件被触发,因为终端的尺寸在用户界面中显示之前是未知的。

当维度被 onDidOverrideDimensions 覆盖时,setDimensions 将继续使用常规面板维度调用,允许扩展继续对维度变化做出反应。

ParameterDescription
dimensions: TerminalDimensions

新的维度。

ReturnsDescription
void

QuickDiffProvider

快速差异提供程序提供指向修改资源原始状态的uri。编辑器将使用此信息在文本中渲染临时差异。

方法

为任何给定的资源URI提供Uri到原始资源。

ParameterDescription
uri: Uri

在文本编辑器中打开的资源的URI。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<Uri>

一个可解析为匹配原始资源URI的thenable。

快速输入

一个轻量级的用户输入界面,最初是不可见的。通过其属性配置后,扩展可以通过调用QuickInput.show使其可见。

有几个原因可能导致此UI需要隐藏,并且扩展将通过QuickInput.onDidHide收到通知。 (例如:显式调用QuickInput.hide,用户按下Esc键,其他输入UI打开等。)

用户按下回车键或执行其他表示接受当前状态的手势并不会自动隐藏此UI组件。由扩展决定是否接受用户的输入,以及是否通过调用QuickInput.hide来隐藏UI。

当扩展不再需要这个输入UI时,它应该 QuickInput.dispose 它,以允许释放 与之相关的任何资源。

请参阅QuickPickInputBox以获取具体的用户界面。

事件

当此输入UI隐藏时发出的事件信号。

有几个原因可能导致此UI需要隐藏,并且扩展将通过QuickInput.onDidHide收到通知。 (例如:显式调用QuickInput.hide,用户按下Esc键,其他输入UI打开等。)

属性

如果用户界面应显示进度指示器。默认为 false。

将此更改为true,例如,在加载更多数据或验证用户输入时。

如果用户界面应允许用户输入。默认为 true。

将其更改为false,例如,在验证用户输入或加载用户输入下一步的数据时。

如果UI在失去焦点时仍应保持打开状态。默认为false。 此设置在iPad上被忽略,并且始终为false。

一个可选的当前步骤计数。

一个可选的标题。

一个可选的步骤总数。

方法

处理此输入UI及其相关资源。如果它仍然可见,首先会隐藏它。在此调用之后,输入UI将不再可用,不应再访问其任何额外的方法或属性。相反,应创建一个新的输入UI。

ParameterDescription
ReturnsDescription
void

隐藏此输入界面。这也会触发一个QuickInput.onDidHide事件。

ParameterDescription
ReturnsDescription
void

使输入UI在其当前配置中可见。任何其他输入UI将首先触发一个QuickInput.onDidHide事件。

ParameterDescription
ReturnsDescription
void

QuickInputButton

用于QuickPickInputBox中的操作按钮。

属性

按钮的图标。

一个可选的工具提示。

QuickInputButtons

预定义的按钮用于QuickPickInputBox

静态

QuickPickInputBox 的返回按钮。

当需要导航“返回”按钮时,应使用此按钮以确保一致性。它带有预定义的图标、工具提示和位置。

QuickPick

一个具体的QuickInput,允许用户从类型为T的项目列表中选择一个项目。可以通过过滤文本字段对项目进行过滤,并且有一个选项canSelectMany允许选择多个项目。

请注意,在许多情况下,使用更方便的window.showQuickPick更为简单。当window.showQuickPick无法提供所需的灵活性时,应使用window.createQuickPick

事件

当用户表示接受所选项目时发出的事件信号。

[]>

当活动项发生变化时发出的事件信号。

[]>

当所选项目发生变化时发出的事件信号。

当过滤器文本的值发生变化时发出的事件信号。

当此输入UI隐藏时发出的事件信号。

有几个原因可能导致此UI需要隐藏,并且扩展将通过QuickInput.onDidHide收到通知。 (例如:显式调用QuickInput.hide,用户按下Esc键,其他输入UI打开等。)

当顶级按钮(存储在buttons中的按钮)被触发时发出的事件。 此事件不会为QuickPickItem上的按钮触发。

当特定QuickPickItem中的按钮被触发时发出的事件。 此事件不会触发标题栏中的按钮。

属性

活动项目。扩展程序可以读取和更新此内容。

如果用户界面应显示进度指示器。默认为 false。

将此更改为true,例如,在加载更多数据或验证用户输入时。

用户界面中的操作按钮。

如果可以选择多个项目。默认为 false。

如果用户界面应允许用户输入。默认为 true。

将其更改为false,例如,在验证用户输入或加载用户输入下一步的数据时。

如果UI在失去焦点时仍应保持打开状态。默认为false。 此设置在iPad上被忽略,并且始终为false。

可供选择的项目。扩展程序可以读取和更新此内容。

一个可选的标志,用于在快速选择项更新时保持快速选择的滚动位置。默认为 false。

如果过滤器文本也应与项目的描述匹配。默认为 false。

如果过滤文本也应与项目的详细信息匹配。默认为 false。

当未输入过滤器时,在过滤器文本框中显示的可选占位符。

选中的项目。扩展程序可以读取和更新这些项目。

一个可选的当前步骤计数。

一个可选的标题。

一个可选的步骤总数。

过滤器文本的当前值。

方法

处理此输入UI及其相关资源。如果它仍然可见,首先会隐藏它。在此调用之后,输入UI将不再可用,不应再访问其任何额外的方法或属性。相反,应创建一个新的输入UI。

ParameterDescription
ReturnsDescription
void

隐藏此输入界面。这也会触发一个QuickInput.onDidHide事件。

ParameterDescription
ReturnsDescription
void

使输入UI在其当前配置中可见。任何其他输入UI将首先触发一个QuickInput.onDidHide事件。

ParameterDescription
ReturnsDescription
void

QuickPickItem

表示可以从项目列表中选择的项目。

属性

始终显示此项。

注意:当kind设置为QuickPickItemKind.Separator时,此属性将被忽略

将在此特定项目上呈现的可选按钮。这些按钮在点击时将触发QuickPickItemButtonEvent。按钮仅在使用由createQuickPick() API创建的快速选择时呈现。在使用showQuickPick() API时,按钮不会呈现。

注意:当kind设置为QuickPickItemKind.Separator时,此属性将被忽略

一个人类可读的字符串,在同一行中以较不突出的方式呈现。支持通过$()语法渲染主题图标

注意:当kind设置为QuickPickItemKind.Separator时,此属性将被忽略

一个人类可读的字符串,以较不突出的方式在单独的一行中呈现。支持通过$()语法渲染主题图标

注意:当kind设置为QuickPickItemKind.Separator时,此属性将被忽略

QuickPickItem 的图标路径或 ThemeIcon

QuickPickItem 的类型将决定此项目在快速选择中的呈现方式。当未指定时,默认值为 QuickPickItemKind.Default

一个人类可读的字符串,以突出方式呈现。支持通过$()语法渲染主题图标

可选标志,指示此项目是否最初被选中。这仅在使用的showQuickPick() API时有效。要在使用createQuickPick() API时实现相同的效果,只需将QuickPick.selectedItems设置为您最初希望选中的项目。 (注意: 这仅在选择器允许多选时有效。)

另请参阅 QuickPickOptions.canPickMany

注意:当kind设置为QuickPickItemKind.Separator时,此属性将被忽略

QuickPickItemButtonEvent

当特定QuickPickItem中的按钮被触发时发出的事件。 此事件不会触发标题栏中的按钮。

属性

被点击的按钮。

按钮所属的项目。

QuickPickItemKind

这种快速选择项的类型。

枚举成员

QuickPickItem的类型为Separator时,该项目仅是一个视觉分隔符,不代表实际项目。 唯一适用的属性是labelQuickPickItem上的所有其他属性将被忽略且无效。

默认的QuickPickItem.kind是一个可以在快速选择中选择的项目。

QuickPickOptions

配置快速选择UI行为的选项。

事件

每当选择一个项目时调用的可选函数。

ParameterDescription
item: string | QuickPickItem
ReturnsDescription
any

属性

一个可选的标志,使选择器接受多个选择,如果为真,结果是一个选择的数组。

设置为true以在焦点移动到编辑器的其他部分或另一个窗口时保持选择器打开。 此设置在iPad上被忽略,并且始终为false。

过滤选择时包含描述的可选标志。

一个可选的标志,用于在筛选选择时包含详细信息。

一个可选的字符串,显示在输入框中作为占位符,以指导用户选择什么。

一个可选的字符串,表示快速选择的标题。

范围

一个范围表示两个位置的有序对。 保证 start.isBeforeOrEqual(end)

Range对象是不可变的。使用withintersectionunion方法从现有范围派生新范围。

构造函数

从两个位置创建一个新的范围。如果start不在end之前或等于end,则值将被交换。

ParameterDescription
start: Position

一个位置。

end: Position

一个位置。

ReturnsDescription
Range

从数字坐标创建一个新的范围。它是使用 new Range(new Position(startLine, startCharacter), new Position(endLine, endCharacter)) 的简短等效方式。

ParameterDescription
startLine: number

一个基于零的行值。

startCharacter: number

一个从零开始的字符值。

endLine: number

一个基于零的行值。

endCharacter: number

一个从零开始的字符值。

ReturnsDescription
Range

属性

结束位置。它在start之后或等于start。

true 如果 startend 相等。

true 如果 start.lineend.line 相等。

起始位置。它在或等于end之前。

方法

检查一个位置或范围是否包含在此范围内。

ParameterDescription
positionOrRange: Range | Position

一个位置或一个范围。

ReturnsDescription
boolean

true 如果位置或范围在此范围内或等于此范围。

将此范围与range相交,并返回一个新的范围,如果范围没有重叠,则返回undefined

ParameterDescription
range: Range

一个范围。

ReturnsDescription
Range

一个范围,包含较大的起始位置和较小的结束位置。当没有重叠时,将返回undefined。

检查other是否等于此范围。

ParameterDescription
other: Range

一个范围。

ReturnsDescription
boolean

true 当开始和结束与这个范围的开始和结束相等时。

计算此范围与other的并集。

ParameterDescription
other: Range

一个范围。

ReturnsDescription
Range

一个较小的起始位置和较大的结束位置的范围。

从这个范围派生出一个新的范围。

ParameterDescription
start?: Position

应该用作起始的位置。默认值是当前起始

end?: Position

应该用作结束的位置。默认值是当前结束

ReturnsDescription
Range

从这个范围派生的一个范围,具有给定的起始和结束位置。 如果起始和结束位置相同,则返回this范围。

从这个范围派生出一个新的范围。

ParameterDescription
change: {end: Position, start: Position}

描述此范围更改的对象。

ReturnsDescription
Range

反映给定更改的范围。如果更改没有改变任何内容,将返回this范围。

ReferenceContext

包含请求引用时的附加信息的值对象。

属性

包含当前符号的声明。

ReferenceProvider

参考提供者接口定义了扩展与查找引用功能之间的契约。

方法

为给定的位置和文档提供一组项目范围的引用。

ParameterDescription
document: TextDocument

调用命令的文档。

position: Position

命令被调用的位置。

context: ReferenceContext

关于引用请求的附加信息。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<Location[]>

一组位置或一个解析为此的可thenable对象。可以通过返回undefinednull或空数组来表示没有结果。

RelativePattern

相对模式是一种帮助构建相对于基本文件路径匹配的全局模式的工具。基本路径可以是字符串或URI形式的绝对文件路径,也可以是工作区文件夹,这是创建相对模式的首选方式。

构造函数

创建一个新的相对模式对象,包含一个基础文件路径和要匹配的模式。此模式将相对于基础路径的文件路径进行匹配。

示例:

const folder = vscode.workspace.workspaceFolders?.[0];
if (folder) {
  // Match any TypeScript file in the root of this workspace folder
  const pattern1 = new vscode.RelativePattern(folder, '*.ts');

  // Match any TypeScript file in `someFolder` inside this workspace folder
  const pattern2 = new vscode.RelativePattern(folder, 'someFolder/*.ts');
}
ParameterDescription
base: string | Uri | WorkspaceFolder

此模式将相对匹配的基础。如果模式应在工作空间内匹配,则建议传入工作空间文件夹。否则,如果模式用于工作空间外的文件路径,则应仅使用uri或字符串。

pattern: string

一个文件通配符模式,如 *.{ts,js},将与相对于基路径的路径匹配。

ReturnsDescription
RelativePattern

属性

一个基础文件路径,此模式将相对匹配。

这与RelativePattern.baseUrifsPath值匹配。

注意:更新此值将更新RelativePattern.baseUri为一个使用file方案的URI。

一个基础文件路径,此模式将相对匹配该路径。文件路径必须是绝对的,不应有任何尾随路径分隔符,并且不应包含任何相对段(...)。

一个文件通配符模式,如 *.{ts,js},将匹配相对于基础路径的文件路径。

示例:给定一个基础路径 /home/work/folder 和一个文件路径 /home/work/folder/index.js, 文件通配符模式将匹配 index.js

RenameProvider

重命名提供者接口定义了扩展与重命名功能之间的契约。

方法

在运行重命名之前,用于解析和验证位置的可选函数。结果可以是一个范围或一个范围和一个占位符文本。占位符文本应该是正在重命名的符号的标识符 - 当省略时,使用返回范围内的文本。

注意:当提供的位置不允许重命名时,此函数应抛出错误或返回一个被拒绝的 thenable。

ParameterDescription
document: TextDocument

将在其中调用重命名的文档。

position: Position

重命名将被调用的位置。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<Range | {placeholder: string, range: Range}>

要重命名的标识符的范围或范围及占位符文本。可以通过返回undefinednull来表示没有结果。

提供一个编辑,描述必须对一个或多个资源进行的更改,以将符号重命名为不同的名称。

ParameterDescription
document: TextDocument

调用命令的文档。

position: Position

命令被调用的位置。

newName: string

符号的新名称。如果给定的名称无效,提供者必须返回一个被拒绝的承诺。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<WorkspaceEdit>

工作区编辑或解析为此类的可thenable对象。可以通过返回undefinednull来表示没有结果。

运行选项

任务的运行选项。

属性

控制任务变量在重新运行时是否重新评估。

SaveDialogOptions

配置文件保存对话框行为的选项。

属性

对话框打开时显示的资源。

对话框使用的一组文件过滤器。每个条目都是一个人类可读的标签,例如“TypeScript”,以及一个扩展名数组,例如:

{
    'Images': ['png', 'jpg'],
    'TypeScript': ['ts', 'tsx']
}

保存按钮的可读字符串。

对话框标题。

此参数可能会被忽略,因为并非所有操作系统都会在保存对话框上显示标题(例如,macOS)。

SecretStorage

表示用于存储秘密(或任何敏感信息)的存储工具,这些信息将被加密存储。秘密存储的实现将因平台而异,并且这些秘密不会在机器之间同步。

事件

当存储或删除秘密时触发。

方法

从存储中移除一个秘密。

ParameterDescription
key: string

密钥存储的秘密。

ReturnsDescription
Thenable<void>

检索使用密钥存储的密码。如果没有与该密钥匹配的密码,则返回undefined。

ParameterDescription
key: string

密钥存储的秘密。

ReturnsDescription
Thenable<string>

存储的值或undefined

在给定的键下存储一个秘密。

ParameterDescription
key: string

存储密钥的键。

value: string

秘密。

ReturnsDescription
Thenable<void>

SecretStorageChangeEvent

当添加或删除密钥时触发的事件数据。

属性

已更改的密钥。

SelectedCompletionInfo

描述当前选中的完成项。

属性

如果接受此完成项,将被替换的范围。

如果接受此完成项,范围将被替换的文本。

选择

表示编辑器中的文本选择。

构造函数

从两个位置创建一个选择。

ParameterDescription
anchor: Position

一个位置。

active: Position

一个位置。

ReturnsDescription
Selection

从四个坐标创建一个选择。

ParameterDescription
anchorLine: number

一个基于零的行值。

anchorCharacter: number

一个从零开始的字符值。

activeLine: number

一个基于零的行值。

activeCharacter: number

一个从零开始的字符值。

ReturnsDescription
Selection

属性

光标的位置。 这个位置可能在anchor之前或之后。

选择开始的位置。 这个位置可能在active之前或之后。

结束位置。它在start之后或等于start。

true 如果 startend 相等。

如果选择的锚点结束位置,则选择是反向的。

true 如果 start.lineend.line 相等。

起始位置。它在或等于end之前。

方法

检查一个位置或范围是否包含在此范围内。

ParameterDescription
positionOrRange: Range | Position

一个位置或一个范围。

ReturnsDescription
boolean

true 如果位置或范围在此范围内或等于此范围。

将此范围与range相交,并返回一个新的范围,如果范围没有重叠,则返回undefined

ParameterDescription
range: Range

一个范围。

ReturnsDescription
Range

一个范围,包含较大的起始位置和较小的结束位置。当没有重叠时,将返回undefined。

检查other是否等于此范围。

ParameterDescription
other: Range

一个范围。

ReturnsDescription
boolean

true 当开始和结束与这个范围的开始和结束相等时。

计算此范围与other的并集。

ParameterDescription
other: Range

一个范围。

ReturnsDescription
Range

一个较小的起始位置和较大的结束位置的范围。

从这个范围派生出一个新的范围。

ParameterDescription
start?: Position

应该用作起始的位置。默认值是当前起始

end?: Position

应该用作结束的位置。默认值是当前结束

ReturnsDescription
Range

从这个范围派生的一个范围,具有给定的起始和结束位置。 如果起始和结束位置相同,则返回this范围。

从这个范围派生出一个新的范围。

ParameterDescription
change: {end: Position, start: Position}

描述此范围更改的对象。

ReturnsDescription
Range

反映给定更改的范围。如果更改没有改变任何内容,将返回this范围。

SelectionRange

选择范围表示选择层次结构的一部分。一个选择范围可能有一个包含它的父选择范围。

构造函数

创建一个新的选择范围。

ParameterDescription
range: Range

选择范围的范围。

parent?: SelectionRange

选择范围的父级。

ReturnsDescription
SelectionRange

属性

包含此范围的父选择范围。

此选择范围的Range

SelectionRangeProvider

选择范围提供者接口定义了扩展与“扩展和缩小选择”功能之间的契约。

方法

为给定位置提供选择范围。

选择范围应针对每个位置单独且独立地计算。编辑器将合并和去重范围,但提供者必须返回选择范围的层次结构,以便范围由其父级包含

ParameterDescription
document: TextDocument

调用命令的文档。

positions: readonly Position[]

命令被调用的位置。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<SelectionRange[]>

选择范围或一个可解析为此的thenable。可以通过返回undefinednull来表示没有结果。

语义标记

表示语义标记,无论是在一个范围内还是在整个文档中。

另请参阅

构造函数

创建新的语义标记。

ParameterDescription
data: Uint32Array

令牌数据。

resultId?: string

结果标识符。

ReturnsDescription
SemanticTokens

属性

实际的令牌数据。

另请参阅 provideDocumentSemanticTokens 以了解格式的解释。

令牌的结果ID。

这是将传递给DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits(如果已实现)的ID。

语义标记构建器

语义标记构建器可以帮助创建一个包含增量编码语义标记的SemanticTokens实例。

构造函数

创建一个语义标记构建器。

ParameterDescription
legend?: SemanticTokensLegend

语义标记图例。

ReturnsDescription
SemanticTokensBuilder

方法

完成并创建一个SemanticTokens实例。

ParameterDescription
resultId?: string
ReturnsDescription
SemanticTokens

添加另一个令牌。

ParameterDescription
line: number

令牌起始行号(绝对值)。

char: number

令牌起始字符(绝对值)。

length: number

令牌的字符长度。

tokenType: number

编码的令牌类型。

tokenModifiers?: number

编码的令牌修饰符。

ReturnsDescription
void

添加另一个标记。仅在提供图例时使用。

ParameterDescription
range: Range

令牌的范围。必须是单行的。

tokenType: string

令牌类型。

tokenModifiers?: readonly string[]

令牌修饰符。

ReturnsDescription
void

语义标记编辑

表示对语义标记的编辑。

另请参阅 provideDocumentSemanticTokensEdits 以了解格式的解释。

构造函数

创建一个语义标记编辑。

ParameterDescription
start: number

起始偏移量

deleteCount: number

要移除的元素数量。

data?: Uint32Array

要插入的元素

ReturnsDescription
SemanticTokensEdit

属性

要插入的元素。

要移除的元素数量。

编辑的起始偏移量。

语义标记编辑

表示对语义标记的编辑。

另请参阅 provideDocumentSemanticTokensEdits 以了解格式的解释。

构造函数

创建新的语义标记编辑。

ParameterDescription
edits: SemanticTokensEdit[]

一组语义标记编辑

resultId?: string

结果标识符。

ReturnsDescription
SemanticTokensEdits

属性

对tokens数据的编辑。 所有编辑均指初始数据状态。

令牌的结果ID。

这是将传递给DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits(如果已实现)的ID。

语义标记图例

语义标记图例包含了解码语义标记整数编码表示所需的信息。

构造函数

创建一个语义标记图例。

ParameterDescription
tokenTypes: string[]

一组令牌类型。

tokenModifiers?: string[]

一个包含标记修饰符的数组。

ReturnsDescription
SemanticTokensLegend

属性

可能的令牌修饰符。

可能的令牌类型。

ShellExecution

表示在 shell 内发生的任务执行。

构造函数

创建一个带有完整命令行的shell执行。

ParameterDescription
commandLine: string

要执行的命令行。

options?: ShellExecutionOptions

启动 shell 的可选选项。

ReturnsDescription
ShellExecution

使用命令和参数创建一个shell执行。对于实际执行,编辑器将从命令和参数构造一个命令行。这需要解释,特别是在引用方面。如果需要完全控制命令行,请使用创建带有完整命令行的ShellExecution的构造函数。

ParameterDescription
command: string | ShellQuotedString

要执行的命令。

args: Array<string | ShellQuotedString>

命令参数。

options?: ShellExecutionOptions

启动 shell 的可选选项。

ReturnsDescription
ShellExecution

属性

shell 参数。如果使用完整命令行创建,则为 undefined

shell命令。如果使用完整的命令行创建,则为undefined

shell命令行。如果使用命令和参数创建,则为undefined

在shell中执行命令行时使用的shell选项。默认为未定义。

ShellExecutionOptions

用于执行shell的选项

属性

执行shell的当前工作目录。 如果省略,则使用工具的当前工作空间根目录。

执行shell的附加环境。如果省略,则使用父进程的环境。如果提供,则与父进程的环境合并。

Shell 可执行文件。

传递给用于运行任务的shell可执行文件的参数。大多数shell需要特殊的参数来执行命令。例如,bash需要-c参数来执行命令,PowerShell需要-Command,而cmd则需要/d/c两个参数。

此shell支持的shell引号。

ShellQuotedString

一个字符串,将根据使用的 shell 进行引用。

属性

使用的引用样式。

实际的字符串值。

ShellQuoting

定义如果参数包含空格或不支持的字符时应如何引用。

枚举成员

应该使用字符转义。例如,在bash中使用\,在PowerShell中使用`。

应使用强字符串引用。例如,Windows cmd 使用 ",而 bash 和 PowerShell 使用 '。强引用将参数视为字面字符串。在 PowerShell 中,echo 'The value is $(2 * 3)' 将打印 The value is $(2 * 3)

应使用弱字符串引用。例如,这在Windows cmd、bash和PowerShell中使用"进行引用。弱引用在引用字符串内仍然执行某种评估。在PowerShell中,echo "The value is $(2 * 3)"将打印The value is 6

ShellQuotingOptions

shell 引用选项。

属性

用于进行字符转义的字符。如果提供了一个字符串,则仅转义空格。如果提供了一个{ escapeChar, charsToEscape }字面量,则使用escapeChar转义charsToEscape中的所有字符。

用于强引用的字符。字符串的长度必须为1。

用于弱引用的字符。字符串的长度必须为1。

SignatureHelp

签名帮助表示可调用内容的签名。可以有多个签名,但只有一个活动签名和一个活动参数。

构造函数

ParameterDescription
ReturnsDescription
SignatureHelp

属性

活动签名的活动参数。

活动签名。

一个或多个签名。

SignatureHelpContext

关于触发SignatureHelpProvider的上下文的其他信息。

属性

当前活动的 SignatureHelp

activeSignatureHelpactiveSignature 字段会根据用户通过可用签名进行箭头操作而更新。

true 如果签名帮助在触发时已经显示。

当签名帮助已经激活时,重新触发可能会发生,并且可能由诸如输入触发字符、光标移动或文档内容更改等操作引起。

触发签名帮助的字符。

当签名帮助不是通过键入触发的,例如手动调用签名帮助或移动光标时,这是undefined

导致签名帮助被触发的操作。

SignatureHelpProvider

签名帮助提供者接口定义了扩展与参数提示功能之间的契约。

方法

为给定位置和文档的签名提供帮助。

ParameterDescription
document: TextDocument

调用命令的文档。

position: Position

命令被调用的位置。

token: CancellationToken

一个取消令牌。

context: SignatureHelpContext

关于如何触发签名帮助的信息。

ReturnsDescription
ProviderResult<SignatureHelp>

签名帮助或一个可以解析为此类的thenable。可以通过返回undefinednull来表示没有结果。

SignatureHelpProviderMetadata

关于已注册的SignatureHelpProvider的元数据。

属性

重新触发签名帮助的字符列表。

这些触发字符仅在签名帮助已经显示时才会激活。所有触发字符也被视为重新触发字符。

触发签名帮助的字符列表。

SignatureHelpTriggerKind

如何触发SignatureHelpProvider

枚举成员

签名帮助是由用户或命令手动调用的。

签名帮助是由触发字符触发的。

签名帮助是由光标移动或文档内容更改触发的。

SignatureInformation

表示可调用内容的签名。一个签名可以有一个标签,比如函数名、文档注释和一组参数。

构造函数

创建一个新的签名信息对象。

ParameterDescription
label: string

标签字符串。

documentation?: string | MarkdownString

一个文档字符串。

ReturnsDescription
SignatureInformation

属性

活动参数的索引。

如果提供,这将用于代替SignatureHelp.activeParameter

此签名的人类可读文档注释。将在用户界面中显示,但可以省略。

此签名的标签。将在用户界面中显示。

此签名的参数。

SnippetString

片段字符串是一个模板,允许在插入文本时插入文本并控制编辑器光标。

一个代码片段可以使用$1$2${3:foo}定义制表位和占位符。$0定义了最终的制表位,默认情况下它位于代码片段的末尾。变量使用$name${name:default value}定义。也可以查看完整的代码片段语法

构造函数

创建一个新的代码片段字符串。

ParameterDescription
value?: string

一段代码字符串。

ReturnsDescription
SnippetString

属性

片段字符串。

方法

构建器函数,将一个选择(${1|a,b,c|})附加到此片段字符串的中。

ParameterDescription
values: readonly string[]

选项的值 - 字符串数组

number?: number

此制表位的编号,默认为从1开始的自动递增值。

ReturnsDescription
SnippetString

这段代码片段字符串。

构建器函数,将一个占位符(${1:value})附加到此片段字符串的中。

ParameterDescription
value: string | (snippet: SnippetString) => any

此占位符的值 - 可以是一个字符串或一个函数,用于创建嵌套代码片段。

number?: number

此制表位的编号,默认为从1开始的自动递增值。

ReturnsDescription
SnippetString

这段代码片段字符串。

构建器函数,用于将制表位($1, $2 等)附加到此代码片段字符串的中。

ParameterDescription
number?: number

此制表位的编号,默认为从1开始的自动递增值。

ReturnsDescription
SnippetString

这段代码片段字符串。

构建器函数,将给定的字符串附加到此代码片段的中。

ParameterDescription
string: string

要附加的值“按原样”。字符串将被转义。

ReturnsDescription
SnippetString

这段代码片段字符串。

构建器函数,用于将变量(${VAR})附加到此片段字符串的中。

ParameterDescription
name: string

变量的名称 - 不包括 $

defaultValue: string | (snippet: SnippetString) => any

当变量名无法解析时使用的默认值 - 可以是一个字符串或一个用于创建嵌套代码段的函数。

ReturnsDescription
SnippetString

这段代码片段字符串。

SnippetTextEdit

片段编辑表示由编辑器执行的交互式编辑。

注意,片段编辑始终可以作为普通的文本编辑执行。 当没有匹配的编辑器打开时,或者当工作区编辑包含多个文件的片段编辑时,就会发生这种情况。在这种情况下,只有那些与活动编辑器匹配的编辑将作为片段编辑执行,而其他编辑将作为普通文本编辑执行。

静态

用于创建插入片段编辑的实用工具。

ParameterDescription
position: Position

一个位置,将变成一个空范围。

snippet: SnippetString

一段代码字符串。

ReturnsDescription
SnippetTextEdit

一个新的代码片段编辑对象。

用于创建替换片段编辑的实用工具。

ParameterDescription
range: Range

一个范围。

snippet: SnippetString

一段代码字符串。

ReturnsDescription
SnippetTextEdit

一个新的代码片段编辑对象。

构造函数

创建一个新的代码片段编辑。

ParameterDescription
range: Range

一个范围。

snippet: SnippetString

一段代码字符串。

ReturnsDescription
SnippetTextEdit

属性

此编辑适用的范围。

此编辑将执行的代码片段

SourceBreakpoint

由源位置指定的断点。

构造函数

为源位置创建一个新的断点。

ParameterDescription
location: Location
enabled?: boolean
condition?: string
hitCondition?: string
logMessage?: string
ReturnsDescription
SourceBreakpoint

属性

用于条件断点的可选表达式。

断点是否启用。

一个可选的表达式,用于控制忽略多少次断点的命中。

断点的唯一ID。

此断点的源和行位置。

当达到此断点时记录的可选消息。嵌入在{}中的表达式由调试适配器进行插值。

SourceControl

一个源代码控制系统能够向编辑器提供资源状态,并以几种与源代码控制相关的方式与编辑器进行交互。

属性

可选的接受输入命令。

当用户接受源代码控制输入中的值时,将调用此命令。

可选的提交模板字符串。

当适当时,Source Control视图将使用此值填充Source Control输入。

此源代码控制的资源状态的UI可见计数。

如果未定义,此源控制将

  • 将其UI可见计数显示为零,并且
  • 将其资源状态的计数贡献给所有源代码控制的UI可见聚合计数

此源代码控制的ID。

此源代码控制的输入框

此源代码控制的可读标签。

一个可选的快速差异提供者

(可选的)此源代码控制的根目录的Uri。

可选的状态栏命令。

这些命令将显示在编辑器的状态栏中。

方法

创建一个新的资源组

ParameterDescription
id: string
label: string
ReturnsDescription
SourceControlResourceGroup

处理此源代码控制。

ParameterDescription
ReturnsDescription
void

SourceControlInputBox

表示源代码控制视图中的输入框。

属性

控制输入框是否启用(默认为true)。

在输入框中显示的占位符字符串,用于引导用户。

输入框内容的设置器和获取器。

控制输入框是否可见(默认为 true)。

SourceControlResourceDecorations

用于源代码控制资源状态的装饰。 可以分别为浅色和深色主题独立指定。

属性

深色主题装饰。

是否应该在用户界面中淡化源代码控制资源状态

特定源代码控制资源状态的图标路径。

浅色主题装饰。

是否应在用户界面中将源代码控制资源状态显示为删除线。

特定源代码控制资源状态的标题。

SourceControlResourceGroup

源代码控制资源组是 源代码控制资源状态的集合。

属性

当此源代码控制资源组不包含任何源代码控制资源状态时,是否隐藏。

此源代码控制资源组的ID。

此源代码控制资源组的标签。

此组的 源代码控制资源状态集合。

方法

处理此源代码控制资源组。

ParameterDescription
ReturnsDescription
void

SourceControlResourceState

一个源代码控制资源状态表示某个源代码控制组中底层工作区资源的状态。

属性

当资源状态在源代码控制视图小部件中打开时,应运行的命令

资源状态的上下文值。这可以用于贡献资源特定的操作。 例如,如果资源被赋予了一个上下文值diffable。当使用menus扩展点向scm/resourceState/context贡献操作时,你可以在when表达式中为键scmResourceState指定上下文值,例如scmResourceState == diffable

"contributes": {
  "menus": {
    "scm/resourceState/context": [
      {
        "command": "extension.diff",
        "when": "scmResourceState == diffable"
      }
    ]
  }
}

这将仅对contextValuediffable的资源显示操作extension.diff

此源代码控制资源状态的装饰

工作空间内底层资源的Uri

SourceControlResourceThemableDecorations

用于源代码控制资源状态的主题感知装饰。

属性

特定源代码控制资源状态的图标路径。

StatementCoverage

包含单个语句或行的覆盖信息。

构造函数

ParameterDescription
executed: number | boolean

此语句被执行的次数,或者如果确切次数未知,则是一个布尔值,指示是否已执行。如果为零或假,该语句将被标记为未覆盖。

location: Range | Position

语句位置。

branches?: BranchCoverage[]

此行的分支覆盖率。如果不是条件语句,则应省略。

ReturnsDescription
StatementCoverage

属性

此代码行或语句的分支覆盖率。如果不是条件语句,则此项为空。

此语句被执行的次数,或者如果确切次数未知,则是一个布尔值,表示是否被执行。如果为零或假,该语句将被标记为未覆盖。

语句位置。

状态栏对齐方式

表示状态栏项目的对齐方式。

枚举成员

向左对齐。

向右对齐。

状态栏项

状态栏项是状态栏的贡献,可以显示文本和图标,并在点击时运行命令。

属性

当屏幕阅读器与此状态栏项目交互时使用的可访问性信息

此项目的对齐方式。

此条目的背景颜色。

注意: 仅支持以下颜色:

  • new ThemeColor('statusBarItem.errorBackground')
  • new ThemeColor('statusBarItem.warningBackground')

未来可能会支持更多的背景颜色。

注意: 当设置了背景颜色时,状态栏可能会覆盖 color 选择,以确保在所有主题中条目都可读。

此条目的前景颜色。

Command 或点击时要运行的命令的标识符。

命令必须是已知的

请注意,如果这是一个Command对象,编辑器只会使用commandarguments

此项目的标识符。

注意:如果window.createStatusBarItem方法没有提供标识符,标识符将与扩展标识符匹配。

条目的名称,如“Python语言指示器”、“Git状态”等。尽量保持名称简短,但描述性足够,以便用户能够理解状态栏项目的含义。

此项目的优先级。数值越高,表示该项目应更靠左显示。

要显示的条目文本。您可以通过利用以下语法在文本中嵌入图标:

我的文本 $(icon-name) 包含像 $(icon-name) 这样的图标。

其中图标名称取自ThemeIcon 图标集,例如 light-bulb, thumbsup, zap 等。

当您悬停在此条目上时显示的提示文本。

方法

释放并释放相关资源。调用 hide

ParameterDescription
ReturnsDescription
void

隐藏状态栏中的条目。

ParameterDescription
ReturnsDescription
void

在状态栏中显示条目。

ParameterDescription
ReturnsDescription
void

SymbolInformation

表示有关编程构造的信息,如变量、类、接口等。

构造函数

创建一个新的符号信息对象。

ParameterDescription
name: string

符号的名称。

kind: SymbolKind

符号的类型。

containerName: string

包含符号的符号名称。

location: Location

符号的位置。

ReturnsDescription
SymbolInformation

创建一个新的符号信息对象。

  • 已弃用 - 请使用接受Location对象的构造函数。
ParameterDescription
name: string

符号的名称。

kind: SymbolKind

符号的类型。

range: Range

符号位置的范围。

uri?: Uri

符号位置的资源,默认为当前文档。

containerName?: string

包含符号的符号名称。

ReturnsDescription
SymbolInformation

属性

包含此符号的符号名称。

这个符号的类型。

此符号的位置。

这个符号的名称。

此符号的标签。

SymbolKind

符号类型。

枚举成员

File 符号类型。

Module 符号类型。

Namespace 符号类型。

Package 符号类型。

Class 符号类型。

Method 符号类型。

Property 符号类型。

Field 符号类型。

Constructor 符号类型。

Enum 符号类型。

Interface 符号类型。

Function 符号类型。

Variable 符号类型。

Constant 符号类型。

String 符号类型。

Number 符号类型。

Boolean 符号类型。

Array 符号类型。

Object 符号类型。

Key 符号类型。

Null 符号类型。

EnumMember 符号类型。

Struct 符号类型。

Event 符号类型。

Operator 符号类型。

TypeParameter 符号类型。

SymbolTag

符号标签是调整符号渲染的额外注释。

枚举成员

将符号渲染为过时,通常使用删除线。

SyntaxTokenType

常见语法标记类型的枚举。

枚举成员

除了作为注释、字符串字面量和正则表达式的一部分的标记之外的所有内容。

一条评论。

一个字符串字面量。

一个正则表达式。

Tab

表示标签组中的一个标签。 标签仅仅是编辑器区域内的图形表示。 并不保证有后台编辑器。

属性

标签所属的组。

定义标签页的结构,即文本、笔记本、自定义等。 资源和其它有用的属性在标签页类型上定义。

标签当前是否处于活动状态。 这是由在组中被选中的标签决定的。

选项卡上是否存在脏指示器。

标签是否被固定(固定图标存在)。

选项卡是否处于预览模式。

标签上显示的文本。

TabChangeEvent

描述标签更改的事件。

属性

已更改的标签页,例如已更改其活动状态。

已关闭的标签页。

已打开的标签页。

TabGroup

表示一组标签。一个标签组本身由多个标签组成。

属性

组中的活动tab。这是当前正在渲染其内容的标签。

注意,每个组只能有一个活动标签,但只能有一个活动组

该组当前是否处于活动状态。

注意,一次只能有一个标签组处于活动状态,但多个标签组可以有一个活动标签

另请参阅 Tab.isActive

组中包含的标签页列表。 如果组中没有打开的标签页,则可以为空。

组的视图列。

TabGroupChangeEvent

描述标签组更改的事件。

属性

已更改的标签组,例如更改了它们的活动状态。

已关闭的标签组。

已打开的标签组。

TabGroups

表示由包含标签的多个组组成的主编辑器区域。

事件

标签组发生变化时触发的事件

标签发生变化时触发的事件

属性

当前活动的组。

组容器内的所有组。

方法

关闭标签页。这将使标签页对象无效,并且该标签页不应再用于进一步的操作。 注意:如果标签页有未保存的更改,将会显示一个确认对话框,该对话框可能会被取消。如果取消,标签页仍然有效。

ParameterDescription
tab: Tab | readonly Tab[]

要关闭的标签页。

preserveFocus?: boolean

true时,焦点将保持在当前位置。如果false,它将跳转到下一个标签。

ReturnsDescription
Thenable<boolean>

一个承诺,当所有标签页都关闭时,解析为true

关闭标签组。这将使标签组对象无效,并且该标签组不应再用于进一步的操作。

ParameterDescription
tabGroup: TabGroup | readonly TabGroup[]

要关闭的标签组。

preserveFocus?: boolean

true 时,焦点将保持在其当前位置。

ReturnsDescription
Thenable<boolean>

一个承诺,当所有标签组都已关闭时,解析为true

TabInputCustom

该标签代表一个自定义编辑器。

构造函数

构建一个自定义编辑器标签输入。

ParameterDescription
uri: Uri

标签的URI。

viewType: string

自定义编辑器的视图类型。

ReturnsDescription
TabInputCustom

属性

标签所代表的URI。

自定义编辑器的类型。

TabInputNotebook

该标签代表一个笔记本。

构造函数

为笔记本构建一个新的标签输入。

ParameterDescription
uri: Uri

笔记本的URI。

notebookType: string

笔记本的类型。映射到 NotebookDocuments 的 notebookType

ReturnsDescription
TabInputNotebook

属性

笔记本的类型。映射到 NotebookDocuments 的 notebookType

标签所代表的URI。

TabInputNotebookDiff

标签表示在差异配置中的两个笔记本。

构造函数

构建一个笔记本差异标签输入。

ParameterDescription
original: Uri

原始未修改笔记本的URI。

modified: Uri

修改后的笔记本的URI。

notebookType: string

笔记本的类型。映射到 NotebookDocuments 的 notebookType

ReturnsDescription
TabInputNotebookDiff

属性

修改后的笔记本的URI。

笔记本的类型。映射到 NotebookDocuments 的 notebookType

原始笔记本的URI。

TabInputTerminal

该标签代表编辑器区域中的一个终端。

构造函数

构建一个终端标签输入。

ParameterDescription
ReturnsDescription
TabInputTerminal

TabInputText

该标签表示一个基于文本的单一资源。

构造函数

使用给定的URI构建一个文本标签输入。

ParameterDescription
uri: Uri

标签的URI。

ReturnsDescription
TabInputText

属性

标签所代表的URI。

TabInputTextDiff

该标签表示两个基于文本的资源被渲染为差异对比。

构造函数

使用给定的URI构造一个新的文本差异选项卡输入。

ParameterDescription
original: Uri

原始文本资源的URI。

modified: Uri

修改后的文本资源的URI。

ReturnsDescription
TabInputTextDiff

属性

修改后的文本资源的URI。

原始文本资源的URI。

TabInputWebview

该标签代表一个网页视图。

构造函数

使用给定的视图类型构建一个webview标签输入。

ParameterDescription
viewType: string

webview的类型。映射到WebviewPanel的viewType

ReturnsDescription
TabInputWebview

属性

webview的类型。映射到WebviewPanel的viewType

任务

要执行的任务

构造函数

创建一个新任务。

ParameterDescription
taskDefinition: TaskDefinition

任务定义,如taskDefinitions扩展点中所定义。

scope: WorkspaceFolder | Global | Workspace

指定任务的范围。它可以是全局任务、工作区任务或特定工作区文件夹的任务。目前不支持全局任务。

name: string

任务的名称。在用户界面中显示。

source: string

任务的来源(例如 'gulp', 'npm', ...)。在用户界面中显示。

execution?: ProcessExecution | ShellExecution | CustomExecution

进程或shell执行。

problemMatchers?: string | string[]

要使用的问题匹配器的名称,如'$tsc'或'$eslint'。问题匹配器可以通过扩展使用problemMatchers扩展点来贡献。

ReturnsDescription
Task

创建一个新任务。

  • 已弃用 - 使用允许为任务指定范围的新构造函数。
ParameterDescription
taskDefinition: TaskDefinition

任务定义,如taskDefinitions扩展点中所定义的。

name: string

任务的名称。在用户界面中显示。

source: string

任务的来源(例如 'gulp', 'npm', ...)。在用户界面中显示。

execution?: ProcessExecution | ShellExecution

进程或shell执行。

problemMatchers?: string | string[]

要使用的问题匹配器的名称,如'$tsc'或'$eslint'。问题匹配器可以通过扩展使用problemMatchers扩展点来贡献。

ReturnsDescription
Task

属性

任务的定义。

一个人类可读的字符串,在显示任务名称的地方以较不突出的方式在单独一行呈现。支持通过$()-语法渲染主题图标

任务的执行引擎

此任务所属的任务组。请参阅 TaskGroup 以获取预定义的一组可用组。 默认为未定义,意味着该任务不属于任何特殊组。

任务是否为后台任务。

任务的名称

演示选项。默认为空字面量。

附加到任务的问题匹配器。默认为空数组。

任务的运行选项

任务的范围。

描述此shell任务来源的人类可读字符串,例如'gulp'或'npm'。支持通过$()语法渲染主题图标

任务定义

定义系统中任务类型的结构。 该值必须是可JSON序列化的。

属性

任务定义描述了由扩展提供的任务。 通常,任务提供者会定义更多的属性来识别 一个任务。它们需要在扩展的package.json中 在'taskDefinitions'扩展点下定义。例如,npm 任务定义如下所示

interface NpmTaskDefinition extends TaskDefinition {
  script: string;
}

请注意,以'$'开头的类型标识符保留供内部使用,不应由扩展使用。

TaskEndEvent

一个表示执行任务结束的事件。

此接口不打算被实现。

属性

表示已完成任务的任务项。

任务执行

一个表示已执行任务的对象。它可以用来终止任务。

此接口不打算被实现。

属性

已启动的任务。

方法

终止任务执行。

ParameterDescription
ReturnsDescription
void

任务过滤器

任务过滤器通过任务的版本和类型来标识任务

属性

要返回的任务类型;

任务版本,用于tasks.json文件中。 该字符串支持package.json的semver表示法。

任务组

任务的分组。编辑器默认支持'Clean'、'Build'、'RebuildAll'和'Test'分组。

静态

构建任务组;

清理任务组;

重建所有任务组;

测试所有任务组;

构造函数

私有构造函数

ParameterDescription
id: string

任务组的标识符。

label: string

任务组的人类可读名称。

ReturnsDescription
TaskGroup

属性

任务组的ID。是TaskGroup.Clean.id、TaskGroup.Build.id、TaskGroup.Rebuild.id或TaskGroup.Test.id之一。

此组中的任务是否为该组的默认任务。 此属性无法通过API设置,由用户的任务配置控制。

TaskPanelKind

控制任务之间如何使用任务通道

枚举成员

与其他任务共享一个面板。这是默认设置。

为此任务使用专用面板。该面板不与其他任务共享。

每当执行此任务时,都会创建一个新的面板。

任务展示选项

控制任务在用户界面中的呈现方式。

属性

控制在执行任务之前是否清除终端。

控制任务执行后是否关闭终端。

控制与任务关联的命令是否在用户界面中回显。

控制显示任务输出的面板是否获取焦点。

控制任务面板是仅用于此任务(专用), 在任务之间共享(共享),还是在每次任务执行时创建新面板(新建)。默认为 TaskInstanceKind.Shared

控制任务输出是否在用户界面中显示。 默认为 RevealKind.Always

控制是否显示“终端将被任务重用,按任意键关闭它”的消息。

TaskProcessEndEvent

一个事件,表示通过任务触发的进程执行结束

属性

任务执行的过程已启动。

进程的退出代码。当任务终止时,将为 undefined

任务进程开始事件

一个事件,表示通过任务触发的进程执行的开始

属性

任务执行的过程已启动。

底层进程ID。

TaskProvider

任务提供者允许向任务服务添加任务。 任务提供者通过tasks.registerTaskProvider注册。

方法

提供任务。

ParameterDescription
token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<T[]>

任务数组

解决一个没有设置执行的任务。任务通常是从tasks.json文件中的信息创建的。这些任务缺少如何执行它们的信息,任务提供者必须在resolveTask方法中填补缺失的信息。对于从上述provideTasks方法返回的任务,不会调用此方法,因为这些任务总是完全解析的。resolveTask方法的有效默认实现是返回undefined

请注意,在填写task的属性时,您必须确保使用完全相同的TaskDefinition,而不是创建一个新的。其他属性可以更改。

ParameterDescription
task: T

要解决的任务。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<T>

已解决的任务

TaskRevealKind

控制终端可见性的行为。

枚举成员

如果任务被执行,总是将终端带到前台。

仅在检测到执行任务时出现问题(例如,任务无法启动)时,将终端带到前台。

任务执行时,终端永远不会显示在前台。

TaskScope

任务的范围。

枚举成员

该任务是一个全局任务。目前不支持全局任务。

任务是一个工作区任务

任务开始事件

一个表示任务执行开始的事件。

此接口不打算被实现。

属性

表示已启动任务的任务项。

TelemetryLogger

一个遥测记录器,扩展程序可以使用它来记录使用情况和错误遥测。

一个日志记录器包装了一个发送者,但它保证了

  • 用户设置以禁用或调整遥测功能被尊重,并且
  • 潜在的敏感数据已被移除

它还启用了一个“回显UI”,可以打印发送的任何数据,并允许编辑器将未处理的错误转发给相应的扩展。

要获取TelemetryLogger的实例,请使用 createTelemetryLogger

事件

当使用情况或错误遥测的启用状态发生变化时触发的事件

属性

是否为该记录器启用了错误遥测。

是否为此记录器启用了使用情况遥测。

方法

释放此对象并释放资源。

ParameterDescription
ReturnsDescription
void

记录一个错误事件。

在完成清理、遥测设置检查和数据混合后,调用TelemetrySender.sendEventData来记录事件。与logUsage不同的是,如果遥测设置为Error+,它将记录事件。 自动支持回显到扩展遥测输出通道。

ParameterDescription
eventName: string

要记录的事件名称

data?: Record<string, any>

要记录的数据

ReturnsDescription
void

记录一个错误事件。

调用 TelemetrySender.sendErrorData。执行清理、遥测检查和数据混合。 自动支持回显到扩展遥测输出通道。 还会自动记录扩展主机进程中抛出的任何异常。

ParameterDescription
error: Error

错误对象,包含已清除PII的堆栈跟踪

data?: Record<string, any>

记录堆栈跟踪时的附加数据

ReturnsDescription
void

记录一个使用事件。

在完成清理、遥测设置检查和数据混合后,调用TelemetrySender.sendEventData来记录事件。 自动支持回显到扩展遥测输出通道。

ParameterDescription
eventName: string

要记录的事件名称

data?: Record<string, any>

要记录的数据

ReturnsDescription
void

TelemetryLoggerOptions

创建TelemetryLogger的选项

属性

任何应该注入到数据对象中的额外公共属性。

是否希望避免将内置的常见属性(如操作系统、扩展名等)注入到数据对象中。 如果未定义,则默认为false

是否应将由您的扩展程序引起的扩展主机上的未处理错误记录到您的发送者。如果未定义,则默认为false

TelemetrySender

遥测发送器是遥测记录器与某些遥测服务之间的契约。注意,扩展程序不得直接调用其发送器的方法,因为记录器提供了额外的保护和清理。

const sender: vscode.TelemetrySender = {...};
const logger = vscode.env.createTelemetryLogger(sender);

// GOOD - uses the logger
logger.logUsage('myEvent', { myData: 'myValue' });

// BAD - uses the sender directly: no data cleansing, ignores user settings, no echoing to the telemetry output channel etc
sender.logEvent('myEvent', { myData: 'myValue' });

方法

可选的刷新函数,这将给此发送者一个机会发送任何剩余的事件,因为它的TelemetryLogger正在被处理

ParameterDescription
ReturnsDescription
void | Thenable<void>

发送错误的函数。在TelemetryLogger中使用

ParameterDescription
error: Error

记录的错误

data?: Record<string, any>

除了异常之外要收集的任何额外数据

ReturnsDescription
void

用于发送不带堆栈跟踪的事件数据的函数。在TelemetryLogger中使用。

ParameterDescription
eventName: string

您正在记录的事件的名称

data?: Record<string, any>

正在记录的可序列化键值对

ReturnsDescription
void

TelemetryTrustedValue

一个特殊的值包装器,表示一个不需要清理的安全值。当你能保证值中不包含可识别信息且清理操作不恰当地删除了它时,可以使用这个包装器。

构造函数

创建一个新的遥测信任值。

ParameterDescription
value: T

值得信赖的价值

ReturnsDescription
TelemetryTrustedValue<T>

属性

该值被信任不包含个人身份信息(PII)。

终端

集成终端中的单个终端实例。

属性

用于初始化终端的对象,这在例如检测终端未由此扩展启动时的shell类型或检测shell启动的文件夹时非常有用。

终端的退出状态,当终端处于活动状态时,这将未定义。

示例: 当终端以非零退出代码退出时,显示带有退出代码的通知。

window.onDidCloseTerminal(t => {
  if (t.exitStatus && t.exitStatus.code) {
    vscode.window.showInformationMessage(`Exit code: ${t.exitStatus.code}`);
  }
});

终端的名称。

Shell进程的进程ID。

一个包含shell集成功能的终端对象。在终端创建后,此对象将始终为undefined。当终端的shell集成被激活时,可以通过监听window.onDidChangeTerminalShellIntegration来获得通知。

请注意,如果shell集成从未激活,此对象可能保持未定义状态。例如,命令提示符不支持shell集成,用户的shell设置可能与自动shell集成激活发生冲突。

Terminal的当前状态。

方法

释放并清理相关资源。

ParameterDescription
ReturnsDescription
void

如果当前显示此终端,则隐藏终端面板。

ParameterDescription
ReturnsDescription
void

将文本发送到终端。文本被写入终端底层pty进程(shell)的stdin。

ParameterDescription
text: string

要发送的文本。

shouldExecute?: boolean

表示发送的文本应该被执行,而不仅仅是插入到终端中。 添加的字符是\n\r\n,取决于平台。这默认是true

ReturnsDescription
void

显示终端面板并在用户界面中展示此终端。

ParameterDescription
preserveFocus?: boolean

true时,终端将不会获取焦点。

ReturnsDescription
void

终端尺寸

表示终端的尺寸。

属性

终端中的列数。

终端中的行数。

TerminalEditorLocationOptions

假设一个TerminalLocation为编辑器,并允许指定一个ViewColumnpreserveFocus属性

属性

一个可选的标志,当true时,将阻止终端获取焦点。

一个视图列,其中终端应在编辑器区域显示。 默认是活动列。不存在的列将根据需要创建,最多到ViewColumn.Nine。 使用ViewColumn.Beside在当前活动列的旁边打开编辑器。

终端退出原因

终端退出原因类型。

枚举成员

未知原因。

窗口已关闭/重新加载。

shell 进程已退出。

用户关闭了终端。

一个扩展配置了终端。

终端退出状态

表示终端如何退出。

属性

终端退出时的退出代码,它可以有以下值:

  • 零:终端进程或自定义执行成功。
  • 非零:终端进程或自定义执行失败。
  • undefined: 用户强制关闭了终端或自定义执行退出时未提供退出代码。

触发终端退出的原因。

终端行上的链接。

构造函数

创建一个新的终端链接。

ParameterDescription
startIndex: number

链接在TerminalLinkContext.line上的起始索引。

length: number

TerminalLinkContext.line 上链接的长度。

tooltip?: string

当您悬停在此链接上时显示的提示文本。

如果提供了工具提示,它将以字符串形式显示,其中包含如何触发链接的说明,例如{0} (ctrl + click)。具体说明因操作系统、用户设置和本地化而异。

ReturnsDescription
TerminalLink

属性

TerminalLinkContext.line 上链接的长度。

链接在TerminalLinkContext.line上的起始索引。

当您悬停在此链接上时显示的提示文本。

如果提供了工具提示,它将以字符串形式显示,其中包含如何触发链接的说明,例如{0} (ctrl + click)。具体说明因操作系统、用户设置和本地化而异。

终端链接上下文

提供终端中一行的信息,以便为其提供链接。

属性

这是终端中未换行的文本。

链接所属的终端。

TerminalLinkProvider

一个提供者,用于在终端内检测和处理链接。

方法

处理一个已激活的终端链接。

ParameterDescription
link: T

要处理的链接。

ReturnsDescription
ProviderResult<void>

为给定的上下文提供终端链接。请注意,即使在前一次调用尚未解决之前,也可以多次调用此函数,确保不要共享可能在异步使用重叠时出现问题的全局对象(例如RegExp)。

ParameterDescription
context: TerminalLinkContext

关于提供链接的信息。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<T[]>

给定线路的终端链接列表。

终端位置

终端的位置。

枚举成员

在终端视图中

在编辑区域

终端选项

描述终端应使用哪些选项的值对象。

属性

终端的图标 ThemeColor。 建议使用 terminal.ansi* 主题键以获得最佳对比度和跨主题的一致性。

用于终端的当前工作目录的路径或Uri。

包含将添加到编辑器进程的环境变量的对象。

当启用时,终端将正常运行进程,但在调用Terminal.show之前不会显示给用户。这种功能的典型用途是当你需要运行可能需要交互的内容,但只想在需要交互时通知用户。请注意,终端仍将正常暴露给所有扩展。隐藏的终端在下次打开工作区时不会被恢复。

终端的图标路径或ThemeIcon

在重新启动和重新加载时选择退出默认的终端持久化。 这仅在启用terminal.integrated.enablePersistentSessions时生效。

首次启动时写入终端的消息,请注意这不是发送到进程的,而是直接写入终端的。这支持诸如设置文本样式之类的转义序列。

一个人类可读的字符串,将用于在用户界面中表示终端。

自定义shell可执行文件的参数。仅在Windows上可以使用字符串,允许以命令行格式指定shell参数。

终端中使用的自定义 shell 可执行文件的路径。

终端进程环境是否应完全按照TerminalOptions.env中提供的内容。当此值为false(默认)时,环境将基于窗口的环境,并应用配置的平台设置,如terminal.integrated.env.windows。当此值为true时,必须提供完整的环境,因为不会从进程或任何配置中继承任何内容。

终端配置文件

终端配置文件定义了终端将如何启动。

构造函数

创建一个新的终端配置文件。

ParameterDescription
options: TerminalOptions | ExtensionTerminalOptions

终端启动时将使用的选项。

ReturnsDescription
TerminalProfile

属性

终端启动时将使用的选项。

TerminalProfileProvider

当通过用户界面或命令启动时,为贡献的终端配置文件提供终端配置文件。

方法

提供终端配置文件。

ParameterDescription
token: CancellationToken

一个取消令牌,表示不再需要结果。

ReturnsDescription
ProviderResult<TerminalProfile>

终端配置文件。

终端Shell执行

在终端中执行的命令。

属性

执行的命令行。此值的置信度取决于特定 shell 的 shell 集成实现。在触发window.onDidEndTerminalShellExecution后,此值可能会变得更加准确。

示例

// Log the details of the command line on start and end
window.onDidStartTerminalShellExecution(event => {
  const commandLine = event.execution.commandLine;
  console.log(`Command started\n${summarizeCommandLine(commandLine)}`);
});
window.onDidEndTerminalShellExecution(event => {
  const commandLine = event.execution.commandLine;
  console.log(`Command ended\n${summarizeCommandLine(commandLine)}`);
});
function summarizeCommandLine(commandLine: TerminalShellExecutionCommandLine) {
  return [
    `  Command line: ${command.commandLine.value}`,
    `  Confidence: ${command.commandLine.confidence}`,
    `  Trusted: ${command.commandLine.isTrusted}
  ].join('\n');
}

执行此命令时由 shell 报告的工作目录。此 Uri 可能表示另一台机器上的文件(例如通过 ssh 连接到另一台机器)。这 需要 shell 集成支持工作目录报告。

方法

创建一个包含原始数据(包括转义序列)的流,这些数据被写入终端。这将仅包括在第一次调用read之后写入的数据,即你必须在通过TerminalShellIntegration.executeCommandwindow.onDidStartTerminalShellExecution执行命令后立即调用read,以免错过任何数据。

示例

// Log all data written to the terminal for a command
const command = term.shellIntegration.executeCommand({ commandLine: 'echo "Hello world"' });
const stream = command.read();
for await (const data of stream) {
  console.log(data);
}
ParameterDescription
ReturnsDescription
AsyncIterable<string>

终端Shell执行命令行

在终端中执行的命令行。

属性

命令行值的置信度,由该值的获取方式决定。这取决于shell集成脚本的实现。

命令行值是否来自可信来源,因此无需用户额外确认即可安全执行,例如询问“您要执行(命令)吗?”的通知。此验证可能仅在您要再次执行命令时才需要。

只有当命令行被shell集成脚本明确报告时(即高置信度),并且使用了随机数进行验证时,这才是true

执行的完整命令行,包括命令及其参数。

TerminalShellExecutionCommandLineConfidence

枚举成员

命令行值的置信度较低。这意味着该值是从终端缓冲区读取的,使用了由 shell 集成脚本报告的标记。此外,还将满足以下条件之一:

  • 命令从最左边的列开始,这是不寻常的,或者
  • 该命令是多行的,由于行继续字符和右侧提示,更难以准确检测。
  • Shell集成脚本未报告命令行标记。

命令行值的置信度为中等。这意味着该值是从终端缓冲区读取的,使用了由shell集成脚本报告的标记。该命令是单行的,并且不是从最左边的列开始的(这是不常见的)。

命令行值的置信度很高。这意味着该值是从 shell 集成脚本显式发送的,或者命令是通过 TerminalShellIntegration.executeCommand API 执行的。

TerminalShellExecutionEndEvent

一个事件,表示执行已在终端结束。

属性

终端 shell 执行已结束。

shell报告的退出代码。

请注意,undefined 意味着 shell 要么没有报告退出代码(即 shell 集成脚本行为异常),要么 shell 报告了一个命令在命令完成之前启动(例如,打开了一个子 shell)。通常这不应该发生,根据使用情况,最好将其视为失败。

示例

const execution = shellIntegration.executeCommand({
  command: 'echo',
  args: ['Hello world']
});
window.onDidEndTerminalShellExecution(event => {
  if (event.execution === execution) {
    if (event.exitCode === undefined) {
      console.log('Command finished but exit code is unknown');
    } else if (event.exitCode === 0) {
      console.log('Command succeeded');
    } else {
      console.log('Command failed');
    }
  }
});

Shell 集成对象。

已激活Shell集成的终端。

TerminalShellExecutionStartEvent

一个事件,表示在终端中已经开始执行。

属性

终端 shell 执行已结束。

Shell 集成对象。

已激活Shell集成的终端。

终端Shell集成

Shell integration - 终端拥有的由Shell集成驱动的功能。

属性

终端的当前工作目录。这个Uri可能表示另一台机器上的文件(例如通过ssh连接到另一台机器)。这需要shell集成支持工作目录报告。

方法

执行一个命令,必要时发送^C以中断任何正在运行的命令。

示例

// Execute a command in a terminal immediately after being created
const myTerm = window.createTerminal();
window.onDidChangeTerminalShellIntegration(async ({ terminal, shellIntegration }) => {
  if (terminal === myTerm) {
    const execution = shellIntegration.executeCommand('echo "Hello world"');
    window.onDidEndTerminalShellExecution(event => {
      if (event.execution === execution) {
        console.log(`Command exited with code ${event.exitCode}`);
      }
    });
  }
}));
// Fallback to sendText if there is no shell integration within 3 seconds of launching
setTimeout(() => {
  if (!myTerm.shellIntegration) {
    myTerm.sendText('echo "Hello world"');
    // Without shell integration, we can't know when the command has finished or what the
    // exit code was.
  }
}, 3000);

示例

// Send command to terminal that has been alive for a while
const commandLine = 'echo "Hello world"';
if (term.shellIntegration) {
  const execution = shellIntegration.executeCommand({ commandLine });
  window.onDidEndTerminalShellExecution(event => {
    if (event.execution === execution) {
      console.log(`Command exited with code ${event.exitCode}`);
    }
  });
} else {
  term.sendText(commandLine);
  // Without shell integration, we can't know when the command has finished or what the
  // exit code was.
}
ParameterDescription
commandLine: string

要执行的命令行,这是将发送到终端的精确文本。

ReturnsDescription
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.
}
ParameterDescription
executable: string

要运行的命令。

args: string[]

用于启动可执行文件的参数。这些参数将被转义,以便在参数包含空格且不包含任何单引号、双引号或反引号字符时,它们被解释为单个参数。

请注意,这种转义并不是一种安全措施,当将不受信任的数据传递给此API时要小心,因为像$(...)这样的字符串通常可以在shell中用于在字符串内执行代码。

ReturnsDescription
TerminalShellExecution

TerminalShellIntegrationChangeEvent

一个事件,表示终端的shell集成已更改。

属性

Shell 集成对象。

已激活Shell集成的终端。

终端分割位置选项

使用父级Terminal的位置作为终端的位置

属性

要在此终端旁边拆分的父终端。无论父终端是在面板中还是在编辑器区域中,此操作都有效。

TerminalState

表示终端的状态。

属性

是否与终端进行了交互。交互意味着终端已向进程发送了数据,这取决于终端的模式。默认情况下,当按下键或命令或扩展发送文本时,输入会被发送,但根据终端的模式,也可能在以下情况下发生:

  • 一个指针点击事件
  • 一个指针滚动事件
  • 指针移动事件
  • 终端焦点进入/退出

有关可以发送数据的事件的更多信息,请参阅“DEC 私有模式设置 (DECSET)”在 https://invisible-island.net/xterm/ctlseqs/ctlseqs.html

TestController

发现和执行测试的入口点。它包含TestController.items,用于填充编辑器用户界面,并与运行配置文件相关联,以允许执行测试。

属性

传入tests.createTestController的控制器的id。这必须是全局唯一的。

一组“顶级”TestItem实例,这些实例又可以拥有自己的子项,从而形成“测试树”。

扩展控制何时添加测试。例如,扩展应在文件打开时添加测试,以便文件中的测试装饰可见,当workspace.onDidOpenTextDocument触发时。

然而,编辑器有时可能会明确地请求使用 resolveHandler 的子项。有关更多详细信息,请参阅该方法的文档。

测试控制器的人类可读标签。

如果存在此方法,用户界面中将显示一个刷新按钮,点击该按钮时将调用此方法。调用时,扩展应扫描工作区以查找任何新增、更改或删除的测试。

建议扩展程序尝试实时更新测试,例如使用FileSystemWatcher,并将此方法作为备用方案。

ParameterDescription
token: CancellationToken
ReturnsDescription
void | Thenable<void>

当测试已刷新时解析的thenable。

扩展提供的一个函数,编辑器可以调用它来请求测试项的子项,如果TestItem.canResolveChildrentrue。当被调用时,该项应该发现子项并在发现子项时调用TestController.createTestItem

通常情况下,扩展管理测试项目的生命周期,但在某些条件下,编辑器可能会请求加载特定项目的子项。例如,如果用户在重新加载编辑器后请求重新运行测试,编辑器可能需要调用此方法来解析之前运行的测试。

资源管理器中的项目将自动标记为“忙碌”,直到函数返回或返回的 thenable 解析。

ParameterDescription
item: TestItem

一个未解决的测试项,正在请求其子项,或者使用undefined来解析控制器的初始items

ReturnsDescription
void | Thenable<void>

方法

创建一个用于运行测试的配置文件。扩展必须至少创建一个配置文件才能运行测试。

ParameterDescription
label: string

此配置文件的人类可读标签。

kind: TestRunProfileKind

配置此配置文件管理的执行类型。

runHandler: (request: TestRunRequest, token: CancellationToken) => void | Thenable<void>

调用函数以启动测试运行。

isDefault?: boolean

这是否是其类型的默认操作。

tag?: TestTag

配置文件测试标签。

supportsContinuousRun?: boolean

配置文件是否支持连续运行。

ReturnsDescription
TestRunProfile

一个TestRunProfile的实例,它会自动与此控制器关联。

创建一个新的托管TestItem实例。它可以添加到现有项目的TestItem.children中,或者添加到TestController.items中。

ParameterDescription
id: string

TestItem的标识符。测试项的ID在它被添加到的TestItemCollection中必须是唯一的。

label: string

测试项的人类可读标签。

uri?: Uri

此TestItem关联的URI。可能是文件或目录。

ReturnsDescription
TestItem

创建一个TestRun。当请求执行测试时,应由TestRunProfile调用此方法,如果外部检测到测试运行,也可以调用此方法。一旦创建,请求中包含的测试将进入排队状态。

所有使用相同request实例创建的运行将被分组在一起。例如,如果一组测试在多个平台上运行,这将非常有用。

ParameterDescription
request: TestRunRequest

测试运行请求。只有在include内的测试可以被修改,而在其exclude中的测试将被忽略。

name?: string

运行的可读名称。这可以用于在测试运行中区分多组结果。例如,如果测试在多个平台上运行,这将非常有用。

persist?: boolean

运行创建的结果是否应持久化在编辑器中。如果结果来自已外部保存的文件(例如覆盖率信息文件),则可能为false。

ReturnsDescription
TestRun

TestRun的一个实例。从调用此方法的那一刻起,直到调用TestRun.end,它将被视为“正在运行”。

注销测试控制器,处理其相关的测试和未持久化的结果。

ParameterDescription
ReturnsDescription
void

标记一个项目的结果为过时。这通常在代码或配置更改时调用,之前的结果不应再被视为相关。用于标记结果为过时的相同逻辑可用于驱动持续测试运行

如果将一个项目传递给此方法,该项目及其所有子项的测试结果将被标记为过时。如果没有传递项目,则TestController拥有的所有测试将被标记为过时。

在此方法调用之前启动的任何测试运行,包括可能仍在进行的运行,将被标记为过时,并在编辑器的用户界面中被降级处理。

ParameterDescription
items?: TestItem | readonly TestItem[]

标记为过时的项目。如果未定义,则控制器中的所有项目都将被标记为过时。

ReturnsDescription
void

TestCoverageCount

一个包含有关被覆盖资源信息的类。可以为文件中的行、分支和声明提供计数。

构造函数

ParameterDescription
covered: number
total: number
ReturnsDescription
TestCoverageCount

属性

文件中包含的项目数量。

文件中覆盖项目的总数。

测试项目

在“测试资源管理器”视图中显示的项目。

一个TestItem可以代表一个测试套件或一个测试本身,因为它们都具有相似的功能。

属性

控制项目是否在测试资源管理器视图中显示为“忙碌”。 这对于在发现子项时显示状态非常有用。

默认为 false

指示此测试项是否可能通过解析发现子项。

如果为真,此项将在测试资源管理器视图中显示为可展开,展开此项将导致TestController.resolveHandler被调用。

默认为 false

此测试项的子项。对于一个测试套件,这可能包含单独的测试用例或嵌套的套件。

出现在标签旁边的可选描述。

加载测试时遇到的可选错误。

请注意,这不是测试结果,仅应用于表示测试发现中的错误,例如语法错误。

TestItem的标识符。这用于将文档中的测试结果和测试与工作区(测试资源管理器)中的测试结果和测试关联起来。在TestItem的整个生命周期内,此标识符不能更改,并且在其父级的直接子级中必须是唯一的。

描述测试用例的显示名称。

此项目的父级。它是自动设置的,对于TestController.items中的顶级项目以及尚未包含在另一个项目的children中的项目,它是未定义的。

测试项目在其uri中的位置。

这只有在uri指向文件时才有意义。

一个字符串,用于在将此项目与其他项目进行比较时使用。当falsy时,使用label

与此测试项相关的标签。可以与标签结合使用,或仅作为组织功能。

URI 这个 TestItem 关联的。可能是一个文件或目录。

TestItemCollection

测试项的集合,可以在TestItem.childrenTestController.items中找到。

属性

获取集合中的项目数量。

方法

将测试项添加到子项中。如果已存在具有相同ID的项,则将其替换。

ParameterDescription
item: TestItem

要添加的项目。

ReturnsDescription
void

从集合中移除单个测试项。

ParameterDescription
itemId: string

要删除的项目ID。

ReturnsDescription
void

遍历此集合中的每个条目。

ParameterDescription
callback: (item: TestItem, collection: TestItemCollection) => unknown

为每个条目执行的函数。

thisArg?: any

调用处理程序函数时使用的this上下文。

ReturnsDescription
void

高效地通过ID获取测试项,如果它存在于子项中。

ParameterDescription
itemId: string

要获取的项目ID。

ReturnsDescription
TestItem

找到的项目,如果不存在则为undefined。

替换集合中存储的项目。

ParameterDescription
items: readonly TestItem[]

要存储的项目。

ReturnsDescription
void

TestMessage

与测试状态相关的消息。可以链接到特定的源范围——例如,对于断言失败非常有用。

静态

创建一个新的TestMessage,它将在编辑器中以差异形式呈现。

ParameterDescription
message: string | MarkdownString

向用户显示的消息。

expected: string

预期输出。

actual: string

实际输出。

ReturnsDescription
TestMessage

构造函数

创建一个新的 TestMessage 实例。

ParameterDescription
message: string | MarkdownString

向用户显示的消息。

ReturnsDescription
TestMessage

属性

实际测试输出。如果与expectedOutput一起提供,将显示差异视图。

测试项的上下文值。这可以用于向测试预览视图贡献特定于消息的操作。此处设置的值可以在以下menus贡献点的testMessage属性中找到:

  • testing/message/context - 结果树中消息的上下文菜单
  • testing/message/content - 一个覆盖编辑器内容的突出按钮,消息在此显示。

例如:

"contributes": {
  "menus": {
    "testing/message/content": [
      {
        "command": "extension.deleteCommentThread",
        "when": "testMessage == canApplyRichDiff"
      }
    ]
  }
}

该命令将使用包含以下内容的对象调用:

预期的测试输出。如果与实际输出一起给出,将显示差异视图。

关联文件位置。

显示人类可读的消息文本。

与消息或失败相关的堆栈跟踪。

TestMessageStackFrame

TestMessage.stackTrace中找到的堆栈帧。

构造函数

ParameterDescription
label: string

堆栈帧的名称

uri?: Uri
position?: Position

堆栈帧在文件中的位置

ReturnsDescription
TestMessageStackFrame

属性

堆栈帧的名称,通常是一个方法或函数名。

堆栈帧在文件中的位置。

此堆栈帧的位置。如果编辑器可以访问调用帧的位置,则应将其作为URI提供。

TestRun

TestRun 表示正在进行或已完成的测试运行,并提供方法来报告运行中各个测试的状态。

事件

当编辑器不再对与测试运行相关的数据感兴趣时触发的事件。

属性

测试运行是否会在编辑器重新加载时持久化。

运行的可读名称。这可以用于在测试运行中区分多组结果。例如,如果测试在多个平台上运行,这将非常有用。

当从用户界面取消测试运行时,将触发的取消令牌。

方法

在运行中添加文件的覆盖率。

ParameterDescription
fileCoverage: FileCoverage
ReturnsDescription
void

附加来自测试运行器的原始输出。根据用户的要求,输出将显示在终端中。支持ANSI转义序列,如颜色和文本样式。新行必须以CRLF(\r\n)而不是LF(\n)给出。

ParameterDescription
output: string

输出要追加的文本。

location?: Location

指示输出已在给定位置记录。

test?: TestItem

测试项目以将输出与之关联。

ReturnsDescription
void

表示测试运行的结束。运行中包含的任何测试,如果其状态尚未更新,将被重置状态。

ParameterDescription
ReturnsDescription
void

表示测试已排队等待稍后执行。

ParameterDescription
test: TestItem

要更新的测试项。

ReturnsDescription
void

表示测试出错。您应该传递一个或多个TestMessages来描述失败。这与“失败”状态不同,因为它表示测试根本无法执行,例如由于编译错误。

ParameterDescription
test: TestItem

要更新的测试项。

message: TestMessage | readonly TestMessage[]

与测试失败相关的消息。

duration?: number

测试执行所花费的时间,以毫秒为单位。

ReturnsDescription
void

表示测试失败。您应该传递一个或多个 TestMessages 来描述失败。

ParameterDescription
test: TestItem

要更新的测试项。

message: TestMessage | readonly TestMessage[]

与测试失败相关的消息。

duration?: number

测试执行所花费的时间,以毫秒为单位。

ReturnsDescription
void

表示测试已通过。

ParameterDescription
test: TestItem

要更新的测试项。

duration?: number

测试执行所花费的时间,以毫秒为单位。

ReturnsDescription
void

表示测试已被跳过。

ParameterDescription
test: TestItem

要更新的测试项。

ReturnsDescription
void

表示测试已开始运行。

ParameterDescription
test: TestItem

要更新的测试项。

ReturnsDescription
void

TestRunProfile

TestRunProfile描述了在TestController中执行测试的一种方式。

事件

当用户更改了此配置文件是否为默认配置文件时触发。事件包含isDefault的新值。

属性

如果存在此方法,用户界面中将显示一个配置齿轮,点击时将调用此方法。调用时,您可以执行其他编辑器操作,例如显示快速选择或打开配置文件。

ParameterDescription
ReturnsDescription
void

控制此配置文件是否为其类型被操作时将采取的默认操作。例如,如果用户点击通用的“全部运行”按钮,则将执行TestRunProfileKind.Run的默认配置文件,尽管用户可以配置此设置。

用户在默认配置文件中所做的更改将在onDidChangeDefault事件后反映在此属性中。

配置此配置文件控制的执行类型。如果某种类型没有配置文件,则在用户界面中将不可用。

在用户界面中向用户显示的标签。

请注意,如果用户请求以某种方式重新运行测试,标签具有一定的意义。例如,如果测试是正常运行的,而用户请求在调试模式下重新运行它们,编辑器将尝试使用具有相同Debug类型标签的配置。如果没有这样的配置,将使用默认配置。

一个由扩展提供的函数,用于为文件提供详细的语句和函数级别的覆盖率。当需要更多关于文件的详细信息时,例如在编辑器中打开或在测试覆盖率视图中展开时,编辑器将调用此函数。

传递给此函数的FileCoverage对象是与该配置文件关联的TestRun.addCoverage调用中发出的相同实例。

ParameterDescription
testRun: TestRun
fileCoverage: FileCoverage
token: CancellationToken
ReturnsDescription
Thenable<FileCoverageDetail[]>

一个由扩展提供的函数,用于为文件中的单个测试提供详细的语句和函数级别覆盖率。这是TestRunProfile.loadDetailedCoverage的每个测试的兄弟函数,仅在FileCoverage.includesTests中提供了测试项并且仅在报告了此类数据的文件中调用。

通常,当用户打开文件时,会首先调用TestRunProfile.loadDetailedCoverage,然后如果他们深入查看特定测试的覆盖率信息,则会调用此方法。此方法应仅返回在运行期间由特定测试执行的语句和声明的覆盖率数据。

传递给此函数的FileCoverage对象是与该配置文件关联的TestRun.addCoverage调用中发出的相同实例。

ParameterDescription
testRun: TestRun

生成覆盖率数据的测试运行。

fileCoverage: FileCoverage

要加载详细覆盖率的文件覆盖率对象。

fromTestItem: TestItem

请求覆盖信息的测试项。

token: CancellationToken

一个取消令牌,表示应取消操作。

ReturnsDescription
Thenable<FileCoverageDetail[]>

调用处理程序以启动测试运行。当调用时,函数应至少调用一次 TestController.createTestRun,并且所有与请求关联的测试运行 应在函数返回或返回的承诺解决之前创建。

如果设置了supportsContinuousRun,那么TestRunRequest.continuous可能为true。在这种情况下,配置文件应观察源代码的变化,并通过调用TestController.createTestRun创建新的测试运行,直到在token上请求取消。

ParameterDescription
request: TestRunRequest

请求测试运行的信息。

token: CancellationToken
ReturnsDescription
void | Thenable<void>

此配置文件是否支持请求的连续运行。如果是这样,那么TestRunRequest.continuous可以设置为true。默认为false。

与配置文件关联的标签。如果设置了此标签,只有具有相同标签的TestItem实例才有资格在此配置文件中执行。

方法

删除运行配置文件。

ParameterDescription
ReturnsDescription
void

TestRunProfileKind

TestRunProfiles 控制的执行类型。

枚举成员

Run 测试配置文件类型。

Debug 测试配置文件类型。

Coverage 测试配置文件类型。

TestRunRequest

TestRunRequest 是 TestRun 的前身,而 TestRun 是通过将请求传递给 TestController.createTestRun 创建的。TestRunRequest 包含有关应运行哪些测试、不应运行哪些测试以及如何运行它们(通过 profile)的信息。

通常,TestRunRequests 是由编辑器创建并传递给 TestRunProfile.runHandler 的,但你也可以在 runHandler 之外创建测试 请求和运行。

构造函数

ParameterDescription
include?: readonly TestItem[]

要运行的特定测试数组,或未定义以运行所有测试

exclude?: readonly TestItem[]

要从运行中排除的测试数组。

profile?: TestRunProfile

用于此请求的运行配置文件。

continuous?: boolean

是否在源代码更改时持续运行测试。

preserveFocus?: boolean

是否在运行开始时保留用户的焦点

ReturnsDescription
TestRunRequest

属性

配置文件是否应在源代码更改时持续运行。仅适用于设置了TestRunProfile.supportsContinuousRun的配置文件。

用户标记为从本次运行中包含的测试中排除的测试数组;排除应在包含之后应用。

如果没有请求排除,则可以省略。测试控制器不应运行排除的测试或排除测试的任何子测试。

用于运行特定测试的过滤器。如果提供了该过滤器,扩展应运行所有包含的测试及其所有子测试,排除出现在TestRunRequest.exclude中的任何测试。如果此属性未定义,则扩展应简单地运行所有测试。

运行测试的过程应该解析任何尚未解析的测试项的子项。

控制测试结果视图的聚焦方式。如果为true,编辑器将保持用户的焦点。如果为false,编辑器将倾向于将焦点移动到测试结果视图,尽管用户可以配置此行为。

用于此请求的配置文件。对于从编辑器用户界面发出的请求,这将始终被定义,尽管扩展可能以编程方式创建不与任何配置文件关联的请求。

TestTag

标签可以与TestItemsTestRunProfiles关联。带有标签的配置文件只能 执行在其TestItem.tags数组中包含该标签的测试。

构造函数

创建一个新的TestTag实例。

ParameterDescription
id: string

测试标签的ID。

ReturnsDescription
TestTag

属性

测试标签的ID。具有相同ID的TestTag实例被视为相同。

TextDocument

表示一个文本文档,例如源文件。文本文档具有,并且了解底层资源(如文件)的信息。

属性

本文档中主要使用的行尾序列。

关联资源的文件系统路径。是TextDocument.uri.fsPath的简写形式。与uri方案无关。

true 如果文档已关闭。关闭的文档不再同步,并且在再次打开相同资源时不会被重新使用。

true 如果有未持久化的更改。

此文档是否代表一个尚未保存的无标题文件。注意,这并不意味着文档将被保存到磁盘,使用 Uri.scheme 来确定文档将被 保存 的位置,例如 file, ftp 等。

与此文档关联的语言标识符。

本文档中的行数。

此文档的关联URI。

注意,大多数文档使用file方案,这意味着它们是磁盘上的文件。然而,并非所有文档都保存在磁盘上,因此在尝试访问磁盘上的底层文件或同级文件之前,必须检查scheme

另请参阅

本文档的版本号(每次更改后,包括撤销/重做,将严格递增)。

方法

获取此文档的文本。可以通过提供一个范围来检索子字符串。该范围将被调整

ParameterDescription
range?: Range

仅包括范围内的文本。

ReturnsDescription
string

提供的范围内的文本或整个文本。

获取给定位置的单词范围。默认情况下,单词由常见的分隔符定义,如空格、-、_等。此外,每种语言可以定义自定义的[单词定义]。也可以提供自定义的正则表达式。

  • 注意 1: 自定义的正则表达式不能匹配空字符串,如果匹配了空字符串,它将被忽略。
  • 注意2: 自定义的正则表达式将无法匹配多行字符串,并且为了速度考虑,正则表达式不应匹配带有空格的单词。对于更复杂、非单词的场景,请使用 TextLine.text

位置将被调整

ParameterDescription
position: Position

一个位置。

regex?: RegExp

可选的正则表达式,用于描述什么是单词。

ReturnsDescription
Range

跨越一个单词的范围,或undefined

返回由行号指定的文本行。请注意,返回的对象不是实时的,文档的更改不会反映在其中。

ParameterDescription
line: number

行号在 [0, lineCount) 范围内。

ReturnsDescription
TextLine

一条线

返回由位置表示的文本行。请注意,返回的对象不是实时的,对文档的更改不会反映出来。

位置将被调整

另请参阅 TextDocument.lineAt

ParameterDescription
position: Position

一个位置。

ReturnsDescription
TextLine

一条线

将位置转换为从零开始的偏移量。

位置将被调整

ParameterDescription
position: Position

一个位置。

ReturnsDescription
number

一个有效的从零开始的偏移量。

将基于零的偏移量转换为位置。

ParameterDescription
offset: number

一个从零开始的偏移量。

ReturnsDescription
Position

一个有效的Position

保存底层文件。

ParameterDescription
ReturnsDescription
Thenable<boolean>

一个承诺,当文件保存成功时将解析为true。如果保存失败,将返回false

确保位置包含在此文档的范围内。

ParameterDescription
position: Position

一个位置。

ReturnsDescription
Position

给定的位置或一个新的、调整后的位置。

确保范围完全包含在此文档中。

ParameterDescription
range: Range

一个范围。

ReturnsDescription
Range

给定的范围或一个新的、调整后的范围。

TextDocumentChangeEvent

描述事务性文档更改的事件。

属性

内容更改的数组。

受影响的文档。

文档更改的原因。 如果原因未知,则为undefined

TextDocumentChangeReason

文本文档发生变化的原因。

枚举成员

文本更改是由撤销操作引起的。

文本更改是由重做操作引起的。

TextDocumentContentChangeEvent

描述文档文本中单个更改的事件。

属性

被替换的范围。

被替换的范围的长度。

被替换范围的偏移量。

范围的新文本。

TextDocumentContentProvider

文本文档内容提供者允许向编辑器添加只读文档,例如来自dll的源代码或从md生成的html。

内容提供者是为注册uri-scheme。当需要加载具有该方案的uri时, 会询问内容提供者。

事件

一个信号资源已更改的事件。

方法

为给定的URI提供文本内容。

编辑器将使用返回的字符串内容创建一个只读的文档。当相应的文档被关闭时,应释放分配的资源。

注意: 创建的文档内容可能与提供的文本不完全相同,这是由于行尾序列的规范化所致。

ParameterDescription
uri: Uri

一个URI,其方案与此提供程序注册的方案相匹配。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<string>

一个字符串或一个解析为此类的thenable。

TextDocumentSaveReason

表示文本文档被保存的原因。

枚举成员

手动触发,例如用户按下保存按钮、开始调试或通过API调用。

延迟后自动执行。

当编辑器失去焦点时。

TextDocumentShowOptions

表示配置在编辑器中显示文档行为的选项。

属性

一个可选的标志,当true时,将阻止编辑器获取焦点。

一个可选标志,用于控制编辑器标签是否显示为预览。预览标签将被替换和重复使用,直到设置为保持 - 无论是显式设置还是通过编辑。

注意,如果用户在设置中禁用了预览编辑器,则该标志将被忽略。

一个可选的选择,适用于编辑器中的文档。

一个可选的视图列,其中应显示编辑器。 默认是活动列。不存在的列将根据需要创建,最多到ViewColumn.Nine。 使用ViewColumn.Beside在当前活动列的旁边打开编辑器。

TextDocumentWillSaveEvent

文档即将保存时触发的事件。

要在文档保存之前对其进行修改,请调用 waitUntil函数,并传入一个可解析为 文本编辑数组的thenable。

属性

将要保存的文档。

触发保存的原因。

方法

允许暂停事件循环并应用预保存编辑。 对此函数的后续调用的编辑将按顺序应用。如果文档发生了并发修改,这些编辑将被忽略

注意: 此函数只能在事件分发期间调用,不能以异步方式调用:

workspace.onWillSaveTextDocument(event => {
  // async, will *throw* an error
  setTimeout(() => event.waitUntil(promise));

  // sync, OK
  event.waitUntil(promise);
});
ParameterDescription
thenable: Thenable<readonly TextEdit[]>

一个可解析为预保存编辑的thenable。

ReturnsDescription
void

允许暂停事件循环,直到提供的 thenable 解析完成。

注意: 此函数只能在事件调度期间调用。

ParameterDescription
thenable: Thenable<any>

一个延迟保存的thenable。

ReturnsDescription
void

文本编辑

文本编辑表示应该应用于文档的编辑。

静态

用于创建删除编辑的工具。

ParameterDescription
range: Range

一个范围。

ReturnsDescription
TextEdit

一个新的文本编辑对象。

用于创建插入编辑的工具。

ParameterDescription
position: Position

一个位置,将变成一个空范围。

newText: string

一个字符串。

ReturnsDescription
TextEdit

一个新的文本编辑对象。

用于创建替换编辑的实用工具。

ParameterDescription
range: Range

一个范围。

newText: string

一个字符串。

ReturnsDescription
TextEdit

一个新的文本编辑对象。

用于创建eol-edit的工具。

ParameterDescription
eol: EndOfLine

一个eol序列

ReturnsDescription
TextEdit

一个新的文本编辑对象。

构造函数

创建一个新的TextEdit。

ParameterDescription
range: Range

一个范围。

newText: string

一个字符串。

ReturnsDescription
TextEdit

属性

文档中使用的eol序列。

注意 eol-sequence 将应用于整个文档。

此编辑将插入的字符串。

此编辑适用的范围。

TextEditor

表示一个附加到文档的编辑器。

属性

与此文本编辑器关联的文档。在此文本编辑器的整个生命周期中,文档将保持不变。

文本编辑器选项。

此文本编辑器的主要选择。是TextEditor.selections[0]的简写。

此文本编辑器中的选择。主要选择始终位于索引0。

此编辑器显示的列。如果这不是主编辑器之一(例如嵌入式编辑器),或者当编辑器列大于三时,将为undefined

编辑器中当前可见的范围(垂直方向)。 这仅考虑垂直滚动,而不考虑水平滚动。

方法

对与此文本编辑器关联的文档执行编辑。

给定的回调函数会与一个编辑构建器一起调用,该构建器必须用于进行编辑。请注意,编辑构建器仅在回调执行期间有效。

ParameterDescription
callback: (editBuilder: TextEditorEdit) => void

一个可以使用编辑构建器创建编辑的函数。

options?: {undoStopAfter: boolean, undoStopBefore: boolean}

围绕此编辑的撤销/重做行为。默认情况下,将在此编辑前后创建撤销停止点。

ReturnsDescription
Thenable<boolean>

一个承诺,解析为一个值,指示是否可以应用编辑。

隐藏文本编辑器。

  • 已弃用 - 请改用命令 workbench.action.closeActiveEditor。 此方法显示意外行为,并将在下一个主要更新中移除。
ParameterDescription
ReturnsDescription
void

插入一个片段并将编辑器置于片段模式。"片段模式"意味着编辑器会添加占位符和额外的光标,以便用户可以完成或接受片段。

ParameterDescription
snippet: SnippetString

在此编辑中插入的代码片段。

location?: Range | Position | readonly Range[] | readonly Position[]

插入代码片段的位置或范围,默认为当前编辑器选择或选择项。

options?: {undoStopAfter: boolean, undoStopBefore: boolean}

围绕此编辑的撤销/重做行为。默认情况下,撤销停止点将在此编辑之前和之后创建。

ReturnsDescription
Thenable<boolean>

一个承诺,解析时返回一个值,指示片段是否可以插入。请注意,该承诺并不表示片段已完全填充或被接受。

按照revealType指示滚动以显示给定范围。

ParameterDescription
range: Range

一个范围。

revealType?: TextEditorRevealType

用于显示range的滚动策略。

ReturnsDescription
void

向文本编辑器添加一组装饰。如果已经存在具有给定装饰类型的装饰集,它们将被替换。如果rangesOrOptions为空,将移除具有给定装饰类型的现有装饰。

另请参阅 createTextEditorDecorationType.

ParameterDescription
decorationType: TextEditorDecorationType

一种装饰类型。

rangesOrOptions: readonly Range[] | readonly DecorationOptions[]

可以是范围或更详细的选项

ReturnsDescription
void

显示文本编辑器。

ParameterDescription
column?: ViewColumn

显示此编辑器的。 此方法显示出意外的行为,并将在下一个主要更新中移除。

ReturnsDescription
void

TextEditorCursorStyle

光标的渲染样式。

枚举成员

将光标渲染为一条垂直的粗线。

将光标渲染为填充的块。

将光标渲染为一条粗的水平线。

将光标渲染为一条垂直的细线。

将光标渲染为带轮廓的块。

将光标渲染为一条细水平线。

TextEditorDecorationType

表示在文本编辑器中共享相同样式选项的一组装饰的句柄。

要获取TextEditorDecorationType的实例,请使用 createTextEditorDecorationType

属性

句柄的内部表示。

方法

移除这种装饰类型以及所有使用它的文本编辑器上的所有装饰。

ParameterDescription
ReturnsDescription
void

TextEditorEdit

一个复杂的编辑操作,将在TextEditor上以一次事务的形式应用。 这包含了编辑的描述,以及编辑是否有效(即没有重叠的区域,文档在此期间没有被更改等)。 如果有效,它们可以应用于与文本编辑器关联的文档

方法

删除某个文本区域。

ParameterDescription
location: Range | Selection

此操作应移除的范围。

ReturnsDescription
void

在某个位置插入文本。 你可以在value中使用\r\n\n,它们将被规范化为当前的文档。 尽管可以使用replace进行等效的文本编辑,但insert会产生不同的选择结果(它会被移动)。

ParameterDescription
location: Position

新文本应插入的位置。

value: string

此操作应插入的新文本。

ReturnsDescription
void

用新值替换某个文本区域。 你可以在value中使用\r\n\n,它们将被规范化为当前的文档

ParameterDescription
location: Range | Position | Selection

此操作应移除的范围。

value: string

此操作在移除location后应插入的新文本。

ReturnsDescription
void

设置行尾序列。

ParameterDescription
endOfLine: EndOfLine

新的行尾为文档

ReturnsDescription
void

TextEditorLineNumbersStyle

行号的渲染样式。

枚举成员

不要渲染行号。

渲染行号。

渲染行号,其值相对于主光标位置。

每第10行显示行号。

TextEditorOptions

表示一个文本编辑器选项

属性

此编辑器中光标的渲染样式。 当获取文本编辑器的选项时,此属性将始终存在。 当设置文本编辑器的选项时,此属性是可选的。

insertSpaces为true时,要插入的空格数。

当获取文本编辑器的选项时,此属性将始终是一个数字(已解析)。 当设置文本编辑器的选项时,此属性是可选的,它可以是一个数字或"tabSize"

按下Tab键时插入n个空格。 当获取文本编辑器的选项时,此属性将始终为布尔值(已解析)。 当设置文本编辑器的选项时,此属性是可选的,可以是布尔值或"auto"

渲染相对于当前行号的行号。 在获取文本编辑器的选项时,此属性将始终存在。 在设置文本编辑器的选项时,此属性是可选的。

制表符占用的空格大小。这用于两个目的:

  • 制表符的渲染宽度;
  • insertSpaces为真且indentSize设置为"tabSize"时,要插入的空格数。

当获取文本编辑器的选项时,此属性将始终是一个数字(已解析)。 当设置文本编辑器的选项时,此属性是可选的,它可以是一个数字或"auto"

TextEditorOptionsChangeEvent

表示描述文本编辑器选项更改的事件。

属性

文本编辑器的选项已更改。

TextEditorRevealType

表示文本编辑器中的不同reveal策略。

枚举成员

范围将尽可能少地滚动显示。

范围将始终在视口的中心显示。

如果范围在视口之外,它将在视口中心显示。 否则,它将尽可能少地滚动显示。

范围将始终显示在视口的顶部。

TextEditorSelectionChangeEvent

表示描述文本编辑器选择变化的事件。

属性

触发此事件的更改类型。可以是undefined

: TextEditor

文本编辑器的选择已更改。

TextEditorSelectionChangeKind

表示可能导致选择更改事件的来源。

枚举成员

由于在编辑器中输入,选择已更改。

由于在编辑器中点击而导致的选区更改。

选择已更改,因为运行了一个命令。

TextEditorViewColumnChangeEvent

表示描述文本编辑器的视图列更改的事件。

属性

文本编辑器的视图列已更改。

TextEditorVisibleRangesChangeEvent

表示描述文本编辑器的可见范围变化的事件。

属性

文本编辑器的可见范围已更改。

TextLine

表示一行文本,例如一行源代码。

TextLine 对象是不可变的。当文档发生变化时,先前检索的行将不会代表最新状态。

属性

第一个非空白字符的偏移量,由/\s/定义。注意,如果一行全是空白字符,则返回该行的长度。

这行是否仅为空白,是TextLine.firstNonWhitespaceCharacterIndex === TextLine.text.length的简写。

从零开始的行号。

此行覆盖的范围不包括行分隔符字符。

该行覆盖的范围包括行分隔符字符。

这行文本没有行分隔符。

ThemableDecorationAttachmentRenderOptions

表示文本装饰内容之前之后的主题特定渲染样式。

属性

将应用于装饰附件的CSS样式属性。

将应用于装饰附件的CSS样式属性。

将应用于由装饰包围的文本的CSS样式属性。

将应用于装饰附件的CSS样式属性。

一个绝对路径或一个URI,用于在附件中渲染图像。可以显示一个图标或文本,但不能同时显示两者。

定义在附件中显示的文本内容。可以显示图标或文本,但不能同时显示两者。

将应用于装饰附件的CSS样式属性。

将应用于装饰附件的CSS样式属性。

将应用于装饰附件的CSS样式属性。

将应用于装饰附件的CSS样式属性。

将应用于装饰附件的CSS样式属性。

将应用于装饰附件的CSS样式属性。

ThemableDecorationInstanceRenderOptions

表示装饰实例的主题化渲染选项。

属性

定义在装饰文本后插入的附件的渲染选项。

定义在装饰文本之前插入的附件的渲染选项。

ThemableDecorationRenderOptions

表示文本编辑器装饰的主题特定渲染样式。

属性

定义在装饰文本后插入的附件的渲染选项。

装饰的背景颜色。使用 rgba() 并定义透明背景颜色以与其他装饰良好配合。 或者可以从颜色注册表中引用颜色。

定义在装饰文本之前插入的附件的渲染选项。

将应用于由装饰包围的文本的CSS样式属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'border'来设置一个或多个单独的边框属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'border'来设置一个或多个单独的边框属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'border'来设置一个或多个单独的边框属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'border'来设置一个或多个单独的边框属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'border'来设置一个或多个单独的边框属性。

将应用于由装饰包围的文本的CSS样式属性。

将应用于由装饰包围的文本的CSS样式属性。

将应用于由装饰包围的文本的CSS样式属性。

将应用于由装饰包围的文本的CSS样式属性。

一个绝对路径或一个URI,用于在边栏中渲染图像。

指定图标槽的大小。 可用值为 'auto'、'contain'、'cover' 和任何百分比值。 更多信息:https://msdn.microsoft.com/en-us/library/jj127316(v=vs.85).aspx

将应用于由装饰包围的文本的CSS样式属性。

将应用于由装饰包围的文本的CSS样式属性。

将应用于由装饰包围的文本的CSS样式属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'outline'来设置一个或多个单独的轮廓属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'outline'来设置一个或多个单独的轮廓属性。

CSS样式属性,将应用于由装饰包围的文本。 最好使用'outline'来设置一个或多个单独的轮廓属性。

概览标尺中装饰的颜色。使用rgba()并定义透明颜色以与其他装饰良好配合。

将应用于由装饰包围的文本的CSS样式属性。

主题颜色

引用在https://code.visualstudio.com/api/references/theme-color中定义的工作台颜色之一。 使用主题颜色优于自定义颜色,因为它为主题作者和用户提供了更改颜色的可能性。

构造函数

创建对主题颜色的引用。

ParameterDescription
id: string
ReturnsDescription
ThemeColor

属性

此颜色的ID。

ThemeIcon

对命名图标的引用。目前支持文件文件夹主题图标ID。使用主题图标优于自定义图标,因为它允许产品主题作者更改图标。

注意主题图标也可以在标签和描述中渲染。支持主题图标的地方会明确指出这一点,并且它们使用$()-语法,例如quickPick.label = "Hello World $(globe)"

静态

引用表示文件的图标。该图标取自当前文件图标主题,或使用占位符图标。

引用表示文件夹的图标。该图标取自当前文件图标主题,或使用占位符图标。

构造函数

创建一个对主题图标的引用。

ParameterDescription
id: string
color?: ThemeColor

可选的 ThemeColor 用于图标。该颜色目前仅在 TreeItem 中使用。

ReturnsDescription
ThemeIcon

属性

图标的可选主题颜色。该颜色目前仅在TreeItem中使用。

TreeCheckboxChangeEvent

描述树项目复选框状态变化的事件。

属性

已选中或未选中的项目。

TreeDataProvider

一个提供树形数据的数据提供者

事件

一个可选的事件,用于表示元素或根节点已更改。 这将触发视图递归地更新已更改的元素/根节点及其子节点(如果显示)。 要表示根节点已更改,请不要传递任何参数或传递undefinednull

方法

获取element的子元素,如果没有传递元素,则获取根元素。

ParameterDescription
element?: T

提供者从中获取子元素的元素。可以是undefined

ReturnsDescription
ProviderResult<T[]>

如果没有传递element,则为根的子元素。

可选方法返回element的父元素。 如果element是根元素的子元素,则返回nullundefined

注意: 此方法应被实现以便访问 reveal API。

ParameterDescription
element: T

需要返回其父元素的元素。

ReturnsDescription
ProviderResult<T>

element的父元素。

获取elementTreeItem表示

ParameterDescription
element: T

请求TreeItem表示的元素。

ReturnsDescription
TreeItem | Thenable<TreeItem>

元素的TreeItem表示。

在悬停时调用以解析TreeItem属性(如果未定义)。 在树项点击/打开时调用以解析TreeItem属性(如果未定义)。 只有在resolveTreeItem中未定义的属性才能被解析。 功能可能会在以后扩展,包括在选择和/或打开时调用以解析其他缺失的属性。

每个TreeItem只会被调用一次。

onDidChangeTreeData 不应在 resolveTreeItem 内部触发。

注意,当树形项已经在用户界面中显示时,会调用此函数。 因此,任何改变展示的属性(标签、描述等)都不能被更改。

ParameterDescription
item: TreeItem

item的未定义属性应被设置,然后应返回item

element: T

与TreeItem关联的对象。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<TreeItem>

解析后的树项或解析为此类的可解析对象。返回给定的item是可以的。当没有返回结果时,将使用给定的item

TreeDragAndDropController

TreeView中的拖放操作提供支持。

属性

这个TreeDragAndDropControllerhandleDrag方法可能会添加到树数据传输中的MIME类型。 这些可能是定义良好的、现有的MIME类型,也可能是由扩展定义的MIME类型。

推荐的树状结构的MIME类型(application/vnd.code.tree.)将会被自动添加。

DragAndDropControllerhandleDrop方法支持的MIME类型。这些可能是定义良好的、现有的MIME类型,也可能是由扩展定义的MIME类型。

为了支持从树中掉落,您需要添加该树的MIME类型。 这包括从同一棵树内的掉落。 建议树的MIME类型格式为application/vnd.code.tree.

使用特殊的files mime类型来支持所有类型的拖放文件files,无论文件的实际mime类型是什么。

了解拖动项的MIME类型:

  1. 设置你的 DragAndDropController
  2. 使用开发者:设置日志级别...命令将级别设置为“调试”
  3. 打开开发者工具,将未知MIME类型的项目拖到您的树上。MIME类型将被记录到开发者控制台

请注意,无法发送到扩展程序的MIME类型将被省略。

方法

当用户开始从此DragAndDropController拖动项目时,将调用handleDrag。 扩展程序可以使用handleDrag将其DataTransferItem项目添加到拖放操作中。

当项目被拖放到同一棵树中的另一个树项目上时,您的DataTransferItem对象将被保留。使用推荐的树MIME类型(application/vnd.code.tree.)在数据传输中添加树对象。有关如何最好地利用此功能的详细信息,请参阅DataTransferItem的文档。

要添加一个可以拖入编辑器的数据传输项,请使用应用程序特定的MIME类型"text/uri-list"。 "text/uri-list"的数据应该是一个字符串,其中包含用toString()处理的Uris,并用\r\n分隔。要在文件中指定光标位置, 将Uri的片段设置为L3,5,其中3是行号,5是列号。

ParameterDescription
source: readonly T[]

拖放操作的源项目。

dataTransfer: DataTransfer

与此拖动相关的数据传输。

token: CancellationToken

一个取消令牌,指示拖动已被取消。

ReturnsDescription
void | Thenable<void>

当拖放操作导致在此DragAndDropController所属的树上放置时调用。

扩展应该为任何需要刷新的元素触发onDidChangeTreeData

ParameterDescription
target: T

拖放操作发生的目标树元素。当未定义时,目标是根元素。

dataTransfer: DataTransfer

拖动源的数据传输项。

token: CancellationToken

一个取消令牌,表示删除已被取消。

ReturnsDescription
void | Thenable<void>

TreeItem

树项是树的用户界面元素。树项由数据提供者创建。

构造函数

ParameterDescription
label: string | TreeItemLabel

描述此项的人类可读字符串

collapsibleState?: TreeItemCollapsibleState

TreeItemCollapsibleState 树项的折叠状态。默认是 TreeItemCollapsibleState.None

ReturnsDescription
TreeItem

ParameterDescription
resourceUri: Uri

表示此项目的资源的Uri

collapsibleState?: TreeItemCollapsibleState

TreeItemCollapsibleState 树项的折叠状态。默认是 TreeItemCollapsibleState.None

ReturnsDescription
TreeItem

属性

当屏幕阅读器与此树项交互时使用的可访问性信息。 通常,TreeItem不需要设置accessibilityInformation的role; 然而,在某些情况下,TreeItem不以树状方式显示,此时设置role可能是有意义的。

TreeItemCheckboxState 树项的复选框状态。 当 checkboxState 发生变化时,应触发 onDidChangeTreeData

TreeItemCollapsibleState 树项目的状态。

当选择树项目时应执行的Command

请在树项在编辑器中打开内容时使用vscode.openvscode.diff作为命令ID。使用这些命令可以确保生成的编辑器与其他内置树打开编辑器的方式保持一致。

树形项目的上下文值。这可以用于在树中贡献项目特定的操作。 例如,一个树形项目被赋予了一个上下文值folder。当使用menus扩展点向view/item/context贡献操作时,你可以在when表达式中为键viewItem指定上下文值,如viewItem == folder

"contributes": {
  "menus": {
    "view/item/context": [
      {
        "command": "extension.deleteFolder",
        "when": "viewItem == folder"
      }
    ]
  }
}

这将仅显示contextValuefolder的项目的extension.deleteFolder操作。

一个人类可读的字符串,渲染得不太显眼。 当true时,它从resourceUri派生,当falsy时,它不显示。

树项目的图标路径或ThemeIcon。 当falsy时,如果项目可折叠,则分配文件夹主题图标,否则分配文件主题图标。 当指定文件或文件夹ThemeIcon时,图标是从当前文件图标主题中派生的,使用resourceUri(如果提供)指定的主题图标。

树项的可选ID,必须在整个树中唯一。该ID用于保留树项的选择和展开状态。

如果没有提供,将使用树项的标签生成一个id。注意,当标签更改时,id也会更改,选择和展开状态将无法保持稳定。

描述此项目的人类可读字符串。当falsy时,它从resourceUri派生。

表示此项目的资源的Uri

当未提供时,将用于派生label。 当iconPath具有ThemeIcon值时,将用于从当前文件图标主题派生图标。

当您悬停在此项目上时显示的工具提示文本。

TreeItemCheckboxState

树形项目的复选框状态

枚举成员

确定一个项目未被选中

确定一个项目是否被选中

TreeItemCollapsibleState

树形项目的可折叠状态

枚举成员

确定一个项目既不能被折叠也不能被展开。意味着它没有子项。

确定一个项目是否被折叠

确定一个项目是否展开

TreeItemLabel

描述树项的标签

属性

标签中要突出显示的范围。范围被定义为两个数字的元组,其中第一个是包含的起始索引,第二个是排除的结束索引。

描述Tree item的可读字符串。

TreeView

表示一个树形视图

事件

一个事件,用于表示元素或根已被选中或取消选中。

选择发生变化时触发的事件

可见性发生变化时触发的事件

当元素被折叠时触发的事件

当元素展开时触发的事件

属性

用于显示此TreeView的徽章。 要移除徽章,请设置为undefined。

一个可选的人类可读描述,在视图的标题中以较不突出的方式呈现。 将标题描述设置为null、undefined或空字符串将从视图中移除描述。

一个可选的人类可读消息,将在视图中呈现。 将消息设置为null、undefined或空字符串将从视图中移除该消息。

当前选定的元素。

树视图的标题最初是从扩展包的package.json中获取的 对标题属性的更改将正确地反映在视图标题的UI中。

true 如果 tree view 可见,否则 false

方法

释放此对象。

ParameterDescription
ReturnsDescription
any

在树视图中显示给定的元素。 如果树视图不可见,则显示树视图并显示元素。

默认情况下,显示的元素会被选中。 为了不选中,将选项select设置为false。 为了聚焦,将选项focus设置为true。 为了展开显示的元素,将选项expand设置为true。要递归展开,将expand设置为要展开的层级数。

ParameterDescription
element: T
options?: {expand: number | boolean, focus: boolean, select: boolean}
ReturnsDescription
Thenable<void>

TreeViewExpansionEvent

TreeView中的元素展开或折叠时触发的事件

属性

展开或折叠的元素。

TreeViewOptions

创建TreeView的选项

属性

树是否支持多选。当树支持多选并且从树中执行命令时,命令的第一个参数是执行命令的树项,第二个参数是包含所有选中的树项的数组。

一个可选的接口,用于在树视图中实现拖放功能。

默认情况下,当树形项目的子项已经被获取时,子复选框会根据父树形项目的选中状态自动管理。 如果树形项目默认是折叠的(意味着子项尚未被获取),那么子复选框将不会被更新。 要覆盖此行为并在扩展中管理子和父复选框的状态,请将此设置为true

示例中,TreeViewOptions.manageCheckboxStateManually 为 false 时的默认行为:

  1. 如果选中了一个树项,那么它的子项将被获取。子项将被选中。

  2. 树项目的父项被选中。该树项目及其所有兄弟项目将被选中。

  • 父节点
    • 子节点 1
    • 子节点 2 当用户勾选父节点时,树将如下所示:
  • 父级
    • 子级 1
    • 子级 2
  1. 一个树项目及其所有兄弟项目被选中。父项目将被选中。
  • 父节点
    • 子节点 1
    • 子节点 2 当用户选中子节点 1 和子节点 2 时,树将如下所示:
  • 父级
    • 子级 1
    • 子级 2
  1. 一个树项未被选中。父项也将被取消选中。
  • 父节点
    • 子节点 1
    • 子节点 2 当用户取消选中子节点 1 时,树将如下所示:
  • 父级
    • 子级 1
    • 子级 2

是否显示全部折叠操作。

一个提供树形数据的数据提供者。

TreeViewSelectionChangeEvent

树视图的选择发生变化时触发的事件

属性

选定的元素。

TreeViewVisibilityChangeEvent

树视图的可见性发生变化时触发的事件

属性

true 如果 tree view 可见,否则 false

TypeDefinitionProvider

类型定义提供者定义了扩展与转到类型定义功能之间的契约。

方法

提供给定位置和文档中符号的类型定义。

ParameterDescription
document: TextDocument

调用命令的文档。

position: Position

命令被调用的位置。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<Definition | LocationLink[]>

一个定义或一个解析为此的可thenable对象。可以通过返回undefinednull来表示没有结果。

TypeHierarchyItem

表示类型层次结构中的一个项目,如类或接口。

构造函数

创建一个新的类型层次结构项。

ParameterDescription
kind: SymbolKind

项目的种类。

name: string

项目的名称。

detail: string

项目的详细信息。

uri: Uri

项目的Uri。

range: Range

项目的整个范围。

selectionRange: Range

项目的选择范围。

ReturnsDescription
TypeHierarchyItem

属性

有关此项目的更多详细信息,例如函数的签名。

此项目的种类。

此项目的名称。

此符号的范围不包括前导/尾随空格,但包括其他所有内容,例如注释和代码。

当选择此符号时应选择和显示的范围,例如类的名称。必须包含在range属性中。

此项目的标签。

此项目的资源标识符。

TypeHierarchyProvider

类型层次结构提供者接口描述了扩展与类型层次结构功能之间的契约。

方法

通过返回由给定文档和位置表示的项目来引导类型层次结构。此项目将用作类型图的入口。当给定位置没有项目时,提供者应返回undefinednull

ParameterDescription
document: TextDocument

调用命令的文档。

position: Position

命令被调用的位置。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<TypeHierarchyItem | TypeHierarchyItem[]>

一个或多个类型层次结构项,或解析为此类的可thenable对象。可以通过返回undefinednull或空数组来表示没有结果。

提供一个项目的所有子类型,例如所有从给定项目派生/继承的类型。在图论中,这描述了类型图中的有向和注释边,例如给定项目是起始节点,结果是可到达的节点。

ParameterDescription
item: TypeHierarchyItem

应为其计算子类型的层次结构项。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<TypeHierarchyItem[]>

一组直接子类型或一个解析为此类的thenable。可以通过返回undefinednull来表示没有结果。

提供一个项目的所有超类型,例如一个类型所派生/继承的所有类型。在图论术语中,这描述了类型图中的有向和注释边,例如给定项目是起始节点,结果是可到达的节点。

ParameterDescription
item: TypeHierarchyItem

应计算其超类型的层次结构项。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<TypeHierarchyItem[]>

一组直接超类型或一个解析为此类的thenable。可以通过返回undefinednull来表示没有结果。

UIKind

可以使用扩展的UI类型。

枚举成员

扩展功能可以从桌面应用程序访问。

扩展程序可以通过网页浏览器访问。

Uri

一个通用资源标识符,表示磁盘上的文件或其他资源,如未命名的资源。

静态

从文件系统路径创建一个URI。scheme 将是 file

Uri.parseUri.file 之间的区别在于后者将参数视为路径,而不是字符串化的URI。例如,Uri.file(path) 等同于 Uri.parse('file://' + path),因为路径可能包含被解释的字符(# 和 ?)。请参见以下示例:

const good = URI.file('/coding/c#/project1');
good.scheme === 'file';
good.path === '/coding/c#/project1';
good.fragment === '';

const bad = URI.parse('file://' + '/coding/c#/project1');
bad.scheme === 'file';
bad.path === '/coding/c'; // path is now broken
bad.fragment === '/project1';
ParameterDescription
path: string

文件系统或UNC路径。

ReturnsDescription
Uri

一个新的 Uri 实例。

从其组成部分创建一个URI

另请参阅 Uri.toString

ParameterDescription
components: {authority: string, fragment: string, path: string, query: string, scheme: string}

Uri的组成部分。

ReturnsDescription
Uri

一个新的 Uri 实例。

创建一个新的URI,其路径是将基础URI的路径与提供的路径段连接起来的结果。

  • 注意1: joinPath 只影响路径组件,所有其他组件(方案、权限、查询和片段)保持不变。
  • 注意2:基础URI必须包含路径;否则会抛出错误。

路径段通过以下方式进行规范化:

  • 路径分隔符的序列(/\)被替换为单个分隔符
  • 对于Windows上的file-uris,反斜杠字符(``)被视为路径分隔符
  • the ..-segment 表示父段,the . 表示当前段
  • 路径有一个始终存在的根,例如在Windows上,驱动器字母是根 所以这是正确的:joinPath(Uri.file('file:///c:/root'), '../../other').fsPath === 'c:/other'
ParameterDescription
base: Uri

一个URI。必须包含路径。

...pathSegments: string[]

一个或多个路径片段

ReturnsDescription
Uri

一个新的uri,其路径与给定的片段连接

从字符串创建URI,例如 http://www.example.com/some/path, file:///usr/home, 或 scheme:with/path.

注意,有一段时间没有scheme的uris被接受了。这是不正确的,因为所有的uris都应该有一个scheme。为了避免破坏现有代码,添加了可选的strict参数。我们强烈建议使用它,例如Uri.parse('my:uri', true)

另请参阅 Uri.toString

ParameterDescription
value: string

Uri的字符串值。

strict?: boolean

value为空或无法解析任何scheme时抛出错误。

ReturnsDescription
Uri

一个新的 Uri 实例。

构造函数

使用fileparse工厂函数来创建新的Uri对象。

ParameterDescription
scheme: string
authority: string
path: string
query: string
fragment: string
ReturnsDescription
Uri

属性

Authority 是 www.example.com 部分,位于 http://www.example.com/some/path?query#fragment 中。 即第一个双斜杠和下一个斜杠之间的部分。

Fragment 是 http://www.example.com/some/path?query#fragment 中的 fragment 部分。

表示此Uri对应的文件系统路径的字符串。

将处理UNC路径并将Windows驱动器字母规范化为小写。同时使用平台特定的路径分隔符。

  • 不会验证路径中的无效字符和语义。
  • 不会查看此Uri的方案。
  • 生成的字符串不应用于显示目的,而是用于磁盘操作,如readFile等。

path属性的区别在于使用了平台特定的路径分隔符以及对UNC路径的处理。下面的示例概述了这些区别:

const u = URI.parse('file://server/c$/folder/file.txt');
u.authority === 'server';
u.path === '/c$/folder/file.txt';
u.fsPath === '\\serverc$\folder\file.txt';

路径是http://www.example.com/some/path?query#fragment中的/some/path部分。

查询是http://www.example.com/some/path?query#fragment中的query部分。

Scheme 是 http 部分,位于 http://www.example.com/some/path?query#fragment 中。 第一个冒号之前的部分。

方法

返回此Uri的JSON表示。

ParameterDescription
ReturnsDescription
any

一个对象。

返回此Uri的字符串表示形式。URI的表示和规范化取决于方案。

  • 生成的字符串可以安全地与Uri.parse一起使用。
  • 生成的字符串不应用于显示目的。

注意,实现将编码激进,这通常会导致意外但不错误的结果。例如,冒号被编码为%3A,这在文件URI中可能是意外的。此外,&=也会被编码,这对于HTTP URI可能是意外的。出于稳定性原因,这一点无法再更改。如果您受到过于激进的编码影响,您应该使用skipEncoding参数:uri.toString(true)

ParameterDescription
skipEncoding?: boolean

不要对结果进行百分比编码,默认为 false。请注意,路径中出现的 #? 字符将始终被编码。

ReturnsDescription
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');
ParameterDescription
change: {authority: string, fragment: string, path: string, query: string, scheme: string}

一个描述对此Uri进行更改的对象。要取消设置组件,请使用null或空字符串。

ReturnsDescription
Uri

一个新的Uri,反映了给定的更改。如果更改没有改变任何内容,将返回this Uri。

UriHandler

一个uri处理程序负责处理系统范围内的uris

另请参阅 window.registerUriHandler.

方法

处理提供的系统范围的Uri

另请参阅 window.registerUriHandler.

ParameterDescription
uri: Uri
ReturnsDescription
ProviderResult<void>

ViewBadge

一个展示视图值的徽章

属性

在徽章的工具提示中显示的标签。

要在徽章中显示的值。

ViewColumn

表示窗口中编辑器的位置。编辑器可以排列在一个网格中,每个列通过按编辑器出现的顺序计数来表示该网格中的一个编辑器位置。

枚举成员

一个象征性的编辑器列,表示活动列旁边的列。这个值可以在打开编辑器时使用,但编辑器的解析 viewColumn值将始终是OneTwoThree,...或undefined,但永远不会是Beside

一个符号编辑器列,表示当前活动的列。这个值可以在打开编辑器时使用,但编辑器的解析 viewColumn值将始终是OneTwoThree,...或undefined,但永远不会是Active

第一个编辑器列。

第二个编辑器列。

第三个编辑器列。

第四个编辑器列。

第五个编辑器列。

第六个编辑器列。

第七个编辑列。

第八个编辑列。

第九个编辑专栏。

Webview

显示HTML内容,类似于iframe。

事件

当网页内容发布消息时触发。

Webview 内容可以向后端扩展发送字符串或可序列化的 JSON 对象。它们不能发送 BlobFileImageData 和其他 DOM 特定对象,因为接收消息的扩展不在浏览器环境中运行。

属性

Webview资源的内容安全策略源。

这是应在内容安全策略规则中使用的来源:

`img-src https: ${webview.cspSource} ...;`;

网页视图的HTML内容。

这应该是一个完整、有效的HTML文档。更改此属性会导致Webview重新加载。

Webview 与普通的扩展进程是隔离的,因此与 webview 的所有通信都必须使用消息传递。要从扩展向 webview 发送消息,请使用 postMessage。要从 webview 向扩展发送消息,请在 webview 中使用 acquireVsCodeApi 函数获取编辑器 API 的句柄,然后调用 .postMessage()

<script>
    const vscode = acquireVsCodeApi(); // acquireVsCodeApi can only be invoked once
    vscode.postMessage({ message: 'hello!' });
</script>

要从工作区加载资源到webview中,请使用asWebviewUri方法,并确保资源的目录列在WebviewOptions.localResourceRoots中。

请记住,尽管webviews是沙盒化的,它们仍然允许运行脚本和加载任意内容,因此扩展在处理webviews时必须遵循所有标准的网络安全最佳实践。这包括正确清理所有不受信任的输入(包括来自工作区的内容)并设置内容安全策略

网页视图的内容设置。

方法

将本地文件系统的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')
)}">`;
ParameterDescription
localResource: Uri
ReturnsDescription
Uri

向网页视图内容发布一条消息。

消息仅在webview处于活动状态时传递(无论是可见的还是使用retainContextWhenHidden在后台)。

ParameterDescription
message: any

消息的主体。这必须是一个字符串或其他可序列化为json的对象。

对于旧版本的vscode,如果message中包含ArrayBuffer, 它将无法正确序列化,并且不会被webview接收。 同样,任何TypedArrays,例如Uint8Array,将非常低效地 序列化,并且也不会在webview内重新创建为类型化数组。

然而,如果你的扩展在其package.jsonengines字段中针对vscode 1.57+,任何出现在message中的ArrayBuffer值将更有效地传输到webview,并且也将在webview内部正确重建。

ReturnsDescription
Thenable<boolean>

当消息发布到webview或由于消息无法传递而被丢弃时,承诺将解决。

如果消息已发布到webview,则返回true。消息只能发布到活动的webview(即,可见的webview或设置了retainContextWhenHidden的隐藏webview)。

true 的响应并不意味着消息实际上被 webview 接收到了。例如,可能没有在 webview 内部挂载消息监听器,或者消息在发布后但在接收前 webview 可能已被销毁。

如果你想确认消息是否实际收到,可以尝试让你的webview向你的扩展程序发送一条确认消息。

WebviewOptions

网页视图的内容设置。

属性

控制是否在webview内容中启用命令URI。

默认为 false(命令 URI 被禁用)。

如果传入一个数组,则只允许数组中的命令。

控制是否在网页视图内容中启用表单。

如果脚本已启用,则默认为 true。否则默认为 false。 显式将此属性设置为 true 或 false 会覆盖默认值。

控制是否在webview内容中启用脚本。

默认为 false(脚本禁用)。

根路径,从中webview可以使用asWebviewUri加载本地(文件系统)资源的uris

默认为当前工作空间的根文件夹加上扩展的安装目录。

传入一个空数组以禁止访问任何本地资源。

在webview内部使用的本地主机端口映射。

端口映射允许webviews透明地定义如何解析本地主机端口。这可以用于允许在webview内部使用静态的本地主机端口,该端口被解析为服务正在运行的随机端口。

如果webview访问本地主机内容,即使webviewPortextensionHostPort端口相同,我们也建议您指定端口映射。

注意,端口映射仅适用于httphttps网址。Websocket网址(例如ws://localhost:3000)无法映射到另一个端口。

WebviewPanel

一个包含webview的面板。

事件

当面板的视图状态发生变化时触发。

当面板被销毁时触发。

这可能是因为用户关闭了面板,或者因为在其上调用了.dispose()

尝试在面板被释放后使用它会抛出异常。

属性

面板是否处于活动状态(用户聚焦)。

在用户界面中显示的面板图标。

网页视图面板的内容设置。

UI中显示的面板标题。

面板的编辑器位置。仅当webview位于编辑器视图列之一时,才会设置此属性。

标识webview面板的类型,例如'markdown.preview'

面板是否可见。

Webview 属于面板的部分。

方法

处理webview面板。

如果面板正在显示,这将关闭面板并释放由webview拥有的资源。 当用户关闭webview面板时,webview面板也会被释放。这两种情况都会触发onDispose事件。

ParameterDescription
ReturnsDescription
any

在给定的列中显示webview面板。

一个webview面板一次只能显示在一个列中。如果它已经在显示,这个方法会将它移动到一个新的列。

ParameterDescription
viewColumn?: ViewColumn

显示面板的视图列。如果未定义,则在当前viewColumn中显示。

preserveFocus?: boolean

true 时,webview 不会获取焦点。

ReturnsDescription
void

WebviewPanelOnDidChangeViewStateEvent

当webview面板的视图状态发生变化时触发的事件。

属性

视图状态已更改的Webview面板。

WebviewPanelOptions

网页视图面板的内容设置。

属性

控制面板中是否启用了查找小部件。

默认为 false

控制即使面板不再可见时,webview面板的内容(iframe)是否仍然保留。

通常情况下,webview面板的HTML上下文在面板变为可见时创建,并在隐藏时销毁。具有复杂状态或UI的扩展可以设置retainContextWhenHidden,使编辑器即使在webview移动到后台标签页时也保留webview上下文。当使用retainContextWhenHidden的webview被隐藏时,其脚本和其他动态内容将被暂停。当面板再次变为可见时,上下文会自动恢复到最初的状态。即使启用了retainContextWhenHidden,也无法向隐藏的webview发送消息。

retainContextWhenHidden 具有较高的内存开销,只有在您的面板上下文无法快速保存和恢复时才应使用。

WebviewPanelSerializer

恢复在vscode关闭时已持久化的webview面板。

有两种类型的webview持久化:

  • 会话中的持久性。
  • 跨会话持久性(跨编辑器重启)。

只有在第二种情况下才需要WebviewPanelSerializer:在会话之间持久化webview。

会话中的持久性允许webview在隐藏时保存其状态,并在再次可见时从此状态恢复其内容。这完全由webview内容本身驱动。要保存持久状态,请使用任何可序列化的json对象调用acquireVsCodeApi().setState()。要再次恢复状态,请调用getState()

// Within the webview
const vscode = acquireVsCodeApi();

// Get existing state
const oldState = vscode.getState() || { value: 0 };

// Update state
setState({ value: oldState.value + 1 });

一个WebviewPanelSerializer扩展了这种持久性,使其在编辑器重启时仍然有效。当编辑器关闭时,它将保存所有具有序列化器的webview的setState状态。当webview在重启后首次变为可见时,此状态将传递给deserializeWebviewPanel。然后,扩展可以从这个状态中恢复旧的WebviewPanel

方法

从序列化的 state 恢复一个 webview 面板。

当序列化的网页视图首次变为可见时调用。

ParameterDescription
webviewPanel: WebviewPanel

要恢复的Webview面板。序列化器应接管此面板的所有权。序列化器必须恢复webview的.html并连接所有webview事件。

state: T

来自网页视图内容的持久化状态。

ReturnsDescription
Thenable<void>

Thenable 表示 webview 已经完全恢复。

WebviewPortMapping

定义了用于webview内部本地主机的端口映射。

属性

目标端口。webviewPort 解析为此端口。

在webview内部重新映射的本地主机端口。

WebviewView

一个基于webview的视图。

事件

当视图的可见性发生变化时触发的事件。

触发可见性变化的操作:

  • 视图已折叠或展开。
  • 用户在侧边栏或面板中切换到不同的视图组。

请注意,使用上下文菜单隐藏视图会销毁视图并触发onDidDispose

当视图被销毁时触发的事件。

当用户明确隐藏视图时,视图会被处理(这种情况发生在用户在视图中右键点击并取消勾选webview视图时)。

尝试在视图被释放后使用它会抛出异常。

属性

用于显示此webview视图的徽章。 要移除徽章,请设置为undefined。

人类可读的字符串,在标题中以较不突出的方式呈现。

在用户界面中显示的视图标题。

视图标题最初取自扩展 package.json 的贡献。

标识webview视图的类型,例如'hexEditor.dataView'

跟踪网页视图当前是否可见。

视图在屏幕上且展开时可见。

视图的基础webview。

方法

在用户界面中显示视图。

如果视图已折叠,这将展开它。

ParameterDescription
preserveFocus?: boolean

true 时,视图将不会获取焦点。

ReturnsDescription
void

WebviewViewProvider

用于创建WebviewView元素的提供者。

方法

解析一个webview视图。

resolveWebviewView 在视图首次可见时被调用。这可能发生在视图首次加载时,或者当用户隐藏然后再次显示视图时。

ParameterDescription
webviewView: WebviewView

要恢复的Webview视图。提供者应接管此视图的所有权。提供者必须设置webview的.html并连接所有感兴趣的webview事件。

context: WebviewViewResolveContext<unknown>

关于正在解析的视图的附加元数据。

token: CancellationToken

取消令牌,表示不再需要提供的视图。

ReturnsDescription
void | Thenable<void>

可选的 thenable 表示视图已完全解析。

WebviewViewResolveContext

正在解析的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

表示窗口的状态。

属性

窗口是否最近被交互过。这将在活动时立即改变,或在用户不活动一段时间后改变。

当前窗口是否处于焦点状态。

工作区配置

表示配置。它是以下内容的合并视图

  • 默认设置
  • 全局(用户)设置
  • 工作区设置
  • 工作区文件夹设置 - 从请求资源所属的工作区文件夹之一。
  • 语言设置 - 在请求的语言下定义的设置。

有效值(由get返回)是通过按以下顺序覆盖或合并值来计算的:

  1. defaultValue(如果在package.json中定义,否则从值的类型派生)
  2. globalValue(如果已定义)
  3. workspaceValue(如果已定义)
  4. workspaceFolderValue(如果已定义)
  5. defaultLanguageValue(如果已定义)
  6. globalLanguageValue(如果已定义)
  7. workspaceLanguageValue(如果已定义)
  8. workspaceFolderLanguageValue(如果已定义)

注意: 只有 object 值类型会被合并,所有其他值类型都会被覆盖。

示例1:重写

defaultValue = 'on';
globalValue = 'relative';
workspaceFolderValue = 'off';
value = 'off';

示例2:语言值

defaultValue = 'on';
globalValue = 'relative';
workspaceFolderValue = 'off';
globalLanguageValue = 'on';
value = 'on';

示例3:对象值

defaultValue = { a: 1, b: 2 };
globalValue = { b: 3, c: 4 };
value = { a: 1, b: 3, c: 4 };

注意:工作空间和工作空间文件夹配置包含launchtasks设置。它们的基本名称将成为部分标识符的一部分。以下代码片段展示了如何从launch.json中检索所有配置:

// launch.json configuration
const config = workspace.getConfiguration(
  'launch',
  vscode.workspace.workspaceFolders[0].uri
);

// retrieve values
const values = config.get('configurations');

请参考Settings获取更多信息。

方法

从此配置中返回一个值。

ParameterDescription
section: string

配置名称,支持点分隔的名称。

ReturnsDescription
T

section 表示或 undefined

从该配置中返回一个值。

ParameterDescription
section: string

配置名称,支持点分隔的名称。

defaultValue: T

当找不到值时,应返回一个值,即undefined

ReturnsDescription
T

section 表示或默认值。

检查此配置是否具有某个值。

ParameterDescription
section: string

配置名称,支持点分隔的名称。

ReturnsDescription
boolean

true 如果该部分未解析为 undefined

检索有关配置设置的所有信息。配置值通常包括默认值、全局或安装范围的值、工作区特定的值、文件夹特定的值以及语言特定的值(如果WorkspaceConfiguration限定为某种语言)。

还提供了定义给定配置设置的所有语言ID。

注意: 配置名称必须表示配置树中的一个叶子节点 (editor.fontSize 对比 editor),否则不会返回任何结果。

ParameterDescription
section: string

配置名称,支持点分隔的名称。

ReturnsDescription
{defaultLanguageValue: T, defaultValue: T, globalLanguageValue: T, globalValue: T, key: string, languageIds: string[], workspaceFolderLanguageValue: T, workspaceFolderValue: T, workspaceLanguageValue: T, workspaceValue: T}

关于配置设置或undefined的信息。

更新配置值。更新后的配置值将被持久化。

一个值可以在

注意:要删除配置值,请使用undefined,如下所示:config.update('somekey', undefined)

  • 抛出 - 更新时出错
    • 未注册的配置。
    • 窗口配置到工作区文件夹
    • 当没有打开工作区时,配置到工作区或工作区文件夹。
    • 当没有工作区文件夹设置时,配置到工作区文件夹。
    • WorkspaceConfiguration未限定到资源时,配置到工作区文件夹。
ParameterDescription
section: string

配置名称,支持点分隔的名称。

value: any

新值。

configurationTarget?: boolean | ConfigurationTarget

配置目标 或布尔值。 - 如果为 true,则更新 全局设置。 - 如果为 false,则更新 工作区设置。 - 如果为 undefinednull,则如果配置是资源特定的,则更新到 工作区文件夹设置, 否则更新到 工作区设置

overrideInLanguage?: boolean

是否更新请求的languageId范围内的值。 - 如果true,则更新请求的languageId下的值。 - 如果undefined,则仅在为该语言定义了配置时更新请求的languageId下的值。

ReturnsDescription
Thenable<void>

WorkspaceEdit

工作区编辑是对多个资源和文档的文本和文件更改的集合。

使用applyEdit函数来应用工作区编辑。

构造函数

ParameterDescription
ReturnsDescription
WorkspaceEdit

属性

受影响的文本或资源更改的资源数量。

方法

创建一个常规文件。

ParameterDescription
uri: Uri

新文件的Uri。

options?: {contents: Uint8Array | DataTransferFile, ignoreIfExists: boolean, overwrite: boolean}

定义是否应覆盖现有文件或忽略。当overwriteignoreIfExists都设置时,overwrite优先。当两者都未设置且文件已存在时,编辑将无法成功应用。content属性允许设置创建文件时的初始内容。

metadata?: WorkspaceEditEntryMetadata

条目的可选元数据。

ReturnsDescription
void

删除给定范围内的文本。

ParameterDescription
uri: Uri

资源标识符。

range: Range

一个范围。

metadata?: WorkspaceEditEntryMetadata

条目的可选元数据。

ReturnsDescription
void

删除一个文件或文件夹。

ParameterDescription
uri: Uri

要删除的文件的URI。

options?: {ignoreIfNotExists: boolean, recursive: boolean}
metadata?: WorkspaceEditEntryMetadata

条目的可选元数据。

ReturnsDescription
void

获取按资源分组的所有文本编辑。

ParameterDescription
ReturnsDescription
Array<[Uri, TextEdit[]]>

[Uri, TextEdit[]]元组的浅拷贝。

获取资源的文本编辑。

ParameterDescription
uri: Uri

资源标识符。

ReturnsDescription
TextEdit[]

一组文本编辑。

检查资源的文本编辑是否存在。

ParameterDescription
uri: Uri

资源标识符。

ReturnsDescription
boolean

true 如果给定的资源将被此编辑触及。

在给定位置插入给定的文本。

ParameterDescription
uri: Uri

资源标识符。

position: Position

一个位置。

newText: string

一个字符串。

metadata?: WorkspaceEditEntryMetadata

条目的可选元数据。

ReturnsDescription
void

重命名文件或文件夹。

ParameterDescription
oldUri: Uri

现有文件。

newUri: Uri

新位置。

options?: {ignoreIfExists: boolean, overwrite: boolean}

定义是否应覆盖现有文件或忽略它们。当overwrite和ignoreIfExists都设置时,overwrite优先。

metadata?: WorkspaceEditEntryMetadata

条目的可选元数据。

ReturnsDescription
void

用给定的文本替换给定资源的给定范围。

ParameterDescription
uri: Uri

资源标识符。

range: Range

一个范围。

newText: string

一个字符串。

metadata?: WorkspaceEditEntryMetadata

条目的可选元数据。

ReturnsDescription
void

设置(并替换)资源的文本编辑或片段编辑。

ParameterDescription
uri: Uri

资源标识符。

edits: ReadonlyArray<TextEdit | SnippetTextEdit>

一组编辑。

ReturnsDescription
void

设置(并替换)带有资源元数据的文本编辑或片段编辑。

ParameterDescription
uri: Uri

资源标识符。

edits: ReadonlyArray<[TextEdit | SnippetTextEdit, WorkspaceEditEntryMetadata]>

一组编辑。

ReturnsDescription
void

设置(并替换)资源的笔记本编辑。

ParameterDescription
uri: Uri

资源标识符。

edits: readonly NotebookEdit[]

一组编辑。

ReturnsDescription
void

设置(并替换)带有资源元数据的笔记本编辑。

ParameterDescription
uri: Uri

资源标识符。

edits: ReadonlyArray<[NotebookEdit, WorkspaceEditEntryMetadata]>

一组编辑。

ReturnsDescription
void

WorkspaceEditEntryMetadata

工作区编辑条目的附加数据。支持标记条目并将条目标记为需要用户确认。编辑器将具有相同标签的编辑分组到树节点中,例如所有标记为“字符串中的更改”的编辑将成为一个树节点。

属性

在同一行上渲染的较不突出的人类可读字符串。

编辑的图标路径或ThemeIcon

一个人类可读的字符串,以突出方式呈现。

一个标志,表示需要用户确认。

WorkspaceEditMetadata

关于工作区编辑的附加数据。

属性

向编辑器发出信号,表明此编辑是重构。

WorkspaceFolder

工作区文件夹是编辑器可能打开的多个根目录之一。所有工作区文件夹都是平等的,这意味着没有活动或主要工作区文件夹的概念。

属性

此工作区文件夹的序号。

此工作区文件夹的名称。默认为其uri-path的基本名称。

此工作区文件夹的关联URI。

注意: 选择Uri类型的目的是为了让编辑器的未来版本能够支持不存储在本地磁盘上的工作区文件夹,例如ftp://server/workspaces/foo

WorkspaceFolderPickOptions

配置工作区文件夹选择UI行为的选项。

属性

设置为true以在焦点移动到编辑器的其他部分或另一个窗口时保持选择器打开。 此设置在iPad上被忽略,并且始终为false。

一个可选的字符串,显示在输入框中作为占位符,以指导用户选择什么。

WorkspaceFoldersChangeEvent

描述工作区文件夹集合更改的事件。

属性

添加了工作区文件夹。

已移除工作区文件夹。

WorkspaceSymbolProvider

工作区符号提供者接口定义了扩展与符号搜索功能之间的契约。

方法

在整个项目中搜索与给定查询字符串匹配的符号。

query参数应以宽松的方式解释,因为编辑器将对其结果应用自己的高亮和评分。一个好的经验法则是进行不区分大小写的匹配,并简单地检查query的字符是否按顺序出现在候选符号中。不要使用前缀、子字符串或类似的严格匹配。

为了提高性能,实现者可以实现resolveWorkspaceSymbol,然后提供带有部分location对象的符号,而不定义range。编辑器将仅在选择符号时调用resolveWorkspaceSymbol,例如在打开工作区符号时。

ParameterDescription
query: string

查询字符串,可以是空字符串,在这种情况下应返回所有符号。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<T[]>

一个文档高亮数组或一个解析为此的可thenable对象。可以通过返回undefinednull或空数组来表示没有结果。

给定一个符号,填写其位置。每当在用户界面中选择一个符号时,都会调用此方法。提供者可以实现此方法并从provideWorkspaceSymbols返回不完整的符号,这通常有助于提高性能。

ParameterDescription
symbol: T

要解析的符号。保证是之前调用provideWorkspaceSymbols返回的对象实例。

token: CancellationToken

一个取消令牌。

ReturnsDescription
ProviderResult<T>

解析后的符号或解析为该符号的thenable。当没有返回结果时,使用给定的symbol

API 模式

这些是我们在VS Code API中使用的一些常见模式。

承诺

VS Code API 使用 promises 来表示异步操作。从扩展中,可以返回 任何 类型的 promise,例如 ES6、WinJS、A+ 等。

独立于特定的承诺库在API中通过Thenable类型表达。Thenable代表了共同点,即then方法。

在大多数情况下,使用promises是可选的,当VS Code调用扩展时,它可以处理结果类型以及结果类型Thenable。当使用promise是可选的时,API通过返回or-类型来表明这一点。

provideNumber(): number | Thenable<number>

取消令牌

通常操作是在易变的状态上开始的,这些状态在操作完成之前可能会发生变化。例如,计算IntelliSense开始时,用户继续输入,使得该操作的结果变得过时。

暴露给此类行为的API将会传递一个CancellationToken,您可以在其上检查取消(isCancellationRequested)或在取消发生时收到通知(onCancellationRequested)。取消令牌通常是函数调用的最后一个参数,并且是可选的。

一次性用品

VS Code API 使用 dispose pattern 来处理从 VS Code 获取的资源。这适用于事件监听、命令、与 UI 的交互以及各种语言贡献。

例如,setStatusBarMessage(value: string) 函数返回一个 Disposable,当调用 dispose 时,消息将再次被移除。

事件

VS Code API 中的事件作为函数公开,您可以通过调用带有监听器函数的函数来订阅。订阅调用返回一个 Disposable,它在释放时移除事件监听器。

var listener = function(event) {
  console.log('It happened', event);
};

// start listening
var subscription = fsWatcher.onDidDelete(listener);

// do more stuff

subscription.dispose(); // stop listening

事件的名称遵循on[Will|Did]VerbNoun?模式。名称表示事件是否将要发生(onWill)或已经发生(onDid),发生了什么(verb),以及上下文(noun),除非从上下文中可以明显看出。

VS Code API 中的一个例子是 window.onDidChangeActiveTextEditor,这是一个事件,当活动的文本编辑器 (名词) 被 (onDid) 更改 (动词) 时触发。

严格空值

VS Code API 在适当的地方使用 undefinednull TypeScript 类型来支持 严格空值检查