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.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]
|
||||||
|
|
|
@ -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
19
parse.y
|
@ -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';
|
||||||
|
|
Loading…
Reference in a new issue