pref: load SQL DDL nonBlocking

This commit is contained in:
林万程
2025-12-02 07:15:32 +08:00
parent caa9f17454
commit c2a5e26b36

View File

@@ -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) {