這裡對ready的事件監聽,
//一旦準備就緒,就載入我們的**
其中呼叫了onready()函式,跟進檢視,裡面定義了startup()函式,後續會根據配置的不同用不同的引數呼叫這個startup,但只是不同方式的啟動而已。
首先獲取快取檔案目錄位址和語言配置,然後呼叫startup
跟進startup
第185行**呼叫amd的方式來載入vs/code/electron-main/main
模組,進入main process初始化流程。
這裡是先載入vscode自己開源的amd loader「快捷鍵command+p」搜尋檢視這個主入口檔案然後使用這個loader去載入vscode的主入口檔案
開頭就匯入了乙個配置檔案,先不管他
然後出現了乙個codemain類
翻到最後,看到這裡是主啟動入口,先初始化主類,然後執行入口函式
我們再回頭檢視這個codemain類:
main方法中呼叫startup(args)
在main.ts的startup中會建立乙個instantiationservice
的例項服務。這個服務本身的實現類,通過import可以看到import from 'vs/platform/instantiation/common/instantiationservice';
跟進open()
方法進入到src/vs/platform/windows/electron-main/windows.ts
滑鼠放到open()
方法上
可以看到open()方法是在iwindowsmainservice
中,往上幾行看iwindowsmainservice
的定義
然後再根據createdecorator
的作用可以知道呼叫了同目錄下的windowsmainservice
,開啟src/vs/platform/windows/electron-main/windowsmainservice.ts
找到open()方法
往下看到了
這裡呼叫doopen()
方法
再去看一下doopen()
方法的內容
這裡多次呼叫了openinbrowserwindow()
跟進openinbrowserwindow()
看到這裡建立了乙個視窗
在這方法最後,返回了乙個window
,由上圖可知這是個codewindow
例項
那麼現在跟進一下codewindow
看看裡面到底有什麼
可以看到這裡定義了乙個load()
方法
方法中有負責載入url的部分
這裡的loadurl()
是electron框架中的方法,這裡不研究。geturl()
則在下方**有定義
檢視geturl()
方法
其返回的是configurl
檢視configurl的定義
這裡又呼叫了dogeturl()
檢視這個方法
html出現了,到此,vs code中electron的main process流程跟進完成。
至於判斷語句中,到底是啟動哪個檔案,我目前也還是不太清楚。這兩個檔案html都是相同的,不同的就是js檔案
vscode外掛程式的開發流程
前幾個月在跟著一位老師做乙個c語言考試系統,這個系統是建立在vscode的外掛程式之上的。老師的初衷是讓學生在考試的時候能有乙個本地編譯的環境,而vscode本身在配置之後就提供這樣的編譯環境。vscode配置 除錯typescript 可以先用這篇熟悉一下vscode的配置,相應的操作流程 小茗同...
vscode連線 gitee,大致流程
使用vscode管理gitee專案 配置git的username email 其中username是個人資料中的姓名 email是多郵箱管理中的我的郵箱位址 在網頁版gitee中建立倉庫 建立完成後會自動到倉庫頁面,複製倉庫位址 後期使用 vscode操作 建立空白資料夾,用vscode開啟 7.選...
uboot啟動流程概述 uboot啟動流程
u boot系統啟動流程 大多數bootloader都分為stage1和stage2兩大部分,u boot也不例外。依賴於cpu體系結構的 如裝置初始化 等 通常都放在stage1,且可以用組合語言來實現,而stage2則通常用c語言來實現,這樣可以實現複雜的功能,而且有更好的可讀性和移植性。2.1...