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" 可避免(但会失去工作区自动恢复)。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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