suspend fun startServer()

in plugin-bazel/src/main/kotlin/org/jetbrains/bazel/server/connection/Connection.kt [16:49]


suspend fun startServer(
  client: JoinedBuildClient,
  workspaceRoot: Path,
  workspaceContext: WorkspaceContext,
  featureFlags: FeatureFlags,
): BspServerApi {
  val bspInfo = BspInfo(workspaceRoot)
  val bspServer = BazelBspServer(bspInfo, workspaceContext, workspaceRoot)
  val bspClientLogger = BspClientLogger(client)
  val bazelRunner = BazelRunner(bspClientLogger, bspServer.workspaceRoot)
  val bazelInfo = bspServer.createBazelInfo(bazelRunner, workspaceContext)
  bazelRunner.bazelInfo = bazelInfo
  val bazelPathsResolver = BazelPathsResolver(bazelInfo)
  val compilationManager =
    BazelBspCompilationManager(bazelRunner, bazelPathsResolver, client, bspServer.workspaceRoot)
  val services =
    bspServer.bspServerData(
      bspClientLogger,
      bazelRunner,
      compilationManager,
      bazelInfo,
      workspaceContext,
      featureFlags,
      bazelPathsResolver,
    )
  val bspServerApi =
    BspServerApi(
      services.projectSyncService,
      services.executeService,
      workspaceContext,
      bazelPathsResolver,
    )
  return bspServerApi
}