【问题标题】:How can I Access Different Java Partitions in my IDocument如何访问 IDocument 中的不同 Java 分区
【发布时间】:2016-12-21 00:37:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: java eclipse eclipse-plugin editor partitioning


    【解决方案1】:

    您可以使用org.eclipse.jface.text.TextUtilitiescomputePartitioning 方法来获取范围的区域:

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

    【讨论】:

    • 这成功了!非常感谢,想了很久了
    【解决方案2】:

    您需要查看并使用IDocumentExtension3 上的方法。可以通过不同的分区器以多种不同的方式对文档进行分区。其中的每一个都被认为是一个分区,其中computePartitioning 是为了二进制兼容性而存在的错误名称选择的情况。对于 Java 文档,它们专门使用自己的分区值。我认为它在 IJavaPartitions.JAVA_PARTITIONING 中是一个常量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-28
      • 2018-07-03
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多