initial commit
This commit is contained in:
52
_bmad-output/implementation-artifacts/5-6-autocomplete.md
Normal file
52
_bmad-output/implementation-artifacts/5-6-autocomplete.md
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
epic: 5
|
||||
story: 5.6
|
||||
title: "Autocomplete"
|
||||
status: draft
|
||||
---
|
||||
|
||||
## Epic 5 — Variables, Line References & Aggregators
|
||||
**Goal:** Transform the notepad into a lightweight computational document.
|
||||
|
||||
### Story 5.6: Autocomplete
|
||||
|
||||
As a **CalcPad user**,
|
||||
I want an autocomplete popup that suggests variables, units, and functions as I type,
|
||||
So that I can work faster and avoid typos in long variable names or function calls.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
|
||||
**Given** the user has declared variables `monthly_rent`, `monthly_insurance`, and `mortgage_payment`
|
||||
**When** the user types `mo` in the editor (2+ characters)
|
||||
**Then** an autocomplete popup appears showing `monthly_rent`, `monthly_insurance`, `mortgage_payment` as suggestions
|
||||
|
||||
**Given** the autocomplete popup is visible with suggestions
|
||||
**When** the user presses Tab or Enter
|
||||
**Then** the currently highlighted suggestion is inserted into the editor at the cursor position
|
||||
**And** the popup dismisses
|
||||
|
||||
**Given** the autocomplete popup is visible
|
||||
**When** the user presses Escape
|
||||
**Then** the popup dismisses without inserting anything
|
||||
**And** the user's partially typed text remains unchanged
|
||||
|
||||
**Given** the user types `sq` in the editor
|
||||
**When** the autocomplete popup appears
|
||||
**Then** it includes built-in functions like `sqrt` and any user-defined variables starting with `sq`
|
||||
|
||||
**Given** the user types a single character (e.g., `m`)
|
||||
**When** the engine checks whether to show autocomplete
|
||||
**Then** the popup does NOT appear (threshold is 2+ characters)
|
||||
|
||||
**Given** the autocomplete popup is showing and the user continues typing
|
||||
**When** the typed text no longer matches any known variable, unit, or function
|
||||
**Then** the popup automatically dismisses
|
||||
|
||||
**Given** the user types `k` after a number (e.g., `50k`)
|
||||
**When** the engine checks autocomplete context
|
||||
**Then** the autocomplete recognizes this as a unit/suffix context and suggests `kg`, `km`, `kB`, etc. (not variable names)
|
||||
|
||||
**Given** the user navigates the autocomplete list with arrow keys
|
||||
**When** the user presses Up or Down
|
||||
**Then** the highlighted suggestion changes accordingly
|
||||
**And** the list scrolls if necessary to keep the selection visible
|
||||
Reference in New Issue
Block a user