in server/server/src/main/kotlin/org/jetbrains/bazel/server/BazelBspServer.kt [80:128]
fun createProjectProvider(
bspInfo: BspInfo,
bazelInfo: BazelInfo,
workspaceContext: WorkspaceContext,
featureFlags: FeatureFlags,
bazelRunner: BazelRunner,
bazelPathsResolver: BazelPathsResolver,
compilationManager: BazelBspCompilationManager,
bspClientLogger: BspClientLogger,
): ProjectProvider {
val aspectsResolver =
InternalAspectsResolver(
bspInfo = bspInfo,
bazelRelease = bazelInfo.release,
)
val bazelBspAspectsManager =
BazelBspAspectsManager(
bazelBspCompilationManager = compilationManager,
aspectsResolver = aspectsResolver,
bazelRelease = bazelInfo.release,
)
val bazelToolchainManager = BazelToolchainManager()
val bazelBspLanguageExtensionsGenerator = BazelBspLanguageExtensionsGenerator(aspectsResolver)
val targetInfoReader = TargetInfoReader(bspClientLogger)
val projectResolver =
ProjectResolver(
bazelBspAspectsManager = bazelBspAspectsManager,
bazelToolchainManager = bazelToolchainManager,
bazelBspLanguageExtensionsGenerator = bazelBspLanguageExtensionsGenerator,
workspaceContext = workspaceContext,
featureFlags = featureFlags,
targetInfoReader = targetInfoReader,
bazelInfo = bazelInfo,
bazelRunner = bazelRunner,
bazelPathsResolver = bazelPathsResolver,
bspClientLogger = bspClientLogger,
)
val firstPhaseProjectResolver =
FirstPhaseProjectResolver(
workspaceRoot = workspaceRoot,
bazelRunner = bazelRunner,
workspaceContext = workspaceContext,
bazelInfo = bazelInfo,
bspClientLogger = bspClientLogger,
)
return ProjectProvider(projectResolver, firstPhaseProjectResolver)
}