s|Cardinal|TBufferPosition| selection attributes (color, underline, boldness, selecting, search result, ...) urxvt: when the beginning of the line is a TAB character, the mouse handling will misjudge where the mouse click went. Actually support UTF-8 (for now, later other multi-byte encodings) in the view. user-accessible (regex?) search! formatter (lexer). rename "Consume" and "ConsumeOne" to "Next" and "???" since "Consume" is the low-level operation and this is the high level operation. ??? cursor keys up/down: restore the horizontal position afterwards (in pixels) to the closest character possible. per-line mark (for breakpoints?) and faster scrolling etc. vertical scroll bar: have a run_height. have a row_height. once run_height changes because you added something or row_height changes because a run has been added to the row or whatever, notify someone. that someone calculates a new total height of all rows. add a status bar entry for how many braces are still open and where (keywords) they are at (and which file is open at what line). per file, remember where you were (and the selection and undo log?) on exit and restore position when reentering. paste64: set clipboard: my $send = "\x1b]52;" . $target . ";" . $data . "\x1b\\"; paste64: get clipboard: get_reply("\x1b]52;" . $target . ";?\x1b\\"); better scrolling... a painter that remembers where the characters where: An optimized way of storing the data would probably be an array of X-offsets with a special value (negative?) to indicate an Y offset increase (with X=0). debugger support.