local types = require("luasnip.util.types") ls = require("luasnip") --vim.cmd("hi link LuasnipSnippetActive GruvboxRed") ls.config.setup({ history = true, update_events = "InsertLeave", enable_autosnippets = true, region_check_events = "CursorHold,InsertLeave", delete_check_events = "TextChanged,InsertEnter", store_selection_keys = "", ext_opts = { [types.choiceNode] = { active = { virt_text = {{"●", "GruvboxOrange"}}, priority = 0 }, }, }, ft_func = require("luasnip.extras.filetype_functions").from_pos_or_filetype, load_ft_func = require("luasnip.extras.filetype_functions").extend_load_ft({ markdown = {"lua", "json"} }), snip_env = { s = ls.s, sn = ls.sn, t = ls.t, i = ls.i, f = function(func, argnodes, ...) return ls.f(function(args, imm_parent, user_args) return func(args, imm_parent.snippet, user_args) end, argnodes, ...) end, -- override to enable restore_cursor. c = function(pos, nodes, opts) opts = opts or {} opts.restore_cursor = true return ls.c(pos, nodes, opts) end, d = function(pos, func, argnodes, ...) return ls.d(pos, function(args, imm_parent, old_state, ...) return func(args, imm_parent.snippet, old_state, ...) end, argnodes, ...) end, isn = require("luasnip.nodes.snippet").ISN, l = require'luasnip.extras'.lambda, dl = require'luasnip.extras'.dynamic_lambda, rep = require'luasnip.extras'.rep, r = ls.restore_node, p = require("luasnip.extras").partial, types = require("luasnip.util.types"), events = require("luasnip.util.events"), util = require("luasnip.util.util"), fmt = require("luasnip.extras.fmt").fmt, fmta = require("luasnip.extras.fmt").fmta, ls = ls, ins_generate = function(nodes) return setmetatable(nodes or {}, { __index = function(table, key) local indx = tonumber(key) if indx then local val = ls.i(indx) rawset(table, key, val) return val end end}) end, parse = ls.extend_decorator.apply(ls.parser.parse_snippet, {}, {dedent = true, trim_empty = true}), n = require("luasnip.extras").nonempty, m = require("luasnip.extras").match, ai = require("luasnip.nodes.absolute_indexer"), postfix = require("luasnip.extras.postfix").postfix, conds = require("luasnip.extras.expand_conditions") } }) -- require("luasnip.util.log").set_loglevel("info") ls.filetype_extend("latex", {"tex"}) ls.filetype_extend("glsl", {"c"}) vim.cmd [[command! LuaSnipEdit :lua require("plugins.luasnip.ft_edit")()]] vim.cmd [[ inoremap lua ls.expand() inoremap lua ls.jump(1) inoremap lua ls.jump(-1) snoremap lua ls.jump(1) snoremap lua ls.jump(-1) imap luasnip#choice_active() ? 'luasnip-next-choice' : '' smap luasnip#choice_active() ? 'luasnip-next-choice' : '' imap luasnip#choice_active() ? 'luasnip-prev-choice' : '' smap luasnip#choice_active() ? 'luasnip-prev-choice' : '' ]] require("luasnip.loaders.from_lua").lazy_load() require("luasnip.loaders.from_lua").load({paths = {vim.fn.getcwd() .. "/.luasnippets/"}}) require("plugins.luasnip.external_update_dynamic_node")