« FlashDevelop のプラグインを作ってみる:試作 | メイン | FlashDevelop でお手軽テストプロジェクト作成プラグイン »

2009年2月 2日

[FlashDevelop] JSCommands Plugin for FlashDevelop3

FlashDevelop 3 用のプラグインを作りました。
このプラグインは、FlashDevelop の編集中のドキュメントに対して JavaScript を実行して編集することができるようになります。
コマンド用のスクリプトは .jsfd ファイルとしてプラグインディレクトリ内に保存されますので、自由に追加・編集・削除が可能です。
これを使うことで、簡単なプラグインであれば、C# を使うことなく作成、編集することができるようになります。


現在はまだ制作の途中段階ですので、今後仕様が変わる可能性はあります。


ダウンロード
fdcommands_0_1_2.zip

追記
fdcommands_0_1_3.zip
prompt() と alert() が使えなかったので、実装しました。

内容
  • FDCommands.dll
  • commandList.txt

導入方法
FlashDevelop の起動ディレクトリ内に Plugins というディレクトリがあるので、そこに FDCommands.dllをコピーしてください。
例(XP の場合):
C:\Program Files\FlashDevelop\Plugins
FlashDevelop を再起動すれば「メニュー > View」に FDCommands と追加されています。選択すると上記のパネルが表示されます。
初回起動時に、FlashDevelop の Application Files に指定されているディレクトリの Data\FDCommands ディレクトリの中に Commands というディレクトリが作成されます。(以下 Commands はこれを指します。)この中にコマンドファイルが作成されます。


使い方

コマンドリスト名
パネル上部のコンボボックスです。
Commands 内に存在するディレクトリの中から1つ選択することが出来ます。
初期状態では、ディレクトリは "default" のみです。

メニューボタン
Run
パネル下部のテキストボックスに表示されているコマンドを実行します。コマンドが選択されていない状態でも、エディタ部分にコードが書き込まれていた場合は、それを実行します。
Refresh
Commands ディレクトリを再読み込みします。
Edit
選択中のコマンドを FlashDevelop で開きます。
Add
新しくコマンドファイルを作成します。作成すると FlashDevelop に表示され、編集することができます。
Delete
選択中のコマンドを削除します。実行すると jsfd ファイルも削除されます。
Add Directory
コマンドファイルを入れておくディレクトリを新しく作成します。

コマンド一覧
選択中のリスト内のファイルが一覧表示されます。
リスト内のアイテムは、クリックすると選択状態となり、ダブルクリックで選択中のコマンドが実行されます。

コマンド簡易エディタ
リストからコマンドを選択すると、コマンドのソースが表示されます。
メニューの Run ボタンは、このソースを実行します。
このエディタは、編集が可能ですが、編集した内容を保存することは出来ません。
保存する場合は、新しくコマンドファイルを作成するか、既存のコマンドを編集して保存しなければなりません。



コマンドの作成
zipファイル内に同梱されているテキストファイル内に、使用できるオブジェクトと関数を書いておきましたので、こちらを参考にしてください。
内部で JScriptCodeProvider を使用しているので、基本的な JavaScript は普通に使えるかと思います。(実際には JScript なんですが。)
また改めてドキュメントを作成する予定ですが、今はまだ仕様もはっきり決まっていないため、作っていません。



今後実装したいと思っている機能について
  • キーボードショートカットの実装
  • AS3のクラスの参照
  • JSFDソースのコードヒント


クラスの参照については、対象のクラス内で定義された import や implements を参照して、クラス内で定義されているプロパティを簡単に取得できるようにしたいのですが、 swc の場合など、どうすればいいのか正直分からなくて困ってます。
ProjectManager や Outline などのプラグインを参照して、そこから取得できればと思っているのですが、他のプラグインの参照の仕方が分からなかったり。

あと、このプラグインのソースも誰か助言くれる人とかいるのなら、GoogleCode か Spark(いいのかな?)で公開したいとも思ってますが、まだ未定です。
手探りで作ってるので、バグもたぶんあります。
もし使用される方がいらっしゃれば、バグが見つかったときはコメントなりTwitter なりで報告していただけると助かります。


また、これを使ってみんなが便利なコマンドを作ってくれたらなあ。なんて浅はかな願望もあったり、なかったり、らじばんだり。



ちょっと立て込んでいるので遅くなるかもしれないですが、またアップデートしたらご報告します。

そもそもこんなプラグインに需要があるかのかどうか。


トラックバック(0)

このブログ記事を参照しているブログ一覧: JSCommands Plugin for FlashDevelop3

このブログ記事に対するトラックバックURL: http://system.seyself.com/mt-tb.cgi/523

コメントする


画像の中に見える文字を入力してください。

しばらく時間が経過すると、システム内部と表示されている文字内容に食い違いが発生するようなので、
投稿する前にページをリロードすることをお勧めします。
リロードしてもフォームの内容は維持されます。