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:
parent
012b58b121
commit
bbe0af6be1
3 changed files with 37 additions and 6 deletions
|
@ -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 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>
|
||||
|
||||
* io.c (rb_io_tell, rb_io_seek): check errno too. [ruby-dev:32093]
|
||||
|
|
|
@ -727,15 +727,19 @@ The variable ruby-indent-level controls the amount of indentation.
|
|||
(not (looking-at (concat "\\<\\(" ruby-block-hanging-re "\\)\\>")))
|
||||
(eq (ruby-deep-indent-paren-p t) 'space)
|
||||
(not (bobp)))
|
||||
(save-excursion
|
||||
(widen)
|
||||
(goto-char (or begin parse-start))
|
||||
(skip-syntax-forward " ")
|
||||
(current-column)))
|
||||
(widen)
|
||||
(goto-char (or begin parse-start))
|
||||
(skip-syntax-forward " ")
|
||||
(current-column))
|
||||
((car (nth 1 state)) indent)
|
||||
(t
|
||||
(+ 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)
|
||||
(interactive "P")
|
||||
|
|
19
parse.y
19
parse.y
|
@ -5863,6 +5863,25 @@ parser_yylex(struct parser_params *parser)
|
|||
default:
|
||||
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;
|
||||
lex_state = EXPR_BEG;
|
||||
return '\n';
|
||||
|
|
Loading…
Reference in a new issue