在我平時的作業中會經常用到svn blame這個命令,但是vscode現有的svn擴展普遍都不能自定義右鍵選單,
所以我產生一個想法:自己動手為vscode開發一款svn的擴展來定制右鍵選單,本文記錄這個svn擴展的開發記錄,此擴展開發約耗時周末中的一天,
最終成果:在vscode擴展中搜索:svnHelper就可以找到我撰寫的svn擴展,商店下載地址:https://marketplace.visualstudio.com/items?itemName=qingqingzhao.svnhelper

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
開發擴展的步驟
- cd到你要把專案保存的路徑,然后通過yo code新建一個專案,然后選項專案的開發語言,熟悉C#的可選TypeScript
- 撰寫擴展代碼
- 按F5運行擴展,或者在運行除錯這里,運行或新建除錯項:Run Extension
- vsce package,把擴展打包為vsix檔案
- 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建議全小寫,否則會有黃色警告線,每一項的意思如果不清晰的話,把滑鼠移上去就會有提示這項是干啥的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/457952.html
標籤:其他
上一篇:如何使用python抓取過濾后的結果(使用selenium)?
下一篇:從零開始學Python
