Posted to tcl by aspect at Sun Dec 29 07:23:07 GMT 2013view raw
- proc ::repl {{type "readline"}} {
- # finally start the enhanced REPL
- switch -exact $type {
- "linenoise" {
- # package require Tclx
- # proc trapint {} {
- # global sigint
- # puts "SIGINT"
- # incr sigint
- # }
- # signal trap SIGINT trapint
- package require linenoise
- while {1} {
- linenoise cmdloop -prompt1 {apply {{} {
- return "\033\[36mtclsh-[info patchlevel]\033\[0m \[\033\[34m[file tail [pwd]\033\[0m]\]\033\[31m % \033\[0m"
- }}} -prompt2 {apply {{} {
- return "[string repeat " " [string length "tclsh-[info patchlevel] \[[file tail [pwd]]\]"]]\033\[31m > \033\[0m"
- }}} -history yes
- }
- }
- "editline" {
- lappend ::auto_path /usr/local/share/eltcl
- package require eltclsh
- set ::el::prompt1 {subst -nov -noc "tclsh[info patchlevel] \[[pwd]\]% "}
- set ::el::prompt2 {list tclsh ...... >}
- interactive
- exit
- }
- "readline" {
- package require tclreadline
- ::tclreadline::Loop
- }
- "none" {
- }
- }
- }