Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从插件以编程方式修改Eclipse工作区和CDT选项_Eclipse_Eclipse Cdt - Fatal编程技术网

从插件以编程方式修改Eclipse工作区和CDT选项

从插件以编程方式修改Eclipse工作区和CDT选项,eclipse,eclipse-cdt,Eclipse,Eclipse Cdt,我想从插件中以编程方式修改Eclipse工作区(添加现有项目是我的主要请求)。 另外,我想从插件中修改CDT选项(环境、索引器选项) 有没有人知道如何最好地做到这一点,或者可以给我指出关于这个主题的好的文档 编辑: 实际上,我不想修改CDT项目设置,但想修改一些全局CDT设置(实际上我想禁用索引器)。这取决于您要进行的修改类型 例如,添加一个项目最好的例子是 您还可以: 更一般地说,它是该主题指针的良好来源 自2004年以来,您可以通过(ICSettingsStorage)进行修改。也许这会有

我想从插件中以编程方式修改Eclipse工作区(添加现有项目是我的主要请求)。 另外,我想从插件中修改CDT选项(环境、索引器选项)

有没有人知道如何最好地做到这一点,或者可以给我指出关于这个主题的好的文档

编辑:
实际上,我不想修改CDT项目设置,但想修改一些全局CDT设置(实际上我想禁用索引器)。

这取决于您要进行的修改类型

例如,添加一个项目最好的例子是

您还可以:

更一般地说,它是该主题指针的良好来源


自2004年以来,您可以通过(
ICSettingsStorage
)进行修改。也许这会有帮助


关于索引器,请注意以下问题。

是的,但您可以进一步了解。

是否可以将答案标记为“半解”?因为你的答案很好,但我还需要CDT选项部分。但是,也许我可以从我的问题中删除CDT部分并创建一个新的:-)你认为有可能添加CDT内容吗?@rstevens:细节有点模糊,但设置CDT项目设置的一种方法是创建一个新的项目向导,该向导扩展CDT部分并向新的CDT项目添加其他设置(我认为这可能是将现有项目导入工作区)。但要将所有内容都准备好可能有点棘手,我已经有一段时间没有这样做了。如果您想在插件中动态编辑/更改设置,我建议您扩展CDT首选项页或类似的内容。它可能会让您访问这些设置。@rstevens:很抱歉,描述不明确,但这是错误的已经有一段时间了,我不完全确定你的主要目标是什么。@rstevens:我今天晚些时候会检查CDT部分,但现在,我的答案肯定不会是“选定的”;)可能有人会在今天晚些时候发布更完整的帖子。@Subtwo&@VonC:谢谢你的回复。我编辑了这个问题,因为它不够清楚。我想编辑全局(工作区)CDT设置,而不是项目设置。对不起,问题不清楚。
String theProjName = "Test";
String theLocation = "/some/test/project";

try {
    IWorkspaceRoot theRoot = ResourcesPlugin.getWorkspace().getRoot();
    IProject theProject = theRoot.getProject(theProjName);
    IProjectDescription theDesc =       theProject.getWorkspace().newProjectDescription(theProjName);
        theDesc.setLocation(new Path(theLocation));
    theProject.create(theDesc, new NullProgressMonitor());
    if (theProject.exists()) {
        theProject.open(new NullProgressMonitor());
    }
} catch (CoreException err) {
    err.printStackTrace();
}
IWorkbenchWindow dw = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
try {
   if (dw != null) {
   IWorkbenchPage page = dw.getActivePage();
   if (page != null) {
    IDE.openEditor(page, file, true);                   
   }
}
} catch (PartInitException e) {

}