< Return to index

vimの​if_luaが​よく​わからない

vimでlightlineの設定を書きたくてdictにfuncrefを入れたい。

vim.g.lightline = {
  component_function = {
    component_name = function() ...
  },
}

みたいなコードを書いた時に、vimだとCouldn't convert lua valueと怒られてしまう。

変数にluaのfunctionを入れれないのかと言われればそうでもない。

vim.g.Sample = function() return 42 end

みたいなコードは通ってくれる。(funcrefの代入の制約で変数名の先頭は大文字になるが)

エラー文自体はif_lua.c#L1861にある。

代入はdict.c#378でやっていて、ここが失敗しているっぽい。

よくわからん。

編集を提案