VSCode插件开发全攻略(二)HelloWord

摘要:
有关更多文章,请单击VSCode插件开发的完整介绍系列的目录导航。它说学习一种新的语言或生态必须从HelloWord开始。然后按Ctrl+Shift+P,输入HelloWorld以执行相应的命令。当你发现HelloWorld提示出现在右下角时,恭喜你。你已经掌握了人生中第109种新语言。哈哈,开玩笑。

更多文章请戳VSCode插件开发全攻略系列目录导航

写着前面

学习一门新的语言或者生态首先肯定是从HelloWord开始。

您可以直接克隆我放在GitHub上vscode-plugin-demo 的代码到本地,然后尝试修改代码并运行,也可以使用微软官方的脚手架vscode-generator-code来生成项目结构,脚手架的使用我们后面再来介绍,先来熟悉一下项目结构。

HelloWorld

项目结构

项目结构其实很简单,主要是清单文件package.json以及extension.js这个插件入口文件:

VSCode插件开发全攻略(二)HelloWord第1张

package.json部分关键内容如下(已省略其它)

{
	// 扩展的激活事件
    "activationEvents": [
        "onCommand:extension.sayHello"
    ],
	// 入口文件
    "main": "./src/extension",
	// 贡献点,vscode插件大部分功能配置都在这里
    "contributes": {
        "commands": [
            {
                "command": "extension.sayHello",
                "title": "Hello World"
            }
        ]
    }
}

src/extension.js内容如下:

const vscode = require('vscode');

/**
 * 插件被激活时触发,所有代码总入口
 * @param {*} context 插件上下文
 */
exports.activate = function(context) {
    console.log('恭喜,您的扩展“vscode-plugin-demo”已被激活!');
    // 注册命令
    context.subscriptions.push(vscode.commands.registerCommand('extension.sayHello', function () {
        vscode.window.showInformationMessage('Hello World!');
    }));
};

/**
 * 插件被释放时触发
 */
exports.deactivate = function() {
    console.log('您的扩展“vscode-plugin-demo”已被释放!')
};

解读

承如上述代码:

  • main定义了整个插件的主入口;
  • 我们在contributes.commands里面注册了一个名为extension.sayHello的命令,并在src/extension.js中去实现了它(弹出一个Hello World的提示);
  • 但是仅仅这样还不够,命令虽然定义了,但是vscode还不知道啥时候去执行它,还需要在activationEvents添加上onCommand:extension.sayHello用来告诉vscode,当用户执行了这个命令操作时去执行前面我们定义的内容;
  • 除了onCommand之外,还有onViewonUrionLanguage等等,具体我们后面会详细讲到。

运行调试

默认情况下,工程已经帮我们配置好了调试相关参数(有兴趣的可以查看.vscode/launch.json文件的写法),只需要到调试面板选中要调试的项目(仅仅是第一次需要,后续会自动记住上次调试的项目),然后按下F5就会弹出一个新的vscode窗口:

VSCode插件开发全攻略(二)HelloWord第2张

这个新窗口已经加载了我们的插件,窗口标题会注明扩展开发主机,对于只有单显示器的同学来说,很容易写着写着就忘了哪个是主窗口,哪个是新窗口,所以可以通过这个来区分。

VSCode插件开发全攻略(二)HelloWord第3张

先插句话

为了描述方便,我们约定,后续把新弹出来的那个窗口叫新窗口,之前老的那个叫旧窗口

然后按下Ctrl+Shift+P,输入HelloWorld执行对应命令,当你发现右下角弹出了HelloWorld的提示时,恭喜你,你已经掌握了你人生第109种新语言了,哈哈,开个玩笑。

添加右键菜单和快捷键

上面由于我们只是注册了命令,没有添加菜单或快捷键,调用不方便,所以我们现在添加一下。

打开package.json,按照下述方式添加:

