【问题标题】:From an Eclipse plugin, how can I programmatically cause Eclipse to edit a certain file?从 Eclipse 插件,如何以编程方式使 Eclipse 编辑某个文件?
【发布时间】:2012-04-23 09:21:37
【问题描述】:

我有一个创建新视图的插件。在我看来,我显示了有关项目中某些 Java 类的某些信息。我想让用户在我的视图中双击一个类,当他/她这样做时,我想打开该类以在编辑器中进行编辑。基本上类似于 Hierarchy View 所做的:它显示类树,当用户双击其中一个时,它会进入编辑器。如果我拥有的是IType 类型的对象,我该怎么做?

【问题讨论】:

    标签: java eclipse-plugin editor


    【解决方案1】:

    我将根据您的要求展示一个高级实现。您必须执行以下步骤。

    • 首先你必须在Plugin.xml 中输入扩展类 viewParteditorPart 分别用于视图和编辑器。
    • 对于层次结构视图,您必须加载具有树结构的信息 ViewPart
    • 在节点的双击监听器上,您必须打开编辑器。

    要在编辑器中打开文件,请使用以下代码打开编辑器。

     if (fileToOpen.exists() && fileToOpen.isFile()) {
         String path = //Path for that to file to open;
         IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
         URI fromString = org.eclipse.core.runtime.URIUtil.fromString("file://" + path);
         try {
             IEditorPart openEditor = IDE.openEditor(page, fromString, Editor.ID, true);
             IEditorInput editorInput = openEditor.getEditorInput();
             //editorInput.
         } catch ( PartInitException e ) {
             //Put your exception handler here if you wish to.
         }
     }
    

    【讨论】:

    • 昨天,Editor.ID 未解决,我找不到解决它所需的内容。为了解析编辑器,我需要添加哪个必需的插件、导入的包或扩展?
    • Editor id 是您在 plugin.xml 中注册类的 id,这应该是唯一的,以识别您要打开的编辑器实例
    • RTA,谢谢,但我想在主 Eclipse 文本编辑器中打开一个 java 文件。那个编辑的id是什么?有没有一个地方可以检查并找出所有 Eclipse 编辑器的 ID?
    • 只需在您的编辑器类中定义一个唯一 id 并传递它。例如,您定义了 public static final String ID = "javaEditor";在 A 类中并现在引用它,我希望它可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    相关资源
    最近更新 更多