38 lines
1.4 KiB
Markdown
38 lines
1.4 KiB
Markdown
---
|
|
epic: 8
|
|
story: 8.3
|
|
title: "Syntax Highlighting"
|
|
status: draft
|
|
---
|
|
|
|
## Epic 8 — Windows App (Rust + iced)
|
|
**Goal:** Fast, lightweight native Windows app -- single .exe, no runtime dependencies.
|
|
|
|
### Story 8.3: Syntax Highlighting
|
|
|
|
As a **Windows user**,
|
|
I want syntax highlighting in the editor that colors numbers, operators, units, variables, comments, and errors,
|
|
So that I can visually parse my calculations quickly.
|
|
|
|
**Acceptance Criteria:**
|
|
|
|
**Given** the user types `total_cost = $1250 + $300 // monthly`
|
|
**When** the text is rendered
|
|
**Then** `total_cost` is colored as a variable, `=` and `+` as operators, `$1250` and `$300` as numbers/currency, and `// monthly` as a comment
|
|
|
|
**Given** the user types an expression that produces an error
|
|
**When** the text is rendered
|
|
**Then** the erroneous portion is highlighted with an error indicator (e.g., red underline or distinct color)
|
|
|
|
**Given** the Windows system theme is Light mode
|
|
**When** the editor renders
|
|
**Then** syntax colors have sufficient contrast on a light background
|
|
|
|
**Given** the Windows system theme is Dark mode
|
|
**When** the editor renders
|
|
**Then** syntax colors have sufficient contrast on a dark background
|
|
|
|
**Given** the syntax highlighting is implemented
|
|
**When** colors are applied to text spans
|
|
**Then** the engine tokenizer provides the span boundaries and token types, and the iced text renderer applies corresponding colors
|