Open
Description
Description
Use the newly created DiagnosticManager
to provide file-specific diagnostics to the editor via LineAnnotations
. This connection allows visual issues to appear directly in the source editor view below the affected lines.
Requirements
- Convert
DiagnosticIssue
instances for the current file intoLineAnnotation
objects:struct LineAnnotation: Hashable, Identifiable { let id: UUID = UUID() let line: Int let column: Int let severity: DiagnosticIssue.Severity let text: String }
- Extend
DiagnosticManager
with a helper:func annotations(for file: URL) -> Set<LineAnnotation>
- In views where
CodeEditSourceEditor
is used:- Access the current file’s annotations using the manager
- Pass them into the editor view via:
annotations: Set<LineAnnotation>
- The editor should already know how to render the annotations; this task is only concerned with wiring up the data source.
Additional Context
This connects the data produced by DiagnosticManager
to line annotations introduced in CodeEditSourceEditor. This is a key step in surfacing diagnostics in a context-aware and developer-friendly way.
Later extensions might include showing annotations from multiple sources, updating annotations live from LSP, or supporting quick fixes from the underlying DiagnosticIssue
.
Related Issues
- ✨ Diagnostic Manager #2014 (pre-requisite)
- ✨ Line Annotations CodeEditSourceEditor#297 (pre-requisite)
- ✨ Issue Navigator #354
Metadata
Metadata
Assignees
Type
Projects
Status
📋 Todo