mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[Kotlin, Wasm] Add test icons for Kotlin Wasm tests
^KTIJ-34663 fixed GitOrigin-RevId: c163c30075d30372a7ed8768912b763f0119b63f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
47e8bd16ae
commit
0dab7529c5
+26
-1
@@ -1,6 +1,8 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.kotlin.idea.base.codeInsight.tooling
|
||||
|
||||
import com.intellij.execution.actions.RunConfigurationProducer
|
||||
import com.intellij.util.SmartList
|
||||
import org.jetbrains.kotlin.idea.base.platforms.KotlinWasmJsLibraryKind
|
||||
import org.jetbrains.kotlin.idea.base.platforms.KotlinWasmWasiLibraryKind
|
||||
import org.jetbrains.kotlin.idea.projectModel.KotlinPlatform
|
||||
@@ -10,6 +12,8 @@ import org.jetbrains.kotlin.psi.KtFunction
|
||||
import org.jetbrains.kotlin.psi.KtNamedDeclaration
|
||||
import javax.swing.Icon
|
||||
|
||||
interface KotlinWasmRunConfigurationDataProvider
|
||||
|
||||
abstract class AbstractWasmIdePlatformKindTooling : IdePlatformKindTooling() {
|
||||
|
||||
override val mavenLibraryIds: List<String> get() = emptyList<String>()
|
||||
@@ -18,7 +22,28 @@ abstract class AbstractWasmIdePlatformKindTooling : IdePlatformKindTooling() {
|
||||
|
||||
override fun acceptsAsEntryPoint(function: KtFunction): Boolean = false
|
||||
|
||||
override fun getTestIcon(declaration: KtNamedDeclaration, allowSlowOperations: Boolean): Icon? = null
|
||||
override fun getTestIcon(declaration: KtNamedDeclaration, allowSlowOperations: Boolean): Icon? {
|
||||
if (!allowSlowOperations) {
|
||||
return null
|
||||
}
|
||||
|
||||
val initialLocations = computeInitialIconLocations(declaration) ?: return null
|
||||
return testIconProvider.getGenericTestIcon(declaration, initialLocations)
|
||||
}
|
||||
|
||||
private fun computeInitialIconLocations(declaration: KtNamedDeclaration): List<String>? {
|
||||
val hasWasmConfigurationProviders = RunConfigurationProducer
|
||||
.getProducers(declaration.project)
|
||||
.asSequence()
|
||||
.filterIsInstance<KotlinWasmRunConfigurationDataProvider>()
|
||||
.any()
|
||||
|
||||
if (!hasWasmConfigurationProviders) return null
|
||||
|
||||
val location = declaration.containingKtFile.packageFqName.asString()
|
||||
|
||||
return SmartList(location)
|
||||
}
|
||||
}
|
||||
|
||||
abstract class AbstractWasmJsIdePlatformKindTooling : AbstractWasmIdePlatformKindTooling() {
|
||||
|
||||
@@ -92,6 +92,10 @@
|
||||
id="kotlinGradleTaskRunLineMarkerProvider" language="kotlin"/>
|
||||
<runConfigurationProducer implementation="org.jetbrains.kotlin.idea.gradleJava.testing.js.KotlinMultiplatformJsTestClassGradleConfigurationProducer"/>
|
||||
<runConfigurationProducer implementation="org.jetbrains.kotlin.idea.gradleJava.testing.js.KotlinMultiplatformJsTestMethodGradleConfigurationProducer"/>
|
||||
<runConfigurationProducer implementation="org.jetbrains.kotlin.idea.gradleJava.testing.wasm.KotlinMultiplatformWasmJsTestClassGradleConfigurationProducer"/>
|
||||
<runConfigurationProducer implementation="org.jetbrains.kotlin.idea.gradleJava.testing.wasm.KotlinMultiplatformWasmJsTestMethodGradleConfigurationProducer"/>
|
||||
<runConfigurationProducer implementation="org.jetbrains.kotlin.idea.gradleJava.testing.wasm.KotlinMultiplatformWasmWasiTestClassGradleConfigurationProducer"/>
|
||||
<runConfigurationProducer implementation="org.jetbrains.kotlin.idea.gradleJava.testing.wasm.KotlinMultiplatformWasmWasiTestMethodGradleConfigurationProducer"/>
|
||||
<runConfigurationProducer implementation="org.jetbrains.kotlin.idea.gradleJava.testing.native.KotlinMultiplatformNativeTestClassGradleConfigurationProducer"/>
|
||||
<runConfigurationProducer implementation="org.jetbrains.kotlin.idea.gradleJava.testing.native.KotlinMultiplatformNativeTestMethodGradleConfigurationProducer"/>
|
||||
<runConfigurationProducer implementation="org.jetbrains.kotlin.idea.gradleJava.testing.common.KotlinMultiplatformCommonTestClassGradleConfigurationProducer"/>
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
|
||||
package org.jetbrains.kotlin.idea.gradleJava.testing.wasm
|
||||
|
||||
import com.intellij.openapi.module.Module
|
||||
import org.jetbrains.kotlin.idea.base.codeInsight.tooling.KotlinWasmRunConfigurationDataProvider
|
||||
import org.jetbrains.kotlin.idea.gradleJava.run.AbstractKotlinMultiplatformTestClassGradleConfigurationProducer
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
import org.jetbrains.kotlin.platform.wasm.isWasmJs
|
||||
|
||||
class KotlinMultiplatformWasmJsTestClassGradleConfigurationProducer
|
||||
: AbstractKotlinMultiplatformTestClassGradleConfigurationProducer(), KotlinWasmRunConfigurationDataProvider {
|
||||
override fun isApplicable(module: Module, platform: TargetPlatform) = platform.isWasmJs()
|
||||
|
||||
override val hasTestFramework get() = true
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
|
||||
package org.jetbrains.kotlin.idea.gradleJava.testing.wasm
|
||||
|
||||
import com.intellij.openapi.module.Module
|
||||
import org.jetbrains.kotlin.idea.base.codeInsight.tooling.KotlinWasmRunConfigurationDataProvider
|
||||
import org.jetbrains.kotlin.idea.gradleJava.run.AbstractKotlinMultiplatformTestMethodGradleConfigurationProducer
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
import org.jetbrains.kotlin.platform.wasm.isWasmJs
|
||||
|
||||
class KotlinMultiplatformWasmJsTestMethodGradleConfigurationProducer
|
||||
: AbstractKotlinMultiplatformTestMethodGradleConfigurationProducer(), KotlinWasmRunConfigurationDataProvider {
|
||||
override fun isApplicable(module: Module, platform: TargetPlatform) = platform.isWasmJs()
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
|
||||
package org.jetbrains.kotlin.idea.gradleJava.testing.wasm
|
||||
|
||||
import com.intellij.openapi.module.Module
|
||||
import org.jetbrains.kotlin.idea.base.codeInsight.tooling.KotlinWasmRunConfigurationDataProvider
|
||||
import org.jetbrains.kotlin.idea.gradleJava.run.AbstractKotlinMultiplatformTestClassGradleConfigurationProducer
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
import org.jetbrains.kotlin.platform.wasm.isWasmWasi
|
||||
|
||||
class KotlinMultiplatformWasmWasiTestClassGradleConfigurationProducer
|
||||
: AbstractKotlinMultiplatformTestClassGradleConfigurationProducer(), KotlinWasmRunConfigurationDataProvider {
|
||||
override fun isApplicable(module: Module, platform: TargetPlatform) = platform.isWasmWasi()
|
||||
|
||||
override val hasTestFramework get() = true
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
|
||||
package org.jetbrains.kotlin.idea.gradleJava.testing.wasm
|
||||
|
||||
import com.intellij.openapi.module.Module
|
||||
import org.jetbrains.kotlin.idea.base.codeInsight.tooling.KotlinWasmRunConfigurationDataProvider
|
||||
import org.jetbrains.kotlin.idea.gradleJava.run.AbstractKotlinMultiplatformTestMethodGradleConfigurationProducer
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
import org.jetbrains.kotlin.platform.wasm.isWasmWasi
|
||||
|
||||
class KotlinMultiplatformWasmWasiTestMethodGradleConfigurationProducer
|
||||
: AbstractKotlinMultiplatformTestMethodGradleConfigurationProducer(), KotlinWasmRunConfigurationDataProvider {
|
||||
override fun isApplicable(module: Module, platform: TargetPlatform) = platform.isWasmWasi()
|
||||
}
|
||||
Reference in New Issue
Block a user