1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* parse.y (parser_yylex): dot at the head of the line denote line

continuation from previous one to support fluent interface.
  [experimental]

* misc/ruby-mode.el (ruby-calculate-indent): support fluent dot.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2007-10-25 17:06:29 +00:00
parent 012b58b121
commit bbe0af6be1
3 changed files with 37 additions and 6 deletions

View file

@ -9,6 +9,14 @@ Fri Oct 26 01:48:28 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
* hash.c (rb_hash_s_create): Hash#[] now takes assocs as source of * hash.c (rb_hash_s_create): Hash#[] now takes assocs as source of
hash conversion. hash conversion.
Thu Oct 25 16:46:05 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
* parse.y (parser_yylex): dot at the head of the line denote line
continuation from previous one to support fluent interface.
[experimental]
* misc/ruby-mode.el (ruby-calculate-indent): support fluent dot.
Thu Oct 25 14:19:33 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> Thu Oct 25 14:19:33 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
* io.c (rb_io_tell, rb_io_seek): check errno too. [ruby-dev:32093] * io.c (rb_io_tell, rb_io_seek): check errno too. [ruby-dev:32093]

View file

@ -727,15 +727,19 @@ The variable ruby-indent-level controls the amount of indentation.
(not (looking-at (concat "\\<\\(" ruby-block-hanging-re "\\)\\>"))) (not (looking-at (concat "\\<\\(" ruby-block-hanging-re "\\)\\>")))
(eq (ruby-deep-indent-paren-p t) 'space) (eq (ruby-deep-indent-paren-p t) 'space)
(not (bobp))) (not (bobp)))
(save-excursion (widen)
(widen) (goto-char (or begin parse-start))
(goto-char (or begin parse-start)) (skip-syntax-forward " ")
(skip-syntax-forward " ") (current-column))
(current-column)))
((car (nth 1 state)) indent) ((car (nth 1 state)) indent)
(t (t
(+ indent ruby-indent-level)))))))) (+ indent ruby-indent-level))))))))
indent))) (goto-char indent-point)
(beginning-of-line)
(skip-syntax-forward " ")
(if (looking-at "\\.[^.]")
(+ indent ruby-indent-level)
indent))))
(defun ruby-electric-brace (arg) (defun ruby-electric-brace (arg)
(interactive "P") (interactive "P")

19
parse.y
View file

@ -5863,6 +5863,25 @@ parser_yylex(struct parser_params *parser)
default: default:
break; break;
} }
while ((c = nextc())) {
switch (c) {
case ' ': case '\t': case '\f': case '\r':
case '\13': /* '\v' */
space_seen++;
break;
case '.': {
if ((c = nextc()) != '.') {
pushback(c);
pushback('.');
goto retry;
}
}
default:
pushback(c);
goto normal_newline;
}
}
normal_newline:
command_start = Qtrue; command_start = Qtrue;
lex_state = EXPR_BEG; lex_state = EXPR_BEG;
return '\n'; return '\n';