CodeEdit
CodeEdit copied to clipboard
✨ Display Issues as Line Annotations In Source Editor
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
DiagnosticIssueinstances for the current file intoLineAnnotationobjects:struct LineAnnotation: Hashable, Identifiable { let id: UUID = UUID() let line: Int let column: Int let severity: DiagnosticIssue.Severity let text: String } - Extend
DiagnosticManagerwith a helper:func annotations(for file: URL) -> Set<LineAnnotation> - In views where
CodeEditSourceEditoris 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
- #2014 (pre-requisite)
- https://github.com/CodeEditApp/CodeEditSourceEditor/issues/297 (pre-requisite)
- #354