]> code.delx.au - gnu-emacs/commitdiff
* lisp/progmodes/ruby-mode.el (ruby--electric-indent-p): Improve the
authorDmitry Gutov <dgutov@yandex.ru>
Sun, 22 Dec 2013 20:38:26 +0000 (22:38 +0200)
committerDmitry Gutov <dgutov@yandex.ru>
Sun, 22 Dec 2013 20:38:26 +0000 (22:38 +0200)
comments.  Handle electric indent after typing `?' and `!'.

lisp/ChangeLog
lisp/progmodes/ruby-mode.el

index 8034a748099ec445b3fbb16033f8bdd53111abd9..d303bc215d8f4f7116e52e2858aeb3f5f2841b27 100644 (file)
@@ -1,3 +1,8 @@
+2013-12-22  Dmitry Gutov  <dgutov@yandex.ru>
+
+       * progmodes/ruby-mode.el (ruby--electric-indent-p): Improve the
+       comments.  Handle electric indent after typing `?' and `!'.
+
 2013-12-22  Chong Yidong  <cyd@gnu.org>
 
        * faces.el (face-spec-recalc): If the theme specs are not
index 3308651b0e39cee2a10cc197d93e8f76e7072f69..51117e59f78c02e4fb8b7e12d09b73932bc52d7a 100644 (file)
@@ -779,15 +779,15 @@ The style of the comment is controlled by `ruby-encoding-magic-comment-style'."
 (defun ruby--electric-indent-p (char)
   (cond
    ((memq char ruby--electric-indent-chars)
-    ;; Outdent after typing a closing paren.
+    ;; Reindent after typing a char affecting indentation.
     (ruby--at-indentation-p (1- (point))))
    ((memq (char-after) ruby--electric-indent-chars)
-    ;; Reindent after inserting something before a closing paren.
+    ;; Reindent after inserting something in front of the above.
     (ruby--at-indentation-p (1- (point))))
-   ((or (memq (char-syntax char) '(?w ?_)))
+   ((or (and (>= char ?a) (<= char ?z)) (memq char '(?_ ?? ?! ?:)))
     (let ((pt (point)))
       (save-excursion
-        (skip-syntax-backward "w_")
+        (skip-chars-backward "[:alpha:]:_?!")
         (and (ruby--at-indentation-p)
              (looking-at (regexp-opt (cons "end" ruby-block-mid-keywords)))
              ;; Outdent after typing a keyword.