VSCode 插件 api 中文翻译

672 阅读7分钟

目的

学习VSCode插件开发流程,熟悉插件api具体功能

流程

暂时介绍一个大概,vscode插件通过package.json配置识别,暂时先不翻译这部分。

api

原文链接

介绍:

VS Code API 是一套 JavaScript API,您可以在 Visual Studio Code 扩展中调用它们。此页列出了所有 VS Code API 让开发插件的人去使用。

authentication (认证)

commands

package.json里面的配置,也可以用函数注册:

commands.registerCommand('extension.sayHello', () => {
  window.showInformationMessage('Hello World!');
});
  • executeCommand(command: string, ...rest: any[]): Thenable<T>

    • 通过给定的命令标识符去执行命令标识。
  • getCommands(filterInternal?: boolean): Thenable<string[]>

    • 检索所有可用命令的 list。
  • registerCommand(command: string, callback: (args: any[]) => any, thisArg?: any): Disposable

    • 注册键盘快捷键、菜单项、操作或直接调用的命令
  • registerTextEditorCommand(command: string, callback: (textEditor: TextEditor, edit: TextEditorEdit, args: any[]) => void, thisArg?: any): Disposable

    • 注册键盘快捷键、菜单项、操作或直接调用的文本编辑器命令。

comments

debug

VARIABLES

EVENTS

  • onDidChangeActiveDebugSession: Event<DebugSession | undefined>
    • 在活动调试会话发生更改时触发的事件。
    • 注意,当活动调试会话更改为未定义时,也会触发该事件。
  • onDidChangeBreakpoints: Event<BreakpointsChangeEvent>
    • 增、删、改断点时触发该事件。
  • onDidReceiveDebugSessionCustomEvent: Event<DebugSessionCustomEvent>
    • 调试器被接受一个自定义DAP事件时触发
  • onDidStartDebugSession: Event<DebugSession>
    • 新调试会话被启动时触发
  • onDidTerminateDebugSession: Event<DebugSession>
    • 一个debug会话被终止时启动

FUNCTIONS

env

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

VARIABLES - 变量

  • appHost: [string
    • 应用程序的托管位置在桌面上
  • appName: string
    • 编辑器的应用程序名称,如“VS Code”。
  • appRoot: string
    • 从中运行编辑器的应用程序根文件夹。
  • clipboard: Clipboard
    • 系统剪贴板。
  • isNewAppInstall: boolean
    • 表明这是一个全新安装的应用程序
  • isTelemetryEnabled: boolean
    • 表明用户是否遥控启用
  • language: string
    • 表示首选用户语言,如 de-CH、fr 或 en-US。
  • machineId: string
    • 计算机唯一的标识符
  • remoteName: string | undefined
    • 远程数据库名称
  • sessionId: string
    • 当前会话的唯一标识符
  • shell: string
    • 扩展host(主机)默认shell(壳子)被发现
  • uiKind: UIKind
    • UI 种类, 表明来自于哪个UI扩展被访问
  • uriScheme: string
    • 编辑器注册在正在运行的系统中,定制的uri方案

EVENTS - 事件

  • onDidChangeTelemetryEnabled: Event<boolean>
    • 当用户启用或者禁用遥测时触发该事件 FUNCTIONS - 功能
  • asExternalUri(target: Uri): Thenable<Uri>
    • 解析一个 uri 到表单展现为可以从外部访问的窗体
  • openExternal(target: Uri): Thenable<boolean>
    • 用默认程序打开一个外部的链接

extensions

时间有限,暂不翻译

l10n

时间有限,暂不翻译

languages

用来参与特定语言编辑器的功能(如:智能感知、代码操作、诊断等)

许多编辑器语言存在巨大的不同,在语法、语义和规范。尽管如此,自动完成单词,代码导航,或者代码检查,这些已经在不同编程语言的不同工具里流行了。

编辑器提供了API,根据返回的位置信息等信息进行指定API调用,可以实现悬停、代码提示、替换等操作。(这段不是原文,意思是这个意思)

APi时间有限,暂不翻译,回头补上。这部分很重要。

notebooks

笔记本相关的,时间有限,暂不翻译

scm

tasks

tests

任务功能

window

编辑器处理当前window的详细命名空间。
时间有限,暂不翻译

workspace

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

也可能在没有工作区的情况下打开一个编辑器。

VARIABLES

  • fs: FileSystem
    • 文件系统实例,允许本地和远程文件交互
  • isTrusted: boolean
    • 如果是 true 表明用户信任工作区内容
  • name: string | undefined
    • 工作区名称,没定义时没打开工作区
  • notebookDocuments: readonly NotebookDocument
    • 编辑器当前知道的所有笔记本文档
  • rootPath: string | undefined
    • 作为字符串的工作区文件夹的第一个条目的 uri。如果没有第一个条目,则未定义。
  • textDocuments: readonly TextDocument[]
    • 编辑者当前已知的所有文本文档。
  • workspaceFile: Uri | undefined
    • 工作区文件的位置: 绝对路径
  • workspaceFolders: readonly WorkspaceFolder[] | undefined
    • 在编辑器中打开的工作区文件夹 (0-N) 的列表。

EVENTS

FUNCTIONS

总结

暂时先翻译到这里,如有新的学习陆续也会补充进去,学习到之后会把代码例子放进去。