かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

コードを書くときによく使う機能

コーディング時に使うIDEはEclipseです。
C#とかの場合はもちろんVisual Studioです。

でも、コーディングのための機能はEclipseのほうが優れてると思ってる。
よく使うものを列挙してみる。

まず最初に

Package Explorerで「Alt + Shift + N」
これでプロジェクトやPackageやClassを作ります。

エラーが出たら

コンパイルエラーが検出されて、それを直したいときは「Ctrl + <」と「Ctrl + >」で1つ前のエラー、1つ後のエラーに飛べます。
そのまま「Ctrl + 1」でエラーの修正候補から選んで完了。
テストファーストでやってるときによくつかう手法です。

リファクタリング

よく使うものは下記のもの。

  1. 「Alt + Shift + M」メソッドの切り出し
  2. 「Alt + Shift + L」後述
  3. 「Alt + Shift + I」↑と逆のようなことをする
  4. 「Alt + Shift + R」リネーム
  5. 「Alt + Shift + S」の後にRでゲッターセッターの生成
  6. 「Alt + Shift + S」の後にOでフィールドを使用したコンストラクタ生成
  7. 「Alt + Shift + S」の後にCでスーパークラスからのコンストラクタ生成
Alt + Shift + LとAlt + Shift + I

Alt + Shift + Lは、下記のようなときに使ってる。
たとえば、あるメソッドを呼んで戻り値を変数に代入するという処理を書くときに、メソッドの戻りを書かずにメソッドの呼び出しだけを書く。

List<Integer> l = new ArrayList<Integer>();
l.iterator(); // <- こいつみたいに戻り値を受け取るように書かなきゃいけなかった

その状態で「Alt + Shift + L」を押すと…

List<Integer> l = new ArrayList<Integer>();
Iterator<Integer> iterator = l.iterator(); // 出来た!?

変数名を何にするか聞いてくるダイアログが出てくるので、変数名を入力してOKを押すと上のように出来上がる。


メソッドの戻り値を、メソッドに渡すようなコードをよく書くと思う。
さっきの続きだと…

List<Integer> l = new ArrayList<Integer>();
Iterator<Integer> iterator = l.iterator();
doSomething(iterator);

みたいな感じ。


でも、こういうものってl.iterator();とdoSomethingを一行に書くよね?
そういう時は、doSomethingのiteratorのところにカーソルを持っていって、「Alt + Shift + I」

List<Integer> l = new ArrayList<Integer>();
doSomething(l.iterator());

スッキリします。


l.iterator()の括弧の後にカーソルをもっていって「Alt + Shift + L」を押すと元通りになります。
何気に便利。

ソースコード

  1. 「Ctrl + Shift + F」フォーマット
  2. 「Ctrl + Shift + O」インポートの編成

飛び回る

F3で宣言へ飛ぶ。
Alt + ←やAlt + →で1つ前に戻ったり進んだり。

実行する

Alt + Shit + X を押すとリスト(ツールチップ)が出てくるので、実行したい物を選ぶ。(JavaアプリだとJ、JUnitテストだとT)

繰り返す

最後に、前に実行したものを再度実行したい時は、「Ctrl+F10」です。
これは、JUnitのテストを実行してREDを出してからテスト対象のクラスを少し直してはテスト実行を繰り返す時に良く使います。

大体これで事足りる?