Eclipse IDE插件开发:基于superClass扩展编译选项的疑问
关于Eclipse插件XML配置点的两个问题解答
我来帮你解答这两个关于Eclipse CDT插件配置的问题:
1. 如何查看gnu.cpp.compiler.option.dialect.std的具体内容?
有几种实用的方法可以查看这个superClass对应的内容:
- 利用Eclipse内置导航:右键点击配置代码里的
gnu.cpp.compiler.option.dialect.std,选择Open Definition,如果Eclipse能定位到对应的扩展点定义或者Java类,就能直接查看它的结构、默认支持的选项以及属性规则。 - 关联源码查看细节:如果这个superClass对应的是Java类,先找到它所在的插件(一般是
org.eclipse.cdt.gnu.core这类CDT核心插件),右键插件选择Properties,在Java Source Attachment中关联对应的源码包——你可以从Eclipse更新站点下载对应版本的CDT源码,或者直接从GitHub获取。 - 查看扩展点的schema文件:每个Eclipse扩展点都有对应的schema定义,你可以在目标插件的
schema目录下找到相关文件,里面会详细说明该扩展点的属性、允许的子元素、默认选项等所有配置规则。
2. 能否基于该superClass扩展新增选项?
当然可以!你可以通过以下步骤来扩展新增选项:
- 在自己的插件
plugin.xml中,继承这个superClass来定义新的option配置,同时添加你需要的新选项值。比如要新增C++23的选项,可以这样写:
<option category="elf.compiler.general" id="elf.compiler.dialect.std.cpp" name="C++ language standard" superClass="gnu.cpp.compiler.option.dialect.std"> <!-- 新增的C++23选项 --> <optionValue id="cpp23" name="ISO C++23 Standard" value="-std=c++23"/> </option>
- 确保插件依赖正确:在
plugin.xml的Dependencies标签下,添加包含gnu.cpp.compiler.option.dialect.std的CDT插件依赖(比如org.eclipse.cdt.gnu.core),否则Eclipse无法识别这个superClass。 - 提前确认扩展规则:有些superClass对应的扩展点会限制子元素的类型,你可以先查看它的schema文件,确认允许添加
optionValue这类子元素,保证新增的选项符合规范。
内容的提问来源于stack exchange,提问作者Ahmad Egbaria
相关产品推荐
相关产品推荐

