feat: add tabnine

This commit is contained in:
max_richter 2022-07-26 19:55:09 +02:00
parent ed46021b85
commit 4586b3cf71
6 changed files with 121 additions and 79 deletions

View File

@ -4,95 +4,109 @@ local luasnip = require "luasnip"
local cmp = require "cmp" local cmp = require "cmp"
local cmp_autopairs = require("nvim-autopairs.completion.cmp") local cmp_autopairs = require("nvim-autopairs.completion.cmp")
local tabnine = require('cmp_tabnine.config')
tabnine:setup({
max_lines = 1000;
max_num_results = 20;
sort = true;
run_on_every_keystroke = true;
snippet_placeholder = '..';
ignored_file_types = { -- default is not to ignore
-- uncomment to ignore in lua:
-- lua = true
};
show_prediction_strength = false;
})
cmp.setup { cmp.setup {
-- formatting = { -- formatting = {
-- format = lspkind.cmp_format( -- format = lspkind.cmp_format(
-- { -- {
-- with_text = true, -- with_text = true,
-- menu = ({ -- menu = ({
-- buffer = "[Buffer]", -- buffer = "[Buffer]",
-- nvim_lsp = "[LSP]", -- nvim_lsp = "[LSP]",
-- luasnip = "[LuaSnip]", -- luasnip = "[LuaSnip]",
-- nvim_lua = "[Lua]", -- nvim_lua = "[Lua]",
-- latex_symbols = "[Latex]" -- latex_symbols = "[Latex]"
-- }) -- })
-- } -- }
-- ) -- )
-- }, -- },
experimental = { experimental = {
ghost_text = true ghost_text = true
}, },
completion = { completion = {
completeopt = "menu,menuone" completeopt = "menu,menuone"
}, },
snippet = { snippet = {
expand = function(args) expand = function(args)
luasnip.lsp_expand(args.body) luasnip.lsp_expand(args.body)
end end
}, },
mapping = { mapping = {
["<C-Leader>"] = cmp.mapping.complete(), ["<C-Leader>"] = cmp.mapping.complete(),
["<Tab>"] = function(fallback) ["<Tab>"] = function(fallback)
if cmp.visible() then if cmp.visible() then
cmp.select_next_item() cmp.select_next_item()
else else
fallback() fallback()
end end
end, end,
["<S-Tab>"] = function(fallback) ["<S-Tab>"] = function(fallback)
if cmp.visible() then if cmp.visible() then
cmp.select_prev_item() cmp.select_prev_item()
else else
fallback() fallback()
end end
end, end,
["<CR>"] = cmp.mapping.confirm( ["<CR>"] = cmp.mapping.confirm(
{ {
behavior = cmp.ConfirmBehavior.Replace, behavior = cmp.ConfirmBehavior.Replace,
select = true select = true
} }
) )
}, },
sources = { sources = {
{name = "nvim_lua"}, { name = "nvim_lua" },
{name = "nvim_lsp"}, { name = "nvim_lsp" },
{name = "luasnip"}, { name = "luasnip" },
{name = "path"}, { name = "path" },
{name = "buffer"}, { name = "buffer" },
{name = "calc"} { name = "calc" }
} }
} }
-- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore). -- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline( cmp.setup.cmdline(
"/", "/",
{ {
sources = { sources = {
{name = "buffer"} { name = "buffer" }
}
} }
}
) )
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline( cmp.setup.cmdline(
":", ":",
{ {
sources = cmp.config.sources( sources = cmp.config.sources(
{ {
{name = "path"} { name = "path" }
}, },
{ {
{name = "cmdline"} { name = "cmdline" }
} }
) )
} }
) )
-- The nvim-cmp almost supports LSP's capabilities so You should advertise it to LSP servers.. -- The nvim-cmp almost supports LSP's capabilities so You should advertise it to LSP servers..
-- Setup lspconfig. -- Setup lspconfig.
local capabilities = require("cmp_nvim_lsp").update_capabilities(vim.lsp.protocol.make_client_capabilities()) local capabilities = require("cmp_nvim_lsp").update_capabilities(vim.lsp.protocol.make_client_capabilities())
require "lspconfig".html.setup { require "lspconfig".html.setup {
capabilities = capabilities capabilities = capabilities
} }
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done({map_char = {tex = ""}})) cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done({ map_char = { tex = "" } }))

View File

