Know issues
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.
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
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
).
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.
We assume that ANSI colors are supported. Which is not the case on Windows (except on Windows 10)!
kkawakam#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