From 8353a9024c201cdc3810db29ef819cc16c44cc52 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 5 Nov 2024 22:32:16 +0000 Subject: [PATCH] Release 0.28.0 --- .../FeatureReducers/WidgetFeature.swift | 17 +++++++++++++---- .../SuggestionWidget/ModuleDependency.swift | 12 +++++++----- .../LanguageServer/GitHubCopilotService.swift | 3 +++ .../Preferences/Types/XcodeColorScheme.swift | 7 +++++++ 4 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 Tool/Sources/Preferences/Types/XcodeColorScheme.swift diff --git a/Core/Sources/SuggestionWidget/FeatureReducers/WidgetFeature.swift b/Core/Sources/SuggestionWidget/FeatureReducers/WidgetFeature.swift index a15919f..be6c2e6 100644 --- a/Core/Sources/SuggestionWidget/FeatureReducers/WidgetFeature.swift +++ b/Core/Sources/SuggestionWidget/FeatureReducers/WidgetFeature.swift @@ -281,7 +281,7 @@ public struct WidgetFeature { return .run { send in await send(.updateColorScheme) let stream = AsyncStream { continuation in - userDefaultsObservers.colorSchemeChangeObserver.onChange = { + userDefaultsObservers.xcodeColorSchemeChangeObserver.onChange = { continuation.yield() } @@ -289,8 +289,14 @@ public struct WidgetFeature { continuation.yield() } + Task { @MainActor in + Timer.scheduledTimer(withTimeInterval: 60, repeats: true) { _ in + continuation.yield() + } + } + continuation.onTermination = { _ in - userDefaultsObservers.colorSchemeChangeObserver.onChange = {} + userDefaultsObservers.xcodeColorSchemeChangeObserver.onChange = {} userDefaultsObservers.systemColorSchemeChangeObserver.onChange = {} } } @@ -301,17 +307,20 @@ public struct WidgetFeature { } }.cancellable(id: CancelID.observeUserDefaults, cancelInFlight: true) + case .updateActiveApplication: return .none case .updateColorScheme: - let widgetColorScheme = UserDefaults.shared.value(for: \.widgetColorScheme) + let xcodePref = UserDefaults(suiteName: "com.apple.dt.Xcode")! + .value(forKey: "IDEAppearance") as? Int ?? 0 + let xcodeColorScheme: XcodeColorScheme = .init(rawValue: xcodePref) ?? .system let systemColorScheme: ColorScheme = NSApp.effectiveAppearance.name == .darkAqua ? .dark : .light let scheme: ColorScheme = { - switch (widgetColorScheme, systemColorScheme) { + switch (xcodeColorScheme, systemColorScheme) { case (.system, .dark), (.dark, _): return .dark case (.system, .light), (.light, _): diff --git a/Core/Sources/SuggestionWidget/ModuleDependency.swift b/Core/Sources/SuggestionWidget/ModuleDependency.swift index 0e83df6..fb0652b 100644 --- a/Core/Sources/SuggestionWidget/ModuleDependency.swift +++ b/Core/Sources/SuggestionWidget/ModuleDependency.swift @@ -25,13 +25,15 @@ public final class WidgetUserDefaultsObservers { UserDefaultPreferenceKeys().suggestionPresentationMode.key, ], context: nil ) - let colorSchemeChangeObserver = UserDefaultsObserver( - object: UserDefaults.shared, forKeyPaths: [ - UserDefaultPreferenceKeys().widgetColorScheme.key, - ], context: nil + let xcodeColorSchemeChangeObserver = UserDefaultsObserver( + object: UserDefaults(suiteName: "com.apple.dt.Xcode")!, + forKeyPaths: ["xcodeColorScheme"], + context: nil ) let systemColorSchemeChangeObserver = UserDefaultsObserver( - object: UserDefaults.standard, forKeyPaths: ["AppleInterfaceStyle"], context: nil + object: UserDefaults.standard, + forKeyPaths: ["AppleInterfaceStyle"], + context: nil ) public init() {} diff --git a/Tool/Sources/GitHubCopilotService/LanguageServer/GitHubCopilotService.swift b/Tool/Sources/GitHubCopilotService/LanguageServer/GitHubCopilotService.swift index a2b6578..abed0f0 100644 --- a/Tool/Sources/GitHubCopilotService/LanguageServer/GitHubCopilotService.swift +++ b/Tool/Sources/GitHubCopilotService/LanguageServer/GitHubCopilotService.swift @@ -160,6 +160,9 @@ public class GitHubCopilotBaseService { currentDirectoryURL: urls.supportURL ) + Logger.gitHubCopilot.info("Starting language server in \(urls.supportURL), \(environment)") + Logger.gitHubCopilot.info("Running on Xcode \(xcodeVersion), extension version \(versionNumber)") + let localServer = CopilotLocalProcessServer(executionParameters: executionParams) localServer.notificationHandler = { _, respond in respond(.timeout) diff --git a/Tool/Sources/Preferences/Types/XcodeColorScheme.swift b/Tool/Sources/Preferences/Types/XcodeColorScheme.swift new file mode 100644 index 0000000..30c4661 --- /dev/null +++ b/Tool/Sources/Preferences/Types/XcodeColorScheme.swift @@ -0,0 +1,7 @@ +import SwiftUI + +public enum XcodeColorScheme: Int, CaseIterable { + case system = 0 + case light = 1 + case dark = 2 +}