summaryrefslogtreecommitdiff
path: root/lua/plugins/core/luasnip.lua
blob: 37615786c97aeeba37a49ed5e3cb1b1a541417a3 (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
42
43
44
45
46
47
48
49
50
51
52
return {
   {
      "L3MON4D3/LuaSnip",
      dependencies = { "rafamadriz/friendly-snippets" },
      build = "make install_jsregexp",
      config = function()
         local ls = require("luasnip")
         local types = require("luasnip.util.types")

         ls.config.set_config({
            history = true,
            updateevents = "TextChanged,TextChangedI",
            enable_autosnippets = true,
            ext_opts = {
               [types.choiceNode] = {
                  active = {
                     virt_text = { { "<-", "Error" } },
                  },
               },
            },
         })

         -- luasnip keymaps are defined as cmp keymaps

         vim.keymap.set(
            "n",
            "<leader><leader>s",
            '<cmd>lua require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/lua/snippets" })<CR>'
         )

         require("luasnip.loaders.from_lua").lazy_load({
            paths = "~/.config/nvim/lua/snippets",
         })
      end,
   },

   -- VSCode like (JSON) snippets
   -- For the full list of supported languages see:
   -- https://github.com/rafamadriz/friendly-snippets/blob/main/package.json
   {
      "rafamadriz/friendly-snippets",
      opts = { include = {} },
      config = function(_, opts)
         if #opts.include == 0 then
            return
         end

         opts.path = "~/.local/share/nvim/lazy/friendly-snippets"
         require("luasnip.loaders.from_vscode").lazy_load(opts)
      end,
   },
}