Jetbrains、使いはじめてもう何年になるかわかりませんが、今までブックマーク機能を使ったことありませんでした。最近、使いはじめたのですが、これが思っていた以上に便利すぎたので紹介します。
Jetbrainsのブックマーク機能
私はこれまでブックマーク機能は、画面のブックマークだと思っていました。Jetbrainsで用意されている様々なウィンドウ画面から、よく使うウィンドウ画面をブックマークできるものだと思っていました。私がよく使うウィンドウ画面は横や下にある画面のタブで十分こと足りていたので、この機能を使おうと思ったことが全然ありませんでした。
でも、それは間違いでした。
Jetbrainsのブックマーク機能はコードに対するブックマークでした。任意の行をブックマークして、一覧表示したりジャンプしたりできる機能です。
ブックマーク機能の使い方
MNemonicを導入している場合は、ブックマーク関連のショーカットキーは
- bookmark togle
Cmd L -> B
- bookmark jump
Cmd J -> X/Z
- bookmark show list
Cmd N -> B
です。
(あまり良い例ではありませんが・・・)こんな感じで任意の行をブックマーク登録できます。
Cmd Jで直接ジャンプできますし、ブックマークのリスト表示でコードを確認したあとジャンプすることもでできます。
ブックマーク機能の使い所
今までは使ってなくても、あまり困っていなかった
私は新規開発フェーズから案件にジョインすることがほとんどです。なのでコードをゼロベースからガンガン書いていくことが多いのですが、その場合ブックマーク機能はなくてもあまり困りませんでした。
ブレイクポイントやToDoコメントで、コードの任意の場所にジャンプしたりリスト表示したりで、ブックマークと同等のことができていたので、特に機能不足で困ったことはありませんでした。
修正も、自分が担当した箇所を修正することがほとんどでしたので、ブックマーク機能が必要になるようなことは、あまりありませんでした。
ブックマーク機能があると便利なケース
巨大プルリクエストをレビューするとき
最近、レビューをすることが増えてきました。それも粒度が粗い巨大なPR(プルリク)が多いです。
レビューコメントは、1個ずつ書いていくよりある程度まとめて書いた方がいいです。都度書いていくと、あとで関連コードを読んだときに、あー、やっぱり、あのレビューコメント間違っていたみたいなことになってコメント修正が増えてしまいます。
ある程度まとめてコメントしたいときに、このブックマーク機能が役立ちます。レビューなのでデバッグするわけではありませんし、ToDoコメントなども追加するわけにはいかないので、ブックマーク機能が最適です。
自分が精通していない実装に修正を入れるとき
途中参加の案件や、人が足りない、造った人がいなくなったという場合は他人が書いたコードに修正をしなければなりません。そうなると、まずは今のコードを理解しないといけないのですが、このコードリーディング時にブックマーク機能が役立ちます。
謎コードや修正した方がいいと思う箇所にブックマークしておけば、後で考え直すときなどに便利です。
yamlやコメント箇所などに使える
ブレイクポイントは、Yamlやコメント箇所には入れることはできませんが、ブックマークはYamlやコメント箇所にも入れることができます。Yamlに謎の設定値がある、謎コメントがあるなどのときもブックマークして、あとで参照したりジャンプして戻ってくることができます。
まとめ
Jetbrainsのブックマーク機能は便利です。ブレイクポイントやToDo:などのコメントタグである程度似たようなことできますが、コードを動かしたくない、修正を入れたくないときなどはブックマークを使うべきです。
そもそもブレイクポイントはデバッグ時に使うもので、コメントタグは残して置いて別ブランチで対応するといった使い方をするので、使い所がブックマークとは違います。
自分のことをJetbrains信者だと思っていますが、まだまだ知らないことあるなと思いました。ブックマーク機能は使いはじめたばかりですが、自分の中では必須機能になりつつあります。