diff --git a/ChangeLog b/ChangeLog index 5b48bf1a26..152b5e9c4b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Sun Sep 25 00:42:11 2005 Nobuyoshi Nakada + + * misc/ruby-mode.el (ruby-expr-beg): deal with heredoc separately. + fixed: [ruby-list:41168] + + * misc/ruby-mode.el (ruby-calculate-indent): not to deepen indent + level for continuous line inside parentheses. + http://nabeken.tdiary.net/20050915.html#p02 + Sat Sep 24 21:19:39 2005 Minero Aoki * ext/strscan/strscan.c: document enhancement. diff --git a/misc/ruby-mode.el b/misc/ruby-mode.el index 87015bbf50..d300e6368d 100644 --- a/misc/ruby-mode.el +++ b/misc/ruby-mode.el @@ -152,7 +152,7 @@ Also ignores spaces after parenthesis when 'space." :group 'ruby) -(defcustom ruby-deep-indent-paren '(?\( t) +(defcustom ruby-deep-indent-paren '(?\( ?\[ t) "*Deep indent lists in parenthesis when non-nil. t means continuous line. Also ignores spaces after parenthesis when 'space." :group 'ruby) @@ -312,11 +312,10 @@ The variable ruby-indent-level controls the amount of indentation. (or (eq (char-syntax (char-before (point))) ?w) (ruby-special-char-p)))) nil) - ((or (save-excursion (goto-char start) (looking-at ruby-operator-re)) + ((and (eq option 'heredoc) (< space 0)) t) + ((or (looking-at ruby-operator-re) (looking-at "[\\[({,;]") - (and (or (not (eq option 'heredoc)) - (< space 0)) - (looking-at "[!?]") + (and (looking-at "[!?]") (or (not (eq option 'modifier)) (bolp) (save-excursion (forward-char -1) (looking-at "\\Sw")))) @@ -327,7 +326,7 @@ The variable ruby-indent-level controls the amount of indentation. "|" ruby-block-op-re "|" ruby-block-mid-re "\\)\\>"))) (goto-char (match-end 0)) - (not (looking-at "\\s_"))) + (not (looking-at "\\s_"))) ((eq option 'expr-qstr) (looking-at "[a-zA-Z][a-zA-z0-9_]* +%[^ \t]")) ((eq option 'expr-re) @@ -727,6 +726,7 @@ The variable ruby-indent-level controls the amount of indentation. (goto-char (or begin parse-start)) (skip-syntax-forward " ") (current-column))) + ((car (nth 1 state)) indent) (t (+ indent ruby-indent-level)))))))) indent)))