0

我正在为 GNAT GPS IDE做一个python 插件。

它使用 Locations 窗口向用户显示消息,因此突出显示文件行,就像错误一样。我GPS.Locations.parse()用来添加此类信息,(有些模糊的)文档是here

然后,用户可以从代码或“位置”窗口中选择行来执行操作。

从打开的文件中获取行是小菜一碟。但是我仍然无法理解的一件事是,我如何知道用户正在选择的位置窗口中的哪一行。我尝试了GPS.MDI.get("Locations")将我引向迷宫般的儿童窗户对象的方法。我迷路了。

那么如何从 Locations 中当前选定的行中检索文本?

编辑

显然MessageContext会给我我想要的东西,但我收到一条错误消息,说没有这样的类,即使窗口有焦点也是如此。所以我认为这个类没有被实例化。

AttributeError: 'module' object has no attribute 'MessageContext'
4

1 回答 1

0

我现在才看到这个贴子。您应该调用 GPS.current_context(),它将返回 GPS.Context 的实例或其子类之一。在这种情况下,您可能会使用 GPS.current_context().file()

您似乎想要在“位置”窗口的上下文菜单中创建一个条目。看看 gps_utils.interactive 钩子。它将 python 函数包装到 GPS 动作中。然后,此操作可以绑定到特定的上下文菜单、键绑定、菜单、工具栏按钮……您还可以将过滤器与其关联,以便在应用该操作时也会显示上下文菜单(并实现这个过滤器,你使用上面的 GPS.current_context().file()

于 2015-07-17T08:16:41.167 回答