はじめに
僕は普段はvim-lspを導入しているのですが、とある事情でDartを書く時だけはLanguageClient-neovimを使っています。
しかしバグなのか、Diagnosticsからsignへの反映がたびたびズレる現象が発生していたため、これを解決する為のプラグインを作成しました。
修正されました。
用途としては
- quickfixリストを利用しているLSPプラグインの目印ズレを修正
- LSPプラグイン未対応の目印の種類を追加する1
- QuickRunの結果に目印を付ける
などが挙げられます。
なお、quickfixリストを使っていないvim-lspではこのプラグインは機能しません
(そもそもズレないので必要にならない)。
デモ
QuickRunでC++のmakeをした時の様子です、quickfixリストの内容をsignとtextpropへと反映しています。
textpropをワード単位で設定したかったのですが、getgflist(or getloclist)のデータには行(lnum)と列(col)しかない為、最初の一文字だけの設定としています。
GCCではデモのように対象ワードを注釈として返してくれてるんですが、これを組み込むのは恐らくコーナーケース対応になるのでどうしようかってところです。
使い方
デフォルト設定で動きますので、vim-plugをお使いの方は以下をvimrcに追加して:PlugInstall
でインストールするだけで動きます。
Plug 'wordijp/vim-quickfixsync'
カスタマイズ設定はREADME.mdをご覧ください。
おわりに
LSP発展の過渡期故の産物ですが、必要な方はお使い下さい。
-
例えば、LanguageClient-neovimではsignしかつかないが、このプラグインでtextpropを追加する ↩