Я создал плагин для нового языка и использовал DLTK для функции индексирования и поиска.Редактор индексирования и обновления DLTK
Я использую Eclipse, Luna (ФДЭ 3.10.1) и DLTK (5,0)
Мой вопрос: Как я могу вручную повторно индексировать файл и обновить редактор при переключении между вкладками?
Потому что теперь происходит, если файл снова открывается, и время его обновления индексируется, а маркеры ошибок обновляются, но при его переключении он не обновляет маркеры ошибок, поскольку зависимые файлы изменяются на других вкладках.
Я пробовал, как показано ниже: он индексирует, но не обновляет редактор.
Я добавил метод IPartListener2, а частично методBroughtToTop() у меня есть следующий код для индексирования и обновления.
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) {
}
}
Заранее спасибо.
Немного непонятно, что делает ваш код. Проект должен иметь свой язык и файлы в нем будут индексироваться автоматически после каждого изменения. –
@AlexPanchenko У меня есть язык, где есть разные типы файлов. Например, в программе на C++ у нас есть файлы .cpp и .h. Если я изменяю переменную в зависимом файле .h, она не отражается в файле cpp, когда я переключаю вкладку. Но он отражает изменения, если я снова открою файл cpp. Итак, я хочу сделать обновление вручную из кода, когда я переключаю вкладку в Eclipse. –