Skip to content

Commit 65263a1

Browse files
Rename to DiagnosticsManager
1 parent 2c8bc06 commit 65263a1

File tree

7 files changed

+14
-18
lines changed

7 files changed

+14
-18
lines changed

CodeEdit/Features/Documents/WorkspaceDocument/WorkspaceDocument.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ final class WorkspaceDocument: NSDocument, ObservableObject, NSToolbarDelegate {
3333
var editorManager: EditorManager? = EditorManager()
3434
var statusBarViewModel: StatusBarViewModel? = StatusBarViewModel()
3535
var utilityAreaModel: UtilityAreaViewModel? = UtilityAreaViewModel()
36-
var issueNavigatorViewModel: IssueNavigatorViewModel? = IssueNavigatorViewModel()
36+
var diagnosticsManager: DiagnosticsManager? = DiagnosticsManager()
3737
var searchState: SearchState?
3838
var openQuicklyViewModel: OpenQuicklyViewModel?
3939
var commandsPaletteState: QuickActionsViewModel?
@@ -164,7 +164,7 @@ final class WorkspaceDocument: NSDocument, ObservableObject, NSToolbarDelegate {
164164
editorManager?.restoreFromState(self)
165165
utilityAreaModel?.restoreFromState(self)
166166

167-
issueNavigatorViewModel?.initialize(projectName: displayName)
167+
diagnosticsManager?.initialize(projectName: displayName)
168168
}
169169

170170
override func read(from url: URL, ofType typeName: String) throws {

CodeEdit/Features/LSP/Service/LSPService+Events.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ extension LSPService {
9494
// case let .windowShowMessage(params):
9595
// print("windowShowMessage \(params.type)\n```\n\(params.message)\n```\n")
9696
case let .textDocumentPublishDiagnostics(params):
97-
languageClient.workspace.issueNavigatorViewModel?
97+
languageClient.workspace.diagnosticsManager?
9898
.updateDiagnostics(params: params)
9999
// case let .telemetryEvent(params):
100100
// print("telemetryEvent: \(params)")

CodeEdit/Features/NavigatorArea/ViewModels/IssueNavigatorViewModel.swift renamed to CodeEdit/Features/NavigatorArea/IssueNavigator/DiagnosticsManager.swift

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//
2-
// IssueNavigatorViewModel.swift
2+
// DiagnosticsManager.swift
33
// CodeEdit
44
//
55
// Created by Abe Malla on 3/15/25.
@@ -10,17 +10,14 @@ import SwiftUI
1010
import Foundation
1111
import LanguageServerProtocol
1212

13-
class IssueNavigatorViewModel: ObservableObject {
13+
class DiagnosticsManager: ObservableObject {
1414
@Published var rootNode: ProjectIssueNode?
1515
@Published var filterOptions = IssueFilterOptions()
1616
@Published private(set) var filteredRootNode: ProjectIssueNode?
1717

1818
let diagnosticsDidChangePublisher = PassthroughSubject<Void, Never>()
1919

20-
// Store file nodes by URI for efficient lookup and to avoid duplication
2120
private var fileNodesByUri: [DocumentUri: FileIssueNode] = [:]
22-
23-
// Track expansion state separately to persist it
2421
private var expandedFileUris: Set<DocumentUri> = []
2522

2623
func initialize(projectName: String) {
@@ -41,7 +38,6 @@ class IssueNavigatorViewModel: ObservableObject {
4138
let fileNode: FileIssueNode
4239
if let existingNode = fileNodesByUri[uri] {
4340
fileNode = existingNode
44-
// Clear existing diagnostics
4541
fileNode.diagnostics.removeAll(keepingCapacity: true)
4642
} else {
4743
// Create new file node

CodeEdit/Features/NavigatorArea/IssueNavigator/OutlineView/IssueNavigatorOutlineView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ struct IssueNavigatorOutlineView: NSViewControllerRepresentable {
5858
// Cancel existing subscriptions
5959
cancellables.removeAll()
6060

61-
guard let viewModel = workspace?.issueNavigatorViewModel else { return }
61+
guard let viewModel = workspace?.diagnosticsManager else { return }
6262

6363
// Listen for diagnostic changes
6464
viewModel.diagnosticsDidChangePublisher

CodeEdit/Features/NavigatorArea/IssueNavigator/OutlineView/IssueNavigatorViewController+NSOutlineViewDataSource.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ extension IssueNavigatorViewController: NSOutlineViewDataSource {
1111
func outlineView(_ outlineView: NSOutlineView, numberOfChildrenOfItem item: Any?) -> Int {
1212
if item == nil {
1313
// If there are no issues, don't show the project node
14-
if let rootNode = workspace?.issueNavigatorViewModel?.filteredRootNode {
14+
if let rootNode = workspace?.diagnosticsManager?.filteredRootNode {
1515
return rootNode.files.isEmpty ? 0 : 1
1616
}
1717
return 0
@@ -27,7 +27,7 @@ extension IssueNavigatorViewController: NSOutlineViewDataSource {
2727

2828
func outlineView(_ outlineView: NSOutlineView, child index: Int, ofItem item: Any?) -> Any {
2929
if item == nil {
30-
return workspace?.issueNavigatorViewModel?.filteredRootNode as Any
30+
return workspace?.diagnosticsManager?.filteredRootNode as Any
3131
}
3232
if let node = item as? ProjectIssueNode {
3333
return node.files[index]

CodeEdit/Features/NavigatorArea/IssueNavigator/OutlineView/IssueNavigatorViewController+NSOutlineViewDelegate.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ extension IssueNavigatorViewController: NSOutlineViewDelegate {
9494
if let fileNode = node as? FileIssueNode {
9595
fileNode.isExpanded = true
9696
expandedItems.insert(fileNode)
97-
workspace?.issueNavigatorViewModel?.setFileExpanded(fileNode.uri, isExpanded: true)
97+
workspace?.diagnosticsManager?.setFileExpanded(fileNode.uri, isExpanded: true)
9898
} else if let projectNode = node as? ProjectIssueNode {
9999
projectNode.isExpanded = true
100100
}
@@ -106,7 +106,7 @@ extension IssueNavigatorViewController: NSOutlineViewDelegate {
106106
if let fileNode = node as? FileIssueNode {
107107
fileNode.isExpanded = false
108108
expandedItems.remove(fileNode)
109-
workspace?.issueNavigatorViewModel?.setFileExpanded(fileNode.uri, isExpanded: false)
109+
workspace?.diagnosticsManager?.setFileExpanded(fileNode.uri, isExpanded: false)
110110
} else if let projectNode = node as? ProjectIssueNode {
111111
projectNode.isExpanded = false
112112
}
@@ -116,11 +116,11 @@ extension IssueNavigatorViewController: NSOutlineViewDelegate {
116116
func outlineView(_ outlineView: NSOutlineView, itemForPersistentObject object: Any) -> Any? {
117117
guard let uri = object as? String else { return nil }
118118

119-
if let fileNode = workspace?.issueNavigatorViewModel?.getFileNode(for: uri) {
119+
if let fileNode = workspace?.diagnosticsManager?.getFileNode(for: uri) {
120120
return fileNode
121121
}
122122

123-
if let rootNode = workspace?.issueNavigatorViewModel?.filteredRootNode,
123+
if let rootNode = workspace?.diagnosticsManager?.filteredRootNode,
124124
rootNode.id.uuidString == uri {
125125
return rootNode
126126
}

CodeEdit/Features/NavigatorArea/IssueNavigator/OutlineView/IssueNavigatorViewController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ final class IssueNavigatorViewController: NSViewController {
108108

109109
/// Saves the current expansion state to UserDefaults
110110
private func saveExpansionState() {
111-
guard let viewModel = workspace?.issueNavigatorViewModel else { return }
111+
guard let viewModel = workspace?.diagnosticsManager else { return }
112112

113113
let expandedUris = viewModel.getExpandedFileUris()
114114
let urisArray = Array(expandedUris)
@@ -118,7 +118,7 @@ final class IssueNavigatorViewController: NSViewController {
118118

119119
/// Loads the expansion state from UserDefaults
120120
private func loadExpansionState() {
121-
guard let viewModel = workspace?.issueNavigatorViewModel else { return }
121+
guard let viewModel = workspace?.diagnosticsManager else { return }
122122

123123
if let urisArray = UserDefaults.standard.stringArray(forKey: expansionStateKey) {
124124
let expandedUris = Set(urisArray)

0 commit comments

Comments
 (0)