Skip to content

Commit ae67557

Browse files
committed
improvement: Send enabled rules in initialize params
1 parent 62af1e0 commit ae67557

File tree

4 files changed

+12
-7
lines changed

4 files changed

+12
-7
lines changed

protocol/src/main/kotlin/org/jetbrains/bsp/protocol/InitializeBuildData.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ data class InitializeBuildData(
66
val clientClassesRootDir: String? = null,
77
val openTelemetryEndpoint: String? = null,
88
val featureFlags: FeatureFlags? = null,
9+
val enabledRules: List<String>? = null,
910
)
1011

1112
data class FeatureFlags(

server/server/src/main/kotlin/org/jetbrains/bsp/bazel/server/BazelBspServer.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ class BazelBspServer(
9696
compilationManager = compilationManager,
9797
bspClientLogger = bspClientLogger,
9898
featureFlags = featureFlags,
99+
initializeBuildData = initializeBuildData,
99100
)
100101
val bspProjectMapper =
101102
BspProjectMapper(
@@ -171,6 +172,7 @@ class BazelBspServer(
171172
compilationManager: BazelBspCompilationManager,
172173
bspClientLogger: BspClientLogger,
173174
featureFlags: FeatureFlags,
175+
initializeBuildData: InitializeBuildData,
174176
): ProjectProvider {
175177
val aspectsResolver =
176178
InternalAspectsResolver(
@@ -219,6 +221,7 @@ class BazelBspServer(
219221
bazelPathsResolver = bazelPathsResolver,
220222
bspClientLogger = bspClientLogger,
221223
featureFlags = featureFlags,
224+
initializeBuildData = initializeBuildData,
222225
)
223226
val firstPhaseProjectResolver =
224227
FirstPhaseProjectResolver(

server/server/src/main/kotlin/org/jetbrains/bsp/bazel/server/bsp/managers/BazelExternalRulesetsQuery.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,19 @@ interface BazelExternalRulesetsQuery {
2121
fun fetchExternalRulesetNames(cancelChecker: CancelChecker): List<String>
2222
}
2323

24-
class BazelEnabledRulesetsQueryImpl(private val enabledRulesSpec: EnabledRulesSpec) : BazelExternalRulesetsQuery {
24+
class BazelEnabledRulesetsQueryImpl(private val enabledRules: List<String>) : BazelExternalRulesetsQuery {
2525
override fun fetchExternalRulesetNames(cancelChecker: CancelChecker): List<String> {
26-
val specifiedRules = enabledRulesSpec.values
27-
val neededTransitiveRules = specifiedRules.mapNotNull { rootRulesToNeededTransitiveRules[it] }.flatten()
26+
val neededTransitiveRules = enabledRules.mapNotNull { rootRulesToNeededTransitiveRules[it] }.flatten()
2827

29-
return (specifiedRules + neededTransitiveRules).distinct()
28+
return (enabledRules + neededTransitiveRules).distinct()
3029
}
3130
}
3231

3332
class BazelExternalRulesetsQueryImpl(
3433
private val bazelRunner: BazelRunner,
3534
private val isBzlModEnabled: Boolean,
3635
private val isWorkspaceEnabled: Boolean,
37-
private val enabledRules: EnabledRulesSpec,
36+
private val enabledRules: List<String>,
3837
private val bspClientLogger: BspClientLogger,
3938
private val repoMapping: RepoMapping,
4039
) : BazelExternalRulesetsQuery {

server/server/src/main/kotlin/org/jetbrains/bsp/bazel/server/sync/ProjectResolver.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import org.jetbrains.bsp.bazel.workspacecontext.TargetsSpec
2626
import org.jetbrains.bsp.bazel.workspacecontext.WorkspaceContext
2727
import org.jetbrains.bsp.bazel.workspacecontext.WorkspaceContextProvider
2828
import org.jetbrains.bsp.protocol.FeatureFlags
29+
import org.jetbrains.bsp.protocol.InitializeBuildData
2930

3031
/** Responsible for querying bazel and constructing Project instance */
3132
class ProjectResolver(
@@ -41,6 +42,7 @@ class ProjectResolver(
4142
private val bazelPathsResolver: BazelPathsResolver,
4243
private val bspClientLogger: BspClientLogger,
4344
private val featureFlags: FeatureFlags,
45+
private val initializeBuildData: InitializeBuildData,
4446
) {
4547
private suspend fun <T> measured(description: String, f: suspend () -> T): T = tracer.spanBuilder(description).useWithScope { f() }
4648

@@ -60,13 +62,13 @@ class ProjectResolver(
6062
measured("Calculating external repository mapping") {
6163
calculateRepoMapping(workspaceContext, bazelRunner, bazelInfo, bspClientLogger)
6264
}
63-
65+
val enabledRules = initializeBuildData.enabledRules ?: workspaceContext.enabledRules.values
6466
val bazelExternalRulesetsQuery =
6567
BazelExternalRulesetsQueryImpl(
6668
bazelRunner,
6769
bazelInfo.isBzlModEnabled,
6870
bazelInfo.isWorkspaceEnabled,
69-
workspaceContext.enabledRules,
71+
enabledRules,
7072
bspClientLogger,
7173
repoMapping,
7274
)

0 commit comments

Comments
 (0)