tastytea
7a49812118
It may look nicer but it leads to problems. Also tweaked some thinks and cleaned up, made firenvim config only run if it is used.
115 lines
3.3 KiB
Lua
115 lines
3.3 KiB
Lua
require('my/plugins')
|
|
|
|
packer.use {
|
|
'https://github.com/hrsh7th/nvim-cmp',
|
|
requires = {
|
|
'https://github.com/hrsh7th/cmp-nvim-lsp',
|
|
'https://github.com/hrsh7th/cmp-buffer',
|
|
'https://github.com/hrsh7th/cmp-path',
|
|
'https://github.com/hrsh7th/cmp-cmdline',
|
|
{
|
|
'https://github.com/saadparwaiz1/cmp_luasnip',
|
|
requires = 'https://github.com/L3MON4D3/LuaSnip'
|
|
},
|
|
'https://github.com/hrsh7th/cmp-nvim-lua',
|
|
'https://github.com/hrsh7th/cmp-nvim-lsp-signature-help',
|
|
'https://github.com/uga-rosa/cmp-dictionary',
|
|
}
|
|
}
|
|
|
|
local cmp = require('cmp')
|
|
local luasnip = require('luasnip')
|
|
|
|
if cmp and luasnip then
|
|
cmp.setup({
|
|
snippet = {
|
|
expand = function(args)
|
|
luasnip.lsp_expand(args.body)
|
|
end,
|
|
},
|
|
window = {
|
|
completion = cmp.config.window.bordered(),
|
|
documentation = cmp.config.window.bordered(),
|
|
},
|
|
mapping = cmp.mapping.preset.insert({
|
|
['<S-PageUp>'] = cmp.mapping.scroll_docs(-4),
|
|
['<S-PageDown>'] = cmp.mapping.scroll_docs(4),
|
|
['<C-Space>'] = cmp.mapping.complete(),
|
|
['<C-e>'] = cmp.mapping.abort(),
|
|
['<Left>'] = cmp.mapping.abort(),
|
|
['<CR>'] = cmp.mapping.confirm({ select = false }),
|
|
['<Tab>'] = cmp.mapping(function(fallback)
|
|
if cmp.visible() then
|
|
cmp.select_next_item()
|
|
elseif luasnip.expandable() then
|
|
luasnip.expand()
|
|
elseif luasnip.expand_or_jumpable() then
|
|
luasnip.expand_or_jump()
|
|
else
|
|
fallback()
|
|
end
|
|
end),
|
|
['<S-Tab>'] = cmp.mapping(function(fallback)
|
|
if cmp.visible() then
|
|
cmp.select_prev_item()
|
|
elseif luasnip.jumpable(-1) then
|
|
luasnip.kump(-1)
|
|
else
|
|
fallback()
|
|
end
|
|
end)
|
|
}),
|
|
sources = cmp.config.sources({
|
|
{ name = 'nvim_lsp' },
|
|
{ name = 'luasnip' },
|
|
{ name = 'nvim_lsp_signature_help' },
|
|
}, {
|
|
{ name = 'buffer' },
|
|
})
|
|
})
|
|
|
|
-- set configuration for specific filetypes
|
|
cmp.setup.filetype('lua', {
|
|
sources = cmp.config.sources({
|
|
{ name = 'nvim_lsp' },
|
|
{ name = 'luasnip' },
|
|
{ name = 'nvim_lua' },
|
|
}, {
|
|
{ name = 'buffer' },
|
|
})
|
|
})
|
|
|
|
cmp.setup.filetype('gitcommit', {
|
|
sources = cmp.config.sources({
|
|
{ name = 'dictionary' }
|
|
}, {
|
|
{ name = 'buffer' }
|
|
})
|
|
})
|
|
|
|
-- Use buffer source for `/`
|
|
cmp.setup.cmdline('/', {
|
|
mapping = cmp.mapping.preset.cmdline(),
|
|
sources = {
|
|
{ name = 'buffer' }
|
|
}
|
|
})
|
|
|
|
-- Use cmdline & path source for ':'
|
|
cmp.setup.cmdline(':', {
|
|
mapping = cmp.mapping.preset.cmdline(),
|
|
sources = cmp.config.sources({
|
|
{ name = 'path' }
|
|
}, {
|
|
{ name = 'cmdline' }
|
|
})
|
|
})
|
|
|
|
require('cmp_dictionary').setup({
|
|
dic = {
|
|
['gitcommit'] =
|
|
vim.fn.stdpath('config') .. '/resources/git.dict',
|
|
}
|
|
})
|
|
end
|