summaryrefslogtreecommitdiff
path: root/nvim/snips/tex/expressions.lua
diff options
context:
space:
mode:
authorottjk <joshott16@gmail.com>2023-12-30 19:23:04 -0500
committerottjk <joshott16@gmail.com>2023-12-30 19:23:04 -0500
commited46f1c5e82709417085b1a3b7708b209c5f4bfe (patch)
treed7eb3f2b4b00e75e5f10199e1cbff959c355b312 /nvim/snips/tex/expressions.lua
downloaddotfiles-ed46f1c5e82709417085b1a3b7708b209c5f4bfe.tar.gz
dotfiles-ed46f1c5e82709417085b1a3b7708b209c5f4bfe.zip
initial commit
Diffstat (limited to 'nvim/snips/tex/expressions.lua')
-rw-r--r--nvim/snips/tex/expressions.lua211
1 files changed, 211 insertions, 0 deletions
diff --git a/nvim/snips/tex/expressions.lua b/nvim/snips/tex/expressions.lua
new file mode 100644
index 0000000..2bb6d29
--- /dev/null
+++ b/nvim/snips/tex/expressions.lua
@@ -0,0 +1,211 @@
+local n = require("luasnip-nodes")
+local h = require("luasnip-helpers")
+
+local closer = function (open)
+ if open == "(" then
+ return ")"
+ elseif open == "\\{" then
+ return "\\}"
+ elseif open == "{" then
+ return "}"
+ elseif open == "[" then
+ return "]"
+ elseif open == "|" then
+ return "|"
+ elseif open == "\\langle" then
+ return "\\rangle"
+ else
+ return nil
+ end
+end
+
+local parens = function(_, parent)
+ local open = parent.captures[1]
+
+ if open == "{" then open = "\\{" end
+ if open == "'a" then open = "\\langle" end
+
+ local node = n.sn(1,
+ n.fmta("\\left<> <> \\right<>",
+ { n.t(open), n.i(1), n.t(closer(open)) })
+ )
+ return node
+end
+
+return {
+ n.s({trig="'{", snippetType="autosnippet"},
+ n.fmta("\\{ <> \\}", { n.i(1) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig=[[\\left([\(\[\{|]|'a)]], trigEngine="ecma", wordTrig=false, snippetType="autosnippet"},
+ { n.d(1, parens) },
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="'lf", snippetType="autosnippet"},
+ { n.t("\\left") },
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="'ang", snippetType="autosnippet"},
+ n.fmta("\\langle <> \\rangle", { n.i(1) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="dsum", snippetType="autosnippet", priority=200},
+ n.fmta("\\sum_{<>=<>}^{<>}",
+ { n.i(1), n.i(2), n.i(3) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="sum", snippetType="autosnippet", priority=100},
+ { n.t("\\sum") },
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="od", snippetType="autosnippet"},
+ n.fmta("\\od[]{<>}{<>}",
+ { n.i(1), n.i(2) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="oD", snippetType="autosnippet"},
+ n.fmta("\\od[<>]{<>}{<>}",
+ { n.i(1), n.i(2), n.i(3) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="pd", snippetType="autosnippet"},
+ n.fmta("\\pd[]{<>}{<>} ",
+ { n.i(1), n.i(2) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="pD", snippetType="autosnippet"},
+ n.fmta("\\pd[<>]{<>}{<>} ",
+ { n.i(1), n.i(2), n.i(3) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="dint", snippetType="autosnippet", priority=200},
+ n.fmta("\\int_{<>}^{<>}",
+ { n.i(1, "-\\infty"), n.i(2, "\\infty") }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="int", snippetType="autosnippet", priority=100},
+ { n.t("\\int") },
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="oint", snippetType="autosnippet", priority=100},
+ { n.t("\\oint") },
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="doint", snippetType="autosnippet", priority=200},
+ n.fmta("\\oint_{<>}^{<>}",
+ { n.i(1), n.i(2) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="df", wordTrig=false, snippetType="autosnippet"},
+ { n.t("\\diff") },
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="pf", wordTrig=false, snippetType="autosnippet"},
+ { n.t("\\pdiff") },
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig = "tii", snippetType="autosnippet"},
+ n.fmta("\\textit{<>}",
+ { n.d(1, h.get_visual) }),
+ { condition = h.in_text }
+ ),
+ n.s({trig = "tbb", snippetType="autosnippet"},
+ n.fmta("\\textbf{<>}",
+ { n.d(1, h.get_visual) }),
+ { condition = h.in_text }
+ ),
+ n.s({trig = "xb", snippetType="autosnippet"},
+ n.fmta("\\text{\\textbf{<>}}",
+ { n.d(1, h.get_visual) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig = "tuu", snippetType="autosnippet"},
+ n.fmta("\\underline{<>}",
+ { n.d(1, h.get_visual) }),
+ { condition = h.in_text }
+ ),
+ n.s({trig = "=", snippetType="autosnippet"},
+ { n.t("\\item ") },
+ { condition = h.in_itemize * h.line_begin }
+ ),
+ n.s({trig = "=", snippetType="autosnippet"},
+ { n.t("\\item ") },
+ { condition = h.in_enumerate * h.line_begin }
+ ),
+ n.s({trig = "ceil", snippetType="autosnippet"},
+ n.fmta("\\left\\lceil <> \\right\\rceil",
+ { n.i(1) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig = "floor", snippetType="autosnippet"},
+ n.fmta("\\left\\lfloor <> \\right\\rfloor",
+ { n.i(1) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="sr", snippetType="autosnippet", wordTrig=false},
+ { n.t("^2") },
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="cb", snippetType="autosnippet", wordTrig=false},
+ { n.t("^3") },
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="tf", snippetType="autosnippet", wordTrig=false},
+ n.fmta("^{<>}",
+ { n.i(1) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig = "rf", wordTrig=false, snippetType="autosnippet"},
+ n.fmta("_{<>}",
+ { n.i(1) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig="vm", snippetType="autosnippet"},
+ n.fmta("$<>$",
+ { n.i(1) }),
+ { condition = h.in_text }
+ ),
+ n.s({trig="dm", snippetType="autosnippet"},
+ n.fmta(
+ [[
+ \[
+ <>
+ \]
+ <>
+ ]],
+ { n.i(1), n.i(0) }),
+ { condition = h.in_text }
+ ),
+ n.s({trig=[[([A-Za-z])(\d)]], trigEngine="ecma", wordTrig=false, snippetType="autosnippet", priority=100},
+ n.fmta("<>_<>",
+ { n.f(function(_, parent) return parent.captures[1] end),
+ n.f(function(_, parent) return parent.captures[2] end) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig=[[([A-Za-z])_(\d{2})]], trigEngine="ecma", wordTrig=false, snippetType="autosnippet"},
+ n.fmta("<>_{<>}",
+ { n.f(function(_, parent) return parent.captures[1] end),
+ n.f(function(_, parent) return parent.captures[2] end) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig = "tx", snippetType="autosnippet"},
+ n.fmta("\\text{<>}",
+ { n.i(1) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig = "sq", snippetType="autosnippet"},
+ n.fmta("\\sqrt{<>}",
+ { n.d(1, h.get_visual) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig = "map", snippetType="autosnippet"},
+ n.fmta("<> : <> \\to <>",
+ { n.i(1), n.i(2), n.i(0) }),
+ { condition = h.in_mathzone }
+ ),
+ n.s({trig = "eval", snippetType="autosnippet"},
+ n.fmta("\\eval{<>}",
+ { n.d(1, h.get_visual) }),
+ { condition = h.in_mathzone }
+ ),
+}