Extension Manifest

就像 chrome 插件使用 manifest.json 来管理插件的配置一样,vscode 的插件也有一个 manifest,而且就叫 package.json,在这里,我们可以除了可以配置插件的名字,版本号,icon 外,还可以配置插件提供哪些功能,乃至发布所需要的信息。所有字段可以查看 官方文档,本文只谈其中几个与开发发布相关的字段。

Activation Events

Activation Events 是 package.json 里的一个字段,决定了用户安装了一个插件之后,插件什么时候激活,然后开始工作。比如安装之后已启动 vscode 就激活,可以这么写:

"activationEvents": [
"*"
]

如果希望启动完成后激活可以使用 onStartupFinished;

在打开某个类型的文件时激活,如 log 文件:

...
"activationEvents": [
"onLanguage:log"
]
...

更多启动事件可参考 https://code.visualstudio.com/api/references/activation-events

Contribution Points

Contribution Points 可以理解为我们开发的插件要提供什么能力,我们可以在多个方面来拓展 vscode,大到支持一门语言的语法高亮和 lint,小到提供一个命令或者按钮,都在这里定义。比如提供一个命令:

{
"contributes": {
"commands": [
{
"command": "extension.sayHello",
"title": "Hello World", // 提供更友好的名称
"category": "Hello",
"icon": {
"light": "path/to/light/icon.svg",
"dark": "path/to/dark/icon.svg"
}
}
]
}
}

为了实现 extension.sayHello,我们在 extension.ts 通过 commands.registerCommand 来实现这个命令:

vscode.commands.registerCommand('extension.sayHello',() => {
console.log('hello world');
vscode.window.showInformationMessage('hello!')
})

这样当我们 ctrl+shift+p 并输入 sayHello 时,就会执行插件 sayHello 对应的函数。

我们还可以在右键菜单中插入一个选项:

"menus": {
"explorer/context": [
{
"when": "resourceScheme == file",
"command": "extension.base64",
"group": "base64"
}
]
}

上面 这个 json 表示在 vscode 的文件管理器中,添加一个将文件转换成 base64 的右键菜单。效果如下:

完整代码见 img2base64,所有的 contribute point 见 https://code.visualstudio.com/api/references/contribution-points

发布可能会遇到的问题

发布主要是用到 vsce 这个工具进行发布。主要会用到几个命令:

vsce create-publisher (publisher name) #创建一个publisher
vsce login (publisher name) # 使用publisher name登录
$ cd myExtension
$ vsce package
# myExtension.vsix generated
$ vsce publish
# <publisherID>.myExtension published to VS Code MarketPlace

然后建议先完整看一遍官方的发布到插件市场的 教程。需要注意的地方是在生成 token 的时候,需要严格按照文档来操作,如果后续发布时遇到的登录报 401 的问题,请参考下面的链接。

  • engines

用于标记插件所需的最低版本,如果没有使用很新的 api,建议还是往下设几个版本,以支持不是最新的 vscode,如果没有使用不兼容的 api, 设成 * 也可以

	"engines": {
"vscode": "*"
}
  • token 401 问题

    确保你的 token 生成时 orgnization 选的是 All accessiable orgnizations,

https://github.com/microsoft/vscode-vsce/issues/11

希望本文可以帮助大家少踩些坑(完)

