NetBeansとEclipseここが同じ その7

今回は過去最長です。スクリーンショットが多いだけですけど。

今回はよく使うショートカットであろうCTRL+SPACEによる補完です。

List<String> list = new ArrayList<String>();

という1行をNetBeans 6.5とEclipse 3.4のそれぞれ同じ進行で補完してみます。



まず「List」という文字を打ち込んでCTRL+SPACE。目的はインポート宣言の追加です。

Eclipseはクラス名が並びます。この時点ではGenericsの型がわかりません。ソート順は同一のクラス名の場合パッケージ順のようですね。

NetBeansでは型も表示されます。このスクリーンショットでは見えませんがJavaDocも表示されています。javaパッケージが優先されているようです。awtよりutilが優先順位高い理由はわかりません。バージョン5とかだとawtパッケージが先にきてたような気がします。



そのあとEclipseGenericsの型で設定してあるが表示されます。ここをStringで上書きします。

NetBeansではクラス選択には表示されていたが表示されません。



変数名の補完です。Eclipseではlistとしか補完されません。

NetBeansでは選択肢が出ます。大概この中で事足りるかと思います。ここではEclipseにあわせるためlistを選択。



いよいよコンストラウクタを生成します。Eclipseは引数と同じ型しかでてきません。ArrayListを打ち込む必要があります。

NetBeansはListインターフェースが実装されているものが表示されます。この中からArrayListを選択します。Abstractの優先順位が低ければさらに完璧ですね。



仕方がないのである程度打ち込んで補完。

ちゃんと型が引き継がれてるのがわかります。ですが、コンストラクタが選択できません。

括弧を打ち込んだ後でCTRL+SPACEでやっと選択肢が出てきます。

NetBeansでは先ほどの選択、型が設定され、コンストラクタの選択が自動的に表示されます。


以上、意外とNetBeansのほうが親切な補完だと思ったのではないでしょうか。Eclipse 3.5ではコンストラクタ周りの補完は改善されてるようですが、未確認です。

ちなみにおいらはわりと細かくCTRL+SPACEは押すことは少なかったり。たとえばListの後とかまず押さないですね。長いクラス名とかあいまいだと感じたところで使うくらい。そうするとインポートされてなくてエラーが出るわけですが、そこはクイックフィックスでつぶしていくことのほうが多いですね。今回のように細かく押していく場合はIDEの差は根本的なところでは生まれていないようですが、クイックフィックスをもとにつぶしていく場合は結構癖が違うので間違うことが多いです。

Eclipseのクイックフィックス、マウスでクリックすると反応が鈍いのどうにかなりませんかねぇ。入力中の文に対してはキーボード入力でいいのですが、ソースをマウスホイールでスクロールさせながら見ながらつぶす場合面倒です。3.5では改善されてるんでしょうか。