this repo has no description
www.jonmsterling.com/01HC/
1// SPDX-FileCopyrightText: 2025 The Project Pterodactyl Developers
2//
3// SPDX-License-Identifier: MPL-2.0
4
5//import LanguageServerProtocol
6//import PterodactylBuild
7//import TSCBasic
8//import llbuild2fx
9//
10//actor SourceTreeManager {
11// private let buildEngine: FXEngine
12// private let casClient: LLBCASFSClient
13// private let casContext: TSCUtility.Context
14// private(set) var sourceTree: LLBCASFileTree
15//
16// init(buildEngine: FXEngine, casClient: LLBCASFSClient, casContext: TSCUtility.Context, sourceTree: LLBCASFileTree? = nil) async throws {
17// self.buildEngine = buildEngine
18// self.casClient = casClient
19// self.casContext = casContext
20// if let sourceTree {
21// self.sourceTree = sourceTree
22// } else {
23// self.sourceTree = try await casClient.storeDir(.dir([:]), casContext).get()
24// }
25// }
26//
27// func setBufferText(uri: DocumentUri, text: String) async throws -> LLBCASFileTree {
28// let path = try AbsolutePath.fromDocumentUri(uri)
29// let singletonDeclTree = LLBDeclFileTree.file(absolutePath: path, contents: text)
30// let singletonTree: LLBCASFileTree = try await casClient.storeDir(singletonDeclTree, casContext).get()
31// self.sourceTree = try await sourceTree.merge(with: singletonTree, in: casClient.db, casContext).get()
32// return sourceTree
33// }
34//
35// func getBufferText(uri: DocumentUri) async throws -> String? {
36// let path = try AbsolutePath.fromDocumentUri(uri)
37// guard let (id, _) = try await sourceTree.lookup(path: path, in: casClient.db, casContext).get() else { return nil }
38// return try await buildEngine.build(key: Keys.Blob.ReadContents(blobId: id), casContext).get()
39// }
40//}