0
HyperlinkHelperをカスタマイズしようとしています。だから私はHypertextDetectorXtext。 HyperlinkHelperを追加できません
ハイパーリンクの検出器が働いているpackage org.xtext.example.mydsl.ui;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.Region;
import org.eclipse.jface.text.hyperlink.IHyperlink;
import org.eclipse.xtext.ui.editor.hyperlinking.DefaultHyperlinkDetector;
import org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkHelper;
public class MyHyperlinkDetector extends DefaultHyperlinkDetector {
private static final String PREFERENCES = ".hyper";
@Override
public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks) {
IDocument document = textViewer.getDocument();
int offset = region.getOffset();
// extract relevant characters
IRegion lineRegion;
String candidate;
try {
lineRegion = document.getLineInformationOfOffset(offset);
candidate = document.get(lineRegion.getOffset(), lineRegion.getLength());
} catch (BadLocationException ex) {
return null;
}
// look for keyword
int index = candidate.indexOf(PREFERENCES);
if (index != -1) {
// detect region containing keyword
IRegion targetRegion = new Region(lineRegion.getOffset() + index, PREFERENCES.length());
if ((targetRegion.getOffset() <= offset)
&& ((targetRegion.getOffset() + targetRegion.getLength()) > offset))
// create link
return new IHyperlink[] { new PreferencesHyperlink(targetRegion, candidate) };
}
return null;
}
@Override
public IHyperlinkHelper getHelper() {
// TODO Auto-generated method stub
return new MyHyperlinkHelper();
}
}
をオーバーライドしていますが、MyHyperlinkHelperが作成されることはありません。たとえ私がメソッドdetectHyperlinksをコメントしても。
私の目標は、編集したDSL文法でクリックした名前でファイルを開くことです。だから私はHyperlinkHelperが必要です。私。私は部分文字列が正しいファイル名であることを確認する必要があります。
どうすれば解決できますか?
よろしく、 ウラジミール。
を独自の実装にスーパークラスからメソッドを呼び出しますか?正確に何を買う必要がありますか? –
どのようなコンポーネントですか? –
さて、実際に私は尋ねたいと思う:私はHyperlinkHelper、またはHyperlinkDetectorをbuindする必要がありますか? –