我目前正在开发一个插件,其中我需要一个函数,只在我的光标位于javadoc注释分区时执行。
我尝试执行IDocument.computePartitioning()
以及IDocument.getContentType()
。到目前为止,返回的唯一分区类型是默认内容类型。我可以看到,虽然IDocument
实例是正确的,但getDocumentPartitioner()
方法返回null。
我的问题是,我的IDocument
显然包含IJavaPartitions,因为它是一个.java文件。如何访问此分区以确定我的光标所在的分区?
答案 0 :(得分:0)
您需要查看并使用IDocumentExtension3
上的方法。可以通过不同的分区器以多种不同方式对文档进行分区。这些中的每一个都被认为是分区,computePartitioning
是为了二进制兼容性而坚持不良名称选择的情况。对于Java文档,它们专门使用自己的分区值。我认为它在IJavaPartitions.JAVA_PARTITIONING中保持为常量。
答案 1 :(得分:0)
您可以使用computePartitioning
的{{1}}方法获取某个范围的区域:
org.eclipse.jface.text.TextUtilities
这将处理任何IDocument document = ... get document
String partitioning = IJavaPartitions.JAVA_PARTITIONING;
int start = ... start offset
int length = ... length of area
ITypedRegion[] regions = TextUtilities.computePartitioning(document, partitioning, start, length, false);
您还可以通过调用IDocumentExtension3
方法从TextViewer
/ SourceViewer
获取分区名称。