Skip to content

Commit 5c2fa00

Browse files
committed
Merge branch 'main' of https://github.com/simple-scala-tools/sls into diags
2 parents c4fb30b + 524d7b1 commit 5c2fa00

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

sls/src/org/scala/abusers/sls/ServerImpl.scala

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import cats.effect.kernel.Deferred
55
import cats.effect.kernel.Resource
66
import cats.effect.IO
77
import cats.syntax.all.*
8+
import fs2.io.file.Files
9+
import fs2.io.file.Path
810
import fs2.io.process.ProcessBuilder
911
import fs2.text
1012
import ScalaBuildTargetInformation.*
@@ -19,6 +21,7 @@ import LoggingUtils.*
1921
import org.scala.abusers.pc.PresentationCompilerDTOInterop.*
2022
import org.scala.abusers.pc.PresentationCompilerProvider
2123
import org.scala.abusers.sls.NioConverter.asNio
24+
import util.chaining.*
2225

2326
import java.net.URI
2427
import java.util.concurrent.CompletableFuture
@@ -206,14 +209,8 @@ class ServerImpl(
206209
inlayHintProvider = Opt(InlayHintOptions(resolveProvider = Opt(false))),
207210
)
208211

209-
private def connectWithBloop(
210-
back: Communicate[IO],
211-
steward: ResourceSupervisor[IO],
212-
diagnosticManager: DiagnosticManager,
213-
): IO[BuildServer] = {
214-
val temp = os.temp.dir(prefix = "sls") // TODO Investigate possible clashes during reconnection
215-
val socketFile = temp / s"bloop.socket"
216-
val bspProcess = ProcessBuilder("bloop", "bsp", "--socket", socketFile.toNIO.toString())
212+
private def connectWithBloop(back: Communicate[IO], steward: ResourceSupervisor[IO], diagnosticManager: DiagnosticManager): IO[BuildServer] = {
213+
def bspProcess(socketFile: os.Path) = ProcessBuilder("bloop", "bsp", "--socket", socketFile.toNIO.toString())
217214
.spawn[IO]
218215
.flatMap { bspSocketProc =>
219216
IO.deferred[Unit].toResource.flatMap { started =>
@@ -242,8 +239,16 @@ class ServerImpl(
242239
.as(socketFile)
243240

244241
val bspClientRes = for {
245-
socketPath <- bspProcess
246-
_ <- Resource.eval(IO.sleep(1.seconds) *> back.logMessage(s"Looking for socket at $socketPath"))
242+
temp <- Files[IO]
243+
.tempDirectory(
244+
dir = None,
245+
prefix = "sls",
246+
permissions = None,
247+
)
248+
.map(_.toNioPath.pipe(os.Path(_))) // TODO Investigate possible clashes during reconnection
249+
socketFile = temp / "bloop.socket"
250+
socketPath <- bspProcess(socketFile)
251+
_ <- Resource.eval(IO.sleep(1.seconds) *> back.logMessage(s"Looking for socket at $socketPath"))
247252
channel <- FS2Channel
248253
.resource[IO]()
249254
.flatMap(_.withEndpoints(bspClientHandler(back, diagnosticManager)))

0 commit comments

Comments
 (0)