summary refs log tree commit diff stats
path: root/TODO
Commit message (Expand)AuthorAgeFilesLines
* Closed #83 since I implemented :markhut2010-04-271-1/+1
* Fixed #85: no automatic reload after using :filterhut2010-04-271-1/+1
* TODO: moved #60 to "General"hut2010-04-261-1/+1
* Fixed bug #65 by adding flag "--fail-if-run"hut2010-04-261-1/+1
* fixed bug #78: broken preview when deleting all files in a directoryhut2010-04-261-1/+2
* TODO: updatehut2010-04-261-0/+2
* TODO: updatedhut2010-04-191-1/+2
* todo: added #81hut2010-04-161-0/+2
* reopened bug #65 since it reappearedhut2010-04-131-1/+1
* Todo: closed #79 (tab 0)hut2010-04-131-1/+1
* todo: updatehut2010-04-081-0/+2
* TODO: added #78hut2010-03-311-0/+1
* TODO: closed #45, it was implemented alreadyhut2010-03-311-1/+1
* closed issue #76 (was implemented in f5e9c01e)hut2010-03-291-1/+1
* new option: colorscheme_overlayhut2010-03-281-0/+1
* closed issue #70: mouse click handler for the titlebarhut2010-03-281-1/+1
* closed issue #71hut2010-03-281-1/+1
* todo: updatedhut2010-03-281-0/+2
* closed #73, reason was it didn't move and coords didnt get updatedhut2010-03-271-1/+1
* closed #40 for nowhut2010-03-271-2/+2
* fixed #74 and closed #67 (was fixed earlier)hut2010-03-271-2/+2
* TODO: added bug #74hut2010-03-211-0/+1
* updated TODO and pydochut2010-03-211-0/+3
* fixed #69: tab completion breaks with Apps subclasshut2010-03-171-1/+1
* general updates, allow column levels of >1hut2010-03-141-0/+1
* working on the configuration system / main methodhut2010-03-121-0/+1
* misc changeshut2010-03-121-0/+1
* added documentation on how colorschemes workhut2010-03-121-1/+1
* minor changeshut2010-03-081-0/+1
* colorschemes: use "Scheme" as the default class name for colorschemeshut2010-02-281-0/+1
* todo: fixed non-unique bug IDhut2010-02-281-1/+1
* todo: finished #63: limit filesize in previewshut2010-02-251-1/+2
* finished #52, special characters in tab completionhut2010-02-241-1/+1
* console: fixed tabcompletion in openconsole starting with !xyz!hut2010-02-241-0/+1
* todo: bug #64 seems to have fixed itself magicallyhut2010-02-241-1/+1
* incremented version number and updated pydoc html files v1.0.3hut2010-02-161-8/+1
* ui: catching exception from curs_sethut2010-02-151-0/+2
* actions: improved copying/movinghut2010-02-141-2/+4
* fixed #46: wrong username displayed when using suhut2010-02-131-1/+1
* implemented #61: show sum of size of marked fileshut2010-02-091-2/+2
* fixed #54: max_dirsize_for_autopreview option not workinghut2010-02-091-2/+2
* todo: added goals for next minor versionhut2010-02-091-0/+8
* implemented #58: update terminal titlehut2010-02-091-1/+1
* todo: added #60hut2010-02-051-0/+1
* todo: added #58hut2010-02-041-0/+2
* todo: added #56, #57hut2010-01-301-0/+2
* stuffhut2010-01-251-0/+1
* todo: added #52-#54hut2010-01-231-0/+3
* console: better tab completion for OpenConsolehut2010-01-231-1/+1
* directory: get_selection() returns *ordered* marked itemshut2010-01-211-0/+1
ass="p">) <- lookup *data-ah initialize-gap-buffer data, 0x1000/4KB var value-ah/eax: (addr handle stream byte) <- get self, value populate-stream value-ah, 0x1000/4KB var trace-ah/eax: (addr handle trace) <- get self, trace allocate trace-ah var trace/eax: (addr trace) <- lookup *trace-ah initialize-trace trace, 0x1000/lines, 0x80/visible-lines } ## some helpers for tests fn initialize-sandbox-with _self: (addr sandbox), s: (addr array byte) { var self/esi: (addr sandbox) <- copy _self var data-ah/eax: (addr handle gap-buffer) <- get self, data allocate data-ah var data/eax: (addr gap-buffer) <- lookup *data-ah initialize-gap-buffer-with data, s } fn allocate-sandbox-with _out: (addr handle sandbox), s: (addr array byte) { var out/eax: (addr handle sandbox) <- copy _out allocate out var out-addr/eax: (addr sandbox) <- lookup *out initialize-sandbox-with out-addr, s } ## fn render-sandbox screen: (addr screen), _self: (addr sandbox), xmin: int, ymin: int, xmax: int, ymax: int { clear-screen screen var self/esi: (addr sandbox) <- copy _self # data var data-ah/eax: (addr handle gap-buffer) <- get self, data var _data/eax: (addr gap-buffer) <- lookup *data-ah var data/edx: (addr gap-buffer) <- copy _data var x/eax: int <- copy xmin var y/ecx: int <- copy ymin var cursor-in-sandbox?/ebx: boolean <- copy 0/false { var cursor-in-trace?/eax: (addr boolean) <- get self, cursor-in-trace? compare *cursor-in-trace?, 0/false break-if-!= cursor-in-sandbox? <- copy 1/true } x, y <- render-gap-buffer-wrapping-right-then-down screen, data, x, y, xmax, ymax, cursor-in-sandbox? y <- increment # trace var trace-ah/eax: (addr handle trace) <- get self, trace var _trace/eax: (addr trace) <- lookup *trace-ah var trace/edx: (addr trace) <- copy _trace var cursor-in-trace?/eax: (addr boolean) <- get self, cursor-in-trace? y <- render-trace screen, trace, xmin, y, xmax, ymax, *cursor-in-trace? # value $render-sandbox:value: { var value-ah/eax: (addr handle stream byte) <- get self, value var _value/eax: (addr stream byte) <- lookup *value-ah var value/esi: (addr stream byte) <- copy _value rewind-stream value var done?/eax: boolean <- stream-empty? value compare done?, 0/false break-if-!= var x/eax: int <- copy 0 x, y <- draw-text-wrapping-right-then-down screen, "=> ", xmin, y, xmax, ymax, xmin, y, 7/fg, 0/bg var x2/edx: int <- copy x var dummy/eax: int <- draw-stream-rightward screen, value, x2, xmax, y, 7/fg=grey, 0/bg } # render menu var cursor-in-trace?/eax: (addr boolean) <- get self, cursor-in-trace? compare *cursor-in-trace?, 0/false { break-if-= render-trace-menu screen return } render-sandbox-menu screen } fn render-sandbox-menu screen: (addr screen) { var width/eax: int <- copy 0 var height/ecx: int <- copy 0 width, height <- screen-size screen var y/ecx: int <- copy height y <- decrement set-cursor-position screen, 0/x, y draw-text-rightward-from-cursor screen, " ctrl-s ", width, 0/fg, 7/bg=grey draw-text-rightward-from-cursor screen, " run sandbox ", width, 7/fg, 0/bg draw-text-rightward-from-cursor screen, " ctrl-d ", width, 0/fg, 7/bg=grey draw-text-rightward-from-cursor screen, " cursor down ", width, 7/fg, 0/bg draw-text-rightward-from-cursor screen, " ctrl-u ", width, 0/fg, 7/bg=grey draw-text-rightward-from-cursor screen, " cursor up ", width, 7/fg, 0/bg draw-text-rightward-from-cursor screen, " tab ", width, 0/fg, 9/bg=blue draw-text-rightward-from-cursor screen, " move to trace ", width, 7/fg, 0/bg } fn edit-sandbox _self: (addr sandbox), key: byte { var self/esi: (addr sandbox) <- copy _self var g/edx: grapheme <- copy key # running code { compare g, 0x12/ctrl-r break-if-!= # ctrl-r: run function outside sandbox # required: fn (addr screen), (addr keyboard) # Mu will pass in the real screen and keyboard. return } { compare g, 0x13/ctrl-s break-if-!= # ctrl-s: run sandbox(es) var data-ah/eax: (addr handle gap-buffer) <- get self, data var _data/eax: (addr gap-buffer) <- lookup *data-ah var data/ecx: (addr gap-buffer) <- copy _data var value-ah/eax: (addr handle stream byte) <- get self, value var _value/eax: (addr stream byte) <- lookup *value-ah var value/edx: (addr stream byte) <- copy _value var trace-ah/eax: (addr handle trace) <- get self, trace var trace/eax: (addr trace) <- lookup *trace-ah clear-trace trace run data, value, trace return } # tab var cursor-in-trace?/eax: (addr boolean) <- get self, cursor-in-trace? { compare g, 9/tab break-if-!= # if cursor in input, switch to trace { compare *cursor-in-trace?, 0/false break-if-!= copy-to *cursor-in-trace?, 1/true return } # if cursor in trace, switch to input copy-to *cursor-in-trace?, 0/false return } # if cursor in trace, send cursor to trace { compare *cursor-in-trace?, 0/false break-if-= var trace-ah/eax: (addr handle trace) <- get self, trace var trace/eax: (addr trace) <- lookup *trace-ah edit-trace trace, g return } # otherwise send cursor to input var data-ah/eax: (addr handle gap-buffer) <- get self, data var data/eax: (addr gap-buffer) <- lookup *data-ah edit-gap-buffer data, g return } fn run in: (addr gap-buffer), out: (addr stream byte), trace: (addr trace) { var read-result-storage: (handle cell) var read-result/esi: (addr handle cell) <- address read-result-storage read-cell in, read-result, trace var error?/eax: boolean <- has-errors? trace { compare error?, 0/false break-if-= return } # TODO: eval print-cell read-result, out mark-lines-dirty trace } fn test-run-integer { var sandbox-storage: sandbox var sandbox/esi: (addr sandbox) <- address sandbox-storage initialize-sandbox sandbox # type "1" edit-sandbox sandbox, 0x31/1 # eval edit-sandbox sandbox, 0x13/ctrl-s # setup: screen var screen-on-stack: screen var screen/edi: (addr screen) <- address screen-on-stack initialize-screen screen, 0x80/width, 0x10/height # render-sandbox screen, sandbox, 0/x, 0/y, 0x80/width, 0x10/height check-screen-row screen, 0/y, "1 ", "F - test-run-integer/0" check-screen-row screen, 1/y, "... ", "F - test-run-integer/1" check-screen-row screen, 2/y, "=> 1 ", "F - test-run-integer/2" } fn test-run-error-invalid-integer { var sandbox-storage: sandbox var sandbox/esi: (addr sandbox) <- address sandbox-storage initialize-sandbox sandbox # type "1a" edit-sandbox sandbox, 0x31/1 edit-sandbox sandbox, 0x61/a # eval edit-sandbox sandbox, 0x13/ctrl-s # setup: screen var screen-on-stack: screen var screen/edi: (addr screen) <- address screen-on-stack initialize-screen screen, 0x80/width, 0x10/height # render-sandbox screen, sandbox, 0/x, 0/y, 0x80/width, 0x10/height check-screen-row screen, 0/y, "1a ", "F - test-run-error-invalid-integer/0" check-screen-row screen, 1/y, "... ", "F - test-run-error-invalid-integer/0" check-screen-row screen, 2/y, "invalid number ", "F - test-run-error-invalid-integer/2" } fn test-run-move-cursor-into-trace { var sandbox-storage: sandbox var sandbox/esi: (addr sandbox) <- address sandbox-storage initialize-sandbox sandbox # type "12" edit-sandbox sandbox, 0x31/1 edit-sandbox sandbox, 0x32/2 # eval edit-sandbox sandbox, 0x13/ctrl-s # setup: screen var screen-on-stack: screen var screen/edi: (addr screen) <- address screen-on-stack initialize-screen screen, 0x80/width, 0x10/height # render-sandbox screen, sandbox, 0/x, 0/y, 0x80/width, 0x10/height check-screen-row screen, 0/y, "12 ", "F - test-run-move-cursor-into-trace/pre-0" check-background-color-in-screen-row screen, 7/bg=cursor, 0/y, " | ", "F - test-run-move-cursor-into-trace/pre-0/cursor" check-screen-row screen, 1/y, "... ", "F - test-run-move-cursor-into-trace/pre-1" check-background-color-in-screen-row screen, 7/bg=cursor, 1/y, " ", "F - test-run-move-cursor-into-trace/pre-1/cursor" check-screen-row screen, 2/y, "=> 12 ", "F - test-run-move-cursor-into-trace/pre-2" check-background-color-in-screen-row screen, 7/bg=cursor, 2/y, " ", "F - test-run-move-cursor-into-trace/pre-2/cursor" # move cursor into trace edit-sandbox sandbox, 9/tab # render-sandbox screen, sandbox, 0/x, 0/y, 0x80/width, 0x10/height check-screen-row screen, 0/y, "12 ", "F - test-run-move-cursor-into-trace/trace-0" check-background-color-in-screen-row screen, 7/bg=cursor, 0/y, " ", "F - test-run-move-cursor-into-trace/trace-0/cursor" check-screen-row screen, 1/y, "... ", "F - test-run-move-cursor-into-trace/trace-1" check-background-color-in-screen-row screen, 7/bg=cursor, 1/y, "||| ", "F - test-run-move-cursor-into-trace/trace-1/cursor" check-screen-row screen, 2/y, "=> 12 ", "F - test-run-move-cursor-into-trace/trace-2" check-background-color-in-screen-row screen, 7/bg=cursor, 2/y, " ", "F - test-run-move-cursor-into-trace/trace-2/cursor" # move cursor into input edit-sandbox sandbox, 9/tab # render-sandbox screen, sandbox, 0/x, 0/y, 0x80/width, 0x10/height check-screen-row screen, 0/y, "12 ", "F - test-run-move-cursor-into-trace/input-0" check-background-color-in-screen-row screen, 7/bg=cursor, 0/y, " | ", "F - test-run-move-cursor-into-trace/input-0/cursor" check-screen-row screen, 1/y, "... ", "F - test-run-move-cursor-into-trace/input-1" check-background-color-in-screen-row screen, 7/bg=cursor, 1/y, " ", "F - test-run-move-cursor-into-trace/input-1/cursor" check-screen-row screen, 2/y, "=> 12 ", "F - test-run-move-cursor-into-trace/input-2" check-background-color-in-screen-row screen, 7/bg=cursor, 2/y, " ", "F - test-run-move-cursor-into-trace/input-2/cursor" }