summaryrefslogtreecommitdiff
path: root/lua/lvim/core/luasnip.lua
blob: 4c869da6e722ae5350b130de4d7ea3915b33cc0b (plain)
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
local M = {}
local utils = require "lvim.utils"
local paths = {}

function M.gen_setup_snips()
  local ls = require "luasnip"
  local lua_snippets = {
    -- ls.parser.parse_snippet("cmp", utils.r_inspect_settings(lvim.builtin.cmp, "lvim.builtin.cmp", 10000, ".")),
    -- ls.parser.parse_snippet("lir", utils.r_inspect_settings(lvim.builtin.lir, "lvim.builtin.lir", 10000, ".")),
  }
  for i, v in pairs(lvim.builtin) do
    lua_snippets[#lua_snippets + 1] =
      ls.parser.parse_snippet("lvim.builtin." .. i, utils.r_inspect_settings(v, "lvim.builtin." .. i, 10000, "."))
  end
  ls.add_snippets("lua", lua_snippets)
end

function M.setup()
  if lvim.builtin.luasnip.sources.friendly_snippets then
    paths[#paths + 1] = utils.join_paths(get_runtime_dir(), "site", "pack", "lazy", "opt", "friendly-snippets")
  end
  local user_snippets = utils.join_paths(get_config_dir(), "snippets")
  if utils.is_directory(user_snippets) then
    paths[#paths + 1] = user_snippets
  end
  require("luasnip.loaders.from_lua").lazy_load()
  require("luasnip.loaders.from_vscode").lazy_load {
    paths = paths,
  }
  require("luasnip.loaders.from_snipmate").lazy_load()

  M.gen_setup_snips()
end

return M