私自身のエディタを作成したくないですが、編集イベントにフックすることで既存のエディタを拡張したいと思います。自分のプラグインでEclipseエディターのイベントにどのようにフックできますか?
たとえば、テキストがテキストエディタまたはxmlエディタで変更されたときはいつでも、コールバックを取得して変更に対応できるようになります。
このような適切な拡張ポイントは存在しますか?
私自身のエディタを作成したくないですが、編集イベントにフックすることで既存のエディタを拡張したいと思います。自分のプラグインでEclipseエディターのイベントにどのようにフックできますか?
たとえば、テキストがテキストエディタまたはxmlエディタで変更されたときはいつでも、コールバックを取得して変更に対応できるようになります。
このような適切な拡張ポイントは存在しますか?
あなたは、IEditorPart
にアクセスしてこれを行うこれにリスナーを追加しgetAdapter(IDocument.class)
を使用することができます...
しかし、これは本当にハックです... ;-)
EDIT:オンリクエストは、もう少しコードです。
public void hookToEditor() {
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
if (page == null) return;
IEditorPart editor = page.getActiveEditor();
if (editor == null) return;
IDocument doc = (IDocument) editor.getAdapter(IDocument.class);
if (doc == null) return;
doc.addDocumentListener(new IDocumentListener() {
@Override
public void documentChanged(DocumentEvent event) {
// Do something
}
@Override
public void documentAboutToBeChanged(DocumentEvent event) {
// About to do something
}
});
}
リソース変更リスナーを追加できます。
IResourceChangeListener listener = new IResourceChangeListener() {
@Override
public void resourceChanged(IResourceChangeEvent arg0) {
System.out.println("Text changed");
}
};
ResourcesPlugin.getWorkspace().addResourceChangeListener(listener);
他に何もない場合はハックします;) – Johnny
@TonnyMadsenより具体的な例がありますか? – RoflcoptrException