aboutsummaryrefslogtreecommitdiffstats
path: root/nvim-primeagen/after/plugin/cmp.lua
blob: a85ee9bb3856b589519b14f541fd15b13c3855db (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
local cmp = require("cmp")
local luasnip = require("luasnip")

cmp.setup({
    snippet = {
        expand = function(args)
            luasnip.lsp_expand(args.body) -- For luasnip users
        end,
    },
    sources = {
        { name = "luasnip" },
        { name = "path" },
    },
    mapping = {
        ["<Tab>"] = cmp.mapping(function(fallback)
        if cmp.visible() then
            cmp.select_next_item()
          -- they way you will only jump inside the snippet region
          -- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable() 
          elseif luasnip.expand_or_jumpable() then
            luasnip.expand_or_jump()
          elseif has_words_before() then
            cmp.complete()
          else
            fallback()
          end
        end, { "i", "s" }),

        ["<S-Tab>"] = cmp.mapping(function(fallback)
          if cmp.visible() then
            cmp.select_prev_item()
          elseif luasnip.jumpable(-1) then
            luasnip.jump(-1)
          else
            fallback()
          end
        end, { "i", "s" }),

        -- ... Your other mappings ...
  },
})