注目すべき新しいSencha Eclipse Plugin 2.0
こんにちは、ゼノフィkotsutsumiです。
Guest Blog Post
序
Sencha Eclipse PluginはEclipse IDEの完全なコードアシスト・検索・バリデーションのプラグインです。 このプラグインを利用するとSencha Touch 2.1、Ext JS 4.0.7、4.1.xの標準の型の完全なコードアシストだけでなく、あなたのプロジェクトで定義したSencha TouchとExt JSのクラスを全体的にサポートを受けることもできます。
Sencha Eclipse Plugin 2.0において、次の機能の作業をしました:
- VJETがEclipseの基盤に移動する
- オーバーライドをサポートすることでSencha Eclipse PluginのExt JSクラスシステムの能力を高める
- タイプ確認を改善する
- JavaScriptのフォーマッターを追加する
- 検索とバリデーションの能力を改善する
- 背後にあるVJET OSSからいくつかのバグを解決し改善する
VJETがEclipseの基盤に移動する
Sencha Eclipse Plugin 2.0は Eclipse VJETプロジェクト の上に生成されています。 バージョン1.xは ebayopensource.org でホスティングされたVJETをベースにしています。VJETはeclipse.orgに移動したため、パッケージがorg.ebayopensourceからorg.eclipseに変更しなければなりませんでした。そのためプラグインのバージョン2にマイグレートする開発者にはアップグレードする為に少し必要な作業があります。Sencha Eclipse Plugin 1.xからアップグレードする時にはプロジェクトをマイグレートする必要があります。詳しくはこの wiki の記事を読んで下さい。
Ext JSとSencha Touchクラスシステムの改善
Sencha Eclipse Plugin 1.xではExt JSとSencha Touchのクラスシステムの中核となる構造をよく知っていました。今バージョン2ではoverrideへの対応を追加しましたし、プラグインがJSDuckからメタデータとコメントを読み込む方法が改善しました。
このリリースでExt.overrideとoverride指定をつけたExt.defineに対応しました。下はデモです:
- Ext.overrideとoverride指定をつけたExt.defineを使って既存の型をオーバーライドする。
Sencha Eclipseプラグインでオーバーライドを使うデモ
このデモの全てのコードは github にあります。
また、プラグインがJSDuckのコメントをより理解できるようになりました。
- @propertyがJSDuck 4を対応できるようにアップデートされました。@propertyはゼロ引数のプロパティを宣言して引数を伸ばす為に利用されます。 https://github.com/senchalabs/jsduck/wiki/@property
このデモの全てのコードは github にあります。
- クラスのメンバーとしてconfigプロパティに対応するために、全てのタイプライブラリをアップデートされました。複数のドキュメンテーションに関する問題は解決されました。
バリデーションの改善
Sencha Eclipse PluginがオープンソースのVJETをベースにしていたため、オープンソースの世界で行っている作業の利点を得ることができます。VJETには入力中やインクリメンタル作成で見つけられるJavaScriptシンタクスエラー確認とともに約105の型チェック確認ルールがあります。これはプロパティ、コンフィグプロパティ、メソッドコールバックの引数、異なるタイプ定義の引数など数々の型チェックの為に生かすことができます。
Sencha Eclipse Pluginのタイプチェックの利用でアプリケーションに対する問題点を早速発見できるだけでなく、JSDuckの型コメントと利用法と合わない時に問題を発見できます。Sencha Eclipse Pluginを開発していた時に、我々もこの機能を利用してJSDuckタイプコメントに問題を発見したらそれをSencha TouchとExt JSで直して、そのため docs.sencha.com. のドキュメンテーションが向上しました。
いくつかの2.0で更新されたタイプバリデーションです:
- 1. 自動的な依存の確認、もし一つのJavaScriptのファイルを変更して、そのファイルが依存しているものが保存されていたら、その依存ファイルは確認されます。例えばもしAを変更してBはAに依存していたら、ユーザーのアクションがなくてもBは自動的に再確認されます。
-
1 2 3 4 5
2. プロパティ隠蔽についてのバリデーション警告を無効に Ext.define("MyApp.design.MyStore", { extend: 'Ext.data.TreeStore', fields: ['bla', 'text', 'id', 'leaf'] //Warning: "Property fields hides property of its parent type Ext.data.TreeStore" });
- 3. JSDuckのコメントがないときにオーバーライドメソッド不一致についてのバリデーション警告を無効に
-
4. バリデーションエラーはextend、requires、mixins、usesに不明なタイプが設定されると表示されます:
1 2 3
Ext.define('MyClass', { extend: 'FooBar' /// you will get error here : "FooBar cannot be resolved" })
- 5. VJETを利用するExt JSアプリケーションの確認を対応するヘッドレス確認ツールの改良
New JavaScript formatter
Sencha Eclipse Plugin 2.0は様々な異なったフォーマットのスタイルと、新しいJavaScriptフォーマッタの対応を追加します。Control + Shift + Fを利用してJavaScriptコードをフォーマットして下さい。JavaScriptコードを書く為に自分のチームが利用するコードのスタイルと合う複数のプロファイルがあります。この機能はEclipseプロジェクトJSDTのフォーマッタから作り替えられました。
検索と発見能力の改善
uses, requires, extends, mixins override に使われるタイプ名を検索し、ホバーしたときのドキュメント表示と、F3で宣言に移動する機能をサポートしました。
追加の修正
最後にフィールドで人が引っかかっていた様々な部分をSencha Eclipse Pluginで直しました。もしPluginを利用している間に引っかかっていたら、バージョン2の方がもっとスムーズに感じると思います:
- コードアシスト・バリデーション・検索・ランタイムがきかなかったパスの中のスペース問題を解決。
- 開発者がサービスパック無しでEclipse Heliosを利用していた場合の問題を解決。
- メモリーの消費を削減しパフォーマンス高度化。