40 lines
		
	
	
		
			870 B
		
	
	
	
		
			Lua
		
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			870 B
		
	
	
	
		
			Lua
		
	
	
local ls = require("luasnip")
 | 
						|
local s = ls.snippet
 | 
						|
local i = ls.insert_node
 | 
						|
local d = ls.dynamic_node
 | 
						|
local sn = ls.snippet_node
 | 
						|
local fmta = require("luasnip.extras.fmt").fmta
 | 
						|
 | 
						|
-- Taken from https://ejmastnak.com/tutorials/vim-latex/luasnip/#anatomy
 | 
						|
local get_visual = function(_, parent)
 | 
						|
  if #parent.snippet.env.LS_SELECT_RAW > 0 then
 | 
						|
    return sn(nil, i(1, parent.snippet.env.LS_SELECT_RAW))
 | 
						|
  else
 | 
						|
    return sn(nil, i(1))
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
return {
 | 
						|
  s(
 | 
						|
    { trig = "^h", regTrig = true, dscr = "Markdown header" },
 | 
						|
    fmta("# <><>", {
 | 
						|
      d(1, get_visual),
 | 
						|
      i(0),
 | 
						|
    })
 | 
						|
  ),
 | 
						|
  s(
 | 
						|
    { trig = "^sec", regTrig = true, dscr = "Markdown header" },
 | 
						|
    fmta("## <><>", {
 | 
						|
      d(1, get_visual),
 | 
						|
      i(0),
 | 
						|
    })
 | 
						|
  ),
 | 
						|
  s(
 | 
						|
    { trig = "^ssec", regTrig = true, dscr = "Markdown header" },
 | 
						|
    fmta("### <><>", {
 | 
						|
      d(1, get_visual),
 | 
						|
      i(0),
 | 
						|
    })
 | 
						|
  ),
 | 
						|
}
 |