1. 程式人生 > >VSCode外掛開發全攻略(一)概覽

VSCode外掛開發全攻略(一)概覽

文章索引

寫在前面

一年前我寫了一篇3萬多字的Chrome外掛(擴充套件)開發全攻略,反響還不錯,幫助了很多新手快速上手,甚至包括大名鼎鼎的紅芯瀏覽器(戳這裡瞭解更多)。

W42xH45

最近因工作需要又接觸到了vscode外掛開發,所以趁勢再寫一篇有關vscode外掛開發的文章,記錄一些自己踩過的坑以及接觸vscode外掛開發這2個多月以來的心得體會,讓大家少走一些彎路避免重複踩坑。

目前網上有關介紹vscode外掛開發的文章也有挺多的,但都不夠深入,基本上都是點到為止,篇幅不大,本系列文章爭取多講一些,涵蓋面會更廣,乾貨更多。

鑑於之前寫過幾篇內容較多的文章大家都反饋說閱讀麻煩,一篇文章內容太多看起來太累,所以這次就拆分來寫。

關於vscode外掛

相信大家對vscode應該都不陌生,VSCode是微軟出的一款輕量級程式碼編輯器,免費而且功能強大,以功能強大、提示友好、不錯的效能和顏值俘獲了大量開發者的青睞,對JavaScript和NodeJS的支援非常好,自帶很多功能,例如程式碼格式化,程式碼智慧提示補全、Emmet外掛等。

再強大的IDE那也不可能面面俱到什麼功能都塞進去,那樣只會導致IDE本身太臃腫。功能嘛,按需索取,所以,vscode的很多強大功能都是基於外掛實現的,IDE只提供一個最基本的框子和最基本功能,由外掛來豐富和擴充套件它的功能。

vscode外掛可以很輕鬆的在應用商店搜尋並下載到,應用商店官網是:

https://marketplace.visualstudio.com/vscode ,vscode推出時間本身並不長,但生態發展得非常好,應用商店已經有各種各樣豐富的外掛供大家使用了。

因為vscode本身都是用瀏覽器實現的,所以其外掛不用說肯定也是基於HTML+JS等前端技術實現,從形式上看就是一個類似於npm包的vsix檔案,只不過按照一些特殊規範來實現一些特殊功能,所以vscode外掛開發難度不大,甚至可以說熟悉了相關API之後很容易。

有必要學習vscode外掛開發嗎

有!而且非常有必要!每個人都會多多少少有一些自己的特殊定製需求,當你不知道開發一個IDE外掛其實也很容易、或者你沒有意識到通過開發外掛可以幫你提升多大效率時,你並不會下意識的將一些問題的解決方式往IDE外掛開發上去想。至少我曾經就是這樣的,提升開發效率大部分時候想到的都是寫一些指令碼工具、寫一些瀏覽器外掛、寫一些客戶端工具等,接觸到IDE外掛開發之後發現原來有些問題可以通過更高效的方式來解決,畢竟IDE才是我們程式設計師每天接觸最多的東西。

但至於可以開發什麼樣的外掛、實現什麼樣的功能、以什麼樣的形式呈現,這就要靠你從工作和生活中去發現、去找靈感並提煉了。

demo下載

本系列文章所有demo均在這個倉庫裡:https://github.com/sxei/vscode-plugin-demo ,可以直接下載執行。當然還有更簡單的,這個demo已經發布到應用市場了,大家可以直接點選這裡下載安裝,或則您也可以直接在vscode裡面搜尋plugin-Demo就能搜到:

vscode外掛能做什麼

既然前面講到學習vscode外掛開發很有必要,那外掛到底能做什麼呢?能實現什麼功能?能從哪些方面動手腳?下面我們就來列舉一些好讓大家有個大概瞭解。

不受限的本地磁碟訪問

因為vscode是基於Electron開發的,可以使用nodejs隨意讀寫本地檔案、跨域請求、甚至建立一個本地server,這都是沒有任何限制的,所以只要你想做,基本上沒有不能實現的。

自定義命令、快捷鍵、選單

vscode外掛很多功能都是基於一個個命令實現的,我們可以自定義一些命令,這個命令將出現在按下Ctrl+Shift+P後的命令列表裡面,同時可以給命令配置快捷鍵、配置資源管理器選單、編輯器選單、標題選單、下拉選單、右上角圖示等。

自定義跳轉、自動補全、懸浮提示

自定義跳轉:

自動補全:

提示:

自定義設定、自定義歡迎頁

自定義WebView

自定義左側功能面板

自定義顏色、圖示主題

新增語言支援

給某一種原有沒有的語言提供語言支援,語言支援包括很多方面,比如程式碼高亮、語法解析、摺疊、跳轉、補全等;

Markdown增強

你可以自定義markdown預覽的樣式、新增一些新語法、新功能的支援。

其它

其它還有比如狀態列修改、通知提示、編輯器控制、git原始碼控制、任務定義、Language Server、Debug Adapter等等。

收尾

本文作為開篇,不做太多詳細介紹,只是為了讓大家對vscode外掛有一個大致瞭解,後面再分篇慢慢細講。

參考資料