Eclipse 中用户定义的代码折叠区域
User-defined code folding regions in Eclipse
是否有任何内置功能或插件可以让我为代码折叠定义我自己的自定义区域?我使用的是 4.8.0 版本(Photon 版本)
特别是,我对折叠 .java 文件的某些部分感兴趣,我需要在其中声明很多变量。
要向 Java 来源添加折叠区域,您可以实施扩展 "org.eclipse.jdt.ui.foldingStructureProvider"。为此,您创建一个 eclipse 插件项目(需要 Eclipse PDE)并向您的 plugin.xml 添加一个扩展点。然后创建一个 class 实现 IJavaFoldingStructureProvider 并且可能实现 IJavaFoldingStructureProviderExtension.
折叠区域是这样添加的:
FoldingStructureComputationContext context
IRegion normalized = alignRegion(new Region(offset, length), context);
if (normalized != null) {
Position position = createMemberPosition(normalized, (IMember) element);
if (position != null) {
boolean isCollapsed = false, isComment = false;
context.addProjectionRange(new JavaProjectionAnnotation(isCollapsed, element, isComment), position);
}
}
参见 DefaultJavaFoldingStructureProvider for alignRegion、createMemberPosition 等。偏移量和长度由您的代码确定。
是否有任何内置功能或插件可以让我为代码折叠定义我自己的自定义区域?我使用的是 4.8.0 版本(Photon 版本)
特别是,我对折叠 .java 文件的某些部分感兴趣,我需要在其中声明很多变量。
要向 Java 来源添加折叠区域,您可以实施扩展 "org.eclipse.jdt.ui.foldingStructureProvider"。为此,您创建一个 eclipse 插件项目(需要 Eclipse PDE)并向您的 plugin.xml 添加一个扩展点。然后创建一个 class 实现 IJavaFoldingStructureProvider 并且可能实现 IJavaFoldingStructureProviderExtension.
折叠区域是这样添加的:
FoldingStructureComputationContext context
IRegion normalized = alignRegion(new Region(offset, length), context);
if (normalized != null) {
Position position = createMemberPosition(normalized, (IMember) element);
if (position != null) {
boolean isCollapsed = false, isComment = false;
context.addProjectionRange(new JavaProjectionAnnotation(isCollapsed, element, isComment), position);
}
}
参见 DefaultJavaFoldingStructureProvider for alignRegion、createMemberPosition 等。偏移量和长度由您的代码确定。