{
    "contributes": {
        "commands": [
            {
                "command": "extension.sayHello",
                "title": "Hello World"
            }
        ],
		// 快捷键绑定
        "keybindings": [
            {
                "command": "extension.sayHello",
                "key": "ctrl+f10",
                "mac": "cmd+f10",
                "when": "editorTextFocus"
            }
        ],
		// 设置菜单
        "menus": {
            "editor/context": [
                {
                    "when": "editorFocus",
                    "command": "extension.sayHello",
                    "group": "navigation"
                }
            ]
        }
    }
}

然后重新运行插件,在编辑器的右键可以看到如下菜单:

VSCode插件开发全攻略(二)HelloWord第4张

这里我们暂时不对配置项做过渡解读,后面会有专门篇章来介绍package.json文件的写法。

关于重新加载

如果修改了扩展代码,想重新加载的话,可以直接在新窗口上按下Ctrl+R来快速重新加载,也可以先停止,然后再按F5

关于开发语言

vscode插件可以使用TypeScript来编写(官方推荐),也可以使用JavaScript,本文统一使用后者,不过使用哪种方式,能实现的功能都是一样的。

脚手架的使用

终于到脚手架环节了,如果你喜欢干净的项目的话,可以使用官方脚手架来生成。

安装脚手架:

npm install -g yo generator-code

然后cd到你的工作目录,运行yo code

VSCode插件开发全攻略(二)HelloWord第5张

根据向导一步步选择即可,没啥好说的,运行完后就生成了一个干净的可以直接F5运行的vscode插件工程了。

免责声明:文章转载自《VSCode插件开发全攻略(二)HelloWord》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Conservative GC (Part one)js 报错 :object is not a function下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vscode+vue不得不用的插件和不得不添加的配置

先吐槽一下:第一次用vscode,真是心酸,要啥没啥,代码基本错误检测没有也就算了,Html标签自动补全也没有(当然,其实是有的,只是需要用户自己配置),这些都不能在安装或者初始化的时候一起装了吗,还非得要一个个百度然后找插件,心酸。。。 吐槽归吐槽,会用谷歌百度就是大佬。 文件自动保存设置 vscode的强大之一便是自动编译,无需刷新页面,但自动编译是需...

webstorm 和 vscode 的纠结

  自从知道了 vscode 之后,尝试了一下后,就开始纠结是否要更换到vscode。 特别是在 webstorm 卡的时候。   也研究了几日 vscode,安装了许多插件。 我是安装插件后, 就开始学习快捷键。   虽然纠结, 不过转换也是非常快。一般查看下自己用的几个快捷键。然后看看是否支持 snippet 功能, 在webstorm 中是 Live...

mac vscode 下载安装与配置

下载安装 1、官网下载https://code.visualstudio.com/ 配置 1、常用插件下载 中文:Chinese (Simplified) Language Pack 代码校验:eslint vue代码优化显示:vetur vue简写代码:vue vscode snippets   prettier的html换行有毒 2、修改中...

tensorflow安装: win10 + RTX2060 + tensorflow1.15.0+ cuda10.0 + VScode

引言: 之前用的tensorflow 1.10版本,发现在训练CNN的时候会自动中止,最后定位到加入卷积层就会导致训练崩溃/中止,只用全连接层却能正常训练。重装一天后无果,干脆全部升级使用tensorflow1.15: 改用WIN10+python3.7+tensorflow1.15.0+CUDA10.0(+cudnn7.6.5)+VScode 顺便记录下...

使用VSCode创建Asp.Net Core

前言 .Net Core 2.0已经发布几个月了,惭愧!身为一个开发人员现在才开始接触,有人说有VS这一宇宙第一IDE在,为啥还要用VSCode,为啥?因为我们是程序猿啊!我们是攻城狮啊!我们爱折腾啊,在非windows下体验编译net的那种兴奋刺激的感觉,就像刚接触编程时第一个HelloWorld输出在电脑屏幕时的那种感觉,爽!看看我大net也能跑在li...

cnetos7.3离线安装vscode

1.从官网下载压缩包(话说下载下来解压就直接可以运行了咧,都不需要make) #下载vscode包 访问Visual Studio Code官网 https://code.visualstudio.com/docs?dv=linux64 或者:wget https://az764295.vo.msecnd.net/stable/7ba55c58...