Plugins 在GNAT GPS插件的project_属性中设置默认项目列表
我正在开发一个定制的GNAT GPS插件(用于GPS 6.1.2) 我的插件XML创建了一个项目属性“example\u list\u of\u files”。 这是一个字符串列表,对应于项目中Ada文件的名称。 我想将该列表中的条目默认为“a.adb”、“b.adb”、“c.adb”。然而,我一直无法找到正确的语法。相反,我最终得到一个包含所有值的字符串 我想看到的是当您手动添加三个元素时会发生什么,如下所示: 以下是此示例的代码:Plugins 在GNAT GPS插件的project_属性中设置默认项目列表,plugins,ada,gnat,gnat-gps,Plugins,Ada,Gnat,Gnat Gps,我正在开发一个定制的GNAT GPS插件(用于GPS 6.1.2) 我的插件XML创建了一个项目属性“example\u list\u of\u files”。 这是一个字符串列表,对应于项目中Ada文件的名称。 我想将该列表中的条目默认为“a.adb”、“b.adb”、“c.adb”。然而,我一直无法找到正确的语法。相反,我最终得到一个包含所有值的字符串 我想看到的是当您手动添加三个元素时会发生什么,如下所示: 以下是此示例的代码: GPS.parse_xml('<?xml vers
GPS.parse_xml('<?xml version="1.0" ?>' + """
<my_plugin>
<project_attribute
name="example_list_of_files"
label="example_list_of_files"
description="A description...."
package="MyPackage"
editor_page="MyPage"
editor_section="Build"
hide_in="wizard library_wizard"
omit_if_default="false"
list="true"
base_name_only="true">
<string type="file" filter="project" default="'a.adb','b.adb','c.adb' " />
</project_attribute>
</my_plugin>""");
GPS.parse_xml(“”+“”)
""");
请注意带有项目属性default的字符串元素。它没有在项目经理中列出条目,而是给了我一个条目,包含字符串“'a.adb'、'b.adb'、'c.adb'”
有人有什么想法吗?我还尝试了多个字符串元素,添加了括号、大括号、方括号、空格分隔符,前缀为“array(”,但运气不好)
谢谢
Matt来自GPS用户指南: 标记接受以下属性: [……]
- 列表(布尔值,默认为false) 如果为true,则项目属性包含一个值列表,与之相反 中的源目录列表就是一个例子 标准项目
<string type="file" filter="project" default="'a.adb','b.adb','c.adb' " />
这是单个字符串值。您应该指定一个字符串值列表,如下所示:
<string type="file" filter="project" default="a.adb" />
<string type="file" filter="project" default="b.adb" />
<string type="file" filter="project" default="c.adb" />
这似乎确实不受支持。标准plug-in projects.py有几个列表属性,但它们都有一个默认值。我将在这里检查可以做些什么来改进
但是,您的方法首先可能是错误的。您正在设置的默认值仅与项目编辑器有关。这意味着,如果用户使用默认项目(如
项目默认值为end default
),并且从未通过项目编辑器,则您的属性示例\u列表\u文件实际上将不存在(并且有一个默认的空值)。因此,当您查询属性的值时(比如通过GPS.Project.get_attribute_as_list
),这实际上应该在插件中处理。如果该函数返回一个空列表,那么使用(“a.adb”、“b.adb”、“c.adb”)
相反。这样,即使是默认的、未编辑的项目,也可以正常工作。感谢您的回复,但是当我在代码中替换它时,我在gps控制台中得到错误:“节点必须始终只出现一次,并且在所有其他类型描述之后”
我的列表属性设置为list=“true”是的,这就是我最后实现的,谢谢:)