From: matz@... (Yukihiro Matsumoto) Date: 1999-02-22T17:42:09+09:00 Subject: [ruby-list:12211] Re: ruby-mode + font-lock-mode まつもと ゆきひろです In message "[ruby-list:12210] Re: ruby-mode + font-lock-mode" on 99/02/22, SONODA Yoshihide (園田 吉英) 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 ()