|
| 1 | +-- Snippets for LaTeX Commands |
| 2 | +local ls = require("luasnip") |
| 3 | +local s = ls.snippet |
| 4 | +local sn = ls.snippet_node |
| 5 | +local isn = ls.indent_snippet_node |
| 6 | +local t = ls.text_node |
| 7 | +local i = ls.insert_node |
| 8 | +local f = ls.function_node |
| 9 | +local c = ls.choice_node |
| 10 | +local d = ls.dynamic_node |
| 11 | +local r = ls.restore_node |
| 12 | +local events = require("luasnip.util.events") |
| 13 | +local ai = require("luasnip.nodes.absolute_indexer") |
| 14 | +local extras = require("luasnip.extras") |
| 15 | +local l = extras.lambda |
| 16 | +local rep = extras.rep |
| 17 | +local p = extras.partial |
| 18 | +local m = extras.match |
| 19 | +local n = extras.nonempty |
| 20 | +local dl = extras.dynamic_lambda |
| 21 | +local fmt = require("luasnip.extras.fmt").fmt |
| 22 | +local fmta = require("luasnip.extras.fmt").fmta |
| 23 | +local conds = require("luasnip.extras.expand_conditions") |
| 24 | +local postfix = require("luasnip.extras.postfix").postfix |
| 25 | +local types = require("luasnip.util.types") |
| 26 | +local parse = require("luasnip.util.parser").parse_snippet |
| 27 | +local ms = ls.multi_snippet |
| 28 | +local autosnippet = ls.extend_decorator.apply(s, { snippetType = "autosnippet" }) |
| 29 | +local tex = require("luasnip-latex-snippets.luasnippets.tex.utils").conditions |
| 30 | + |
| 31 | +local reference_snippet_table = { |
| 32 | + a = "auto", |
| 33 | + c = "c", |
| 34 | + C = "C", |
| 35 | + e = "eq", |
| 36 | + r = "" |
| 37 | +} |
| 38 | + |
| 39 | +return { |
| 40 | + --[ |
| 41 | + -- Labels/References |
| 42 | + --] |
| 43 | + -- personally perfer \label{type:number/value} |
| 44 | + autosnippet({ trig='alab', name='label', dscr='add a label'}, |
| 45 | + fmta([[ |
| 46 | + \label{<>:<>} |
| 47 | + ]], |
| 48 | + { i(1), i(0) }), |
| 49 | + { condition = tex.in_text, show_condition = tex.in_text }), |
| 50 | + |
| 51 | + autosnippet({ trig='([acCer])ref', name='(acC|eq)?ref', dscr='add a reference (with autoref, cref, eqref)', regTrig = true, hidden = true}, |
| 52 | + fmta([[ |
| 53 | + \<>ref{<>:<>} |
| 54 | + ]], |
| 55 | + { f(function (_, snip) |
| 56 | + return reference_snippet_table[snip.captures[1]] |
| 57 | + end), |
| 58 | + i(1), i(0) }) |
| 59 | + { condition = tex.in_text, show_condition = tex.in_text }), |
| 60 | +} |
0 commit comments