Mercurial > emacs
changeset 39893:942e743c5598
(scribe-mode): Use define-derived-mode.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sat, 13 Oct 2001 19:13:38 +0000 |
parents | ef399b9ffc2b |
children | b27f7112ce6f |
files | lisp/textmodes/scribe.el |
diffstat | 1 files changed, 20 insertions(+), 34 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/textmodes/scribe.el Sat Oct 13 19:12:07 2001 +0000 +++ b/lisp/textmodes/scribe.el Sat Oct 13 19:13:38 2001 +0000 @@ -110,52 +110,38 @@ (define-key scribe-mode-map "\C-c\C-u" 'scribe-underline-word)) ;;;###autoload -(defun scribe-mode () +(define-derived-mode scribe-mode text-mode "Scribe" "Major mode for editing files of Scribe (a text formatter) source. Scribe-mode is similar to text-mode, with a few extra commands added. \\{scribe-mode-map} Interesting variables: -scribe-fancy-paragraphs +`scribe-fancy-paragraphs' Non-nil makes Scribe mode use a different style of paragraph separation. -scribe-electric-quote +`scribe-electric-quote' Non-nil makes insert of double quote use `` or '' depending on context. -scribe-electric-parenthesis +`scribe-electric-parenthesis' Non-nil makes an open-parenthesis char (one of `([<{') automatically insert its close if typed after an @Command form." - (interactive) - (kill-all-local-variables) - (use-local-map scribe-mode-map) - (setq mode-name "Scribe") - (setq major-mode 'scribe-mode) - (define-abbrev-table 'scribe-mode-abbrev-table ()) - (setq local-abbrev-table scribe-mode-abbrev-table) - (make-local-variable 'comment-start) - (setq comment-start "@Comment[") - (make-local-variable 'comment-start-skip) - (setq comment-start-skip (concat "@Comment[" scribe-open-parentheses "]")) - (make-local-variable 'comment-column) - (setq comment-column 0) - (make-local-variable 'comment-end) - (setq comment-end "]") - (make-local-variable 'paragraph-start) - (setq paragraph-start (concat "\\([\n\f]\\)\\|\\(@\\w+[" - scribe-open-parentheses - "].*[" - scribe-close-parentheses - "]$\\)")) - (make-local-variable 'paragraph-separate) - (setq paragraph-separate (if scribe-fancy-paragraphs - paragraph-start "$")) - (make-local-variable 'sentence-end) - (setq sentence-end "\\([.?!]\\|@:\\)[]\"')}]*\\($\\| $\\|\t\\| \\)[ \t\n]*") - (make-local-variable 'compile-command) - (setq compile-command (concat "scribe " (buffer-file-name))) - (set-syntax-table scribe-mode-syntax-table) - (run-hooks 'text-mode-hook 'scribe-mode-hook)) + (set (make-local-variable 'comment-start) "@Comment[") + (set (make-local-variable 'comment-start-skip) (concat "@Comment[" scribe-open-parentheses "]")) + (set (make-local-variable 'comment-column) 0) + (set (make-local-variable 'comment-end) "]") + (set (make-local-variable 'paragraph-start) + (concat "\\([\n\f]\\)\\|\\(@\\w+[" + scribe-open-parentheses + "].*[" + scribe-close-parentheses + "]$\\)")) + (set (make-local-variable 'paragraph-separate) + (if scribe-fancy-paragraphs paragraph-start "$")) + (set (make-local-variable 'sentence-end) + "\\([.?!]\\|@:\\)[]\"')}]*\\($\\| $\\|\t\\| \\)[ \t\n]*") + (set (make-local-variable 'compile-command) + (concat "scribe " (buffer-file-name)))) (defun scribe-tab () (interactive)