comparison lisp/progmodes/tcl.el @ 111870:b47e85affa59

Derive from prog-mode, use derived-mode-p, and fix up various minor style issues in lisp/progmodes. * lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init) (vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable -> make-local-hook. * lisp/progmodes/sh-script.el (sh-require-final-newline): Remove. (sh-set-shell): Don't set require-final-newline since it's already done by prog-mode. * lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column since we never set it. * lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation): Use read-string and standard prompt. * lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration. * lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl. (meta-common-mode-syntax-table): Rename from meta-mode-syntax-table. (meta-common-mode-map): Rename from meta-mode-map. Remove C-m binding, which is a user preference, not mode specific. (meta-common-mode): New major mode; replace meta-common-initialization. * lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing around with font-lock. * lisp/progmodes/etags.el (select-tags-table-mode): Derive from special-mode. * lisp/progmodes/octave-mod.el (octave-mode): * lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode) (gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode) (gdb-frames-mode, gdb-locals-mode, gdb-registers-mode): Let define-derived-mode do its job. * lisp/progmodes/cpp.el (cpp-edit-mode-map): Move initialization into declaration. (cpp-edit-mode): Use define-derived-mode. (cpp-edit-load): Use derived-mode-p. * lisp/progmodes/mixal-mode.el (mixal-mode): * lisp/progmodes/f90.el (f90-mode): * lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting require-final-newline since prog-mode does it already. * lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string. * lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup. * lisp/progmodes/antlr-mode.el: Require cc-mode upfront. (antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in the declaration. (antlr-directory-dependencies, antlr-show-makefile-rules): Use derived-mode-p. (antlr-language-option): Don't assume point-min==1. (antlr-mode): Use define-derived-mode. * lisp/progmodes/ada-mode.el: Use derived-mode-p. (ada-mode): Use define-derived-mode. Use hack-local-variables-hook. * lisp/progmodes/vhdl-mode.el (vhdl-mode): * lisp/progmodes/verilog-mode.el (verilog-mode): * lisp/progmodes/vera-mode.el (vera-mode): * lisp/progmodes/sql.el (sql-mode): * lisp/progmodes/scheme.el (scheme-mode): * lisp/progmodes/perl-mode.el (perl-mode): * lisp/progmodes/octave-inf.el (inferior-octave-mode): * lisp/progmodes/autoconf.el (autoconf-mode): * lisp/progmodes/m4-mode.el (m4-mode): * lisp/progmodes/inf-lisp.el (inferior-lisp-mode): * lisp/progmodes/idlwave.el (idlwave-mode): * lisp/progmodes/icon.el (icon-mode): * lisp/progmodes/idlw-help.el (idlwave-help-mode): * lisp/progmodes/dcl-mode.el (dcl-mode): * lisp/progmodes/idlw-shell.el (idlwave-shell-mode): * lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode) (ebrowse-member-mode, ebrowse-electric-position-mode): Use define-derived-mode. * lisp/progmodes/xscheme.el (xscheme-start) (local-set-scheme-interaction-buffer, scheme-interaction-mode): * lisp/progmodes/which-func.el (which-function): * lisp/progmodes/vhdl-mode.el (vhdl-set-style): * lisp/progmodes/verilog-mode.el (verilog-set-compile-command) (verilog-modify-compile-command, verilog-error-regexp-add-xemacs) (verilog-set-define, verilog-auto-reeval-locals): * lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode): * lisp/progmodes/simula.el (simula-mode): * lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode): * lisp/progmodes/python.el (python-check, python-mode): * lisp/progmodes/prolog.el (prolog-mode-variables): * lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions): * lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame): * lisp/progmodes/delphi.el (delphi-mode): * lisp/progmodes/cc-styles.el (c-setup-paragraph-variables): * lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init) (c-font-lock-init): Move make-local-variable to their setq. * lisp/progmodes/xscheme.el (exit-scheme-interaction-mode) (xscheme-enter-interaction-mode, xscheme-enter-debugger-mode) (xscheme-debugger-mode-p, xscheme-send-string-1): * lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word) (tcl-load-file, tcl-restart-with-file): * lisp/progmodes/ps-mode.el (ps-run-running): * lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint): * lisp/progmodes/js.el (js--get-all-known-symbols): * lisp/progmodes/inf-lisp.el (inferior-lisp-proc): * lisp/progmodes/idlwave.el (idlwave-beginning-of-statement) (idlwave-template, idlwave-update-buffer-routine-info) (idlwave-update-current-buffer-info) (idlwave-get-routine-info-from-buffers, idlwave-choose) (idlwave-scan-class-info, idlwave-fix-keywords) (idlwave-list-buffer-load-path-shadows): * lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add) (idlwave-toolbar-remove): * lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action) (idlwave-shell-file-name, idlwave-shell-electric-debug-all-off) (idlwave-shell-menu-def): * lisp/progmodes/idlw-complete-structtag.el (idlwave-prepare-structure-tag-completion): * lisp/progmodes/gud.el (gud-set-buffer): * lisp/progmodes/f90.el (f90-backslash-not-special): * lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 10 Dec 2010 15:00:25 -0500
parents 132f2dfd549f
children 417b1e4d63cd
comparison
equal deleted inserted replaced
111869:2b8673bc05c8 111870:b47e85affa59
570 If not nil, use a smarter, Tcl-specific way to find the current 570 If not nil, use a smarter, Tcl-specific way to find the current
571 word when looking up help on a Tcl command. 571 word when looking up help on a Tcl command.
572 572
573 Turning on Tcl mode runs `tcl-mode-hook'. Read the documentation for 573 Turning on Tcl mode runs `tcl-mode-hook'. Read the documentation for
574 `tcl-mode-hook' to see what kinds of interesting hook functions 574 `tcl-mode-hook' to see what kinds of interesting hook functions
575 already exist. 575 already exist."
576
577 Commands:
578 \\{tcl-mode-map}"
579 (unless (and (boundp 'filladapt-mode) filladapt-mode) 576 (unless (and (boundp 'filladapt-mode) filladapt-mode)
580 (set (make-local-variable 'paragraph-ignore-fill-prefix) t)) 577 (set (make-local-variable 'paragraph-ignore-fill-prefix) t))
581 578
582 (set (make-local-variable 'indent-line-function) 'tcl-indent-line) 579 (set (make-local-variable 'indent-line-function) 'tcl-indent-line)
583 (set (make-local-variable 'comment-indent-function) 'tcl-comment-indent) 580 (set (make-local-variable 'comment-indent-function) 'tcl-comment-indent)
1062 (goto-char (point-max))))) 1059 (goto-char (point-max)))))
1063 1060
1064 (defun inferior-tcl-proc () 1061 (defun inferior-tcl-proc ()
1065 "Return current inferior Tcl process. 1062 "Return current inferior Tcl process.
1066 See variable `inferior-tcl-buffer'." 1063 See variable `inferior-tcl-buffer'."
1067 (let ((proc (get-buffer-process (if (eq major-mode 'inferior-tcl-mode) 1064 (let ((proc (get-buffer-process (if (derived-mode-p 'inferior-tcl-mode)
1068 (current-buffer) 1065 (current-buffer)
1069 inferior-tcl-buffer)))) 1066 inferior-tcl-buffer))))
1070 (or proc 1067 (or proc
1071 (error "No Tcl process; see variable `inferior-tcl-buffer'")))) 1068 (error "No Tcl process; see variable `inferior-tcl-buffer'"))))
1072 1069
1285 (defun tcl-current-word (flag) 1282 (defun tcl-current-word (flag)
1286 "Return current command word, or nil. 1283 "Return current command word, or nil.
1287 If FLAG is nil, just uses `current-word'. 1284 If FLAG is nil, just uses `current-word'.
1288 Otherwise scans backward for most likely Tcl command word." 1285 Otherwise scans backward for most likely Tcl command word."
1289 (if (and flag 1286 (if (and flag
1290 (memq major-mode '(tcl-mode inferior-tcl-mode))) 1287 (derived-mode-p 'tcl-mode 'inferior-tcl-mode))
1291 (condition-case nil 1288 (condition-case nil
1292 (save-excursion 1289 (save-excursion
1293 ;; Look backward for first word actually in alist. 1290 ;; Look backward for first word actually in alist.
1294 (if (bobp) 1291 (if (bobp)
1295 () 1292 ()
1361 (list 1358 (list
1362 ;; car because comint-get-source returns a list holding the 1359 ;; car because comint-get-source returns a list holding the
1363 ;; filename. 1360 ;; filename.
1364 (car (comint-get-source "Load Tcl file: " 1361 (car (comint-get-source "Load Tcl file: "
1365 (or (and 1362 (or (and
1366 (eq major-mode 'tcl-mode) 1363 (derived-mode-p 'tcl-mode)
1367 (buffer-file-name)) 1364 (buffer-file-name))
1368 tcl-previous-dir/file) 1365 tcl-previous-dir/file)
1369 '(tcl-mode) t)) 1366 '(tcl-mode) t))
1370 current-prefix-arg)) 1367 current-prefix-arg))
1371 (comint-check-source file) 1368 (comint-check-source file)
1381 Prefix argument means switch to the Tcl buffer afterwards." 1378 Prefix argument means switch to the Tcl buffer afterwards."
1382 (interactive 1379 (interactive
1383 (list 1380 (list
1384 (car (comint-get-source "Restart with Tcl file: " 1381 (car (comint-get-source "Restart with Tcl file: "
1385 (or (and 1382 (or (and
1386 (eq major-mode 'tcl-mode) 1383 (derived-mode-p 'tcl-mode)
1387 (buffer-file-name)) 1384 (buffer-file-name))
1388 tcl-previous-dir/file) 1385 tcl-previous-dir/file)
1389 '(tcl-mode) t)) 1386 '(tcl-mode) t))
1390 current-prefix-arg)) 1387 current-prefix-arg))
1391 (let* ((buf (if (eq major-mode 'inferior-tcl-mode) 1388 (let* ((buf (if (derived-mode-p 'inferior-tcl-mode)
1392 (current-buffer) 1389 (current-buffer)
1393 inferior-tcl-buffer)) 1390 inferior-tcl-buffer))
1394 (proc (and buf (get-process buf)))) 1391 (proc (and buf (get-process buf))))
1395 (cond 1392 (cond
1396 ((not (and buf (get-buffer buf))) 1393 ((not (and buf (get-buffer buf)))