X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Ftodo.txt;h=37a61d71c7a3b2d7698750722338917aa8a84a2c;hb=499318ae3ca1322044b62814bb8891fc26d641fe;hp=6791965cccf2a92755d51f79a5d4371ca5c63e52;hpb=935cf8ea936b08506937e71bff05e23a0682e671;p=protos%2Flibecoli.git diff --git a/lib/todo.txt b/lib/todo.txt index 6791965..37a61d7 100644 --- a/lib/todo.txt +++ b/lib/todo.txt @@ -2,15 +2,19 @@ tk_cmd ====== X evaluate expression tree in ec_tk_expr -- cmd token +X cmd token - example X tk_re -cleanup -======= +cleanup / rework +================ +- add_no_match +- add_partial_match - check XXX in code +- properly manage quotes in shlex X remove the _new() functions +- iterate children nodes without chaining them - add a tk vector type: will be used in several nodes (ex: or, seq, ...) - check allocation model everywhere - checkpatch? @@ -21,15 +25,30 @@ X remove the _new() functions - missing static / const - license: "s/neither the name...may/the names of its contributors may not/" - check all completion nodes -- split ecoli_tk.h +X split ecoli_tk.h - cache results when appropriate? - size_t or unsigned int? -- rename: - - ec_tk -> ec_node - - ec_parsed_tk -> ec_parsed - - ec_completed_tk -> ec_completed - - tk, gen_tk, token, ... -> node - - tokens -> input_str / input_strvec ? +X rename: + X ec_tk -> ec_node + X ec_parsed_tk -> ec_parsed + X ec_completed_tk -> ec_completed + X tk, gen_tk, token, ... -> node + X tokens -> input_str / input_strvec ? +- use is_err() or errno for funcs returning ptrs, or use errno for all funcs +- save node path in completion to fix help string +- code coverage +- try to hide structures +- anything better than weakref? +- add get_max_parse_len() for all relevant nodes +- add ec_node_defaults.[ch] providing usual implementations of node methods +- use vec for strvec + +dependencies +============ + +X pass the current parsed state when parsing/completing +X new node "once" +- new node "condition" logs ==== @@ -40,6 +59,14 @@ yaml ==== X register nodes by name +- interface to add attributes: all nodes must be configurable through a + generic api + - attr string + - attr string list + - attr node + - attr node list + - attr int + - yaml interface to create nodes - example @@ -64,6 +91,7 @@ doc - each node - allocation model - say that it stops at first match (no ambigous support) +- say that completion must be exhaustive build framework =============== @@ -88,6 +116,7 @@ new nodes - ether, ip, network - fusion node: need to match several children, same for completion - float +- not encoding ======== @@ -100,3 +129,21 @@ netconf example =============== - demonstration example that parses yang file and generate cli + + + +----------------------- + +readline: + +[tab] list possible completions (matches only) +[?] list what is expected, example: + +"command [foo] toto|titi|" + +help("command f") -> + foo (help of foo) + toto (help of toto) + titi (help of titi) + (help of int) +