@ -11,13 +11,11 @@ table.insert(runtime_path, "lua/?/init.lua")
local function on_attach(client, bufnr) local function on_attach(client, bufnr)
local cap = client.server_capabilities local cap = client.server_capabilities
vim.notify(client.name)
if (cap.documentFormattingProvider) then if (cap.documentFormattingProvider) then
vim.api.nvim_create_autocmd("BufWritePre", { vim.api.nvim_create_autocmd("BufWritePre", {
buffer = bufnr, buffer = bufnr,
callback = function() callback = function()
vim.lsp.buf.format(); vim.lsp.buf.format();
if client.name == 'tsserver' or client.name == "svelte" then if client.name == 'tsserver' or client.name == "svelte" then

View File

@ -61,6 +61,7 @@ return packer.startup(function(use)
use "tpope/vim-surround" use "tpope/vim-surround"
use "neovim/nvim-lspconfig" use "neovim/nvim-lspconfig"
use "hrsh7th/nvim-cmp" use "hrsh7th/nvim-cmp"
use { 'tzachar/cmp-tabnine', run = './install.sh', requires = 'hrsh7th/nvim-cmp' }
use "hrsh7th/cmp-nvim-lsp" use "hrsh7th/cmp-nvim-lsp"
use "hrsh7th/cmp-path" use "hrsh7th/cmp-path"
use "hrsh7th/cmp-calc" use "hrsh7th/cmp-calc"

View File

@ -85,7 +85,7 @@
"format-ethernet": "{ipaddr}/{cidr} ", "format-ethernet": "{ipaddr}/{cidr} ",
"tooltip-format": "{ifname} via {gwaddr} ", "tooltip-format": "{ifname} via {gwaddr} ",
"format-linked": "{ifname} (No IP) ", "format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected ⚠", "format-disconnected": "⚠",
"format-alt": "{ifname}: {ipaddr}/{cidr}" "format-alt": "{ifname}: {ipaddr}/{cidr}"
}, },
"pulseaudio": { "pulseaudio": {

View File

@ -0,0 +1,29 @@
[2022-07-06 12:54:31.514] [info] Using configuration file /home/max/.config/waybar/config
[2022-07-06 12:54:31.515] [info] Using CSS file /home/max/.config/waybar/style.css
[2022-07-06 12:54:31.562] [info] config update for bar-0: id bar-0, mode dock, hidden_state hide
[2022-07-06 12:54:31.565] [warning] As using a timezone, some format args may be missing as the date library haven't got a release since 2018.
[2022-07-06 12:54:31.594] [warning] Waybar has been built without rfkill support.
** (waybar:7369): WARNING **: 12:54:31.720: gtk-layer-shell v0.7.0 may not work on GTK v3.24.34. If you experience crashes, check https://github.com/wmww/gtk-layer-shell/blob/master/compatibility.md
[2022-07-06 12:54:31.842] [warning] Requested height: 20 is less than the minimum height: 40 required by the modules
[2022-07-06 12:54:31.842] [info] Bar configured (width: 1920, height: 40) for output: eDP-1
Failed to communicate with power-profiles-daemon: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: Not Authorized: net.hadess.PowerProfiles.switch-profile (9)
🐢
[2022-07-06 12:58:10.903] [info] Using configuration file /home/max/.config/waybar/config
[2022-07-06 12:58:10.910] [info] Using CSS file /home/max/.config/waybar/style.css
[2022-07-06 12:58:10.917] [info] config update for bar-0: id bar-0, mode dock, hidden_state hide
[2022-07-06 12:58:10.918] [warning] As using a timezone, some format args may be missing as the date library haven't got a release since 2018.
[2022-07-06 12:58:10.927] [warning] Waybar has been built without rfkill support.
** (waybar:1557): WARNING **: 12:58:10.947: gtk-layer-shell v0.7.0 may not work on GTK v3.24.34. If you experience crashes, check https://github.com/wmww/gtk-layer-shell/blob/master/compatibility.md
[2022-07-06 12:58:10.962] [warning] Requested height: 20 is less than the minimum height: 40 required by the modules
[2022-07-06 12:58:10.962] [info] Bar configured (width: 1920, height: 40) for output: eDP-1
[2022-07-26 01:09:41.209] [info] Using configuration file /home/max/.config/waybar/config
[2022-07-26 01:09:41.221] [info] Using CSS file /home/max/.config/waybar/style.css
[2022-07-26 01:09:41.246] [info] config update for bar-0: id bar-0, mode dock, hidden_state hide
[2022-07-26 01:09:41.247] [warning] As using a timezone, some format args may be missing as the date library haven't got a release since 2018.
[2022-07-26 01:09:41.278] [warning] Waybar has been built without rfkill support.
** (waybar:491379): WARNING **: 01:09:41.375: gtk-layer-shell v0.7.0 may not work on GTK v3.24.34. If you experience crashes, check https://github.com/wmww/gtk-layer-shell/blob/master/compatibility.md
[2022-07-26 01:09:41.388] [warning] Requested height: 20 is less than the minimum height: 40 required by the modules
[2022-07-26 01:09:41.388] [info] Bar configured (width: 1920, height: 40) for output: eDP-1

View File

@ -3,7 +3,7 @@ CURRENT=$(powerprofilesctl get)
LOW="🐢" LOW="🐢"
BALANCED="☯️" BALANCED="☯️"
HIGH="" HIGH="🐇"
if [ "$CURRENT" = 'power-saver' ]; then if [ "$CURRENT" = 'power-saver' ]; then
if [ "$1" = "--toggle" ]; then if [ "$1" = "--toggle" ]; then