ファイルの読み込み時に関数/メソッドのみを折りたたむ崇高なテキストエディター (Python を使用) 用のプラグインを作成しています。これを行うには、ファイルの内容を解析し、関数ブロックを検出し、各ブロックの開始位置と終了位置を取得する必要があります (これは、API が折り畳みを行うために必要です)。最初に思いついたのは正規表現でしたが、ネストされた関数、特に c スタイルの構文では機能しないことがすぐにわかりました。
私が現在これを行っている方法は、行ごとに「{」と「}」を探し、関数定義が同じ行または「{」の上にあるかどうかを確認することです。関数定義が見つからない場合は、それが制御構造であると想定します。コメント内の括弧記号が一致しないと、このロジックが失敗するため、これは完全にはほど遠いものです。私は他のオプションを知らないので、これはおそらくこれを完全に行う間違った方法です。何か案は?