save
[protos/libecoli.git] / lib / todo.txt
1 tk_cmd
2 ======
3
4 X evaluate expression tree in ec_tk_expr
5 X cmd token
6 - example
7 X tk_re
8
9 cleanup / rework
10 ================
11
12 - ec_completed_item_update()
13 - ec_completed_item_set_display_value()
14
15 - add_no_match
16 - add_partial_match
17 - check XXX in code
18 - properly manage quotes in shlex
19 X remove the _new() functions
20 - iterate children nodes without chaining them
21 - add a tk vector type: will be used in several nodes (ex: or, seq, ...)
22 - check allocation model everywhere
23 - checkpatch?
24 - use linux style (update .emacs)
25 - better logs
26 - return values
27 - use errno when returning pointers
28 - missing static / const
29 - license: "s/neither the name...may/the names of its contributors may not/"
30 - check all completion nodes
31 X split ecoli_tk.h
32 - cache results when appropriate?
33 - size_t or unsigned int?
34 X rename:
35   X ec_tk -> ec_node
36   X ec_parsed_tk -> ec_parsed
37   X ec_completed_tk -> ec_completed
38   X tk, gen_tk, token, ... -> node
39   X tokens -> input_str / input_strvec ?
40 - use is_err() or errno for funcs returning ptrs, or use errno for all funcs
41 - save node path in completion to fix help string
42 - code coverage
43 - try to hide structures
44 - anything better than weakref?
45 - add get_max_parse_len() for all relevant nodes
46 - add ec_node_defaults.[ch] providing usual implementations of node methods
47 - use vec for strvec
48
49 dependencies
50 ============
51
52 X pass the current parsed state when parsing/completing
53 X new node "once"
54 - new node "condition"
55
56 logs
57 ====
58
59 - register log types
60
61 yaml
62 ====
63
64 X register nodes by name
65 - interface to add attributes: all nodes must be configurable through a
66   generic api
67   - attr string
68   - attr string list
69   - attr node
70   - attr node list
71   - attr int
72
73 - yaml interface to create nodes
74 - example
75
76 examples
77 ========
78
79 - example which parses arguments (argc/argv)
80 - example that acts as bash completion (ip link ?)
81 - calculator example (var assignation, expression evaluation)
82 - example with libedit
83 - mini script language
84 - configuration file
85
86 doc
87 ===
88
89 - overview
90 - add api doc in .h
91 - generate automatic api doc
92 - architecture
93 - coding rules, process
94 - each node
95 - allocation model
96 - say that it stops at first match (no ambigous support)
97 - say that completion must be exhaustive
98
99 build framework
100 ===============
101
102 - .map files for API
103 - split libs, tests and examples
104 - add make help
105 - add make config
106 - -fvisibility=
107
108 tests
109 =====
110
111 - complete automatic tests with "make test"
112
113 new nodes
114 =========
115
116 - regexp
117 - node which always matches
118 - file + partial completion
119 - ether, ip, network
120 - fusion node: need to match several children, same for completion
121 - float
122 - not
123
124 encoding
125 ========
126
127 - support utf-8 and other encodings
128 - example
129 - documentation
130
131 netconf example
132 ===============
133
134 - demonstration example that parses yang file and generate cli
135
136
137
138 -----------------------
139
140 readline:
141
142 [tab]  list possible completions (matches only)
143 [?]    list what is expected, example:
144
145 "command [foo] toto|titi|<int>"
146
147 help("command f") ->
148   foo     (help of foo)
149   toto    (help of toto)
150   titi    (help of titi)
151   <int>   (help of int)
152