2012年1月31日火曜日

アウトライン解析準備中

LREdit に、アウトライン解析機能を準備中。

ctags を使うと、class や method などを行番号つきでリストアップできるので、それをリスト表示したり、カーソル位置がどのMethod 煮所属しているかを表示したりできるはず。

ctags.exe --sort=no -n "test.py"

数年前、ctags で Pythonの解析をしたとき、Method のなかに、class を定義した場合などの、入れ子構造がちょっとだけ複雑になるだけで、間違った解析結果が出ていたのだが、今最新のctagsで動作をチェックすると、その問題は解決したように見える。
 
class Klass1:

    class Klass2:
        def method2(self):
            pass
   
    def method1(self):
       
        class Klass3:
            def method3(self):
                pass 

は、次のように出力される。

!_TAG_FILE_FORMAT    2    /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED    0    /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR    Darren Hiebert    /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME    Exuberant Ctags    //
!_TAG_PROGRAM_URL    http://ctags.sourceforge.net    /official site/
!_TAG_PROGRAM_VERSION    5.8    //
Klass1    test.py    1;"    c
Klass2    test.py    3;"    c    class:Klass1
method2    test.py    4;"    m    class:Klass1.Klass2
method1    test.py    7;"    m    class:Klass1
Klass3    test.py    9;"    c    function:Klass1.method1
method3    test.py    10;"    m    class:Klass1.method1.Klass3

十分にエディタのアウトライン解析機能のために使えそうな印象だ。

0 件のコメント:

コメントを投稿