mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
dumb-aware run configurations: run startup tasks immediately
This commit is contained in:
@@ -21,10 +21,13 @@ import com.intellij.execution.impl.RunManagerImpl;
|
||||
import com.intellij.ide.startup.StartupManagerEx;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.startup.StartupActivity;
|
||||
import com.intellij.openapi.startup.StartupManager;
|
||||
import com.intellij.openapi.ui.MessageType;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.util.Alarm;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -34,11 +37,25 @@ import java.util.List;
|
||||
/**
|
||||
* @author Irina.Chernushina on 8/19/2015.
|
||||
*/
|
||||
public class ProjectStartupRunner implements StartupActivity {
|
||||
public class ProjectStartupRunner implements StartupActivity, DumbAware {
|
||||
public static final int DELAY_MILLIS = 200;
|
||||
|
||||
@Override
|
||||
public void runActivity(@NotNull Project project) {
|
||||
public void runActivity(@NotNull final Project project) {
|
||||
if (Registry.is("dumb.aware.run.configurations")) {
|
||||
doRunActivity(project);
|
||||
} else {
|
||||
DumbService.getInstance(project).runWhenSmart(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (project.isDisposed()) return;
|
||||
doRunActivity(project);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
protected void doRunActivity(@NotNull Project project) {
|
||||
final ProjectStartupTaskManager projectStartupTaskManager = ProjectStartupTaskManager.getInstance(project);
|
||||
if (projectStartupTaskManager.isEmpty()) return;
|
||||
|
||||
@@ -69,7 +86,7 @@ public class ProjectStartupRunner implements StartupActivity {
|
||||
return new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (! ((StartupManagerEx) StartupManager.getInstance(project)).postStartupActivityPassed()) {
|
||||
if (! ((StartupManagerEx) StartupManager.getInstance(project)).postStartupActivityPassed() && !Registry.is("dumb.aware.run.configurations")) {
|
||||
alarm.addRequest(createRequest(project, alarm), DELAY_MILLIS);
|
||||
} else {
|
||||
runActivities(project);
|
||||
|
||||
Reference in New Issue
Block a user