Skip to content

[Info] Embedded IDE launch done [Error] TypeError: c is not a constructor #575

Description

@wencong1014

问题描述

打开 VS Code 工作区时,EIDE 扩展经常报错 TypeError: c is not a constructor
随后工作区虽然打开了,但 EIDE 侧边栏中找不到项目。
如果提前手动点击侧边栏的 EIDE 图标(激活扩展),则不会报错,一切正常。

复现步骤

  1. 关闭 VS Code
  2. 重新打开一个 EIDE 项目工作区
  3. 观察输出面板,出现:
  4. 侧边栏 EIDE 面板中无项目
  5. (对照)如果先点击侧边栏 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" 可避免(但会失去工作区自动恢复)。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions