DashNix/nvim/snippets/typst.lua

140 lines
2.3 KiB
Lua

local ls = require("luasnip")
-- some shorthands...
local s = ls.s
local i = ls.i
local t = ls.t
local d = ls.dynamic_node
local c = ls.choice_node
local f = ls.function_node
local sn = ls.snippet_node
local fmt = require("luasnip.extras.fmt").fmt
local rep = require("luasnip.extras").rep
local snippets, autosnippets = {}, {}
local group = vim.api.nvim_create_augroup("Tex Snippets", { clear = true })
local file_pattern = "*.typst"
------------------------------------------------- boilerplate end
-- snippers go here:
local colorSnippet = s(
"tx-",
fmt([[ #text({1})[{2}] ]], {
i(1, "color"),
i(2, "text"),
})
)
table.insert(snippets, colorSnippet)
local imageSnippet = s(
"image-",
fmt(
[[
#image("{1}", width: {2}%)
]],
{
i(1, "../../Screenshots/"),
i(2, "100"),
}
)
)
table.insert(snippets, imageSnippet)
local figureSnippet = s(
"figure-",
fmt(
[[
#align(
center, [#figure(
img("{1}", width: {2}%, extension: "{3}"), caption: [{4}],
)<{5}>],
)
]],
{
i(1, ""),
i(2, "100"),
i(3, "figures"),
i(4, ""),
i(5, ""),
}
)
)
table.insert(snippets, figureSnippet)
local centerImageSnippet = s(
"cimage-",
fmt(
[[
#align(center, [#image("{1}", width: {2}%)])
]],
{
i(1, "../../Screenshots"),
i(2, "100"),
}
)
)
table.insert(snippets, centerImageSnippet)
local colSnippet = s(
"col-",
fmt(
[[
#columns({1}, [{2}])
]],
{
i(1, "col-amount"),
i(2, "content"),
}
)
)
table.insert(snippets, colSnippet)
local codeSnippet = s(
"code-",
fmt(
[[
```{1}
{2}
```
]],
{
i(1, ""),
i(2, ""),
}
)
)
table.insert(snippets, codeSnippet)
local patternSnippet = s(
"pattern-",
fmt(
[[
#subsection([{1}])
#set text(size: 14pt)
*Problem* | {2}\
*Solution* | {3}\
#set text(size: 11pt)
{4}
#columns(2, [
#text(green)[Benefits]
- {5}
#colbreak()
#text(red)[Liabilities]
- {6}
])
]],
{
i(1, ""),
i(2, ""),
i(3, ""),
i(4, ""),
i(5, ""),
i(6, ""),
}
)
)
table.insert(snippets, patternSnippet)
------------------------------------------------- snippets end
return snippets, autosnippets