From c2a5e26b364ee08b1d18d28214b44d230e2415b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E4=B8=87=E7=A8=8B?= <1498425439@qq.com> Date: Tue, 2 Dec 2025 07:15:32 +0800 Subject: [PATCH] pref: load SQL DDL nonBlocking --- .../linwancen/plugin/show/ext/listener/FileLoader.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/github/linwancen/plugin/show/ext/listener/FileLoader.java b/src/main/java/io/github/linwancen/plugin/show/ext/listener/FileLoader.java index 9810b82..f961b86 100644 --- a/src/main/java/io/github/linwancen/plugin/show/ext/listener/FileLoader.java +++ b/src/main/java/io/github/linwancen/plugin/show/ext/listener/FileLoader.java @@ -2,6 +2,7 @@ package io.github.linwancen.plugin.show.ext.listener; import com.intellij.ide.projectView.ProjectView; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.ReadAction; import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; @@ -69,13 +70,14 @@ public abstract class FileLoader { protected abstract void loadFileImpl(@NotNull VirtualFile file, @Nullable Project project); public static void loadAll(@NotNull Project project) { - ApplicationManager.getApplication().executeOnPooledThread(() -> - DumbService.getInstance(project).runReadActionInSmartMode(() -> { + DumbService.getInstance(project).runReadActionInSmartMode(() -> + ApplicationManager.getApplication().executeOnPooledThread(() -> + ReadAction.nonBlocking(() -> { if (!project.isDisposed()) { FileLoader.EPN.getExtensionList().forEach(fileLoader -> fileLoader.loadAllImpl(project)); EdtExecutorService.getInstance().execute(() -> ProjectView.getInstance(project).refresh()); } - })); + }))); } public void visitChildrenRecursively(@NotNull Project project, @NotNull VirtualFile dir, @NotNull StringBuilder sb) {