File: tcl.el.html

CUSTOMIZATION NOTES:
* tcl-proc-list can be used to customize a list of things that
"define" other things. Eg in my project I put "defvar" in this
list.
* tcl-typeword-list is similar, but uses font-lock-type-face.
* tcl-keyword-list is a list of keywords. I've generally used this
for flow-control words. Eg I add "unwind_protect" to this list.
* tcl-builtin-list lists commands to be given font-lock-builtin-face.
* tcl-type-alist can be used to minimally customize indentation
according to context.

THANKS FOR CRITICISM AND SUGGESTIONS TO: Guido Bosch <Guido.Bosch@loria.fr> pgs1002@esc.cam.ac.uk (Dr P.G. Sjoerdsma) Mike Scheidler <c23mts@kocrsv01.delcoelect.com> Matt Newman <men@charney.colorado.edu> rwhitby@research.canon.oz.au (Rod Whitby) h9118101@hkuxa.hku.hk (Yip Chi Lap [Beta]) Pertti Tapio Kasanen <ptk@delta.hut.fi> schmid@fb3-s7.math.TU-Berlin.DE (Gregor Schmid) warsaw@nlm.nih.gov (Barry A. Warsaw) Carl Witty <cwitty@ai.mit.edu> T. V. Raman <raman@crl.dec.com> Jesper Pedersen <blackie@imada.ou.dk> dfarmer@evolving.com (Doug Farmer)
"Chris Alfeld" <calfeld@math.utah.edu>
Ben Wing <ben@xemacs.org>

KNOWN BUGS:
* In Tcl "#" is not always a comment character. This can confuse tcl.el
  in certain circumstances. For now the only workaround is to use
  font-lock which will mark the # chars accordingly or enclose offending
  hash characters in quotes or precede them with a backslash. Note that
  using braces won't work -- quotes change the syntax class of characters
  between them, while braces do not. If you don't use font-lock, the
  electric-# mode helps alleviate this problem somewhat.
* indent-tcl-exp is untested.

TODO:
* make add-log-tcl-defun smarter. should notice if we are in the
  middle of a defun, or between defuns. should notice if point is
  on first line of defun (or maybe even in comments before defun).
* Allow continuation lines to be indented under the first argument
  of the preceding line, like this:
     [list something \
           something-else]
* There is a request that indentation work like this:
       button .fred -label Fred \
                    -command {puts fred}
* Should have tcl-complete-symbol that queries the inferior process.
* Should have describe-symbol that works by sending the magic
  command to a tclX process.
* Need C-x C-e binding (tcl-eval-last-exp).
* Write indent-region function that is faster than indenting each
  line individually.
* tcl-figure-type should stop at "beginning of line" (only ws
  before point, and no "\\" on previous line). (see tcl-real-command-p).
* overrides some comint keybindings; fix.
* Trailing \ will eat blank lines. Should deal with this.
  (this would help catch some potential bugs).
* Inferior should display in half the screen, not the whole screen.
* Indentation should deal with "switch".
* Consider writing code to find help files automatically (for
  common cases).
* # shouldn't insert \# when point is in string.

Defined variables (34)

