summaryrefslogtreecommitdiff
path: root/lua/plugins/autocompletion.lua
diff options
context:
space:
mode:
authorDavid Luevano Alvarado <david@luevano.xyz>2023-06-04 01:23:39 -0600
committerDavid Luevano Alvarado <david@luevano.xyz>2023-06-04 01:23:39 -0600
commit7697c03eba943b8512e8e24583c0c17f9ef02aa9 (patch)
tree9372e7e792249a77a439e72898bca07b560039ca /lua/plugins/autocompletion.lua
parent87354704f0eefa327f676d38fc3fdf9eb2bcfb9c (diff)
finish separating up the plugins, in general
Diffstat (limited to 'lua/plugins/autocompletion.lua')
-rw-r--r--lua/plugins/autocompletion.lua49
1 files changed, 48 insertions, 1 deletions
diff --git a/lua/plugins/autocompletion.lua b/lua/plugins/autocompletion.lua
index 333c4fe..1ba7ead 100644
--- a/lua/plugins/autocompletion.lua
+++ b/lua/plugins/autocompletion.lua
@@ -2,11 +2,58 @@ return {
'hrsh7th/nvim-cmp',
dependencies = {
-- Snippet Engine & its associated nvim-cmp source
- 'L3MON4D3/LuaSnip',
+ { 'L3MON4D3/LuaSnip', opts = {} },
'saadparwaiz1/cmp_luasnip',
-- Adds LSP completion capabilities
'hrsh7th/cmp-nvim-lsp',
-- Adds a number of user-friendly snippets
'rafamadriz/friendly-snippets',
},
+ config = function()
+ local cmp = require('cmp')
+ local luasnip = require('luasnip')
+ require('luasnip.loaders.from_vscode').lazy_load()
+ -- luasnip.config.setup {}
+
+ cmp.setup {
+ snippet = {
+ expand = function(args)
+ luasnip.lsp_expand(args.body)
+ end,
+ },
+ mapping = cmp.mapping.preset.insert {
+ ['<C-n>'] = cmp.mapping.select_next_item(),
+ ['<C-p>'] = cmp.mapping.select_prev_item(),
+ ['<C-d>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-Space>'] = cmp.mapping.complete {},
+ ['<CR>'] = cmp.mapping.confirm {
+ behavior = cmp.ConfirmBehavior.Replace,
+ select = true,
+ },
+ ['<Tab>'] = cmp.mapping(function(fallback)
+ if cmp.visible() then
+ cmp.select_next_item()
+ elseif luasnip.expand_or_locally_jumpable() then
+ luasnip.expand_or_jump()
+ else
+ fallback()
+ end
+ end, { 'i', 's' }),
+ ['<S-Tab>'] = cmp.mapping(function(fallback)
+ if cmp.visible() then
+ cmp.select_prev_item()
+ elseif luasnip.locally_jumpable(-1) then
+ luasnip.jump(-1)
+ else
+ fallback()
+ end
+ end, { 'i', 's' }),
+ },
+ sources = {
+ { name = 'nvim_lsp' },
+ { name = 'luasnip' },
+ },
+ }
+ end,
}