如何访问我的 IDocument 中的不同 Java 分区
How can I Access Different Java Partitions in my IDocument
我目前正在开发一个插件,其中我需要一个仅当我的光标位于 javadoc 评论分区内时才执行的函数。
我已尝试执行 IDocument.computePartitioning()
以及 IDocument.getContentType()
。到目前为止,唯一返回的分区类型是默认内容类型。我可以看到,虽然 IDocument
实例是正确的,但 getDocumentPartitioner()
方法 returns null.
我的问题是,我的 IDocument
显然包含 IJavaPartitions,因为它是一个 .java 文件。我如何才能访问此分区程序以确定我的光标所在的分区?
您需要查看并使用 IDocumentExtension3
上的方法。可以通过不同的分区程序以多种不同的方式对文档进行分区。这些中的每一个都被认为是 partitioning,computePartitioning
是为了二进制兼容性而保留的错误名称选择的情况。在 Java 文档的情况下,它们专门使用自己的分区值。我 认为 它在 IJavaPartitions.JAVA_PARTITIONING 中保持不变。
您可以使用 org.eclipse.jface.text.TextUtilities
的 computePartitioning
方法获取范围的区域:
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
您也可以通过调用getDocumentPartitioning
方法从TextViewer
/ SourceViewer
中获取分区名称。
我目前正在开发一个插件,其中我需要一个仅当我的光标位于 javadoc 评论分区内时才执行的函数。
我已尝试执行 IDocument.computePartitioning()
以及 IDocument.getContentType()
。到目前为止,唯一返回的分区类型是默认内容类型。我可以看到,虽然 IDocument
实例是正确的,但 getDocumentPartitioner()
方法 returns null.
我的问题是,我的 IDocument
显然包含 IJavaPartitions,因为它是一个 .java 文件。我如何才能访问此分区程序以确定我的光标所在的分区?
您需要查看并使用 IDocumentExtension3
上的方法。可以通过不同的分区程序以多种不同的方式对文档进行分区。这些中的每一个都被认为是 partitioning,computePartitioning
是为了二进制兼容性而保留的错误名称选择的情况。在 Java 文档的情况下,它们专门使用自己的分区值。我 认为 它在 IJavaPartitions.JAVA_PARTITIONING 中保持不变。
您可以使用 org.eclipse.jface.text.TextUtilities
的 computePartitioning
方法获取范围的区域:
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
您也可以通过调用getDocumentPartitioning
方法从TextViewer
/ SourceViewer
中获取分区名称。