2011-10-26 6 views
1

Symbol Browserでエディタを作成する必要があり、私はctagsでおもしろくなると言いました。さて、私はctags形式を読んで、Googleで試してみました。私が見つけたのはctagsとvimに関する質問で、私はvimでゼロだった。そこで私は自分で遊ぶことに決めました。 だから私はタグファイルを取った、と私は完全に混乱していた!C++によるExuberant Ctagsの解析

ここで私はPHPファイルとそれに対応するタグを入れました。この行がクラスの属性またはメソッドを表しているかどうかをどのように知っていますか?また、PHP関数/メソッドの戻り値を知る方法は?

vi/vim以外のctagsのPHP(または他の言語)タグを扱う上で、良いチュートリアルは見つかりませんでした。 PHPファイル

<?php 

$teachers = array("standard one"=>"Celina Stephen", "Standard Two"=>"Emanyor Dickson"); 

function set_teachers($teacher_array){ 
    $teachers = $teacher_array; 
    return $teacher_array; 
} 

class School{ 
    $teachers; 
    $students; 

    public function __construct(){ 

    } 

    public function get_all(){ 
     return array($this->teachers,$this->students); 
    } 
} 

class ManySchools extends School{ 
    public __construct(){ 
     parent::construct(); 
    } 

    private do_selection($teacher, $student=null){ 
     return false; 
    } 

} 

タグが各行の;"後の最初の項目は、タグのkindを説明

!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ 
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ 
!_TAG_PROGRAM_AUTHOR Darren Hiebert /[email protected]/ 
!_TAG_PROGRAM_NAME Exuberant Ctags // 
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ 
!_TAG_PROGRAM_VERSION 5.9~svn20110310 // 
ManySchools test.php /^class ManySchools extends School{$/;" c 
School test.php /^class School{$/;" c 
__construct test.php /^ public function __construct(){$/;" f 
get_all test.php /^ public function get_all(){$/;" f 
set_teachers test.php /^function set_teachers($teacher_array){$/;" f 
teachers test.php /^ $teachers = $teacher_array;$/;" v 
teachers test.php /^$teachers = array("standard one"=>"Celina Stephen", "Standard Two"=>"Emanyor Dickson");$/;" v 

答えて

3

ファイル

おかげ

は、それはそれはクラス、関数などであるかどうかでありますあなたの例では、 cはクラスを意味し、 fは関数のようになります。 ctags --list-kinds=phpで完全なリストを得ることができます。

戻り値の型は(残念ながら)ctagsによって報告されません。

ctagsのマンページを見てください。たとえば、デフォルトで報告される情報に加えて、報告できるその他の情報があります。

+0

フォーマットは以下の通りですか?** Name file/^ signature;種類**? –

+0

ほとんどの場合、それは 'tagname filename/searchpattern /; kind"です。私が言ったように、マンページを見てください、それはすべて(TAG FILE FORMATの下で)説明されています。 –

0

まあ、私はExuberant Ctagsファイル形式は十分に立証されて

ctagsの形式を読み取ります。