local helpers = require('personal.luasnip-helper-funcs') local get_visual = helpers.get_visual local line_begin = require("luasnip.extras.expand_conditions").line_begin -- Environment/syntax 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 tex.in_tikz = function() local is_inside = vim.fn['vimtex#env#is_inside']("tikzpicture") return (is_inside[1] > 0 and is_inside[2] > 0) end -- Return snippet tables return { s({trig="q"}, { t("\\quad "), } ), s({trig="qq", snippetType="autosnippet"}, { t("\\qquad "), } ), s({trig="npp", snippetType="autosnippet"}, { t({"\\newpage", ""}), }, {condition = line_begin} ), s({trig="which", snippetType="autosnippet"}, { t("\\text{ for which } "), }, {condition = tex.in_mathzone} ), s({trig="all", snippetType="autosnippet"}, { t("\\text{ for all } "), }, {condition = tex.in_mathzone} ), s({trig="and", snippetType="autosnippet"}, { t("\\quad \\text{and} \\quad"), }, {condition = tex.in_mathzone} ), s({trig="forall", snippetType="autosnippet"}, { t("\\text{ for all } "), }, {condition = tex.in_mathzone} ), s({trig = "toc", snippetType="autosnippet"}, { t("\\tableofcontents"), }, { condition = line_begin } ), s({trig="inff", snippetType="autosnippet"}, { t("\\infty"), } ), s({trig="ii", snippetType="autosnippet"}, { t("\\item "), }, { condition = line_begin } ), s({trig = "--", snippetType="autosnippet"}, {t('% --------------------------------------------- %')}, {condition = line_begin} ), -- HLINE WITH EXTRA VERTICAL SPACE s({trig = "hl"}, {t('\\hline {\\rule{0pt}{2.5ex}} \\hspace{-7pt}')}, {condition = line_begin} ), }