References for the Refactoring Gilded Rose Kata at JAX London 2022:
- Gilded Rose Refactoring Kata
- Branch with the solution from the JAX talk
- Strong-style pairing
- Duncan's YouTube and Twitter
- Dmitry's YouTube and Twitter
import com.intellij.execution.testframework.sm.runner.SMTRunnerEventsAdapter | |
import com.intellij.execution.testframework.sm.runner.SMTRunnerEventsListener | |
import com.intellij.execution.testframework.sm.runner.SMTestProxy | |
import com.intellij.openapi.Disposable | |
import com.intellij.openapi.progress.util.ColorProgressBar | |
import com.intellij.openapi.project.Project | |
import com.intellij.openapi.ui.popup.Balloon.Position.above | |
import com.intellij.openapi.ui.popup.JBPopupFactory | |
import com.intellij.openapi.util.Disposer |
import Plugin.SuppressInspectionTillCommit.Companion.resetSuppressions | |
import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer | |
import com.intellij.codeInspection.InspectionSuppressor | |
import com.intellij.codeInspection.ProblemDescriptor | |
import com.intellij.codeInspection.SuppressQuickFix | |
import com.intellij.lang.LanguageExtensionPoint | |
import com.intellij.openapi.extensions.DefaultPluginDescriptor | |
import com.intellij.openapi.extensions.PluginId | |
import com.intellij.openapi.project.Project |
import com.intellij.diagnostic.MessagePool | |
// A mini-plugin to disable all internal IDE errors | |
MessagePool.getInstance().addListener { | |
MessagePool.getInstance().clearErrors() | |
} |
import com.intellij.application.subscribe | |
import com.intellij.ide.ui.LafManagerListener | |
import com.intellij.ui.Gray | |
import com.intellij.ui.JBColor | |
import com.intellij.util.ui.JBInsets | |
import javax.swing.UIManager | |
fun fixUI() { | |
// You can find more constants in: | |
// - https://github.com/JetBrains/intellij-community/blob/master/platform/util/ui/src/com/intellij/util/ui/JBUI.java |
import com.intellij.ide.ui.LafManager | |
import com.intellij.ide.ui.LafManagerListener | |
import com.intellij.openapi.application.ApplicationManager | |
import com.intellij.ui.Gray | |
import com.intellij.ui.JBColor | |
import com.intellij.util.ui.JBInsets | |
import liveplugin.PluginUtil | |
import org.jetbrains.annotations.NotNull | |
import javax.swing.UIManager | |
import static liveplugin.PluginUtil.* |
import com.intellij.ui.JBColor | |
import com.intellij.util.ui.JBUI | |
import liveplugin.allSuperClasses | |
import java.awt.Color | |
import java.util.function.Supplier | |
inline fun <reified T> Any.setField(name: String, value: T) { | |
val allFields = javaClass.allSuperClasses().flatMap { it.declaredFields.toList() } | |
val fieldClass = T::class.java | |
val field = allFields.find { it.name == name && (fieldClass.isAssignableFrom(it.type)) } |
import com.intellij.openapi.extensions.DefaultPluginDescriptor | |
import com.intellij.openapi.extensions.PluginId | |
import com.intellij.openapi.paths.WebReference | |
import com.intellij.openapi.util.TextRange | |
import com.intellij.patterns.PlatformPatterns | |
import com.intellij.psi.* | |
import com.intellij.psi.impl.source.resolve.reference.PsiReferenceContributorEP | |
import com.intellij.util.ProcessingContext | |
import org.jetbrains.kotlin.psi.KtStringTemplateExpression |
import com.intellij.coverage.CoverageExecutor | |
import com.intellij.execution.ExecutorRegistry | |
import com.intellij.execution.RunManager | |
import com.intellij.execution.RunnerAndConfigurationSettings | |
import com.intellij.execution.application.ApplicationConfiguration | |
import com.intellij.execution.application.ApplicationConfigurationType | |
import com.intellij.execution.executors.DefaultDebugExecutor | |
import com.intellij.execution.executors.DefaultRunExecutor | |
import com.intellij.execution.junit.JUnitConfiguration | |
import com.intellij.execution.junit.JUnitConfigurationType |
References for the Refactoring Gilded Rose Kata at JAX London 2022:
import com.intellij.openapi.actionSystem.* | |
val newElementActionGroup = ActionManager.getInstance().getAction(IdeActions.GROUP_NEW) as DefaultActionGroup | |
val newKotlinFileAction = ActionManager.getInstance().getAction("Kotlin.NewFile") as AnAction | |
newElementActionGroup.remove(newKotlinFileAction) | |
newElementActionGroup.add(newKotlinFileAction, Constraints.FIRST) |