casid / jte-intellij

IntelliJ plugin for jte template files.
https://github.com/casid/jte
Apache License 2.0
21 stars 4 forks source link

Exception on "Add import for" #34

Closed casid closed 2 weeks ago

casid commented 11 months ago

Noticed in IntelliJ 2023.2.2, when having a nested class inside a jte template, for instance @param Foo.Bar bar and alt+enter => "Add import for Foo.Bar" causes an exception and does not add an import for this class.

java.lang.IllegalArgumentException: Argument for @NotNull parameter 'file' of com/intellij/openapi/fileEditor/impl/FileDocumentManagerBase.getDocument must not be null
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerBase.$$$reportNull$$$0(FileDocumentManagerBase.java)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerBase.getDocument(FileDocumentManagerBase.java)
    at org.jusecase.jte.intellij.language.JteJavaContentManipulator.handleContentChange(JteJavaContentManipulator.java:19)
    at org.jusecase.jte.intellij.language.JteJavaContentManipulator.handleContentChange(JteJavaContentManipulator.java:15)
    at com.intellij.psi.ElementManipulators.handleContentChange(ElementManipulators.java:68)
    at com.intellij.psi.impl.source.tree.injected.changesHandler.CommonInjectedFileChangesHandler.updateHostElement(CommonInjectedFileChangesHandler.kt:175)
    at com.intellij.psi.impl.source.tree.injected.changesHandler.CommonInjectedFileChangesHandler.updateHostOrFail(CommonInjectedFileChangesHandler.kt:154)
    at com.intellij.psi.impl.source.tree.injected.changesHandler.CommonInjectedFileChangesHandler.commitToOriginal(CommonInjectedFileChangesHandler.kt:127)
    at com.intellij.codeInsight.intention.impl.InjectionEditServiceImpl$1.documentChanged(InjectionEditServiceImpl.java:35)
    at com.intellij.openapi.editor.impl.DocumentImpl.lambda$changedUpdate$1(DocumentImpl.java:913)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeNonCancelableSection$3(CoreProgressManager.java:222)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:628)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$computeInNonCancelableSection$4(CoreProgressManager.java:230)
    at com.intellij.openapi.progress.Cancellation.computeInNonCancelableSection(Cancellation.java:60)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:230)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:221)
    at com.intellij.openapi.editor.impl.DocumentImpl.changedUpdate(DocumentImpl.java:910)
    at com.intellij.openapi.editor.impl.DocumentImpl.updateText(DocumentImpl.java:814)
    at com.intellij.openapi.editor.impl.DocumentImpl.replaceString(DocumentImpl.java:654)
    at com.intellij.openapi.editor.impl.DocumentImpl.replaceString(DocumentImpl.java:591)
    at com.intellij.psi.formatter.DocumentBasedFormattingModel.replaceWhiteSpace(DocumentBasedFormattingModel.java:151)
    at com.intellij.formatting.engine.FormatProcessorUtils.replaceWhiteSpace(FormatProcessorUtils.java:31)
    at com.intellij.formatting.engine.ApplyChangesState.doIteration(ApplyChangesState.java:175)
    at com.intellij.formatting.engine.State.iteration(State.java:25)
    at com.intellij.formatting.engine.StateProcessor.iteration(StateProcessor.java:26)
    at com.intellij.formatting.FormatProcessor.iteration(FormatProcessor.java:108)
    at com.intellij.formatting.FormatterImpl$MyFormattingTask.iteration(FormatterImpl.java:690)
    at com.intellij.formatting.FormatterImpl.execute(FormatterImpl.java:268)
    at com.intellij.formatting.FormatterImpl.format(FormatterImpl.java:235)
    at com.intellij.psi.impl.source.codeStyle.CodeFormatterFacade.processText(CodeFormatterFacade.java:196)
    at com.intellij.formatting.service.CoreFormattingService.formatRanges(CoreFormattingService.java:63)
    at com.intellij.psi.impl.source.PostprocessReformattingAspectImpl$ReformatRangesAction.execute(PostprocessReformattingAspectImpl.java:814)
    at com.intellij.psi.impl.source.PostprocessReformattingAspectImpl.lambda$doPostponedFormattingInner$9(PostprocessReformattingAspectImpl.java:423)
    at com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.runWithDocCommentFormattingDisabled(CodeStyleManagerImpl.java:494)
    at com.intellij.psi.impl.source.PostprocessReformattingAspectImpl.doPostponedFormattingInner(PostprocessReformattingAspectImpl.java:422)
    at com.intellij.psi.impl.source.PostprocessReformattingAspectImpl.lambda$doPostponedFormatting$7(PostprocessReformattingAspectImpl.java:299)
    at com.intellij.psi.impl.source.PostprocessReformattingAspectImpl.lambda$disablePostprocessFormattingInside$1(PostprocessReformattingAspectImpl.java:120)
    at com.intellij.psi.impl.source.PostprocessReformattingAspectImpl.disablePostprocessFormattingInside(PostprocessReformattingAspectImpl.java:129)
    at com.intellij.psi.impl.source.PostprocessReformattingAspectImpl.disablePostprocessFormattingInside(PostprocessReformattingAspectImpl.java:119)
    at com.intellij.psi.impl.source.PostprocessReformattingAspectImpl.lambda$doPostponedFormatting$8(PostprocessReformattingAspectImpl.java:299)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeNonCancelableSection$3(CoreProgressManager.java:222)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$computeInNonCancelableSection$4(CoreProgressManager.java:230)
    at com.intellij.openapi.progress.Cancellation.computeInNonCancelableSection(Cancellation.java:64)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:230)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:221)
    at com.intellij.psi.impl.source.PostprocessReformattingAspectImpl.doPostponedFormatting(PostprocessReformattingAspectImpl.java:297)
    at com.intellij.psi.impl.source.PostprocessReformattingAspectImpl.doPostponedFormatting(PostprocessReformattingAspectImpl.java:282)
    at com.intellij.psi.impl.source.PostprocessReformattingAspectImpl.decrementPostponedCounter(PostprocessReformattingAspectImpl.java:181)
    at com.intellij.psi.impl.source.PostprocessReformattingAspectImpl.postponeFormattingInside(PostprocessReformattingAspectImpl.java:152)
    at com.intellij.psi.impl.source.PostprocessReformattingAspectImpl.postponeFormattingInside(PostprocessReformattingAspectImpl.java:139)
    at com.intellij.codeInspection.ModCommands.psiUpdate(ModCommands.java:118)
    at com.intellij.codeInspection.ModCommands.psiUpdate(ModCommands.java:145)
    at com.intellij.codeInspection.PsiUpdateModCommandAction.perform(PsiUpdateModCommandAction.java:42)
    at com.intellij.modcommand.PsiBasedModCommandAction.generatePreview(PsiBasedModCommandAction.java:98)
    at com.intellij.modcommand.PsiBasedModCommandAction.generatePreview(PsiBasedModCommandAction.java:88)
    at com.intellij.codeInsight.intention.impl.preview.IntentionPreviewComputable.getModActionPreview$lambda$5(IntentionPreviewComputable.kt:166)
    at com.intellij.model.SideEffectGuard.computeWithAllowedSideEffects(SideEffectGuard.java:25)
    at com.intellij.model.SideEffectGuard.computeWithoutSideEffects(SideEffectGuard.java:18)
    at com.intellij.codeInsight.intention.impl.preview.IntentionPreviewComputable.getModActionPreview(IntentionPreviewComputable.kt:165)
    at com.intellij.codeInsight.intention.impl.preview.IntentionPreviewComputable.invokePreview(IntentionPreviewComputable.kt:97)
    at com.intellij.codeInsight.intention.impl.preview.IntentionPreviewComputable.generatePreview(IntentionPreviewComputable.kt:89)
    at com.intellij.codeInsight.intention.impl.preview.IntentionPreviewComputable.tryCreateDiffContent(IntentionPreviewComputable.kt:65)
    at com.intellij.codeInsight.intention.impl.preview.IntentionPreviewComputable.call(IntentionPreviewComputable.kt:43)
    at com.intellij.codeInsight.intention.impl.preview.IntentionPreviewComputable.call(IntentionPreviewComputable.kt:38)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor.callWrapped(NonBlockingReadActionImpl.java:832)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor$MonitoredComputation.call(NonBlockingReadActionImpl.java:864)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:602)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$4(NonBlockingReadActionImpl.java:565)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1133)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:76)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:63)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:133)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:114)
    at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:71)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
    at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:71)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:111)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:76)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:565)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$1(NonBlockingReadActionImpl.java:466)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$2(NonBlockingReadActionImpl.java:481)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
    at java.base/java.lang.Thread.run(Thread.java:833)
casid commented 7 months ago

The exception itself is fixed. Unfortunately automatically importing nested classes still does not work. See #44