vscode 插件配置指北的更多相关文章

  1. Kinect_V1在Debian testing的配置指北

    在Linux下驱动Kinect V1现在有两种方式,一种是使用OpenNI + SensorKinect + Nite的方案,一种是使用OpenNI2 + libfreenect的方案,第一种我没有尝 ...

  2. [Android Studio] 2019年Android Studio配置指北

    Android Studio是我学习Android开发路上的第一块绊脚石,新建一个项目,一行代码没动,直接编译不起来,我太难了,所以本文叫指北 本文讲解在9102年如何在国内网络不通畅的情况下流畅的使 ...

  3. Hive安装配置指北(含Hive Metastore详解)

    个人主页: http://www.linbingdong.com 本文介绍Hive安装配置的整个过程,包括MySQL.Hive及Metastore的安装配置,并分析了Metastore三种配置方式的区 ...

  4. vscode 插件 配置

    第一页 第二页 第三页 settings.json配置 { "editor.fontSize": 20, "files.autoSave": "off ...

  5. 【长期更新】迈向现代化的 .Net 配置指北

    1. 欢呼 .NET Standard 时代 我现在已不大提 .Net Core,对于我来说,未来的开发将是基于 .NET Standard,不仅仅是 面向未来 ,也是 面向过去:不只是 .Net C ...

  6. Django快速开发实践:Drf框架和xadmin配置指北

    步骤 既然是快速开发,那废话不多说,直接说步骤: 安装Djagno 安装Django Rest Framework 定义models 定义Rest framework的serializers 定义Re ...

  7. VSCode保存插件配置并使用 gist 管理代码片段

    setting sync 保存配置 由于公司和家里都使用 VSCode 作为主要编辑器,同步配置是最紧要的.VSCode 提供了setting sync插件,很方便我们同步插件配置.引用网上教程: 在 ...

  8. VScode 插件推荐与C/C++配置

    以下是我经常用到的VScode插件.由于插件本身具有详细的配置和介绍,不对插件本身的安装配置进行说明,仅仅支出这些插件的主要功能.具体使用强烈推荐看一下安装插件后的说明,大多数的问题和设置都可以找到, ...

  9. git宝典—应付日常工作使用足够的指北手册

    最近公司gitlab又迁移,一堆git的命令骚操作,然鹅git命令,感觉还是得复习下——其实,git现在界面操作工具蛮多,比如intellij 自带的git操作插件就不错,gitlab github ...

随机推荐

  1. OpenCV计算机视觉学习(2)——图像算术运算 & 掩膜mask操作(数值计算,图像融合,边界填充)

    在OpenCV中我们经常会遇到一个名字:Mask(掩膜).很多函数都使用到它,那么这个Mask到底是什么呢,下面我们从图像基本运算开始,一步一步学习掩膜. 1,图像算术运算 图像的算术运算有很多种,比 ...

  2. 1个LED的亮度自动控制

    控制任务和要求 通过程序控制LED的亮度按照要求变化 电路设计  程序设计 1 int bright_number = 0; //此变量用来表示LED的亮度 2 int bright_gap = 5; ...

  3. 最新vue项目添加水印

    在utils文件夹中创建 wartermark.ts 文件(位置看自己的组件放那,这都行),内容如下: 1 "use strict"; 2 3 const setWatermark ...

  4. RHSA-2017:2029-中危: openssh 安全和BUG修复更新(存在EXP、代码执行、本地提权)

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...

  5. git的项目完整操作

    今天来说下项目中git 的使用,针对常规操作: 然后执行  git status  可以看到目前的状态: 再执行添加操作      git add . 添加所有文件 接着执行提交命令  git com ...

  6. 实时离线一体化在资产租赁saas服务中使用

    流水查询需求 需求第一期: 基于TB级的在线数据,支持缴费帐单明细在线查询.大家都知道,像银行帐单流水一样,查几年的流水是常有的事. 支持的维度查询:帐期.欠费状态.日期范围.费用科目类型.房屋分类. ...

  7. Windows下使用GitStack搭建Git服务器

    Win10下使用GitStack搭建Git服务器 Git是目前世界上最先进的分布式版本控制系统(没有之一). ​ 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别. ...

  8. selenium 提取天猫网页数据

    from time import sleep from selenium import webdriver br = webdriver.Chrome() url = "https://ww ...

  9. Mosquitto服务器的日志分析

    启动Mosquitto后,我们可以看到Mosquitto的启动日志: 1515307521: mosquitto version 1.4.12 (build date 2017-06-01 13:03 ...

  10. 第二十章 nginx常见问题

    一.Nginx常见问题 一.nginx多server优先级 在开始处理一个http请求时,nginx会取出header头中的Host变量,与nginx.conf中的每个server_name进行匹配, ...