FlashDevelop3.3.0 RTM

出典: FlashDevelop.jp

久々に長い間が空いたリリースとなりました。
前回までは新しいリリースと言うよりもFD3.1.0以降に出たバグや、デバッガ・プロファイラの改善改修などがメインでした。
今回は久々のメジャーアップデートです。
Twitterでもお知らせしていた通り、FlashDevelop3.3.0からはジェネレータ周りが大きく変更され、かなり便利になっています。


ではいつもの通り和訳していきます。
今回のメジャーリリースは「SVN・Git対応」と「新しいコード補完」と「ジェネレータ周りの改善」のためのリリースです。
今回のリリースにおいて活発な貢献者たちが大きな助けになりました。
これがメジャーリリースなので、今後すぐにバグ修正のリリースがされると思います。


今回は「クリーンインストール」することをお勧めします。

※クリーンインストールとは
Snippets や Syntax ファイル、ファイル・プロジェクトのテンプレートなどをバックアップして、
設定ファイルごとアンインストールしてから新しいバージョンをインストールすることです。

またインストールする際に注意です「FlexSDK」をダウンロードする設定があるので、最新のFlexSDKが必要ない場合は
インストールの際にFlexSDKのダウンロードのチェックをはずしておくことをお勧めします。
ダウンロードするとかなり時間がかかります。


ダウンロードは次のページの下部にある「Download FlashDevelop 3.3.0 RTM」をクリックしてインストーラーを入手ください。
3.3.0 RTM released

また、今回のリリースは RC2 ~ 3.2.2までの全てのバージョンに互換性がありますが、
いくつかのテンプレートや、Snippet の機能が変わったりしていますので注意が必要です。


目次

変更点

  • haXeサポートの修正および改善
  • オープンリソースダイアログボックスを追加 (QuickNavigateプラグインを統合)(Ctrl + R)
  • 自動補完の修正および改善
  • ドイツ語のローカライズを追加
  • 日本語版の改善
  • コンパイラのバグの修正と改良
  • デバッガのバグ修正と改善
  • リファクタリング機能の改良、新しいテンプレートの追加
  • SVNとGITをプロジェクトパネルに統合(TortoiseSVNをまたはTortoiseGitが必要です)
  • カスタムプロファイラSWFの対応(高度な機能)
  • テンプレートの改善
  • Flex SDKのダウンロードオプションを、インストーラに追加
  • ロゴやその他のグラフィック更新
  • UIの改善

自動補完の新機能

  • 自動的に閉じ括弧を追加 (オプションはASCompletionにあります)
  • クラスをコピーするときにpackageパスが修正されます
  • [プロジェクト]パネルのコンテキストメニューに[クラスのコピー]を追加
  • メソッドと変数の生成(メソッドのパラメータの種類を検出すると、他のクラスの生成)

リファクタリングの新機能

  • 囲い込み 括弧やif文、for文などによって選択範囲を囲い込みます。
  • メソッドの抽出 選択範囲をメソッドとして抽出します。
  • パラメーターからフィールドを生成
  • インターフェイスに追加 (メソッド宣言をインターフェースに対して追加)
  • デリゲートメソッドを生成

コンテクスチュアルコードジェネレーター(CCG)の新機能

  • 関数パラメーターとして追加 (プライベート変数を関数パラメータに追加)
  • 数値の定数化
  • 引数の変更をメソッド宣言に反映
  • For/foreach/forin ループの生成
  • 新規クラスの生成 (パラメータに応じたコンストラクタ引数を持つクラスを自動生成)
  • 変数として宣言
  • [Event] メタタグの生成


新機能の詳細

SVNとGITをプロジェクトパネルに統合

別途 TortoiseSVN または TortoiseGit が必要です。
※ 既にインストールされている前提で説明します。
SVN を有効にするには [ツール(T)] -> [環境設定(P)...F10] -> [SourceControl] -> [SVN] -> [Enabled SVN] を True にします。
SVN と SVN proc のパスが違う場合は設定しなおしてください。
設定パネルを閉じて、SVNで管理されているプロジェクトを表示するとSVNが使用できるようになります。

カスタムプロファイラSWFの対応

