aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2013-02-18 23:42:34 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2013-02-22 01:18:05 +0100
commitea3f28cdd021380cb9962a1d7391d6539a44af00 (patch)
treee6d6906f7a032ac94f7cef4a2ffb3170afd773b9
parentbd19970eb858a7c7466ce0a80377a4b44c385a97 (diff)
downloadsciteco-ea3f28cdd021380cb9962a1d7391d6539a44af00.tar.gz
updated TODO: Optimizations section
-rw-r--r--TODO10
1 files changed, 7 insertions, 3 deletions
diff --git a/TODO b/TODO
index 23efe31..4acc828 100644
--- a/TODO
+++ b/TODO
@@ -8,7 +8,6 @@ Known Bugs:
Features:
* protect ED hook executions (process like "(<x>M0$)")
- * refactor search commands (create proper base class)
* Progress indication in commandline cursor
* catch OOM errors (can happen easily due to infinite loops)
* undo-tokens per char limit (additional infinite loop safety)
@@ -17,7 +16,6 @@ Features:
* function-key encoding (e.g. Page-down -> ^FPD), or
* function-key to ASCII/UTF mapping (as command executes macro of the same name)
* Command to free Q-Register (remove from table)
- * refactor match-char state machine using MicroStateMachine class
* autocompletion of long Q-Reg names
* Q-Register aliasing/linking
* EC command
@@ -27,22 +25,28 @@ Features:
* perhaps use Scintilla view as mini buffer
* improve GTK interface
* modifier for toggling string building processing
- * simplify parser (static jump tables are unnecessary!)
* ??? optional modified-detection based on hash sums ???
* backup files, or even better Journal files:
could write a Macro file for each modified file containing
only basic commands (no loops etc.). it is removed when the file is
saved. in case of an abnormal program termination the
journal file can be replayed.
+
+Optimizations:
+ * refactor search commands (create proper base class)
+ * refactor match-char state machine using MicroStateMachine class
+ * simplify parser (static jump tables are unnecessary!)
* search and other commands can be significantly optimized:
in batch mode, or in loops/macros there is no need to rematch every character!
-> immediate vs. non-immediate command execution
+ * can be handled automatically in StateExpectString
* batch mode can be optimized by preventing unnecessary allocations/deallocations
for UNDO token creation. Check for undo.enabled in constructors like
undo.push_msg|var() where the undo token destruction does not have any
significant side effects.
* use "friend" functions for C-linkage callbacks that must access a class'
member instead of making that member public
+ * when setting/getting Q-Reg string, use special dummy Scintilla view
Documentation:
* Code docs (Doxygen)