如何在IDocument中访问不同的Java分区

时间:2016-12-21 00:37:51

标签: java eclipse eclipse-plugin editor partitioning

我目前正在开发一个插件,其中我需要一个函数,只在我的光标位于javadoc注释分区时执行。

我尝试执行IDocument.computePartitioning()以及IDocument.getContentType()。到目前为止,返回的唯一分区类型是默认内容类型。我可以看到,虽然IDocument实例是正确的,但getDocumentPartitioner()方法返回null。

我的问题是,我的IDocument显然包含IJ​​avaPartitions,因为它是一个.java文件。如何访问此分区以确定我的光标所在的分区?

2 个答案:

答案 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获取分区名称。