2017-08-09 1 views
0

独自のテキストエディタでSyntax Coloring、Formatting、AutoComplete、Error-Markersを含むRCP 3.xでRCPアプリケーションを開発しました。自分の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); 
     } 
    } 
} 
+0

を助けるかもしれないカップルのプラグイン。あなたがこれまでに試したこととあなたが立ち往生した場所を教えてください。 –

+0

Javaエディタは、このために注釈モデルで注釈を使用します。 –

+0

[Javaエディタのソースコード](http://git.eclipse.org/c/jdt/eclipse.jdt.ui.git/tree/org.eclipse.jdt.junit/)を参照してください。 – howlger

答えて

0

あなたが「出現箇所のマーク」を有効にした場合、その後、あなたがマークしたものと同じであるすべての単語がハイライトされます。また、ここでは、AR https://stackoverflow.com/a/13450719/8029887

-

次の2つの次の方法

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

あなたはこのを見なければならないでそれを有効にすることができますEこのサイトを提供するコードではありません

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

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

関連する問題