58 lines
1.8 KiB
Lua
58 lines
1.8 KiB
Lua
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 }),
|
|
}
|