diff --git a/.config/nvim/lua/kamu/plugins/completions.lua b/.config/nvim/lua/kamu/plugins/completions.lua new file mode 100644 index 0000000..53cd457 --- /dev/null +++ b/.config/nvim/lua/kamu/plugins/completions.lua @@ -0,0 +1,78 @@ +return { + { + 'L3MON4D3/LuaSnip', + dependencies = { + 'saadparwaiz1/cmp_luasnip', + 'rafamadriz/friendly-snippets', + }, + config = function() + require("luasnip.loaders.from_vscode").lazy_load() + end + }, + { + 'hrsh7th/nvim-cmp', + dependencies = { + 'hrsh7th/cmp-nvim-lsp', + 'hrsh7th/cmp-buffer', + -- 'hrsh7th/cmp-path', + -- 'hrsh7th/cmp-cmdline', + 'L3MON4D3/LuaSnip', + }, + config = function() + local cmp = require('cmp') + + cmp.setup({ + snippet = { + -- REQUIRED - you must specify a snippet engine + expand = function(args) + require('luasnip').lsp_expand(args.body) -- For `luasnip` users. + end, + }, + window = { + -- completion = cmp.config.window.bordered(), + -- documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.abort(), + [''] = cmp.mapping.confirm({ select = false }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + }, { + { name = 'buffer' }, + }) + }) + + -- Set configuration for specific filetype. + -- cmp.setup.filetype('gitcommit', { + -- sources = cmp.config.sources({ + -- { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). + -- }, { + -- { name = 'buffer' }, + -- }) + -- }) + + -- -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). + -- cmp.setup.cmdline({ '/', '?' }, { + -- mapping = cmp.mapping.preset.cmdline(), + -- sources = { + -- { name = 'buffer' } + -- } + -- }) + + -- -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). + -- cmp.setup.cmdline(':', { + -- mapping = cmp.mapping.preset.cmdline(), + -- sources = cmp.config.sources({ + -- { name = 'path' } + -- }, { + -- { name = 'cmdline' } + -- }) + -- }) + end + }, +}