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 = require("luasnip.extras.fmt").fmt local fmta = require("luasnip.extras.fmt").fmta 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(_, snippet) return snippet.env.TM_SELECTED_TEXT[1] or {} end, {}), }) ), }, }) ls.add_snippets(nil, { markdown = { snip( { trig = "fig", namr = "zola_figure", dscr = "Zola figure shortcode", }, fmta("{{ figure(src=\"img/\",\nthumb=\"_small\",\ncaption=\"\",\nalt=\"\"\n) }}", { src = insert(1), caption = insert(2), alt = insert(3), }) ), }, }) ls.add_snippets(nil, { markdown = { snip( { trig = "gal", namr = "zola_gallery", dscr = "Zola gallery shortcode", }, fmt("{{ gallery() }}\n\n\n{{ end() }}", { inner = insert(1), }) ), }, }) ls.add_snippets(nil, { markdown = { snip( { trig = "kbd", namr = "zola_keyboard", dscr = "Zola keyboard shortcode", }, fmt("{{ kbd(key=\"\") }}", { key = insert(1), }) ), }, })