inferior-tcl-bufferThe current ‘inferior-tcl’ process buffer.
inferior-tcl-mode-abbrev-tableAbbrev table for ‘inferior-tcl-mode’.
inferior-tcl-mode-hookHook run after entering ‘inferior-tcl-mode’.
inferior-tcl-mode-mapKeymap used in ‘inferior-tcl-mode’.
inferior-tcl-mode-syntax-tableSyntax table for ‘inferior-tcl-mode’.
inferior-tcl-source-commandFormat-string for building a Tcl command to load a file.
tcl-applicationName of Tcl program to run in inferior Tcl mode.
tcl-auto-newlineNon-nil means automatically newline before and after braces you insert.
tcl-builtin-listList of Tcl commands. Used only for highlighting.
tcl-command-switchesList of switches to supply to the ‘tcl-application’ program.
tcl-continued-indent-levelIndentation of continuation line relative to first line of command.
tcl-electric-hash-styleStyle of electric hash insertion to use.
tcl-explain-indentationIf non-nil, debugging message will be printed during indentation.
tcl-font-lock-keywordsKeywords to highlight for Tcl. See variable ‘font-lock-keywords’.
tcl-help-alistAlist with command names as keys and filenames as values.
tcl-help-directory-listList of topmost directories containing TclX help files.
tcl-help-saved-dirsSaved help directories.
tcl-imenu-generic-expressionImenu generic expression for ‘tcl-mode’. See ‘imenu-generic-expression’.
tcl-indent-levelIndentation of Tcl statements with respect to containing block.
tcl-keyword-listList of Tcl keywords. Used only for highlighting.
tcl-mode-abbrev-tableAbbrev table for ‘tcl-mode’.
tcl-mode-hookHook run on entry to Tcl mode.
tcl-mode-mapKeymap used in ‘tcl-mode’.
tcl-mode-menuMenu used in ‘tcl-mode’.
tcl-mode-syntax-tableSyntax table in use in ‘tcl-mode’ buffers.
tcl-previous-dir/fileRecord last directory and file used in loading.
tcl-proc-listList of commands whose first argument defines something.
tcl-proc-regexpRegexp to use when matching proc headers.
tcl-prompt-regexpIf not nil, a regexp that will match the prompt in the inferior process.
tcl-syntax-propertize-functionSyntactic keywords for ‘tcl-mode’.
tcl-tab-always-indentControl effect of TAB key.
tcl-type-alistAlist that controls indentation.
tcl-typeword-listList of Tcl keywords denoting "type". Used only for highlighting.
tcl-use-smart-word-finderIf not nil, use smart way to find current word, for Tcl help feature.

Defined functions (51)

add-log-tcl-defun()
calculate-tcl-indent(&optional PARSE-START)
indent-tcl-exp()
inferior-tcl(CMD)
inferior-tcl-mode()
inferior-tcl-proc()
run-tcl(CMD)
switch-to-tcl(EOB-P)
tcl--syntax-of-quote(POS)
tcl-add-log-defun()
tcl-auto-fill-mode(&optional ARG)
tcl-beginning-of-defun(&optional ARG)
tcl-calculate-indent(&optional PARSE-START)
tcl-comment-indent()
tcl-current-word(FLAG)
tcl-electric-brace(ARG)
tcl-electric-char(ARG)
tcl-electric-hash(&optional COUNT)
tcl-end-of-defun(&optional ARG INTERACTIVE)
tcl-end-of-defun-function()
tcl-eval-defun(&optional AND-GO)
tcl-eval-region(START END &optional AND-GO)
tcl-figure-type()
tcl-files-alist(DIR &optional ALIST)
tcl-filter(PROC STRING)
tcl-guess-application()
tcl-hairy-scan-for-comment(STATE END ALWAYS-STOP)
tcl-hashify-buffer()
tcl-help-on-word(COMMAND &optional ARG)
tcl-help-snarf-commands(DIRLIST)
tcl-in-comment()
tcl-indent-command(&optional ARG)
tcl-indent-exp()
tcl-indent-for-comment(&optional CONTINUE)
tcl-indent-line()
tcl-load-file(FILE &optional AND-GO)
tcl-mark-defun(&optional ARG INTERACTIVE)
tcl-mode()
tcl-mode-menu(ARG1)
tcl-popup-menu(E)
tcl-quote(STRING)
tcl-real-command-p()
tcl-real-comment-p()
tcl-reread-help-files()
tcl-restart-with-file(FILE &optional AND-GO)
tcl-send-region(PROC START END)
tcl-send-string(PROC STRING)
tcl-set-font-lock-keywords()
tcl-set-proc-regexp()
tcl-uncomment-region(BEG END &optional ARG)
tcl-word-no-props()

Defined faces (1)

tcl-escaped-newlineFace used for (non-escaped) backslash at end of a line in Tcl mode.