]> Arthur Taft Gitweb - nvim.git/blob - lua/plugins/cmp.lua
Change tab indent to 4 spaces
[nvim.git] / lua / plugins / cmp.lua
1 return {
2   {
3     "hrsh7th/nvim-cmp",
4     dependencies = {
5       "hrsh7th/cmp-nvim-lsp","hrsh7th/cmp-path","hrsh7th/cmp-buffer",
6       "L3MON4D3/LuaSnip","saadparwaiz1/cmp_luasnip","rafamadriz/friendly-snippets",
7     },
8     config = function()
9       local cmp = require("cmp")
10       local luasnip = require("luasnip")
11       require("luasnip.loaders.from_vscode").lazy_load()
12
13       cmp.setup({
14         snippet = { expand = function(args) luasnip.lsp_expand(args.body) end },
15         mapping = cmp.mapping.preset.insert({
16           ["<C-Space>"] = cmp.mapping.complete(),
17           ["<CR>"] = cmp.mapping.confirm({ select = true }),
18           ["<Tab>"] = cmp.mapping(function(fb)
19             if cmp.visible() then cmp.select_next_item()
20             elseif luasnip.expand_or_jumpable() then luasnip.expand_or_jump()
21             else fb() end
22           end, { "i","s" }),
23           ["<S-Tab>"] = cmp.mapping(function(fb)
24             if cmp.visible() then cmp.select_prev_item()
25             elseif luasnip.jumpable(-1) then luasnip.jump(-1)
26             else fb() end
27           end, { "i","s" }),
28         }),
29         sources = { {name="nvim_lsp"},{name="path"},{name="buffer"},{name="luasnip"} },
30       })
31     end,
32   },
33 }