diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/IntentionsPopup.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/IntentionsPopup.kt index 0cc4c50..54e6933 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/IntentionsPopup.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/IntentionsPopup.kt @@ -2,7 +2,6 @@ package com.chylex.intellij.inspectionlens.editor.lens import com.intellij.codeInsight.daemon.impl.IntentionsUI import com.intellij.codeInsight.hint.HintManager -import com.intellij.codeInsight.intention.actions.ShowIntentionActionsAction import com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler import com.intellij.lang.LangBundle import com.intellij.openapi.actionSystem.ActionManager @@ -26,7 +25,7 @@ internal object IntentionsPopup { // If the IDE uses the default Show Intentions action and handler, // use the handler directly to bypass additional logic from the action. val action = ActionManager.getInstance().getAction(IdeActions.ACTION_SHOW_INTENTION_ACTIONS) - if (action.javaClass === ShowIntentionActionsAction::class.java) { + if (action.javaClass.name === DEFAULT_ACTION_CLASS) { return tryShowWithDefaultHandler(editor) } else { @@ -46,6 +45,11 @@ internal object IntentionsPopup { return true } + /** + * New IDEA versions mark this class as internal, so the plugin verifier flags references to it as errors. + */ + const val DEFAULT_ACTION_CLASS = "com.intellij.codeInsight.intention.actions.ShowIntentionActionsAction" + private val HANDLER = object : ShowIntentionActionsHandler() { public override fun showIntentionHint(project: Project, editor: Editor, file: PsiFile, showFeedbackOnEmptyMenu: Boolean) { super.showIntentionHint(project, editor, file, showFeedbackOnEmptyMenu) diff --git a/src/test/kotlin/com/chylex/intellij/inspectionlens/editor/lens/IntentionsPopupTest.kt b/src/test/kotlin/com/chylex/intellij/inspectionlens/editor/lens/IntentionsPopupTest.kt new file mode 100644 index 0000000..a3c8e73 --- /dev/null +++ b/src/test/kotlin/com/chylex/intellij/inspectionlens/editor/lens/IntentionsPopupTest.kt @@ -0,0 +1,12 @@ +package com.chylex.intellij.inspectionlens.editor.lens + +import com.intellij.codeInsight.intention.actions.ShowIntentionActionsAction +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Test + +class IntentionsPopupTest { + @Test + fun showIntentionActionsActionClassHasNotChanged() { + assertEquals(IntentionsPopup.DEFAULT_ACTION_CLASS, ShowIntentionActionsAction::class.java.name) + } +}