DLTK 索引和刷新编辑器
DLTK indexing and refreshing editor
我为一种新语言创建了一个插件,并使用 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) {
}
}
提前致谢。
如果我没理解错的话,问题是关于更改依赖项后重新验证文件。
1、与indexer无关(只是记录一个文件包含了一些元素)
2.它与解析器(产生AST)无关。
它应该发生在生成器中。您可以通过实施 IBuildParticipant 或 IScriptBuilder 来尝试 DLTK 对此的支持。
我为一种新语言创建了一个插件,并使用 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) {
}
}
提前致谢。
如果我没理解错的话,问题是关于更改依赖项后重新验证文件。 1、与indexer无关(只是记录一个文件包含了一些元素) 2.它与解析器(产生AST)无关。
它应该发生在生成器中。您可以通过实施 IBuildParticipant 或 IScriptBuilder 来尝试 DLTK 对此的支持。