VSCode插件的开发与放弃

155 阅读1分钟

最近因为空余时间有点多,而且因为没在vscode中找到合我心意yapi接口文档转interface的插件,所以打算自己搞一个所以从头边学vscode插件开发边弄吧。

环境安装

npm install -g yo generator-code //官方脚手架
yo code // 执行脚手架命令

根据提示选择你想要的

QQ20220617-152347@2x.png

QQ20220617-152431@2x.png

目录结构

image.png

目录接口还是一眼就看得懂得,真正的重点还是package.json和extension.ts这两个分别是项目配置文件和项目入口文件


{
    // 插件名称(全小写无空格)
    "name": "yys", 
    // 插件的友好显示名称,用于显示在应用市场,支持中文
    "displayName": "yys",
    // 插件描述
    "description": "",
    // 插件版本
    "version": "0.0.1",
    // 插件运行的vscode版本
    "engines": {
        "vscode": "^1.68.0"
    },
    // 件应用市场分类,可选值: [Programming Languages, Snippets, 
    // Linters, Themes, Debuggers, Formatters, Keymaps, SCM Providers,
    // Other, Extension Packs, Language Packs]
    "categories": [
        "Other"
    ],
    // 扩展的激活事件数组,可以被哪些事件激活扩展
    "activationEvents": [
        "onCommand:yys.helloWorld"
    ],
    // 入口文件
    "main": "./dist/extension.js",
    // 
    "contributes": {
        // 命令
        "commands": [
            {
                "command": "yys.helloWorld",
                "title": "Hello World"
            }
        ],
        // 左侧边栏图标 如不配置views不展示该图标
         "viewsContainers": {
              "activitybar": [
                {
                  "id": "yapi2ts",
                  "title": "Api Viewer Explorer",
                  "icon": "resources/sidebar-icon.svg"
                }
              ]
        },
        // 自定义侧边栏内view的实现
        "views": {
          // 和 viewsContainers中id对应
          "yapi2ts": [
            {
              "id": "123123",
              "name": "12312312"
            }
          ]
        }
    },
    "scripts": {
        "vscode:prepublish": "yarn run package",
        "compile": "webpack",
        "watch": "webpack --watch",
        "package": "webpack --mode production --devtool hidden-source-map",
        "compile-tests": "tsc -p . --outDir out",
        "watch-tests": "tsc -p . -w --outDir out",
        "pretest": "yarn run compile-tests && yarn run compile && yarn run lint",
        "lint": "eslint src --ext ts",
        "test": "node ./out/test/runTest.js"
    },
    "devDependencies": {
        "@types/vscode": "^1.68.0",
        "@types/glob": "^7.2.0",
        "@types/mocha": "^9.1.1",
        "@types/node": "16.x",
        "@typescript-eslint/eslint-plugin": "^5.27.0",
        "@typescript-eslint/parser": "^5.27.0",
        "eslint": "^8.16.0",
        "glob": "^8.0.3",
        "mocha": "^10.0.0",
        "typescript": "^4.7.2",
        "ts-loader": "^9.3.0",
        "webpack": "^5.72.1",
        "webpack-cli": "^4.9.2",
        "@vscode/test-electron": "^2.1.3"
    }
}

调试

F5选择run extension,就会打开一个新的vscode窗口 在该窗口 ctrl+shift+p 输入 hello world 便可以看到这个初始框架的初次运行了