我正在为GNAT GPS IDE做python plug-in。
它使用“位置”窗口向用户显示消息,因此突出显示文件行,如错误。我使用GPS.Locations.parse()
添加此类信息,(有些模糊)文档为here。
然后,用户可以从代码或“位置”窗口中选择行以执行操作。
从打开的文件中获取该行是件小事。
但有一件事我仍然不知道,我是如何知道用户选择的位置窗口中的哪一行。
我尝试了GPS.MDI.get("Locations")
,它引导我到儿童窗户物体的迷宫。我迷路了。
那么如何从位置中当前选定的行中检索文本?
显然有MessageContext会给我我想要的东西,但是我收到一条错误消息,说即使窗口有焦点,也不会有这样的课程。所以我认为课程没有实例化。
AttributeError: 'module' object has no attribute 'MessageContext'
答案 0 :(得分:0)
我现在只看到这个帖子。您应该调用GPS.current_context(),它将返回GPS.Context或其子类之一的实例。在这种情况下,您可以使用GPS.current_context()。file()
您想要的是在“位置”窗口的上下文菜单中创建条目。看一下gps_utils.interactive钩子。它将python函数包装到GPS动作中。然后,此操作可以绑定到特定的上下文菜单,键绑定,菜单,工具栏按钮......您还可以将过滤器与其关联,以便在操作应用时显示上下文菜单(并实现这个过滤器,你使用上面的GPS.current_context()。file()