- 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 - Undo functionality: - //Undo - //Redo - Edit transactions (for composite edit operations) - Info: - byte_count - //grapheme_count - //line_count - Position conversions: - //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) - //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)