t0vim/lua/custom/snippets/markdown.lua

112 lines
2.5 KiB
Lua

require("luasnip.session.snippet_collection").clear_snippets "markdown"
local ls = require "luasnip"
local s = ls.snippet
local t = ls.text_node
local c = ls.choice_node
local i = ls.insert_node
local f = ls.function_node
local fmt = require("luasnip.extras.fmt").fmt
ls.add_snippets(
"markdown",
{
s({ trig = "imh", dscr = "Insert markdown task heading" },
fmt(
[==[
→ [[#{} ✗]]
]==],
{
i(0),
}
)
),
s("link", {
t("["), i(1, "description"), t("]("),
f(function()
local clip = vim.fn.getreg("+")
if clip == "" then
return "url"
end
return clip
end),
t(")"), i(0),
}),
s({ trig = "ics", dscr = "Insert code snippet" },
fmt(
[[
```{}
{}
```
]],
{
c(1, { t "python", t "bash", t "", t "swift", t "c" }),
i(2),
}
)
),
s({ trig = "iq", dscr = "Insert question" },
fmt(
[[
┏━━━━━━━━━━━━━━ Question ✗ ━━━━━━━━━━━━━━━
**Question**
{}
**Answer**:
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
]],
{
i(0),
}
)
),
s({ trig = "ip", dscr = "Insert problem" },
fmt(
[[
┏━━━━━━━━━━━━━━ Problem ✗ ━━━━━━━━━━━━━━━
**Problem**:
{}
**Solution**:
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
]],
{
i(0),
}
)
),
s({ trig = "isn", dscr = "Insert side notes" },
fmt(
[[
┏━━━━━━━━━━ Замтеки на полях ━━━━━━━━━━━
**Тема**: {}
{}
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
]],
{
i(1),
i(2),
}
)
),
s({ trig = "ip", dscr = "Insert side notes" },
fmt(
[[
┏━━━━━━━━━━━━━━ Проблема ━━━━━━━━━━━━━━━
- [ ] **Решена**
{}
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
]],
{
i(0),
}
)
)
}
)