local ls = require("luasnip") -- some shorthands... local snip = ls.snippet local node = ls.snippet_node local text = ls.text_node local insert = ls.insert_node local func = ls.function_node local fmt = luasnip.extras.fmt.fmt local choice = ls.choice_node local dynamicn = ls.dynamic_node ls.add_snippets(nil, { markdown = { snip( { trig = "link", namr = "markdown_link", dscr = "Create markdown link [txt](url)", }, fmt("[{txt}]({url})", { txt = insert(1), url = func(function(_, snip) return snip.env.TM_SELECTED_TEXT[1] or {} end, {}), }) ), }, }) -- snippet fig "Hugo Figure" -- {{< figure link="img/$1.jpg" thumb="_small" -- caption="$2" -- caption-position="bottom">}} -- $0 -- endsnippet -- -- snippet gal "Hugo Gallery" -- {{< gallery hover-effect="none" caption-effect="none" >}} -- -- {{< figure link="img/$1.jpg" thumb="_small" -- caption="$2" -- caption-position="bottom">}} -- -- $3 -- {{< /gallery >}} -- $0 -- endsnippet -- -- snippet kbd "Keyboard" -- {{}>}}$0 -- endsnippet