✨ Diagnostic Manager
還沒有人認領這個 Issue。
評估
研究方向
先定位編輯器的 Issue Navigator 和 Line Annotations 元件,接著追蹤它們目前如何接收診斷資料。根據需求定義 DiagnosticManager 和 DiagnosticIssue,並依檔案及可觀察的變更分組更新;完成的條件是兩個元件都能使用 manager 作為共用的診斷來源。
由索引模型根據 Issue 內容生成。
描述
Description
Introduce a DiagnosticManager responsible for managing and publishing diagnostics (e.g., build errors, linter warnings, language server issues) grouped by file. This manager will serve as the single source of truth for diagnostics across the editor, and its contents will drive visual components such as the Issue Navigator and Line Annotations.
Requirements
- Create a
DiagnosticManagerclass conforming toObservableObject - Store diagnostics as a flat list or grouped by file:
@Published var issues: [DiagnosticIssue] - Define a
DiagnosticIssuemodel:struct DiagnosticIssue: Identifiable, Hashable { let id: UUID = UUID() let file: URL let line: Int let column: Int? let message: String let severity: Severity let source: String? let fixItSuggestion: String? enum Severity { case error, warning, info, live } } - Add convenience accessors:
var issuesByFile: [URL: [DiagnosticIssue]] func issues(for file: URL) -> [DiagnosticIssue] - Add a way to update issues by file, e.g.:
func setIssues(_ issues: [DiagnosticIssue], for file: URL) func clearIssues(for file: URL)
Additional Context
This manager will be used by multiple parts of the app, including the Issue Navigator and Line Annotations. It should be reactive and efficient, allowing UI components to automatically update when diagnostics change.
Future extensions may include filtering, debouncing updates, or supporting different diagnostics sources (build system, LSP, etc.).
Related Issues
- 主要語言
- Swift
- 星號
- 23k
- 分支
- 1.2k
- PR 合併指標
- 30 天內沒有已合併 PR
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
CodeEditApp/CodeEdit 的其他 Issue
-
難度 2/5 1-3 小時 新手友好度 78/100
CodeEditApp/CodeEdit#2190 ·
-
難度 1/5 1 小時以內 新手友好度 15/100
CodeEditApp/CodeEdit#2195 · 7 個 reaction ·
-
enhancement
難度 4/5 3-5 天 新手友好度 35/100
CodeEditApp/CodeEdit#2185 ·
-
難度 5/5 一週以上 新手友好度 25/100
CodeEditApp/CodeEdit#2181 ·
-
bug
難度 4/5 3-5 天 新手友好度 35/100
CodeEditApp/CodeEdit#2180 ·
查看 CodeEditApp/CodeEdit 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 75/100
-
enhancement
難度 1/5 1 小時以內 新手友好度 80/100
-
T-Defect
難度 2/5 1-3 小時 新手友好度 75/100
element-hq/element-x-ios#6191 ·
-
難度 2/5 1-3 小時 新手友好度 75/100
-
難度 2/5 1-3 小時 新手友好度 75/100
googleapis/google-cloud-swift#1106 ·