Skip to content

Commit f5d6e7b

Browse files
committed
test?
1 parent 21814ca commit f5d6e7b

File tree

4 files changed

+115
-0
lines changed

4 files changed

+115
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
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+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
--[
2+
-- LuaSnip Conditions
3+
--]
4+
5+
local M = {}
6+
7+
-- math / not math zones
8+
9+
function M.in_math()
10+
return vim.api.nvim_eval("vimtex#syntax#in_mathzone()") == 1
11+
end
12+
13+
-- comment detection
14+
function M.in_comment()
15+
return vim.fn["vimtex#syntax#in_comment"]() == 1
16+
end
17+
18+
-- document class
19+
function M.in_beamer()
20+
return vim.b.vimtex["documentclass"] == "beamer"
21+
end
22+
23+
-- general env function
24+
local function env(name)
25+
local is_inside = vim.fn["vimtex#env#is_inside"](name)
26+
return (is_inside[1] > 0 and is_inside[2] > 0)
27+
end
28+
29+
function M.in_preamble()
30+
return not env("document")
31+
end
32+
33+
function M.in_text()
34+
return env("document") and not M.in_math()
35+
end
36+
37+
function M.in_tikz()
38+
return env("tikzpicture")
39+
end
40+
41+
function M.in_bullets()
42+
return env("itemize") or env("enumerate")
43+
end
44+
45+
function M.in_align()
46+
return env("align") or env("align*") or env("aligned")
47+
end
48+
49+
return M
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
local M = {}
2+
3+
M.conditions = require("luasnip-latex-snippets.luasnippets.tex.utils.conditions")
4+
M.scaffolding = require("luasnip-latex-snippets.luasnippets.tex.utils.scaffolding")
5+
6+
return M

lua/luasnip-latex-snippets/luasnippets/tex/utils/scaffolding.lua

Whitespace-only changes.

0 commit comments

Comments
 (0)