do not suggest runtime library configuring if sdk is not configured
This commit is contained in:
committed by
Evgeny Gerashchenko
parent
6af84a23b3
commit
fdb85d8174
+4
@@ -54,6 +54,7 @@ import com.intellij.ui.EditorNotifications;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.plugin.JetPluginUtil;
|
||||
import org.jetbrains.jet.plugin.sdk.KotlinSdkUtil;
|
||||
import org.jetbrains.jet.utils.PathUtil;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -86,6 +87,8 @@ public class ConfigureKotlinLibraryNotificationProvider implements EditorNotific
|
||||
|
||||
if (isJsModule(module)) return null;
|
||||
|
||||
if (!KotlinSdkUtil.isSDKConfiguredFor(module)) return null;
|
||||
|
||||
GlobalSearchScope scope = module.getModuleWithDependenciesAndLibrariesScope(false);
|
||||
if (JavaPsiFacade.getInstance(myProject).findClass("jet.JetObject", scope) == null) {
|
||||
return createNotificationPanel(module);
|
||||
@@ -143,6 +146,7 @@ public class ConfigureKotlinLibraryNotificationProvider implements EditorNotific
|
||||
|
||||
final Library finalKotlinRuntime = kotlinRuntime;
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Library.ModifiableModel model = finalKotlinRuntime.getModifiableModel();
|
||||
model.addRoot(VfsUtil.getUrlForLibraryRoot(targetJar), OrderRootType.CLASSES);
|
||||
|
||||
+1
-16
@@ -26,17 +26,12 @@ import com.intellij.openapi.roots.ModuleRootEvent;
|
||||
import com.intellij.openapi.roots.ModuleRootListener;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.search.FilenameIndex;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.ui.EditorNotificationPanel;
|
||||
import com.intellij.ui.EditorNotifications;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.plugin.JetPluginUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* @author Maxim.Manuylov
|
||||
* Date: 19.05.12
|
||||
@@ -72,8 +67,7 @@ public class KotlinSdkNotConfiguredNotificationProvider implements EditorNotific
|
||||
final Module module = JetPluginUtil.getModuleForKotlinFile(file, myProject);
|
||||
if (module == null) return null;
|
||||
|
||||
final GlobalSearchScope scope = module.getModuleWithDependenciesAndLibrariesScope(false);
|
||||
if (!containsKotlinCompilerJar(FilenameIndex.getVirtualFilesByName(myProject, KotlinSdkUtil.KOTLIN_COMPILER_JAR, scope))) {
|
||||
if (!KotlinSdkUtil.isSDKConfiguredFor(module)) {
|
||||
return createNotificationPanel(module);
|
||||
}
|
||||
}
|
||||
@@ -83,15 +77,6 @@ public class KotlinSdkNotConfiguredNotificationProvider implements EditorNotific
|
||||
return null;
|
||||
}
|
||||
|
||||
private static boolean containsKotlinCompilerJar(@NotNull final Collection<VirtualFile> jars) {
|
||||
for (final VirtualFile jar : jars) {
|
||||
if (KotlinSdkUtil.isKotlinCompilerJar(new File(jar.getPath()))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static EditorNotificationPanel createNotificationPanel(@NotNull final Module module) {
|
||||
final EditorNotificationPanel panel = new EditorNotificationPanel();
|
||||
|
||||
@@ -16,14 +16,18 @@
|
||||
|
||||
package org.jetbrains.jet.plugin.sdk;
|
||||
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.roots.libraries.PersistentLibraryKind;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.search.FilenameIndex;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.jar.Attributes;
|
||||
import java.util.jar.JarFile;
|
||||
@@ -42,7 +46,7 @@ public class KotlinSdkUtil {
|
||||
return new KotlinSdkProperties("");
|
||||
}
|
||||
};
|
||||
@NotNull public static final String KOTLIN_COMPILER_JAR = "kotlin-compiler.jar";
|
||||
@NotNull private static final String KOTLIN_COMPILER_JAR = "kotlin-compiler.jar";
|
||||
@NotNull private static final String[] KOTLIN_COMPILER_JAR_ENTRY_NAMES = {
|
||||
"org/jetbrains/jet/cli/KotlinCompiler.class",
|
||||
"org/jetbrains/jet/cli/jvm/K2JVMCompiler.class"
|
||||
@@ -106,7 +110,21 @@ public class KotlinSdkUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean isKotlinCompilerJar(@NotNull final File jar) {
|
||||
public static boolean isSDKConfiguredFor(@NotNull final Module module) {
|
||||
final GlobalSearchScope scope = module.getModuleWithDependenciesAndLibrariesScope(false);
|
||||
return containsKotlinCompilerJar(FilenameIndex.getVirtualFilesByName(module.getProject(), KOTLIN_COMPILER_JAR, scope));
|
||||
}
|
||||
|
||||
private static boolean containsKotlinCompilerJar(@NotNull final Collection<VirtualFile> jars) {
|
||||
for (final VirtualFile jar : jars) {
|
||||
if (isKotlinCompilerJar(new File(jar.getPath()))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static boolean isKotlinCompilerJar(@NotNull final File jar) {
|
||||
try {
|
||||
return doIsKotlinCompilerJar(jar);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user