From: Stefan Monnier Date: Wed, 27 Oct 2010 14:26:01 +0000 (-0400) Subject: * lisp/electric.el (electric-indent-chars): Autoload. X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~438^2~45^2~438 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2122161f8dfddcbe0e46b63803ae73f3033d0e55;p=emacs.git * 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. --- 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))