まつもと ゆきひろです
In message "[ruby-list:12210] Re: ruby-mode + font-lock-mode"
on 99/02/22, SONODA Yoshihide (園田 吉英) <ysonoda / dontaku.csce.kyushu-u.ac.jp> writes:
|こんにちは、園田@九大です。
|matz> が文字列のおしりを見付けられなくなりますし,正規表現にいたっ
|matz> てはマッチできるパターンを定義できなくてfont-lock的にはなん
|matz> の対応もしていません.すいません.アイディア歓迎.
|現状では、我慢するor気にしない(^^; しか方法がないようですね。
|とりあえず我慢することにします。
いやいや,話題にはしてみるもんです.週末ごそごそして「ちょっ
とマシ化」が行われました.以下のパッチ(って当たるのかな)で改
善されると思います.完全ではありませんが.
# ついでにバグが1こ取れてます.
--- ruby-mode.el 1999/01/20 04:59:36 1.1.1.1
+++ ruby-mode.el 1999/02/22 08:41:30
@@ -90,5 +90,5 @@
(modify-syntax-entry ?\n ">" ruby-mode-syntax-table)
(modify-syntax-entry ?\\ "\\" ruby-mode-syntax-table)
- (modify-syntax-entry ?$ "/" ruby-mode-syntax-table)
+ (modify-syntax-entry ?$ "." ruby-mode-syntax-table)
(modify-syntax-entry ?? "_" ruby-mode-syntax-table)
(modify-syntax-entry ?_ "_" ruby-mode-syntax-table)
@@ -251,9 +251,8 @@
((looking-at "/")
(cond
- ((and (not (eobp)) (ruby-expr-beg))
- (if (re-search-forward "[^\\]/" indent-point t)
- nil
- (setq in-string (point))
- (goto-char indent-point)))
+ ((and (not (eobp)) (ruby-expr-beg)
+ (re-search-forward "[^\\]/" indent-point t))
+ (setq in-string (point))
+ (goto-char indent-point))
(t
(goto-char pnt))))
@@ -690,7 +689,11 @@
'ruby-mode-hook
(lambda ()
+ (make-local-variable 'font-lock-syntactic-keywords)
+ (setq font-lock-syntactic-keywords
+ '(("\\$\\([#\"'$\\]\\)" 1 (1 . nil))
+ ("\\(#\\)[{$@]" 1 (1 . nil))))
(make-local-variable 'font-lock-defaults)
(setq font-lock-defaults
- '((ruby-font-lock-keywords) nil nil ((?\_ . "w"))))))
+ '((ruby-font-lock-keywords) nil nil ((?\_ . "w") (?$ . "/"))))))
(add-hook 'ruby-mode-hook
(lambda ()