Kotlin Ultimate: Add "Build" action to JS run configurations
#KT-20522 Fixed
This commit is contained in:
+2
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.idea.js.jsTestOutputFilePath
|
||||
import org.jetbrains.kotlin.idea.nodejs.TestElementInfo
|
||||
import org.jetbrains.kotlin.idea.nodejs.TestElementPath
|
||||
import org.jetbrains.kotlin.idea.nodejs.getNodeJsEnvironmentVars
|
||||
import org.jetbrains.kotlin.idea.run.addBuildTask
|
||||
import org.jetbrains.kotlin.idea.util.projectStructure.module
|
||||
|
||||
private typealias JestTestElementInfo = TestElementInfo<JestRunSettings>
|
||||
@@ -94,6 +95,7 @@ class KotlinJestRunConfigurationProducer : JestRunConfigurationProducer() {
|
||||
configuration.runSettings = runSettings
|
||||
sourceElement.set(enclosingTestElement)
|
||||
configuration.setGeneratedName()
|
||||
configuration.addBuildTask()
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.idea.nodejs
|
||||
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.roots.ModuleRootManager
|
||||
import com.intellij.psi.PsiDirectory
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.idea.util.projectStructure.getModuleDir
|
||||
@@ -24,7 +25,10 @@ sealed class TestElementPath {
|
||||
|
||||
companion object {
|
||||
fun isModuleAssociatedDir(element: PsiElement, module: Module): Boolean {
|
||||
return element is PsiDirectory && module.getModuleDir() == element.virtualFile.path
|
||||
if (element !is PsiDirectory) return false
|
||||
val virtualFile = element.virtualFile
|
||||
return (module.getModuleDir() == virtualFile.path
|
||||
|| virtualFile == ModuleRootManager.getInstance(module).contentRoots.singleOrNull())
|
||||
}
|
||||
|
||||
fun forElement(element: PsiElement, module: Module): TestElementPath? {
|
||||
|
||||
+2
@@ -35,6 +35,7 @@ import org.jetbrains.kotlin.idea.js.jsTestOutputFilePath
|
||||
import org.jetbrains.kotlin.idea.nodejs.TestElementInfo
|
||||
import org.jetbrains.kotlin.idea.nodejs.TestElementPath
|
||||
import org.jetbrains.kotlin.idea.nodejs.getNodeJsEnvironmentVars
|
||||
import org.jetbrains.kotlin.idea.run.addBuildTask
|
||||
import org.jetbrains.kotlin.idea.util.projectStructure.module
|
||||
|
||||
private typealias MochaTestElementInfo = TestElementInfo<MochaRunSettings>
|
||||
@@ -155,6 +156,7 @@ class KotlinMochaRunConfigurationProducer : MochaRunConfigurationProducer() {
|
||||
configuration.runSettings = runSettings
|
||||
sourceElement.set(enclosingTestElement)
|
||||
configuration.setGeneratedName()
|
||||
configuration.addBuildTask()
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@ import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.roots.CompilerModuleExtension
|
||||
import com.intellij.openapi.roots.ModuleRootManager
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import org.jetbrains.kotlin.idea.framework.isGradleModule
|
||||
import org.jetbrains.kotlin.idea.js.shouldUseJpsOutput
|
||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
@@ -32,7 +32,7 @@ private fun addSingleModulePaths(target: Module, result: MutableList<String>) {
|
||||
}
|
||||
|
||||
private fun getNodeJsClasspath(module: Module): List<String> {
|
||||
if (module.isGradleModule()) return emptyList()
|
||||
if (!module.shouldUseJpsOutput) return emptyList()
|
||||
|
||||
val result = ArrayList<String>()
|
||||
ModuleRootManager.getInstance(module).orderEntries().recursively().forEachModule {
|
||||
|
||||
+2
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.idea.js.jsOrJsImpl
|
||||
import org.jetbrains.kotlin.idea.js.jsTestOutputFilePath
|
||||
import org.jetbrains.kotlin.idea.nodejs.TestElementPath
|
||||
import org.jetbrains.kotlin.idea.nodejs.getNodeJsEnvironmentVars
|
||||
import org.jetbrains.kotlin.idea.run.addBuildTask
|
||||
import org.jetbrains.kotlin.idea.util.projectStructure.module
|
||||
|
||||
class KotlinProtractorRunConfigurationProducer :
|
||||
@@ -57,6 +58,7 @@ class KotlinProtractorRunConfigurationProducer :
|
||||
envData = jsModule.getNodeJsEnvironmentVars()
|
||||
)
|
||||
configuration.name = configuration.suggestedName()
|
||||
configuration.addBuildTask()
|
||||
return true
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user