码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 为vscode开发一款svn右键菜单扩展


    本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/16125285.html



    在我平时的工作中会经常用到svn blame这个命令,但是vscode现有的svn扩展普遍都不能自定义右键菜单。

    所以我产生一个想法:自己动手为vscode开发一款svn的扩展来定制右键菜单,本文记录这个svn扩展的开发记录,此扩展开发约耗时周末中的一天。

    最终成果:在vscode扩展中搜索:svnHelper就可以找到我编写的svn扩展,商店下载地址:https://marketplace.visualstudio.com/items?itemName=qingqingzhao.svnhelper

    image-20220410120154351


    vscode的svn扩展源代码#

    重点:这几个库拉下来之后,我尝试直接通过vsce package指令生成vsix,全部都失败了,编译代码时有不同的出错,只能去看vscode的开发文档。

    这里我列一下我找到的几个开源的vscode的tortoise svn 扩展,每个仓库的代码我大概扫了一下:

    如果想自己往右键菜单中添加选项,这个扩展的源代码比较简单易懂:https://github.com/florentulve/vstortoise

    这个可以提交整个workspace:https://github.com/fantacytyx/vscode-tortoise-svn

    这个提供很多的命令,https://github.com/cdsama/tortoise-svn-for-vscode


    其它解决办法#

    在时间急迫的情况下,我找到了这个神器,在vscode中可以打开系统右键菜单,这样也可以满足我的需求,只是它需要多点一下鼠标

    Windows Explorer Context Menu:https://marketplace.visualstudio.com/items?itemName=florentulve.vstortoise


    github上源码报的错#

    上述几个源码库在编译时无一列外都会报错,我猜原因可能是我安装的nodejs和vscode版本太新有关系,因为这些库都是三四年前的。

    我的操作步骤是看vscode的官方文档来操作的,步骤如下:

    首先通过npm install来安装依赖,但会报:Cannot find module 'vscode'.

    然后npm install vscode 之后,再次编译就有一堆的 node.d.ts编译出错

    尝试过修改package.json中依赖库的版本之后,还是无法解决编译时的报错。

    结论:期间还出现可以调试,但打包为vsix就会有不一样的报错,最终我放弃了折腾上述几个库,自己重新开始一个项目开发。


    vscode扩展开发学习资料#

    新建一个vscode的扩展项目:范例-hello-world-Microsoft Visual Studio Code 中文手册 (cntofu.com)

    推荐这个系列,有配图讲的很清晰:VSCode扩展开发全攻略(三)package.json详解-好记的博客 (haoji.me)


    微软的文档及例子#

    微软的例子:https://github.com/microsoft/vscode-extension-samples

    微软VSCode扩展开发官方文档:https://code.visualstudio.com/docs/extensions/overview

    生成vsix及发布到市场文档:https://code.visualstudio.com/api/working-with-extensions/publishing-extension

    书籍#

    如果时间充实的同学,可以看看微软韩老师的这本书《Visual Studio Code 权威指南》,在第15章有讲到如何开发一个vscode扩展


    开发扩展的步骤#

    需要下载nodejs,用来编译及发布

    需要安装的库:

    用来生成新建项目的:npm install -g yo generator-code

    用来打包vsix的:npm i vsce -g

    开发扩展的步骤

    1. cd到你要把项目保存的路径,然后通过yo code新建一个项目,然后选项项目的开发语言,熟悉C#的可选TypeScript
    2. 编写扩展代码
    3. 按F5运行扩展,或者在运行调试这里,运行或新建调试项:Run Extension
    4. vsce package,把扩展打包为vsix文件
    5. vsce publish,把扩展发布到商店

    发布到vscode商店#

    这个命令不能使用了:vsce create-publisher your-publisher-name

    需要到这个网站进行操作(提交的时候可能需要挂VPN):https://aka.ms/vscode-create-publisher

    发布遇到问题#

    这个报错需要在package.json中把publisher的名字与申请的发布名字一致

    Copy
    ERROR The Personal Access Token verification has failed. Additional information: Error: Access Denied: e2d743d1-0ffd-4e04-a41d-c894878f29ba needs the following permission(s) on the resource /qingqingzhao to perform this action: View user permissions on a resource

    开发及发布的注意事项#

    ps:开发过程中还遇到了其它的问题,可参考我的这篇文章《知乎vscode插件修改和重新编译》

    发布的注意事项如果repository有填则会检查github仓库?看到有篇文章中写道,因为我是放在gitee上的,所以我没填。

    建议往项目中添加这几个文件,否则每次打包时都会需要你二次确认

    LICENSE.txt

    CHANGELOG.md

    package.json中的name建议全小写,否则会有黄色警告线,每一项的意思如果不清晰的话,把鼠标移上去就会有提示这项是干啥的。

  • 相关阅读:
    Linux入门之使用紧急救援模式更改 root 密码
    基于SSM+Vue的舞蹈网站
    小程序源码:最新掌上题库微信小程序源码下载,修复登录接口,支持在线考试,自定义导入考题-多玩法安装简单
    计算机毕业设计Java汉字幼教系统(源码+系统+mysql数据库+lw文档)
    [100天算法】-搜索旋转排序数组 II(day 65)
    “遥遥领先”已被注册为商标,华为这次真的在行业里遥遥领先
    apt 常用命令
    6.Flink实时项目之业务数据分流
    如何保证云docker容器重启后数据不丢失
    功能测试自动化测试流程
  • 原文地址:https://www.cnblogs.com/zhaoqingqing/p/16125285.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号