Skip to content

Instantly share code, notes, and snippets.

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)) }
@dkandalov
dkandalov / plugin.kts
Created October 14, 2022 08:36
Example of ReferencerContributor added via LivePlugin (https://github.com/dkandalov/live-plugin/issues/146)
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
@dkandalov
dkandalov / plugin.kts
Last active October 19, 2022 10:56
Examples of using run configs in IntelliJ API
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
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)
@dkandalov
dkandalov / plugin.kts
Last active April 1, 2022 14:00
Example of collapsable function/constructor arguments for Kotlin (see https://youtrack.jetbrains.com/issue/KTIJ-14710); use liveplugin to execute https://github.com/dkandalov/live-plugin
import com.intellij.lang.ASTNode
import com.intellij.lang.LanguageExtensionPoint
import com.intellij.lang.folding.CustomFoldingBuilder
import com.intellij.lang.folding.FoldingBuilder
import com.intellij.lang.folding.FoldingDescriptor
import com.intellij.lang.folding.LanguageFolding
import com.intellij.openapi.editor.Document
import com.intellij.openapi.extensions.DefaultPluginDescriptor
import com.intellij.openapi.extensions.PluginId
import com.intellij.openapi.project.DumbAware
import com.intellij.ui.EditorNotificationsImpl
import liveplugin.show
import org.jetbrains.kotlin.idea.highlighter.KotlinHighlightingSuspendNotificationProvider
// depends-on-plugin org.jetbrains.kotlin
EditorNotificationsImpl.EP_PROJECT.getPoint(project!!)
.unregisterExtension(KotlinHighlightingSuspendNotificationProvider::class.java)
if (!isIdeStartup) show("Disabled notification 'Highlighting is temporary suspended for file due to internal error'")