[ruby-list:42941] /.../の中の#{...}に対するruby-mode.elの処理について

From: KURODA Hiraku <hiraku@...>
Date: 2006-11-01 08:43:30 UTC
List: ruby-list #42941
黒田です。

ruby-mode.elを愛用しているのですが、正規表現リテラルの中で#{...}記法を使うと、そ
の次の行のインデントがおかしくなる現象に悩まされています。

例えば、次のような具合です。
----
#!/usr/bin/env ruby
def test
   r = /hoge/
   s = "hoge#{r.to_s}"
   r2 = %r[hoge#{r}]
   r3 = /hoge#{r}/
      puts "hello" # ←1段余分にインデントされている
end
----
sの行のような文字列リテラルや、正規表現リテラルであってもr2の行のように%r[...]で
書くと、中で'#'を使っても大丈夫なのですが、r3の行のように/.../で書くとインデント
がおかしくなります。

察するにruby-mode.elでは"..."や%[...]のような文字列の中では'#'をコメントの始まり
と見なさない処理が行われており、同じ処理を/.../に対しても行うようにすれば良いの
ではないかと思ったのですが、Lispはまだ不得手で、どのように対処してよいか見当が付
きませんでした。

良い対処法をご存知の方がいらしたら、お教えくださいませんか?


どうぞよろしくお願いいたします。

-- 
--------------------------------------------------
 黒田 拓(くろだ ひらく)
    hiraku@hinet.mydns.jp
    http://www.hinet.mydns.jp/~hiraku/
--------------------------------------------------

In This Thread

Prev Next