mirror of
https://github.com/apple/sourcekit-lsp.git
synced 2026-03-02 18:23:24 +01:00
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:
@@ -49,19 +49,30 @@ package actor TestBuildSystem: BuiltInBuildSystem {
|
||||
}
|
||||
|
||||
package func buildTargets(request: BuildTargetsRequest) async throws -> BuildTargetsResponse {
|
||||
return BuildTargetsResponse(targets: [])
|
||||
return BuildTargetsResponse(targets: [
|
||||
BuildTarget(
|
||||
id: .dummy,
|
||||
displayName: nil,
|
||||
baseDirectory: nil,
|
||||
tags: [],
|
||||
capabilities: BuildTargetCapabilities(),
|
||||
languageIds: [],
|
||||
dependencies: []
|
||||
)
|
||||
])
|
||||
}
|
||||
|
||||
package func buildTargetSources(request: BuildTargetSourcesRequest) async throws -> BuildTargetSourcesResponse {
|
||||
return BuildTargetSourcesResponse(items: [])
|
||||
return BuildTargetSourcesResponse(items: [
|
||||
SourcesItem(
|
||||
target: .dummy,
|
||||
sources: buildSettingsByFile.keys.map { SourceItem(uri: $0, kind: .file, generated: false) }
|
||||
)
|
||||
])
|
||||
}
|
||||
|
||||
package func didChangeWatchedFiles(notification: BuildServerProtocol.DidChangeWatchedFilesNotification) async {}
|
||||
|
||||
package func inverseSources(request: InverseSourcesRequest) -> InverseSourcesResponse {
|
||||
return InverseSourcesResponse(targets: [BuildTargetIdentifier.dummy])
|
||||
}
|
||||
|
||||
package func prepare(request: PrepareTargetsRequest) async throws -> VoidResponse {
|
||||
throw PrepareNotSupportedError()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user