11
11

More than 5 years have passed since last update.

Ruby 2.0 のキーワード引数を補完するプラグインを書いた

Last updated at Posted at 2012-11-15

neco-ruby-keyword-args というプラグインを作りました.

neco-ruby-keyword-args

Ruby 2.0 では,引数を名前で指定するキーワード引数が追加されました.今まではハッシュを引数にすることで擬似的に名前渡しを実現していましたが,もうそんなことをする必要はありません.

# ハッシュのような書き方で引数の名前とデフォルト値を指定
def test(tsura: 'poyo', yaba: 'poyo')
  puts tsura+yaba
end

# 指定しないとデフォルト値が使われる
test #=> poyopoyo
# 名前で指定するので順番は意識しなくて良い
test yaba: 'dameda', tsura: 'mou' #=> moudameda

これにより,引数の順序を守らないといけないなどの煩わしさから開放され,どの引数が何の値を示しているのか呼び出し側で明示できます.しかし,当然ですが代わりに引数に付けられた名前を覚えておかなければなりません.そこで,ソース内の引数名を収集し,自動で補完してくれるプラグインを作りました.
neocomplcache のソースとして実装しているので,neocomplcache を使っていることが前提です.

使用中のスクリーンショットはこんな感じです.
スクリーンショット

少し分かりにくいですが,一番下の行で test メソッドの tsura 引数を補完しようとしているところです.
補完候補の [K] というのがキーワード引数補完のマークで,その次にデフォルト値が 'poyo' であることが表示されています.

なお,現在このソースが補完できるのは,Vim 内で開いている Ruby ソースに定義が書かれたメソッドのみです.require 先やメソッド呼び出しからも候補収集できそうですが,そういうのは追々やっていきます.

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11