以下からプロファイラをダウンロードして [ツール(T)] -> [環境設定(P)...F10] -> [AS3Context] -> [Profiler | プロファイラー] -> [Custom Profilers] に
ダウンロードしてきたカスタムプロファイラのSWFのパスを追加(1行にひとつ)。
設定を閉じ、(プロファイラパネルが表示されていない場合は)[表示(V)] -> [プロファイラー(I)] を選択して表示。
プロファイラパネルの左上(箱みたいなアイコン)をクリックして自分が設定したプロファイラを選択。
あとはいつもどおりプロファイラを起動してムービープレビュー
The only real Flash Builder Profiler alternative (and it's free!) - jpauclair

自動的に閉じ括弧を追加機能をOFF

FD3.3.0 からは ( や [ または " などが自動で閉じます。
[ツール(T)] -> [環境設定(P)...F10] -> [ASCompletion] -> [Code Generation | コード生成] の [Add Closeing Braces] を False にすると、その機能をオフに出来ます。

パラメーターからフィールドを生成

引数にキャレットを移動させて CCG を実行すると "_引数名" といった形でフィードに宣言されます。
ちなみに、 "_" をでは無く、"$"をつけたい場合は、
[ツール(T)] -> [環境設定(P)...F10] -> [ASCompletion] -> [Code Generation | コード生成] の [Prefix fields when generationg from parameters] の部分を変更すると出来ます。

インターフェイスに追加 (メソッド宣言をインターフェースに対して追加)

インターフェースを実装している場合、public で宣言されたメソッドにキャレットをあわせて CCG でインターフェースにメソッドを追加できます。

デリゲートメソッドを生成

クラスのフィールドを選択して「リファクター」から「デリゲートメソッドを生成」でダイアログが表示されます。
例えば、hoge というSpriteのフィールドから addChild と addChildAt を デリゲートメソッドを生成すると以下のようになります。

/* DELEGATE flash.display.Sprite */

public function addChildAt(child:DisplayObject, index:int):DisplayObject 
{
	return hoge.addChildAt(child, index);
}

public function addChild(child:DisplayObject):DisplayObject 
{
	return hoge.addChild(child);
}

関数パラメーターとして追加

関数内で定義されたプライベート変数を引数として宣言させることができます。 例えば以下のような関数内で length にキャレットをあわせて CCG することで「関数パラメーターとして追加」が表示され、次のように宣言が変更されます。

public function hoge(index: int): void
{
	var length: int;
}

public function hoge(index: int, length: int): void
{
	length;
}

数値の定数化

100や "moja" などを CCG することで「値を変数に格納」が表示され、
public static const で定義されます。


引数の変更をメソッド宣言に反映

例えば moja(); で CCG を実行して「private メソッドスタブの生成」を選択すると以下のようなメソッドが作られます。

private function moja(): void
{
	
}

作られた後、moja(1); と変更して再度 CCG を実行すると「引数の変更をメソッド宣言に反映」が表示され、実行すると以下のように変更されます。

private function moja(arg1: Number): void
{
	
}

さらに、moja(1, hogeStr); と変数を渡すと以下のように変更されます。

private function moja(arg1: Number, hogeStr: String): void
{
	
}

引数が変数だった場合はその名前が引数名に設定されます。

新規クラスの生成

var hoge: Hoge や new Hoge(1, 2);
などで CCG を実行すると、新しいクラスを作成するダイアログが表示されます。
このとき、 後者で実行した場合は、コンストラクタの引数が反映されます。

変数として宣言

他クラスのメソッドなどを CCG で作る事が出来るようになっていました。
CCG したときに private と public を選べるようになっていました。
以下のように別のオブジェクトのプロパティなどを変数に格納することが出来るようになりました。

var str: String = "moja";
str.length// ここで CCG

↓「値を変数に格納」を選択

var str: String = "moja";
var l: int = str.length


[Event] メタタグの生成

new Event(Event.CLOSE) の CLOSE のところで CCG することで以下のような Eventメタデータタグをクラスに定義することができます。

[Event(name="close", type="flash.events.Event")]


参考記事

FlashDevelop3.3.0RTM、FlexSDKも一緒にダウンロードされちゃう!
馬鹿全 - FlashDevelop3.3.0 RTM リリース

個人用ツール