nixos-config/home-manager/modules/neovim/snippets/tex/system.lua
2024-11-25 11:57:38 -05:00

192 lines
3.1 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
-- 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 {
-- ANNOTATE (custom command for annotating equation derivations)
s(
{ trig = "ann", snippetType = "autosnippet" },
fmta(
[[
\annotate{<>}{<>}
]],
{
i(1),
d(2, get_visual),
}
)
),
-- REFERENCE
s(
{ trig = " RR", snippetType = "autosnippet", wordTrig = false },
fmta(
[[
~\ref{<>}
]],
{
d(1, get_visual),
}
)
),
-- DOCUMENTCLASS
s(
{ trig = "dcc", snippetType = "autosnippet" },
fmta(
[=[
\documentclass[<>]{<>}
]=],
{
i(1, "a4paper"),
i(2, "article"),
}
),
{ condition = line_begin }
),
-- USE A LATEX PACKAGE
s(
{ trig = "pack", snippetType = "autosnippet" },
fmta(
[[
\usepackage{<>}
]],
{
d(1, get_visual),
}
),
{ condition = line_begin }
),
-- INPUT a LaTeX file
s(
{ trig = "inn", snippetType = "autosnippet" },
fmta(
[[
\input{<><>}
]],
{
i(1, "~/dotfiles/config/latex/templates/"),
i(2),
}
),
{ condition = line_begin }
),
-- LABEL
s(
{ trig = "lbl", snippetType = "autosnippet" },
fmta(
[[
\label{<>}
]],
{
d(1, get_visual),
}
)
),
-- HPHANTOM
s(
{ trig = "hpp", snippetType = "autosnippet" },
fmta(
[[
\hphantom{<>}
]],
{
d(1, get_visual),
}
)
),
s(
{ trig = "TODOO", snippetType = "autosnippet" },
fmta([[\TODO{<>}]], {
d(1, get_visual),
})
),
s(
{ trig = "nc" },
fmta([[\newcommand{<>}{<>}]], {
i(1),
i(2),
}),
{ condition = line_begin }
),
s(
{ trig = "sii", snippetType = "autosnippet" },
fmta([[\si{<>}]], {
i(1),
})
),
s(
{ trig = "qtt" },
fmta([[\qty{<>}{<>}]], {
i(1),
i(2),
})
),
-- URL
s(
{ trig = "url" },
fmta([[\url{<>}]], {
d(1, get_visual),
})
),
-- href command with URL in visual selection
s(
{ trig = "LU", snippetType = "autosnippet" },
fmta([[\href{<>}{<>}]], {
d(1, get_visual),
i(2),
})
),
-- href command with text in visual selection
s(
{ trig = "LL", snippetType = "autosnippet" },
fmta([[\href{<>}{<>}]], {
i(1),
d(2, get_visual),
})
),
-- HSPACE
s(
{ trig = "hss", snippetType = "autosnippet" },
fmta([[\hspace{<>}]], {
d(1, get_visual),
})
),
-- VSPACE
s(
{ trig = "vss", snippetType = "autosnippet" },
fmta([[\vspace{<>}]], {
d(1, get_visual),
})
),
-- SECTION
s(
{ trig = "h1", snippetType = "autosnippet" },
fmta([[\section{<>}]], {
d(1, get_visual),
})
),
-- SUBSECTION
s(
{ trig = "h2", snippetType = "autosnippet" },
fmta([[\subsection{<>}]], {
d(1, get_visual),
})
),
-- SUBSUBSECTION
s(
{ trig = "h3", snippetType = "autosnippet" },
fmta([[\subsubsection{<>}]], {
d(1, get_visual),
})
),
}