您的第一个扩展
在本主题中,我们将向您介绍构建扩展的基本概念。请确保您已安装 Node.js 和 Git。
首先,使用 Yeoman 和 VS Code 扩展生成器 为 TypeScript 或 JavaScript 项目搭建一个可以进行开发的脚手架。
-
如果您不想安装 Yeoman 以备将来使用,请运行以下命令
npx --package yo --package generator-code -- yo code
-
如果您想全局安装 Yeoman 以便于重复运行它,请运行以下命令
npm install --global yo generator-code yo code
对于 TypeScript 项目,请填写以下字段
# ? What type of extension do you want to create? New Extension (TypeScript)
# ? What's the name of your extension? HelloWorld
### Press <Enter> to choose default for all options below ###
# ? What's the identifier of your extension? helloworld
# ? What's the description of your extension? LEAVE BLANK
# ? Initialize a git repository? Yes
# ? Bundle the source code with webpack? No
# ? Which package manager to use? npm
# ? Do you want to open the new folder with Visual Studio Code? Open with `code`
在编辑器中,打开 src/extension.ts
并按下 F5 或从命令面板运行命令 **调试:启动调试** (⇧⌘P (Windows、Linux Ctrl+Shift+P))。这将编译并运行扩展,并在新的 **扩展开发主机** 窗口中启动它。
在新的窗口中,从命令面板运行 **Hello World** 命令 (⇧⌘P (Windows、Linux Ctrl+Shift+P))。
您应该看到 Hello World from HelloWorld!
通知显示出来。成功!
如果您在调试窗口中看不到 **Hello World** 命令,请检查 package.json
文件,确保 engines.vscode
版本与已安装的 VS Code 版本兼容。
开发扩展
让我们对消息进行更改
- 在
extension.ts
中,将消息从 "Hello World from HelloWorld!" 更改为 "Hello VS Code"。 - 在新的窗口中运行 **开发者:重新加载窗口**。
- 再次运行命令 **Hello World**。
您应该看到更新后的消息显示出来。
以下是一些您可以尝试的操作想法
- 在命令面板中为 **Hello World** 命令起一个新名字。
- 贡献 另一个命令,它在信息消息中显示当前时间。贡献点是您在
package.json
扩展清单 中进行的静态声明,用于扩展 VS Code,例如为您的扩展添加命令、菜单或键盘绑定。 - 将
vscode.window.showInformationMessage
替换为另一个 VS Code API 调用,以显示警告消息。
调试扩展
VS Code 的内置调试功能使调试扩展变得轻而易举。通过单击代码行旁边的边距来设置断点,VS Code 将在断点处停止。您可以将鼠标悬停在编辑器中的变量上,或使用左侧的 **运行和调试** 视图来检查变量的值。调试控制台允许您评估表达式。
您可以在 Node.js 调试主题 中了解有关在 VS Code 中调试 Node.js 应用程序的更多信息。
下一步
在下一个主题 扩展结构 中,我们将仔细研究 Hello World
示例的源代码,并解释关键概念。
您可以在以下位置找到本教程的源代码:https://github.com/microsoft/vscode-extension-samples/tree/main/helloworld-sample。扩展指南 主题包含其他示例,每个示例都展示了不同的 VS Code API 或贡献点,并遵循我们 UX 指南 中的建议。
使用 JavaScript
在本指南中,我们主要介绍如何使用 TypeScript 开发 VS Code 扩展,因为我们认为 TypeScript 为开发 VS Code 扩展提供了最佳体验。但是,如果您更喜欢 JavaScript,您仍然可以使用 helloworld-minimal-sample 按照本指南进行操作。
UX 指南
这也是审查我们 UX 指南 的好时机,这样您就可以开始设计您的扩展用户界面,使其符合 VS Code 的最佳实践。