Quantcast
Channel: プラネット NetBeans
Viewing all articles
Browse latest Browse all 4643

marsのメモ: [IDEA] IntelliJ IDEAも仲間に入れて...

$
0
0

NetBeansとEclipseの比較 - しんさんの出張所 はてな編

IDEA11.1.2を使いましたよ。んで,なになに?

プロジェクトツリーの見た目

NetBeansとeclipseと比べてもそう違いは無いけど,プロジェクトの考え方が違くって,いわゆる「ワークスペース」的なものが無い。詳しくは,こちらを参照してね。→ Eclipse FAQ - IntelliJ-Wiki

f:id:masanobuimai:20120530175244p:image


んでユニットテストを作成すると...NetBeansみたくテストコード用のソースパスはあるんだけど,デフォルトでは設定されてないので,なんか適当なフォルダを作って,テストコード置き場に指定しとかないと行けない。IDEA11から(だったと思うけど)はProjectウィンドウから任意のフォルダをテストコード置き場などに指定できるようになったのが便利。

#そうでなければ,「File->Project Structure->Modules->Sources」で設定する。

f:id:masanobuimai:20120530175245p:image


テストコード置き場(Test Source Root)が設定されていれば,テストコードはそっちに出来上がります。一応,プロダクトコード上で「Navigate->Test」とすればテストコードのひな形を作成します(すでにあれば,そのテストコードに移動)。この辺は,どれも一緒かな。

f:id:masanobuimai:20120530175246p:image


ユニットテスト

「Navigate->Test」でテストコードを生成させてみたら,こんなのできました。

package hoge; import
      org.junit.Test; public class ComputeTest { @Test public void testAdd() throws Exception { } } 

意外(?)とショボいですね。ちょっと恥ずかしいので,カスタマイズします。「Settings->File Templates->Code->JUnit4 Test Method」を次のように書き換えときます。

@org.junit.Test public void test${NAME}() throws Exception { org.junit.Assert.fail("まだ実装されていません"); ${BODY} } 

fail()のスタティックimportがされず残念な感じですが「Add static import for 'org.junit.Assert.fail'」ってintension(ALT+Enter)を実行すると,こんな風にはなるよ。

package hoge; import org.junit.Test; import static org.junit.Assert.*; public class ComputeTest { @Test public void testAdd() throws Exception { fail("まだ実装されていません"); } } 

この評価中「auto import効かないナー」と嘆いていたのだけれど「Settings->Code Style->Java->Imports->Use fully qualified class names」をチェックしてたからだった。うへへ。


補完

IDEA10くらいから勝手に補完が動くようになったので,Ctrl+SPACEもCtrl+SHIFT+SPACEも押す機会はずいぶん減りましたね。例えば以下の例だと「L」ってタイプした時点で補完が出ます。

f:id:masanobuimai:20120530175247p:image


Lも押したくねぇ」というか「LinkedHashMapなにそれ,おいしいの?」なときは「new 」までタイプしてから「Ctrl+SHIFT+SPACE(Smart Type Completion)」を使います。そすっとこんな感じに補完が出ます。

f:id:masanobuimai:20120530175248p:image


はじめっから「LinkedHashMap」が選ばれているのは,直前にそれを選択してたのをIntelliJが覚えてるからで,直前に「HashMap」を選んでると「HashMap」が第一候補になります。こうゆうところはヘンに空気読みますね。

それはそうと,Smart Type Completionのキーマップが「Ctrl+SHIFT+SPACE」とちょっとキー押しすぎなので,私は「SHIFT+SPACE」にリマップしてます。

#IntelliJのコード補完はBasic, Smart Type, Classの3種類あるけど,多用してるのはSmart Typeかな。


んで,コンストラクタだっけか?どのコンストラクタ使うかは,こんな感じでパラメタ−情報がポップアップされるんで,それ見ながらタイプを続けますよ(この情報は「View->Parameter Info」でも見れるよ)。

f:id:masanobuimai:20120530175249p:image


そんでもって,引数の補完か。こっちもSmart Type Completionを使うと,引数の型で絞り込んだ候補だけがでます。

f:id:masanobuimai:20120530175250p:image


ちなみにBasic Completionの場合はこんな風になる。こんなに違うのでSmart Typeばっか使ってる(正直,IDEA10くらいからBasic Completion使わなくなってるな。なはは...。


あと引数の値が確定したあとも補完は効きますよ。その辺はNetBeansと同じかね。ひとつ注意することは「確定にTABキーを使う事」,Enterキーで確定すると前の値が上書きされず,以下のようになって,ちょっと悲しい思いをする。:-)

f:id:masanobuimai:20120530175243p:image


この「TABキーで確定すると上書き」ってのを覚えておくと,たまーに便利な時がありますよ。


この辺の基本機能はどのIDEも拮抗してると思うんだけど,実際使ってみるとびみょーな使い勝手の差がありますね。わたしは「どれも一緒じゃん」ってテキトーな事をよく言いますが,IntelliJ以外のIDEを使う気はさらさらないので全然信用できませんよね。:-P


ps.

なんというシンクロニシティ。:-)

NetBeansとEclipseの比較にIntelliJも加えてみた - しおしおの雑記帳


Viewing all articles
Browse latest Browse all 4643

Trending Articles