💡

大きくて複雑なコードを読むときの IntelliJ の Tips 2つ

2023/12/01に公開

今年も ミライトデザインのアドベントカレンダー を公開しました!

例年によってアドカレ隊長の ほげさん ( zenn ) が、初日の記事をサクっと投稿します。

ミライトデザインのアドベントカレンダーも3年目になりました。
過去2回のカレンダーにもおもしろい投稿がたくさんありますので、ぜひご覧ください。

https://qiita.com/advent-calendar/2021/miraito-inc
https://qiita.com/advent-calendar/2022/miraito-inc


大きくて複雑なコードって、読むのつらいよね

大きなコードや複雑なコードを快適に読むには、エディタのジャンプ機能だけでは足りない場合があります。

コードを読むときは、一度見たコードを何度も何度も必要に応じて開いて読み返しますよね。
でもそんなときに「メソッドにジャンプしたけどさぁ、メソッドが 500 行あって...いま読みたいのは 300 行くらい下の方なんだよね」とかありませんか?
そもそも「呼び出しが複雑すぎてジャンプでどうやってたどったか思い出せない」とか「特殊ルールにしたがって所定の名前のメソッドが自動で呼ばれる仕組みだからジャンプなんてできない」ということはありませんか?

そんな場合に便利な IntelliJ の機能を 2 つ紹介します。

ブックマーク

IntelliJ では匿名ブックマークを作れます。
( Windows は F11 / macOS は F3 )

行番号あたりにマークがつきましたね。

image

つけたマークはポップアップで一覧でき、選択するとその行に移動できます。
( Windows は Shift + F11 / macOS は Cmd + F3 )

image

匿名ブックマークだけでなく、名前付きブックマーク(ニーモニックブックマーク)も作れます。
( Windows は Ctrl + F11 / macOS は Opt + F3 )

ニーモニックブックマークを作成するときにポップアップが開き、任意の番号やアルファベットでブックマークを作成できます。

image

行番号あたりに1というマークがつきました。

image

ニーモニックブックマークは、対応する番号を押すだけでポップアップを開かず移動できます。
( Windows macOS ともに Ctrl + 1 でマーク 1 に移動 )

これでとっさにジャンプができない箇所もすぐ開けますね。

公式サイトのリンクを掲載します、さらに機能を知りたい方はごらんください。

Windows
https://pleiades.io/help/idea/bookmarks.html?keymap=windows

macOS
https://pleiades.io/help/idea/bookmarks.html?keymap=macos

構造ツールウィンドウ / ファイル構造ポップアップ

もうひとつは、 構造ツールウィンドウです。
開いているファイルの構造をツリー状に可視化してくれるウィンドウを開けます。
( Windows は Alt + 7 / macOS は Cmd + 7 )

image

ここにはクラスのプロパティやメソッドなどが列挙されていて、名前や型情報で要素を探せます。
メソッドがすごいたくさんあるクラスで処理を探すときなどに便利です。

構造ツールウィンドウではなく、ファイル構造ポップアップという機能もあります。
( Windows は Ctrl + F12 / macOS は Cmd + F12 )

次のスクリーンショットは、ファイル構造ポップアップを開いて vol と入力した状態です。
「たしか vol って単語が入ってた気がするんだよなぁ」という状況で、すぐ対象を見つけられます。

image

この絞り込みが便利で、僕は標準ライブラリなどを開いて「使えそうなメソッドないかな... 戻り値は List<T> だと思うんだけど...」みたいな探し方にも使っています。

この構造情報は、コードに限らず Markdown や YAML ファイルなどの構造化テキストファイルなどでも活用できます。
文書のヘッダレベルを整理したり、巨大な設定ファイルの構造を把握するのにも活用できます。

公式サイトのリンクを掲載します、さらに機能を知りたい方はごらんください。

Windows
https://pleiades.io/help/idea/structure-tool-window-file-structure-popup.html?keymap=macos

macOS
https://pleiades.io/help/idea/structure-tool-window-file-structure-popup.html?keymap=windows

おわりに

IntelliJ にはコードを書く機能だけでなく読むための機能もたくさんあります。
ぜひ活用してみてください。

続く記事もお楽しみに!

Discussion