: yo code 初始化过程中需要我们做一些偏好设置,按照需求选择即可: 然后我们就可以用VSCode打开上述步骤生成的工程,可以看到目录结构如下,其中最重要的两个文件是package.json和extension.js...在这里我们只关注初始化之后生成的文件,这里面主要有以下这么几个关键节点: 1、main:指明了该项目的入口文件,从这里可以看到入口文件是extension.js; 2、contributes: 插件的贡献点.../extension.js中去实现(这部分划重点,后面我们会讲到这里); 3、activationEvents:这个节点告知VScode 该插件在何种情况下才会被激活,官方文档已经指明了激活的时机:activationEvents...extension.js 文件 extension.js文件是上述所说的package.json中main字段对应的文件(文件名可自定义)。
normal event provideDocumentFormattingEdits regist a format event and design formatter the details extension.js.../extension.js", "contributes": { "commands": [ { "command": "extension.nurselisa.format
. ├── .vscode ├── launch.json # 插件加载和调试的配置 ├── CHANGELOG.md # 变更记录 ├── extension.js # 插件执行入口文件 ├─.../extension.js", // 注册扩展项配置 "contributes": { "commands": [ { "command": "extension.helloWorld.../snippets/javascript.json" }, ... ] } } 2. extension.js:插件的执行入口文件,通常包括激活(activate)和禁用
/extension.js", // 插件主入口 "contributes": { // 贡献点,用于拓展插件功能的配置项,这里不会细讲,先用 command 举例 "commands":...command": "test-extension.helloWorld", "title": "Hello World" } ] }, ... ... // extension.js...在 package.json 里面设置的 command 的值,就是 extension.js 里面 registerCommand 的值。那这几行命令是什么意思呢?...commands": [ { "command": "test.helloWorld", "title": "Hello World" } ] }, ... // extension.js...然后回到我们的 extension.js 里面增加一个简单的消息提醒: function activate(context) { console.log('我在这里!!')
/dist/extension.js", "contributes": { "commands": [ { "command": "hello.helloWorld.../dist/extension.js,是插件的入口文件,commands,后面就是对应的我们的命令。然后我们看下入口文件..../dist/extension.js // The module 'vscode' contains the VS Code extensibility API // Import the module.../dist/extension.js", "contributes": { "commands": [ { "command": "golangCodeHelper.helloWorld
2.extension.js 程序入口 我使用的是注释的方式来描述extension.js里面的各个地方的作用: // vscode这个包,包含了里面所有的api var vscode = require...this.disposable.dispose(); this.statusBar.dispose(); } } module.exports = WordCounter; 3.在入口 extension.js
command.js //全部命令 extension.js //插件入口文件 tranlate.js //翻译工具函数 先从入口文件extension.js出发: // The module 'vscode
. ├── CHANGELOG.md 插件变更记录 ├── README.md ├── extension.js 插件入口main文件 ├.../extension.js", // 插件入口 "contributes": { "commands": [ // 此数组表示插件支持的所有命令 {...我们接下来看看extension.js的内容: // vscode编辑器api入口 const vscode = require('vscode'); /** * 此生命周期方法在插件激活时执行
如果是 JavaScript 插件,则编写 extension.js 文件;如果是 TypeScript 插件,则编写 extension.ts 文件。
/out/extension.js", "contributes": { "commands": [ { "command..."title": "Hello World" } ] }, ...省略.. } 从package.json中,我们得知入口文件是out/extension.js.../out/extension.js", "contributes": { // 视图容器 "viewsContainers": { // 注册活动栏 "activitybar
. // 省略其他配置项 } 配置完之后要把这个新的命令在 extension.js 中注册一下: function activate(context) { ... // 省略其他命令注册...没关系,我们实操一下,修改上面在 extension.js 里的配置如下: const webviewCommand = vscode.commands.registerCommand('webview.start...cdn.jsdelivr.net/gh/521xueweihan/img_logo@main/logo/readme.gif" width="300" /> ` 在 extension.js
修改代码 插件的入口代码在extension.js这个文件中,主要是修改activate函数: export function activate(context) { // Use the console
大体来讲,通过使用 Copilot 中包含的 extension.js 文件,我进行了一些微小的手动更改以简化模块的自动提取,并编写了一堆 AST 转换来「美化」每个模块,将模块进行命名,同时分类并手动注释出其中一些最为有趣的部分...它通常在~/.vscode/extensions/github.copilot-/dist/extension.js 下。...patch,只需复制扩展代码:https://thakkarparth007.github.io/copilot-explorer/muse/github.copilot-1.57.7193/dist/extension.js
不存在的,我们打开 extension.js 会发现引用了 vscode 这个包: 但是我们的安装包中并没有 node_modules,那么 vscode 这个包存在在哪里呢?.../src/extension.ts --bundle --outfile=out/extension.js --external:vscode --format=cjs --platform=node"...「忽略文件:」 我们使用 esbuild 打包后会将使用到的代码都打包进 out/extension.js,但是 vsce 的打包机制是不管你有没有用到都会把 dependencies 中的包打进安装包中.../src/extension.ts --bundle --outfile=out/extension.js --external:vscode --format=cjs --platform=node"
接下去我们就进入代码实现了,还记得上一篇文章的 extension.js 吗?...endBracket) { endBracket = nextStart } return [startBracket, endBracket - startBracket] } 对应 extension.js
TypeScript的编译器 ├── out // 编译之后的输出文件夹(只有TypeScript需要,JS无需) │ ├── src │ | ├── extension.js
main 是”dist/extension”意味着插件的入口文件是extension.js contributes 代表着vscode插件的一系列配置项,这个我们接下来详细分析。
typescript的编译器 (TypeScript only) ├── out // 编译出口 (TypeScript only) │ ├── extension.js
/src/extension.js", // extension.js const vscode = require("vscode"); function activate(context) {
100000); callbacks[cbid] = cb; data.cbid = cbid; } vscode.postMessage(data); } 在extension.js
领取专属 10元无门槛券
手把手带您无忧上云