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 "go", t "", t "swift", t "c" }), i(2), } ) ), s({ trig = "iq", dscr = "Insert question" }, fmt( [[ ┏━━━━━━━━━━━━━━ Question 0 ━━━━━━━━━━━━━━━ **Question** {} **Answer**: ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ]], { i(0), } ) ), s({ trig = "ip", dscr = "Insert problem" }, fmt( [[ ┏━━━━━━━━━━━━━━ Problem 0 ━━━━━━━━━━━━━━━ **Problem**: {} **Solution**: ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ]], { i(0), } ) ), s({ trig = "isn", dscr = "Insert side notes" }, fmt( [[ ┏━━━━━━━━━━━━━ Sticky notes ━━━━━━━━━━━━━━ **Theme**: {} {} ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ]], { i(1), i(2), } ) ), s({ trig = "ntn", dscr = "Template NTN (obsidian)" }, { t({ "---", "backlinks: ", "created: ", }), f(function() return os.date("%Y-%m-%d") end), t({ "", "---", "# Про что заметка?", "Про ", "***", "# Основное", }), i(0), }), s({ trig = "nte", dscr = "Template NTE (obsidian)" }, { t({ "---", "project:", "\t- ", "completed:", "delayed:", "started: ", }), f(function() return os.date("%Y-%m-%d") end), t({ "", "finished:", "cssclasses:", " - wide-page", "link:", "---", "**УСТАНОВИ STARTED ДАТУ И ПРОЕКТ!!!**", "***", "# Checklist", "## Общее", "- [ ] JIO: Проверить версию сервиса", "- [ ] Написать кодовую базу", "- [ ] Написать тесты к функционалу", "- [ ] Избавиться от дебаг кода", "- [ ] Исправить замечания линтера", "- [ ] Создать все нужные MR'ы и пофиксить комменты в них:", " - [ ] MR_placeholder", "- [ ] Влить апрувнутые MR'ы", "- [ ] Перечитать доку по разрабатываемому функционалу и если нужно - обновить ее согласно новым изменениям", "- [ ] Если необходимо: Добавить/обновить документацию", "- [ ] Если необходимо: добавить новые индексы в `package/indexes.json`", "- [ ] Собрать нужные пакеты и выкатить на прод", " - [ ] При создании новой версии проверить что все коммиты в промежутке включены в CHANGELOG", "- [ ] Проверить работоспособность на проде", "- [ ] Отписать в таске результаты проверки на проде", "- [ ] Закрыть таску", "***", "# Links", "- ", "", "***", "# Хронология", "- Взял задачу в работу → [[#Погружение в задачу ✗]]", "", "***", "# Sticky notes", "", "***", "", "# Погружение в задачу ✗", }), i(0), }), } )