Lonami / uniffi-dl

Unofficial IntelliJ plugin for Mozilla's UniFFI Definition Language (UDL)

Home Page:https://plugins.jetbrains.com/plugin/20527-uniffi-dl

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

`[Error] interface` syntax not recognized

danielgranhao opened this issue · comments

The plugin has trouble dealing with error interfaces such as the one that follows:

[Error]
interface ExampleError {
    ExampleErrorOne(string msg);
    ExampleErrorTwo(string msg);
};

Both ExampleErrorOne and ExampleErrorTwo get red (can't be resolved) and when
hovering the cursor over them, an exception occurs:

java.lang.NullPointerException: Cannot invoke "com.intellij.psi.PsiElement.getNode()" because the return value of "com.intellij.psi.PsiElement.getFirstChild()" is null
	at dev.lonami.uniffidl.psi.impl.UdlPsiImplUtil.getNameIdentifier(UdlPsiImplUtil.java:128)
	at dev.lonami.uniffidl.psi.impl.UdlRegularOperationImpl.getNameIdentifier(UdlRegularOperationImpl.java:44)
	at com.intellij.model.psi.impl.PsiElement2Declaration.getIdentifyingElement(PsiElement2Declaration.java:120)
	at com.intellij.model.psi.impl.PsiElement2Declaration.getIdentifyingElement(PsiElement2Declaration.java:113)
	at com.intellij.model.psi.impl.PsiElement2Declaration.getDeclarationRangeFromPsi(PsiElement2Declaration.java:73)
	at com.intellij.model.psi.impl.PsiElement2Declaration.createFromDeclaredPsiElement(PsiElement2Declaration.java:68)
	at com.intellij.model.psi.impl.TargetsKt.declarationsOrReferences(targets.kt:124)
	at com.intellij.model.psi.impl.TargetsKt.declaredReferencedData(targets.kt:41)
	at com.intellij.model.psi.impl.TargetsKt.targetSymbols(targets.kt:23)
	at com.intellij.lang.documentation.symbol.impl.DefaultTargetSymbolDocumentationTargetProviderKt.symbolDocumentationTargets(DefaultTargetSymbolDocumentationTargetProvider.kt:24)
	at com.intellij.lang.documentation.symbol.impl.DefaultTargetSymbolDocumentationTargetProviderKt.access$symbolDocumentationTargets(DefaultTargetSymbolDocumentationTargetProvider.kt:1)
	at com.intellij.lang.documentation.symbol.impl.DefaultTargetSymbolDocumentationTargetProvider.documentationTargets(DefaultTargetSymbolDocumentationTargetProvider.kt:19)
	at com.intellij.lang.documentation.impl.ImplKt.documentationTargets(impl.kt:27)
	at com.intellij.lang.documentation.ide.impl.IdeDocumentationTargetProviderImpl.documentationTargets(IdeDocumentationTargetProviderImpl.kt:35)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1$targets$1.invoke(DocumentationTargetHoverInfo.kt:39)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1$targets$1.invoke(DocumentationTargetHoverInfo.kt:39)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt.injectedThenHost(DocumentationTargetHoverInfo.kt:76)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt:37)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt:36)
	at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:90)
	at com.intellij.openapi.application.rw.InternalReadAction.access$insideReadAction(InternalReadAction.kt:15)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$1.invoke(InternalReadAction.kt:74)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$1.invoke(InternalReadAction.kt:73)
	at com.intellij.openapi.progress.CancellationKt.withCurrentJob$lambda$0(cancellation.kt:17)
	at com.intellij.openapi.progress.Cancellation.withCurrentJob(Cancellation.java:60)
	at com.intellij.openapi.progress.CancellationKt.withCurrentJob(cancellation.kt:17)
	at com.intellij.openapi.progress.CancellationKt.executeWithJobAndCompleteIt(cancellation.kt:125)
	at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal$lambda$1$lambda$0(cancellableReadAction.kt:49)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1111)
	at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal$lambda$1(cancellableReadAction.kt:47)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:63)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:128)
	at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:45)
	at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:73)
	at com.intellij.openapi.application.rw.InternalReadAction.access$tryReadCancellable(InternalReadAction.kt:15)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadAction$2.invoke(InternalReadAction.kt:59)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadAction$2.invoke(InternalReadAction.kt:54)
	at com.intellij.openapi.progress.CancellationKt.withCurrentJob$lambda$0(cancellation.kt:17)
	at com.intellij.openapi.progress.Cancellation.withCurrentJob(Cancellation.java:60)
	at com.intellij.openapi.progress.CancellationKt.withCurrentJob(cancellation.kt:17)
	at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:142)
	at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:54)
	at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:46)
	at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:15)
	at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$2.invokeSuspend(InternalReadAction.kt:27)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)