changeset 111205:e6399f46aefa

* 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.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 27 Oct 2010 10:26:01 -0400
parents a5bff5a31837
children 56f4300fbd9f
files lisp/ChangeLog lisp/electric.el lisp/progmodes/octave-mod.el lisp/progmodes/ruby-mode.el
diffstat 4 files changed, 15 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Oct 27 08:07:41 2010 +0000
+++ b/lisp/ChangeLog	Wed Oct 27 10:26:01 2010 -0400
@@ -1,3 +1,10 @@
+2010-10-27  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* 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  <rgm@gnu.org>
 
 	* abbrev.el (abbrev-mode): Remove one of the three definitions of this
--- a/lisp/electric.el	Wed Oct 27 08:07:41 2010 +0000
+++ b/lisp/electric.el	Wed Oct 27 10:26:01 2010 -0400
@@ -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.")
 
--- a/lisp/progmodes/octave-mod.el	Wed Oct 27 08:07:41 2010 +0000
+++ b/lisp/progmodes/octave-mod.el	Wed Oct 27 10:26:01 2010 -0400
@@ -646,9 +646,8 @@
                                      (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) "")
--- a/lisp/progmodes/ruby-mode.el	Wed Oct 27 08:07:41 2010 +0000
+++ b/lisp/progmodes/ruby-mode.el	Wed Oct 27 10:26:01 2010 -0400
@@ -135,11 +135,9 @@
 (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 @@
    )
   "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 @@
    '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))