mirror of
https://github.com/apple/sourcekit-lsp.git
synced 2026-03-02 18:23:24 +01:00
Create BuildSystem in BuiltInBuildSystemAdapter
This finalizes the move of `BuiltInBuildSystem` creation into `BuiltInBuildSystemAdapter` and means that we can set the message handler of the `BuiltInBuildSystem` during initialization instead of using a setter method.
This commit is contained in:
@@ -77,15 +77,12 @@ package actor BuildServerBuildSystem: MessageHandler {
|
||||
|
||||
package weak var messageHandler: BuiltInBuildSystemMessageHandler?
|
||||
|
||||
package func setMessageHandler(_ messageHandler: any BuiltInBuildSystemMessageHandler) {
|
||||
self.messageHandler = messageHandler
|
||||
}
|
||||
|
||||
/// The build settings that have been received from the build server.
|
||||
private var buildSettings: [DocumentURI: FileBuildSettings] = [:]
|
||||
|
||||
package init(
|
||||
projectRoot: AbsolutePath,
|
||||
messageHandler: BuiltInBuildSystemMessageHandler?,
|
||||
fileSystem: FileSystem = localFileSystem
|
||||
) async throws {
|
||||
let configPath = projectRoot.appending(component: "buildServer.json")
|
||||
@@ -105,17 +102,18 @@ package actor BuildServerBuildSystem: MessageHandler {
|
||||
#endif
|
||||
self.projectRoot = projectRoot
|
||||
self.serverConfig = config
|
||||
self.messageHandler = messageHandler
|
||||
try await self.initializeBuildServer()
|
||||
}
|
||||
|
||||
/// Creates a build system using the Build Server Protocol config.
|
||||
///
|
||||
/// - Returns: nil if `projectRoot` has no config or there is an error parsing it.
|
||||
package init?(projectRoot: AbsolutePath?) async {
|
||||
package init?(projectRoot: AbsolutePath?, messageHandler: BuiltInBuildSystemMessageHandler?) async {
|
||||
guard let projectRoot else { return nil }
|
||||
|
||||
do {
|
||||
try await self.init(projectRoot: projectRoot)
|
||||
try await self.init(projectRoot: projectRoot, messageHandler: messageHandler)
|
||||
} catch is FileSystemError {
|
||||
// config file was missing, no build server for this workspace
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user