Skip to content

Commit 1006c06

Browse files
committed
fix: address CodeRabbit review findings
1 parent 4294dcc commit 1006c06

3 files changed

Lines changed: 16 additions & 1 deletion

File tree

LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/CodeSuggestion/Model/SuggestionViewModel.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ final class SuggestionViewModel: ObservableObject {
110110
self.items = completionItems.items
111111
self.selectedIndex = 0
112112
self.syntaxHighlightedCache = [:]
113+
self.notifySelection()
113114
showWindowOnParent(targetParentWindow, cursorRect)
114115
}
115116
} catch {
@@ -143,6 +144,7 @@ final class SuggestionViewModel: ObservableObject {
143144
items = newItems
144145
selectedIndex = 0
145146
syntaxHighlightedCache = [:]
147+
notifySelection()
146148
}
147149

148150
func didSelect(item: CodeSuggestionEntry) {
@@ -162,9 +164,12 @@ final class SuggestionViewModel: ObservableObject {
162164
}
163165

164166
func willClose() {
167+
itemsRequestTask?.cancel()
168+
itemsRequestTask = nil
165169
items.removeAll()
166170
selectedIndex = 0
167171
activeTextView = nil
172+
delegate = nil
168173
}
169174

170175
func syntaxHighlights(forIndex index: Int) -> NSAttributedString? {

LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/CodeSuggestion/Window/SuggestionController.swift

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,15 @@ public final class SuggestionController: NSWindowController {
144144
queue: .main
145145
) { [weak self] _ in
146146
guard let self else { return }
147-
if self.model.activeTextView == nil || self.model.activeTextView?.view.window == nil {
147+
guard let textView = self.model.activeTextView else {
148+
self.close()
149+
return
150+
}
151+
// Close if text view removed from window or lost first responder
152+
if textView.view.window == nil {
153+
self.close()
154+
} else if let firstResponder = textView.view.window?.firstResponder as? NSView,
155+
!firstResponder.isDescendant(of: textView.view) {
148156
self.close()
149157
}
150158
}

TablePro/Core/Autocomplete/SQLCompletionProvider.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,8 @@ final class SQLCompletionProvider {
494494
/// Filter and rank items by prefix, returning sorted results with match ranges
495495
func filterAndRank(_ items: [SQLCompletionItem], prefix: String, context: SQLContext) -> [SQLCompletionItem] {
496496
var filtered = filterByPrefix(items, prefix: prefix)
497+
// Clear stale match ranges before recomputing
498+
for i in filtered.indices { filtered[i].matchedRanges = [] }
497499
populateMatchRanges(&filtered, prefix: prefix)
498500
return rankResults(filtered, prefix: prefix, context: context)
499501
}

0 commit comments

Comments
 (0)