Know issues ## Document / Syntax We would like to introduce an incremental parsing phase (see `tree-sitter`). Because, when you have tokens (which may be as simple as words) or an AST, completion / suggestion / highlighting / validation become easy. So we need to send events to a lexer/parser, update `Document` accordingly. And fix `Completer` / `Hinter` / `Highlighter` API such as they have access to `Document`. See [lex_document](https://python-prompt-toolkit.readthedocs.io/en/master/pages/advanced_topics/rendering_flow.html#the-rendering-flow). ## Repaint / Refresh Currently, performance is poor because, most of the time, we refresh the whole line (and prompt). We would like to transform events on prompt/line/hint into partial repaint. See `termwiz` design (`Surface`). See `replxx` refresh delay (`_lastRefreshTime`) or `python-prompt-toolkit` max_render_postpone_time. https://docs.rs/xi-unicode/0.3.0/xi_unicode/struct.LineBreakIterator.html https://github.com/xi-editor/xi-editor/blob/master/rust/core-lib/src/linewrap.rs [vt100](https://docs.rs/vt100/0.12.0/vt100/struct.Screen.html#method.contents_diff) ## Action / Command We would like to support user defined actions that interact nicely with undo manager and kill-ring. To do so, we need to refactor current key event dispatch. See `replxx` design (`ACTION_RESULT`, `action_trait_t`). ## Line wrapping (should be fixed with versions >= 6.1.2) On Unix platform, we assume that `auto_right_margin` (`am`) is enabled. And on Windows, we activate `ENABLE_WRAP_AT_EOL_OUTPUT`. But on Windows 10, `ENABLE_WRAP_AT_EOL_OUTPUT` and `ENABLE_VIRTUAL_TERMINAL_PROCESSING` seems to be incompatible. ## Colors We assume that ANSI colors are supported. Which is not the case on Windows (except on Windows 10)! ## Emoji https://github.com/kkawakam/rustyline/issues/184 https://docs.rs/xi-unicode/0.3.0/xi_unicode/trait.EmojiExt.html https://docs.rs/termwiz/0.11.0/termwiz/cell/fn.grapheme_column_width.html