开发者社区 问答 正文

Eclipse插件新编辑器无法断点

我使用Eclipse插件创建了一个新的编辑器。但是不会创建任何断点。我认为是CompilationUnitEditor的问题,所以请回答解决方案。

@Override protected void createPages() { try { // Sets file name as title this.setPartName(getEditorInput().getName());

    // service editor
    editor = new CompilationUnitEditor();
    addPage(Page.SERVICE_SOURCE.ordinal(), editor, getEditorInput());
    setPageText(Page.SERVICE_SOURCE.ordinal(), EditConst.TITLE_SERVICE_EDITOR_TAB1);

    // initializes
    iCompilationUnit = JavaUI.getWorkingCopyManager().getWorkingCopy(getEditorInput());

    // service viewer
    viewer = new ServiceViewer(getContainer(), this, iCompilationUnit);
    addPage(Page.SERVICE_VIEWER.ordinal(), viewer);
    setPageText(Page.SERVICE_VIEWER.ordinal(), EditConst.TITLE_SERVICE_EDITOR_TAB2);

    // service PMD
    inspection = new ServiceInspection(getContainer(), this, iCompilationUnit);
    addPage(Page.SERVICE_INSPECTION.ordinal(), inspection);
    setPageText(Page.SERVICE_INSPECTION.ordinal(), EditConst.TITLE_SERVICE_EDITOR_TAB3);

    // add event listener
    addPageChangedListener(this);

}catch(Exception e) {
    e.printStackTrace(System.err);
    throw new RuntimeException(e);
}

}

展开
收起
垚tutu 2019-11-29 23:13:26 789 分享 版权
阿里云 AI 助理回答

在Eclipse中,断点功能通常是与编辑器的内容类型(content type)和调试模型紧密相关的,而不是直接由某个特定的编辑器类(如CompilationUnitEditor)控制。如果你在自定义的编辑器中无法设置断点,这可能是因为以下几个原因:

  1. 内容类型注册:确保你的编辑器处理的文件类型已经正确地关联到了Java内容类型上。这样Eclipse才能识别出这是可以调试的代码。

  2. 工作副本管理:你已经在代码中使用了JavaUI.getWorkingCopyManager().getWorkingCopy(getEditorInput())来获取工作副本,这是正确的做法。但请确认这个步骤没有抛出异常,且确实返回了一个有效的ICompilationUnit对象。

  3. 调试支持:Eclipse的调试模型需要编辑器提供正确的模型信息。对于Java编辑器而言,这通常意味着要确保编辑器正确地与JDT(Java Development Tools)集成,特别是确保编译单元(ICompilationUnit)能够被调试框架识别。

  4. 编辑器生命周期管理:确保你的编辑器生命周期管理正确,包括初始化、激活、停用等阶段的处理,这些都可能间接影响到断点的设置。

解决方案尝试

  • 检查并确认内容类型:在插件的plugin.xml中,确保为你的编辑器关联了正确的内容类型(例如,对于Java源码,应是org.eclipse.jdt.core.javaSource)。

  • 实现调试支持:如果问题在于调试支持不全,你可能需要更深入地集成到Eclipse的调试框架中。虽然CompilationUnitEditor本身应该已经具备基本的调试支持,但你可能需要检查是否有覆盖或遗漏了必要的方法调用,比如确保编辑器的输入与调试模型同步。

  • 日志和调试信息:增加日志记录,特别是在获取工作副本和与调试相关操作的地方,以帮助诊断问题所在。

  • 参考标准实现:查看Eclipse JDT中的标准编辑器实现,了解它们是如何处理断点和其他调试功能的,这可能会给你一些启示。

如果以上步骤都不能解决问题,建议详细检查Eclipse的日志输出,寻找任何与调试或编辑器初始化相关的错误信息,并考虑在Eclipse开发者社区或论坛寻求帮助,那里可能会有遇到过类似问题的开发者能提供更具体的指导。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答