add new completion plugins

This commit is contained in:
Markus 2022-10-13 23:53:00 +02:00
parent 2f532d405d
commit 9d5f4047ca
2 changed files with 80 additions and 56 deletions

View File

@ -3,7 +3,7 @@ local luasnip = require("luasnip")
local has_words_before = function() local has_words_before = function()
local line, col = unpack(vim.api.nvim_win_get_cursor(0)) local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line -1, line, true)[1]:sub(col,col):match("%s") == nil return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end end
cmp.setup({ cmp.setup({
snippet = { snippet = {
@ -13,7 +13,9 @@ cmp.setup({
}, },
mapping = { mapping = {
['<C-k>'] = cmp.mapping.select_prev_item(), ['<C-k>'] = cmp.mapping.select_prev_item(),
['<C-p>'] = cmp.mapping.select_prev_item(),
['<C-j>'] = cmp.mapping.select_next_item(), ['<C-j>'] = cmp.mapping.select_next_item(),
['<C-n>'] = cmp.mapping.select_next_item(),
['<C-d>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), ['<C-d>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), ['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }),
['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), ['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
@ -33,7 +35,7 @@ cmp.setup({
else else
fallback() fallback()
end end
end,{"i","s"}), end, { "i", "s" }),
['<S-Tab>'] = cmp.mapping(function(fallback) ['<S-Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then if cmp.visible() then
cmp.select_prev_item() cmp.select_prev_item()
@ -42,24 +44,42 @@ cmp.setup({
else else
fallback() fallback()
end end
end,{"i","s"}) end, { "i", "s" })
}, },
sources = cmp.config.sources({ sources = cmp.config.sources({
{ name = 'nvim_lsp' }, { name = 'path' },
{ name = 'luasnip' }, -- For luasnip users. { name = 'nvim_lsp', keyword_length = 3 },
}, { { name = 'nvim_lsp_signature_help' },
{ name = 'nvim_lua', keyword_length = 2 },
{ name = 'nvim_lua', keyword_length = 2 },
{ name = 'buffer' }, { name = 'buffer' },
}) { name = 'luasnip' }, -- For luasnip users.
}) }),
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
formatting = {
fields = { 'menu', 'abbr', 'kind' },
format = function(entry, item)
local menu_icon = {
nvim_lsp = 'λ',
buffer = 'Ω'
}
item.menu = menu_icon[entry.source.name]
return item
end
}
})
cmp.setup.cmdline('/',{ cmp.setup.cmdline('/', {
sources = { sources = {
{ name = 'buffer' } { name = 'buffer' }
} }
}) })
cmp.setup.cmdline(':',{ cmp.setup.cmdline(':', {
sources = cmp.config.sources({ sources = cmp.config.sources({
{name = 'path'} { name = 'path' }
},{{name='cmdline'}}) }, { { name = 'cmdline' } })
}) })

View File

@ -25,8 +25,12 @@ require("packer").startup(function(use)
"kosayoda/nvim-lightbulb", "kosayoda/nvim-lightbulb",
}) })
use("hrsh7th/cmp-nvim-lsp") use("hrsh7th/cmp-nvim-lsp")
use("hrsh7th/cmp-nvim-lsp-signature-help")
use("hrsh7th/cmp-nvim-lua")
use("hrsh7th/cmp-buffer") use("hrsh7th/cmp-buffer")
use("hrsh7th/cmp-path") use("hrsh7th/cmp-path")
use("hrsh7th/cmp-vsnip")
use("hrsh7th/vim-vsnip")
use("hrsh7th/nvim-cmp") use("hrsh7th/nvim-cmp")
use("hrsh7th/cmp-cmdline") use("hrsh7th/cmp-cmdline")
use("saadparwaiz1/cmp_luasnip") use("saadparwaiz1/cmp_luasnip")