Compare commits

..

2 Commits

Author SHA1 Message Date
Julien Calixte
f77f6697d1 docs(roadmap): add v0.2.5 international input release
US-International dead-key accents, slotted after navigation without
renumbering later versions so ADR/qfd/README anchors stay valid. Also
adds a UTF-8-correct buffer groundwork bullet to v0.2.
2026-07-05 17:57:35 +02:00
Julien Calixte
de14b8418f feat(editor): use ISO-8859-15 font for accented glyphs
Swap the mono font from the ascii subset to iso_8859_15 (Latin-9) so
à é ê ç … œ € have glyphs. Cell size is identical, so ASCII rendering is
byte-for-byte unchanged; groundwork for v0.2.5 international input.
2026-07-05 17:57:29 +02:00
3 changed files with 29 additions and 2 deletions

View File

@@ -130,7 +130,8 @@ gantt
v0.1 it writes, it pushes :v01, 2026-06-01, 4w
section Vim
v0.2 navigation :v02, after v01, 3w
v0.3 editing :v03, after v02, 3w
v0.2.5 international input :v025, after v02, 2w
v0.3 editing :v03, after v025, 3w
v0.4 visual + ex :v04, after v03, 2w
section Files
v0.5 palette + multi-file :v05, after v04, 3w
@@ -146,6 +147,7 @@ gantt
| ------------------------------------------------------- | ------------ | ------------------------------------------ |
| [v0.1](docs/roadmap.md#v01--mvp-it-writes-it-pushes--) | MVP | Boots, edits one file, `Ctrl-G` pushes. |
| [v0.2](docs/roadmap.md#v02--vim-navigation--) | Vim nav | Normal/Insert, motions, line numbers. |
| [v0.2.5](docs/roadmap.md#v025--international-input--) | Intl input | US-Intl dead keys: à é ê ç, `'`+space = `'`. |
| [v0.3](docs/roadmap.md#v03--vim-editing--) | Vim edit | `dd yy p`, undo/redo, counts. |
| [v0.4](docs/roadmap.md#v04--visual-mode--ex-commands--) | Visual + ex | `v V`, `:w :q :e` command line. |
| [v0.5](docs/roadmap.md#v05--file-palette--multi-file--) | Files | `Ctrl-P` over `/repo` + `/local`, buffers. |

View File

@@ -35,6 +35,28 @@ Out of scope: Vim, palette, multiple files, branches, conflict handling.
- [ ] `Esc` returns to Normal
- [ ] Line numbers in the left gutter: relative in Normal mode (current line
shown as its absolute number), absolute in Insert mode
- [ ] Groundwork — UTF-8-correct buffer: caret motions and edits step by
character, not byte (drop the ASCII == byte-offset assumption in
`editor.rs`), so every motion added here and later stays correct once
accented input lands. Done early so it isn't retrofitted across the whole
motion/text-object surface. Render font is already ISO-8859-15 (Latin-9),
so accented glyphs display.
## v0.2.5 — International input — [ ]
A small focused release between navigation and editing. US-International
dead-key accent composition, resolved in the keyboard layer (`usb_kbd.rs`) so
the editor still receives a single `Key::Char`. Builds on the v0.2
UTF-8-correct buffer and the ISO-8859-15 render font.
- [ ] Dead keys — grave, acute, circumflex, diaeresis, tilde — compose with
the next letter: à é ê ë ñ, ç (via `'`+c), both cases
- [ ] `'`+space emits a literal apostrophe (the everyday apostrophe path); a
dead key followed by a non-composing letter emits the accent then the
letter
- [ ] A non-character event (Enter, Backspace, arrows) flushes any pending
accent as its literal first
- [ ] Pending-accent indicator in the side-panel status strip
## v0.3 — Vim editing — [ ]

View File

@@ -7,7 +7,10 @@
//! on the logical (`\n`-delimited) buffer; word-wrapping and scrolling are a
//! render-time concern handled by [`Editor::draw`].
use embedded_graphics::mono_font::ascii::{FONT_6X10, FONT_10X20};
// ISO-8859-15 (Latin-9) rather than the ascii subset: same glyph cells, but it
// carries the accented Latin glyphs (à é ê ç … plus œ €) that international
// input will emit. ASCII rendering is byte-for-byte unchanged.
use embedded_graphics::mono_font::iso_8859_15::{FONT_6X10, FONT_10X20};
use embedded_graphics::mono_font::MonoTextStyle;
use embedded_graphics::pixelcolor::BinaryColor;
use embedded_graphics::prelude::*;