|   |  
こんにちは秀丸担当さん、安久津といいます。 
「コメント/文字定数」の判定で 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 じゃないし。(^^;) 
 
			 | 
		  
	 |