aboutsummaryrefslogtreecommitdiffhomepage
path: root/TODO
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2016-11-19 23:59:52 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2016-11-20 01:52:39 +0100
commit84ab1698e63170a94cfa1c5d99b7316cf3c2b584 (patch)
treecb87e28be35e710b960d6e643f4ea7cf5596ec96 /TODO
parentf9e6f8630cdb0c6d056154b82e8f94289509f48a (diff)
auto-completion of Q-Register names, goto labels and help topics
* Using a common implementation in RBTreeString::auto_complete(). This is very efficient even for very huge tables since only an O(log(n)) lookup is required and then all entries with a matching prefix are iterated. Worst-case complexity is still O(n), since all entries may be legitimate completions. If necessary, the number of matching entries could be restricted, though. * Auto completes short and long Q-Reg names. Short names are "case-insensitive" (since they are upper-cased). Long specs are terminated with a closing bracket. * Long spec completions may have problems with names containing funny characters since they may be misinterpreted as string building characters or contain braces. All the auto-completions suffered from this problem already (see TODO). * This greatly simplifies investigating the Q-Register name spaces interactively and e.g. calling macros with long names, inserting environment registers etc. * Goto labels are terminated with commas since they may be part of a computed goto. * Help topics are matched case insensitive (just like the topic lookup itself) and are terminated with the escape character. This greatly simplifies navigating womanpages and looking up topics with long names.
Diffstat (limited to 'TODO')
-rw-r--r--TODO16
1 files changed, 15 insertions, 1 deletions
diff --git a/TODO b/TODO
index 2585efb..7708132 100644
--- a/TODO
+++ b/TODO
@@ -74,6 +74,17 @@ Known Bugs:
window titles on exit using XTerm.
* Glib (error) messages are not integrated with SciTECO's
logging system.
+ * Auto-completions are prone to unexpected results when
+ the insertion contains string-building characters, braces
+ (for Q-Register auto-completions) or escape characters
+ (just consider autocompleting after @FG/...).
+ Insertions should thus be escaped.
+ A new string building command should consequently be
+ introduced to insert an ASCII character by digits,
+ e.g. ^E0XXX.
+ Also, auto-completions within string-building constructs
+ (except Q-Reg specs) should generally be disabled since
+ the result will be unpredictable.
Features:
* Auto-indention could be implemented via context-sensitive
@@ -167,7 +178,6 @@ Features:
* ER command: read file into current buffer at dot
* nEW to save a buffer by id
* ^A and stdio in general
- * autocompletion of long Q-Reg names
* Buffer ids should be "circular", i.e. interpreted modulo the
number of buffers in the ring. This allows "%*" to wrap at the
end of the buffer list.
@@ -305,3 +315,7 @@ Optimizations:
Documentation:
* Code docs (Doxygen). It's slowly getting better...
+ * The ? command could be extended to support looking
+ up help terms at dot in the current document (e.g. if called ?$).
+ Furthermore, womanpages could contain "hypertext" links
+ to help topics using special Troff markup and grosciteco support.