a Jolt Workspace todo: enable ColaParser backtrace. todo: cursor keys cancel undo todo: search todo: use gap memory method or piece method for the inner structure. todo: Event related code should be in one place. todo done: use newer jolt todo done: killline todo done: undo todo done: cleanup text getPosition: todo done: physical line numbers todo done: Editor has a pointer of display object(surface) todo done: line dirty todo done: remove container todo done: remove globalToLocal: todo done: Use size instead start and stop. todo done: get all sub methods for test case todo done: coordination should be top positive todo done: implement SDLWindow todo done: width calculation is bad for font size. todo done: proper damage rectangle todo done: make TestCase class and each .st file have its own test cases. todo done: Error handling using a block todo done: Rewrite everything using String instead of linked-list. todo done: imprve cursor speed with PlainText todo done: make an interface to use both string / line-list implementation for a text todo done: logical line numbers todo done: mouse todo done: PlainText's line should always include '' if it is empty or the end of file is \n so that it is easy to append new string. todo done: appendLines: -> appendLine: = design of ComposedText members - lines : a list of Range - text : a TextModel = TestCase and TAP http://en.wikipedia.org/wiki/Test_Anything_Protocol http://o.mengue.free.fr/blog/2007/04/12/24-simple-perl-wrapper-for-non-perl-tap-programs http://blog.livedoor.jp/dankogai/archives/51024711.html = - Rewrite everything using String instead of linked-list. - Keep logical lines to optimize text insertion. - Keep phisycal lines object to cache screen position. = Observer API Object>>when:do: Object>>triggerEvent:with: EventTable "object -> symbol -> {action}" = [[[[[Editor default] _vtable] selectors] printString] putln] == Count line numbers (shell-command "/bin/find . -name '*.st' -o -name '*.k' | xargs wc") == shell ./jsh -Llib boot.k - == Compile on emacs (progn (setenv "IDSTPATH" "/C/takashi/src/idst") (setenv "PATH" "C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\msys\\1.0\\bin;C:\\msys\\1.0\\mingw\\bin;C:\\msys\\1.0\\local\\bin;C:\\GTK\\bin;C:\\cygwin\\bin") (setenv "PKG_CONFIG_PATH" "/C/GTK/lib/pkgconfig") (setenv "C_INCLUDE_PATH" "/C/GTK/include") (setq explicit-shell-file-name "C:/msys/1.0/bin/sh.exe") (setq shell-file-name "C:/msys/1.0/bin/sh.exe")) export IDST_DIR=/c/takashi/src/idst make == Clean run $ PATH="" ./bottle.exe = references - http://cairographics.org/manual/ - http://ned.rubyforge.org/ - http://www.cs.unm.edu/~crowley/papers/sds/sds.html