(完结)一篇文章学会如何开发代码片段插件

错误文档

实现效果:

项目创建

安装脚手架

vscode为开发插件提供了脚手架,这里可以全局安装,以供使用

npm install -g yo generator-code | yarn global add yo generator-code

脚手架创建项目

yo code

根据需求选择插件类型,脚手架内置了Code Snippets,这里选择并创建项目

选择完 New Code Snippet,之后会让我们选择已有的代码片段地址或者按Enter创建一个新的代码片段,在这里我们按回车创建一个新的

接下来就是项目名称,扩展名和描述

选择代码片段支持的语言类型

项目目录

.
├── CHANGELOG.md
├── README.md
├── package.json
├── snippets
│   └── snippets.code-snippets
├── tree.md
└── vsc-extension-quickstart.md

2 directories, 6 files

定义代码片段

添加代码片段配置选项

package.json中的contributessnippets添加

"contributes": {
    "snippets": [
      {
        "language": "javascript",
        "path": "./snippets/jsComponent.code-snippets"
      },
      {
        "language": "typescript",
        "path": "./snippets/tsComponent.code-snippets"
      },
      {
        "language": "vue",
        "path": "./snippets/vueComponent.code-snippets"
      }
    ]
  }

jsComponent代表在js文件中,支持代码片段的使用

tsComponent代表在ts文件中,支持代码片段的使用

vueComponent代表在vue文件中,支持代码片段的使用

编写代码片段

react为例

// jsComponent copy.code-snippets 文件
{
  "mao react function component": {
    "prefix": "mreact",
    "body": [
      "import React from 'react';",
      "",
      "const ${1:App} = props => {",
      "  return (",
      "    <div>",
      "      ${0}",
      "    </div>",
      "  );",
      "}",
      "",
      "",
      "export default ${1:App};"
    ],
    "description": "Code snippet for react function component"
  }
}

代码片段结构

  • mao react function component 代码片段名称
  • prefix 前缀,代码片段提示
  • body 代码片段内容
  • description 代码片段描述

代码片段语法

代码片段语法

  • $1,$2,$3...$0:制表位,表示代码片段创建好后光标显示的位置,$1表示光标初始位置,$2表示用户按下键盘上的Tab键光标移动的下一个位置,依次类推,$0表示光标结束的位置
  • ${1:App}:预占制表位,和上边一样,只是上边是显示空白,这个会在光标处显示预占位App,这个App可以写你自己需要的东西,当Tab选中时可修改,比如${1:params1},${2:params2}

插件测试

  1. 点击vscode的调试模块

  1. 点击调试,会跳转到扩展宿主

  1. 在这里进行测试

打包和发布

本地使用

安装vscode打包依赖-vsce

npm install -g vsce | yarn global add vsce

打包

vsce package

vsce package,打包完成后会生成 .vsix 后缀的安装包。

安装包可以直接在本地引入,无需发布到 VSCode 插件市场

线上发布(市场)

如何发布

官方说明文档

进入扩展商店

发布扩展(Publish Extentsions)

创建发布者(Creat publisher)

填入发布者信息,这里的name是发布者的名字,ID是发布ID,需要绑在每个扩展源码中的package.json

更新package.json

  1. 更新publisher为创建的ID, 这里我们取mm-snippets

  1. 更新README.md文件
  2. 更新LICENSE.md文件
  3. 如遇错误可查看发布错误目录或者文档(文末)

打包

vsce package

vsce package,打包完成后会生成 .vsix 后缀的安装包。

打包文件上传

上传成功

上传成功,正在审核,审核通过即可在vscode 插件市场搜索到

成功效果

package.json
{
  "name": "maomao-snippets",
  "displayName": "mao-snippets",
  "description": "代码片段插件",
  "version": "0.0.1",
  "engines": {
    "vscode": "^1.95.0"
  },
  "categories": [
    "Snippets"
  ],
  "publisher": "mm-snippets",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/username/repo-name.git"
  },
  "contributes": {
    "snippets": [
      {
        "language": "javascript",
        "path": "./snippets/snippets.code-snippets"
      }
    ]
  }
}

发布遇到错误

出现如下错误:

编辑保存README.md文件,解决~

出现如下错误:

没有关联代码库

增加如下代码,解决~

"repository": {
  "type": "git",
  "url": "git+https://github.com/username/repo-name.git"
},

出现如下错误:

创建LICENSE.md文件,解决~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值