diff --git a/flutter-idea/src/io/flutter/FlutterUtils.java b/flutter-idea/src/io/flutter/FlutterUtils.java index 1a4902ec9a..7895ebc3e7 100644 --- a/flutter-idea/src/io/flutter/FlutterUtils.java +++ b/flutter-idea/src/io/flutter/FlutterUtils.java @@ -25,6 +25,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectManager; import com.intellij.openapi.roots.*; +import com.intellij.openapi.util.Computable; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VfsUtil; @@ -117,7 +118,8 @@ public static boolean couldContainWidgets(@Nullable Project project, @Nullable V !(file instanceof LightVirtualFile) && isDartFile(file) && file.isInLocalFileSystem() && - ProjectFileIndex.getInstance(project).isInProject(file); + ApplicationManager.getApplication().runReadAction( + (Computable)()->ProjectFileIndex.getInstance(project).isInProject(file)); } public static boolean isDartFile(@NotNull VirtualFile file) { diff --git a/flutter-idea/src/io/flutter/sdk/FlutterPluginsLibraryManager.java b/flutter-idea/src/io/flutter/sdk/FlutterPluginsLibraryManager.java index e6c7c64269..70a3831494 100644 --- a/flutter-idea/src/io/flutter/sdk/FlutterPluginsLibraryManager.java +++ b/flutter-idea/src/io/flutter/sdk/FlutterPluginsLibraryManager.java @@ -13,6 +13,7 @@ import com.intellij.openapi.roots.ModuleRootEvent; import com.intellij.openapi.roots.ModuleRootListener; import com.intellij.openapi.roots.libraries.PersistentLibraryKind; +import com.intellij.openapi.util.Computable; import com.intellij.openapi.vfs.*; import com.jetbrains.lang.dart.util.DotPackagesFileUtil; import io.flutter.pub.PubRoot; @@ -137,7 +138,7 @@ private static Set getFlutterPluginPaths(List roots) { if (libFolder == null) { continue; } - final PubRoot pluginRoot = PubRoot.forDirectory(libFolder.getParent()); + final PubRoot pluginRoot = ApplicationManager.getApplication().runReadAction((Computable)()->PubRoot.forDirectory(libFolder.getParent())); if (pluginRoot == null) { continue; }