VSCode 插件开发(一):Hello World

前言

来啦老铁!

这几天琢磨着研究点什么,后来找到一个研究点,那就是:

  • VSCode 插件开发!

玩好 VSCode 插件开发,应该能让自己的工作效率得到提升,可以期待一下~

我们一起来看看怎么开始 VSCode 插件开发的吧~

学习路径

  1. 安装插件开发脚手架;
  2. 使用插件开发脚手架创建插件项目;
  3. 快速试用 Hello World 插件项目;
  4. 对插件效果稍做解读;
  5. 对插件做简单改动并验证;

1. 安装插件开发脚手架;

npm install -g yo generator-code
安装 Yeoman 和 VS Code Extension Generator

2. 使用插件开发脚手架创建插件项目;

接下来我们利用 yo 和 generator-code 模块配合而成的脚手架,开始创建我们的 VSCode 插件项目。

  • 执行命令:

yo code
  • 根据脚手架提示选择和填入相关信息:

根据脚手架提升选择和填入项目信息
  • 在选项选择完成后,会进行项目依赖的安装:

最后安装项目依赖
  • 项目依赖安装完成后,可以根据提示打开插件项目:

根据提示打开插件项目

温馨提示:

想要有这个打开插件项目的提示(Open with 'code'),则需要事先在 VSCode 内 command+shift+p 选择执行:
Shell Command: Install 'code' command in PATH。

这跟很多其他介绍 VSCode 插件开发的文章内,使用 code 命令打开项目的前提一样(如命令:code case2script 可用 VSCode 打开我们的 case2script 项目)。

Shell Command: Install 'code' command in PATH
  • 打开项目后,项目结构如:
项目结构

其实这是个简单的、完整的、可运行的插件项目,接下来我们先来看看这个插件项目工作起来是怎么样子的~

3. 快速试用 Hello World 插件项目;

我们这里先不做任何改动,也不做任何代码介绍,先看看这个最基础的插件运行效果。

  • 打开 Extension Developer Host 窗口;

(打开方式有 2 种)

1. 键盘按 F5 打开新窗口(这个麻烦点,不推荐);

众所周知,mac 默认没有 F5 按键(至少我的电脑没有),那按个寂寞?方法是:

a. 点击电脑的系统偏好:System Preferences;

系统偏好

b. 选择 Keyboard;

Keyboard

c. 勾选 Use F1, F2, etc. ... 选项;

i勾选 Use F1, F2, etc. ... 选项

d. 按住键盘的 fn 键,在键盘上方的 Touch Bar 上可以看到 F1、F2、、、F12 , 点击 F5 键;

点击 F5 键
2. 借助 VSCode 工具(简单,推荐);

直接在插件项目内的调试入口内点击调试按钮即可;

点击调试按钮

两种方式都能打开 Extension Developer Host 窗口,可见,第 2 种方式更简单,用它用它用它!

Extension Developer Host 窗口

我们可以在这个窗口任意打开一个项目或文件用于学习演示~

  • 运行插件项目;

a. 在Extension Developer Host 窗口内使用键盘组合键:Command+Shift+P (windows 机器是 Ctrl+Shift+P),然后搜索我们的 Hello World 插件:

搜索 Hello World 插件

b. 点击使用我们的 Hello World 插件:

点击使用 Hello World 插件

c. 则在 VSCode 右下角则会看到一个提示,这就是我们的插件工作效果:

VSCode 右下角看到提示

温馨提示:

这里笔者刚开始遇到一个匪夷所思的问题:死活找不到我们的 Hello World 插件~

网上也没有找到任何有关这方面的介绍,后来怀疑 VSCode 版本问题,于是找到 VSCode 的设置,设置内的版本更新方面的入口,当时刚好有一个更新(未截图),点击后关闭了 VSCode 进行更新(速度很快),更新后自动打开 VSCode,这时候就能找到我们的 Hello World 插件了~

更新 VSCode

记录一下这个小坑~

4. 对插件效果稍做解读;

  • 首先是插件名字何来?

插件名字声明和绑定关系在 package.json 表示,其中:
a. contributes: 是对插件的一些配置,比如图标,菜单、快捷键设置等,例如 title 为我们能在 VSCode 的命令面板中搜索到的插件名字(Command+Shift+P 命令打开的搜索入口);

插件名字声明和绑定关系

b. activationEvents: 配置触发 extendion.js 文件中 active 钩子函数的事件,例如:

vscode.commands.registerCommand('case2script.helloWorld'...

c. 其他待详细了解~

  • 插件为我们做了什么事情?

extendion.js 中的这行代码为我们注册了一个命令,命令名 case2script.helloWorld 与 package.json 中的 contributes 内的 command 匹配,代表这个插件能够展示一个 information message: Hello World from case2script!

注册命令

也就是为什么我们在使用了插件之后,在 VSCode 右下角能看到这个提示的原因:


VSCode 右下角看到提示

5. 对插件做简单改动并验证;

  • 我们可以稍做修改,看下效果,如:
稍做修改
  • 点击 reload 即可重新加载插件:
重新加载插件
  • 点击 reload 即可重新加载插件:
重新加载插件

后续,我们可以在这样的基础上进行功能性开发、发布插件到插件市场等,下一篇文章可期~

能力有限,欢迎指正、互相交流,感谢~

如果本文对您有帮助,麻烦点赞、关注!

感谢~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • 1.概览 1.1 vscode插件可以做什么 vscode编辑器是可高度自定义的,我们使用vscode插件几乎可以...
    雪山飞狐_91ae阅读 51,477评论 4 40
  • 前言 在我们使用vscode开发中,经常使用很多好用的vscode插件,那你有没有试着自己实现一个自己的vscod...
    两行代码三个Bug阅读 2,455评论 0 1
  • 之前一直觉得插件开发很难,迟迟不敢接触,但每次看到或者用别人开发的插件时,又非常羡慕,这次刚好有个项目开需要开发 ...
    vermouth_Fee阅读 593评论 0 0
  • 这期从最简单的hello world(其实就是实例代码)开始vscode插件开发现在有非常方便的脚手架工具,直奔主...
    hhkkyy阅读 679评论 0 0
  • VS Code 插件能做什么 改变 VS Code 的颜色和图标主题——主题 在 UI 中添加自定义组件和视图——...
    无亦情阅读 682评论 0 0