Updated todo and readme files.

This commit is contained in:
Nathan Vegdahl 2015-01-21 20:37:53 -08:00
parent 97b2f18870
commit ecb5fbc98e
2 changed files with 20 additions and 28 deletions

View File

@ -1,4 +1,8 @@
Led
===
Led is a simple console-based text editor, inspired loosely by [Zed](http://zedapp.org).
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).

42
todo.md
View File

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