lazy loading : compe

This commit is contained in:
siduck76 2021-06-24 22:49:42 +05:30
parent bbadee53ad
commit e771a32ab8
4 changed files with 91 additions and 78 deletions

View file

@ -10,7 +10,6 @@ require("neoscroll").setup() -- smooth scroll
-- lsp stuff -- lsp stuff
require "nvim-lspconfig" require "nvim-lspconfig"
require "compe-completion"
local cmd = vim.cmd local cmd = vim.cmd
local g = vim.g local g = vim.g

View file

@ -1,74 +1,25 @@
vim.o.completeopt = "menuone,noselect" local M = {}
require "compe".setup { M.config = function()
enabled = true, require "compe".setup {
autocomplete = true, enabled = true,
debug = false, autocomplete = true,
min_length = 1, debug = false,
preselect = "enable", min_length = 1,
throttle_time = 80, preselect = "enable",
source_timeout = 200, throttle_time = 80,
incomplete_delay = 400, source_timeout = 200,
max_abbr_width = 100, incomplete_delay = 400,
max_kind_width = 100, max_abbr_width = 100,
max_menu_width = 100, max_kind_width = 100,
documentation = true, max_menu_width = 100,
source = { documentation = true,
buffer = {kind = "", true}, source = {
vsnip = {kind = ""}, --replace to what sign you prefer buffer = {kind = "", true},
nvim_lsp = true vsnip = {kind = ""},
nvim_lsp = true
}
} }
}
local t = function(str)
return vim.api.nvim_replace_termcodes(str, true, true, true)
end end
local check_back_space = function() return M
local col = vim.fn.col(".") - 1
if col == 0 or vim.fn.getline("."):sub(col, col):match("%s") then
return true
else
return false
end
end
-- tab completion
_G.tab_complete = function()
if vim.fn.pumvisible() == 1 then
return t "<C-n>"
elseif check_back_space() then
return t "<Tab>"
else
return vim.fn["compe#complete"]()
end
end
_G.s_tab_complete = function()
if vim.fn.pumvisible() == 1 then
return t "<C-p>"
elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then
return t "<Plug>(vsnip-jump-prev)"
else
return t "<S-Tab>"
end
end
-- mappings
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})
vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
function _G.completions()
local npairs = require("nvim-autopairs")
if vim.fn.pumvisible() == 1 then
if vim.fn.complete_info()["selected"] ~= -1 then
return vim.fn["compe#confirm"]("<CR>")
end
end
return npairs.check_break_line_char()
end
vim.api.nvim_set_keymap("i", "<CR>", "v:lua.completions()", {expr = true})

View file

