PadXcode-iPad/PadXcodeApp.swift

44 lines
1.5 KiB
Swift
Raw Normal View History

2026-04-12 00:46:30 -07:00
import SwiftUI
import Foundation
@main
struct PadXcodeApp: App {
2026-04-12 09:47:09 -07:00
@StateObject private var daemonConfig: DaemonConfiguration
@StateObject private var projectStore: ProjectStore
@StateObject private var editorState: EditorState
@StateObject private var gitStore: GitStore
@StateObject private var lspClient: LSPClient
private let gitService: GitService
2026-04-12 00:46:30 -07:00
private let gitCallbackHandler: GitCallbackHandler
init() {
let config = DaemonConfiguration()
let store = GitStore()
_daemonConfig = StateObject(wrappedValue: config)
2026-04-12 09:47:09 -07:00
_projectStore = StateObject(wrappedValue: ProjectStore())
_editorState = StateObject(wrappedValue: EditorState())
2026-04-12 00:46:30 -07:00
_gitStore = StateObject(wrappedValue: store)
2026-04-12 09:47:09 -07:00
_lspClient = StateObject(wrappedValue: LSPClient(config: config))
2026-04-12 22:10:16 -07:00
gitService = GitService()
2026-04-12 00:46:30 -07:00
gitCallbackHandler = GitCallbackHandler(store: store)
}
var body: some Scene {
WindowGroup {
ContentView(gitService: gitService)
.environmentObject(daemonConfig)
.environmentObject(projectStore)
.environmentObject(editorState)
.environmentObject(gitStore)
.environmentObject(lspClient)
.onOpenURL { url in
Task { @MainActor in gitCallbackHandler.handle(url: url) }
}
}
.commands { CommandGroup(replacing: .undoRedo) { } }
}
}