【问题标题】:How to highlight all similar words in my own Editor for RCP-Application?如何在我自己的 RCP-Application 编辑器中突出显示所有相似的词?
【发布时间】:2017-08-09 20:13:19
【问题描述】:

我使用 RCP 3.x 开发了一个 RCP 应用程序,其中包含用于我自己的文本编辑器的语法着色、格式设置、自动完成、错误标记。

现在,我想实现Mark Occurrences。如果我在我的编辑器中单击一个单词,所有相似的单词都会突出显示 - 类似于 Java 编辑器。

有人有想法吗? 提前致谢。

这是我的代码的一部分:

public class MyEditor extends TextEditor {
     String clickedWord = "";

     @Override
     protected void handleCursorPositionChanged() {
         super.handleCursorPositionChanged();

         try {
             ISourceViewer viewer = getSourceViewer();
             int caret = viewer.getTextWidget().getCaretOffset();

             clickedWord = Utils.readWordAt(viewer, caret);

             if (!clickedWord.trim().isEmpty()) {

                 Display.getDefault().asyncExec(new Runnable() {

                     @Override
                     public void run() {
                         highlightSimilarWords();
                     }
                 });
             }
         } catch (Exception e) {

         }
     }

     private void highlightSimilarWords() {
         ISourceViewer viewer = getSourceViewer();
         IDocument document = viewer.getDocument();
         String content = document.get();

         Pattern p = Pattern.compile(clickedWord);
         Matcher m = p.matcher(content);

         while (m.find()) {
             int offset = m.start();
             int length = m.end() - m.start();

             viewer.setSelectedRange(offset, length, false);
         }
     }
}

【问题讨论】:

  • 这不是提供代码的网站。请向我们展示您到目前为止所做的尝试以及您遇到的问题。
  • Java 编辑器为此在注解模型中使用注解。

标签: java eclipse rcp


【解决方案1】:

如果您启用“标记出现次数”,那么所有与您标记的单词相同的单词都会被突出显示。

您可以通过以下两种方式启用它

  1. Alt + Shift + O
  2. Preferences > Java > Editor > Mark Occurrences

你应该看看这个 - https://stackoverflow.com/a/13450719/8029887

这里还有一些可能有帮助的插件

  1. http://ystrot.github.io/glance/

  2. https://github.com/ajermakovics/eclipse-instasearch

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 2011-01-10
    相关资源
    最近更新 更多