From c91a359feab044d3bae6a3c7935e4b42a18a2165 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 16 Jun 2015 16:16:13 +0200 Subject: [PATCH] run Kotlin library configurator with alternative resolve enabled --- .../notifications/ConfigureKotlinNotification.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/notifications/ConfigureKotlinNotification.java b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/notifications/ConfigureKotlinNotification.java index 66d56f1b47f..1bc55b9c35b 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/notifications/ConfigureKotlinNotification.java +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/notifications/ConfigureKotlinNotification.java @@ -20,6 +20,7 @@ import com.intellij.notification.Notification; import com.intellij.notification.NotificationListener; import com.intellij.notification.NotificationType; import com.intellij.openapi.module.Module; +import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.Function; @@ -46,11 +47,18 @@ public class ConfigureKotlinNotification extends Notification { @Override public void hyperlinkUpdate(@NotNull Notification notification, @NotNull HyperlinkEvent event) { if (event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { - KotlinProjectConfigurator configurator = ConfigureKotlinInProjectUtils.getConfiguratorByName(event.getDescription()); + final KotlinProjectConfigurator configurator = ConfigureKotlinInProjectUtils.getConfiguratorByName(event.getDescription()); if (configurator == null) { throw new AssertionError("Missed action: " + event.getDescription()); } - configurator.configure(project); + // The user can often click the notification while building indices, and we want it to work right away, so we + // should enable alternative resolve. + DumbService.getInstance(project).withAlternativeResolveEnabled(new Runnable() { + @Override + public void run() { + configurator.configure(project); + } + }); notification.expire(); } }