com.intellij.openapi.project.IndexNotReadyException 文档

com.intellij.openapi.project.IndexNotReadyException Documentation

我正在制作一个 intellij 插件。我在 FileEditorManagerListenerselectionChanged 方法中 运行 一些代码时收到此通知。

我不知道文档暗示了什么 - 所有对此的引用都倾向于某些 android 错误,但我没有在 android 上工作,这是一个实际的 intellij 插件。

任何想法 - 我怀疑在应用程序编制索引时我不打算 "run" 此代码,但我不确定该怎么做。

答案很简单 - 虽然,当然,intellij 团队似乎想让他们的插件代码太难理解。为什么人们不理会实际文档只是超出了我的范围。真是让人哭笑不得。

这里:

@Override
public void fileOpened(@NotNull FileEditorManager source, @NotNull VirtualFile file) {
   try {
      showItem(toolWindow.getComponent(), file);
   } catch (IndexNotReadyException ex) {
      DumbService.getInstance(project).runWhenSmart(() -> showItem(toolWindow.getComponent(), file) );
   }
}

诀窍是包裹在 try/catch 块中,然后使用 "DumbService"。这不是一个完整的解决方案,doco mysteriously 警告说使用 DumbService 可能需要一些检查...

...但是如果 写文档的人懒得表达检查是什么,写代码的人也懒得写没有检查的代码需要检查 那我关心什么。

我是说,核弹不会爆炸吧?