-- This file sets up autocompletion for neovim's native lsp -- This enables all the language servers I want on my system -- Change these to whatever languages you use require'lspconfig'.rnix.setup{} require'lspconfig'.sumneko_lua.setup{} vim.o.completeopt = "menuone,noselect" -- Autocompletion setup require'compe'.setup { enabled = true; autocomplete = true; debug = false; min_length = 1; preselect = 'enable'; throttle_time = 80; source_timeout = 200; incomplete_delay = 400; max_abbr_width = 100; max_kind_width = 100; max_menu_width = 100; documentation = false; source = { path = true; buffer = true; nvim_lsp = true; treesitter = true; }; } -- Set tab to accept the autocompletion local t = function(str) return vim.api.nvim_replace_termcodes(str, true, true, true) end _G.tab_complete = function() if vim.fn.pumvisible() == 1 then return t "" else return t "" end end vim.api.nvim_set_keymap("i", "", "v:lua.tab_complete()", {expr = true}) vim.api.nvim_set_keymap("s", "", "v:lua.tab_complete()", {expr = true}) -- set the path to the sumneko installation; if you previously installed via the now deprecated :LspInstall, use local sumneko_root_path = vim.fn.stdpath('cache')..'/lspconfig/sumneko_lua/lua-language-server' local sumneko_binary = "lua-language-server" local runtime_path = vim.split(package.path, ';') table.insert(runtime_path, "lua/?.lua") table.insert(runtime_path, "lua/?/init.lua") require'lspconfig'.sumneko_lua.setup { cmd = {sumneko_binary, "-E", sumneko_root_path .. "/main.lua"}; settings = { Lua = { runtime = { version = 'LuaJIT', path = runtime_path, }, diagnostics = { globals = {'vim'}, }, workspace = { library = vim.api.nvim_get_runtime_file("", true), preloadFileSize = 120 }, telemetry = { enable = false, }, }, }, }