[ruby-list:38364] rtagsでmodule/class methodの扱い

From: URA Takefumi <hage@...>
Date: 2003-09-05 18:11:43 UTC
List: ruby-list #38364
浦です。

rtagsについてです。module及びclass methodの定義で、表記によって挙動が変
わるのは既知なんでしょうか?

ちょっと長いのでサンプルは末尾につけますが、挙動としては

  ・def Mod::foo のように表記したらメソッド名(foo)がTAGSに現れない(とい
    うか、メソッド名があるべき場所に「?」が現れる)
  ・def Mod.foo のような表記であれば大丈夫というものです。

というものです。サンプルでは Mod::foo と Cls::foo がTAGSで対応すると思わ
れるものが「def Mod^?::Mod#Mod^A2,13」及び「def Cls^?::Cls#Cls^A9,69」の
ように出ています。

rtagsはirb-tools-0.9に付属のものを使いました(最新ですよね?)。

% ruby -v
ruby 1.6.8 (2003-03-26) [i386-freebsd4]
% cat foo.rb
cat foo.rb
module Mod
  def Mod::foo
  end
  def Mod.bar
  end
end

class Cls
  def Cls::foo
  end
  def Cls.bar
  end
end
% rtags foo.rb
--
-- parse file: foo.rb
module ::Mod in #<RubyToken::TkMODULE:0x80ea8c4 @line_no=1, @char_no=0, @seek=0, @name="module">
def ::Mod#Mod in #<RubyToken::TkDEF:0x80e94ec @line_no=2, @char_no=2, @seek=13, @name="def">
def ::Mod.bar in #<RubyToken::TkDEF:0x80e7278 @line_no=4, @char_no=2, @seek=34, @name="def">
class ::Cls in #<RubyToken::TkCLASS:0x80e4898 @line_no=8, @char_no=0, @seek=57, @name="class">
def ::Cls#Cls in #<RubyToken::TkDEF:0x80e359c @line_no=9, @char_no=2, @seek=69, @name="def">
def ::Cls.bar in #<RubyToken::TkDEF:0x80e1328 @line_no=11, @char_no=2, @seek=90, @name="def">
% cat TAGS
^L
foo.rb,151
module Mod^?::Mod^A1,0
  def Mod^?::Mod#Mod^A2,13
  def Mod.bar^?::Mod.bar^A4,34
class Cls^?::Cls^A8,57
  def Cls^?::Cls#Cls^A9,69
  def Cls.bar^?::Cls.bar^A11,90


--
浦 岳史 (うら たけふみ)
    mailto:hage@power.email.ne.jp



In This Thread

Prev Next