diff --git a/platform/external-system-api/resources/i18n/ExternalSystemBundle.properties b/platform/external-system-api/resources/i18n/ExternalSystemBundle.properties index b2c613b073da..868aec0ba58f 100644 --- a/platform/external-system-api/resources/i18n/ExternalSystemBundle.properties +++ b/platform/external-system-api/resources/i18n/ExternalSystemBundle.properties @@ -44,4 +44,5 @@ run.configuration.description={0} build run.configuration.settings.label.project={0} project: run.configuration.settings.label.tasks=Tasks: run.configuration.settings.label.vmoptions=VM options: -run.configuration.settings.caption.vmoptions=VM options: \ No newline at end of file +run.configuration.settings.caption.vmoptions=VM options: +run.text.starting=Executing external tasks ''{0}''... \ No newline at end of file diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemRunConfiguration.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemRunConfiguration.java index a6aaffdb3906..ed5b60bd632b 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemRunConfiguration.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemRunConfiguration.java @@ -18,11 +18,13 @@ import com.intellij.openapi.externalSystem.model.serialization.ExternalTaskPojo; import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId; import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskNotificationListenerAdapter; import com.intellij.openapi.externalSystem.service.internal.ExternalSystemExecuteTaskTask; +import com.intellij.openapi.externalSystem.util.ExternalSystemBundle; import com.intellij.openapi.options.SettingsEditor; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.InvalidDataException; import com.intellij.openapi.util.JDOMExternalizable; import com.intellij.openapi.util.WriteExternalException; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.containers.ContainerUtilRt; import com.intellij.util.xmlb.XmlSerializer; import org.jdom.Element; @@ -103,7 +105,7 @@ public class ExternalSystemRunConfiguration extends RunConfigurationBase { ConsoleView console = new TextConsoleBuilderImpl(getProject()).getConsole(); final MyProcessHandler processHandler = new MyProcessHandler(); console.attachToProcess(processHandler); - List tasks = ContainerUtilRt.newArrayList(); + final List tasks = ContainerUtilRt.newArrayList(); for (String taskName : mySettings.getTaskNames()) { tasks.add(new ExternalTaskPojo(taskName, mySettings.getExternalProjectPath(), null)); } @@ -114,9 +116,18 @@ public class ExternalSystemRunConfiguration extends RunConfigurationBase { ApplicationManager.getApplication().executeOnPooledThread(new Runnable() { @Override public void run() { + String greeting = ExternalSystemBundle.message("run.text.starting", StringUtil.join(mySettings.getTaskNames(), " ")); + processHandler.notifyTextAvailable(greeting, ProcessOutputTypes.SYSTEM); task.execute(new ExternalSystemTaskNotificationListenerAdapter() { + + private boolean myResetGreeting = true; + @Override public void onTaskOutput(@NotNull ExternalSystemTaskId id, @NotNull String text, boolean stdOut) { + if (myResetGreeting) { + processHandler.notifyTextAvailable("\r", ProcessOutputTypes.SYSTEM); + myResetGreeting = false; + } processHandler.notifyTextAvailable(text, stdOut ? ProcessOutputTypes.STDOUT : ProcessOutputTypes.STDERR); }