SublimeText用プラグインNumberPaste

https://github.com/unaunagi/NumberPaste

 ソーシャルゲーム用にFlashLiteのデータを制作する時は、アバターの名前やパラメータ、画像等を置き換えて使える用にしないといけない事が多く、その場合の方法の1つとして、事前にダミーテキストを用意しておくというのがある。
 
power = "###Number1###"


 と書いてあるようなところを、本番では32に置き換えるみたいなことが頻繁にあって、それが人数分とかカード枚数分とか必要になって、いちいち手で数字を書き換えているとぐったりしてくる。その後パラメータの仕様変更があったら最悪。最悪だけどよくあること。

 Flashのプログラム内で動的に生成したいところだけど、この置き換え用の文字列はswfの中に文字列定数として存在してないと駄目で、動的生成だと意味がない。

 量が多い時は書き捨てプログラムで対応してたんだけど、スマートさに欠けるというか、コンソールに出力するとコピペがめんどくさいし、いちいちテンプレートファイルとか作るのもおおげさ。

 そういうのに向いてるプラグインとかないかな…と思って探したけど見つからない。あるのかもしれないけど見つからないんじゃ意味がない。GitHubになんか置いてみたいというのもあって、プラグインを作ってみた。

 当初の計画では、ペースト機能の代替として、$1$となっているところが、コピペのたびに1、2、3と増えていくという仕組み。$1$と$2$があれば、一度目は1と2、二度目は2と3という具合に増えていく。

 理屈としては可能なんだけど、置換処理がややこしい事になった。無名関数を引数にとって処理してみたけど、書き込むデータとクリップボード内の書き換えとで、複雑な処理が必要になる。
 
 ペースト機能を乗っ取っちゃうというのも問題で、ネット上を見ていると標準ではshift+ctrl+vになっているインデント付きコピーをctrl+vと入れ替えて使っている人も多い。そして標準のペースト動作と完全に同じ挙動をする仕組みも上手く作れなかった。ペースト後のカーソル移動が違う感じなんだけど、SublimeTextがカーソルが複数あって、仕組みがよくわからない部分がある。

 他のショートカットキーでとも思ったけど、そもそもショートカットキーは標準だけでもかなりの数あって、空いてる操作がほとんどない。変な操作だと使いにくいし、多分そのうち操作方法忘れる。

 といった試行錯誤を数時間ほどやった結果、選択文字列から連番書式を読み取って、右クリックからペーストする仕組みに落ち着いた。詳細はGitHubに置いたREADME.mdに。

 手作業で数字を1つ1つ書いた方が早かったんだけど、次以降は楽になるし、テキストエディタ上で完結して無駄なファイルを作らないというのはシンプルで良い。単純な内容だからプラグインのサンプルとしても使えそうな気がする。
posted by unaunagi at 2013/07/16 16:41 | Comment(0) | TrackBack(0) | 制作物 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。