diff --git a/todo.md b/todo.md index b1ef588..5a1a197 100644 --- a/todo.md +++ b/todo.md @@ -1,31 +1,38 @@ - Custom line iterator code for file loading, because rust's built-in one only recognizes LF and CRLF. - Line number display +- Line wrapping - File opening by entering path - UI that wraps editors, for split view. - Persistent infinite undo +- Multiple cursors - "Projects" +- Move undo/redo functionality into Editor instead of Buffer - Clean up text buffer interface: - - Editing (these are undoable): - //- insert_text - //- remove_text_before - //- remove_text_after - //- move_text + - //Editing (these are undoable): + - //insert_text + - //remove_text_before + - //remove_text_after + - //move_text - Undo functionality: - //- Undo - //- Redo - - Op section begin (for delimiting composite edit operations) - - Op section end + - //Undo + - //Redo + - Edit transactions (for composite edit operations) - Info: - //- grapheme_count - //- line_count + - byte_count + - //grapheme_count + - //line_count - Position conversions: - //- index -> line_col - //- line_col -> index - //- index -> vis_2d - //- vis_2d -> index + - //index -> line_col + - //line_col -> index + - //index -> vis_2d + - //vis_2d -> index + - index -> byte_index + - byte_index -> index - Reading text: - - grapheme at index (includes visual width in return) - - Bidirectional grapheme iterator (useful for search code, etc.) - - Bidirectional ine iterator (useful for display code) + - //grapheme at index (includes visual width in return) + - //Grapheme iterator (useful for search code, etc.) + - Byte iterator (useful for search code, etc.) + - Reverse byte iterator (useful for search code, etc.) + - //Line iterator (useful for display code)