VSCode
在 1.88
的更新日志中宣布了 Restart extensions
的功能:
在本地 VSCode
中,现在不需要 Reload Window
就可以重启插件了。这不禁让我好奇,他们到底做了些什么?
ToC
找找
让我们先用关键词 Reload Extensions
来找一找:
找到了 runtimeState.action
。它是怎么定义的呢?
看来是加了个 ExtensionRuntimeActionType.RestartExtensions
。继续追引用:
看来核心逻辑都在 updateRunningExtensions
里了。
看看
看看 updateRunningExtensions
:
还以为会有什么魔法,结果居然是先 Stop
再 Start
??
这里 startExtensionHosts()
的签名相比于之前的版本增加了 toAdd
和 toRemove
两个参数,传到内部之后是直接调用了 _handleDeltaExtensions
:
没意思,还以为是做了什么好东西,这样实现居然还不支持 Remote
,软软没救了,散了散了)