WonderflEditor
どうもこんにちは。お久しぶりです。taroです。
この度はwonderflのエディタの製作を担当させて頂きました。
はっきり言ってまだまだ開発段階ではありますが、手を入れていってより良いものにしていきたいです。
WonderflEditorのご紹介
BOWの吉川さんによるPsycodeEditor を大いに参考にさせて頂きました。
まだまだプログラミング初心者なので、計測を怠って変な最適化に時間をかけてしまったり、(ここの 処理重そうとかじゃなくて、実測あるのみですね) 車輪を何回か再発明してしまったり、という感じです。
現在wonderfl上でみれる拙作のエディタより 普段使い慣れている方が断然良い!という方は、アカウント より設定を行って頂く事で通常のものに戻すことが出来ます。
また、Spark ProjectのSVNのリポジトリにソースコードが上がっておりますので、 興味のある方、こんな使いにくいエディタ改造してやる!という方はどうぞ。
現在実装しているもの
- {}及び改行でインデント・アンインデント
- 選択中にTab or Shift Tabで選択行の位置変更
- AS3のシンタックスによるハイライト
これから実装したいもの
- undo, redo機能
- 行番号の追加
- 自動補完
実装上の難点
IEのホットキー
undo, redoをつけていないのですが、ここの部分の開発が遅れた理由として、 IEでCtrl + Zが取れないという問題がありました。
テキストに色をつけるのは思いの他コストがかかる
AS3のシンタックス・ハイライティングで、正規表現を使ったシンタックスのパースに時間がかかっているのかと思っていたら、 そこが問題ではなく、パースした後テキストに色をつけるという処理が一番重かったです。
計測大事ですね。
キーワードの ハイライトに若干のバグがあるのでその辺りも調整中です。
シンッタクスのハイライトの部分のアルゴリズムはかなり汎用的なものなので AS3以外の言語でも設定すれば色づけが出来ます。
ただ、現時点での実装は一部AS3のものに依存してしまっているため切り分けの必要があります。 undo, redoの機能追加と同時に差分に対して処理をかけるという実装にしたいです。
最後に
WonderflEditorはまだ発展途上です。
Wonderflをご利用なさっている素晴らしいActionScripterのお力添えやご意見・ご要望によって より良いものにしていきたいと考えております。