Rubberduck UI 子菜单被禁用

Rubberduck UI submenus are disabled

我刚刚在 Windows 10 OS.

上安装了 Rubberduck VBE 插件 v2.0.11.2453 (MSIL)

当我在 Excel 中打开启用了宏的 Excel 工作簿并启动 VBA 编辑器时,Rubberduck 启动但 Rubberduck 菜单下的所有命令都被禁用。

我做错了什么?

Disclaimer: I'm heavily involved with the development of the Rubberduck add-in.

你没有做错=)

在早期的 alpha 2.x 版本中,我们发现在启动时启动初始解析会导致问题(严重崩溃),因为 add-in 实际上在 VBE 完成设置之前就已准备就绪IDE 中加载的项目的对象模型。基本上,VBE 在完全完成自身构造之前加载其 add-ins,因此我们不能在启动时立即启动解析任务。

所以我们禁用了 initial/automatic 解析,这就是为什么它需要手动完成(现在)。

Rubberduck 命令栏(默认停靠在 IDE 的顶部,就在主命令栏下方)包含一个 "refresh" 按钮:

单击该按钮会将解析器状态从 "Pending" / "En attente" 更改为 "Ready" / "Prêt"(经过多个状态后)。

大多数 Rubberduck 命令将在状态为 "Parsed" 时立即启用(不会持续很长时间 - 之后它会立即切换到 "Resolving identifiers"),并且重构会在"Ready" 状态(甚至在检查完成之前 运行)。

您还会在 Code ExplorerTest Explorer检查结果Todo Explorer toolwindows。

当 Rubberduck 在后台工作时,您应该能够 browse/navigate 代码并使用 VBE,但请注意,在 Rubberduck 解析代码时修改代码可能会导致某些解析器错误状态;我们假设 IDE 中的代码是可编译的 =)

将该按钮视为 "Okay ducky, I've done code changes, now sync up with the IDE":add-in 需要知道每个标记的确切 in-editor 位置才能正常工作。在 de-synchronized 解析器状态上重构或应用检查 quick-fix 绝对是个坏主意!

也就是说,在启动时禁用 所有 菜单有点懒惰(也很笨拙:例如显示 检查结果的热键 code explorer toolwindows 将工作,即使菜单被禁用) - 我们将在下一个版本中解决这个问题,并且初始解析也应该再次自动(我们会做到的延迟后启动,让 VBE 有机会完成启动。