Implement InverseSourcesRequest in BuildSystemManager

`buildTarget/inverseSources` is not required to be implemented by BSP servers and we have almost all information needed for it in `BuildSystemManager`.

This also makes sure that `buildTarget/sources` and `buildTarget/inverseSources` actually match each other. Before this change, we had source files like `Package.swift` for which we returned a target from `buildTarget/inverseSources` but that weren’t part of that target’s sources retrieved using `buildTarget/sources`.
This commit is contained in:
Alex Hoppen
2024-09-14 08:39:01 -07:00
parent 14e96311ed
commit 5870ad9eb4
19 changed files with 271 additions and 162 deletions

View File

@@ -67,9 +67,6 @@ package protocol BuiltInBuildSystem: AnyObject, Sendable {
/// Called when files in the project change.
func didChangeWatchedFiles(notification: BuildServerProtocol.DidChangeWatchedFilesNotification) async
/// Return the list of targets that the given document can be built for.
func inverseSources(request: InverseSourcesRequest) async throws -> InverseSourcesResponse
/// Prepare the given targets for indexing and semantic functionality. This should build all swift modules of target
/// dependencies.
func prepare(request: PrepareTargetsRequest) async throws -> VoidResponse