From 2122161f8dfddcbe0e46b63803ae73f3033d0e55 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 27 Oct 2010 10:26:01 -0400 Subject: [PATCH] * lisp/electric.el (electric-indent-chars): Autoload. * lisp/progmodes/octave-mod.el (octave-mode): * lisp/progmodes/ruby-mode.el (ruby-mode): Take advantage of it. (ruby-mode-abbrev-table): Merge initialization and declaration. --- lisp/ChangeLog | 7 +++++++ lisp/electric.el | 4 ++++ lisp/progmodes/octave-mod.el | 5 ++--- lisp/progmodes/ruby-mode.el | 9 ++------- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1dccc73bda1..9071e3983be 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2010-10-27 Stefan Monnier + + * electric.el (electric-indent-chars): Autoload. + * progmodes/octave-mod.el (octave-mode): + * progmodes/ruby-mode.el (ruby-mode): Take advantage of it. + (ruby-mode-abbrev-table): Merge initialization and declaration. + 2010-10-27 Glenn Morris * abbrev.el (abbrev-mode): Remove one of the three definitions of this diff --git a/lisp/electric.el b/lisp/electric.el index 8e9d23be231..a0d849bbcca 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -178,6 +178,10 @@ ;; Electric indentation. +;; Autoloading variables is generally undesirable, but major modes +;; should usually set this variable by adding elements to the default +;; value, which only works well if the variable is preloaded. +;;;###autoload (defvar electric-indent-chars '(?\n) "Characters that should cause automatic reindentation.") diff --git a/lisp/progmodes/octave-mod.el b/lisp/progmodes/octave-mod.el index 56de9b869db..40931c3d54d 100644 --- a/lisp/progmodes/octave-mod.el +++ b/lisp/progmodes/octave-mod.el @@ -646,9 +646,8 @@ including a reproducible test case and send the message." (aref (cdr kw) (1- (length (cdr kw))))) smie-closer-alist)))))) - ;; FIXME: maybe we should use (cons ?\; electric-indent-chars) - ;; since only ; is really octave-specific. - (set (make-local-variable 'electric-indent-chars) '(?\; ?\s ?\n)) + (set (make-local-variable 'electric-indent-chars) + (cons ?\; electric-indent-chars)) (set (make-local-variable 'comment-start) octave-comment-start) (set (make-local-variable 'comment-end) "") diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 4d015de5198..af68699f2a4 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -135,11 +135,9 @@ This should only be called after matching against `ruby-here-doc-beg-re'." (defconst ruby-symbol-re (concat "[" ruby-symbol-chars "]") "Regexp to match symbols.") -(defvar ruby-mode-abbrev-table nil +(define-abbrev-table 'ruby-mode-abbrev-table () "Abbrev table in use in Ruby mode buffers.") -(define-abbrev-table 'ruby-mode-abbrev-table ()) - (defvar ruby-mode-map (let ((map (make-sparse-keymap))) (define-key map "{" 'ruby-electric-brace) @@ -1430,8 +1428,6 @@ See `font-lock-syntax-table'.") ) "Additional expressions to highlight in Ruby mode.") -(defvar electric-indent-chars) - ;;;###autoload (define-derived-mode ruby-mode prog-mode "Ruby" "Major mode for editing Ruby scripts. @@ -1456,8 +1452,7 @@ The variable `ruby-indent-level' controls the amount of indentation. 'ruby-mode-set-encoding nil 'local) (set (make-local-variable 'electric-indent-chars) - (append '(?\{ ?\}) (if (boundp 'electric-indent-chars) - (default-value 'electric-indent-chars)))) + (append '(?\{ ?\}) electric-indent-chars)) (set (make-local-variable 'font-lock-defaults) '((ruby-font-lock-keywords) nil nil)) -- 2.39.5