Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When I hover over element in the KCL file I am seeing plugin exception - IntelliJ #51

Open
pisarenko91 opened this issue Nov 21, 2024 · 4 comments

Comments

@pisarenko91
Copy link

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

Just hover over any element in .k file plugin exception pops up.

2. What did you expect to see? (Required)

I have expected to see some description of the element, types, or expected input. Depending above what I am hovering...

3. What did you see instead (Required)

I see the standard JetBrains pop up, that we encountered a plugin exception. When I check details, below is the stack trace I am getting:

java.lang.NullPointerException: Cannot invoke "com.intellij.psi.PsiDirectory.findSubdirectory(String)" because "current" is null
at io.kusionstack.kcl.KCLUtil.getMatchedModule(KCLUtil.java:118)
at io.kusionstack.kcl.KCLUtil.resolvePkg(KCLUtil.java:80)
at io.kusionstack.kcl.KCLUtil.resolvePkg(KCLUtil.java:63)
at io.kusionstack.kcl.symbol_table.DefSymbolTableVisitor.visitImportStmt(DefSymbolTableVisitor.java:38)
at io.kusionstack.kcl.psi.impl.KCLImportStmtImpl.accept(KCLImportStmtImpl.java:21)
at io.kusionstack.kcl.psi.impl.KCLImportStmtImpl.accept(KCLImportStmtImpl.java:26)
at io.kusionstack.kcl.symbol_table.DefSymbolTableVisitor.visitElement(DefSymbolTableVisitor.java:132)
at io.kusionstack.kcl.psi.KCLVisitor.visitSimpleStmt(KCLVisitor.java:303)
at io.kusionstack.kcl.psi.impl.KCLSimpleStmtImpl.accept(KCLSimpleStmtImpl.java:21)
at io.kusionstack.kcl.psi.impl.KCLSimpleStmtImpl.accept(KCLSimpleStmtImpl.java:26)
at io.kusionstack.kcl.symbol_table.DefSymbolTableVisitor.visitElement(DefSymbolTableVisitor.java:132)
at io.kusionstack.kcl.psi.KCLVisitor.visitStatement(KCLVisitor.java:319)
at io.kusionstack.kcl.psi.impl.KCLStatementImpl.accept(KCLStatementImpl.java:21)
at io.kusionstack.kcl.psi.impl.KCLStatementImpl.accept(KCLStatementImpl.java:26)
at io.kusionstack.kcl.symbol_table.DefSymbolTableVisitor.visitElement(DefSymbolTableVisitor.java:132)
at io.kusionstack.kcl.symbol_table.DefSymbolTableVisitor.startVisit(DefSymbolTableVisitor.java:28)
at io.kusionstack.kcl.KCLUtil.buildSymbolTable(KCLUtil.java:39)
at io.kusionstack.kcl.psi.KCLNameReference.multiResolve(KCLNameReference.java:47)
at io.kusionstack.kcl.psi.KCLNameReference.resolve(KCLNameReference.java:53)
at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:173)
at com.intellij.codeInsight.TargetElementUtilBase.doGetReferenceOrReferencedElement(TargetElementUtilBase.java:161)
at com.intellij.codeInsight.TargetElementUtilBase.getReferenceOrReferencedElement(TargetElementUtilBase.java:203)
at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:245)
at com.intellij.codeInsight.TargetElementUtilBase.doFindTargetElement(TargetElementUtilBase.java:225)
at com.intellij.codeInsight.TargetElementUtilBase.findTargetElement(TargetElementUtilBase.java:287)
at com.intellij.codeInsight.TargetElementUtil.findTargetElement(TargetElementUtil.java:144)
at com.intellij.model.psi.impl.TargetsKt.fromTargetEvaluator(targets.kt:175)
at com.intellij.model.psi.impl.TargetsKt.declarationsOrReferences(targets.kt:136)
at com.intellij.model.psi.impl.TargetsKt.declaredReferencedData(targets.kt:42)
at com.intellij.model.psi.impl.TargetsKt.targetSymbols(targets.kt:24)
at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.getTargetSymbols(IdentifierHighlighterPass.java:235)
at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.highlightReferencesAndDeclarations(IdentifierHighlighterPass.java:226)
at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.lambda$doCollectInformation$0(IdentifierHighlighterPass.java:108)
at com.intellij.openapi.project.DumbService.withAlternativeResolveEnabled(DumbService.kt:339)
at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.doCollectInformation(IdentifierHighlighterPass.java:107)
at com.intellij.codeInsight.highlighting.BackgroundHighlighterKt.submitIdentifierHighlighterPass$lambda$17$lambda$16$lambda$14(BackgroundHighlighter.kt:409)
at com.intellij.codeInsight.highlighting.BackgroundHighlighterKt.submitIdentifierHighlighterPass$lambda$17$lambda$16$lambda$15(BackgroundHighlighter.kt:409)
at com.intellij.codeInsight.daemon.impl.HighlightingSessionImpl.runInsideHighlightingSession(HighlightingSessionImpl.java:182)
at com.intellij.codeInsight.highlighting.BackgroundHighlighterKt.submitIdentifierHighlighterPass$lambda$17$lambda$16(BackgroundHighlighter.kt:406)
at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:66)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:157)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:140)
at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:98)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:223)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.use(trace.kt:45)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:222)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$14(CoreProgressManager.java:674)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:749)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:705)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:673)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:79)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:203)
at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:98)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:137)
at com.intellij.codeInsight.highlighting.BackgroundHighlighterKt.submitIdentifierHighlighterPass$lambda$17(BackgroundHighlighter.kt:402)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor.callWrapped(NonBlockingReadActionImpl.java:857)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor$MonitoredComputation.call(NonBlockingReadActionImpl.java:889)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:618)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$4(NonBlockingReadActionImpl.java:581)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.tryRunReadAction(AnyThreadWriteThreadingSupport.kt:351)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:971)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:95)
at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:66)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:157)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:140)
at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:98)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:223)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.use(trace.kt:45)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:222)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$14(CoreProgressManager.java:674)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:749)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:705)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:673)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:79)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:203)
at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:98)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:137)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:95)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:581)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$1(NonBlockingReadActionImpl.java:480)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$2(NonBlockingReadActionImpl.java:495)
at com.intellij.codeInsight.highlighting.BackgroundHighlighterKt$registerListeners$executor$1$1.invokeSuspend(BackgroundHighlighter.kt:118)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:608)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:873)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:763)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:750)

4. What is your KCL components version? (Required)

kcl version 0.10.10

IntelliJ:

IntelliJ IDEA 2024.3 (Ultimate Edition)
Build #IU-243.21565.193, built on November 13, 2024

Runtime version: 21.0.5+8-b631.16 aarch64 (JCEF 122.1.9)
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 15.1.1
Kotlin: 243.21565.193-IJ

@Peefy
Copy link
Contributor

Peefy commented Nov 22, 2024

cc @He1pa

@He1pa
Copy link
Contributor

He1pa commented Nov 26, 2024

Could you provide your kcl code?Or do you have this problem on all kcl codes?

@pisarenko91
Copy link
Author

Hey, it is everywhere. But I think I narrowed down the issue to, if I initiate IntelliJ instance with idea . I get those errors. But if I use absolute path idea User/foo/bar I dont get the pop ups.

Also it would be awesome if it would show me suggestions on . , for example if I do things like some_array. it will give me suggestions and available methods. I dont get that at the moment. Thanks a lot for doing this.

@He1pa
Copy link
Contributor

He1pa commented Nov 28, 2024

I checked the relevant code and it seems that some deprecated features are causing the error. These codes will be removed in the next version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants