Split determining which build system to use for a workspace and the workspace creation

This allows us to create the build system from a `BuiltInBuildSystemAdapter` when it receives an `InitializeRequest`, which will be done in a follow-up commit.
This commit is contained in:
Alex Hoppen
2024-08-23 16:59:07 -07:00
parent b490a6fef1
commit 6a9dcd2349
9 changed files with 218 additions and 168 deletions

View File

@@ -14,6 +14,7 @@ import BuildServerProtocol
import Dispatch
import LanguageServerProtocol
import SKLogging
import SKOptions
import SKSupport
import ToolchainRegistry
@@ -100,6 +101,13 @@ package actor CompilationDatabaseBuildSystem {
}
extension CompilationDatabaseBuildSystem: BuiltInBuildSystem {
static package func projectRoot(for workspaceFolder: AbsolutePath, options: SourceKitLSPOptions) -> AbsolutePath? {
if tryLoadCompilationDatabase(directory: workspaceFolder) != nil {
return workspaceFolder
}
return nil
}
package nonisolated var supportsPreparation: Bool { false }
package var indexDatabasePath: AbsolutePath? {