TabNine source for hrsh7th/nvim-cmp
Using plug:
Plug 'tzachar/cmp-tabnine', { 'do': './install.sh' }Using Packer:
return require("packer").startup(
function(use)
use "hrsh7th/nvim-cmp" --completion
use {'tzachar/cmp-tabnine', run='./install.sh', requires = 'hrsh7th/nvim-cmp'}
end
)And later, enable the plugin:
require'cmp'.setup {
sources = {
{ name = 'cmp_tabnine' },
},
}local tabnine = require('cmp_tabnine.config')
tabnine:setup({
max_lines = 1000;
max_num_results = 20;
sort = true;
})How many lines of buffer context to pass to TabNine
How many results to return
Sort results by returned priority
You can use the following to pretty print the completion menu (requires lspkind and patched fonts (https://www.nerdfonts.com)):
local lspkind = require('lspkind')
local source_mapping = {
buffer = "[Buffer]",
nvim_lsp = "[LSP]",
nvim_lua = "[Lua]",
cmp_tabnine = "[TN]",
path = "[Path]",
}
require'cmp'.setup {
sources = {
{ name = 'cmp_tabnine' },
},
formatting = {
format = function(entry, vim_item)
vim_item.kind = lspkind.presets.default[vim_item.kind]
local menu = source_mapping[entry.source.name]
if entry.source.name == 'cmp_tabnine' then
if entry.completion_item.data ~= nil and entry.completion_item.data.detail ~= nil then
menu = entry.completion_item.data.detail .. ' ' .. menu
end
vim_item.kind = ''
end
vim_item.menu = menu
return vim_item
end
},
}