VirtusLab / scala-cli

Scala CLI is a command-line tool to interact with the Scala language. It lets you compile, run, test, and package your Scala code (and more!)
https://scala-cli.virtuslab.org
Apache License 2.0
542 stars 128 forks source link

Cannot import scripts folder as BSP in IntelliJ IDEA #2656

Open DavidPerezIngeniero opened 8 months ago

DavidPerezIngeniero commented 8 months ago

Version(s) Scala CLI version: 1.1.0 Scala version (default): 3.3.1 IntelliJ IDEA 2023.3.2 (Community Edition) openjdk 17.0.9 2023-10-17 Ubuntu 22.04, AMD 64 bits

Describe the bug I cannot import in IDEA a folder.

To Reproduce I have created a folder with just a .sc file with this contents:

#!/usr/bin/env -S scala-cli shebang
//> using dep com.lihaoyi::os-lib:0.9.1

println("hola")`

Then, I run in this folder:

scala-cli setup-ide .

It creates some files.

Then in the module setup, I import this folder as a BSP module.

IntelliJ IDEA complains in this way:

2024-01-09 09:58:36,606 [ 164197]   WARN - #o.j.b.p.s.BspSession - Problem connecting to BSP server: BSP server is not responding. See IDE log for details.
org.jetbrains.bsp.BspException: Problem connecting to BSP server: BSP server is not responding. See IDE log for details.
    at org.jetbrains.bsp.protocol.session.BspSession.nextQueuedCommand(BspSession.scala:79)
    at org.jetbrains.bsp.protocol.session.BspSession.$anonfun$queueProcessor$1(BspSession.scala:63)
    at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:27)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
    at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:275)
    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)
Caused by: org.jetbrains.bsp.BspConnectionError: BSP server is not responding
    at org.jetbrains.bsp.protocol.session.BspSession.waitForSessionInitialized(BspSession.scala:241)
    at org.jetbrains.bsp.protocol.session.BspSession.nextQueuedCommand(BspSession.scala:70)
    ... 12 more
Caused by: java.util.concurrent.TimeoutException
    at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1960)
    at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2095)
    at org.jetbrains.bsp.protocol.session.BspSession.waitForSessionInitialized(BspSession.scala:235)
    ... 13 more

Expected behaviour I import successfully such a simple setup.

DavidPerezIngeniero commented 8 months ago

I've discovered that it works better if I launch scala-cli before attempting to import the project. The documentation should be updated in order to reflect this importart step.

But //> using dep aren't processed..... :-( Even scala-library isn't included as a dependency.