mirror of
https://github.com/JulienMalka/snowfield.git
synced 2025-03-26 05:40:52 +01:00
76 lines
2.1 KiB
Lua
Executable file
76 lines
2.1 KiB
Lua
Executable file
-- 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 "<C-n>"
|
|
else
|
|
return t "<S-Tab>"
|
|
end
|
|
end
|
|
|
|
vim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", {expr = true})
|
|
vim.api.nvim_set_keymap("s", "<Tab>", "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,
|
|
},
|
|
},
|
|
},
|
|
}
|