Sencha Advent Calendar 2015 - 12月13日 vimなお話
今年もこの季節がやってきましたね。
ということで、今回は Sencha vim のお話です。
Advent Calendarの記事の中にいくつかIDEだったりプラグインの紹介だったりがチラホラありますが、そんな中 vim を使い続ける硬派な方向けのエントリーになります。
tnker/vim-sencha-util
少し前にSencha用のプラグイン作りました。
GithubのREADMEはBingの翻訳頼りなので、英語おかしいかもですが気にしないように :(
Senchaで一番面倒なコード追う作業を比較的楽にしてくれちゃいます :)
設定方法
プラグインの中身の実装がほぼPythonで実装しているので、Python2.7以上(多分)が必須です。
インストールについては、みんな大好きNeoBundleでOKです
NeoBundle 'tnker/vim-sencha-util'
使い方
このプラグインを使うに当たって、Sencha Commandで生成されたプロジェクトが前提になるので注意してください :(
あとは、xtypeから該当ファイルへジャンプしたりする機能を利用する場合、Sencha Commandでビルドもしくは sencha app refresh
などを行う必要があります。
プロジェクト直下の bootstrap.json を参照していたりするので
出来ることは下記の通り
- 文字列定義で記述されているフルパスクラス名から該当クラスファイルへジャンプ
- リテラル定義内のxtype名から該当クラスへジャンプ
- リテラル定義内のhandler等に設定されている文字列関数名から該当関数までジャンプ
- MVVMの構成に合わせてファイルをトグル切り替え
一番最後の機能については、ファイル名の命名規則しばったちょうザックリ機能なので、使えるかは微妙です(私は使ってますが
プラグインの機能を利用する際に使うのは、基本的に下記のコマンドだけになります
:SenchaParserReadCurrentLine
微妙といったファイルのトグル切り替えについては下記
: SenchaMVVMToggle
文字列定義で記述されているフルパスクラス名から該当クラスファイルへジャンプ
リテラル定義内のhandler等に設定されている文字列関数名から該当関数までジャンプ
ExtJS6のclassicとmordenパッケージの名前解決も一応対応はしていますが、ちょっとまだバギーかもしれないです :(
リテラル定義内のxtype名から該当クラスへジャンプ
MVVMの構成に合わせてファイルをトグル切り替え
これについては、該当ファイルに設定されているViewControllerとViewModelの解析を行っているわけではなく、単純に該当ファイルと同ディレクトにおいてあるファイルを下記のルールで検索し、マッチするファイルがあればトグルで切り替えているだけになります。
対象ファイルが Hoge.js の場合
Hoge.js
HogeModel.js
HogeController.js
というような感じで、ModelとControllerが後ろについているか検索してるだけです
vimrc には下記みたいな感じで、マッピング追加しておいてもらえれば簡単に使えるので比較的便利です :)
map <silent> <C-@> :SenchaMVVMToggle<CR>
map <silent> <C-f> :SenchaParserReadCurrentLine<CR>
と、思いっきり 宣伝 紹介記事になってしまいましたが今回はこの辺で :)
今気づいたけど、12日分がまだ上がってなかった!
Unoくんガンバ!:(