diff options
author | David Luevano Alvarado <david@luevano.xyz> | 2023-06-04 01:23:39 -0600 |
---|---|---|
committer | David Luevano Alvarado <david@luevano.xyz> | 2023-06-04 01:23:39 -0600 |
commit | 7697c03eba943b8512e8e24583c0c17f9ef02aa9 (patch) | |
tree | 9372e7e792249a77a439e72898bca07b560039ca /lua/plugins/autocompletion.lua | |
parent | 87354704f0eefa327f676d38fc3fdf9eb2bcfb9c (diff) |
finish separating up the plugins, in general
Diffstat (limited to 'lua/plugins/autocompletion.lua')
-rw-r--r-- | lua/plugins/autocompletion.lua | 49 |
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, } |