各種メニューについて説明します。
Eclipse3.5M4に対応しています。
なお、Ctrl-O
のような記述はキーバインド(Emacs版)を表しています。
メニューには存在せず、ツールバー上から実行できるコマンドがあります。
Alt-Shift-O
ONにすると、Java Editor上で変数などをクリックしたときにその変数(以下ターゲット)が「マーク」されます。 マークされたターゲットがハイライト表示されるだけでなく、 そのターゲットに関係があるターゲットも一緒にハイライト表示されます。 例えば、ある変数をマークすると「その変数が使われている箇所全て」がマークされます。 メソッドならば「そのメソッドが呼び出されている箇所全て」、 例外ならば「その例外が発生する可能性のある箇所全て」となります。 なかなか便利な機能です。
いわゆる「パン屑ナビゲーション」と呼ばれているものです。
ONにすると、エディタの上部にナビゲーションバーが表示されます。
人によっては相当便利な機能でしょう。
ONにすると、Java Editor上で選択したメソッド(やフィールド)定義の内側だけがエディタ上に表示されます。
エディタ内で Ctrl-Chift-L
を入力すると、
ポップアップに利用可能なコマンドとキーバインドの一覧が表示されます。
エディタは、左右にいくつかのバーを持つ構造になっています。
バー毎に使えるコマンドが異なるので、順を追って説明します。
エディタの左端にあるのがこれです。
ダブルクリックすると Toggle Line Breakpoint の動作をします。
右クリックメニューからは、ブレークポイントの無効化やプロパティの変更などが出来ます。
Vertical ruler のすぐ右にある領域の左半分がこれです。
現在編集中の部分が紫色に表示されます。
Show QuickDiff コマンドによりQuickDiffを無効にすれば、この領域は表示されなくなります。
Set QuickDiff Reference コマンドにより、CVSとの差異を表示させることも出来ます。
Quick Diffバーと同じバーの右半分の領域がこれです。
小さな右矢印や下矢印が表示されていると思います。
これは、メソッドの本体やJavaDoc部分、Import宣言などの表示を隠す機能です。
隠したいメソッドと同じ行にある下矢印(隠れていない情報)をクリックすると
右矢印(隠れた状態)に変わります。もう一度クリックすれば元に戻ります。
これらの情報はEclipseのworkspaceに保存されているらしく
ファイルを閉じてもEclipseを終了しても可視情報は保管されます。
スクロールバーの右側にあるのがこれです。
ブレークポイントやTaskタグ等が表示されます。
クリックすれば、その位置までジャンプします。
以下に、バーから右クリックで行えるコマンドについて説明します。
ブレークポイントバー、Quick Diffバー、Foldingバーの全てで利用できます。
Ctrl-Shift-Q
QuickDiffを有効/無効にします。
行番号表示を有効/無効にします。
QuickDiffの対象となるファイルを選択します。
CVSの最新ファイルを比較対象とします。
CVSにコミットをした段階で差異は無くなります。
ディスク上のファイルを比較対象とします。
ファイルにSaveした段階で差異は無くなります。
Ctrl-Numpad_Divide
Folding(隠し)機能を有効/無効にします。
Ctrl-Numpad_Multiply
ファイル上の全要素を表示させます。
Ctrl-Shift-Numpad_Divide
ファイル上の全要素を折りたたみます。
Ctrl-Shift-Numpad_Multiply
詳細は不明です。
全てのメンバ要素を折りたたみます。
全てのコメント要素を折りたたみます。
メニューには存在せず、Package Explorerビュー内の右クリック時にしか
使用できないコマンドがいくつか存在します。
非常に便利なコマンドもあるので、ここで紹介します。
ビルドパス関連コマンドです。
外部フォルダをハードリンクとして現在のプロジェクトに追加します。
ソースフォルダを新規作成します。
選択したフォルダをソースフォルダに追加します。
選択したフォルダをソースフォルダから削除します。
jarファイルを選択した場合、それをビルドパスから削除します。
選択したファイルをビルドパスに追加します(フィルタ使用)。
選択したファイルをビルドパスから削除します(フィルタ使用)。
外部jarファイルをビルドパスに追加します。
ライブラリをビルドパスに追加します。
ビルドパス設定ダイアログを開きます。
CVSやSVNなど、ソース管理システム関連のコマンドです。
選択したファイルやフォルダを、他のものと比較します。
比較対象としては、
などがあります。
選択したファイルやフォルダを、他のもので置き換えます。
置き換え対象は Compare With と同じです。
ここから、通常メニューの紹介です。
Alt-Shift-N
新規のプロジェクトやファイルを作成します。
無名ファイルを開きます。
Emacsでいうところの「scratchバッファ」に相当するものです。
外部ファイルをEclipseのエディタで開きます。
Ctrl-X K
現在アクティブになっているファイルを閉じます。
Ctrl-X Ctrl-C
現在開いているファイルを全て閉じます。
Ctrl-X Ctrl-S
ファイルを保存(上書き)します。
ファイルを別の名前で保存します。
Ctrl-X S
現在開いているファイルを全て保存します。
現在のファイルに対して加えた修正を元に戻します(ファイル内容の再読込)。
ファイルを移動します。
F2
ファイルをリネームします。
F5
選択したプロジェクトやパッケージ以下のファイルを再度読み込みます。
改行文字を指定します。
Alt-F9
現在のファイルを印刷します。
ワークスペース基準ディレクトリを変更します。
Eclipseを再起動します。
プロジェクトをインポートします。
ローカルシステム上の圧縮ファイルからプロジェクトを取り込みます。
CVSからプロジェクトを取り込みます。
Antのビルドファイルからプロジェクトを取り込みます。
Existing Project into Workspace
既存のEclipseプロジェクトを取り込みます。基準ディレクトリに「.project」ファイルが必要です。
Eclipse Future を取り込みます。
External Plug-ins and Fragments
Eclipseプラグインを取り込みます。
既存のファイルをディレクトリごと取り込みます。
Preferenceのインポートはここから行います。
以前までは Preferencesダイアログ上から行っていたものです。
個人的には以前の方が使い易かったのですが…
Team Project Set(*.psf)を取り込みます。
プロジェクトをエクスポートします。
Antのビルドファイルにプロジェクト情報を出力します。
Javaプロジェクトでのみ使用可能です。
圧縮ファイルにプロジェクトを出力します。
zipまたはtarball(tar.gz)形式が使えます。
Eclipse Future をファイルに出力します。
Deployable plug-ins ang fragments
Eclipseプラグインとフラグメントをファイルに出力します。
詳細は不明です。
プロジェクト内ファイルを別ディレクトリにコピーします。
プロジェクトを実行可能なjarファイルに出力します。
javadocを出力します。
プロジェクトのPropertiesで「Javadoc Location」を指定している必要があります。
Preferenceのエクスポートを行います。
Team Project Set(*.psf)に書き出します。
プロジェクトのプロパティを確認・変更します。
プロジェクトの基準ディレクトリなどを表示します。
ファイルの文字コードを指定します。
プロジェクトやディレクトリ単位で変更することも可能です。
新規ファイルを作成するときに使用する改行コードを指定します。
プロジェクトで使用するビルドプログラムを指定します。
プロジェクトのCVS情報を表示します。
Update時に(必要ならば)新規ディレクトリを作成してそこに取り込みます。
このプロジェクトでCVSの監視機能を有効にします。
プロジェクトの各種パスを指定します。
ソースディレクトリを指定します(複数可)。Allow output folders for source folders
にチェックを入れることで
classファイル出力先ディレクトリを分けることが可能になります。
このプロジェクトで参照する外部プロジェクトを指定します。
コンパイルに必要な外部jarファイルを指定します。
つまりはクラスパスの設定です。
ビルドする順番とエクスポート対象パスを指定します。
チェックが付いているものがエクスポート対象になり、リストの上から順にビルドされます。
プロジェクト毎にコードスタイルをカスタマイズすることが出来ます。
詳細は Code Style を参照して下さい。
プロジェクト毎にJavaコンパイラの設定をカスタマイズすることが出来ます。
詳細は Compiler を参照して下さい。
プロジェクト毎にJavaエディタの設定をカスタマイズすることが出来ます。
Javadocの出力先を指定します。
plugin.xml のコンパイル設定をカスタマイズします。
現プロジェクトを参照している他プロジェクトを指定します。
過去に行ったリファクタリングの履歴を参照することが出来ます。
このプロジェクトに関連するランチャの情報を登録することが出来ます。
Ctrl-X U
アンドゥします。
Ctrl-X R
アンドゥを取り消します。
Ctrl-W
選択範囲をカットします。
Alt-W
選択範囲をコピーします。
選択したファイルのフルパスやJavaクラスの完全限定名をクリップボードに貼り付けます。
Ctrl-Y
カーソル位置にペーストします。
Delete
ファイルを削除します。
Ctrl-X H
全てを選択します。
選択範囲を拡大します。
Alt-Shift-Up
選択範囲を前後に拡大します。
Alt-Shift-Right
選択範囲を後方向に拡大します。
Alt-Shift-Left
選択範囲を前方向に拡大します。
Alt-Shift-Down
選択範囲を前回のものに戻します。
Alt-R
検索・置換を行います。
前回の検索を後方向に行います。
Ctrl-Shift-K
前回の検索を前方向に行います。
Ctrl-S
前方へのインクリメンタル・サーチを行います。
Ctrl-R
後方へのインクリメンタル・サーチを行います。
エディタ内の現在位置をブックマークに登録します。
エディタ内の現在位置をタスクとして登録します。
Ctrl-Shift-Insert
Smart Insertモードにします。
通常のInsertモードと違うのは・・・よくわかりません(笑)。これがデフォルトです。
F2
選択したフィールドの型や
メソッドのパラメータを表示します。
Alt-/
コードアシストが働きます。
予約語やメソッド・フィールド名、for文などの入力を補助します。
文字列を補完します。
文字列を途中まで入力した状態でこのコマンドを実行すると、
同一ファイル内に似たような文字列があればそれを補完してくれます。
Ctrl-1
単語(メソッド等)にカーソルを合わせてこのコマンドを実行すると、リネーム等のアクションが行えます。
利用できるアクションは状況に応じて変化します。
利用できるアクションが無いときに表示されます。
オブジェクト名をリネームします。
クラスAにこのアクションを適用してBにリネームすると、ファイル内で使われている全てのクラスAがBに変更されます。
オブジェクトをクラスフィールドにします。
変数宣言を2行(宣言+代入)に分割します。
if文にelse部を追加します。
Remove surrounding 'XXX' statement
XXX には for や if などが入ります。
他にもswitch文など、ブロックで囲まれた文をまとめて削除します。
Assign statement to new local variable
変数定義文を生成します。例えば、
obj.getFile();
と入力してコマンドを実行します(カーソル位置はそのままでOK)。すると…
File file = obj.getFile();
こんな感じになります。「この機能が欲しかった」という人は多いはず。
上のコマンドと同じですが、変数をローカル変数ではなくフィールドとして定義します。
キャッチされない例外がある場合に、メソッド定義部にthrows句を追加します。
このコマンドはマーカーバーをクリックしても表示されます。
キャッチされない例外がある場合に、その前後をtry/catchで囲みます。
このコマンドはマーカーバーをクリックしても表示されます。
Task Tag文字列を削除します。
Task Tag文字列はPreferencesのTask Tagsで設定できます。
例えば「// TODO ファイルを表示する」のようなコメントを付けていた場合に、
タスクが完了した段階でこのコマンドを実行すればTODOの文字列が削除されることになります。
Serializable
を実装しているクラスに、
デフォルト(固定で1)のシリアルバージョンIDを追加します。
private static final long serialVersionUID = 1L;
Add generated serial version ID
Serializable
を実装しているクラスに、
動的生成のシリアルバージョンIDを追加します。
private static final long serialVersionUID = -2095326683994337628L;
ループ構文を、JDK5で追加された構文(enhanced for loop)に置き換えます。
例えば、
for (int i = 0 ; i < names.length ; i++) { String name = names[i]; ... }
のような文を
for (String name : names) { ... }
のように置き換えます。
ファイルの文字コードエンコーディングを設定します。
Ctrl-7
選択された行のコメント化/コメント解除をトグルさせます。
Ctrl-Shift-/
選択された行を(/* */ で囲んで)コメント化します。
Ctrl-Shift-\
選択された行の(/* */ で囲まれた)コメントを解除します。
Javadocコメントを生成します。
TAB
選択された行を右に1インデントずらします。
Shift-TAB
選択された行を左に1インデントずらします。
Ctrl-I
インデントのみを正規化します。
「フォーマットはしたくないんだけどインデントだけ直したいなぁ」という場合に便利です。
Ctrl-Shift-F
フォーマットに従ってJavaコードを正規化します。
フォーマット形式はWindow->PreferencesのJava→Code Fomatterで変更できます。
一部のテキストを選択してコマンドを実行すると、選択された範囲だけ正規化されます。
Javadocコメントを正規化します。
Ctrl-Shift-M
必要なImport文を追加します。
定数を選択してこのコマンドを実行すると、Static Import文が自動生成されます。
Ctrl-Shift-O
プログラム内で使用しているパッケージを全てプログラムの先頭でimport宣言し、
使われていないimport宣言は削除されます。
デフォルトでは、.* 形式で書かれていた場合は全て書き直されます。
この動作を変更したい場合は、
Window->PreferencesのJava→Organize Importsの「Number...」の数値を1または2にしましょう。
例) import java.io.*; ↓ import java.io.FileReader; import java.io.IOException;
クラス内のメソッドをソートして配置し直します。
様々なルールに従って、コードをクリーンアップします。
使い道としては、目に余るようなコードをリファクタする前に
まずこいつでコードを少しでもマシにしよう、とかいう感じになると思います(笑)。
フォーマット関連です。
フォーマットに従ってJavaコードを正規化します。
行末にある半角スペースを削除します。
全ての行を対象とします。
空行に関しては削除対象外とします。
インデントのみを正規化します。
Organize Imports を実行します。
メンバをソートします。
全メンバをソートします。
フィールドとenum定数をソート対象外とします。
コードスタイル関連のルールを定義します。
いくつかのステートメントを制御します。
if文などで単一文をブロック化(中括弧で括る)します。
if (result) return;
↑こんなようなコードの事です。
全てをブロック化します。
Always except for single 'return' or 'throw' statements
単一のreturnまたはthrow以外の箇所はブロック化せず、
それ以外の箇所は全てブロック化します。
可能な限りブロック化しません。
単文は全てブロック化を外し、それ以外の箇所はブロック化されます。
ループ形式をJDK5で採用されたenhancedループに書き換えます。
いくつかの式を制御します。
条件文をカッコで括るかどうかを指定します。
全ての条件文をカッコで括ります。
必要ならば条件文をカッコで括ります。
言い代えると、可能な限りカッコを使用しない形式に書き換えます。
変数定義文を制御します。
可能ならば final
識別子を付けるようにします。
privateフィールドを対象とします。
メソッドパラメータを対象とします。
ローカル変数を対象とします。
メンバアクセス関連のルールを定義します。
static以外のアクセスを制御します。
フィールドアクセスに this
識別子を使用するかどうかを指定します。
常に使用します。
必要ならば使用します。
メソッドアクセスに this
識別子を使用するかどうかを指定します。
常に使用します。
必要ならば使用します。
staticアクセスを制御します。
staticアクセス時のクラス名修飾パターンを選択します。
staticフィールドへアクセスする際に、明示的にクラス名を修飾するようにします。
staticメソッドへアクセスする際に、明示的にクラス名を修飾するようにします。
staticメンバへのサブクラス経由アクセスを、適切な形に変更します。
staticメンバへのインスタンス経由アクセスを、適切な形に変更します。
不十分なコード関連のルールを定義します。
注釈(Annotation)関連のルールを定義します。
@Override
/ @Deprecated
が足りない箇所に追加します。
その他問題が発生する可能性のあるルールを定義します。
Serializable
なクラスに、シリアルバージョンIDを付加します。
実装されていないメソッドの雛形を自動で生成します。
不必要/未使用コード関連のルールを定義します。
未使用のコードを制御します。
未使用のインポート文を削除します。
未使用のprivateメンバ宣言を削除します。
未使用のローカル変数宣言を削除します。
不必要なコードを制御します。
不必要なキャストを削除します。
不必要な $NON-NLS$
タグを削除します。
スーパークラスのメソッドをオーバーライド(上書き)したい時に使います。
オーバーライドした事を示すJavaDocコメントとデフォルトコードを内蔵した
メソッドの作成補助をします。
publicフィールドに対して使用すると、
そのフィールドのGetter,Setterメソッドが作成され
スコープはprivateに変更されます。
より細かい指定をしたい場合にはRefactorコマンドのEncapsulate Field...を使用しましょう。
もっと適切なJavadocコメントを生成したい場合は、
Limy Eclipse Plugin を使いましょう(笑)。
コードの委譲(Delegate)を支援します。
委譲についての詳しい説明は…他のページに譲ります(笑)
と突き放すのも何なので、簡単に説明します。
class PointDelegate { Point point; }
のようなクラスがあったとき、
PointクラスのメソッドをPointDelegateクラスにも内蔵することを言います。
委譲後のコードは
class PointDelegate { Point point; public void setX(int x) { point.setX(x); } }
のようになります。
「そんな事しないでPointDelegateクラスがPointクラスを継承すればいいじゃん」
と思った方、世の中にはそんなにうまくいかない事があるのです(笑)。
いずれ委譲を必要とするコードを書かなければならなくなった時
この機能にお世話になると思うので、心の片隅にでも置いといて下さい。
hashCode および equals メソッドを自動生成します。
その際、クラスが持っているフィールドに合わせて
自動的にこれらのメソッド内容まで実装してくれます。
これは非常に便利ですが、実際には用途に合わせて
手修正することの方が多いでしょう。
フィールドと同じ引数を持つコンストラクタを生成します。
public ClassA(int field1, String field2) { this.field1 = field1; this.field2 = field2; }
こんな感じになります。データクラスに使えるでしょう。
スーパークラスの全コンストラクタをオーバーライドします。
Alt-Shift-Z
選択されたブロックを、各種構文で囲みます。
以下の構文が使用できます。
ブロック内で起こりうるcatch句が付いた形の
try/catch構文で囲みます。
文中で例外の発生する可能性が無い場合は、
「RuntimeExceptionの付いたtry/catch構文で囲む?」
という趣旨の確認ウィンドーが表示されます。
catch句が無いというコンパイルエラーになった場合は、 それに対応する×印を左クリックするとコンテキストメニューとして表示されます。
ループ形式のfor文で囲みます。
do ~ while文で囲みます。
…do構文って何?とか聞かないで下さい(笑)。
if文で囲みます。
try ~ catch文で囲みます。
while文で囲みます。
synchronizeブロックで囲みます。
Runnableクラスで囲みます。
ファイル中に存在する文字列リテラルを外部ファイルに格納します。
外部ファイルから文字列を読み込むためのクラスが
新規で作られ、プログラム内からはそのクラスのメソッドを呼ぶことで
文字列への代入を行うように加工されます。
各種設定項目(ウィンドー1枚目)
ここに、対象となる文字列リテラルの一覧がリスト表示されます。
各行には「チェック、Key、Value」の順にカラムがあります。
変換を適用します。
例) String str = "message-1"; ↓ String str = Messages.getString("message-1"); //$NON-NLS-1$
変換しません。
文字列リテラルの後ろには識別子がコメントとして置かれ、
今後このコマンドを呼んだときは変換の対象になりません。
例) String str = "message-1"; ↓ String str = "message-1"; //$NON-NLS-1$
変換しません。
今後このコマンドを呼んだときも変換の対象になります。
例) String str = "message-1"; ↓ String str = "message-1";
変換後のプロパティファイルの左辺値になります。
Key名の上で右クリックすると編集できます。
例) String str = "message-1"; ↓ Keyを"MES1"に変更 String str = Messages.getString("MES1"); //$NON-NLS-1$
変換される文字列リテラルです。編集はできません。
Enter common prefix for generated keys (optional):
ここに文字列を入力すると、
全Key名の先頭にその文字列が付加されます。
例) String str = "mes"; ↓ prefixに"pre_"と入力 String str = Messages.getString("pre_mes"); //$NON-NLS-1$
各種設定項目(ウィンドー2枚目)
Define the property file location and name
プロパティファイルを格納する場所を指定します。
Create resource bundle accessor class
プロパティファイルから文字列の読み込みを行うクラスを
デフォルトパッケージ内に作成します。
Class nameでそのクラス名を変更できます。 ここのチェックボックスを外した場合、 後述する「Use default substitution pattern」のチェックボックスを外して 適切な文字列読み込みメソッドを自作する必要があります。
Use default substitution pattern
Eclipseが自動作成する文字列読み込みメソッドを使用しない場合、
ここのチェックボックスを外します。
文字列リテラルがあった場所を置き換えるコードを示します。
デフォルトは Messages.getString(${key}) です。${key}には前ウィンドーで設定したKey値が代入されます。
Add import declaration (optional)
追加するimport宣言が必要な場合はここに記述します。
※用途不明
リファクタ関連のメニューです。
ここを使いこなせるかどうかで、プロジェクトの間
スマートなコードを維持できるかどうかが決まります。
Alt-Shift-R
リネームします。
フィールド名はもちろん、クラス名やパッケージ名までリネームの対象となります。
当然、プロジェクト内で対応する部分のコードは全てリネームされるので
非常に強力です。
Alt-Shift-V
staticメソッドやフィールドを他クラスに移動します。
またクラスを別パッケージに移動させることも出来ます。
Alt-Shift-C
メソッドパラメータの「仮引数名」「パラメータ順序」を変更したり
パラメータ数を増減させたりする事が出来ます。
これは便利なので是非使いこなせるようにしておきましょう。
Alt-Shift-M
選択された文を切り出してメソッド化します。
生成したメソッドに空のJavadocブロックを添付します。
選択された文と同じコードがファイル内にあるとき、
そのコードもメソッドを使用するように置き替えるかどうかを指定します。X
の部分は場面に応じて変化します(0ならば、この項目自体が選択不能)。
obj.append("a"); obj.append("b"); ... obj.append("a"); obj.append("b"); ↓ appendAB(obj); ... appendAB(obj);
これは便利です。
Alt-Shift-L
選択した式をローカル変数として定義します。
選択したリテラルを定数として定義します。
Alt-Shift-I
定数やメソッドなどをプログラム中に埋め込みます。
Extract Local Variable... 等の逆です。
無名インナークラスを通常のインナークラスに変換します。
例えば、
java.awt.event.MouseListener listner = new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) {} public void mousePressed(MouseEvent e) {} }; ↓ private final class NewInnerClass extends java.awt.event.MouseAdapter { public void mouseClicked(MouseEvent e) {} public void mousePressed(MouseEvent e) {} } java.awt.event.MouseListener listner = new NewInnerClass();
のように変換します。
インナークラスを通常のクラスに変換します。
Convert Anonymous Class to Nested...のコードを参考にすると、
例えばここで作成されたNewInnerClassを
NewInnerClass.javaファイルとして切り出します。
Alt-Shift-F
ローカル変数をクラスのフィールドに変換します。
変数を初期化する場所を選択できます。
選択したクラスを持つスーパークラスを新規作成して、
現在のクラスをそのクラスの派生クラスとします。
public class A { public void func() { ... } }
↑このようなクラスに対して、funcを選択してこのコマンドを実行すると…
public class B { public void func() { ... } } public class A extends B { ... }
のようになります。
ある程度クラスが大きくなってきた場合や
別の似たようなクラスを作りたい場合などに使うことになるでしょう。
上記の Extract Superclass...と似ています。
選択したメソッド群を定義したインターフェイスを新規作成し、
現在のクラスがそのインターフェイスを実装するようにします。
※用途不明
選択したメソッドもしくはフィールドをサブクラスに移動します。
当然、そのフィールドを現クラスで参照している場合は移動できません。
選択したメソッドもしくはフィールドをスーパークラスに移動します。
選択したクラス内で定義されたフィールドの一部(または全部)を
持ったBeanクラスを新規作成します。
フィールドが増えてきたときなど、これを使ってクラス化しましょう。
選択したメソッドの引数群の一部(または全部)を
持ったBeanクラスを新規作成します。
引数の数が増えてきたら、これを使いましょう。
選択したメソッドをstaticメソッドとして再作成します。
今まで非staticだったメソッドをstaticメソッドに変換することになります。
指定したコンストラクタを、staticなファクトリメソッドとして再作成します。
あるクラスにコンストラクタが3つ以上あるようなら
これを利用することを考えましょう。
コンストラクタが増え過ぎると、ユーザはどれを使っていいか悩みます。
なぜなら、コンストラクタは名称が固定だからです。
ファクトリメソッドにすれば、用途に応じてメソッド名を変更することが出来ます。
選択した式を、メソッドのパラメータに追加します。
void func() { System.out.println("test strings"); } ↓ "test strings"を選択してコマンド実行 void func(String str) { System.out.println(str); }
フィールドのGetter,Setterメソッドを生成します。
Generate Getter and Setter...とほぼ一緒ですが、こちらは多少のカスタマイズが可能です。
また、命名規約があってフィールド名を field_
にしている場合など
作成するGetterメソッド名は getField_
ではなく getField
にしたいはずです。
この場合、 Window->PreferencesのJava→Code Generationで
これらの命名規約を記述してあげることで適切なメソッド名を自動的に生成します。
再度宣伝になりますが、
Limy Eclipse Plugin も使ってあげて下さい(しつこい?)。
Getterメソッド名を指定します。
Setterメソッド名を指定します。
Getter,Setterメソッドをソースのどこに追加するのかを指定します。
Getter,Setterメソッドのアクセス権を指定します。
defaultとは「パッケージprivate」のことです。
Field access in declaring class
同一クラス内のロジックでもGetter,Setterメソッドを使用するのかを指定します。
keep field referenceをチェックすると、
同一クラス内でのこれらのフィールドへのアクセス方法は変化しません。
フィールド宣言の型を、そのスーパークラスに変更します。
ArrayList list; ↓ List list;
JDK5.0のGenerics用リファクタリングを行います。
例えば、
List list = new ArrayList(); list.add("string");
のようなコードを
List<String> list = new ArrayList<String>(); list.add("string");
のように変換してくれます。
詳細は不明です。
リファクタ履歴から、選択したリファクタの内容を
スクリプトファイル(XML形式)で出力します。
Create Script... で作成したスクリプトを
現在の環境で実行します。
これはどんな時に使うかというと。
例えば、複数の人数で修正をしているプロジェクトがあったとします。
このとき、大規模なリファクタリングをすると
その影響度が大きいためCVSなどにCommitすることを躊躇ってしまいます。
そこで、リファクタスクリプトの登場です。
リファクタをした人は、修正をしたクラスだけをCommitします。
それを参照しているファイルは、もしかしたら他の人が
修正しているかもしれないからです。
で、他の人がその修正をしたクラスをUpdate(更新)します。
するとおそらく、それを参照しているクラスで
コンパイルエラーが発生しているはずです。
今までだと、このコンパイルエラーを手修正で直す必要がありました。
ここでリファクタスクリプトを実行します。
すると、関連のクラスが自動で修正され
コンパイルエラーも解消するというわけです。
あとは自分の好きなタイミングでそれらのファイルをCommitすればいいのです。
リファクタの履歴を参照します。
Package ExplorerまたはNavigatorビューで、選択したフォルダの中に移動します。
ビュー内には移動先フォルダの下階層のみ表示されます。
親フォルダに移動します。
※未調査
Javaクラスを検索します。ワイルドカードが使えます。
Javaパッケージを検索します。ワイルドカードが使えます。
リソース(あらゆるファイル)を検索します。ワイルドカードが使えます。
以下のコマンドは、Java Editor内でのみ使用できます。
Ctrl-Shift-↑
カーソルを一つ前のメンバに移動します。
Ctrl-Shift-↓
カーソルを一つ後のメンバに移動します。
Ctrl-Shift-P
カーソルを対応する括弧に移動します。
ファイルを開きます。
F3
Java Editor内で選択したクラスやフィールドの定義文を表示します。
ちなみに、Editor内でCtrl + 左クリックでも同様の事が行えます。
F4
選択したクラスやフィールドをHierarchyビューで開きます。
Ctrl-Alt-H
選択したメソッドをCall Hierarchyビューで開きます。
選択したメソッドの上位クラスでの定義文を表示します。
Shift-F2
選択したクラスのJavadocを表示します。
このコマンドを使う前に、プロジェクトのPropertiesでJavadoc Locationを指定しておく必要があります。
Ctrl-Shift-T
Javaクラスを検索します。ワイルドカードが使えます。
Ctrl-Shift-H
Javaパッケージを検索します。ワイルドカードが使えます。
Ctrl-Shift-R
リソース(あらゆるファイル)を検索します。ワイルドカードが使えます。
Ctrl-F12
タスクを検索します。
Ctrl-F9
アクティブタスクを検索します…多分。タスクはまだ使ったこと無いのでよくわかりません。
Ctrl-F9
アクティブでないタスクを検索します。
Alt-Shift-B
選択したリソースを Breadcrumb 内で表示します。
Alt-Shift-W
選択したリソースをOutline / Package Explorer / Navigatorのビューで開きます。
Ctrl-Alt-Shift-Right
Mylyn 関連らしいです。詳細は不明です。
Ctrl-O
現クラスのOutline(フィールドやメソッド一覧)をポップアップウィンドウに表示します。
ウィンドウの中でインクリメンタルサーチが効くので結構便利です。
Ctrl-T
現クラスのHierarchy(クラス構成)をポップアップウィンドウに表示します。
例えば、インターフェイスのメソッドを選択してこのコマンドを実行すると
それを実装したクラスが一覧でずらっと出るような使い方があります。
Ctrl-.
Editor内で次のAnnotation(コンパイルエラー等)に移動します。
Ctrl-,
Editor内で前のAnnotation(コンパイルエラー等)に移動します。
Ctrl-Q
直前まで編集していた場所にカーソルを移動させます。
Ctrl-X G
指定した行番号にジャンプします。
Alt-Left
一つ前に開いていたファイルに移動します。
ファイルが閉じていれば開きます。
Alt-Right
一つ先で開いていたファイルに移動します。
ファイルが閉じていれば開きます。
Searchダイアログを開きます。
Searchダイアログ(File Searchタブ)を開きます。
Searchダイアログ(Java Searchタブ)を開きます。
選択したテキストを参照している箇所を検索します。
Javaファイルだけでなく、XMLファイル等も検索対象となるので
ある種の設定ファイル地獄的なプロジェクトでは
必須のコマンドとなるでしょう(笑)。
選択したメンバを参照している箇所を検索します。
選択したメンバを宣言している箇所を検索します。
メソッドを検索する場合は、他クラスの同名のメソッドも対象になります。
選択したインターフェイスを実装しているクラスを検索します。
選択したフィールドをread参照している箇所を検索します。
選択したフィールドへ書き込みしている箇所を検索します。
Ctrl-Shift-U
ファイル内でこのメンバを参照している箇所を検索します。
選択したメソッドをテストしている箇所を検索します。
閉じているプロジェクトを開きます。
プロジェクトを閉じます。
閉じられたプロジェクトはあらゆる表示・検索対象から外れます。
全てのプロジェクトをビルドします。
プロジェクトをビルドします。
ワーキングセット(プロジェクトの集合)をビルドします。
一つ、または全プロジェクトをリビルドします。
自動的にビルドを行うかどうかを指定します。
デフォルトではONです。
選択したクラス/パッケージ/プロジェクトのJavadocを生成します。
preferencesのJavadocでJavadocコマンドの実行パスを指定しておく必要があります。
Ctrl-Shift-B
現在行に関連するブレークポイントをON/OFFします。
現在行のブレークポイントをON/OFFします。
現在行を含むメソッドに対するブレークポイントをON/OFFします。
現在行が示す変数へのブレークポイントをON/OFFします。
全ブレークポイントを一時的に無効にします。
全ブレークポイントを削除します。
Java例外に対するブレークポイントを追加します。
クラスがメモリにロードされるときにブレークポイントを追加します。
F8
プログラムを再開させます。
現スレッドを一時停止させます。
Ctrl-F2
プログラムを強制終了します。
F5
ステップ実行(メソッドの中まで追跡)を行います。
F6
ステップ実行(メソッドの中を追跡しない)を行います。
F7
現メソッドの終了まで実行します。
カーソル行までプログラムを実行します。
Shift-F5
ステップ実行(メソッドの中まで追跡)を行います。
ただし、Step Filteringで定義されたクラス(パッケージ)の中は追跡しません。
Ctrl-F11
最後に実行したプログラムを実行します。
F11
最後に実行したプログラムをデバッグ実行します。
実行履歴から選択してプログラムを実行します。
現在のプログラムを実行します。
実行設定ウィンドーを開きます。
デバッグ履歴から選択してプログラムをデバッグ実行します。
現在のクラスをデバッグ実行します。
デバッグ設定ウィンドーを開きます。
選択したインスタンスを参照しているものを全て表示します。
Java6からの新機能です。
Ctrl-Shift-N
クラスを選択してこのコマンドを実行すると、
現在JavaVM上にあるそのクラスのインスタンスが全て表示されます。
Java6からの新機能です。
デバッグ中、選択した変数(式)を Expressions ビューで開きます。
Inspect との違いは不明です。
Ctrl-Shift-I
デバッグ中、選択した変数(式)を Expressions ビューで開きます。
Ctrl-Shift-D
デバッグ中、選択した変数(式)を Display ビューで開きます。
Ctrl-U
デバッグ中、選択したメソッド(式)を実行します。
Alt-Shift-F
メソッドから強制的にreturnします。
環境によってはうまくいかないようです。
選択した部分までプログラムを実行します。
Run to Line の詳細バージョンです。
外部プログラムを実行します。
新しいEclipseウィンドーを開きます。
新しいエディタを開きます。
これで、Eclipseユーザ念願の
「同一ファイルを複数フレームで見ながら編集できる」ことが可能になりました。
わざわざその為にMeadowを使わなくても良くなったのです(笑)。
パースペクティブを開きます。
ビューを開きます。
パースペクティブをカスタマイズします。
Eclipse3では大幅にカスタマイズ方法が変わっています。
新しい名前でパースペクティブを保存します。
現在のパースペクティブをデフォルト状態に戻します。
現在のパースペクティブを閉じます。
全てのパースペクティブを閉じます。
キー操作で実行可能なコマンド群を表示します。
Alt--
ビューのシステムメニューを表示します。
ビュー左上のアイコンをクリックしたときに表示されるものと同じです。
Ctrl-F10
ビューのメニューを表示します。
ビュー右上のアイコン(Closeアイコンの隣)をクリックしたときに表示されるものと同じです。
Ctrl-3
詳細は不明です。
Ctrl-M
現在のビューまたはエディタを最大化します。
ビューまたはエディタのタイトルバーをダブルクリックしても同様の事が行えます。
現在のビューまたはエディタを最小化します。
F12
エディタをアクティブにします。
Ctrl-F6
エディタ内で次のファイルへ移動します。
Ctrl-Shift-F6
エディタ内で前のファイルへ移動します。
Ctrl-X Ctrl-B
現在開いているエディタの一覧を表示します。
Ctrl-F7
次のビューへ移動します。
Ctrl-Shift-F7
前のビューへ移動します。
Ctrl-F8
次のパースペクティブへ移動します。
Ctrl-Shift-F8
前のパースペクティブへ移動します。
Preferencesダイアログを表示します。
ここで様々な設定を行います。詳しくはPreferences解説を見て下さい。
Welcomeページを開きます。
Helpウィンドーを開きます。
Help内検索を行います。
Help ビューを表示します。
このビューには、そのときの状況に応じたヘルプがダイナミックに表示されます。
Ctrl-Shift-L
キーバインド一覧を表示します。
Tips and Tricksページ(便利な使い方など)を開きます。
ダイアログが出るのでその中から対象を選択します。
チュートリアルを参照します。
調べたい項目を選ぶと、専用のビューが開きます。
ソフトウェア(プラグイン)のインストール/アップデート機能を実行します。
Aboutダイアログを開きます。