[Xotcl] Request for XOTcl proc and var type ahead in tkcon

Jeff Hobbs jeffh at ActiveState.com
Thu Apr 7 07:32:19 CEST 2005


Oh yeah ... tkcon seems to be certainly well enough architectured
(in this case ;) ) to handle this easily.  Add this to tkcon:

proc ::tkcon::ExpandXotcl str {
    # in a first step, get the cmd to check, if we should handle subcommands
    set cmd [::tkcon::CmdGet $::tkcon::PRIV(console)]
    # Only do the xotcl magic if there are two cmds and xotcl is loaded
    if {[llength $cmd] != 2
	|| ![EvalAttached [list info exists ::xotcl::version]]} {
	return
    }
    set obj [lindex $cmd 0]
    set sub [lindex $cmd 1]
    set match [EvalAttached [list $obj info methods $sub*]]
    if {[llength $match] > 1} {
	regsub -all {([^\\]) } [ExpandBestMatch $match $str] {\1\\ } str
	set match [linsert $match 0 $str]
    } else {
	regsub -all {([^\\]) } $match {\1\\ } match
    }
    return $match
}

and then do this:

tkcon master set ::tkcon::OPT(expandorder) \
   {Xotcl Variable Procname Pathname}

Note that this puts pathname at the end, also addressing Gustaf's
request that it's too picky.  You have to have Xotcl before
Procname for it to be really useful.

I've added the above proc to the tkcon sources, but I didn't change
the expandorder to include it yet ... I suspect it's "fast enough",
but if somebody with a slow machine could confirm, that would be
nice.

  Jeff Hobbs, The Tcl Guy
  http://www.ActiveState.com/, a division of Sophos



More information about the Xotcl mailing list