|
こんにちは秀丸担当さん、安久津といいます。
「コメント/文字定数」の判定で Ruby を加えて下さい。
Perl からの完全分離独立です。
●基本的な判定。
(A)文字定数。
(1)"string" 「"」自体は \" で表す。
(2)'string' 「'」自体は \' で表す。
備考、Perl や 秀丸マクロと同じ。
(B)コメント。
(1) # 以降から行末まで。(単一行) Perl と同じ。
(2)行頭 =begin から、行頭 =end まで。(複数行)
"^=begin$" から "^=end$" まで。
●例外。
# の直後に { がある時にはコメントの開始としない。
"#[^{]?" とか "#(?!{).?" な感じがコメントの開始。
以上よろしくお願いいたします。m(__)m
では。
__END__
Rubyな人への補遺。
以前、綾乃介さんから要望(2:04492, 99/11/22)が出されていました。
ここで、( Perlな視点の )えるさんとのお話があるのですが、
秀丸での現実的な実装を越えているように思いました。
簡単にですが、私が考えたことを以下に述べます。
●元の要望: / から / までにある # はコメントの開始としない。
目的は、正規表現オブジェクトの中の # 対策。
/foo#bar/
/#{var}/
●私の却下理由。
(1) / / 以外の %r, %Q, %x, ``, の中でコメント扱いを受けてしまう。
(2)#{var}でない # は、
少なくとも、/ / , %r, %Q, %x, ``, の中では \x23, \043 で代替可能。
(3)秀丸の文字定数判定では挟みこみの対応関係を調べていない。
例えば " があれば、対応する " が無くても行末まで強調される。
(4)商演算子としての / の存在。
printf("%f\n%f\n", 10/3.0, 20/3.0)
n = var1/var2; # n = var3/var4;
(5)判定処理が複雑。
(6)Ruby だけ特別な処理は気が引ける。
●新しい要望: # の直後に { がある時にはコメントの開始としない。
目的は、正規表現オブジェクトの中の # 対策。
/#{var}/
●私の採用理由。
(1) / / の中に限らず %r, %Q, %x, ``, の中でもコメントにならない。
(2)\x23{var}, \043{var} では代替不可能な #{var} の # が使える。
さらに #$var, #@var は同様な流儀の #{$var}, #{@var} が使える。
他の場合は \x23, \043 が使える。
(3)秀丸が / と / の対応関係を調べる必要が無い。
(4)商演算子としての / の副作用を避けられる。
(5)判定処理が単純。
(6)Ruby だけ特別な処理が欲しいというのでなく、
現に Perl で行っているような処理を Ruby でもやって欲しい。
「 # の直前に $ があるときにはコメントの開始としない。」
@a = (1..5);
for( $i = 0; $i <= $#a; $i++ ){
print "\$a[$i] = $a[$i]\n";
}
●副作用。
当然、#{comment は、コメントとして強調されません。
しかし Ruby でコメント開始の #{ の出現頻度は、極小でしょう。
awk じゃないし。(^^;)
|
|