Just Midi
ce9bd490ee
Squashed commit of the following: commit6179a86a75
Author: Just Midi <storm89161@gmail.com> Date: Fri Aug 27 06:18:00 2021 +0000 Removed && in zls install removed && in favor of scripts on separate lines commit4ca63a5884
Author: Just Midi <storm89161@gmail.com> Date: Thu Aug 26 07:15:27 2021 +0000 True lazy loading, lsp installs, and nvim-compe Installation scripts for: + bashls + ccls + clangd + pylsp + pyright + sumneko + zls And adjusted a few keymaps commit052b4513c2
Author: Just Midi <storm89161@gmail.com> Date: Wed Aug 11 20:52:37 2021 +0000 Base LSP + loads LSP server based on file type + imports native-lsp (our's) and lspconfig (foreign) + key mappings for lsp
95 lines
2.6 KiB
Lua
95 lines
2.6 KiB
Lua
-- see `:help` for any questions
|
|
-- use `&<var>` to show value of vimscript variable
|
|
|
|
|
|
-- API --
|
|
-- o = vim.o -- options
|
|
-- go = vim.go -- only-global options
|
|
-- bo = vim.bo -- buffer local options
|
|
-- wo = vim.wo -- window local options
|
|
|
|
-- cmd = vim.cmd -- vim commands
|
|
-- fn = vim.fn -- vim functions
|
|
-- opt = vim.opt -- vim option object
|
|
|
|
-- g = vim.g -- global variables
|
|
-- b = vim.b -- buffer local variables
|
|
-- w = vim.w -- window local variables
|
|
-- t = vim.t -- tab local variables
|
|
-- v = vim.v -- variables
|
|
-- env = vim.env -- environment variables
|
|
|
|
-- dependent on https://github.com/hrsh7th/nvim-compe
|
|
|
|
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;
|
|
calc = true;
|
|
vsnip = true;
|
|
nvim_lsp = true;
|
|
nvim_lua = true;
|
|
spell = true;
|
|
tags = true;
|
|
snippets_nvim = true;
|
|
treesitter = true;
|
|
};
|
|
}
|
|
local t = function(str)
|
|
return vim.api.nvim_replace_termcodes(str, true, true, true)
|
|
end
|
|
|
|
local check_back_space = function()
|
|
local col = fn.col('.') - 1
|
|
if col == 0 or fn.getline('.'):sub(col, col):match('%s') then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end
|
|
|
|
-- Use (s-)tab to:
|
|
--- move to prev/next item in completion menuone
|
|
--- jump to prev/next snippet's placeholder
|
|
_G.tab_complete = function()
|
|
if fn.pumvisible() == 1 then
|
|
return t "<C-n>"
|
|
elseif fn.call("vsnip#available", {1}) == 1 then
|
|
return t "<Plug>(vsnip-expand-or-jump)"
|
|
elseif check_back_space() then
|
|
return t "<Tab>"
|
|
else
|
|
return fn['compe#complete']()
|
|
end
|
|
end
|
|
_G.s_tab_complete = function()
|
|
if fn.pumvisible() == 1 then
|
|
return t "<C-p>"
|
|
elseif fn.call("vsnip#jumpable", {-1}) == 1 then
|
|
return t "<Plug>(vsnip-jump-prev)"
|
|
else
|
|
-- If <S-Tab> is not working in your terminal, change it to <C-h>
|
|
return t "<S-Tab>"
|
|
end
|
|
end
|
|
|
|
map("i", "<Tab>", "v:lua.tab_complete()", {expr = true})
|
|
map("s", "<Tab>", "v:lua.tab_complete()", {expr = true})
|
|
map("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
|
|
map("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
|
|
|
|
map('i', '<cr>', 'compe#confirm("<cr>")', { expr = true })
|
|
map('i', '<c-space>', 'compe#complete()', { expr = true })
|