comparison lisp/progmodes/cpp.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 1d1d5d9bd884
children 417b1e4d63cd
comparison
equal deleted inserted replaced
111869:2b8673bc05c8 111870:b47e85affa59
414 (min start (overlay-start overlay)) 414 (min start (overlay-start overlay))
415 (max end (overlay-end overlay))))) 415 (max end (overlay-end overlay)))))
416 416
417 ;;; Edit Buffer: 417 ;;; Edit Buffer:
418 418
419 (defvar cpp-edit-map nil) 419 (defvar cpp-edit-mode-map
420 ;; Keymap for `cpp-edit-mode'. 420 (let ((map (make-keymap)))
421 421 (suppress-keymap map)
422 (if cpp-edit-map 422 (define-key map [ down-mouse-2 ] 'cpp-push-button)
423 () 423 (define-key map [ mouse-2 ] 'ignore)
424 (setq cpp-edit-map (make-keymap)) 424 (define-key map " " 'scroll-up)
425 (suppress-keymap cpp-edit-map) 425 (define-key map "\C-?" 'scroll-down)
426 (define-key cpp-edit-map [ down-mouse-2 ] 'cpp-push-button) 426 (define-key map [ delete ] 'scroll-down)
427 (define-key cpp-edit-map [ mouse-2 ] 'ignore) 427 (define-key map "\C-c\C-c" 'cpp-edit-apply)
428 (define-key cpp-edit-map " " 'scroll-up) 428 (define-key map "a" 'cpp-edit-apply)
429 (define-key cpp-edit-map "\C-?" 'scroll-down) 429 (define-key map "A" 'cpp-edit-apply)
430 (define-key cpp-edit-map [ delete ] 'scroll-down) 430 (define-key map "r" 'cpp-edit-reset)
431 (define-key cpp-edit-map "\C-c\C-c" 'cpp-edit-apply) 431 (define-key map "R" 'cpp-edit-reset)
432 (define-key cpp-edit-map "a" 'cpp-edit-apply) 432 (define-key map "s" 'cpp-edit-save)
433 (define-key cpp-edit-map "A" 'cpp-edit-apply) 433 (define-key map "S" 'cpp-edit-save)
434 (define-key cpp-edit-map "r" 'cpp-edit-reset) 434 (define-key map "l" 'cpp-edit-load)
435 (define-key cpp-edit-map "R" 'cpp-edit-reset) 435 (define-key map "L" 'cpp-edit-load)
436 (define-key cpp-edit-map "s" 'cpp-edit-save) 436 (define-key map "h" 'cpp-edit-home)
437 (define-key cpp-edit-map "S" 'cpp-edit-save) 437 (define-key map "H" 'cpp-edit-home)
438 (define-key cpp-edit-map "l" 'cpp-edit-load) 438 (define-key map "b" 'cpp-edit-background)
439 (define-key cpp-edit-map "L" 'cpp-edit-load) 439 (define-key map "B" 'cpp-edit-background)
440 (define-key cpp-edit-map "h" 'cpp-edit-home) 440 (define-key map "k" 'cpp-edit-known)
441 (define-key cpp-edit-map "H" 'cpp-edit-home) 441 (define-key map "K" 'cpp-edit-known)
442 (define-key cpp-edit-map "b" 'cpp-edit-background) 442 (define-key map "u" 'cpp-edit-unknown)
443 (define-key cpp-edit-map "B" 'cpp-edit-background) 443 (define-key map "u" 'cpp-edit-unknown)
444 (define-key cpp-edit-map "k" 'cpp-edit-known) 444 (define-key map "t" 'cpp-edit-true)
445 (define-key cpp-edit-map "K" 'cpp-edit-known) 445 (define-key map "T" 'cpp-edit-true)
446 (define-key cpp-edit-map "u" 'cpp-edit-unknown) 446 (define-key map "f" 'cpp-edit-false)
447 (define-key cpp-edit-map "u" 'cpp-edit-unknown) 447 (define-key map "F" 'cpp-edit-false)
448 (define-key cpp-edit-map "t" 'cpp-edit-true) 448 (define-key map "w" 'cpp-edit-write)
449 (define-key cpp-edit-map "T" 'cpp-edit-true) 449 (define-key map "W" 'cpp-edit-write)
450 (define-key cpp-edit-map "f" 'cpp-edit-false) 450 (define-key map "X" 'cpp-edit-toggle-known)
451 (define-key cpp-edit-map "F" 'cpp-edit-false) 451 (define-key map "x" 'cpp-edit-toggle-known)
452 (define-key cpp-edit-map "w" 'cpp-edit-write) 452 (define-key map "Y" 'cpp-edit-toggle-unknown)
453 (define-key cpp-edit-map "W" 'cpp-edit-write) 453 (define-key map "y" 'cpp-edit-toggle-unknown)
454 (define-key cpp-edit-map "X" 'cpp-edit-toggle-known) 454 (define-key map "q" 'bury-buffer)
455 (define-key cpp-edit-map "x" 'cpp-edit-toggle-known) 455 (define-key map "Q" 'bury-buffer)
456 (define-key cpp-edit-map "Y" 'cpp-edit-toggle-unknown) 456 map)
457 (define-key cpp-edit-map "y" 'cpp-edit-toggle-unknown) 457 "Keymap for `cpp-edit-mode'.")
458 (define-key cpp-edit-map "q" 'bury-buffer) 458
459 (define-key cpp-edit-map "Q" 'bury-buffer)) 459
460 460
461 (defvar cpp-edit-symbols nil) 461 (defvar cpp-edit-symbols nil)
462 ;; Symbols defined in the edit buffer. 462 ;; Symbols defined in the edit buffer.
463 (make-variable-buffer-local 'cpp-edit-symbols) 463 (make-variable-buffer-local 'cpp-edit-symbols)
464 464
465 (defun cpp-edit-mode () 465 (define-derived-mode cpp-edit-mode fundamental-mode "CPP Edit"
466 "Major mode for editing the criteria for highlighting cpp conditionals. 466 "Major mode for editing the criteria for highlighting cpp conditionals.
467 Click on objects to change them. 467 Click on objects to change them.
468 You can also use the keyboard accelerators indicated like this: [K]ey." 468 You can also use the keyboard accelerators indicated like this: [K]ey."
469 (kill-all-local-variables)
470 (buffer-disable-undo) 469 (buffer-disable-undo)
471 (auto-save-mode -1) 470 (auto-save-mode -1)
472 (setq buffer-read-only t) 471 (setq buffer-read-only t))
473 (setq major-mode 'cpp-edit-mode)
474 (setq mode-name "CPP Edit")
475 (use-local-map cpp-edit-map))
476 472
477 (defun cpp-edit-apply () 473 (defun cpp-edit-apply ()
478 "Apply edited display information to original buffer." 474 "Apply edited display information to original buffer."
479 (interactive) 475 (interactive)
480 (cpp-edit-home) 476 (cpp-edit-home)
566 nil) 562 nil)
567 ((file-readable-p cpp-config-file) 563 ((file-readable-p cpp-config-file)
568 (load-file cpp-config-file)) 564 (load-file cpp-config-file))
569 ((file-readable-p (concat "~/" cpp-config-file)) 565 ((file-readable-p (concat "~/" cpp-config-file))
570 (load-file cpp-config-file))) 566 (load-file cpp-config-file)))
571 (if (eq major-mode 'cpp-edit-mode) 567 (if (derived-mode-p 'cpp-edit-mode)
572 (cpp-edit-reset))) 568 (cpp-edit-reset)))
573 569
574 (defun cpp-edit-save () 570 (defun cpp-edit-save ()
575 "Save the current cpp configuration in a file." 571 "Save the current cpp configuration in a file."
576 (interactive) 572 (interactive)