ruby-changes:2286
From: ko1@a...
Date: 26 Oct 2007 02:06:46 +0900
Subject: [ruby-changes:2286] matz - Ruby:r13777 (trunk): * parse.y (parser_yylex): dot at the head of the line denote line
matz 2007-10-26 02:06:29 +0900 (Fri, 26 Oct 2007)
New Revision: 13777
Modified files:
trunk/ChangeLog
trunk/misc/ruby-mode.el
trunk/parse.y
Log:
* 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.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/misc/ruby-mode.el?r1=13777&r2=13776
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/parse.y?r1=13777&r2=13776
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13777&r2=13776
Index: ChangeLog
===================================================================
--- ChangeLog (revision 13776)
+++ ChangeLog (revision 13777)
@@ -9,6 +9,14 @@
* 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@r...>
+
+ * 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@r...>
* io.c (rb_io_tell, rb_io_seek): check errno too. [ruby-dev:32093]
Index: misc/ruby-mode.el
===================================================================
--- misc/ruby-mode.el (revision 13776)
+++ misc/ruby-mode.el (revision 13777)
@@ -727,15 +727,19 @@
(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")
Index: parse.y
===================================================================
--- parse.y (revision 13776)
+++ parse.y (revision 13777)
@@ -5863,6 +5863,25 @@
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';
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml