nbadal / ktlint-intellij-plugin

Ktlint plugin for IntelliJ IDEA + Android Studio
MIT License
157 stars 23 forks source link

Adding suppression results in exception #423

Closed paul-dingemans closed 8 months ago

paul-dingemans commented 8 months ago

Given code below:

fun foo() {
    require(
        true && false ||
            true,
    )
}

This code contains violations below:

src/main/kotlin/Foo.kt:3:17: Newline expected before operand in multiline condition (standard:condition-wrapping)

When suppressing error above with ktlint-intelli-plugin this results in exception below:

java.lang.IllegalStateException: Can not create annotation '@Suppress("ktlint:standard:indent")'
    at com.pinterest.ktlint.rule.engine.internal.KtlintSuppressionKt.createAnnotatedExpression(KtlintSuppression.kt:376)
    at com.pinterest.ktlint.rule.engine.internal.KtlintSuppressionKt.createSuppressAnnotation(KtlintSuppression.kt:281)
    at com.pinterest.ktlint.rule.engine.internal.KtlintSuppressionKt.insertKtlintRuleSuppression(KtlintSuppression.kt:94)
    at com.pinterest.ktlint.rule.engine.internal.KtlintSuppressionKt.insertKtlintRuleSuppression$default(KtlintSuppression.kt:65)
    at com.pinterest.ktlint.rule.engine.api.KtlintRuleEngineSuppressionKt.insertSuppression(KtlintRuleEngineSuppression.kt:30)
    at com.nbadal.ktlint.actions.KtlintRuleSuppressIntention.invoke(KtlintRuleSuppressIntention.kt:66)
    at com.intellij.codeInsight.intention.impl.IntentionActionWithTextCaching$MyIntentionAction.lambda$invoke$0(IntentionActionWithTextCaching.java:229)
    at com.intellij.util.SlowOperations.allowSlowOperations(SlowOperations.java:147)
    at com.intellij.codeInsight.intention.impl.IntentionActionWithTextCaching$MyIntentionAction.invoke(IntentionActionWithTextCaching.java:229)
    at com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler.lambda$invokeIntention$4(ShowIntentionActionsHandler.java:263)
    at com.intellij.openapi.application.WriteAction.lambda$run$1(WriteAction.java:86)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:935)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:961)
    at com.intellij.openapi.application.WriteAction.run(WriteAction.java:85)
    at com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler.invokeIntention(ShowIntentionActionsHandler.java:263)
    at com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler.lambda$chooseActionAndInvoke$3(ShowIntentionActionsHandler.java:239)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:219)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:174)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:164)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:150)
    at com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler.chooseActionAndInvoke(ShowIntentionActionsHandler.java:238)
    at com.intellij.codeInsight.intention.impl.IntentionListStep.chooseActionAndInvoke(IntentionListStep.java:134)
    at com.intellij.codeInsight.intention.impl.IntentionListStep.lambda$applyAction$3(IntentionListStep.java:126)
    at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
    at com.intellij.ui.popup.AbstractPopup.lambda$dispose$18(AbstractPopup.java:1508)
    at com.intellij.util.ui.EdtInvocationManager.invokeLaterIfNeeded(EdtInvocationManager.java:101)
    at com.intellij.ide.IdeEventQueue.ifFocusEventsInTheQueue(IdeEventQueue.java:186)
    at com.intellij.ide.IdeEventQueue.executeWhenAllFocusEventsLeftTheQueue(IdeEventQueue.java:140)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:175)
    at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.doWhenFocusSettlesDown(IdeFocusManagerImpl.java:36)
    at com.intellij.ui.popup.AbstractPopup.dispose(AbstractPopup.java:1505)
    at com.intellij.ui.popup.WizardPopup.dispose(WizardPopup.java:164)
    at com.intellij.ui.popup.list.ListPopupImpl.dispose(ListPopupImpl.java:326)
    at com.intellij.openapi.util.ObjectTree.runWithTrace(ObjectTree.java:136)
    at com.intellij.openapi.util.ObjectTree.executeAll(ObjectTree.java:166)
    at com.intellij.openapi.util.Disposer.dispose(Disposer.java:169)
    at com.intellij.openapi.util.Disposer.dispose(Disposer.java:157)
    at com.intellij.ui.popup.WizardPopup.disposeAllParents(WizardPopup.java:268)
    at com.intellij.ui.popup.list.ListPopupImpl.handleNextStep(ListPopupImpl.java:433)
    at com.intellij.ui.popup.list.ListPopupImpl._handleSelect(ListPopupImpl.java:405)
    at com.intellij.ui.popup.list.ListPopupImpl.handleSelect(ListPopupImpl.java:356)
    at com.intellij.ui.popup.list.ListPopupImpl$1.actionPerformed(ListPopupImpl.java:270)
    at com.intellij.ui.popup.WizardPopup.proceedKeyEvent(WizardPopup.java:380)
    at com.intellij.ui.popup.WizardPopup.dispatch(WizardPopup.java:356)
    at com.intellij.ui.popup.PopupDispatcher.dispatchKeyEvent(PopupDispatcher.java:112)
    at com.intellij.ui.popup.PopupDispatcher.dispatch(PopupDispatcher.java:148)
    at com.intellij.ide.IdePopupManager.dispatch(IdePopupManager.java:101)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:724)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:498)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

Expected behavior:

paul-dingemans commented 8 months ago

Will be fixed by https://github.com/pinterest/ktlint/pull/2463