15

我刚刚在 Windows 10 操作系统上安装了 Rubberduck VBE 插件 v2.0.11.2453 (MSIL)。

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

我究竟做错了什么?

在此处输入图像描述

4

1 回答 1

11

免责声明:我积极参与 Rubberduck 插件的开发。

你没有做错任何事=)

在早期的 alpha 2.x 版本中,我们发现在启动时启动初始解析会导致问题(暴力崩溃),因为插件本质上是在 VBE 完成为项目设置对象模型之前准备好的在 IDE 中加载。基本上,VBE 会在完全完成自身构建之前加载其加载项,因此我们不能只在启动时启动解析任务。

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

Rubberduck 命令栏(默认停靠在 IDE 顶部,就在主命令栏下方)包含一个“刷新”按钮:

在此处输入图像描述

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

大多数 Rubberduck 命令将在状态“已解析”后立即启用(不会持续很长时间 - 它会立即切换到“解析标识符”),并且重构会在“就绪”状态下启用(甚至在检查之前)完成运行)。

您还将在代码资源管理器测试资源管理器检查结果待办事项资源管理器工具窗口的工具栏中找到“刷新”命令按钮。

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

将该按钮想象为“好的,鸭子,我已经完成了代码更改,现在与 IDE 同步”:插件需要知道每个标记在编辑器中的确切位置才能正常工作。在去同步的解析器状态上重构或应用检查快速修复绝对是一个坏主意!

也就是说,在启动时禁用所有菜单有点懒惰(而且也很笨拙:例如,即使菜单被禁用,用于显示检查结果代码浏览器工具窗口的热键也会起作用)——我们将在下一个版本中解决这个问题,并且初始解析也应该是自动的(我们将让它在延迟后启动,以使 VBE 有机会完成启动)。

于 2017-01-11T22:28:41.483 回答