diff -r 49597064d851 lisp/progmodes/modula2.el --- a/lisp/progmodes/modula2.el Sun Mar 30 16:22:49 2008 +0200 +++ b/lisp/progmodes/modula2.el Mon Mar 31 20:56:51 2008 +0200 @@ -75,35 +75,51 @@ (if m2-mode-map () (let ((map (make-sparse-keymap))) (define-key map "\^i" 'm2-tab) - (define-key map "\C-cb" 'm2-begin) - (define-key map "\C-cc" 'm2-case) - (define-key map "\C-cd" 'm2-definition) - (define-key map "\C-ce" 'm2-else) - (define-key map "\C-cf" 'm2-for) - (define-key map "\C-ch" 'm2-header) - (define-key map "\C-ci" 'm2-if) - (define-key map "\C-cm" 'm2-module) - (define-key map "\C-cl" 'm2-loop) - (define-key map "\C-co" 'm2-or) - (define-key map "\C-cp" 'm2-procedure) - (define-key map "\C-c\C-w" 'm2-with) - (define-key map "\C-cr" 'm2-record) - (define-key map "\C-cs" 'm2-stdio) - (define-key map "\C-ct" 'm2-type) - (define-key map "\C-cu" 'm2-until) - (define-key map "\C-cv" 'm2-var) - (define-key map "\C-cw" 'm2-while) - (define-key map "\C-cx" 'm2-export) - (define-key map "\C-cy" 'm2-import) (define-key map "\C-c{" 'm2-begin-comment) (define-key map "\C-c}" 'm2-end-comment) (define-key map "\C-j" 'm2-newline) - (define-key map "\C-c\C-z" 'suspend-emacs) (define-key map "\C-c\C-v" 'm2-visit) (define-key map "\C-c\C-t" 'm2-toggle) (define-key map "\C-c\C-l" 'm2-link) (define-key map "\C-c\C-c" 'm2-compile) (setq m2-mode-map map))) + +(defvar m2-use-quick-keys nil + "Use `m2-quick-keys-prefix'+letter combinations for quick +insertion of frequent tags when non-nil. This defaults to nil. +This takes effect when first loading the library.") + +(defvar m2-quick-keys-prefix "\C-c\C-q" + "When `m2-use-quick-keys' is set to non-nil, quick keys can be + inserted using this prefix.") + +(defvar m2-quick-keys-map + (let ((map (make-sparse-keymap))) + (define-key map "b" 'm2-begin) + (define-key map "c" 'm2-case) + (define-key map "d" 'm2-definition) + (define-key map "e" 'm2-else) + (define-key map "f" 'm2-for) + (define-key map "h" 'm2-header) + (define-key map "i" 'm2-if) + (define-key map "l" 'm2-loop) + (define-key map "m" 'm2-module) + (define-key map "o" 'm2-or) + (define-key map "p" 'm2-procedure) + (define-key map "r" 'm2-record) + (define-key map "s" 'm2-stdio) + (define-key map "t" 'm2-type) + (define-key map "u" 'm2-until) + (define-key map "v" 'm2-var) + (define-key map "w" 'm2-while) + (define-key map "W" 'm2-with) + (define-key map "x" 'm2-export) + (define-key map "y" 'm2-import) + map) + "Modula2 quick keys keymap") + +(when m2-use-quick-keys + (define-key m2-mode-map m2-quick-keys-prefix m2-quick-keys-map)) (defcustom m2-indent 5 "*This variable gives the indentation in Modula-2-Mode." @@ -149,8 +165,8 @@ followed by the first character of the c (setq paragraph-separate paragraph-start) (make-local-variable 'paragraph-ignore-fill-prefix) (setq paragraph-ignore-fill-prefix t) -; (make-local-variable 'indent-line-function) -; (setq indent-line-function 'c-indent-line) + ; (make-local-variable 'indent-line-function) + ; (setq indent-line-function 'c-indent-line) (make-local-variable 'require-final-newline) (setq require-final-newline mode-require-final-newline) (make-local-variable 'comment-start)