我使用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);
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Eclipse中,断点功能通常是与编辑器的内容类型(content type)和调试模型紧密相关的,而不是直接由某个特定的编辑器类(如CompilationUnitEditor
)控制。如果你在自定义的编辑器中无法设置断点,这可能是因为以下几个原因:
内容类型注册:确保你的编辑器处理的文件类型已经正确地关联到了Java内容类型上。这样Eclipse才能识别出这是可以调试的代码。
工作副本管理:你已经在代码中使用了JavaUI.getWorkingCopyManager().getWorkingCopy(getEditorInput())
来获取工作副本,这是正确的做法。但请确认这个步骤没有抛出异常,且确实返回了一个有效的ICompilationUnit
对象。
调试支持:Eclipse的调试模型需要编辑器提供正确的模型信息。对于Java编辑器而言,这通常意味着要确保编辑器正确地与JDT(Java Development Tools)集成,特别是确保编译单元(ICompilationUnit
)能够被调试框架识别。
编辑器生命周期管理:确保你的编辑器生命周期管理正确,包括初始化、激活、停用等阶段的处理,这些都可能间接影响到断点的设置。
检查并确认内容类型:在插件的plugin.xml
中,确保为你的编辑器关联了正确的内容类型(例如,对于Java源码,应是org.eclipse.jdt.core.javaSource
)。
实现调试支持:如果问题在于调试支持不全,你可能需要更深入地集成到Eclipse的调试框架中。虽然CompilationUnitEditor
本身应该已经具备基本的调试支持,但你可能需要检查是否有覆盖或遗漏了必要的方法调用,比如确保编辑器的输入与调试模型同步。
日志和调试信息:增加日志记录,特别是在获取工作副本和与调试相关操作的地方,以帮助诊断问题所在。
参考标准实现:查看Eclipse JDT中的标准编辑器实现,了解它们是如何处理断点和其他调试功能的,这可能会给你一些启示。
如果以上步骤都不能解决问题,建议详细检查Eclipse的日志输出,寻找任何与调试或编辑器初始化相关的错误信息,并考虑在Eclipse开发者社区或论坛寻求帮助,那里可能会有遇到过类似问题的开发者能提供更具体的指导。