问题描述
打开 VS Code 工作区时,EIDE 扩展经常报错 TypeError: c is not a constructor,
随后工作区虽然打开了,但 EIDE 侧边栏中找不到项目。
如果提前手动点击侧边栏的 EIDE 图标(激活扩展),则不会报错,一切正常。
复现步骤
- 关闭 VS Code
- 重新打开一个 EIDE 项目工作区
- 观察输出面板,出现:
- 侧边栏 EIDE 面板中无项目
- (对照)如果先点击侧边栏 EIDE 图标再打开项目,则正常
环境信息
- VS Code 版本: 1.131.0
- EIDE 版本: 3.27.2
- 操作系统: Windows
- 架构: windows/amd64
分析
EIDE 的 activationEvents 为 ["onStartupFinished"]。
VS Code 默认 window.restoreWindows: "all",启动时会自动恢复上次工作区,
EIDE 在此时尝试自动加载项目,但内部某些类/构造函数尚未初始化完成,
导致 c is not a constructor(竞态条件)。
手动点击侧边栏图标会强制完整激活流程,因此不报错。
期望行为
VS Code 启动自动恢复工作区时,EIDE 项目应正常加载,不报错。
临时规避
设置 "window.restoreWindows": "none" 可避免(但会失去工作区自动恢复)。
问题描述
打开 VS Code 工作区时,EIDE 扩展经常报错
TypeError: c is not a constructor,随后工作区虽然打开了,但 EIDE 侧边栏中找不到项目。
如果提前手动点击侧边栏的 EIDE 图标(激活扩展),则不会报错,一切正常。
复现步骤
环境信息
分析
EIDE 的 activationEvents 为
["onStartupFinished"]。VS Code 默认
window.restoreWindows: "all",启动时会自动恢复上次工作区,EIDE 在此时尝试自动加载项目,但内部某些类/构造函数尚未初始化完成,
导致
c is not a constructor(竞态条件)。手动点击侧边栏图标会强制完整激活流程,因此不报错。
期望行为
VS Code 启动自动恢复工作区时,EIDE 项目应正常加载,不报错。
临时规避
设置
"window.restoreWindows": "none"可避免(但会失去工作区自动恢复)。