apple / pkl-intellij

JetBrains editor plugins providing Pkl language support
https://pkl-lang.org/intellij/current/index.html
Apache License 2.0
49 stars 10 forks source link

IDE Error: Cannot find file `stdlib/base.pkl` in pkl/pkl project #13

Closed jfharden closed 6 months ago

jfharden commented 6 months ago

With IntelliJ IDEA Community Edition (See version info below)

IntelliJ IDEA 2023.3.2 (Community Edition)
Build #IC-233.13135.103, built on December 20, 2023
Runtime version: 17.0.9+7-b1087.9 aarch64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 14.3.1
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 8
Metal Rendering is ON
Non-Bundled Plugins:
  org.intellij.plugins.hcl (233.13135.65)
  org.pkl (0.26.0)
  aws.toolkit (2.9-233)
Kotlin: 233.13135.103-IJ

After installing pkl-intellij via the current instructions in the docs:

Any pkl file loaded immediately causes the an IDE error with the following log:

2024-02-29 14:39:44,781 [ 204341] SEVERE - #o.j.c.AsyncPromise - Cannot find file `stdlib/base.pkl` in pkl/pkl project.
java.lang.AssertionError: Cannot find file `stdlib/base.pkl` in pkl/pkl project.
    at org.pkl.intellij.psi.PklStdLib$Companion.findBaseModuleFile(PklStdLib.kt:89)
    at org.pkl.intellij.psi.PklStdLib$Companion.create(PklStdLib.kt:61)
    at org.pkl.intellij.psi.PklStdLibKt._get_pklStdLib_$lambda$0(PklStdLib.kt:38)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:37)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$3(CachedValueBase.java:240)
    at com.intellij.util.CachedValueBase.computeData(CachedValueBase.java:43)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$4(CachedValueBase.java:240)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:27)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:66)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:241)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:27)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:69)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:111)
    at org.pkl.intellij.psi.PklStdLibKt.getPklStdLib(PklStdLib.kt:36)
    at org.pkl.intellij.psi.PklBaseModuleKt._get_pklBaseModule_$lambda$0(PklBaseModule.kt:28)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:37)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$3(CachedValueBase.java:240)
    at com.intellij.util.CachedValueBase.computeData(CachedValueBase.java:43)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$4(CachedValueBase.java:240)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:27)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:66)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:241)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:27)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:69)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:111)
    at org.pkl.intellij.psi.PklBaseModuleKt.getPklBaseModule(PklBaseModule.kt:27)
    at org.pkl.intellij.psi.PklClassPropertyBase.isDefinition(PklClassPropertyBase.kt:59)
    at org.pkl.intellij.regex.PklStringLiteralInjector.getSourceCode(PclStringLiteralInjector.kt:91)
    at org.pkl.intellij.regex.PklStringLiteralInjector.getLanguagesToInject(PclStringLiteralInjector.kt:46)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageManagerImpl.processInPlaceInjectorsFor(InjectedLanguageManagerImpl.java:495)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtilBase.probeElementsUpInner(InjectedLanguageUtilBase.java:234)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtilBase.lambda$probeElementsUp$0(InjectedLanguageUtilBase.java:214)
    at com.intellij.openapi.application.impl.ReadActionCacheImpl$allowInWriteAction$1.invoke(ReadActionCacheImpl.kt:41)
    at com.intellij.openapi.application.impl.ReadActionCacheImpl$allowInWriteAction$1.invoke(ReadActionCacheImpl.kt:41)
    at com.intellij.openapi.application.impl.ReadActionCacheImpl.allowInWriteAction(ReadActionCacheImpl.kt:29)
    at com.intellij.openapi.application.impl.ReadActionCacheImpl.allowInWriteAction(ReadActionCacheImpl.kt:41)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtilBase.probeElementsUp(InjectedLanguageUtilBase.java:213)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtilBase.enumerate(InjectedLanguageUtilBase.java:156)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtilBase.findInside(InjectedLanguageUtilBase.java:394)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtilBase.tryOffset(InjectedLanguageUtilBase.java:380)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtilBase.findInjectedElementNoCommit(InjectedLanguageUtilBase.java:354)
    at com.intellij.psi.impl.source.tree.injected.InjectedLanguageManagerImpl.findInjectedElementAt(InjectedLanguageManagerImpl.java:351)
    at com.intellij.openapi.editor.EditorMouseHoverPopupManager.findElementForQuickDoc(EditorMouseHoverPopupManager.java:357)
    at com.intellij.openapi.editor.EditorMouseHoverPopupManager.findElementForQuickDoc(EditorMouseHoverPopupManager.java:349)
    at com.intellij.openapi.editor.EditorMouseHoverPopupManager.createContext(EditorMouseHoverPopupManager.java:335)
    at com.intellij.openapi.editor.EditorMouseHoverPopupManager.lambda$showInfoTooltip$7(EditorMouseHoverPopupManager.java:408)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor.callWrapped(NonBlockingReadActionImpl.java:840)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor$MonitoredComputation.call(NonBlockingReadActionImpl.java:872)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:604)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$4(NonBlockingReadActionImpl.java:567)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1075)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:73)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:73)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:128)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:111)
    at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:73)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:192)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:610)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:685)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:641)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:609)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:78)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:179)
    at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:73)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:108)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:73)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:567)
    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:840)
2024-02-29 14:39:44,785 [ 204345] SEVERE - #o.j.c.AsyncPromise - IntelliJ IDEA 2023.3.2  Build #IC-233.13135.103
2024-02-29 14:39:44,785 [ 204345] SEVERE - #o.j.c.AsyncPromise - JDK: 17.0.9; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o.
2024-02-29 14:39:44,785 [ 204345] SEVERE - #o.j.c.AsyncPromise - OS: Mac OS X
2024-02-29 14:39:44,785 [ 204345] SEVERE - #o.j.c.AsyncPromise - Plugin to blame: Pkl version: 0.26.0

This is using pkl version 0.25.2:

$ pkl --version
Pkl 0.25.2 (macOS 14.3.1, Java 11.0.19)`

I also tried the native client as well as the java version and got the same result.

I tested this using the most basic example in the tutorial:

File: intro.pkl

name = "Pkl: Configure your Systems in New Ways"
attendants = 100
isInteractive = true
amountLearned = 13.37
stackoverflow commented 6 months ago

Is your project by any means called pkl? We have this issue on the plugin where if you create a new project called pkl, our plugin will think it's the actual language and it'll search for the stdlib. If it's called pkl try renaming it.

jfharden commented 6 months ago

Ah interesting, the error "went away" on it's own, except I now realise the change was I gave it a real PklPackage file, and moved it from a directory called pkl where I had been testing pkl out, into a real git project with a full name, so I think you're right, I think it was because the project ended up being called pkl

Thanks For the info, and thanks for pkl, I'm really loving it so far!