diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index e73c6053d41..460cf1d630d 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -228,7 +228,6 @@
-
diff --git a/buildSrc/src/main/kotlin/CommonUtil.kt b/buildSrc/src/main/kotlin/CommonUtil.kt
index efada1db592..49f8fa267b4 100644
--- a/buildSrc/src/main/kotlin/CommonUtil.kt
+++ b/buildSrc/src/main/kotlin/CommonUtil.kt
@@ -1,13 +1,17 @@
@file:Suppress("unused") // usages in build scripts are not tracked properly
import groovy.lang.Closure
-import org.gradle.api.*
-import org.gradle.api.tasks.*
-import org.gradle.kotlin.dsl.*
-import org.gradle.api.plugins.JavaPluginConvention
+import org.gradle.api.Project
+import org.gradle.api.Task
import org.gradle.api.file.SourceDirectorySet
import org.gradle.api.internal.AbstractTask
-import org.gradle.jvm.tasks.Jar
+import org.gradle.api.plugins.JavaPluginConvention
+import org.gradle.api.tasks.JavaExec
+import org.gradle.api.tasks.SourceSetOutput
+import org.gradle.kotlin.dsl.creating
+import org.gradle.kotlin.dsl.extra
+import org.gradle.kotlin.dsl.get
+import org.gradle.kotlin.dsl.the
import java.io.File
inline fun Project.task(noinline configuration: T.() -> Unit) = tasks.creating(T::class, configuration)
diff --git a/compiler/util/build.gradle.kts b/compiler/util/build.gradle.kts
index 455dda172e1..fca6189bf17 100644
--- a/compiler/util/build.gradle.kts
+++ b/compiler/util/build.gradle.kts
@@ -7,7 +7,6 @@ dependencies {
compile(projectDist(":kotlin-stdlib"))
compile(project(":core:deserialization"))
compile(ideaSdkCoreDeps(*(rootProject.extra["ideaCoreSdkJars"] as Array)))
- compile(ideaSdkDeps("jps-model.jar", subdir = "jps"))
}
sourceSets {
diff --git a/compiler/util/src/org/jetbrains/kotlin/utils/JavaSdkUtil.java b/compiler/util/src/org/jetbrains/kotlin/utils/JavaSdkUtil.java
new file mode 100644
index 00000000000..e409f84a884
--- /dev/null
+++ b/compiler/util/src/org/jetbrains/kotlin/utils/JavaSdkUtil.java
@@ -0,0 +1,134 @@
+/*
+ * Copyright 2010-2017 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jetbrains.kotlin.utils;
+
+import com.intellij.openapi.util.SystemInfo;
+import com.intellij.openapi.util.io.FileFilters;
+import com.intellij.openapi.util.io.FileUtil;
+import com.intellij.openapi.util.io.FileUtilRt;
+import com.intellij.openapi.util.registry.Registry;
+import com.intellij.util.ArrayUtil;
+import com.intellij.util.containers.ContainerUtil;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+import java.util.List;
+import java.util.Set;
+
+import static com.intellij.util.ObjectUtils.notNull;
+
+//todo[Alefas]: copypaste from org.jetbrains.jps.model.java.impl.JavaSdkUtil
+/**
+ * @author nik
+ */
+public class JavaSdkUtil {
+ @NotNull
+ public static List getJdkClassesRoots(@NotNull File home, boolean isJre) {
+ File[] jarDirs;
+ if (SystemInfo.isMac && !home.getName().startsWith("mockJDK")) {
+ File openJdkRtJar = new File(home, "jre/lib/rt.jar");
+ if (openJdkRtJar.isFile()) {
+ File libDir = new File(home, "lib");
+ File classesDir = openJdkRtJar.getParentFile();
+ File libExtDir = new File(openJdkRtJar.getParentFile(), "ext");
+ File libEndorsedDir = new File(libDir, "endorsed");
+ jarDirs = new File[]{libEndorsedDir, libDir, classesDir, libExtDir};
+ }
+ else {
+ File libDir = new File(home, "lib");
+ File classesDir = new File(home, "../Classes");
+ File libExtDir = new File(libDir, "ext");
+ File libEndorsedDir = new File(libDir, "endorsed");
+ jarDirs = new File[]{libEndorsedDir, libDir, classesDir, libExtDir};
+ }
+ }
+ else if (new File(home, "lib/jrt-fs.jar").exists()) {
+ jarDirs = ArrayUtil.EMPTY_FILE_ARRAY;
+ }
+ else {
+ File libDir = new File(home, isJre ? "lib" : "jre/lib");
+ File libExtDir = new File(libDir, "ext");
+ File libEndorsedDir = new File(libDir, "endorsed");
+ jarDirs = new File[]{libEndorsedDir, libDir, libExtDir};
+ }
+
+ FileFilter jarFileFilter = FileFilters.filesWithExtension("jar");
+ Set pathFilter = ContainerUtil.newTroveSet(FileUtil.PATH_HASHING_STRATEGY);
+ List rootFiles = ContainerUtil.newArrayList();
+ if (Registry.is("project.structure.add.tools.jar.to.new.jdk")) {
+ File toolsJar = new File(home, "lib/tools.jar");
+ if (toolsJar.isFile()) {
+ rootFiles.add(toolsJar);
+ }
+ }
+ for (File jarDir : jarDirs) {
+ if (jarDir != null && jarDir.isDirectory()) {
+ File[] jarFiles = notNull(jarDir.listFiles(jarFileFilter), ArrayUtil.EMPTY_FILE_ARRAY);
+ for (File jarFile : jarFiles) {
+ String jarFileName = jarFile.getName();
+ if (jarFileName.equals("alt-rt.jar") || jarFileName.equals("alt-string.jar")) {
+ continue; // filter out alternative implementations
+ }
+ String canonicalPath = getCanonicalPath(jarFile);
+ if (canonicalPath == null || !pathFilter.add(canonicalPath)) {
+ continue; // filter out duplicate (symbolically linked) .jar files commonly found in OS X JDK distributions
+ }
+ rootFiles.add(jarFile);
+ }
+ }
+ }
+
+ String[] ibmJdkVmJarDirs = {"bin/default", "lib/i386/default", "lib/amd64/default"};
+ for (String relativePath : ibmJdkVmJarDirs) {
+ File libDir = new File(home, isJre ? relativePath : "jre/" + relativePath);
+ File[] vmJarDirs = notNull(libDir.listFiles(FileUtilRt.ALL_DIRECTORIES), ArrayUtil.EMPTY_FILE_ARRAY);
+ for (File dir : vmJarDirs) {
+ if (dir.getName().startsWith("jclSC")) {
+ File vmJar = new File(dir, "vm.jar");
+ if (vmJar.isFile()) {
+ rootFiles.add(vmJar);
+ }
+ }
+ }
+ }
+ File classesZip = new File(home, "lib/classes.zip");
+ if (classesZip.isFile()) {
+ rootFiles.add(classesZip);
+ }
+
+ if (rootFiles.isEmpty()) {
+ File classesDir = new File(home, "classes");
+ if (classesDir.isDirectory()) {
+ rootFiles.add(classesDir);
+ }
+ }
+
+ return rootFiles;
+ }
+
+ @Nullable
+ private static String getCanonicalPath(File file) {
+ try {
+ return file.getCanonicalPath();
+ }
+ catch (IOException e) {
+ return null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/compiler/util/src/org/jetbrains/kotlin/utils/PathUtil.kt b/compiler/util/src/org/jetbrains/kotlin/utils/PathUtil.kt
index cdef643be1b..e1cf055a176 100644
--- a/compiler/util/src/org/jetbrains/kotlin/utils/PathUtil.kt
+++ b/compiler/util/src/org/jetbrains/kotlin/utils/PathUtil.kt
@@ -18,7 +18,6 @@ package org.jetbrains.kotlin.utils
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.PathManager
-import org.jetbrains.jps.model.java.impl.JavaSdkUtil
import java.io.File
import java.util.regex.Pattern
diff --git a/idea/build.gradle.kts b/idea/build.gradle.kts
index da70251cf47..954e53b4b61 100644
--- a/idea/build.gradle.kts
+++ b/idea/build.gradle.kts
@@ -60,7 +60,7 @@ dependencies {
testRuntime(ideaSdkDeps("*.jar"))
testRuntime(ideaPluginDeps("*.jar", plugin = "junit"))
- testRuntime(ideaPluginDeps("resources_en", plugin = "properties"))
+ testRuntime(ideaPluginDeps("*.jar", plugin = "properties"))
testRuntime(ideaPluginDeps("*.jar", plugin = "gradle"))
testRuntime(ideaPluginDeps("*.jar", plugin = "Groovy"))
testRuntime(ideaPluginDeps("*.jar", plugin = "coverage"))
diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ProjectRootsUtil.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ProjectRootsUtil.kt
index bd1ac41a70f..a8796046950 100644
--- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ProjectRootsUtil.kt
+++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ProjectRootsUtil.kt
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.idea.util
import com.intellij.ide.highlighter.ArchiveFileType
import com.intellij.ide.highlighter.JavaClassFileType
import com.intellij.injected.editor.VirtualFileWindow
+import com.intellij.openapi.extensions.ExtensionPointName
import com.intellij.openapi.fileTypes.FileType
import com.intellij.openapi.module.Module
import com.intellij.openapi.module.ModuleUtilCore
@@ -38,9 +39,22 @@ import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager
import org.jetbrains.kotlin.idea.decompiler.builtIns.KotlinBuiltInFileType
import org.jetbrains.kotlin.idea.util.application.runReadAction
-private val kotlinBinaries = listOf(JavaClassFileType.INSTANCE, KotlinBuiltInFileType, KotlinModuleFileType.INSTANCE)
+abstract class KotlinBinaryExtension(val fileType: FileType) {
+ companion object {
+ val EP_NAME: ExtensionPointName =
+ ExtensionPointName.create("org.jetbrains.kotlin.binaryExtension")
-fun FileType.isKotlinBinary(): Boolean = this in kotlinBinaries
+ val kotlinBinaries: List by lazy(LazyThreadSafetyMode.NONE) {
+ EP_NAME.extensions.map { it.fileType }
+ }
+ }
+}
+
+class JavaClassBinary: KotlinBinaryExtension(JavaClassFileType.INSTANCE)
+class KotlinBuiltInBinary: KotlinBinaryExtension(KotlinBuiltInFileType)
+class KotlinModuleBinary: KotlinBinaryExtension(KotlinModuleFileType.INSTANCE)
+
+fun FileType.isKotlinBinary(): Boolean = this in KotlinBinaryExtension.kotlinBinaries
fun FileIndex.isInSourceContentWithoutInjected(file: VirtualFile): Boolean {
return file !is VirtualFileWindow && isInSourceContent(file)
diff --git a/idea/idea-android/build.gradle.kts b/idea/idea-android/build.gradle.kts
index 8d61efc732d..55ef5139f9a 100644
--- a/idea/idea-android/build.gradle.kts
+++ b/idea/idea-android/build.gradle.kts
@@ -8,6 +8,7 @@ dependencies {
compile(project(":compiler:frontend"))
compile(project(":compiler:frontend.java"))
compile(project(":idea"))
+ compile(project(":idea:idea-jvm"))
compile(project(":idea:idea-core"))
compile(project(":idea:ide-common"))
compile(project(":idea:idea-gradle"))
diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt
index c5e0fca5ac7..fc6ab7968e5 100644
--- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt
+++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt
@@ -20,6 +20,7 @@ import com.intellij.codeInsight.completion.*
import com.intellij.codeInsight.lookup.LookupElement
import com.intellij.codeInsight.lookup.LookupElementDecorator
import com.intellij.openapi.editor.Document
+import com.intellij.openapi.extensions.ExtensionPointName
import com.intellij.openapi.util.Key
import com.intellij.patterns.PlatformPatterns
import com.intellij.patterns.PsiJavaPatterns.elementType
@@ -279,7 +280,9 @@ class KotlinCompletionContributor : CompletionContributor() {
return
}
- if (PropertyKeyCompletion.perform(parameters, result)) return
+ for (extension in KotlinCompletionExtension.EP_NAME.getExtensions()) {
+ if (extension.perform(parameters, result)) return
+ }
fun addPostProcessor(session: CompletionSession) {
if (lookupElementPostProcessor != null) {
@@ -467,3 +470,12 @@ class KotlinCompletionContributor : CompletionContributor() {
return tokenBefore?.parents?.firstIsInstanceOrNull()?.isPlain() ?: false
}
}
+
+abstract class KotlinCompletionExtension {
+ abstract fun perform(parameters: CompletionParameters, result: CompletionResultSet): Boolean
+
+ companion object {
+ val EP_NAME: ExtensionPointName =
+ ExtensionPointName.create("org.jetbrains.kotlin.completionExtension")
+ }
+}
diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/gradle/kdsl/frameworkSupport/GradleKotlinFrameworkSupportProvider.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/gradle/kdsl/frameworkSupport/GradleKotlinFrameworkSupportProvider.kt
index 0790e06bd38..2a63a1bba12 100644
--- a/idea/idea-gradle/src/org/jetbrains/kotlin/gradle/kdsl/frameworkSupport/GradleKotlinFrameworkSupportProvider.kt
+++ b/idea/idea-gradle/src/org/jetbrains/kotlin/gradle/kdsl/frameworkSupport/GradleKotlinFrameworkSupportProvider.kt
@@ -27,10 +27,7 @@ import org.jetbrains.kotlin.idea.configuration.*
import org.jetbrains.kotlin.idea.configuration.KotlinBuildScriptManipulator.Companion.GSK_KOTLIN_VERSION_PROPERTY_NAME
import org.jetbrains.kotlin.idea.configuration.KotlinBuildScriptManipulator.Companion.getCompileDependencySnippet
import org.jetbrains.kotlin.idea.configuration.KotlinBuildScriptManipulator.Companion.getKotlinGradlePluginClassPathSnippet
-import org.jetbrains.kotlin.idea.versions.MAVEN_JS_STDLIB_ID
-import org.jetbrains.kotlin.idea.versions.bundledRuntimeVersion
-import org.jetbrains.kotlin.idea.versions.getDefaultJvmTarget
-import org.jetbrains.kotlin.idea.versions.getStdlibArtifactId
+import org.jetbrains.kotlin.idea.versions.*
import javax.swing.Icon
abstract class GradleKotlinDSLKotlinFrameworkSupportProvider(
diff --git a/idea/idea-jvm/build.gradle.kts b/idea/idea-jvm/build.gradle.kts
index b19702d9366..7a88b260a0d 100644
--- a/idea/idea-jvm/build.gradle.kts
+++ b/idea/idea-jvm/build.gradle.kts
@@ -6,7 +6,7 @@ dependencies {
compile(project(":compiler:light-classes"))
compile(project(":compiler:frontend.java"))
- compileOnly(ideaSdkDeps("openapi", "idea"))
+ compileOnly(ideaSdkDeps("openapi", "idea", "velocity", "boot", "gson", "swingx-core", "jsr305", "forms_rt"))
compile(ideaPluginDeps("idea-junit", plugin = "junit"))
compile(ideaPluginDeps("testng", "testng-plugin", plugin = "testng"))
@@ -20,3 +20,5 @@ sourceSets {
"main" { projectDefault() }
"test" { none() }
}
+
+configureInstrumentation()
diff --git a/idea/resources/inspectionDescriptions/KotlinInvalidBundleOrProperty.html b/idea/idea-jvm/resources/inspectionDescriptions/KotlinInvalidBundleOrProperty.html
similarity index 100%
rename from idea/resources/inspectionDescriptions/KotlinInvalidBundleOrProperty.html
rename to idea/idea-jvm/resources/inspectionDescriptions/KotlinInvalidBundleOrProperty.html
diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/JvmPluginStartupComponent.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/JvmPluginStartupComponent.java
new file mode 100644
index 00000000000..33a65544438
--- /dev/null
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/JvmPluginStartupComponent.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2010-2017 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jetbrains.kotlin.idea;
+
+import com.intellij.openapi.application.ApplicationManager;
+import com.intellij.openapi.components.ApplicationComponent;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.kotlin.idea.debugger.filter.DebuggerFiltersUtilKt;
+
+public class JvmPluginStartupComponent implements ApplicationComponent {
+ public static JvmPluginStartupComponent getInstance() {
+ return ApplicationManager.getApplication().getComponent(JvmPluginStartupComponent.class);
+ }
+
+ @Override
+ @NotNull
+ public String getComponentName() {
+ return JvmPluginStartupComponent.class.getName();
+ }
+
+ @Override
+ public void initComponent() {
+ if (ApplicationManager.getApplication().isUnitTestMode()) {
+ ThreadTrackerPatcherForTeamCityTesting.INSTANCE.patchThreadTracker();
+ }
+
+ DebuggerFiltersUtilKt.addKotlinStdlibDebugFilterIfNeeded();
+ }
+
+ @Override
+ public void disposeComponent() {}
+}
diff --git a/idea/src/org/jetbrains/kotlin/idea/KotlinExtraSteppingFilter.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/KotlinExtraSteppingFilter.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/KotlinExtraSteppingFilter.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/KotlinExtraSteppingFilter.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/ThreadTrackerPatcherForTeamCityTesting.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/ThreadTrackerPatcherForTeamCityTesting.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/ThreadTrackerPatcherForTeamCityTesting.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/ThreadTrackerPatcherForTeamCityTesting.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/actions/ConfigureKotlinInProjectAction.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/actions/ConfigureKotlinInProjectAction.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/actions/ConfigureKotlinInProjectAction.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/actions/ConfigureKotlinInProjectAction.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/actions/ShowKotlinBytecodeAction.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/actions/ShowKotlinBytecodeAction.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/actions/ShowKotlinBytecodeAction.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/actions/ShowKotlinBytecodeAction.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/KotlinCompilerManager.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/KotlinCompilerManager.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/compiler/KotlinCompilerManager.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/KotlinCompilerManager.java
diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/configuration/ClearBuildManagerState.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/configuration/ClearBuildManagerState.kt
new file mode 100644
index 00000000000..fec076e031a
--- /dev/null
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/configuration/ClearBuildManagerState.kt
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2010-2017 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jetbrains.kotlin.idea.compiler.configuration
+
+import com.intellij.compiler.server.BuildManager
+import com.intellij.openapi.project.Project
+
+class ClearBuildManagerState : ClearBuildStateExtension() {
+ override fun clearState(project: Project) {
+ BuildManager.getInstance().clearState(project);
+ }
+}
\ No newline at end of file
diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinBuildProcessParametersProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinBuildProcessParametersProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinBuildProcessParametersProvider.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinBuildProcessParametersProvider.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinInProjectUtils.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinInProjectUtils.kt
similarity index 99%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinInProjectUtils.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinInProjectUtils.kt
index 703c287d361..e7e2daced4c 100644
--- a/idea/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinInProjectUtils.kt
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinInProjectUtils.kt
@@ -47,6 +47,7 @@ import org.jetbrains.kotlin.idea.util.projectStructure.version
import org.jetbrains.kotlin.idea.versions.SuppressNotificationState
import org.jetbrains.kotlin.idea.versions.getKotlinJvmRuntimeMarkerClass
import org.jetbrains.kotlin.idea.versions.hasKotlinJsKjsmFile
+import org.jetbrains.kotlin.idea.versions.isSnapshot
import org.jetbrains.kotlin.idea.vfilefinder.IDEVirtualFileFinder
import org.jetbrains.kotlin.resolve.jvm.modules.KOTLIN_STDLIB_MODULE_NAME
import org.jetbrains.kotlin.utils.ifEmpty
@@ -257,10 +258,6 @@ fun hasKotlinFilesInSources(module: Module): Boolean {
return FileTypeIndex.containsFileOfType(KotlinFileType.INSTANCE, module.getModuleScope(false))
}
-fun isSnapshot(version: String): Boolean {
- return version.contains("SNAPSHOT", ignoreCase = true)
-}
-
fun isEap(version: String): Boolean {
return version.contains("rc") || version.contains("eap")
}
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinNotificationManager.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinNotificationManager.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinNotificationManager.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinNotificationManager.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinExternalSystemSyncListener.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/KotlinExternalSystemSyncListener.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinExternalSystemSyncListener.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/KotlinExternalSystemSyncListener.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJavaModuleConfigurator.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/KotlinJavaModuleConfigurator.kt
similarity index 98%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJavaModuleConfigurator.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/KotlinJavaModuleConfigurator.kt
index 5273e4d1b71..e12df720f38 100644
--- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJavaModuleConfigurator.kt
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/KotlinJavaModuleConfigurator.kt
@@ -41,7 +41,7 @@ import org.jetbrains.kotlin.idea.versions.isKotlinJavaRuntime
import org.jetbrains.kotlin.resolve.TargetPlatform
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
-open class KotlinJavaModuleConfigurator internal constructor() : KotlinWithLibraryConfigurator() {
+open class KotlinJavaModuleConfigurator protected constructor() : KotlinWithLibraryConfigurator() {
override fun isApplicable(module: Module): Boolean {
return super.isApplicable(module) && !hasBrokenJsRuntime(module)
}
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJsModuleConfigurator.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/KotlinJsModuleConfigurator.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJsModuleConfigurator.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/KotlinJsModuleConfigurator.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinProjectConfigurator.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/KotlinProjectConfigurator.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinProjectConfigurator.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/KotlinProjectConfigurator.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinSetupEnvironmentNotificationProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/KotlinSetupEnvironmentNotificationProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinSetupEnvironmentNotificationProvider.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/KotlinSetupEnvironmentNotificationProvider.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinSourceRootDetector.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/KotlinSourceRootDetector.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinSourceRootDetector.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/KotlinSourceRootDetector.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinWithLibraryConfigurator.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/KotlinWithLibraryConfigurator.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinWithLibraryConfigurator.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/KotlinWithLibraryConfigurator.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ModuleSourceRootMap.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/ModuleSourceRootMap.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/ModuleSourceRootMap.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/ModuleSourceRootMap.kt
diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/NewKotlinFileConfigurationHook.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/NewKotlinFileConfigurationHook.kt
new file mode 100644
index 00000000000..5f928e1113b
--- /dev/null
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/NewKotlinFileConfigurationHook.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2010-2017 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jetbrains.kotlin.idea.configuration
+
+import com.intellij.openapi.module.Module
+import org.jetbrains.kotlin.idea.actions.NewKotlinFileHook
+import org.jetbrains.kotlin.psi.KtFile
+
+class NewKotlinFileConfigurationHook : NewKotlinFileHook() {
+ override fun postProcess(createdElement: KtFile, module: Module) {
+ showConfigureKotlinNotificationIfNeeded(module)
+ }
+}
\ No newline at end of file
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/NotificationMessageCollector.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/NotificationMessageCollector.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/NotificationMessageCollector.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/NotificationMessageCollector.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/KotlinConfigurationCheckerComponent.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/ui/KotlinConfigurationCheckerComponent.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/ui/KotlinConfigurationCheckerComponent.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/ui/KotlinConfigurationCheckerComponent.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/notifications/ConfigureKotlinNotification.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/ui/notifications/ConfigureKotlinNotification.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/configuration/ui/notifications/ConfigureKotlinNotification.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/ui/notifications/ConfigureKotlinNotification.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/copyright/UpdateKotlinCopyright.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/copyright/UpdateKotlinCopyright.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/copyright/UpdateKotlinCopyright.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/copyright/UpdateKotlinCopyright.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/copyright/UpdateKotlinCopyrightsProvider.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/copyright/UpdateKotlinCopyrightsProvider.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/copyright/UpdateKotlinCopyrightsProvider.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/copyright/UpdateKotlinCopyrightsProvider.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/DebuggerClassNameProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/DebuggerClassNameProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/DebuggerClassNameProvider.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/DebuggerClassNameProvider.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/DebuggerUtils.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/DebuggerUtils.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/DebuggerUtils.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/DebuggerUtils.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/DiagnosticSuppressorForDebugger.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/DiagnosticSuppressorForDebugger.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/DiagnosticSuppressorForDebugger.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/DiagnosticSuppressorForDebugger.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/InlineCallableUsagesSearcher.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/InlineCallableUsagesSearcher.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/InlineCallableUsagesSearcher.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/InlineCallableUsagesSearcher.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/KotlinDebuggerSettings.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinDebuggerSettings.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/KotlinDebuggerSettings.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinDebuggerSettings.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/KotlinDelegatedPropertyRendererConfigurableUi.form b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinDelegatedPropertyRendererConfigurableUi.form
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/KotlinDelegatedPropertyRendererConfigurableUi.form
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinDelegatedPropertyRendererConfigurableUi.form
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/KotlinDelegatedPropertyRendererConfigurableUi.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinDelegatedPropertyRendererConfigurableUi.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/KotlinDelegatedPropertyRendererConfigurableUi.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinDelegatedPropertyRendererConfigurableUi.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/KotlinEditorTextProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinEditorTextProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/KotlinEditorTextProvider.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinEditorTextProvider.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/KotlinFrameExtraVariablesProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinFrameExtraVariablesProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/KotlinFrameExtraVariablesProvider.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinFrameExtraVariablesProvider.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/KotlinJavaScriptDebugAware.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinJavaScriptDebugAware.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/KotlinJavaScriptDebugAware.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinJavaScriptDebugAware.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManager.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManager.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManager.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManager.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManagerFactory.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManagerFactory.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManagerFactory.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManagerFactory.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/KotlinSourcePositionHighlighter.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinSourcePositionHighlighter.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/KotlinSourcePositionHighlighter.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinSourcePositionHighlighter.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/KotlinSourcePositionProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinSourcePositionProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/KotlinSourcePositionProvider.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinSourcePositionProvider.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/KotlinStackFrame.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinStackFrame.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/KotlinStackFrame.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinStackFrame.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/NoStrataPositionManagerHelper.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/NoStrataPositionManagerHelper.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/NoStrataPositionManagerHelper.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/NoStrataPositionManagerHelper.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinBreakpointFiltersPanel.form b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinBreakpointFiltersPanel.form
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinBreakpointFiltersPanel.form
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinBreakpointFiltersPanel.form
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinBreakpointFiltersPanel.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinBreakpointFiltersPanel.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinBreakpointFiltersPanel.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinBreakpointFiltersPanel.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinBreakpointHandlerFactory.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinBreakpointHandlerFactory.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinBreakpointHandlerFactory.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinBreakpointHandlerFactory.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinFieldBreakpoint.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinFieldBreakpoint.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinFieldBreakpoint.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinFieldBreakpoint.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinFieldBreakpointPropertiesPanel.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinFieldBreakpointPropertiesPanel.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinFieldBreakpointPropertiesPanel.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinFieldBreakpointPropertiesPanel.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinFieldBreakpointType.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinFieldBreakpointType.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinFieldBreakpointType.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinFieldBreakpointType.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinLineBreakpointType.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinLineBreakpointType.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinLineBreakpointType.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinLineBreakpointType.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinPropertyBreakpointProperties.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinPropertyBreakpointProperties.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinPropertyBreakpointProperties.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinPropertyBreakpointProperties.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/breakpointTypeUtils.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/breakpointTypeUtils.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/breakpointTypeUtils.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/breakpointTypeUtils.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.form b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.form
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.form
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.form
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/fieldBreakpointDialogUtil.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/fieldBreakpointDialogUtil.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/fieldBreakpointDialogUtil.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/fieldBreakpointDialogUtil.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/debuggerUtil.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/debuggerUtil.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/debuggerUtil.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/debuggerUtil.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/CompilingEvaluatorUtils.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/CompilingEvaluatorUtils.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/CompilingEvaluatorUtils.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/CompilingEvaluatorUtils.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/FrameVisitor.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/FrameVisitor.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/FrameVisitor.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/FrameVisitor.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinCodeFragmentFactory.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinCodeFragmentFactory.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinCodeFragmentFactory.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinCodeFragmentFactory.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinDebuggerCaches.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinDebuggerCaches.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinDebuggerCaches.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinDebuggerCaches.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinRuntimeTypeEvaluator.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinRuntimeTypeEvaluator.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinRuntimeTypeEvaluator.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinRuntimeTypeEvaluator.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/AbstractAndroidClassLoadingAdapter.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/AbstractAndroidClassLoadingAdapter.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/AbstractAndroidClassLoadingAdapter.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/AbstractAndroidClassLoadingAdapter.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/AndroidDexer.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/AndroidDexer.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/AndroidDexer.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/AndroidDexer.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/AndroidOClassLoadingAdapter.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/AndroidOClassLoadingAdapter.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/AndroidOClassLoadingAdapter.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/AndroidOClassLoadingAdapter.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassLoaderHandler.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassLoaderHandler.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassLoaderHandler.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassLoaderHandler.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassLoadingAdapter.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassLoadingAdapter.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassLoadingAdapter.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassLoadingAdapter.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassToLoad.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassToLoad.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassToLoad.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassToLoad.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/OrdinaryClassLoadingAdapter.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/OrdinaryClassLoadingAdapter.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/OrdinaryClassLoadingAdapter.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/OrdinaryClassLoadingAdapter.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilingEvaluator.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilingEvaluator.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilingEvaluator.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilingEvaluator.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/filter/DebuggerFiltersUtil.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/filter/DebuggerFiltersUtil.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/filter/DebuggerFiltersUtil.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/filter/DebuggerFiltersUtil.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/filter/KotlinDebuggerInternalClassesFilterProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/filter/KotlinDebuggerInternalClassesFilterProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/filter/KotlinDebuggerInternalClassesFilterProvider.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/filter/KotlinDebuggerInternalClassesFilterProvider.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/filter/KotlinSyntheticTypeComponentProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/filter/KotlinSyntheticTypeComponentProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/filter/KotlinSyntheticTypeComponentProvider.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/filter/KotlinSyntheticTypeComponentProvider.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/render/DelegatedPropertyFieldDescriptor.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/render/DelegatedPropertyFieldDescriptor.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/render/DelegatedPropertyFieldDescriptor.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/render/DelegatedPropertyFieldDescriptor.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/render/KotlinClassWithDelegatedPropertyRenderer.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/render/KotlinClassWithDelegatedPropertyRenderer.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/render/KotlinClassWithDelegatedPropertyRenderer.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/render/KotlinClassWithDelegatedPropertyRenderer.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/smapUtil.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/smapUtil.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/smapUtil.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/smapUtil.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/DebugProcessImplHelper.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/DebugProcessImplHelper.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/DebugProcessImplHelper.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/DebugProcessImplHelper.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/DebuggerSteppingHelper.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/DebuggerSteppingHelper.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/DebuggerSteppingHelper.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/DebuggerSteppingHelper.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinBasicStepMethodFilter.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinBasicStepMethodFilter.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinBasicStepMethodFilter.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinBasicStepMethodFilter.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinLambdaMethodFilter.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinLambdaMethodFilter.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinLambdaMethodFilter.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinLambdaMethodFilter.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinLambdaSmartStepIntoTarget.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinLambdaSmartStepIntoTarget.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinLambdaSmartStepIntoTarget.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinLambdaSmartStepIntoTarget.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinMethodSmartStepIntoTarget.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinMethodSmartStepIntoTarget.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinMethodSmartStepIntoTarget.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinMethodSmartStepIntoTarget.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSimpleGetterProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSimpleGetterProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSimpleGetterProvider.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSimpleGetterProvider.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSmartStepIntoHandler.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSmartStepIntoHandler.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSmartStepIntoHandler.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSmartStepIntoHandler.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinStepActionFactory.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinStepActionFactory.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinStepActionFactory.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinStepActionFactory.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinStepOverInlineFilter.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinStepOverInlineFilter.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinStepOverInlineFilter.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinStepOverInlineFilter.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinStepOverInlinedLinesHint.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinStepOverInlinedLinesHint.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinStepOverInlinedLinesHint.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinStepOverInlinedLinesHint.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSteppingCommandProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSteppingCommandProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSteppingCommandProvider.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSteppingCommandProvider.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSteppingConfigurableUi.form b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSteppingConfigurableUi.form
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSteppingConfigurableUi.form
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSteppingConfigurableUi.form
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSteppingConfigurableUi.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSteppingConfigurableUi.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSteppingConfigurableUi.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSteppingConfigurableUi.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSuspendCallStepOverFilter.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSuspendCallStepOverFilter.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSuspendCallStepOverFilter.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/KotlinSuspendCallStepOverFilter.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/stepping/RequestHintWithMethodFilter.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/RequestHintWithMethodFilter.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/debugger/stepping/RequestHintWithMethodFilter.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/stepping/RequestHintWithMethodFilter.kt
diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/surroundWith/KotlinDebuggerExpressionSurroundDescriptor.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/surroundWith/KotlinDebuggerExpressionSurroundDescriptor.java
new file mode 100644
index 00000000000..3c8e551bc29
--- /dev/null
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/surroundWith/KotlinDebuggerExpressionSurroundDescriptor.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2010-2017 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jetbrains.kotlin.idea.debugger.surroundWith;
+
+import com.intellij.lang.surroundWith.Surrounder;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.kotlin.idea.codeInsight.surroundWith.expression.KotlinExpressionSurroundDescriptor;
+
+public class KotlinDebuggerExpressionSurroundDescriptor extends KotlinExpressionSurroundDescriptor {
+
+ private static final Surrounder[] SURROUNDERS = {
+ new KotlinRuntimeTypeCastSurrounder()
+ };
+
+ @Override
+ @NotNull
+ public Surrounder[] getSurrounders() {
+ return SURROUNDERS;
+ }
+}
diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/surroundWith/expression/KotlinRuntimeTypeCastSurrounder.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/surroundWith/KotlinRuntimeTypeCastSurrounder.kt
similarity index 96%
rename from idea/src/org/jetbrains/kotlin/idea/codeInsight/surroundWith/expression/KotlinRuntimeTypeCastSurrounder.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/surroundWith/KotlinRuntimeTypeCastSurrounder.kt
index 088f21daeaf..1ebeb56d210 100644
--- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/surroundWith/expression/KotlinRuntimeTypeCastSurrounder.kt
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/surroundWith/KotlinRuntimeTypeCastSurrounder.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2015 JetBrains s.r.o.
+ * Copyright 2010-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.codeInsight.surroundWith.expression
+package org.jetbrains.kotlin.idea.debugger.surroundWith
import com.intellij.codeInsight.CodeInsightBundle
import com.intellij.debugger.DebuggerBundle
@@ -31,8 +31,9 @@ import com.intellij.openapi.project.Project
import com.intellij.openapi.util.TextRange
import org.jetbrains.kotlin.idea.KotlinBundle
import org.jetbrains.kotlin.idea.caches.resolve.analyze
-import org.jetbrains.kotlin.idea.core.ShortenReferences
+import org.jetbrains.kotlin.idea.codeInsight.surroundWith.expression.KotlinExpressionSurrounder
import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinRuntimeTypeEvaluator
+import org.jetbrains.kotlin.idea.core.ShortenReferences
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
diff --git a/idea/src/org/jetbrains/kotlin/idea/facet/FrameworkLibraryValidatorWithDynamicDescription.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/facet/FrameworkLibraryValidatorWithDynamicDescription.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/facet/FrameworkLibraryValidatorWithDynamicDescription.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/facet/FrameworkLibraryValidatorWithDynamicDescription.kt
diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/facet/KotlinLibraryValidatorCreator.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/facet/KotlinLibraryValidatorCreator.kt
new file mode 100644
index 00000000000..5b5184df815
--- /dev/null
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/facet/KotlinLibraryValidatorCreator.kt
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2010-2017 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jetbrains.kotlin.idea.facet
+
+import com.intellij.facet.impl.ui.libraries.DelegatingLibrariesValidatorContext
+import com.intellij.facet.ui.FacetEditorContext
+import com.intellij.facet.ui.FacetEditorValidator
+import com.intellij.facet.ui.FacetValidatorsManager
+import org.jetbrains.kotlin.config.TargetPlatformKind
+import org.jetbrains.kotlin.idea.facet.KotlinFacetEditorGeneralTab.EditorComponent
+
+class KotlinLibraryValidatorCreator : KotlinFacetValidatorCreator() {
+ override fun create(editor: EditorComponent, validatorsManager: FacetValidatorsManager, editorContext: FacetEditorContext): FacetEditorValidator {
+ return FrameworkLibraryValidatorWithDynamicDescription(
+ DelegatingLibrariesValidatorContext(editorContext),
+ validatorsManager,
+ "kotlin"
+ ) { editor.targetPlatformComboBox.selectedItem as TargetPlatformKind<*> }
+ }
+}
\ No newline at end of file
diff --git a/idea/src/org/jetbrains/kotlin/idea/filters/KotlinExceptionFilter.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/filters/KotlinExceptionFilter.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/filters/KotlinExceptionFilter.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/filters/KotlinExceptionFilter.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/filters/KotlinExceptionFilterFactory.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/filters/KotlinExceptionFilterFactory.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/filters/KotlinExceptionFilterFactory.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/filters/KotlinExceptionFilterFactory.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/CommonLibraryType.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/CommonLibraryType.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/CommonLibraryType.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/CommonLibraryType.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/CommonStandardLibraryDescription.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/CommonStandardLibraryDescription.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/CommonStandardLibraryDescription.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/CommonStandardLibraryDescription.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/FrameworksCompatibilityUtils.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/FrameworksCompatibilityUtils.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/FrameworksCompatibilityUtils.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/FrameworksCompatibilityUtils.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/JSFrameworkSupportProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JSFrameworkSupportProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/JSFrameworkSupportProvider.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JSFrameworkSupportProvider.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/JSFrameworkType.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JSFrameworkType.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/JSFrameworkType.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JSFrameworkType.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdDescription.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdDescription.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdDescription.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdDescription.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryType.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JSLibraryType.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryType.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JSLibraryType.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkSupportProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkSupportProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkSupportProvider.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkSupportProvider.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkType.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkType.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkType.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkType.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/JavaRuntimeLibraryDescription.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JavaRuntimeLibraryDescription.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/JavaRuntimeLibraryDescription.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JavaRuntimeLibraryDescription.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/JavaRuntimePresentationProvider.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JavaRuntimePresentationProvider.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/JavaRuntimePresentationProvider.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JavaRuntimePresentationProvider.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/KotlinModuleBuilder.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/KotlinModuleBuilder.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/KotlinModuleBuilder.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/KotlinModuleBuilder.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/KotlinModuleSettingStep.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/KotlinModuleSettingStep.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/KotlinModuleSettingStep.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/KotlinModuleSettingStep.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/KotlinTemplatesFactory.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/KotlinTemplatesFactory.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/KotlinTemplatesFactory.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/KotlinTemplatesFactory.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/ui/ChooseLibraryPathPanel.form b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChooseLibraryPathPanel.form
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/ui/ChooseLibraryPathPanel.form
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChooseLibraryPathPanel.form
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/ui/ChooseLibraryPathPanel.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChooseLibraryPathPanel.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/ui/ChooseLibraryPathPanel.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChooseLibraryPathPanel.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/ui/ChooseModulePanel.form b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChooseModulePanel.form
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/ui/ChooseModulePanel.form
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChooseModulePanel.form
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/ui/ChooseModulePanel.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChooseModulePanel.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/ui/ChooseModulePanel.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChooseModulePanel.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/ui/ChoosePathDialog.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChoosePathDialog.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/ui/ChoosePathDialog.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ChoosePathDialog.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/ui/ConfigureDialogWithModulesAndVersion.form b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ConfigureDialogWithModulesAndVersion.form
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/ui/ConfigureDialogWithModulesAndVersion.form
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ConfigureDialogWithModulesAndVersion.form
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/ui/ConfigureDialogWithModulesAndVersion.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ConfigureDialogWithModulesAndVersion.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/ui/ConfigureDialogWithModulesAndVersion.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ConfigureDialogWithModulesAndVersion.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/ui/CopyIntoPanel.form b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CopyIntoPanel.form
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/ui/CopyIntoPanel.form
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CopyIntoPanel.form
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/ui/CopyIntoPanel.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CopyIntoPanel.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/ui/CopyIntoPanel.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CopyIntoPanel.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialog.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialog.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialog.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialog.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialogBase.form b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialogBase.form
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialogBase.form
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialogBase.form
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialogBase.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialogBase.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialogBase.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialogBase.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialogWithModules.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialogWithModules.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialogWithModules.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/CreateLibraryDialogWithModules.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/ui/FileUIUtils.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/FileUIUtils.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/ui/FileUIUtils.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/FileUIUtils.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/ui/ValidityListener.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ValidityListener.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/framework/ui/ValidityListener.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/ui/ValidityListener.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/KotlinInvalidBundleOrPropertyInspection.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/i18n/inspections/KotlinInvalidBundleOrPropertyInspection.kt
similarity index 97%
rename from idea/src/org/jetbrains/kotlin/idea/inspections/KotlinInvalidBundleOrPropertyInspection.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/i18n/inspections/KotlinInvalidBundleOrPropertyInspection.kt
index 7fbe90402eb..ea235e50b58 100644
--- a/idea/src/org/jetbrains/kotlin/idea/inspections/KotlinInvalidBundleOrPropertyInspection.kt
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/i18n/inspections/KotlinInvalidBundleOrPropertyInspection.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2015 JetBrains s.r.o.
+ * Copyright 2010-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.inspections
+package org.jetbrains.kotlin.idea.i18n.inspections
import com.intellij.codeInsight.CodeInsightBundle
import com.intellij.codeInspection.ProblemHighlightType
@@ -26,6 +26,7 @@ import com.intellij.lang.properties.references.PropertyReference
import com.intellij.openapi.util.TextRange
import com.intellij.psi.PsiElementVisitor
import org.jetbrains.kotlin.idea.caches.resolve.analyze
+import org.jetbrains.kotlin.idea.inspections.AbstractKotlinInspection
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
import org.jetbrains.kotlin.psi.psiUtil.parents
diff --git a/idea/src/org/jetbrains/kotlin/idea/injection/InterpolatedStringInjectorProcessor.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/injection/InterpolatedStringInjectorProcessor.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/injection/InterpolatedStringInjectorProcessor.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/injection/InterpolatedStringInjectorProcessor.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/injection/KotlinLanguageInjectionSupport.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/injection/KotlinLanguageInjectionSupport.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/injection/KotlinLanguageInjectionSupport.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/injection/KotlinLanguageInjectionSupport.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/injection/KotlinLanguageInjector.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/injection/KotlinLanguageInjector.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/injection/KotlinLanguageInjector.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/injection/KotlinLanguageInjector.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/AddKotlinLibQuickFix.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/inspections/AddKotlinLibQuickFix.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/inspections/AddKotlinLibQuickFix.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/inspections/AddKotlinLibQuickFix.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/internal/KotlinBytecodeToolWindow.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/internal/KotlinBytecodeToolWindow.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/internal/KotlinBytecodeToolWindow.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/internal/KotlinBytecodeToolWindow.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/internal/makeBackup/CreateIncrementalCompilationBackup.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/internal/makeBackup/CreateIncrementalCompilationBackup.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/internal/makeBackup/CreateIncrementalCompilationBackup.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/internal/makeBackup/CreateIncrementalCompilationBackup.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/internal/makeBackup/MakeBackupCompileTask.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/internal/makeBackup/MakeBackupCompileTask.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/internal/makeBackup/MakeBackupCompileTask.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/internal/makeBackup/MakeBackupCompileTask.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/internal/makeBackup/makeBackup.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/internal/makeBackup/makeBackup.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/internal/makeBackup/makeBackup.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/internal/makeBackup/makeBackup.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/properties/KotlinPropertiesReferenceContributor.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/properties/KotlinPropertiesReferenceContributor.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/properties/KotlinPropertiesReferenceContributor.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/properties/KotlinPropertiesReferenceContributor.kt
diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/PropertyKeyCompletion.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/properties/PropertyKeyCompletion.kt
similarity index 86%
rename from idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/PropertyKeyCompletion.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/properties/PropertyKeyCompletion.kt
index bb2bf6baa74..118a4d4b642 100644
--- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/PropertyKeyCompletion.kt
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/properties/PropertyKeyCompletion.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2015 JetBrains s.r.o.
+ * Copyright 2010-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,20 +14,21 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.completion
+package org.jetbrains.kotlin.idea.properties
import com.intellij.codeInsight.completion.CompletionParameters
import com.intellij.codeInsight.completion.CompletionResultSet
import com.intellij.lang.properties.references.PropertiesCompletionContributor
import com.intellij.lang.properties.references.PropertyReference
+import org.jetbrains.kotlin.idea.completion.KotlinCompletionExtension
import org.jetbrains.kotlin.psi.KtStringTemplateExpression
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
import org.jetbrains.kotlin.psi.psiUtil.isPlain
import org.jetbrains.kotlin.psi.psiUtil.startOffset
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
-object PropertyKeyCompletion {
- fun perform(parameters: CompletionParameters, result: CompletionResultSet): Boolean {
+class PropertyKeyCompletion : KotlinCompletionExtension() {
+ override fun perform(parameters: CompletionParameters, result: CompletionResultSet): Boolean {
val template = parameters.position.getStrictParentOfType() ?: return false
if (!template.isPlain()) return false
diff --git a/idea/src/org/jetbrains/kotlin/idea/properties/referenceProviders.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/properties/referenceProviders.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/properties/referenceProviders.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/properties/referenceProviders.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeCoroutineSupportFix.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/quickfix/ChangeCoroutineSupportFix.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeCoroutineSupportFix.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/quickfix/ChangeCoroutineSupportFix.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/EnableUnsupportedFeatureFix.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/quickfix/EnableUnsupportedFeatureFix.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/quickfix/EnableUnsupportedFeatureFix.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/quickfix/EnableUnsupportedFeatureFix.kt
diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/quickfix/JvmQuickFixRegistrar.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/quickfix/JvmQuickFixRegistrar.kt
new file mode 100644
index 00000000000..faa863a7fa0
--- /dev/null
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/quickfix/JvmQuickFixRegistrar.kt
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2010-2017 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jetbrains.kotlin.idea.quickfix
+
+import org.jetbrains.kotlin.diagnostics.DiagnosticFactory
+import org.jetbrains.kotlin.diagnostics.Errors.*
+import org.jetbrains.kotlin.idea.inspections.AddReflectionQuickFix
+import org.jetbrains.kotlin.idea.inspections.AddTestLibQuickFix
+import org.jetbrains.kotlin.resolve.jvm.diagnostics.ErrorsJvm.NO_REFLECTION_IN_CLASS_PATH
+
+class JvmQuickFixRegistrar : QuickFixContributor {
+ override fun registerQuickFixes(quickFixes: QuickFixes) {
+ fun DiagnosticFactory<*>.registerFactory(vararg factory: KotlinIntentionActionsFactory) {
+ quickFixes.register(this, *factory)
+ }
+
+ UNRESOLVED_REFERENCE.registerFactory(AddTestLibQuickFix)
+
+ UNSUPPORTED_FEATURE.registerFactory(EnableUnsupportedFeatureFix)
+
+ EXPERIMENTAL_FEATURE_ERROR.registerFactory(ChangeCoroutineSupportFix)
+ EXPERIMENTAL_FEATURE_WARNING.registerFactory(ChangeCoroutineSupportFix)
+
+ NO_REFLECTION_IN_CLASS_PATH.registerFactory(AddReflectionQuickFix)
+ }
+}
\ No newline at end of file
diff --git a/idea/src/org/jetbrains/kotlin/idea/run/JetRunConfiguration.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/JetRunConfiguration.java
similarity index 99%
rename from idea/src/org/jetbrains/kotlin/idea/run/JetRunConfiguration.java
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/JetRunConfiguration.java
index 59a63496408..e16c560dbc0 100644
--- a/idea/src/org/jetbrains/kotlin/idea/run/JetRunConfiguration.java
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/JetRunConfiguration.java
@@ -46,4 +46,4 @@ public abstract class JetRunConfiguration extends ModuleBasedConfiguration) {
+ if (project.allModules().any { module -> KotlinPluginUtil.isMavenModule(module) }) {
+ Messages.showMessageDialog(project, "Automatic library version update for Maven projects is currently unsupported. Please update your pom.xml manually.",
+ "Update Kotlin Runtime Library",
+ Messages.getErrorIcon())
+ return
+ }
+
+ if (project.allModules().any { module -> KotlinPluginUtil.isGradleModule(module) }) {
+ Messages.showMessageDialog(project, "Automatic library version update for Gradle projects is currently unsupported. Please update your build.gradle manually.",
+ "Update Kotlin Runtime Library",
+ Messages.getErrorIcon())
+ return
+ }
+
+ val kJvmConfigurator = getConfiguratorByName(KotlinJavaModuleConfigurator.NAME) as KotlinJavaModuleConfigurator? ?:
+ error("Configurator with given name doesn't exists: " + KotlinJavaModuleConfigurator.NAME)
+
+ val kJsConfigurator = getConfiguratorByName(KotlinJsModuleConfigurator.NAME) as KotlinJsModuleConfigurator? ?:
+ error("Configurator with given name doesn't exists: " + KotlinJsModuleConfigurator.NAME)
+
+ val collector = createConfigureKotlinNotificationCollector(project)
+ val sdk = ProjectRootManager.getInstance(project).projectSdk
+ // TODO use module SDK
+
+ for (library in libraries) {
+ val libraryJarDescriptors = if (JavaRuntimeDetectionUtil.getJavaRuntimeVersion(library) != null)
+ kJvmConfigurator.getLibraryJarDescriptors(sdk)
+ else
+ kJsConfigurator.getLibraryJarDescriptors(sdk)
+
+ for (libraryJarDescriptor in libraryJarDescriptors) {
+ updateJar(project, library, libraryJarDescriptor)
+ }
+ }
+
+ collector.showNotification()
+}
+
+private fun updateJar(
+ project: Project,
+ library: Library,
+ libraryJarDescriptor: LibraryJarDescriptor) {
+ val fileToReplace = libraryJarDescriptor.findExistingJar(library)
+
+ if (fileToReplace == null && !libraryJarDescriptor.shouldExist) {
+ return
+ }
+
+ val oldUrl = fileToReplace?.url
+ val jarPath: File = libraryJarDescriptor.getPathInPlugin()
+
+ if (!jarPath.exists()) {
+ showRuntimeJarNotFoundDialog(project, libraryJarDescriptor.jarName)
+ return
+ }
+
+ val jarFileToReplace = getLocalJar(fileToReplace)!!
+ val newVFile = replaceFile(jarPath, jarFileToReplace)
+ if (newVFile != null) {
+ val model = library.modifiableModel
+ runWriteAction {
+ try {
+ if (oldUrl != null) {
+ model.removeRoot(oldUrl, libraryJarDescriptor.orderRootType)
+ }
+ val newRoot = JarFileSystem.getInstance().getJarRootForLocalFile(newVFile)!!
+ model.addRoot(newRoot, libraryJarDescriptor.orderRootType)
+ }
+ finally {
+ model.commit()
+ }
+ }
+ }
+}
+
+internal fun replaceFile(updatedFile: File, jarFileToReplace: VirtualFile): VirtualFile? {
+ val jarIoFileToReplace = File(jarFileToReplace.path)
+
+ if (FileUtil.filesEqual(updatedFile, jarIoFileToReplace)) {
+ return null
+ }
+
+ FileUtil.copy(updatedFile, jarIoFileToReplace)
+ if (jarIoFileToReplace.name != updatedFile.name) {
+ val newFile = File(jarIoFileToReplace.parent, updatedFile.name)
+ if (!newFile.exists()) {
+ if (!jarIoFileToReplace.renameTo(newFile)) {
+ LOG.info("Failed to rename ${jarIoFileToReplace.path} to ${newFile.path}")
+ return null
+ }
+ val newVFile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(newFile)
+ if (newVFile == null) {
+ LOG.info("Failed to find ${newFile.path} in VFS")
+ return null
+ }
+ newVFile.refresh(false, true)
+ return newVFile
+ }
+ }
+ jarFileToReplace.refresh(false, true)
+ return null
+}
\ No newline at end of file
diff --git a/idea/src/org/jetbrains/kotlin/idea/versions/OutdatedKotlinRuntimeChecker.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/versions/OutdatedKotlinRuntimeChecker.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/versions/OutdatedKotlinRuntimeChecker.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/versions/OutdatedKotlinRuntimeChecker.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/versions/SuppressNotificationState.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/versions/SuppressNotificationState.kt
similarity index 98%
rename from idea/src/org/jetbrains/kotlin/idea/versions/SuppressNotificationState.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/versions/SuppressNotificationState.kt
index 890c1595daf..a4f8f9eeef9 100644
--- a/idea/src/org/jetbrains/kotlin/idea/versions/SuppressNotificationState.kt
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/versions/SuppressNotificationState.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2015 JetBrains s.r.o.
+ * Copyright 2010-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/idea/src/org/jetbrains/kotlin/idea/versions/UnsupportedAbiVersionNotificationPanelProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/versions/UnsupportedAbiVersionNotificationPanelProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/versions/UnsupportedAbiVersionNotificationPanelProvider.kt
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/versions/UnsupportedAbiVersionNotificationPanelProvider.kt
diff --git a/idea/idea-maven/build.gradle.kts b/idea/idea-maven/build.gradle.kts
index 46abf476c05..0b93378044f 100644
--- a/idea/idea-maven/build.gradle.kts
+++ b/idea/idea-maven/build.gradle.kts
@@ -15,6 +15,7 @@ dependencies {
compile(project(":js:js.frontend"))
compile(project(":idea"))
+ compile(project(":idea:idea-jvm"))
compile(project(":idea:idea-jps-common"))
testCompile(projectTests(":idea"))
diff --git a/idea/idea-test-framework/build.gradle.kts b/idea/idea-test-framework/build.gradle.kts
index 2ee0a3d4c70..056dab8b692 100644
--- a/idea/idea-test-framework/build.gradle.kts
+++ b/idea/idea-test-framework/build.gradle.kts
@@ -6,6 +6,7 @@ dependencies {
compile(project(":compiler:frontend.script"))
compile(projectTests(":compiler:tests-common"))
compile(project(":idea"))
+ compile(project(":idea:idea-jvm"))
compile(project(":idea:idea-core"))
compile(project(":idea:idea-jps-common"))
compile(project(":kotlin-test:kotlin-test-jvm"))
diff --git a/idea/resources/inspectionDescriptions/KotlinInvalidBundleOrPropertyInspection.html b/idea/resources/inspectionDescriptions/KotlinInvalidBundleOrPropertyInspection.html
deleted file mode 100644
index 30833822ac8..00000000000
--- a/idea/resources/inspectionDescriptions/KotlinInvalidBundleOrPropertyInspection.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-This inspection verifies that arguments passed to functions with parameters annotated as @PropertyKey are valid property keys in the respective properties files. It also verifies that the resourceBundle argument of the @PropertyKey annotation is an existing resource bundle.
-
-
diff --git a/idea/src/META-INF/extensions/compiler.xml b/idea/src/META-INF/extensions/compiler.xml
index e9c4c6362a6..bf52fcc3bef 100644
--- a/idea/src/META-INF/extensions/compiler.xml
+++ b/idea/src/META-INF/extensions/compiler.xml
@@ -2,56 +2,52 @@
org.jetbrains.kotlin
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/idea/src/META-INF/extensions/ide.xml b/idea/src/META-INF/extensions/ide.xml
index 5c12e3b42a4..2356a301693 100644
--- a/idea/src/META-INF/extensions/ide.xml
+++ b/idea/src/META-INF/extensions/ide.xml
@@ -1,30 +1,37 @@
-
-
+
+
-
-
-
-
+
+
+
+
+
-
-
-
diff --git a/idea/src/META-INF/gradle.xml b/idea/src/META-INF/gradle.xml
index a2c6fa95649..32788553813 100644
--- a/idea/src/META-INF/gradle.xml
+++ b/idea/src/META-INF/gradle.xml
@@ -13,6 +13,9 @@
+
+
diff --git a/idea/src/META-INF/i18n.xml b/idea/src/META-INF/i18n.xml
index f707c484de3..ed67c0798c3 100644
--- a/idea/src/META-INF/i18n.xml
+++ b/idea/src/META-INF/i18n.xml
@@ -2,7 +2,7 @@
-
+
+
+
+
+
+
+ org.jetbrains.kotlin.idea.JvmPluginStartupComponent
+
+
+
+
+
+ org.jetbrains.kotlin.idea.compiler.KotlinCompilerManager
+
+
+ org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerComponent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml
index ab9a6c75de3..701a7271a18 100644
--- a/idea/src/META-INF/plugin.xml
+++ b/idea/src/META-INF/plugin.xml
@@ -8,14 +8,13 @@
- com.intellij.modules.java
+ com.intellij.modules.platform
JUnit
org.jetbrains.plugins.gradle
org.jetbrains.idea.maven
TestNG-J
com.intellij.copyright
- JavaScriptDebugger
org.jetbrains.android
Coverage
com.intellij.java-i18n
@@ -24,13 +23,12 @@
+
+ com.intellij.modules.java
+ JavaScriptDebugger
+
+
-
- org.jetbrains.kotlin.idea.compiler.KotlinCompilerManager
-
-
- org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerComponent
-
org.jetbrains.kotlin.idea.highlighter.KotlinBeforeResolveHighlightingPass$Factory
@@ -83,27 +81,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
@@ -163,9 +146,6 @@
-
-
@@ -190,13 +170,6 @@
-
-
-
-
-
@@ -312,14 +285,9 @@
-
-
-
-
@@ -338,9 +306,6 @@
-
-
@@ -387,7 +352,6 @@
-
@@ -616,12 +580,8 @@
-
-
-
-
@@ -664,36 +624,10 @@
id="kotlinJavaSafeDeleteDelegate"
language="kotlin"
implementationClass="org.jetbrains.kotlin.idea.refactoring.safeDelete.KotlinJavaSafeDeleteDelegate"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -754,9 +688,6 @@
-
-
-
@@ -773,8 +704,6 @@
-
-
@@ -820,8 +749,6 @@
-
-
@@ -846,9 +773,6 @@
-
-
-
@@ -2760,8 +2684,6 @@
-
-
@@ -2775,10 +2697,6 @@
serviceImplementation="org.jetbrains.uast.kotlin.internal.IdeaKotlinUastBindingContextProviderService"/>
-
-
-
-
@@ -2802,13 +2720,11 @@
-
-
-
-
-
-
+
+
+
+
diff --git a/idea/src/org/jetbrains/kotlin/idea/PluginStartupComponent.java b/idea/src/org/jetbrains/kotlin/idea/PluginStartupComponent.java
index bfd3a166385..35e49d703f5 100644
--- a/idea/src/org/jetbrains/kotlin/idea/PluginStartupComponent.java
+++ b/idea/src/org/jetbrains/kotlin/idea/PluginStartupComponent.java
@@ -29,7 +29,6 @@ import com.intellij.openapi.updateSettings.impl.UpdateChecker;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.search.searches.IndexPatternSearch;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.kotlin.idea.debugger.filter.DebuggerFiltersUtilKt;
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinTodoSearcher;
import org.jetbrains.kotlin.utils.PathUtil;
@@ -55,12 +54,6 @@ public class PluginStartupComponent implements ApplicationComponent {
public void initComponent() {
registerPathVariable();
- if (ApplicationManager.getApplication().isUnitTestMode()) {
- ThreadTrackerPatcherForTeamCityTesting.INSTANCE.patchThreadTracker();
- }
-
- DebuggerFiltersUtilKt.addKotlinStdlibDebugFilterIfNeeded();
-
try {
// API added in 15.0.2
UpdateChecker.INSTANCE.getExcludedFromUpdateCheckPlugins().add("org.jetbrains.kotlin");
diff --git a/idea/src/org/jetbrains/kotlin/idea/actions/NewKotlinFileAction.kt b/idea/src/org/jetbrains/kotlin/idea/actions/NewKotlinFileAction.kt
index c9f639c2ed5..ef1bfe6bde5 100644
--- a/idea/src/org/jetbrains/kotlin/idea/actions/NewKotlinFileAction.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/actions/NewKotlinFileAction.kt
@@ -27,7 +27,9 @@ import com.intellij.openapi.actionSystem.DataContext
import com.intellij.openapi.actionSystem.LangDataKeys
import com.intellij.openapi.actionSystem.PlatformDataKeys
import com.intellij.openapi.editor.LogicalPosition
+import com.intellij.openapi.extensions.ExtensionPointName
import com.intellij.openapi.fileEditor.FileEditorManager
+import com.intellij.openapi.module.Module
import com.intellij.openapi.module.ModuleUtilCore
import com.intellij.openapi.project.DumbAware
import com.intellij.openapi.project.DumbService
@@ -38,7 +40,6 @@ import com.intellij.psi.PsiFile
import com.intellij.util.IncorrectOperationException
import org.jetbrains.kotlin.idea.KotlinFileType
import org.jetbrains.kotlin.idea.KotlinIcons
-import org.jetbrains.kotlin.idea.configuration.showConfigureKotlinNotificationIfNeeded
import org.jetbrains.kotlin.idea.util.application.runWriteAction
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.KtNamedDeclaration
@@ -54,11 +55,14 @@ class NewKotlinFileAction
super.postProcess(createdElement, templateName, customProperties)
val module = ModuleUtilCore.findModuleForPsiElement(createdElement!!)
- if (module != null) {
- showConfigureKotlinNotificationIfNeeded(module)
- }
if (createdElement is KtFile) {
+ if (module != null) {
+ for (hook in NewKotlinFileHook.EP_NAME.getExtensions(createdElement.project)) {
+ hook.postProcess(createdElement, module)
+ }
+ }
+
val ktClass = createdElement.declarations.singleOrNull() as? KtNamedDeclaration
if (ktClass != null) {
CreateFromTemplateAction.moveCaretAfterNameIdentifier(ktClass)
@@ -168,3 +172,12 @@ class NewKotlinFileAction
}
}
}
+
+abstract class NewKotlinFileHook {
+ companion object {
+ val EP_NAME: ExtensionPointName =
+ ExtensionPointName.create("org.jetbrains.kotlin.newFileHook")
+ }
+
+ abstract fun postProcess(createdElement: KtFile, module: Module)
+}
diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/surroundWith/expression/KotlinExpressionSurroundDescriptor.java b/idea/src/org/jetbrains/kotlin/idea/codeInsight/surroundWith/expression/KotlinExpressionSurroundDescriptor.java
index eb3998e1633..e468bbf572c 100644
--- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/surroundWith/expression/KotlinExpressionSurroundDescriptor.java
+++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/surroundWith/expression/KotlinExpressionSurroundDescriptor.java
@@ -29,8 +29,7 @@ public class KotlinExpressionSurroundDescriptor implements SurroundDescriptor {
new KotlinNotSurrounder(),
new KotlinStringTemplateSurrounder(),
new KotlinParenthesesSurrounder(),
- new KotlinWhenSurrounder() ,
- new KotlinRuntimeTypeCastSurrounder(),
+ new KotlinWhenSurrounder(),
new KotlinWithIfExpressionSurrounder(/* withElse = */false),
new KotlinWithIfExpressionSurrounder(/* withElse = */true),
new KotlinTryExpressionSurrounder.TryCatch(),
diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/ClearBuildStateExtension.kt b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/ClearBuildStateExtension.kt
new file mode 100644
index 00000000000..751fbe4d201
--- /dev/null
+++ b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/ClearBuildStateExtension.kt
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2010-2017 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jetbrains.kotlin.idea.compiler.configuration
+
+import com.intellij.openapi.extensions.ExtensionPointName
+import com.intellij.openapi.project.Project
+
+abstract class ClearBuildStateExtension {
+ companion object {
+ @JvmStatic
+ fun getExtensions(): Array {
+ return EP_NAME.getExtensions();
+ }
+
+ val EP_NAME: ExtensionPointName =
+ ExtensionPointName.create("org.jetbrains.kotlin.clearBuildState")
+ }
+
+ abstract fun clearState(project: Project)
+}
\ No newline at end of file
diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java
index 60f064fc02a..c45a7a489a0 100644
--- a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java
+++ b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java
@@ -16,8 +16,6 @@
package org.jetbrains.kotlin.idea.compiler.configuration;
-import com.intellij.compiler.options.ComparingUtils;
-import com.intellij.compiler.server.BuildManager;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.module.Module;
@@ -426,25 +424,25 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
@Override
public boolean isModified() {
- return ComparingUtils.isModified(reportWarningsCheckBox, !commonCompilerArguments.getSuppressWarnings()) ||
+ return isModified(reportWarningsCheckBox, !commonCompilerArguments.getSuppressWarnings()) ||
!getSelectedLanguageVersionView().equals(KotlinFacetSettingsKt.getLanguageVersionView(commonCompilerArguments)) ||
!getSelectedAPIVersionView().equals(KotlinFacetSettingsKt.getApiVersionView(commonCompilerArguments)) ||
!coroutineSupportComboBox.getSelectedItem().equals(CoroutineSupport.byCompilerArguments(commonCompilerArguments)) ||
- ComparingUtils.isModified(additionalArgsOptionsField, compilerSettings.getAdditionalArguments()) ||
- ComparingUtils.isModified(scriptTemplatesField, compilerSettings.getScriptTemplates()) ||
- ComparingUtils.isModified(scriptTemplatesClasspathField, compilerSettings.getScriptTemplatesClasspath()) ||
- ComparingUtils.isModified(copyRuntimeFilesCheckBox, compilerSettings.getCopyJsLibraryFiles()) ||
+ !additionalArgsOptionsField.getText().equals(compilerSettings.getAdditionalArguments()) ||
+ isModified(scriptTemplatesField, compilerSettings.getScriptTemplates()) ||
+ isModified(scriptTemplatesClasspathField, compilerSettings.getScriptTemplatesClasspath()) ||
+ isModified(copyRuntimeFilesCheckBox, compilerSettings.getCopyJsLibraryFiles()) ||
isModified(outputDirectory, compilerSettings.getOutputDirectoryForJsLibraryFiles()) ||
(compilerWorkspaceSettings != null &&
- (ComparingUtils.isModified(enablePreciseIncrementalCheckBox, compilerWorkspaceSettings.getPreciseIncrementalEnabled()) ||
- ComparingUtils.isModified(keepAliveCheckBox, compilerWorkspaceSettings.getEnableDaemon()))) ||
+ (isModified(enablePreciseIncrementalCheckBox, compilerWorkspaceSettings.getPreciseIncrementalEnabled()) ||
+ isModified(keepAliveCheckBox, compilerWorkspaceSettings.getEnableDaemon()))) ||
- ComparingUtils.isModified(generateSourceMapsCheckBox, k2jsCompilerArguments.getSourceMap()) ||
- ComparingUtils.isModified(outputPrefixFile, StringUtil.notNullize(k2jsCompilerArguments.getOutputPrefix())) ||
- ComparingUtils.isModified(outputPostfixFile, StringUtil.notNullize(k2jsCompilerArguments.getOutputPostfix())) ||
+ isModified(generateSourceMapsCheckBox, k2jsCompilerArguments.getSourceMap()) ||
+ isModified(outputPrefixFile, StringUtil.notNullize(k2jsCompilerArguments.getOutputPrefix())) ||
+ isModified(outputPostfixFile, StringUtil.notNullize(k2jsCompilerArguments.getOutputPostfix())) ||
!getSelectedModuleKind().equals(getModuleKindOrDefault(k2jsCompilerArguments.getModuleKind())) ||
- ComparingUtils.isModified(sourceMapPrefix, StringUtil.notNullize(k2jsCompilerArguments.getSourceMapPrefix())) ||
+ isModified(sourceMapPrefix, StringUtil.notNullize(k2jsCompilerArguments.getSourceMapPrefix())) ||
!getSelectedSourceMapSourceEmbedding().equals(
getSourceMapSourceEmbeddingOrDefault(k2jsCompilerArguments.getSourceMapEmbedSources())) ||
!getSelectedJvmVersion().equals(getJvmVersionOrDefault(k2jvmCompilerArguments.getJvmTarget()));
@@ -551,7 +549,9 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
KotlinCompilerSettings.Companion.getInstance(project).setSettings(compilerSettings);
}
- BuildManager.getInstance().clearState(project);
+ for (ClearBuildStateExtension extension : ClearBuildStateExtension.getExtensions()) {
+ extension.clearState(project);
+ }
}
@Override
diff --git a/idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetEditorGeneralTab.kt b/idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetEditorGeneralTab.kt
index 8227d2e1b37..0f1be48a786 100644
--- a/idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetEditorGeneralTab.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetEditorGeneralTab.kt
@@ -16,9 +16,7 @@
package org.jetbrains.kotlin.idea.facet
-import com.intellij.facet.impl.ui.libraries.DelegatingLibrariesValidatorContext
import com.intellij.facet.ui.*
-import com.intellij.facet.ui.libraries.FrameworkLibraryValidator
import com.intellij.ide.actions.ShowSettingsUtilImpl
import com.intellij.openapi.project.Project
import com.intellij.ui.DocumentAdapter
@@ -206,20 +204,14 @@ class KotlinFacetEditorGeneralTab(
val editor = EditorComponent(editorContext.project, configuration)
- private val libraryValidator: FrameworkLibraryValidator
- private val coroutineValidator = ArgumentConsistencyValidator()
-
private var enableValidation = false
init {
- libraryValidator = FrameworkLibraryValidatorWithDynamicDescription(
- DelegatingLibrariesValidatorContext(editorContext),
- validatorsManager,
- "kotlin"
- ) { editor.targetPlatformComboBox.selectedItem as TargetPlatformKind<*> }
+ for (creator in KotlinFacetValidatorCreator.EP_NAME.getExtensions()) {
+ validatorsManager.registerValidator(creator.create(editor, validatorsManager, editorContext))
+ }
- validatorsManager.registerValidator(libraryValidator)
- validatorsManager.registerValidator(coroutineValidator)
+ validatorsManager.registerValidator(ArgumentConsistencyValidator())
with(editor.compilerConfigurable) {
reportWarningsCheckBox.validateOnChange()
diff --git a/idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetValidatorCreator.kt b/idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetValidatorCreator.kt
new file mode 100644
index 00000000000..63e79d0632c
--- /dev/null
+++ b/idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetValidatorCreator.kt
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2010-2017 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jetbrains.kotlin.idea.facet
+
+import com.intellij.facet.ui.FacetEditorContext
+import com.intellij.facet.ui.FacetEditorValidator
+import com.intellij.facet.ui.FacetValidatorsManager
+import com.intellij.openapi.extensions.ExtensionPointName
+import org.jetbrains.kotlin.idea.facet.KotlinFacetEditorGeneralTab.EditorComponent
+
+abstract class KotlinFacetValidatorCreator {
+ companion object {
+ val EP_NAME: ExtensionPointName =
+ ExtensionPointName.create("org.jetbrains.kotlin.facetValidatorCreator")
+ }
+
+ abstract fun create(editor: EditorComponent, validatorsManager: FacetValidatorsManager, editorContext: FacetEditorContext): FacetEditorValidator
+}
\ No newline at end of file
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/KotlinLibraryUtil.kt b/idea/src/org/jetbrains/kotlin/idea/framework/KotlinLibraryUtil.kt
index cfeb5a5d58f..5478afa44cb 100644
--- a/idea/src/org/jetbrains/kotlin/idea/framework/KotlinLibraryUtil.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/framework/KotlinLibraryUtil.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2015 JetBrains s.r.o.
+ * Copyright 2010-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,11 +18,7 @@ package org.jetbrains.kotlin.idea.framework
import com.intellij.openapi.externalSystem.model.ProjectSystemId
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
-import com.intellij.openapi.roots.OrderRootType
import com.intellij.openapi.roots.libraries.Library
-import com.intellij.openapi.roots.libraries.LibraryPresentationProvider
-import com.intellij.openapi.roots.libraries.LibraryProperties
-import java.util.*
private val MAVEN_SYSTEM_ID = ProjectSystemId("MAVEN")
val GRADLE_SYSTEM_ID = ProjectSystemId("GRADLE")
diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/OverridenFunctionMarker.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/OverridenFunctionMarker.kt
index 6520bf301a7..3c2dbb81dcb 100644
--- a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/OverridenFunctionMarker.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/OverridenFunctionMarker.kt
@@ -136,7 +136,7 @@ private class OverridingMethodsUpdater(
override fun run(indicator: ProgressIndicator) {
super.run(indicator)
val processor = object : CommonProcessors.CollectProcessor() {
- override fun process(psiMethod: PsiMethod?): Boolean {
+ override fun process(psiMethod: PsiMethod): Boolean {
if (!updateComponent(psiMethod, myRenderer.comparator)) {
indicator.cancel()
}
diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/KotlinJUnitStaticEntryPoint.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/KotlinJUnitStaticEntryPoint.kt
index 3a2df235615..6fad578c1fa 100644
--- a/idea/src/org/jetbrains/kotlin/idea/inspections/KotlinJUnitStaticEntryPoint.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/inspections/KotlinJUnitStaticEntryPoint.kt
@@ -21,7 +21,6 @@ package org.jetbrains.kotlin.idea.inspections
import com.intellij.codeInsight.AnnotationUtil
import com.intellij.codeInspection.reference.EntryPoint
import com.intellij.codeInspection.reference.RefElement
-import com.intellij.execution.junit.JUnitUtil
import com.intellij.openapi.util.DefaultJDOMExternalizer
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiMethod
@@ -34,8 +33,8 @@ class KotlinJUnitStaticEntryPoint(@JvmField var wasSelected: Boolean = true) : E
override fun isEntryPoint(refElement: RefElement, psiElement: PsiElement) = isEntryPoint(psiElement)
- private val staticJUnitAnnotations = listOf(JUnitUtil.BEFORE_CLASS_ANNOTATION_NAME, JUnitUtil.AFTER_CLASS_ANNOTATION_NAME,
- JUnitUtil.PARAMETRIZED_PARAMETERS_ANNOTATION_NAME)
+ private val staticJUnitAnnotations = listOf("org.junit.BeforeClass", "org.junit.AfterClass",
+ "org.junit.runners.Parameterized.Parameters")
override fun isEntryPoint(psiElement: PsiElement) = psiElement is PsiMethod &&
AnnotationUtil.isAnnotated(psiElement, staticJUnitAnnotations) &&
diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/DoubleBangToIfThenIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/DoubleBangToIfThenIntention.kt
index 8469f86befd..a8e614fe79a 100644
--- a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/DoubleBangToIfThenIntention.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/DoubleBangToIfThenIntention.kt
@@ -23,8 +23,8 @@ import com.intellij.codeInsight.template.TemplateEditingAdapter
import com.intellij.codeInsight.template.TemplateManager
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.util.TextRange
+import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.PsiDocumentManager
-import org.apache.commons.lang.StringEscapeUtils.escapeJava
import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.intentions.ChooseStringExpression
import org.jetbrains.kotlin.idea.intentions.SelfTargetingRangeIntention
@@ -66,7 +66,7 @@ class DoubleBangToIfThenIntention : SelfTargetingRangeIntention item) {
- return new ComboBoxCellEditor(new JComboBox());
+ return new DefaultCellEditor(new JComboBox());
}
@Override
diff --git a/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt b/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt
index 4c44eeaf433..f6fc978994b 100644
--- a/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt
@@ -23,13 +23,14 @@ import com.intellij.openapi.module.ModuleUtil
import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.JavaSdkVersion
import com.intellij.openapi.projectRoots.Sdk
-import com.intellij.openapi.roots.*
+import com.intellij.openapi.roots.LibraryOrderEntry
+import com.intellij.openapi.roots.ModuleRootManager
+import com.intellij.openapi.roots.OrderRootType
+import com.intellij.openapi.roots.ProjectFileIndex
import com.intellij.openapi.roots.libraries.Library
import com.intellij.openapi.ui.Messages
-import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.text.StringUtil
import com.intellij.openapi.vfs.JarFileSystem
-import com.intellij.openapi.vfs.LocalFileSystem
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.JavaPsiFacade
import com.intellij.psi.PsiClass
@@ -43,7 +44,6 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.config.JvmTarget
import org.jetbrains.kotlin.config.KotlinCompilerVersion
import org.jetbrains.kotlin.idea.KotlinPluginUtil
-import org.jetbrains.kotlin.idea.configuration.*
import org.jetbrains.kotlin.idea.framework.JavaRuntimeDetectionUtil
import org.jetbrains.kotlin.idea.framework.isExternalLibrary
import org.jetbrains.kotlin.idea.util.application.runReadAction
@@ -71,82 +71,6 @@ fun getLibraryRootsWithAbiIncompatibleForKotlinJs(module: Module): Collection) {
- if (project.allModules().any { module -> KotlinPluginUtil.isMavenModule(module) }) {
- Messages.showMessageDialog(project, "Automatic library version update for Maven projects is currently unsupported. Please update your pom.xml manually.",
- "Update Kotlin Runtime Library",
- Messages.getErrorIcon())
- return
- }
-
- if (project.allModules().any { module -> KotlinPluginUtil.isGradleModule(module) }) {
- Messages.showMessageDialog(project, "Automatic library version update for Gradle projects is currently unsupported. Please update your build.gradle manually.",
- "Update Kotlin Runtime Library",
- Messages.getErrorIcon())
- return
- }
-
- val kJvmConfigurator = getConfiguratorByName(KotlinJavaModuleConfigurator.NAME) as KotlinJavaModuleConfigurator? ?:
- error("Configurator with given name doesn't exists: " + KotlinJavaModuleConfigurator.NAME)
-
- val kJsConfigurator = getConfiguratorByName(KotlinJsModuleConfigurator.NAME) as KotlinJsModuleConfigurator? ?:
- error("Configurator with given name doesn't exists: " + KotlinJsModuleConfigurator.NAME)
-
- val collector = createConfigureKotlinNotificationCollector(project)
- val sdk = ProjectRootManager.getInstance(project).projectSdk
- // TODO use module SDK
-
- for (library in libraries) {
- val libraryJarDescriptors = if (JavaRuntimeDetectionUtil.getJavaRuntimeVersion(library) != null)
- kJvmConfigurator.getLibraryJarDescriptors(sdk)
- else
- kJsConfigurator.getLibraryJarDescriptors(sdk)
-
- for (libraryJarDescriptor in libraryJarDescriptors) {
- updateJar(project, library, libraryJarDescriptor)
- }
- }
-
- collector.showNotification()
-}
-
-private fun updateJar(
- project: Project,
- library: Library,
- libraryJarDescriptor: LibraryJarDescriptor) {
- val fileToReplace = libraryJarDescriptor.findExistingJar(library)
-
- if (fileToReplace == null && !libraryJarDescriptor.shouldExist) {
- return
- }
-
- val oldUrl = fileToReplace?.url
- val jarPath: File = libraryJarDescriptor.getPathInPlugin()
-
- if (!jarPath.exists()) {
- showRuntimeJarNotFoundDialog(project, libraryJarDescriptor.jarName)
- return
- }
-
- val jarFileToReplace = getLocalJar(fileToReplace)!!
- val newVFile = replaceFile(jarPath, jarFileToReplace)
- if (newVFile != null) {
- val model = library.modifiableModel
- runWriteAction {
- try {
- if (oldUrl != null) {
- model.removeRoot(oldUrl, libraryJarDescriptor.orderRootType)
- }
- val newRoot = JarFileSystem.getInstance().getJarRootForLocalFile(newVFile)!!
- model.addRoot(newRoot, libraryJarDescriptor.orderRootType)
- }
- finally {
- model.commit()
- }
- }
- }
-}
-
fun findAllUsedLibraries(project: Project): MultiMap {
val libraries = MultiMap()
@@ -227,34 +151,6 @@ fun getLocalJar(kotlinRuntimeJar: VirtualFile?): VirtualFile? {
return kotlinRuntimeJar
}
-internal fun replaceFile(updatedFile: File, jarFileToReplace: VirtualFile): VirtualFile? {
- val jarIoFileToReplace = File(jarFileToReplace.path)
-
- if (FileUtil.filesEqual(updatedFile, jarIoFileToReplace)) {
- return null
- }
-
- FileUtil.copy(updatedFile, jarIoFileToReplace)
- if (jarIoFileToReplace.name != updatedFile.name) {
- val newFile = File(jarIoFileToReplace.parent, updatedFile.name)
- if (!newFile.exists()) {
- if (!jarIoFileToReplace.renameTo(newFile)) {
- LOG.info("Failed to rename ${jarIoFileToReplace.path} to ${newFile.path}")
- return null
- }
- val newVFile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(newFile)
- if (newVFile == null) {
- LOG.info("Failed to find ${newFile.path} in VFS")
- return null
- }
- newVFile.refresh(false, true)
- return newVFile
- }
- }
- jarFileToReplace.refresh(false, true)
- return null
-}
-
data class BinaryVersionedFile(val file: VirtualFile, val version: T, val supportedVersion: T)
private fun getLibraryRootsWithAbiIncompatibleVersion(
@@ -342,6 +238,10 @@ fun getDefaultJvmTarget(sdk: Sdk?, version: String): JvmTarget? {
return null
}
+fun isSnapshot(version: String): Boolean {
+ return version.contains("SNAPSHOT", ignoreCase = true)
+}
+
fun hasJdkLikeUpdatedRuntime(version: String): Boolean =
VersionComparatorUtil.compare(version, "1.2.0-rc-39") >= 0 ||
isSnapshot(version) ||
diff --git a/idea/testData/multiFileInspections/invalidBundleOrProperty/invalidBundleOrProperty.test b/idea/testData/multiFileInspections/invalidBundleOrProperty/invalidBundleOrProperty.test
index 3bec6249eb9..e2f1e7601b3 100644
--- a/idea/testData/multiFileInspections/invalidBundleOrProperty/invalidBundleOrProperty.test
+++ b/idea/testData/multiFileInspections/invalidBundleOrProperty/invalidBundleOrProperty.test
@@ -1,4 +1,4 @@
{
- "inspectionClass": "org.jetbrains.kotlin.idea.inspections.KotlinInvalidBundleOrPropertyInspection",
+ "inspectionClass": "org.jetbrains.kotlin.idea.i18n.inspections.KotlinInvalidBundleOrPropertyInspection",
"withRuntime": "true"
}
diff --git a/jps-plugin/build.gradle.kts b/jps-plugin/build.gradle.kts
index 4efc6140d0d..70082b729c8 100644
--- a/jps-plugin/build.gradle.kts
+++ b/jps-plugin/build.gradle.kts
@@ -13,6 +13,7 @@ dependencies {
compile(projectRuntimeJar(":kotlin-preloader"))
compile(project(":idea:idea-jps-common"))
compile(ideaSdkDeps("jps-builders", "jps-builders-6", subdir = "jps"))
+ compile(ideaSdkDeps("jps-model.jar", subdir = "jps"))
testCompileOnly(project(":kotlin-reflect-api"))
testCompile(project(":compiler:incremental-compilation-impl"))
testCompile(projectTests(":compiler:tests-common"))