LoginSignup
2

More than 3 years have passed since last update.

posted at

updated at

Vimのquickfixリストに目印を付ける vim-quickfixsync プラグインを作成した

はじめに

僕は普段はvim-lspを導入しているのですが、とある事情でDartを書く時だけはLanguageClient-neovimを使っています。
しかしバグなのか、Diagnosticsからsignへの反映がたびたびズレる現象が発生していたため、これを解決する為のプラグインを作成しました。
修正されました。

wordijp/vim-quickfixsync

用途としては

  • quickfixリストを利用しているLSPプラグインの目印ズレを修正
  • LSPプラグイン未対応の目印の種類を追加する1
  • QuickRunの結果に目印を付ける

などが挙げられます。
なお、quickfixリストを使っていないvim-lspではこのプラグインは機能しません
(そもそもズレないので必要にならない)。

デモ

QuickRunでC++のmakeをした時の様子です、quickfixリストの内容をsignとtextpropへと反映しています。

demo_quickrun.gif

textpropをワード単位で設定したかったのですが、getgflist(or getloclist)のデータには行(lnum)と列(col)しかない為、最初の一文字だけの設定としています。
GCCではデモのように対象ワードを注釈として返してくれてるんですが、これを組み込むのは恐らくコーナーケース対応になるのでどうしようかってところです。

使い方

デフォルト設定で動きますので、vim-plugをお使いの方は以下をvimrcに追加して:PlugInstallでインストールするだけで動きます。

Plug 'wordijp/vim-quickfixsync'

カスタマイズ設定はREADME.mdをご覧ください。

おわりに

LSP発展の過渡期故の産物ですが、必要な方はお使い下さい。


  1. 例えば、LanguageClient-neovimではsignしかつかないが、このプラグインでtextpropを追加する 

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
What you can do with signing up
2