丁寧に手を抜く

頑張らない努力

vim-javascript から tigris.nvim に乗り換えたら快適だった

最近neovimに乗り換えてから、javascriptの編集中にたまに固まる現象が発生して困っていた。 再現条件をいろいろ試したらどうやらvim-javascriptのインデント処理で無限ループしている様子。 という訳でvimの設定を見直してみることにした。

要件としては、インデントはPrettierでやるので、シンタックスハイライトだけ綺麗にやってくれればいい。

調べたら tigris.nvimというプラグインを見つけた。 これはnodeベースのプラグインで、Babylonを使って構文解析をしてハイライトを実現している。 Babylonはbabelプロジェクトの一部で、JSX, Flow, Typescriptを標準でサポートしている。 だからvim-javascriptのようにvimコミュニティが必死で新たな構文のサポートを追いかける必要がない。 ソースコードを覗いたらシンプルな実装だったので試してみた。

実際のハイライトは筋がいい印象。気に入った。固まる現象も消えたし、Flowシンタックスも問題ない。

f:id:craftzdog:20180204175654p:plain

インストール方法

自分はdeinプラグインを管理している。 tomlファイルに以下のように記述した:

[[plugins]]
repo = 'billyvg/tigris.nvim'
on_ft = ['javascript', 'javascript.jsx']
hook_post_update = '''
  let g:dein#plugin.build = './install.sh'
'''

インストールしたら、 :UpdateRemotePlugins を実行する。 neovimを再起動してインストール完了。

設定

オンザフライで構文解析してハイライトして欲しいので以下のように設定した:

let g:tigris#enabled = 1
let g:tigris#on_the_fly_enabled = 1
let g:tigris#delay = 300

おすすめ。

github.com