rubyで、「ローカル変数かメソッドか」は区別できるということと、vimのシンタックスハイライト
ローカル変数 か メソッドか
以下のファイルを用意し、
# test.rb
@a
:x
Hash
a = 1
a
b
puts(:ended!)
ruby -cw test.rb
を実行すると
@a
, :x
, Hash
, a
のところは警告が出る。
$ ruby -cw test.rb
test.rb:2: warning: possibly useless use of a variable in void context
test.rb:3: warning: possibly useless use of a literal in void context
test.rb:4: warning: possibly useless use of a constant in void context
test.rb:6: warning: possibly useless use of a variable in void context
Syntax OK
rubocopの Lint/Void
も同じような警告を出す。
しかし、b
のところは警告が出ない。
これは、b
というローカル変数が、前もって定義されていないことがわかっている から。
標準添付の ripper
ライブラリや parser
gem(rubocopが使ってるやつ)で解析できる。
これを利用してローカル変数とメソッドを区別してシンタックスハイライトするのが todesking/ruby_hl_lvar.vim。
Rubyのローカル変数をシンタクスハイライトするVimプラグインを書いた - TODESKING
手元のneovimでも動いた。これを入れるとこうなる👇。
before
after
自分の場合は $ gem install neovim
が必要だった。
なお、自分のcolorscheme設定だと、他には特に何も設定せずに、いい感じに色がついた。
iro.vim
そしてpocke/iro.vimというやつでもこれは実現できる。ということを手元でも確認した。
rubykaigiでもトークがあったやつ。
こっちは、私の色の設定がうまくいかなかったので、今日はここまで。
✎まとめ
理論はわかるんだが、vimの色設定周りがよくわからん