1

バックグラウンド

  • Vim 用の Most Recent Used Function Browser プラグインを作成しています。
  • カーソルがある現在の関数の名前を見つける必要があります。
  • 他の言語では、「{ }」の囲みを検索できますが、python は空白/タブを使用します。

これらの関数が foo.py にあるとします...

def foo(file):
    fileLines = []
    with open(file, 'r') as f:
        for line in f:
            fileLines.append(line)

    def nested_function():
        pass

    # FILE POSITION
    for line in fileLines:
        print line

位置の関数名を返す関数を書きたい(例では「FILE POSITION」)

def get_function_scope(sourceFile, lineNumber, columnNumber):
    pass

したがって、上記の例では、次のようなものが必要です...

fxnName = get_function_scope("foo.py", lineNumber=9, columnNumber=4)
print fxnName
# "foo"

アプローチ

  • Exuberant CTags は、すべての関数/クラス/メソッドの場所の優れたリストを提供しますが、各関数が占めるスコープの行番号は提供しません。
  • コードが「ライブ」でなくても、検査が役立つかどうかわかりませんか?
  • 関数/メソッドの定義に到達するまで、インデントから逆方向に作業することを考えています。

私が気付いていないこれを行う標準的な方法はありますか?

4

1 に答える 1