Vimの補完プラグインをインストール。その3で、ddc-tabnineが使えそうです、などと書いたのですが、早速やってみました。
まず、tabnineのバイナリを用意しないといけません。がどうにもTabNineのサイトがわかりにくいので、tabnine-nvimにあるダウンロードスクリプトを利用させてもらいます。
(あるいはこちらのdl-binaries.shを単独でダウンロードして実行しても良いかもしれません)
すると最新バージョンのtabnineがbinaries/4.194.0/x86_64-unknown-linux-musl以下に展開されます。
ddc-tabnineでもダウンロードの仕組みはあるのですが、ちゃんと動かないようです。また、あまりメンテもされていないっぽいです。が、ddcプラグイン自体は動きます。
ちなみzipファイルを展開して出てきたTabNineを実行すると、.config/TabNineというディレクトリが作成されて設定などはここに入るようです。
次にddc-tabnineをdein.vimでインストールします。
call dein#add('LumaKernel/ddc-tabnine')
でもって、そのページにある設定もvimrcにコピーしておきます。
call ddc#custom#patch_global('sources', ['tabnine'])
call ddc#custom#patch_global('sourceOptions', {
\ 'tabnine': {
\ 'mark': 'TN',
\ 'maxCandidates': 5,
\ 'isVolatile': v:true,
\ }})
ここで注意。sourceOptionsのmaxCandidatesは、2022年2月22日にmaxItemsに変更されています。
2022.02.22
* Rename maxCandidates to maxItems.
* Rename ddc#map#insert_candidate() to ddc#map#insert_item().
* Deprecate gatherCandidates attribute.
ですので、そのように修正。
また、sourcesにtabnineを追加します。正直、aroundはいらないかなとも思いますが。
call ddc#custom#patch_global('sources', ['vim-lsp', 'tabnine', 'around'])
ここでVimを終了して再起動すると、TabNineが見つからないとかのエラーが出ます。なので、先程ダウンロードしたbinariesディレクトリをそのまま ~/.cache/ddc-tabnine/以下に移動します。
たぶんここまでくれば動くと思いますが、動かない場合(TabNineがまだ見つからないとか)は、
call ddc#custom#patch_global('sourceParams', {
\ 'tabnine': {
\ 'maxNumResults': 10,
\ 'storageDir': expand('~/.cache/ddc-tabnine/binaries'),
\ }})
が必要かもしれません。これはddc-tabnine.txtに書いてあります。
ということでソースを編集してみると、
ちゃんとTabNineが動いているようです。右のほうに "TN" とありますし。
めでたしめでたし、なんですが、あとはRuffでのisortとか試さないと。