mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Make Kotlin run test gutter icons consistent with Java ones
GitOrigin-RevId: dd5aa78ca16e0e780fd80984d4e46d638ba79979
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7d5351896a
commit
eeb345a0d7
+9
-17
@@ -8,10 +8,7 @@ package org.jetbrains.kotlin.idea.highlighter
|
||||
import com.intellij.execution.TestStateStorage
|
||||
import com.intellij.execution.lineMarker.ExecutorAction
|
||||
import com.intellij.execution.lineMarker.RunLineMarkerContributor
|
||||
import com.intellij.execution.testframework.TestIconMapper
|
||||
import com.intellij.execution.testframework.sm.runner.states.TestStateInfo
|
||||
import com.intellij.icons.AllIcons
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.util.Function
|
||||
import org.jetbrains.kotlin.idea.KotlinBundle
|
||||
@@ -36,23 +33,18 @@ class KotlinTestRunLineMarkerContributor : RunLineMarkerContributor() {
|
||||
companion object {
|
||||
fun getTestStateIcon(
|
||||
urls: List<String>,
|
||||
project: Project,
|
||||
strict: Boolean,
|
||||
defaultIcon: Icon = AllIcons.RunConfigurations.TestState.Run
|
||||
declaration: KtNamedDeclaration,
|
||||
defaultIcon: Icon = AllIcons.RunConfigurations.TestState.Run,
|
||||
): Icon? {
|
||||
for (url in urls) {
|
||||
val state = TestStateStorage.getInstance(project).getState(url) ?: continue
|
||||
|
||||
return when (TestIconMapper.getMagnitude(state.magnitude)) {
|
||||
TestStateInfo.Magnitude.ERROR_INDEX,
|
||||
TestStateInfo.Magnitude.FAILED_INDEX -> AllIcons.RunConfigurations.TestState.Red2
|
||||
TestStateInfo.Magnitude.PASSED_INDEX,
|
||||
TestStateInfo.Magnitude.COMPLETE_INDEX -> AllIcons.RunConfigurations.TestState.Green2
|
||||
else -> defaultIcon
|
||||
val testStateStorage = TestStateStorage.getInstance(declaration.project)
|
||||
val isClass = declaration is KtClass
|
||||
var state: TestStateStorage.Record? = run {
|
||||
for (url in urls) {
|
||||
testStateStorage.getState(url)?.let { return@run it }
|
||||
}
|
||||
null
|
||||
}
|
||||
|
||||
return if (strict) null else defaultIcon
|
||||
return getTestStateIcon(state, isClass)
|
||||
}
|
||||
|
||||
fun SimplePlatform.providesRunnableTests(): Boolean {
|
||||
|
||||
+3
-6
@@ -22,10 +22,7 @@ import org.jetbrains.kotlin.idea.platform.testintegration.NoLightTestFrameworkRe
|
||||
import org.jetbrains.kotlin.idea.platform.testintegration.ResolvedLightTestFrameworkResult
|
||||
import org.jetbrains.kotlin.idea.platform.testintegration.UnsureLightTestFrameworkResult
|
||||
import org.jetbrains.kotlin.platform.impl.JvmIdePlatformKind
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
import org.jetbrains.kotlin.psi.KtFunction
|
||||
import org.jetbrains.kotlin.psi.KtNamedDeclaration
|
||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.utils.PathUtil
|
||||
import javax.swing.Icon
|
||||
|
||||
@@ -76,12 +73,12 @@ class JvmIdePlatformKindTooling : IdePlatformKindTooling() {
|
||||
val (urls, framework) = calculateUrlsToFramework(declaration) ?: return null
|
||||
|
||||
framework?.let {
|
||||
return getTestStateIcon(urls, declaration.project, strict = false, it.icon)
|
||||
return getTestStateIcon(urls, declaration, defaultIcon = it.icon)
|
||||
}
|
||||
|
||||
descriptorProvider()?.takeIf { it.isKotlinTestDeclaration() } ?: return null
|
||||
|
||||
return getTestStateIcon(urls, declaration.project, strict = false)
|
||||
return getTestStateIcon(urls, declaration)
|
||||
}
|
||||
|
||||
override fun acceptsAsEntryPoint(function: KtFunction) = true
|
||||
|
||||
@@ -59,7 +59,7 @@ fun getGenericTestIcon(
|
||||
val prefix = if (testName != null) "test://" else "suite://"
|
||||
val url = prefix + locations.joinWithEscape('.')
|
||||
|
||||
return getTestStateIcon(listOf("java:$url", url), declaration.project, strict = false)
|
||||
return getTestStateIcon(listOf("java:$url", url), declaration)
|
||||
}
|
||||
|
||||
private tailrec fun DeclarationDescriptor.isIgnored(): Boolean {
|
||||
|
||||
+1
-1
@@ -72,7 +72,7 @@ class NativeIdePlatformKindTooling : IdePlatformKindTooling() {
|
||||
else -> return null
|
||||
}
|
||||
|
||||
return getTestStateIcon(urls, declaration.project, strict = false)
|
||||
return getTestStateIcon(urls, declaration)
|
||||
}
|
||||
|
||||
override fun acceptsAsEntryPoint(function: KtFunction): Boolean {
|
||||
|
||||
Reference in New Issue
Block a user