新しい言語用のプラグインを作成し、インデックス作成と検索機能に DLTK を使用しました。
Eclipse Luna (PDE 3.10.1) と DLTK (5.0) を使用しています。
私の質問は次のとおりです。タブを切り替えるときに、手動でファイルのインデックスを再作成し、エディターを更新するにはどうすればよいですか?
ファイルが再度開かれると、インデックスが再作成され、エラー マーカーが更新されますが、切り替え中に依存ファイルが他のタブで変更されるため、エラー マーカーは更新されません。
私は以下のように試しました: インデックスを作成していますが、エディターを更新していません。
IPartListener2 を追加し、partBroughtToTop() メソッドには、インデックス作成と更新のための次のコードがあります。
IModelElement model = EditorUtility.getEditorInputModelElement(partRef.getPage().getActiveEditor(), true);
if (model instanceof ISourceModule) {
ProblemCollector prob = new ProblemCollector();
SourceParserUtil.clearCache();
// get cache entry
final ISourceModuleInfo cacheEntry = ModelManager.getModelManager().getSourceModuleInfoCache().get((ISourceModule)model);
ModuleDeclaration mod = (ModuleDeclaration)SourceParserUtil.parse((ISourceModule)model, prob);
SourceParserUtil.putModuleToCache(cacheEntry, mod, prob);
SourceParserUtil.enableCache();
IEditorPart editor = partRef.getPage().getActiveEditor();
IEditorInput input = editor.getEditorInput();
try {
((ScriptEditor)editor).getDocumentProvider().resetDocument(input);
}
catch (CoreException e) {
}
}
前もって感謝します。