@ -1,4 +1,4 @@
local function map(mode, lhs, rhs, opts) local function map(mode, lhs, rhs, opts)
local options = {noremap = true} local options = {noremap = true}
if opts then if opts then
options = vim.tbl_extend("force", options, opts) options = vim.tbl_extend("force", options, opts)
@ -8,7 +8,7 @@ end
local opt = {} local opt = {}
-- dont copy any deleted text , this is disabled by default so uncomment the below mappings if you want them! -- dont copy any deleted text , this is disabled by default so uncomment the below mappings if you want them
--[[ remove this line --[[ remove this line
map("n", "dd", [=[ "_dd ]=], opt) map("n", "dd", [=[ "_dd ]=], opt)
@ -16,18 +16,20 @@ map("v", "dd", [=[ "_dd ]=], opt)
map("v", "x", [=[ "_x ]=], opt) map("v", "x", [=[ "_x ]=], opt)
this line too ]] this line too ]]
--
-- OPEN TERMINALS -- -- OPEN TERMINALS --
map("n", "<C-l>", [[<Cmd>vnew term://bash <CR>]], opt) -- term over right map("n", "<C-l>", [[<Cmd>vnew term://bash <CR>]], opt) -- term over right
map("n", "<C-x>", [[<Cmd> split term://bash | resize 10 <CR>]], opt) -- term bottom map("n", "<C-x>", [[<Cmd> split term://bash | resize 10 <CR>]], opt) -- term bottom
map("n", "<C-t>t", [[<Cmd> tabnew | term <CR>]], opt) -- term newtab map("n", "<C-t>t", [[<Cmd> tabnew | term <CR>]], opt) -- term newtab
-- COPY EVERYTHING -- -- copy whole file content
map("n", "<C-a>", [[ <Cmd> %y+<CR>]], opt) map("n", "<C-a>", [[ <Cmd> %y+<CR>]], opt)
-- toggle numbers --- -- toggle numbers
map("n", "<leader>n", [[ <Cmd> set nu!<CR>]], opt) map("n", "<leader>n", [[ <Cmd> set nu!<CR>]], opt)
-- toggle truezen.nvim's ataraxis and minimalist mode -- Truezen.nvim
map("n", "<leader>z", [[ <Cmd> TZAtaraxis<CR>]], opt) map("n", "<leader>z", [[ <Cmd> TZAtaraxis<CR>]], opt)
map("n", "<leader>m", [[ <Cmd> TZMinimalist<CR>]], opt) map("n", "<leader>m", [[ <Cmd> TZMinimalist<CR>]], opt)
@ -37,3 +39,55 @@ map("n", "<C-s>", [[ <Cmd> w <CR>]], opt)
-- Commenter Keybinding -- Commenter Keybinding
map("n", "<leader>/", ":CommentToggle<CR>", {noremap = true, silent = true}) map("n", "<leader>/", ":CommentToggle<CR>", {noremap = true, silent = true})
map("v", "<leader>/", ":CommentToggle<CR>", {noremap = true, silent = true}) map("v", "<leader>/", ":CommentToggle<CR>", {noremap = true, silent = true})
-- compe stuff
local t = function(str)
return vim.api.nvim_replace_termcodes(str, true, true, true)
end
local check_back_space = function()
local col = vim.fn.col(".") - 1
if col == 0 or vim.fn.getline("."):sub(col, col):match("%s") then
return true
else
return false
end
end
_G.tab_complete = function()
if vim.fn.pumvisible() == 1 then
return t "<C-n>"
elseif check_back_space() then
return t "<Tab>"
else
return vim.fn["compe#complete"]()
end
end
_G.s_tab_complete = function()
if vim.fn.pumvisible() == 1 then
return t "<C-p>"
elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then
return t "<Plug>(vsnip-jump-prev)"
else
return t "<S-Tab>"
end
end
function _G.completions()
local npairs = require("nvim-autopairs")
if vim.fn.pumvisible() == 1 then
if vim.fn.complete_info()["selected"] ~= -1 then
return vim.fn["compe#confirm"]("<CR>")
end
end
return npairs.check_break_line_char()
end
-- compe mappings
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>", "v:lua.completions()", {expr = true})

View file

@ -13,7 +13,16 @@ return packer.startup(
-- lang stuff -- lang stuff
use "nvim-treesitter/nvim-treesitter" use "nvim-treesitter/nvim-treesitter"
use "neovim/nvim-lspconfig" use "neovim/nvim-lspconfig"
use "hrsh7th/nvim-compe"
-- loads compe and vsnip in insert mode only
use {
"hrsh7th/nvim-compe",
event = "InsertEnter",
config = function()
require("compe-completion").config()
end
}
use "onsails/lspkind-nvim" use "onsails/lspkind-nvim"
use "sbdchd/neoformat" use "sbdchd/neoformat"
use "nvim-lua/plenary.nvim" use "nvim-lua/plenary.nvim"
@ -23,7 +32,7 @@ return packer.startup(
use "akinsho/nvim-bufferline.lua" use "akinsho/nvim-bufferline.lua"
use "glepnir/galaxyline.nvim" use "glepnir/galaxyline.nvim"
use "windwp/nvim-autopairs" use "windwp/nvim-autopairs"
use "alvan/vim-closetag" -- use "alvan/vim-closetag" -- for html
-- Comment -- Comment
use "terrortylor/nvim-comment" use "terrortylor/nvim-comment"