 = KTurtle TODOs =

Besides this document you can find TODO items in the code (try grepping for 'TODO'), in the BUGS file and on bugs.kde.org.

 == general ==
 * complain about the 'Switch Application Language...' in the Help menu.
 * Run action group has WhatIsThis, but it doesnt work -- file a bug...
 * no secret that i dont like WhatIsThis, it cannot even refer by a link to the Handbook! (useless piece of s***)
 * dowload some other LOGO programming manuals that are targetted at young crowd, use these while editing the handbook

 == mainwindow ==
 * have a look at KDE's new build-in 'Switch Application Language...', could it fully replace ours.
 * make fullscreen mode (hide all GUI elements but the canvas during execution)
 * printing dialogs may need some finetuning (like: further kdeification, overwrite protection, etc.)
 * do reordering (in stead of duping) when adding already existing recent file items
 * disable most of the actions (like File, Edit, Canvas and more) while executing (BUG in bugzilla)

 == interpreter ==
 * finish unittests
 * fix failing unittests (division by zero, sqrt of a negtive)
 * maybe make some switch statement to flip between DEG and RAD
 * profile the whole thing... just curiosity -- how much time is spend in what functions
 * commanline invoke doesnt handle local files well (like: ../script.turtle)

 == canvas ==
 * make state of all things available to the executer (add more get* commands)
 * context menu (right click) for export and print
 * DON'T add wrapping functionality (not a ToDo, but a DontDo)

 == editor ==
 * finish context help (F2) action -- work on the handbook
 * disable save (not saveAs), or make it work properly for examples
 * save can be disabled after a code has been saved

 == PR ==
 * make wikipedia page nicer (screenshots, etc.)
 * release a pre-release
 * maybe: team up with windows/osx team for a kturtle only installers
 * a page (wiki?) for childrens and teachers manual + translations + translators info [or docbook; KDE translated] (userbase??)


 == maybe someday's ==
 * refactor the generators ruby code
 * create a generated parser (yacc/bison style; Qt has a parser, KDevelop too)




PLAN: SOLVE GENERAL AMBIGUITY REGARDING THE TOKEN thingy
right now token types are used all over the place. this is not the right way because:
 - Token types should be used for tokenizing of the string only. (ie: fw,{,"s",$a, ,#littlecomment,2.2,EOL,+,= are tokens)
 - right now their are also used as TreeNode types (ie: Scope, Root, ArgumentList)
 - and they are used as translatables in the translation lookup table (especially $,.,# are not tokens by them selves)
currently this is not really a problem -- it works. yet it is not 'how it should be'.
fixing this involved a big rewrite of the generator code, which result may be a major refactor of the interpreter.
therefor this should not be started before a proper unittest framework is in place.



tada:
 * add no-highlighting run mode (speed things up drastically)
 * F2 context help works now (still have to update the handbook pages)
 * antialiassing for export to PNG, like on Canvas itseelf
 * export to SVG added.. turtle not exported into the picture (have to wait for later Qt, or very ugly, or someones clever workaround)
 * row/col statusbar bug fixed
 * when looking at errors tab and running again switch back to canvas automatically
 * added html export for code
 * shuffled the menu items around a bit. new: Canvas and Run menus; moved View action sinto Settings
 * added printing of the canvas
 * replaced commandline execution mode with DBUS interface
 * added RSpec some initial unittests (in Ruby) that make use of the DBUS interface
 * made a syntax highlighting nicer (more style categories)

