diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-11-15 02:51:10 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-11-15 02:51:10 +0000 |
commit | e77fc758024989891f1852f27575eaed9d3053c2 (patch) | |
tree | d4707f3a0e4d12b5620ed4d0ddf1af993850bfac | |
parent | 7320e53be18278a2121bbfc1f7911cd5b2fd411d (diff) |
* misc/ruby-mode.el (ruby-special-char-p, ruby-parse-partial): handle
operator symbols. [ruby-talk:120177]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | misc/ruby-mode.el | 13 |
2 files changed, 15 insertions, 5 deletions
@@ -1,3 +1,8 @@ +Mon Nov 15 11:50:32 2004 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * misc/ruby-mode.el (ruby-special-char-p, ruby-parse-partial): handle + operator symbols. [ruby-talk:120177] + Mon Nov 15 08:58:55 2004 Yukihiro Matsumoto <matz@ruby-lang.org> * eval.c (Init_Proc): make proc as an alias to Proc.new. @@ -16,7 +21,7 @@ Mon Nov 15 00:33:40 2004 Yukihiro Matsumoto <matz@ruby-lang.org> * string.c (str_gsub): add paranoid check. [ruby-dev:24827] * string.c (str_mod_check): check frozen status as well. - [ruby-dev:24801] + [ruby-dev:24801] Sun Nov 14 18:59:03 2004 Tanaka Akira <akr@m17n.org> diff --git a/misc/ruby-mode.el b/misc/ruby-mode.el index 041ddc66ff..aaf8913858 100644 --- a/misc/ruby-mode.el +++ b/misc/ruby-mode.el @@ -293,10 +293,11 @@ The variable ruby-indent-level controls the amount of indentation. (move-to-column (+ x shift)))))) (defun ruby-special-char-p (&optional pnt) - (let ((c (char-before (or pnt (point))))) + (setq pnt (or pnt (point))) + (let ((c (char-before pnt)) (b (and (< (point-min) pnt) (char-before (1- pnt))))) (cond ((or (eq c ??) (eq c ?$))) - ((eq c ?\\) - (eq (char-before (1- (or pnt (point)))) ??))))) + ((and (eq c ?:) (or (not b) (eq (char-syntax b) ? )))) + ((eq c ?\\) (eq b ??))))) (defun ruby-expr-beg (&optional option) (save-excursion @@ -503,7 +504,11 @@ The variable ruby-indent-level controls the amount of indentation. (setq nest (cons (cons nil pnt) nest)) (setq depth (1+ depth))) (goto-char pnt)) - ((looking-at ":\\([a-zA-Z_][a-zA-Z_0-9]*\\)?") + ((looking-at ":\\(['\"]\\)\\(\\\\.\\|[^\\\\]\\)*\\1") + (goto-char (match-end 0))) + ((looking-at ":\\([-,.+*/%&|^~<>]=?\\|===?\\|<=>\\)") + (goto-char (match-end 0))) + ((looking-at ":\\([a-zA-Z_][a-zA-Z_0-9]*[!?=]?\\)?") (goto-char (match-end 0))) ((or (looking-at "\\.\\.\\.?") (looking-at "\\.[0-9]+") |