local ls = require("luasnip")
-- some shorthands...
local s = ls.snippet
local sn = ls.snippet_node
local t = ls.text_node
local i = ls.insert_node
local f = ls.function_node
local c = ls.choice_node
local d = ls.dynamic_node
local types = require("luasnip.util.types")
require("luasnip.loaders.from_vscode").load({include = {"typescript", "javascript", "html"}})
-- Every unspecified option will be set to the default.
ls.config.set_config(
{
history = true,
-- Update more often, :h events for more info.
updateevents = "TextChanged,TextChangedI",
ext_opts = {
[types.choiceNode] = {
active = {
virt_text = {{"choiceNode", "Comment"}}
}
}
},
-- treesitter-hl has 100, use something higher (default is 200).
ext_base_prio = 300,
-- minimal increase in priority.
ext_prio_increase = 1,
enable_autosnippets = true
}
)
ls.add_snippets("all", {
s({trig = "b(%d)", regTrig = true, wordTrig = true}, {
f(function(args) return {"Captured Text: " .. args[1].captures[1] .. "."} end, {}),
i(0)
})
})
ls.add_snippets("svelte",{
s("slt",{
t('")
}),
s("sc",{
t('")
})
})
ls.add_snippets("typescript",{
s("sget",{
t('export async function get({'),
i(1,"params"),
t("}) {"),
i(2),
t("}"),
})
})