0
我使用RCP 3.x開發了一個RCP應用程序,其中包含用於我自己的文本編輯器的語法着色,格式化,自動完成,錯誤標記。我想實現Mark Occurrences
。如果我在編輯器中單擊某個單詞,所有類似的單詞都將突出顯示 - 與Java編輯器類似。如何在我自己的編輯器中突出顯示RCP-Application中的所有相似單詞?
有沒有人有想法? 在此先感謝。
這是我的代碼的一部分:
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編輯器在此註釋模型中使用Annotations。 –
請參閱[Java編輯器的源代碼](http://git.eclipse.org/c/jdt/eclipse.jdt.ui.git/tree/org.eclipse.jdt.junit/) – howlger