local helpers = require('personal.luasnip-helper-funcs') local get_visual = helpers.get_visual -- Math context detection local tex = {} tex.in_mathzone = function() return vim.fn['vimtex#syntax#in_mathzone']() == 1 end tex.in_text = function() return not tex.in_mathzone() end -- Return snippet tables return { -- LEFT/RIGHT PARENTHESES s({trig = "([^%a])l%(", regTrig = true, wordTrig = false, snippetType="autosnippet"}, fmta( "<>\\left(<>\\right)", { f( function(_, snip) return snip.captures[1] end ), d(1, get_visual), } ) ), -- LEFT/RIGHT SQUARE BRACES s({trig = "([^%a])l%[", regTrig = true, wordTrig = false, snippetType="autosnippet"}, fmta( "<>\\left[<>\\right]", { f( function(_, snip) return snip.captures[1] end ), d(1, get_visual), } ) ), -- LEFT/RIGHT CURLY BRACES s({trig = "([^%a])l%{", regTrig = true, wordTrig = false, snippetType="autosnippet"}, fmta( "<>\\left\\{<>\\right\\}", { f( function(_, snip) return snip.captures[1] end ), d(1, get_visual), } ) ), -- BIG PARENTHESES s({trig = "([^%a])b%(", regTrig = true, wordTrig = false, snippetType="autosnippet"}, fmta( "<>\\big(<>\\big)", { f( function(_, snip) return snip.captures[1] end ), d(1, get_visual), } ) ), -- BIG SQUARE BRACES s({trig = "([^%a])b%[", regTrig = true, wordTrig = false, snippetType="autosnippet"}, fmta( "<>\\big[<>\\big]", { f( function(_, snip) return snip.captures[1] end ), d(1, get_visual), } ) ), -- BIG CURLY BRACES s({trig = "([^%a])b%{", regTrig = true, wordTrig = false, snippetType="autosnippet"}, fmta( "<>\\big\\{<>\\big\\}", { f( function(_, snip) return snip.captures[1] end ), d(1, get_visual), } ) ), -- ESCAPED CURLY BRACES s({trig = "([^%a])\\%{", regTrig = true, wordTrig = false, snippetType="autosnippet", priority=2000}, fmta( "<>\\{<>\\}", { f( function(_, snip) return snip.captures[1] end ), d(1, get_visual), } ) ), -- LATEX QUOTATION MARK s({trig = "``", snippetType="autosnippet"}, fmta( "``<>''", { d(1, get_visual), } ) ), }