こんにちは!技術部の小池です。
Tech KAYAC Advent Calendar 2018 の22日目を担当させていただきます。
はじめに
みなさんお手元の開発環境/エディタは何をお使いですか?私は数年前まで iOS 開発は Xcode、Android 開発は Android Studio、サーバサイド開発は Sublime Text 2 と複数の開発環境を使い分けていましたが、環境ごとに脳内キーバインドを切り替えるのが苦痛でもう無理だわ〜〜ってなったので JetBrains IDE に統一しています。
IntelliJ IDEA をはじめとする JetBrains IDE はプロダクトがたくさんあり一見わかりにくいのですが、ほとんどは IntelliJ IDEA と、IntelliJ IDEA に言語プラグインを同梱したものです。Golang 用の GoLand、C# 用の Rider、C/C++ 用の CLion、Objective-C 用の AppCode 等は IntelliJ IDEA + プラグイン形式ではなく独立したプロダクトとして開発されています(他にも Visual Studio 向けのプロダクトもあります)。しかし各 IDE はキーマップがほぼ共通のため環境の違いを意識せずに使うことができます。とっても便利。
今年の夏頃に JetBrains 社に日本チームができたので日本語でもサポートが受けられるようになりました。また Eclipse の日本語化も行っている WillBrains 社による日本語化も進んでおり、日本語でも十分使えるようになってきていると思います。
最近弊社で Rider や GoLand を使い始めた方が増えているので JetBrains IDE 共通で使える tips を紹介しようと思います。
ショートカットキーはキーバインドごとに違うのでここでは記述しません。以下のように Preferences で機能名からショートカットキーを検索することができますので参考にしてください。
Search Everyware
多分どのキーバインドでも shift キーを2回押すと出てくる超便利機能です。ファイル、クラス、シンボル、IDEの機能まであらゆるものを爆速サーチしてくれます。困ったらこれを使って探す癖をつけると良いです。サーチウィンドウ右上の Include non-project items にチェックを入れる(さらに shift キーを2回押す)とプロジェクトが依存している外部パッケージも検索することができます。
たとえば GoLand であれば Golang の標準パッケージのソースをプロジェクトのソースと一緒に検索できます。
Settings Repository
あまり使っている方を見ないのですが、Settings Repository を使うとローカルの 設定を GitHub 上で同期させることができます。会社のマシンでも家のマシンでもストレスなく設定を最新に保つことができます。dotfiles を GitHub 上で管理するのと同じような感じですね。他にも JetBrains サーバを使って設定を同期させる方法もありますが、たまに動作が不安定になるので私はずっとこちらを使っています。
Key Promoter X
プラグインです。ショートカットキーを使わずにメニューを開いてコマンドを実行する怠惰なエンジニアにショートカットキーを叩き込んでくれるのがこの Key Promoter X です。たとえば ⌘ + C のコピーを右クリックメニューから選んで実行すると以下のようなウィンドウが右下に出てきてショートカットキーを教えてくれます。
このコマンドはマウスで実行するぞ!というものがあれば個別に ignore することもできます。
Edit Custom VM Options
JVM のヒープサイズを変更できます。デフォルトでは大きなプロジェクトではインデクシングに結構時間がかかる程度にはサイズが小さいので、どかどかっと大きくしてしまいましょう。また、Preferences -> Appearance の項目の Show memory indicator にチェックを入れると右下にメモリ使用量が表示されるようになります。
Show Intention Actions
実行するとカーソル上の構文ごとに最適なアクションを提案してくれます。警告が出てるところでは警告を解消するためのアクションが、何も警告がないところではよりよいコードにするためのアクションがあれば提示されます。私は警告が出てたらとりあえずこれを使うようにしています。
Jump to Source
クラスやメソッドの定義元に飛んでいくやつです。他の IDE でもよくある機能ですが、ジャンプした履歴を保持しており、Back 機能でジャンプした定義元から呼び出し元のコードに戻ることができます。爆速でコードを往復できます。
Quick Definition
カーソル上のクラスやメソッドの定義元の実装をチラっと見ることができます。ジャンプするほどではないけどちょっと見たいときに便利です。
Parameter Info
カーソル上のメソッド呼び出しコードの引数の型を見ることができます。GoLand を使っているときに特に重宝します。
Presentation Assistant
プラグインです。使用したショートカットキーを画面に表示してくれます。普段はあんまり意味がないですが、プレゼン中など他の人に画面を見せるときに使用するといい感じの演出になるのでおすすめです。
Productivity Guide
自分がよく使う機能と使わない機能を一覧で出してくれます。ミーティングの合間等に眺めてみるとほほう、となります。私の Productivity Guide はこちら。
おわりに
ざっくりとしてしまいましたが tips の紹介でした。JetBrains IDE には他にも膨大な機能があるので色々お試しください〜。
明日は iemon さんによる 「matter.js or M5stack or その他」です!おたのしみに〜