led/todo.md

1.2 KiB

  • 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)