為vscode開發一款svn右鍵菜單擴展


在我平時的工作中會經常用到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的名字與申請的發布名字一致

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建議全小寫,否則會有黃色警告線,每一項的意思如果不清晰的話,把鼠標移上去就會有提示這項是干啥的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM