From ecb5fbc98e6e28d1ffa0f2699f74873b0fdeb846 Mon Sep 17 00:00:00 2001 From: Nathan Vegdahl Date: Wed, 21 Jan 2015 20:37:53 -0800 Subject: [PATCH] Updated todo and readme files. --- readme.md | 6 +++++- todo.md | 42 +++++++++++++++--------------------------- 2 files changed, 20 insertions(+), 28 deletions(-) diff --git a/readme.md b/readme.md index 8a6e457..6c5202e 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,8 @@ Led === -Led is a simple console-based text editor, inspired loosely by [Zed](http://zedapp.org). \ No newline at end of file +Led is a simple text editor with both a console and GUI interface. + +The long-term goals of Led are to be a scriptable, cross-platform code editor that you can take with you wherever you go. It's a long ways off from that at the moment, however. + +Other projects that inspire the general direction of Led include [Zed](http://zedapp.org) and [Vim](http://www.vim.org). \ No newline at end of file diff --git a/todo.md b/todo.md index eaaed77..cd68755 100644 --- a/todo.md +++ b/todo.md @@ -1,3 +1,18 @@ +- Clean separation of text buffer from rest of code: + - Create a "BufferFormatter" trait that informs Buffer how its text + should be formatted. Such formatters then determine how the + text buffer graphemes map to a 2d display (e.g. how tabs are handles, + glyph size, spacing, line wrapping, etc.). Buffers then use + BufferFormatters for maintaing information necessary for + 1d <-> 2d operations. + - Create BufferFormatters for console and for freetype, including + preferences for tab width (specified in spaces) and line wrapping. + The freetype formatter should not reference SDL at all, and should + have only the freetype library itself as a dependency. + - Possibly split the text buffer out into its own library...? Would + likely be useful to other people as well, and would encourage me to + keep the API clean. + - Custom line iterator code for file loading, because rust's built-in one only recognizes LF and CRLF. - Line number display @@ -8,30 +23,3 @@ - Multiple cursors - "Projects" -- 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)