Skip to content

Commit 1bbf33f

Browse files
committed
Merge branch 'feature/inline-suggestion-panel' into hotfix/0.18.3
2 parents c30d18a + bea3627 commit 1bbf33f

24 files changed

Lines changed: 734 additions & 902 deletions

Core/Sources/AXExtension/AXUIElement.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ public extension AXUIElement {
6363
var isEnabled: Bool {
6464
(try? copyValue(key: kAXEnabledAttribute)) ?? false
6565
}
66+
67+
var isHidden: Bool {
68+
(try? copyValue(key: kAXHiddenAttribute)) ?? false
69+
}
6670
}
6771

6872
// MARK: - Rect

Core/Sources/AXNotificationStream/AXNotificationStream.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public final class AXNotificationStream: AsyncSequence {
66
public typealias Stream = AsyncStream<Element>
77
public typealias Continuation = Stream.Continuation
88
public typealias AsyncIterator = Stream.AsyncIterator
9-
public typealias Element = (name: String, info: CFDictionary)
9+
public typealias Element = (name: String, element: AXUIElement, info: CFDictionary)
1010

1111
private var continuation: Continuation
1212
private let stream: Stream
@@ -48,7 +48,7 @@ public final class AXNotificationStream: AsyncSequence {
4848
) {
4949
guard let pointer = pointer?.assumingMemoryBound(to: Continuation.self)
5050
else { return }
51-
pointer.pointee.yield((notificationName as String, userInfo))
51+
pointer.pointee.yield((notificationName as String, element, userInfo))
5252
}
5353

5454
_ = AXObserverCreateWithInfoCallback(

Core/Sources/HostApp/FeatureSettings/SuggestionSettingsView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ struct SuggestionSettingsView: View {
3232
Picker(selection: $settings.suggestionPresentationMode) {
3333
ForEach(PresentationMode.allCases, id: \.rawValue) {
3434
switch $0 {
35-
case .comment:
36-
Text("Comment (Deprecating Soon)").tag($0)
35+
case .nearbyTextCursor:
36+
Text("Nearby Text Cursor").tag($0)
3737
case .floatingWidget:
3838
Text("Floating Widget").tag($0)
3939
}

Core/Sources/Service/GUI/GraphicalUserInterfaceController.swift.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import SuggestionWidget
55
@MainActor
66
public final class GraphicalUserInterfaceController {
77
public nonisolated static let shared = GraphicalUserInterfaceController()
8-
nonisolated let realtimeSuggestionIndicatorController = RealtimeSuggestionIndicatorController()
98
nonisolated let suggestionWidget = SuggestionWidgetController()
109
private nonisolated init() {
1110
Task { @MainActor in

Core/Sources/Service/GUI/RealtimeSuggestionIndicatorController.swift

Lines changed: 0 additions & 286 deletions
This file was deleted.

Core/Sources/Service/RealtimeSuggestionController.swift

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,6 @@ public class RealtimeSuggestionController {
2828
private var focusedUIElement: AXUIElement?
2929
private var sourceEditor: SourceEditor?
3030

31-
var isCommentMode: Bool {
32-
UserDefaults.shared.value(for: \.suggestionPresentationMode) == .comment
33-
}
34-
3531
private nonisolated init() {
3632
Task { [weak self] in
3733

@@ -179,16 +175,6 @@ public class RealtimeSuggestionController {
179175
if keycode == escape {
180176
if event.type == .keyDown {
181177
await cancelInFlightTasks()
182-
} else {
183-
Task {
184-
#warning(
185-
"TODO: Any method to avoid using AppleScript to check that completion panel is presented?"
186-
)
187-
if isCommentMode, await Environment.frontmostXcodeWindowIsEditor() {
188-
if Task.isCancelled { return }
189-
self.triggerPrefetchDebounced(force: true)
190-
}
191-
}
192178
}
193179
}
194180
}
@@ -214,11 +200,6 @@ public class RealtimeSuggestionController {
214200

215201
Logger.service.info("Prefetch suggestions.")
216202

217-
if !force, isCommentMode, await !Environment.frontmostXcodeWindowIsEditor() {
218-
Logger.service.info("Completion panel is open, blocked.")
219-
return
220-
}
221-
222203
// So the editor won't be blocked (after information are cached)!
223204
await PseudoCommandHandler().generateRealtimeSuggestions(sourceEditor: sourceEditor)
224205
}

0 commit comments

Comments
 (0)