yasnippetを使ってみた(php-modeアルヨ!)

yasnippetの便利さについては yasnippetがすごい!!!!1112345! - Kentaro Kuribayashi's blog
yasnippet + php話題のyasnippetのphp-modeをインストールしてみた - 大阪で働くソーシャルゲームエンジニア ダイアリー


で、上記を参考にして使ってみたんだけど、これすっごく便利。
snippetを展開するキーバインドをタブからスペースにする*1と、特別な動きを意識する事なく展開してくれるのでかなりlife changingな感じなのです。
スペースに変更すると慣れるまでは急に展開されてビックリな部分もありますが、すぐに慣れると思うよ!


んで、自分用にphp-modeのsnippetを改変したり追加したりしたので、ちょっと紹介するよ!*2


function

#contributor : Andrew Gwozdziewycz <web@apgwoz.com>
#name : function ...(...)
# --
function ${function_name}(${args}) {
    $0
}

これは引数が入るところがfunction_argsだったのをargsに変えただけ。
でもfunction_argsだと引数空にするのにM-dを2回押さなきゃいけないけど、これだと一回で済んで嬉しいです。
vimのdi(みたいなことが出来ればいいのだけど、そういう方法が見つからなかったので。


function.public

#contributor : kengpong <kengpong2@gmail.com>
#name : public function ...(...)
# --
public function ${function_name}(${args}) {
    $0
}

めんどくさいから貼らないけど、上と同じ様にprotected,privateも作ったよ!
これは普通のfunctionで補完した場合

<?php
Public function function_name(args) {
           
       }

こんな感じになっちゃうのの対策で書きました。
ほんとはpublic functionまで書いて補完した時に絞り込めれば良いのだけど、ちょっと試した感じだと上手い事できなかった。
人のsnippets読んだりとかしてないから、このへんどうやって対応してるのか分からないなぁ。


という事で、基本的には便利です。snippetsも書いてある奴を見て「こんな感じ?」でいじくれば簡単な事ならすぐに試せるので、ばしばしいじってやろうかと思う。

追記

よく考えたら

public static function hoge() {
}

みたいな状況も考えられるし、それらを入れるとfunctionでの補完が7つぐらいになっちゃって微妙にめんどいかも知れないので、このアプローチは正しくないかなと思い始めました。

さらに追記

スペースで展開はやめる事にした。すぐ慣れるとか嘘ついてごめんね。
もうちょっとyasnippetelispのおべんきょするるよ!

*1:yasnippetのトリガをスペースキーにする - Kentaro Kuribayashi's blog

*2:改変したもののcontributorとかいじっていいのかわからんのでそのままだけど、まずかったら教えてください!