認識vscode (一)

近期因爲工作和自身的愛好等等機緣巧合.需要對vscode進行二次魔改。
所以一直在啃vscode源碼.

vscode 整體架構非常複雜,但同時源碼非常清晰明瞭,有第三方依賴,核心模塊大都是由自身實現,包括依賴注入系統、UI管理、插件服務、terminal(powershell)管理.

vscode的模塊架構非常清晰.主要包含

  • extensions (插件模塊.該目錄下每個目錄都是一個獨立的插件. build/builtInExtensions.json 描述了額外依賴的遠程插件
  • vs-base (基礎功能模塊
  • vs-code (這裏還沒了解是啥後續更新。代碼很少
  • vs-editor ( monaco-editor...
  • vs-platform ( 這裏可以理解爲跟系統原生API交互的一些組件. 比如 fileDialog.. powershell. bash 啊這些..
  • vs-workbench ( 工作區模塊.二次開發主要也是改這裏

每個模塊基本還會細分爲三個子模塊分別運行在三個不同的進程.

  • browser (UI邏輯
  • common (共享的一些邏輯. config 之類的 如果在這裏寫了一些依賴node 庫才能運行的代碼 讓 browser調用了。會導致vscode卡死..
  • node (node邏輯代碼

不同的進程間如圖採用ipc通訊
image.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章