nvim/.config/nvim/lua/plugins/completion/luasnip.lua

-- nvim/.config/nvim/lua/plugins/completion/luasnip.lua

return {
  "L3MON4D3/LuaSnip",
  version = "v2.*",
  build = "make install_jsregexp",
  dependencies = { "rafamadriz/friendly-snippets" },
  event = "InsertEnter",
  opts = {
    history = true,
    delete_check_events = "TextChanged",
    region_check_events = "CursorMoved",
    update_events = "TextChanged,TextChangedI",
    enable_autosnippets = true,
  },
  config = function(_, opts)
    local ls = require("luasnip")
    ls.setup(opts)
    require("luasnip.loaders.from_vscode").lazy_load()
    require("luasnip.loaders.from_vscode").lazy_load({
      paths = { vim.fn.stdpath("config") .. "/snippets" },
    })

    vim.keymap.set({ "i", "s" }, "<C-l>", function()
      if ls.choice_active() then ls.change_choice(1) end
    end, { desc = "luasnip next choice" })
  end,
}