From 1f87a56cc78b25d96fedd0f49a93cbe5b33dedec Mon Sep 17 00:00:00 2001 From: Dmitry Gutov Date: Sun, 22 Dec 2013 22:38:26 +0200 Subject: [PATCH] * lisp/progmodes/ruby-mode.el (ruby--electric-indent-p): Improve the comments. Handle electric indent after typing `?' and `!'. --- lisp/ChangeLog | 5 +++++ lisp/progmodes/ruby-mode.el | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8034a748099..d303bc215d8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2013-12-22 Dmitry Gutov + + * progmodes/ruby-mode.el (ruby--electric-indent-p): Improve the + comments. Handle electric indent after typing `?' and `!'. + 2013-12-22 Chong Yidong * faces.el (face-spec-recalc): If the theme specs are not diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 3308651b0e3..51117e59f78 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -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.