Function Fold
関数だけをまとめて折りたたみ、直前のコメントや TSDoc を読みやすく残す VS Code 拡張です。
使い方
- 対応するファイルを開きます。
- macOS は Cmd+K → Cmd+K、Windows / Linux は Ctrl+K → Ctrl+K を押します。
- 文書内の複数行関数、メソッド、アロー関数が折りたたまれます。
エディター右上の Fold アイコン、またはコマンドパレットの Function Fold: Fold Functions でも実行できます。展開する場合は Function Fold: Unfold Functions を使います。
/**
* ユーザーを取得します。この説明は表示されたままです。
*/
async function getUser(id: string) { // ← ここで本体を折りたたむ
const response = await fetch(`/api/users/${id}`);
return response.json();
}
コメント領域・import・クラス・if / for などの制御ブロック自体は対象にしません。関数内部のコメントや Python の docstring は、関数本体と一緒に隠れます。既に閉じているコメントを勝手に開くこともありません。
対応言語と前提条件
VS Code 1.96 以降のデスクトップ版を対象にしています。
| 言語 / フレームワーク |
必要な言語機能 |
検出するもの |
| TypeScript / JavaScript |
VS Code 標準の TypeScript and JavaScript Language Features |
関数宣言・関数式・アロー関数・メソッド・コンストラクター・get / set |
| React / Next.js |
同上。言語モードを TypeScript React / JavaScript React に設定 |
TSX / JSX コンポーネント、hook のコールバックなど |
| Vue |
Vue - Official |
SFC の script / script setup 内の JS / TS / JSX / TSX 関数 |
| C# |
C# など、シンボルと折りたたみ範囲を提供する拡張 |
言語プロバイダーが公開するメソッド・関数・コンストラクター |
| Python |
Python + Pylance など |
def / async def、クラスメソッド、入れ子の関数 |
| Java |
Language Support for Java など |
言語プロバイダーが公開するメソッド・コンストラクター |
言語拡張によっては、プロジェクトの読み込み、SDK / JDK / Python 環境の準備が必要です。各言語拡張の初期化が終わってから実行してください。本拡張はソースコードを実行せず、ファイルの書き換えや外部送信も行いません。
制約・トラブルシューティング
Editor: Folding は有効、Editor: Folding Strategy は auto に設定してください。
- 言語プロバイダーが関数本体の折りたたみ範囲を返さない場合は、その関数をスキップします。1行関数は折りたたみません。
- C# / Java の匿名ラムダ、アクセサーなどは、言語プロバイダーが関数シンボルとして返さない場合は対象外です。
- Vue の template / style、外部
script src は対象外です。外部スクリプトはそのファイルを開いて実行してください。
- 外側の関数を閉じると、その内側の関数とコメントも見えなくなります。クラスやコメントなどを先に閉じていた場合、その状態は保持します。
- 解析中に文書が編集されたり別のエディターに移った場合は、その実行を取り消します。
- ショートカットは対応言語の編集時にのみ有効です。既存のキーバインドと競合する場合は、キーボードショートカット設定で
functionFold.fold を変更してください。
- 解析に失敗する場合は出力パネルの Function Fold を確認してください。
- ブラウザー版 VS Code は初版の対象外です。
VSIX からインストール
リリース前の配布候補はプロジェクトで次のコマンドから作成できます。
npm ci
npm run verify
npm run package
code --install-extension artifacts/function-fold-0.1.0.vsix
または VS Code の拡張機能ビューの … → Install from VSIX… から選択します。
開発
開発には Node.js 22 以降を使います。通常利用には Node.js の別途インストールは不要です。
npm ci
npm run verify # 型検査・単体テスト・バンドル
npm run test:integration # VS Code 1.96 の Extension Host テスト
npm run package # artifacts/ に VSIX を生成
VS Code でこのフォルダーを開いて F5 を押すと開発用ウィンドウが起動します。既存の VS Code 実行ファイルで検証する場合は VSCODE_EXECUTABLE_PATH を指定できます。Linux の GUI がない CI では xvfb-run -a npm run test:integration を使います。
License
MIT。バンドルした依存ライブラリのライセンスは THIRD_PARTY_NOTICES.txt に同梱します。