[#30827] 正規表現まわりの parse — sheepman <sheepman@...>
こんにちは。
[#30850] ruby-mode.el の改善案 — sheepman <sheepman@...>
こんにちは。
[#30852] Ruby/Tk on Windows — hidaka@... (HIDAKA Takahiro)
ひだかです。
[#30855] オブジェクトをソースへ — Daisuke Aoki <dai@...>
青木@横浜です。
[#30872] ext/curses — Takaaki Tateishi <ttate@...>
立石です.
[#30885] SAGE — "Shin'ya Adzumi" <adzumi@...>
あづみです。
[#30897] ActiveScriptRuby + showModalDialog — keiichi matsunaga <ma2@...>
松永です。
[#30920] [REQ] Regexp#match! — Minero Aoki <aamine@...>
あおきです。
At Thu, 16 Aug 2001 11:24:45 +0900,
[#30945] file exist check method? — "Inoue" <inoue@...>
井上です。
こんにちは、なかむら(う)です。
新井です。
こんにちは、なかむら(う)です。
新井です。
なかだです。
新井です。
こんにちは、なかむら(う)です。
新井です。
こんにちは、なかむら(う)です。
新井です。
こんにちは、なかむら(う)です。
新井です。
なかだです。
新井です。
こんにちは、なかむら(う)です。
新井です。
もりきゅうです。長文ごめんなさい。
岩月と申します。そろそろ寝なくては。
もりきゅうです。
もりきゅうです。
なかだです。
もりきゅうです。
すぎむし。
なかだです。
もりきゅうです。subject 変えました。
In <200108201823.AA00825@yoshida.nifty.ne.jp>
File#join とか File#split とか使った事ないんですが…
なかだです。
From: nobu.nakada@nifty.ne.jp
In <20010823.222131.74756515.pegacorn@jcom.home.ne.jp>
こんにちは、なかむら(う)です。
なかだです。
もりきゅうです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
[#30961] popen() で Insecure PATH — 堀川 久 <vzw00011@...>
こんにちは。
まつもと ゆきひろです
こんにちは。
In <3b7e90ac.6968%vzw00011@nifty.ne.jp>
[#30987] [REQ] String#slice(re, n) — Minero Aoki <aamine@...>
あおきです。
[#31002] ruby のインストール — Andre Ribeiro Hanai <andre@...>
始めまして葉内です。
[#31005] インストールしました — 嶋崎 正貴 <hayashih@...>
嶋崎と申します
From: 嶋崎 正貴 <hayashih@interbroad.or.jp>
[#31035] 安全な文字列の評価方法 — 斉藤和樹 <QZS01353@...>
こんにちは。斉藤です。
[#31060] WIN32OLE の質問 : 環境変数の設定はどうやる? — Hirofumi Tamori <tamori@...>
[#31066] [Q] string underline in emacs — "K.Kosako" <kosako@...>
emacs 20.7.2でruby-mode.elを使用しています。
[#31069] ruby と mysql の使える webhosting — Ryuichiro Hara <ruby@...>
FAQかもしれないのですが...
[#31071] ruby on sun — Koichi Takehara <Koichi.Takehara@...>
ルビー初心者の竹原です。
[#31128] Ruby.exe で実行中は編集禁止? — Take_tk <ggb03124@...>
Ruby.exe(ruby 1.6.4 (2001-06-04) [i586-mswin32])で一日中回しているスク
[#31144] create_process または Win での外部コマンド実行 — Take_tk <ggb03124@...>
Windows で外部コマンドを実行するにはどういう方法があるのでしょうか?。
こんにちは、なかむら(う)です。
なかだです。
たけ(tk)です。
なかだです。
たけ(tk)です。
なかだです。
In message <200108291540.f7TFecg03766@sharui.nakada.kanuma.tochigi.jp>
[ruby-list:30850] ruby-mode.el の改善案
こんにちは。 font-lockでの色付けに関する改善案を思いついたので、ruby-mode.elをちょっと いじってみました。 ひとつめは、正規表現の色付け。 現在は、'/'はすべて正規表現式の開始だと解釈しています。このため、除算の'/'や、 文字列中の'/'まで、正規表現の開始として色付けされてしまっています。これを 「if,while,unless...etcの条件判断か=(,のすぐ後ろにある'/'のみを正規表現式の開始」 と解釈するようにすれば、大抵の場合はほぼ正確に色付けされるはずです。 もうひとつは、文字列。 正規表現式中などに'や"が含まれる場合、以下の行をすべてを文字列として、 色付けしてしまいます。このため、行末に#'とコメントを付け加えているのを 良く見掛けます。 これに対処する方法はすこしトリッキーです。 「font-lockがデフォルトで行なう色付けを、いったん上書きして無効にし、 改めて、自分で定義した色付けを行なう」 です。本当は、font-lock.el自体を何とかするのが筋でしょうが、当方にはその能力がないので。 ruby-mode.el($Date: 2001/06/23 15:14:25 $)へのパッチを添付します。 -- sheepman sheepman@tcn.zaq.ne.jp http://www.tcn.zaq.ne.jp/sheepman/ Key fingerprint = 7975 D321 35FC 18D7 9EE5 D9D0 6BE1 3C6D EDB4 01E6
Attachments (1)
--- ruby-mode.el.bak Sat Aug 4 23:39:54 2001
+++ ruby-mode.el Sun Aug 5 11:59:20 2001
@@ -707,6 +707,9 @@
(defvar ruby-font-lock-keywords
(list
+ ;; trick
+ '("\\s-+" 0 nil t)
+ '("\\S-+" 0 nil t)
(cons (concat
"\\(^\\|[^_:.@$]\\|\\.\\.\\)\\b\\("
(mapconcat
@@ -750,16 +753,14 @@
"\\|")
"\\)\\>\\([^_]\\|$\\)")
2)
- ;; regexps
- '("/\\(\\(\\\\/\\|[^/\n]\\)*\\)/\\([iop]*\\)"
- (1 font-lock-string-face)
- (3 font-lock-constant-face))
;; variables
'("\\(^\\|[^_:.@$]\\|\\.\\.\\)\\b\\(nil\\|self\\|true\\|false\\)\\b\\([^_]\\|$\\)"
2 font-lock-variable-name-face)
;; variables
- '("[$@].\\(\\w\\|_\\)*"
- 0 font-lock-variable-name-face)
+ '("\\(\\$\\(\\W\\|[0-9]\\)\\)\\W"
+ 1 font-lock-variable-name-face t)
+ '("\\($\\|@\\|@@\\)\\(\\w\\(\\w\\|_\\)*\\|#{\\)"
+ 0 font-lock-variable-name-face t)
;; embedded document
'(ruby-font-lock-docs
0 font-lock-comment-face t)
@@ -772,8 +773,36 @@
'("^\\s *def\\s +\\([^( ]+\\)"
1 font-lock-function-name-face)
;; symbols
- '("\\(^\\|[^:]\\)\\(:\\([-+/%&|^~`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|\\[\\]\\|\\(\\w\\|_\\)+\\([!?=]\\|\\b\\)\\)\\)"
- 2 font-lock-reference-face))
+ '("\\(^\\|[^:]\\)\\(:\\([-+/%&|^~`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|\\[\\]\\|\\(\\w\\|_\\)+\\([!?=]\\|\\b\\)\\|#{[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\)\\)"
+ 2 font-lock-reference-face)
+ ;; strings
+ ;; %Q! !
+ '("[[\\s <+(,]%[rqQ]?\\(\\([^a-zA-Z0-9 \n]\\)[^\\2\n\\\\]*\\(\\\\.[^\\2\n\\\\]*\\)*\\2\\)"
+ 1 font-lock-string-face t)
+ ;; '...'
+ '("[[\\s <+(,]\\('[^'\n\\\\]*\\(\\\\.[^'\n\\\\]*\\)*'\\)"
+ 1 font-lock-string-face t)
+ ;; "..."
+ '("[[\\s <+(,]\\(\"[^\"\n\\\\]*\\(\\\\.[^\"\n\\\\]*\\)*\"\\)"
+ 1 font-lock-string-face t)
+ ;; `...`
+ '("[\\s <+(,]\\(`[^`\n\\\\]*\\(\\\\.[^`\n\\\\]*\\)*`\\)"
+ 1 font-lock-warning-face t)
+ ;; %x!...!
+ '("[\\s <+(,]%x\\(\\([^a-zA-Z0-9 \n]\\)[^\\2\n\\]*\\(\\\\.[^\\2\n\\]*\\)*\\2\\)"
+ 1 font-lock-warning-face t)
+ ;; regexps
+ '("\\(^\\|[=(,~?:]\\|\\(^\\|\\s \\)\\(if\\|elsif\\|unless\\|while\\|until\\|when\\|and\\|or\\|&&\\|||\\)\\|\\.g?sub!?\\)\\s *\\(/[^/\n\\\\]*\\(\\\\.[^/\n\\\\]*\\)*/\\([iop]*\\)\\)"
+ (4 font-lock-string-face t)
+ (6 font-lock-constant-face t))
+ '("\\(/[^/\n\\\\]*\\(\\\\.[^/\n\\\\]*\\)*/\\)\\s *[=!][=~]"
+ 1 font-lock-string-face t)
+ ;; expression expansion
+ '("#{[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}"
+ 0 font-lock-variable-name-face t)
+ ;; comment
+ '("^\\s *\\([^#\n'\"%/]\\|'[^'\n\\]*\\(\\\\.[^'\n\\]*\\)*'\\|\"[^\"\n\\]*\\(\\\\.[^\"\n\\]*\\)*\"\\|%[rqQx]?\\([^a-zA-Z0-9 \n]\\)[^\\4\n\\]*\\(\\\\.[^\\4\n\\]*\\)*\\4\\|/[^/\n\\]*\\(\\\\.[^/\n\\]\\)*/\\|#{[^}\\\\]*\\(\\\\.[^}\\\\]*\\)*}\\)*\\(#\\([^{\n].*\\|$\\)\\)"
+ 8 font-lock-comment-face t))
"*Additional expressions to highlight in ruby mode."))
((featurep 'hilit19)