cmdr
Check-in [4c80a42e4d]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Notes on current state and future directions to work on.
Timelines: family | ancestors | say-more
Files: files | file ages | folders
SHA1: 4c80a42e4d406d0f677d5a1656e0de2f79fa4fee
User & Date: andreask 2015-05-01 23:30:55.379
Context
2015-05-01
23:30
Notes on current state and future directions to work on. Leaf check-in: 4c80a42e4d user: andreask tags: say-more
22:55
New command for output to stderr, plus two higher-level helpers for headers and banners. check-in: 64bb90174f user: andreask tags: say-more
Changes
Unified Diff Ignore Whitespace Patch
Changes to say.tcl.
14
15
16
17
18
19
20





































21
22
23
24
25
26
27
# Meta require {Tcl 8.5-}
# Meta require debug
# Meta require debug::caller
# Meta require cmdr::color
# Meta require linenoise
# Meta require TclOO
# @@ Meta End






































# # ## ### ##### ######## ############# #####################
## Requisites

package require Tcl 8.5
package require cmdr::color
package require debug







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# Meta require {Tcl 8.5-}
# Meta require debug
# Meta require debug::caller
# Meta require cmdr::color
# Meta require linenoise
# Meta require TclOO
# @@ Meta End

# # ## ### ##### ######## ############# #####################
##

# Notes on things to work on ...

# - "operation" is possibly mis-named. Its main topic looks to be
#   about animation which is green-threaded around its code-block.
#
# - Animation, or in general, "animated feedback" needs flags and
#   acessors to disable it, for example when stdout is not a
#   tty. Similar to how the color commands become no-ops in that case.
#
#   Because usually we do not wish to clutter a log file with the
#   mixture of strings and terminal control sequences used to implement
#   the animations.
#
# - Strongly consider moving "operation" and the various animation
#   classes into a separate package operating on top of this one,
#   i.e. "cmdr::say". This would have the flag control as well.
#
# - Regarding base animation classes have to implement compositing
#   classes (wrapper for fixed header/trailer strings around an
#   animation, sequence of animations (must have matching 'step'
#   signature) - Interesting case for sequences: How much can we
#   automate (derive) the individual -width specifications from an
#   overall setting and knowledge of fixed sizes ?
#
# - Animation implementation base class => configure|cget API
#
# - Two common use-cases for the animations:
#
#   (a) Timer-driven animation, usually for an operation not
#       generating (usable) feedback.
#
#   (b) Progress-driven animation, usually for an operation generating
#       proper feedback we can use to drive it.

# # ## ### ##### ######## ############# #####################
## Requisites

package require Tcl 8.5
package require cmdr::color
package require debug