Intellij IDEA vs FlashDevelop の変更点


[[トップに戻る>FrontPage]]

*[[Intellij IDEA]] vs FlashDevelop [#e404a2c9]
----
#contents
----

HaxeFlixel(Haxe+OpenFL)開発環境における、[[Intellij IDEA]] と FlashDevelopのメリット・デメリットを比較してみました。

|環境|メリット|デメリット|h
|FlashDevelop|・C#.NETで作られているため軽快に動作する &br;・無料でステップ実行ができる &br;・HaxeFlixel公式ではFlashDevelopを推奨している &br;・関数コメントの挿入が賢い&br;・実行ターゲットの変更が簡単に行える|・Windowsでしか動作しない &br;・補完の効きが若干弱い |
|[[Intellij IDEA]]|・Windows / Mac / Linuxで動作する &br;・補完が強力に動作する &br;・リファクタリング機能が強力 &br;・Vimプラグインがある &br;・Ctrl(Cmd)+クリックで定義ジャンプできる &br;・Git / GitHub連携ができる|・FlashDevelopと比べると動作が重たい &br;・デバッガ(ステップ実行)を使うには有料版($199)を購入する必要がある &br;・%%「/**」と入力してEnterキーを押すとおかしなインデントが入る%%(バージョン15以降では発生しない) &br;・コンパイルエラーのメッセージが確認しづらい|
|[[Intellij IDEA]]|・Windows / Mac / Linuxで動作する &br;・補完が強力に動作する &br;・リファクタリング機能が強力 &br;・Vimプラグインがある &br;・Ctrl(Cmd)+クリックで定義ジャンプできる &br;・Git / GitHub連携ができる|・FlashDevelopと比べると動作が重たい &br;・デバッガ(ステップ実行)を使うには有料版($199)を購入する必要がある &br;・コンパイルエラーのメッセージが確認しづらい|


**個人的な感想 [#v73497ae]
若干の違いはありますが、以下の機能はどちらも使えるので、テキストエディタで頑張るよりも効率よく開発できます。
- リファクタリング
- 定義ジャンプ
- キーワードの補完

FlashDevelopでのサクサク動作やステップ実行も魅力なのですが、Mac環境で開発したいこともありIntellij IDEAを選んでいます。個人的にステップ実行機能が有料であること以外は、両者に大きな違いはないかなと思います

** 補足 [#k5bf94e5]
*** FlashDevelop:実行ターゲットの変更がやりやすい [#e980fdb4]
#ref(FlashDevelop003.png);
FlashDevelopだとメニューからすぐに変更できます。しかしIntellij IDEAだとプロジェクトを右クリック→Open Module Settings →Targetというように深い階層になってしまっています

*** [[Intellij IDEA]]:ビルドエラーが分かりにくい [#c1f22103]

#ref(FlashDevelop007.png);
FlashDevelopだとこんな風にエラーが表示されて分かりやすいです。
#ref(IDEA007.png);
しかし[[Intellij IDEA]]だと、ビルドオプションに「-verbose」がついているためエラーログが長く、出力ウィンドウを下の方へスクロールしないとエラー内容が分からないです。
#ref(IDEA007_2.png);
どうにも不便だったのですが、「File Watcher」というプラグインで保存のたびに自動ビルドしてエラーメッセージを表示するようにしてからは快適になりました。多少の不便はプラグインで何とかなってしまうのがIntellij IDEAの魅力と言えるかもしれません。

*** [[Intellij IDEA]]:「/**」と入力してEnterキーを押すとおかしなインデントが入る [#m165c70c]

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※~
※バージョン15では発生しなくなっています※~
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※~

例えば、
#geshi(Actionscript){{
class Hoge {
  /** ←ここにカーソルがある状態
}
}}
この状態でEnterキーを押すと、

#geshi(Actionscript){{
class Hoge {/**
*
*/
}
}}
なぜかこのようにコメントが挿入されてしまいます。地味に困るので解決方法を調査中です。