aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/lua/autocomplete.lua
diff options
context:
space:
mode:
authorAlec Goncharow <alec@goncharow.dev>2023-02-25 15:06:03 -0600
committerAlec Goncharow <alec@goncharow.dev>2023-02-25 15:06:03 -0600
commitb206ad38f081bee85660eeb5047c8f6865c50478 (patch)
tree363ce2bf62798bed76889da3ca3bf746d2ff6b0e /.config/nvim/lua/autocomplete.lua
parent0c446121ba1f1653a0d984068209429e8cc453fb (diff)
It works?
Diffstat (limited to '.config/nvim/lua/autocomplete.lua')
-rw-r--r--.config/nvim/lua/autocomplete.lua72
1 files changed, 51 insertions, 21 deletions
diff --git a/.config/nvim/lua/autocomplete.lua b/.config/nvim/lua/autocomplete.lua
index 5213258..1f8798d 100644
--- a/.config/nvim/lua/autocomplete.lua
+++ b/.config/nvim/lua/autocomplete.lua
@@ -1,22 +1,52 @@
-local cmp = require("cmp")
+ -- Set up nvim-cmp.
+ local cmp = require'cmp'
+
+ cmp.setup({
+ snippet = {
+ -- REQUIRED - you must specify a snippet engine
+ expand = function(args)
+ vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
+ -- require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
+ -- require('snippy').expand_snippet(args.body) -- For `snippy` users.
+ -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users.
+ end,
+ },
+ window = {
+ -- completion = cmp.config.window.bordered(),
+ -- documentation = cmp.config.window.bordered(),
+ },
+ mapping = cmp.mapping.preset.insert({
+ ['<C-b>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-Space>'] = cmp.mapping.complete(),
+ ['<C-e>'] = cmp.mapping.abort(),
+ ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
+ }),
+ sources = cmp.config.sources({
+ { name = 'nvim_lsp' },
+ { name = 'vsnip' }, -- For vsnip users.
+ -- { name = 'luasnip' }, -- For luasnip users.
+ -- { name = 'ultisnips' }, -- For ultisnips users.
+ -- { name = 'snippy' }, -- For snippy users.
+ }, {
+ { name = 'buffer' },
+ })
+ })
+
+ -- Set configuration for specific filetype.
+ cmp.setup.filetype('gitcommit', {
+ sources = cmp.config.sources({
+ { name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it.
+ }, {
+ { 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' }
+ }
+ })
-cmp.setup({
- mapping = cmp.mapping.preset.insert({ -- Preset: ^n, ^p, ^y, ^e, you know the drill..
- ["<C-d>"] = cmp.mapping.scroll_docs(-4),
- ["<C-f>"] = cmp.mapping.scroll_docs(4),
- }),
- snippet = {
- expand = function(args)
- require("luasnip").lsp_expand(args.body)
- end,
- },
- sources = cmp.config.sources({
- { name = "nvim_lsp" },
- { name = "nvim_lsp_signature_help" },
- { name = "nvim_lua" },
- { name = "luasnip" },
- { name = "path" },
- }, {
- { name = "buffer", keyword_length = 3 },
- }),
-})