// // CodeEditApp.swift // CodeEdit // // Created by Wouter Hennen on 11/03/2023. // import SwiftUI import WelcomeWindow import AboutWindow @main struct CodeEditApp: App { @NSApplicationDelegateAdaptor var appdelegate: AppDelegate @ObservedObject var settings = Settings.shared let updater: SoftwareUpdater = SoftwareUpdater() init() { // Register singleton services before anything else ServiceContainer.register( LSPService() ) _ = CodeEditDocumentController.shared NSMenuItem.swizzle() NSSplitViewItem.swizzle() } var body: some Scene { Group { WelcomeWindow( subtitleView: { WelcomeSubtitleView() }, actions: { dismissWindow in NewFileButton(dismissWindow: dismissWindow) GitCloneButton(dismissWindow: dismissWindow) OpenFileOrFolderButton(dismissWindow: dismissWindow) }, onDrop: { url, dismissWindow in Task { await CodeEditDocumentController.shared.openDocument(at: url, onCompletion: { dismissWindow() }) } } ) ExtensionManagerWindow() AboutWindow( subtitleView: { AboutSubtitleView() }, actions: { AboutButton(title: "Contributors", destination: { ContributorsView() }) AboutButton(title: "Acknowledgements", destination: { AcknowledgementsView() }) }, footer: { AboutFooterView() } ) SettingsWindow() .commands { CodeEditCommands() } } .environment(\.settings, settings.preferences) // Add settings to each window environment } }