Migrate vim snippets to neovim (LuaSnip)
							parent
							
								
									128ae8ed1e
								
							
						
					
					
						commit
						05bc2ec59e
					
				| 
						 | 
				
			
			@ -27,7 +27,7 @@ return {
 | 
			
		|||
    t("flex-wrap: wrap;"),
 | 
			
		||||
    i(0),
 | 
			
		||||
  }),
 | 
			
		||||
  s({ trig = "dfc", dscr = "Display flex column" }, {
 | 
			
		||||
  s({ trig = "dfc", dscr = "Add 'flex-direction: column;'" }, {
 | 
			
		||||
    t("display: flex;"),
 | 
			
		||||
    t("flex-direction: column;"),
 | 
			
		||||
    i(0),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,6 +5,909 @@ local d = ls.dynamic_node
 | 
			
		|||
local sn = ls.snippet_node
 | 
			
		||||
local fmta = require("luasnip.extras.fmt").fmta
 | 
			
		||||
 | 
			
		||||
-- Original .snippets file - TODO: Migrate to lua snippets
 | 
			
		||||
-- ```viml
 | 
			
		||||
-- global !p
 | 
			
		||||
-- from datetime import datetime
 | 
			
		||||
-- from math import factorial
 | 
			
		||||
-- import subprocess
 | 
			
		||||
-- import re
 | 
			
		||||
-- import sys
 | 
			
		||||
--
 | 
			
		||||
-- ZOTERO_BASE = "http://127.0.0.1:23119/better-bibtex/cayw"
 | 
			
		||||
-- FENCES = {
 | 
			
		||||
-- 	"i": "idea",
 | 
			
		||||
-- 	"q": "question",
 | 
			
		||||
-- 	"n": "note",
 | 
			
		||||
-- 	"t": "thought",
 | 
			
		||||
-- }
 | 
			
		||||
--
 | 
			
		||||
-- def math_inline():
 | 
			
		||||
-- 	return vim.command_output('GetContext') == 'math_inline'
 | 
			
		||||
--
 | 
			
		||||
-- def math_block():
 | 
			
		||||
-- 	return vim.command_output('GetContext') == 'math_block'
 | 
			
		||||
--
 | 
			
		||||
-- def math():
 | 
			
		||||
-- 	return math_inline() or math_block()
 | 
			
		||||
--
 | 
			
		||||
-- def code_block():
 | 
			
		||||
-- 	return vim.command_output('GetContext') == 'pandocDelimitedCodeBlock'
 | 
			
		||||
--
 | 
			
		||||
-- def code_inline():
 | 
			
		||||
-- 	return vim.command_output('GetContext') == 'pandocNoFormatted'
 | 
			
		||||
--
 | 
			
		||||
-- def code():
 | 
			
		||||
-- 	return code_inline() or code_block()
 | 
			
		||||
--
 | 
			
		||||
-- def slugify(text):
 | 
			
		||||
-- 	return re.sub('\s+', '-', text.lower())
 | 
			
		||||
--
 | 
			
		||||
-- def linkify(text, link):
 | 
			
		||||
-- 	return f"[{text}]({link})"
 | 
			
		||||
--
 | 
			
		||||
-- def zot(action):
 | 
			
		||||
-- 		if action == "get_title":
 | 
			
		||||
-- 			cmd = f"curl -s '{ZOTERO_BASE}?format=json&selected=1' | jq '.[].title' -r"
 | 
			
		||||
-- 		elif action == "get_citekey":
 | 
			
		||||
-- 			cmd = f"curl -s '{ZOTERO_BASE}?format=pandoc&selected=1'"
 | 
			
		||||
-- 		elif action == "get_citekey_brackets":
 | 
			
		||||
-- 			cmd = f"curl -s '{ZOTERO_BASE}?format=pandoc&selected=1&brackets=1'"
 | 
			
		||||
-- 		elif action == "get_link":
 | 
			
		||||
-- 			link_path = re.sub("^@", "", zot("get_citekey"))
 | 
			
		||||
-- 			link_title = zot("get_title")
 | 
			
		||||
-- 			link = linkify(link_title, link_path)
 | 
			
		||||
-- 			return link
 | 
			
		||||
-- 		elif action == "get_file":
 | 
			
		||||
-- 			link_path = re.sub("^@", "", zot("get_citekey"))
 | 
			
		||||
-- 			link_title = zot("get_title")
 | 
			
		||||
-- 			link = linkify(link_title, f"file://{link_path}.pdf")
 | 
			
		||||
-- 			return link
 | 
			
		||||
-- 		else:
 | 
			
		||||
-- 			return "Zotero action not found"
 | 
			
		||||
-- 		return subprocess.check_output(cmd, shell=True).decode("utf-8").strip()
 | 
			
		||||
-- endglobal
 | 
			
		||||
--
 | 
			
		||||
-- snippet ctx "Context" i
 | 
			
		||||
-- `!p snip.rv = vim.command_output('GetContext')`
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- # General markdown
 | 
			
		||||
--
 | 
			
		||||
-- snippet ^h "Markdown header" r
 | 
			
		||||
-- # $1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet ^sec "Markdown section" r
 | 
			
		||||
-- ## $1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet ^ssec "Markdown subsection" r
 | 
			
		||||
-- ### $1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet ^sex "Markdown example section" r
 | 
			
		||||
-- ## Example: $1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet ^ssex "Markdown example subsection" r
 | 
			
		||||
-- ### Example: $1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- # Zettelkasten templating
 | 
			
		||||
--
 | 
			
		||||
-- snippet nl
 | 
			
		||||
-- *nld*: $1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet eng
 | 
			
		||||
-- *eng*: $1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet fr
 | 
			
		||||
-- *fra*: $1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet (de
 | 
			
		||||
-- *deu*: $1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet (nl
 | 
			
		||||
-- (*nld*: $1)
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet (eng
 | 
			
		||||
-- (*eng*: $1)
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet (fr
 | 
			
		||||
-- (*fra*: $1)
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet (de
 | 
			
		||||
-- (*deu*: $1)
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet in
 | 
			
		||||
-- (In [$1]($2))$3
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet liwhat "What?" A
 | 
			
		||||
-- `!p snip.rv = "* [What?](" + snip.basename + "_what)"`$1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet liwhy "Why?" A
 | 
			
		||||
-- `!p snip.rv = "* [Why?](" + snip.basename + "_why)"`$1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet < "Comment (html)"
 | 
			
		||||
-- <!-- $1 -->$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet <. "Comment (html) ..." i
 | 
			
		||||
-- <!-- ... -->$1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet <t "Thought (html)" i
 | 
			
		||||
-- <!--:::thought
 | 
			
		||||
-- $1
 | 
			
		||||
-- :::-->
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet <q "Question (html)" i
 | 
			
		||||
-- <!--:::question
 | 
			
		||||
-- $1
 | 
			
		||||
-- :::-->
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet <i "Idea (html)" i
 | 
			
		||||
-- <!--:::idea
 | 
			
		||||
-- $1
 | 
			
		||||
-- :::-->
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet <n "Note (html)" i
 | 
			
		||||
-- <!--:::note
 | 
			
		||||
-- $1
 | 
			
		||||
-- :::-->
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet td "Todo"
 | 
			
		||||
-- TODO${1:: $2}
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet ref "References"
 | 
			
		||||
-- <!--references-->
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet sort "Sort"
 | 
			
		||||
-- <!--sort-->
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet foot "Footnotes"
 | 
			
		||||
-- <!--footnotes-->
 | 
			
		||||
-- [^0]:
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet def "Definition"
 | 
			
		||||
-- **Definition${1:: $2}**${3: [${4:citation}${5:, ${6:pointer}}]}
 | 
			
		||||
--
 | 
			
		||||
-- $7
 | 
			
		||||
--
 | 
			
		||||
-- ___
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet theo "Theorem"
 | 
			
		||||
-- **Theorem${1:: $2}**${3: [${4:citation}${5:, ${6:pointer}}]}
 | 
			
		||||
--
 | 
			
		||||
-- $7
 | 
			
		||||
--
 | 
			
		||||
-- ${8/(\w+).*/**Theorem** \n\n.../}
 | 
			
		||||
--
 | 
			
		||||
-- ___
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet prop "Property"
 | 
			
		||||
-- **Property $1** [@]
 | 
			
		||||
--
 | 
			
		||||
-- $2
 | 
			
		||||
--
 | 
			
		||||
-- ___
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet lemm "Lemma"
 | 
			
		||||
-- **Lemma $1** [@]
 | 
			
		||||
--
 | 
			
		||||
-- $2
 | 
			
		||||
--
 | 
			
		||||
-- ___
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet coro "Corollary"
 | 
			
		||||
-- **Corollary $1** [@]
 | 
			
		||||
--
 | 
			
		||||
-- $2
 | 
			
		||||
--
 | 
			
		||||
-- ___
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- # Greek symbols
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet alpha "Alpha"
 | 
			
		||||
-- \\alpha
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet beta "Beta"
 | 
			
		||||
-- \\beta
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet gamma "Gamma"
 | 
			
		||||
-- \\gamma
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet delta "Delta"
 | 
			
		||||
-- \\delta
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet epsilon "Epsilon"
 | 
			
		||||
-- \\epsilonilon
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet zeta "Zeta"
 | 
			
		||||
-- \\zeta
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet eta "Eta"
 | 
			
		||||
-- \\eta
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet theta "Theta"
 | 
			
		||||
-- \\theta
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet iota "Iota"
 | 
			
		||||
-- \\iota
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet kappa "Kappa"
 | 
			
		||||
-- \\kappa
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet lambda "Lambda" i
 | 
			
		||||
-- \\lambda
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet mu "Mu"
 | 
			
		||||
-- \\mu
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet nu "Nu"
 | 
			
		||||
-- \\nu
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet xi "Xi"
 | 
			
		||||
-- \\xi
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet omicron "Omicron"
 | 
			
		||||
-- \\omicron
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet pi "Pi"
 | 
			
		||||
-- \\pi
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet rho "Rho"
 | 
			
		||||
-- \\rho
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet sigma "Sigma"
 | 
			
		||||
-- \\sigma
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet tau "Tau"
 | 
			
		||||
-- \\tau
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet upsilon "Upsilon"
 | 
			
		||||
-- \\upsilon
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet phi "Phi"
 | 
			
		||||
-- \\phi
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet chi "Chi"
 | 
			
		||||
-- \\chi
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet psi "Psi"
 | 
			
		||||
-- \\psi
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet omega "Omega"
 | 
			
		||||
-- \\omega
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet Gamma "Gamma"
 | 
			
		||||
-- \\Gamma
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet Delta "Delta"
 | 
			
		||||
-- \\Delta
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet Theta "Theta"
 | 
			
		||||
-- \\Theta
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet Lambda "Lambda"
 | 
			
		||||
-- \\Lambda
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet Xi "Xi"
 | 
			
		||||
-- \\Xi
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet Pi "Pi"
 | 
			
		||||
-- \\Pi
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet Sigma "Sigma"
 | 
			
		||||
-- \\Sigma
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet Upsilon "Upsilon"
 | 
			
		||||
-- \\Upsilon
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet Phi "Phi"
 | 
			
		||||
-- \\Phi
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet Psi "Psi"
 | 
			
		||||
-- \\Psi
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet Omega "Omega"
 | 
			
		||||
-- \\Omega
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet asaw "Als en slechts als (woorden)" i
 | 
			
		||||
-- als en slechts als
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet iffw "If and only if (words)" i
 | 
			
		||||
-- if and only if
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet asas "Als en slechts als (shorthand)" i
 | 
			
		||||
-- **asa**
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet iffs "If and only if (shorthand)" i
 | 
			
		||||
-- **iff**
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet beg "Begin"
 | 
			
		||||
-- \begin{$1}
 | 
			
		||||
-- $2
 | 
			
		||||
-- \end{$1}
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet align "" i
 | 
			
		||||
-- \begin{align}
 | 
			
		||||
-- $1
 | 
			
		||||
-- \end{align}
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet cases "" i
 | 
			
		||||
-- \begin{cases}
 | 
			
		||||
-- $1 \\\\
 | 
			
		||||
-- $2
 | 
			
		||||
-- \end{cases}
 | 
			
		||||
-- $3
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet tik "Tikzpicture" i
 | 
			
		||||
-- \begin{tikzpicture}
 | 
			
		||||
-- $1
 | 
			
		||||
-- \end{tikzpicture}
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet matrix "Matrix" i
 | 
			
		||||
-- \begin{bmatrix}
 | 
			
		||||
-- $1
 | 
			
		||||
-- \end{bmatrix}
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- # Insert anything after m/M in math mode
 | 
			
		||||
--
 | 
			
		||||
-- snippet "(\b)m(.*)" "MathJax" r
 | 
			
		||||
-- `!p snip.rv = match.group(1) + "$" + match.group(2) + "$"`
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet (\b)M(.*) "MathJax block" irw
 | 
			
		||||
-- $$
 | 
			
		||||
-- `!p snip.rv = match.group(2)`
 | 
			
		||||
-- $$
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- # Calligraphic letters
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet c([A-z]) "Calligraphic A" r
 | 
			
		||||
-- `!p snip.rv = "\\mathcal{" + match.group(1) + "}"`$1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- # Subscripts
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet '([A-z])(\w+)' "Subscripts" irw
 | 
			
		||||
-- `!p snip.rv = match.group(1) + '_' + match.group(2) if len(match.group(2)) == 1 else match.group(1) + '_{' + match.group(2) + '}'`$1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- # MathJax
 | 
			
		||||
--
 | 
			
		||||
-- snippet fa "For all" i
 | 
			
		||||
-- \forall
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet frac "" i
 | 
			
		||||
-- \frac{$1}{$2}$3
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet set "" i
 | 
			
		||||
-- \\{$1\\}$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet N "" i
 | 
			
		||||
-- \mathbb{N}
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet N0 "" i
 | 
			
		||||
-- \mathbb{N}_0
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet N+ "" i
 | 
			
		||||
-- \mathbb{N}^+
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet Z "" i
 | 
			
		||||
-- \mathbb{Z}
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet Z0 "" i
 | 
			
		||||
-- \mathbb{Z}_0
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet Z+ "" i
 | 
			
		||||
-- \mathbb{Z}^+
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet R "" i
 | 
			
		||||
-- \mathbb{R}
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet R0 "" i
 | 
			
		||||
-- \mathbb{R}_0
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet R+ "" i
 | 
			
		||||
-- \mathbb{R}^+
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet C "" i
 | 
			
		||||
-- \mathbb{C}
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet lim "" i
 | 
			
		||||
-- \lim_{$1}$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet limn "" i
 | 
			
		||||
-- \lim_{n \to \infty}$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet binom "" i
 | 
			
		||||
-- \binom{$1}{$2}$3
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet andmath "description" i
 | 
			
		||||
-- \text{ and }
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet enmath "description" i
 | 
			
		||||
-- \text{ en }
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet lra "MathJax: long right arrow" i
 | 
			
		||||
-- \longrightarrow
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet Ra "MathJax: right arrow" i
 | 
			
		||||
-- \Rightarrow
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet Im "MathJax: image operator" i
 | 
			
		||||
-- \operatorname{Im}
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet ggd "Grootste gemene deler" i
 | 
			
		||||
-- \operatorname{ggd}
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet fl "Floating point" i
 | 
			
		||||
-- \operatorname{fl}
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet Var "Variance" i
 | 
			
		||||
-- \operatorname{Var}
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet E "Expectation" i
 | 
			
		||||
-- \operatorname{E}
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet Cov "Covariance" i
 | 
			
		||||
-- \operatorname{Cov}
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()" i
 | 
			
		||||
-- snippet ntup "Alpha"
 | 
			
		||||
-- (x_1, \ldots, x_n)
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet mxn "Matrix" i
 | 
			
		||||
-- m \times n
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet mxn- "Matrix" i
 | 
			
		||||
-- $m \times n$-matrix
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet nxn "Matrix" i
 | 
			
		||||
-- n \times n
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet det "Determinant" i
 | 
			
		||||
-- \operatorname{det}(${1:A})$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet det| "Determinant alternative notation" i
 | 
			
		||||
-- |${1:A}|$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet Span "Span" i
 | 
			
		||||
-- \operatorname{Span}\\{$1\\}$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet Nul "Null" i
 | 
			
		||||
-- \operatorname{Nul}($1)$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet Col "Column space" i
 | 
			
		||||
-- \operatorname{Col}($1)$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet kern "Kernel" i
 | 
			
		||||
-- \operatorname{kern}($1)$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet vec "Vector" i
 | 
			
		||||
-- \mathbf{$1}$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "math()"
 | 
			
		||||
-- snippet vec([A-z]) "Vector ..." r
 | 
			
		||||
-- `!p snip.rv = "\\mathbf{" + match.group(1) + "}"`$1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet v1tovp "Vectors v indexed from 1 to p"
 | 
			
		||||
-- \mathbf{v_1},...,\mathbf{v_p}$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet a1toan "Vectors a indexed from 1 to n"
 | 
			
		||||
-- \mathbf{a_1},...,\mathbf{v_n}$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet .. "Dot dot dot" i
 | 
			
		||||
-- \dots $1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet text "MathJax text" i
 | 
			
		||||
-- \text{$1}$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet leq "Less than or equal to" i
 | 
			
		||||
-- \leq
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet leq "Greater than or equal to" i
 | 
			
		||||
-- \geq
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet eat "Evaluated at" i
 | 
			
		||||
-- {\biggr\rvert}_{$1}$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet sketch "Link a sketch" i
 | 
			
		||||
-- [$1](file:///home/h/sketches/$2)
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet deck "Get anki deck"
 | 
			
		||||
-- `get-anki-decks`
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- # snippet ` "Inline code" i
 | 
			
		||||
-- # `$1`
 | 
			
		||||
-- # endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- # Escape backticks
 | 
			
		||||
-- snippet `` "Code block" bA
 | 
			
		||||
-- \`\`\`$1
 | 
			
		||||
-- $2
 | 
			
		||||
-- \`\`\`
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet `tex "Latex block (see latex filter)" bA
 | 
			
		||||
-- \`\`\`{.tex}
 | 
			
		||||
-- $1
 | 
			
		||||
-- \`\`\`
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet `tik "Tikz block (see tikz filter)" bA
 | 
			
		||||
-- \`\`\`{.tex}
 | 
			
		||||
-- \\begin{tikzpicture}
 | 
			
		||||
-- $1
 | 
			
		||||
-- \\end{tikzpicture}
 | 
			
		||||
-- \`\`\`
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet task "Task" i
 | 
			
		||||
-- * [ ] $1 -- pro:$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet "(\b)fn(\d+)" "" ir
 | 
			
		||||
-- `!p snip.rv = snip.basename + "_" + match.group(2).zfill(2)`$1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet "ch(\d+)" "Link chapter" ir
 | 
			
		||||
-- `!p
 | 
			
		||||
-- num_str = match.group(1).zfill(2)
 | 
			
		||||
-- title = 3*"."
 | 
			
		||||
-- link = snip.basename + "_" + num_str
 | 
			
		||||
-- snip.rv = num_str + ". " + linkify(title, link)
 | 
			
		||||
-- `
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet "ch(\d+)to(\d+)" "Link chapters ... to ..." irA
 | 
			
		||||
-- `!p
 | 
			
		||||
-- for i in range(int(match.group(1)), int(match.group(2)) + 1):
 | 
			
		||||
-- 	num_str = str(i).zfill(2)
 | 
			
		||||
-- 	title = 3*"."
 | 
			
		||||
-- 	link = snip.basename + "_" + num_str
 | 
			
		||||
-- 	snip.rv += num_str + ". " + linkify(title, link) + "\n"
 | 
			
		||||
-- `
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet "sec([\sA-z]+)" "Link section titled ..." r
 | 
			
		||||
-- `!p
 | 
			
		||||
-- snip.rv = "* " + linkify(match.group(1), f"{snip.basename}_{slugify(match.group(1))}")
 | 
			
		||||
-- `
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet cp(\d+) "Comment current page (and date)" r
 | 
			
		||||
-- `!p snip.rv = "<!--" + datetime.now().strftime("%Y-%m-%d") + " p. " + match.group(1) + "-->"`
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet (\d+)! "Factorial of ..." r
 | 
			
		||||
-- `!p snip.rv = factorial(int(match.group(1)))`
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet d "Date"
 | 
			
		||||
-- `!p snip.rv = datetime.now().strftime("%Y-%m-%d")`
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet :(\w*) "Fence" r
 | 
			
		||||
-- `!p snip.rv += ":::" + FENCES.get(match.group(1) or "", "") + "\n" `$1
 | 
			
		||||
-- `!p snip.rv += ":::"`$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet \[(\w*) "Fence inline" ir
 | 
			
		||||
-- `!p snip.rv += "["`$1`!p snip.rv += "]{." + FENCES.get(match.group(1) or "", "") + "}"`$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet ^eg "Example" r
 | 
			
		||||
-- E.g. $1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- # E.g. after list (or list preceded by space)
 | 
			
		||||
-- snippet (\*\s|\*)eg "Example" r
 | 
			
		||||
-- * E.g. $1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- # E.g. after dot (or dot preceded by space)
 | 
			
		||||
-- snippet (\.\s|\.)eg "Example" r
 | 
			
		||||
-- . E.g. $1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet (?<!^|\*\s|\*|\.\s|\.)eg "Example" r
 | 
			
		||||
-- e.g. $1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- # Zettelkasten to Anki
 | 
			
		||||
--
 | 
			
		||||
-- snippet td "TARGET DECK: <Deck name>"
 | 
			
		||||
-- TARGET DECK: $1::$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet clo "Cloze"
 | 
			
		||||
-- START
 | 
			
		||||
-- Cloze
 | 
			
		||||
-- ${0:${VISUAL}}$1
 | 
			
		||||
-- END
 | 
			
		||||
-- $2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet clos "Cloze start"
 | 
			
		||||
-- START
 | 
			
		||||
-- Cloze
 | 
			
		||||
-- $1
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet cloe "Cloze end"
 | 
			
		||||
-- END
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet clod
 | 
			
		||||
-- START
 | 
			
		||||
-- Cloze
 | 
			
		||||
-- **Definition$1**
 | 
			
		||||
--
 | 
			
		||||
-- $2
 | 
			
		||||
-- END
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet clop
 | 
			
		||||
-- START
 | 
			
		||||
-- Cloze
 | 
			
		||||
-- **Property$1**
 | 
			
		||||
--
 | 
			
		||||
-- $2
 | 
			
		||||
-- END
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet clot
 | 
			
		||||
-- START
 | 
			
		||||
-- Cloze
 | 
			
		||||
-- **Theorem$1**
 | 
			
		||||
--
 | 
			
		||||
-- $2
 | 
			
		||||
-- END
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet clol
 | 
			
		||||
-- START
 | 
			
		||||
-- Cloze
 | 
			
		||||
-- **Lemma$1**
 | 
			
		||||
--
 | 
			
		||||
-- $2
 | 
			
		||||
-- END
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet "c(\d+)" "Cloze <number>" r
 | 
			
		||||
-- {{c`!p snip.rv = int(match.group(1))`::${0:${VISUAL}}$1}}$2
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- # Match preceded by whitespace or start of line
 | 
			
		||||
-- snippet (?<!\S)z($|t|l|z|o|\.) "Zotero" r
 | 
			
		||||
-- `!p
 | 
			
		||||
--
 | 
			
		||||
-- ACTIONS = {
 | 
			
		||||
-- 	"": "get_citekey",
 | 
			
		||||
-- 	"t": "get_title",
 | 
			
		||||
-- 	"l": "get_link",
 | 
			
		||||
-- 	"z": "get_citekey_brackets",
 | 
			
		||||
-- 	"o": "get_file",
 | 
			
		||||
-- }
 | 
			
		||||
--
 | 
			
		||||
-- snip.rv = zot(ACTIONS.get(match.group(1)))
 | 
			
		||||
-- `
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet zq "Zotero quote" r
 | 
			
		||||
-- `!p snip.rv = '>\n> --' + zot("get_citekey_brackets")`
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet acz "According to ..."
 | 
			
		||||
-- `!p snip.rv = "According to " + zot("get_citekey")`
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet azex "As ... explains"
 | 
			
		||||
-- `!p snip.rv = "As " + zot("get_citekey") + " explains, "`
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet iz "In ..."
 | 
			
		||||
-- `!p snip.rv = "In " + zot("get_citekey")`
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet izd "In ...'s definition"
 | 
			
		||||
-- `!p snip.rv = "In " + zot("get_citekey") + "'s definition, "`
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet zintends "... intends to ..." A
 | 
			
		||||
-- `!p snip.rv = zot("get_citekey") + " intends to "`
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet tfol "The following" wA
 | 
			
		||||
-- the following
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet tfolt "It follows that" wA
 | 
			
		||||
-- it follows that
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet ntfol "In the following" wA
 | 
			
		||||
-- in the following
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet algos "algorithms" wA
 | 
			
		||||
-- algorithms
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- snippet algo "algorithm" wA
 | 
			
		||||
-- algorithm
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- # TODO: Make only available in tikzpicture
 | 
			
		||||
-- context "code()"
 | 
			
		||||
-- snippet q "State" w
 | 
			
		||||
-- \node[state] ($1) [] {$2};
 | 
			
		||||
-- endsnippet
 | 
			
		||||
--
 | 
			
		||||
-- context "code()"
 | 
			
		||||
-- snippet q0 "Initial state" w
 | 
			
		||||
-- \node[initial,state] ($1) {$2};
 | 
			
		||||
-- endsnippet
 | 
			
		||||
-- ```
 | 
			
		||||
 | 
			
		||||
-- Taken from https://ejmastnak.com/tutorials/vim-latex/luasnip/#anatomy
 | 
			
		||||
local get_visual = function(_, parent)
 | 
			
		||||
  if #parent.snippet.env.LS_SELECT_RAW > 0 then
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,24 @@
 | 
			
		|||
local ls = require("luasnip")
 | 
			
		||||
local s = ls.snippet
 | 
			
		||||
local t = ls.text_node
 | 
			
		||||
local i = ls.insert_node
 | 
			
		||||
 | 
			
		||||
return {
 | 
			
		||||
  s("reqtrace", t({ "(#%require racket/trace)" })),
 | 
			
		||||
  s("strln", t({ "(string-length " }), i(1), t({ ")" })),
 | 
			
		||||
  s("impb", t({ "(import (rnrs base (6))", "        (rnrs io simple" }), i(0), t({ ")" })),
 | 
			
		||||
  s("def", {
 | 
			
		||||
    t("(define "),
 | 
			
		||||
    i(1),
 | 
			
		||||
    t(" "),
 | 
			
		||||
    i(2),
 | 
			
		||||
    t(")"),
 | 
			
		||||
  }),
 | 
			
		||||
  s("defp", {
 | 
			
		||||
    t("(define ("),
 | 
			
		||||
    i(1),
 | 
			
		||||
    t(" "),
 | 
			
		||||
    i(2),
 | 
			
		||||
    t("))"),
 | 
			
		||||
  }),
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,69 @@
 | 
			
		|||
local ls = require("luasnip")
 | 
			
		||||
local s = ls.snippet
 | 
			
		||||
local i = ls.insert_node
 | 
			
		||||
local t = ls.text_node
 | 
			
		||||
local f = ls.function_node
 | 
			
		||||
 | 
			
		||||
-- Inspired by https://castel.dev/post/lecture-notes-1/
 | 
			
		||||
 | 
			
		||||
ls.add_snippets("tex", {
 | 
			
		||||
  s("beg", {
 | 
			
		||||
    t("\\begin{"),
 | 
			
		||||
    i(1),
 | 
			
		||||
    t({ "}", "\t" }),
 | 
			
		||||
    i(0),
 | 
			
		||||
    t({ "", "\\end{" }),
 | 
			
		||||
    f(function(args)
 | 
			
		||||
      return args[1][1]
 | 
			
		||||
    end, { 1 }),
 | 
			
		||||
    t("}"),
 | 
			
		||||
  }),
 | 
			
		||||
 | 
			
		||||
  s("def", {
 | 
			
		||||
    t("\\begin{definition}"),
 | 
			
		||||
    t({ "", "\t" }),
 | 
			
		||||
    i(0),
 | 
			
		||||
    t({ "", "\\end{definition}" }),
 | 
			
		||||
  }),
 | 
			
		||||
 | 
			
		||||
  s("fig", {
 | 
			
		||||
    t("\\begin{figure}"),
 | 
			
		||||
    t({ "", "\t" }),
 | 
			
		||||
    i(0),
 | 
			
		||||
    t({ "", "\\end{figure}" }),
 | 
			
		||||
  }),
 | 
			
		||||
 | 
			
		||||
  s(
 | 
			
		||||
    "time",
 | 
			
		||||
    f(function()
 | 
			
		||||
      return os.date("%H:%M")
 | 
			
		||||
    end)
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  s("i", t("\\textit{"), i(0), t("}")),
 | 
			
		||||
 | 
			
		||||
  s("b", t("\\textbf{"), i(0), t("}")),
 | 
			
		||||
 | 
			
		||||
  s("center", {
 | 
			
		||||
    t("\\begin{center}"),
 | 
			
		||||
    t({ "", "" }),
 | 
			
		||||
    i(0),
 | 
			
		||||
    t({ "", "\\end{center}" }),
 | 
			
		||||
  }),
 | 
			
		||||
 | 
			
		||||
  s("pac", t("\\usepackage{"), i(0), t("}")),
 | 
			
		||||
 | 
			
		||||
  s("foot", t("\\footnote{"), i(0), t("}")),
 | 
			
		||||
 | 
			
		||||
  s("dm", {
 | 
			
		||||
    t({ "\\[", "" }),
 | 
			
		||||
    i(1),
 | 
			
		||||
    t({ "", "\\]" }),
 | 
			
		||||
    i(0),
 | 
			
		||||
  }),
 | 
			
		||||
 | 
			
		||||
  s("ch", t("\\chapter{"), i(0), t("}")),
 | 
			
		||||
  s("sec", t("\\section{"), i(0), t("}")),
 | 
			
		||||
  s("ssec", t("\\subsection{"), i(0), t("}")),
 | 
			
		||||
  s("sssec", t("\\subsubsection{"), i(0), t("}")),
 | 
			
		||||
})
 | 
			
		||||
| 
						 | 
				
			
			@ -1,7 +0,0 @@
 | 
			
		|||
snippet fne "Filename (+extension)" i
 | 
			
		||||
`!p snip.rv = snip.fn`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
# snippet ^fn "Filename basename" ir
 | 
			
		||||
# `!p snip.rv = snip.basename`
 | 
			
		||||
endsnippet
 | 
			
		||||
| 
						 | 
				
			
			@ -1,72 +0,0 @@
 | 
			
		|||
snippet b1(\w+) "Border (1px)" r
 | 
			
		||||
`!p
 | 
			
		||||
import re
 | 
			
		||||
colors = {
 | 
			
		||||
		'r': 'red',
 | 
			
		||||
		'g': 'green',
 | 
			
		||||
		'b': 'blue',
 | 
			
		||||
		'y': 'yellow',
 | 
			
		||||
		'o': 'orange',
 | 
			
		||||
		'p': 'purple',
 | 
			
		||||
		'c': 'cyan',
 | 
			
		||||
		'm': 'magenta',
 | 
			
		||||
		'w': 'white',
 | 
			
		||||
}
 | 
			
		||||
color = colors.get(match.group(1), 'black')
 | 
			
		||||
snip.rv = f"border: 1px solid {color};"
 | 
			
		||||
`$0
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet df "Use flexbox layout"
 | 
			
		||||
display: flex;
 | 
			
		||||
$0
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet fr "Use row direction (flex)"
 | 
			
		||||
flex-direction: row;
 | 
			
		||||
$0
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet fc "Use column direction (flex)"
 | 
			
		||||
flex-direction: column;
 | 
			
		||||
$0
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet dfr "Use flexbox layout in row direction"
 | 
			
		||||
display: flex;
 | 
			
		||||
flex-direction: row;
 | 
			
		||||
$0
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet dfr "Use flexbox layout in column direction"
 | 
			
		||||
display: flex;
 | 
			
		||||
flex-direction: column;
 | 
			
		||||
$0
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet dg "Use CSS grid layout"
 | 
			
		||||
display: grid;
 | 
			
		||||
$0
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet db "Use block layout"
 | 
			
		||||
display: block;
 | 
			
		||||
$0
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet dn "Set display to 'none'"
 | 
			
		||||
display: none;
 | 
			
		||||
$0
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet var "Use CSS variable"
 | 
			
		||||
var(--$1)$0
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet m
 | 
			
		||||
margin: $0;
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet p
 | 
			
		||||
padding: $0;
 | 
			
		||||
endsnippet
 | 
			
		||||
| 
						 | 
				
			
			@ -1,51 +0,0 @@
 | 
			
		|||
snippet ifdef
 | 
			
		||||
#ifdef GL_ES
 | 
			
		||||
precision mediump float;
 | 
			
		||||
#endif
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet defpi
 | 
			
		||||
#define PI 3.14159265359
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet main
 | 
			
		||||
void main() {
 | 
			
		||||
  $1
 | 
			
		||||
}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet uni
 | 
			
		||||
uniform $1;
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet unif
 | 
			
		||||
uniform float $1;
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet univ
 | 
			
		||||
uniform vec$1 float $2;
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet univ2
 | 
			
		||||
uniform vec2 float $1;
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet univ3
 | 
			
		||||
uniform vec3 float $1;
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet univ4
 | 
			
		||||
uniform vec4 float $1;
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet f
 | 
			
		||||
float
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet v
 | 
			
		||||
vec
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet ss
 | 
			
		||||
smoothstep($1)$2
 | 
			
		||||
endsnippet
 | 
			
		||||
| 
						 | 
				
			
			@ -1,11 +0,0 @@
 | 
			
		|||
snippet clg "console.log"
 | 
			
		||||
console.log($0)
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet Js "JSON.stringify"
 | 
			
		||||
JSON.stringify($0)
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet Jsf "JSON.stringify (formatted)"
 | 
			
		||||
JSON.stringify($0, 0, 2)
 | 
			
		||||
endsnippet
 | 
			
		||||
| 
						 | 
				
			
			@ -1,900 +0,0 @@
 | 
			
		|||
 | 
			
		||||
global !p
 | 
			
		||||
from datetime import datetime
 | 
			
		||||
from math import factorial
 | 
			
		||||
import subprocess
 | 
			
		||||
import re
 | 
			
		||||
import sys
 | 
			
		||||
 | 
			
		||||
ZOTERO_BASE = "http://127.0.0.1:23119/better-bibtex/cayw"
 | 
			
		||||
FENCES = {
 | 
			
		||||
	"i": "idea",
 | 
			
		||||
	"q": "question",
 | 
			
		||||
	"n": "note",
 | 
			
		||||
	"t": "thought",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
def math_inline():
 | 
			
		||||
	return vim.command_output('GetContext') == 'math_inline'
 | 
			
		||||
 | 
			
		||||
def math_block():
 | 
			
		||||
	return vim.command_output('GetContext') == 'math_block'
 | 
			
		||||
 | 
			
		||||
def math():
 | 
			
		||||
	return math_inline() or math_block()
 | 
			
		||||
 | 
			
		||||
def code_block():
 | 
			
		||||
	return vim.command_output('GetContext') == 'pandocDelimitedCodeBlock'
 | 
			
		||||
 | 
			
		||||
def code_inline():
 | 
			
		||||
	return vim.command_output('GetContext') == 'pandocNoFormatted'
 | 
			
		||||
 | 
			
		||||
def code():
 | 
			
		||||
	return code_inline() or code_block()
 | 
			
		||||
 | 
			
		||||
def slugify(text):
 | 
			
		||||
	return re.sub('\s+', '-', text.lower())
 | 
			
		||||
 | 
			
		||||
def linkify(text, link):
 | 
			
		||||
	return f"[{text}]({link})"
 | 
			
		||||
 | 
			
		||||
def zot(action):
 | 
			
		||||
		if action == "get_title":
 | 
			
		||||
			cmd = f"curl -s '{ZOTERO_BASE}?format=json&selected=1' | jq '.[].title' -r"
 | 
			
		||||
		elif action == "get_citekey":
 | 
			
		||||
			cmd = f"curl -s '{ZOTERO_BASE}?format=pandoc&selected=1'"
 | 
			
		||||
		elif action == "get_citekey_brackets":
 | 
			
		||||
			cmd = f"curl -s '{ZOTERO_BASE}?format=pandoc&selected=1&brackets=1'"
 | 
			
		||||
		elif action == "get_link":
 | 
			
		||||
			link_path = re.sub("^@", "", zot("get_citekey"))
 | 
			
		||||
			link_title = zot("get_title")
 | 
			
		||||
			link = linkify(link_title, link_path)
 | 
			
		||||
			return link
 | 
			
		||||
		elif action == "get_file":
 | 
			
		||||
			link_path = re.sub("^@", "", zot("get_citekey"))
 | 
			
		||||
			link_title = zot("get_title")
 | 
			
		||||
			link = linkify(link_title, f"file://{link_path}.pdf")
 | 
			
		||||
			return link
 | 
			
		||||
		else:
 | 
			
		||||
			return "Zotero action not found"
 | 
			
		||||
		return subprocess.check_output(cmd, shell=True).decode("utf-8").strip()
 | 
			
		||||
endglobal
 | 
			
		||||
 | 
			
		||||
snippet ctx "Context" i
 | 
			
		||||
`!p snip.rv = vim.command_output('GetContext')`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
# General markdown
 | 
			
		||||
 | 
			
		||||
snippet ^h "Markdown header" r
 | 
			
		||||
# $1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet ^sec "Markdown section" r
 | 
			
		||||
## $1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet ^ssec "Markdown subsection" r
 | 
			
		||||
### $1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet ^sex "Markdown example section" r
 | 
			
		||||
## Example: $1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet ^ssex "Markdown example subsection" r
 | 
			
		||||
### Example: $1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
# Zettelkasten templating
 | 
			
		||||
 | 
			
		||||
snippet nl
 | 
			
		||||
*nld*: $1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet eng
 | 
			
		||||
*eng*: $1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet fr
 | 
			
		||||
*fra*: $1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet (de
 | 
			
		||||
*deu*: $1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet (nl
 | 
			
		||||
(*nld*: $1)
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet (eng
 | 
			
		||||
(*eng*: $1)
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet (fr
 | 
			
		||||
(*fra*: $1)
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet (de
 | 
			
		||||
(*deu*: $1)
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet in
 | 
			
		||||
(In [$1]($2))$3
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet liwhat "What?" A
 | 
			
		||||
`!p snip.rv = "* [What?](" + snip.basename + "_what)"`$1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet liwhy "Why?" A
 | 
			
		||||
`!p snip.rv = "* [Why?](" + snip.basename + "_why)"`$1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet < "Comment (html)"
 | 
			
		||||
<!-- $1 -->$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet <. "Comment (html) ..." i
 | 
			
		||||
<!-- ... -->$1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet <t "Thought (html)" i
 | 
			
		||||
<!--:::thought
 | 
			
		||||
$1
 | 
			
		||||
:::-->
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet <q "Question (html)" i
 | 
			
		||||
<!--:::question
 | 
			
		||||
$1
 | 
			
		||||
:::-->
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet <i "Idea (html)" i
 | 
			
		||||
<!--:::idea
 | 
			
		||||
$1
 | 
			
		||||
:::-->
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet <n "Note (html)" i
 | 
			
		||||
<!--:::note
 | 
			
		||||
$1
 | 
			
		||||
:::-->
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet td "Todo"
 | 
			
		||||
TODO${1:: $2}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet ref "References"
 | 
			
		||||
<!--references-->
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet sort "Sort"
 | 
			
		||||
<!--sort-->
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet foot "Footnotes"
 | 
			
		||||
<!--footnotes-->
 | 
			
		||||
[^0]:
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet def "Definition"
 | 
			
		||||
**Definition${1:: $2}**${3: [${4:citation}${5:, ${6:pointer}}]}
 | 
			
		||||
 | 
			
		||||
$7
 | 
			
		||||
 | 
			
		||||
___
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet theo "Theorem"
 | 
			
		||||
**Theorem${1:: $2}**${3: [${4:citation}${5:, ${6:pointer}}]}
 | 
			
		||||
 | 
			
		||||
$7
 | 
			
		||||
 | 
			
		||||
${8/(\w+).*/**Theorem** \n\n.../}
 | 
			
		||||
 | 
			
		||||
___
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet prop "Property"
 | 
			
		||||
**Property $1** [@]
 | 
			
		||||
 | 
			
		||||
$2
 | 
			
		||||
 | 
			
		||||
___
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet lemm "Lemma"
 | 
			
		||||
**Lemma $1** [@]
 | 
			
		||||
 | 
			
		||||
$2
 | 
			
		||||
 | 
			
		||||
___
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet coro "Corollary"
 | 
			
		||||
**Corollary $1** [@]
 | 
			
		||||
 | 
			
		||||
$2
 | 
			
		||||
 | 
			
		||||
___
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
# Greek symbols
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet alpha "Alpha"
 | 
			
		||||
\\alpha
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet beta "Beta"
 | 
			
		||||
\\beta
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet gamma "Gamma"
 | 
			
		||||
\\gamma
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet delta "Delta"
 | 
			
		||||
\\delta
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet epsilon "Epsilon"
 | 
			
		||||
\\epsilonilon
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet zeta "Zeta"
 | 
			
		||||
\\zeta
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet eta "Eta"
 | 
			
		||||
\\eta
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet theta "Theta"
 | 
			
		||||
\\theta
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet iota "Iota"
 | 
			
		||||
\\iota
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet kappa "Kappa"
 | 
			
		||||
\\kappa
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet lambda "Lambda" i
 | 
			
		||||
\\lambda
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet mu "Mu"
 | 
			
		||||
\\mu
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet nu "Nu"
 | 
			
		||||
\\nu
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet xi "Xi"
 | 
			
		||||
\\xi
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet omicron "Omicron"
 | 
			
		||||
\\omicron
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet pi "Pi"
 | 
			
		||||
\\pi
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet rho "Rho"
 | 
			
		||||
\\rho
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet sigma "Sigma"
 | 
			
		||||
\\sigma
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet tau "Tau"
 | 
			
		||||
\\tau
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet upsilon "Upsilon"
 | 
			
		||||
\\upsilon
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet phi "Phi"
 | 
			
		||||
\\phi
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet chi "Chi"
 | 
			
		||||
\\chi
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet psi "Psi"
 | 
			
		||||
\\psi
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet omega "Omega"
 | 
			
		||||
\\omega
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet Gamma "Gamma"
 | 
			
		||||
\\Gamma
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet Delta "Delta"
 | 
			
		||||
\\Delta
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet Theta "Theta"
 | 
			
		||||
\\Theta
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet Lambda "Lambda"
 | 
			
		||||
\\Lambda
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet Xi "Xi"
 | 
			
		||||
\\Xi
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet Pi "Pi"
 | 
			
		||||
\\Pi
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet Sigma "Sigma"
 | 
			
		||||
\\Sigma
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet Upsilon "Upsilon"
 | 
			
		||||
\\Upsilon
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet Phi "Phi"
 | 
			
		||||
\\Phi
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet Psi "Psi"
 | 
			
		||||
\\Psi
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet Omega "Omega"
 | 
			
		||||
\\Omega
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet asaw "Als en slechts als (woorden)" i
 | 
			
		||||
als en slechts als 
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet iffw "If and only if (words)" i
 | 
			
		||||
if and only if
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet asas "Als en slechts als (shorthand)" i
 | 
			
		||||
**asa**
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet iffs "If and only if (shorthand)" i
 | 
			
		||||
**iff**
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet beg "Begin"
 | 
			
		||||
\begin{$1}
 | 
			
		||||
$2
 | 
			
		||||
\end{$1}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet align "" i
 | 
			
		||||
\begin{align}
 | 
			
		||||
$1
 | 
			
		||||
\end{align}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet cases "" i
 | 
			
		||||
\begin{cases}
 | 
			
		||||
$1 \\\\
 | 
			
		||||
$2
 | 
			
		||||
\end{cases}
 | 
			
		||||
$3
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet tik "Tikzpicture" i
 | 
			
		||||
\begin{tikzpicture}
 | 
			
		||||
$1
 | 
			
		||||
\end{tikzpicture}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet matrix "Matrix" i
 | 
			
		||||
\begin{bmatrix}
 | 
			
		||||
$1
 | 
			
		||||
\end{bmatrix}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
# Insert anything after m/M in math mode
 | 
			
		||||
 | 
			
		||||
snippet "(\b)m(.*)" "MathJax" r
 | 
			
		||||
`!p snip.rv = match.group(1) + "$" + match.group(2) + "$"`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet (\b)M(.*) "MathJax block" irw
 | 
			
		||||
$$
 | 
			
		||||
`!p snip.rv = match.group(2)`
 | 
			
		||||
$$
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
# Calligraphic letters
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet c([A-z]) "Calligraphic A" r
 | 
			
		||||
`!p snip.rv = "\\mathcal{" + match.group(1) + "}"`$1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
# Subscripts
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet '([A-z])(\w+)' "Subscripts" irw
 | 
			
		||||
`!p snip.rv = match.group(1) + '_' + match.group(2) if len(match.group(2)) == 1 else match.group(1) + '_{' + match.group(2) + '}'`$1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
# MathJax
 | 
			
		||||
 | 
			
		||||
snippet fa "For all" i
 | 
			
		||||
\forall
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet frac "" i
 | 
			
		||||
\frac{$1}{$2}$3
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet set "" i
 | 
			
		||||
\\{$1\\}$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet N "" i
 | 
			
		||||
\mathbb{N}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet N0 "" i
 | 
			
		||||
\mathbb{N}_0
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet N+ "" i
 | 
			
		||||
\mathbb{N}^+
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet Z "" i
 | 
			
		||||
\mathbb{Z}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet Z0 "" i
 | 
			
		||||
\mathbb{Z}_0
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet Z+ "" i
 | 
			
		||||
\mathbb{Z}^+
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet R "" i
 | 
			
		||||
\mathbb{R}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet R0 "" i
 | 
			
		||||
\mathbb{R}_0
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet R+ "" i
 | 
			
		||||
\mathbb{R}^+
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet C "" i
 | 
			
		||||
\mathbb{C}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet lim "" i
 | 
			
		||||
\lim_{$1}$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet limn "" i
 | 
			
		||||
\lim_{n \to \infty}$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet binom "" i
 | 
			
		||||
\binom{$1}{$2}$3
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet andmath "description" i
 | 
			
		||||
\text{ and }
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet enmath "description" i
 | 
			
		||||
\text{ en }
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet lra "MathJax: long right arrow" i
 | 
			
		||||
\longrightarrow
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet Ra "MathJax: right arrow" i
 | 
			
		||||
\Rightarrow
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet Im "MathJax: image operator" i
 | 
			
		||||
\operatorname{Im}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet ggd "Grootste gemene deler" i
 | 
			
		||||
\operatorname{ggd}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet fl "Floating point" i
 | 
			
		||||
\operatorname{fl}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet Var "Variance" i
 | 
			
		||||
\operatorname{Var}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet E "Expectation" i
 | 
			
		||||
\operatorname{E}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet Cov "Covariance" i
 | 
			
		||||
\operatorname{Cov}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()" i
 | 
			
		||||
snippet ntup "Alpha"
 | 
			
		||||
(x_1, \ldots, x_n)
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet mxn "Matrix" i
 | 
			
		||||
m \times n
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet mxn- "Matrix" i
 | 
			
		||||
$m \times n$-matrix
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet nxn "Matrix" i
 | 
			
		||||
n \times n
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet det "Determinant" i
 | 
			
		||||
\operatorname{det}(${1:A})$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet det| "Determinant alternative notation" i
 | 
			
		||||
|${1:A}|$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet Span "Span" i
 | 
			
		||||
\operatorname{Span}\\{$1\\}$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet Nul "Null" i
 | 
			
		||||
\operatorname{Nul}($1)$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet Col "Column space" i
 | 
			
		||||
\operatorname{Col}($1)$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet kern "Kernel" i
 | 
			
		||||
\operatorname{kern}($1)$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet vec "Vector" i
 | 
			
		||||
\mathbf{$1}$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "math()"
 | 
			
		||||
snippet vec([A-z]) "Vector ..." r
 | 
			
		||||
`!p snip.rv = "\\mathbf{" + match.group(1) + "}"`$1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet v1tovp "Vectors v indexed from 1 to p"
 | 
			
		||||
\mathbf{v_1},...,\mathbf{v_p}$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet a1toan "Vectors a indexed from 1 to n"
 | 
			
		||||
\mathbf{a_1},...,\mathbf{v_n}$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet .. "Dot dot dot" i
 | 
			
		||||
\dots $1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet text "MathJax text" i
 | 
			
		||||
\text{$1}$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet leq "Less than or equal to" i
 | 
			
		||||
\leq
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet leq "Greater than or equal to" i
 | 
			
		||||
\geq
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet eat "Evaluated at" i
 | 
			
		||||
{\biggr\rvert}_{$1}$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet sketch "Link a sketch" i
 | 
			
		||||
[$1](file:///home/h/sketches/$2)
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet deck "Get anki deck"
 | 
			
		||||
`get-anki-decks`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
# snippet ` "Inline code" i
 | 
			
		||||
# `$1`
 | 
			
		||||
# endsnippet
 | 
			
		||||
 | 
			
		||||
# Escape backticks
 | 
			
		||||
snippet `` "Code block" bA
 | 
			
		||||
\`\`\`$1
 | 
			
		||||
$2
 | 
			
		||||
\`\`\`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet `tex "Latex block (see latex filter)" bA
 | 
			
		||||
\`\`\`{.tex}
 | 
			
		||||
$1
 | 
			
		||||
\`\`\`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet `tik "Tikz block (see tikz filter)" bA
 | 
			
		||||
\`\`\`{.tex}
 | 
			
		||||
\\begin{tikzpicture}
 | 
			
		||||
$1
 | 
			
		||||
\\end{tikzpicture}
 | 
			
		||||
\`\`\`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet task "Task" i
 | 
			
		||||
* [ ] $1 -- pro:$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet "(\b)fn(\d+)" "" ir
 | 
			
		||||
`!p snip.rv = snip.basename + "_" + match.group(2).zfill(2)`$1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet "ch(\d+)" "Link chapter" ir
 | 
			
		||||
`!p
 | 
			
		||||
num_str = match.group(1).zfill(2)
 | 
			
		||||
title = 3*"."
 | 
			
		||||
link = snip.basename + "_" + num_str
 | 
			
		||||
snip.rv = num_str + ". " + linkify(title, link)
 | 
			
		||||
`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet "ch(\d+)to(\d+)" "Link chapters ... to ..." irA
 | 
			
		||||
`!p
 | 
			
		||||
for i in range(int(match.group(1)), int(match.group(2)) + 1):
 | 
			
		||||
	num_str = str(i).zfill(2)
 | 
			
		||||
	title = 3*"."
 | 
			
		||||
	link = snip.basename + "_" + num_str
 | 
			
		||||
	snip.rv += num_str + ". " + linkify(title, link) + "\n"
 | 
			
		||||
`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet "sec([\sA-z]+)" "Link section titled ..." r
 | 
			
		||||
`!p
 | 
			
		||||
snip.rv = "* " + linkify(match.group(1), f"{snip.basename}_{slugify(match.group(1))}")
 | 
			
		||||
`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet cp(\d+) "Comment current page (and date)" r
 | 
			
		||||
`!p snip.rv = "<!--" + datetime.now().strftime("%Y-%m-%d") + " p. " + match.group(1) + "-->"`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet (\d+)! "Factorial of ..." r
 | 
			
		||||
`!p snip.rv = factorial(int(match.group(1)))`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet d "Date"
 | 
			
		||||
`!p snip.rv = datetime.now().strftime("%Y-%m-%d")`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet :(\w*) "Fence" r
 | 
			
		||||
`!p snip.rv += ":::" + FENCES.get(match.group(1) or "", "") + "\n" `$1
 | 
			
		||||
`!p snip.rv += ":::"`$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet \[(\w*) "Fence inline" ir
 | 
			
		||||
`!p snip.rv += "["`$1`!p snip.rv += "]{." + FENCES.get(match.group(1) or "", "") + "}"`$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet ^eg "Example" r
 | 
			
		||||
E.g. $1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
# E.g. after list (or list preceded by space)
 | 
			
		||||
snippet (\*\s|\*)eg "Example" r
 | 
			
		||||
* E.g. $1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
# E.g. after dot (or dot preceded by space)
 | 
			
		||||
snippet (\.\s|\.)eg "Example" r
 | 
			
		||||
. E.g. $1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet (?<!^|\*\s|\*|\.\s|\.)eg "Example" r
 | 
			
		||||
e.g. $1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
# Zettelkasten to Anki
 | 
			
		||||
 | 
			
		||||
snippet td "TARGET DECK: <Deck name>"
 | 
			
		||||
TARGET DECK: $1::$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet clo "Cloze"
 | 
			
		||||
START
 | 
			
		||||
Cloze
 | 
			
		||||
${0:${VISUAL}}$1
 | 
			
		||||
END
 | 
			
		||||
$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet clos "Cloze start"
 | 
			
		||||
START
 | 
			
		||||
Cloze
 | 
			
		||||
$1
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet cloe "Cloze end"
 | 
			
		||||
END
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet clod
 | 
			
		||||
START
 | 
			
		||||
Cloze
 | 
			
		||||
**Definition$1**
 | 
			
		||||
 | 
			
		||||
$2
 | 
			
		||||
END
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet clop
 | 
			
		||||
START
 | 
			
		||||
Cloze
 | 
			
		||||
**Property$1**
 | 
			
		||||
 | 
			
		||||
$2
 | 
			
		||||
END
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet clot
 | 
			
		||||
START
 | 
			
		||||
Cloze
 | 
			
		||||
**Theorem$1**
 | 
			
		||||
 | 
			
		||||
$2
 | 
			
		||||
END
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet clol
 | 
			
		||||
START
 | 
			
		||||
Cloze
 | 
			
		||||
**Lemma$1**
 | 
			
		||||
 | 
			
		||||
$2
 | 
			
		||||
END
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet "c(\d+)" "Cloze <number>" r
 | 
			
		||||
{{c`!p snip.rv = int(match.group(1))`::${0:${VISUAL}}$1}}$2
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
# Match preceded by whitespace or start of line
 | 
			
		||||
snippet (?<!\S)z($|t|l|z|o|\.) "Zotero" r
 | 
			
		||||
`!p
 | 
			
		||||
 | 
			
		||||
ACTIONS = {
 | 
			
		||||
	"": "get_citekey",
 | 
			
		||||
	"t": "get_title",
 | 
			
		||||
	"l": "get_link",
 | 
			
		||||
	"z": "get_citekey_brackets",
 | 
			
		||||
	"o": "get_file",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
snip.rv = zot(ACTIONS.get(match.group(1)))
 | 
			
		||||
`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet zq "Zotero quote" r
 | 
			
		||||
`!p snip.rv = '>\n> --' + zot("get_citekey_brackets")`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet acz "According to ..."
 | 
			
		||||
`!p snip.rv = "According to " + zot("get_citekey")`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet azex "As ... explains"
 | 
			
		||||
`!p snip.rv = "As " + zot("get_citekey") + " explains, "`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet iz "In ..."
 | 
			
		||||
`!p snip.rv = "In " + zot("get_citekey")`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet izd "In ...'s definition"
 | 
			
		||||
`!p snip.rv = "In " + zot("get_citekey") + "'s definition, "`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet zintends "... intends to ..." A
 | 
			
		||||
`!p snip.rv = zot("get_citekey") + " intends to "`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet tfol "The following" wA
 | 
			
		||||
the following
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet tfolt "It follows that" wA
 | 
			
		||||
it follows that
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet ntfol "In the following" wA
 | 
			
		||||
in the following
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet algos "algorithms" wA
 | 
			
		||||
algorithms
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet algo "algorithm" wA
 | 
			
		||||
algorithm
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
# TODO: Make only available in tikzpicture
 | 
			
		||||
context "code()"
 | 
			
		||||
snippet q "State" w
 | 
			
		||||
\node[state] ($1) [] {$2};
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
context "code()"
 | 
			
		||||
snippet q0 "Initial state" w
 | 
			
		||||
\node[initial,state] ($1) {$2};
 | 
			
		||||
endsnippet
 | 
			
		||||
| 
						 | 
				
			
			@ -1,20 +0,0 @@
 | 
			
		|||
snippet reqtrace "(#%require racket/trace)" b
 | 
			
		||||
(#%require racket/trace)
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet strln "(string-length <string>)" b
 | 
			
		||||
(string-length $0)
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet impb "Import rnrs base libraries" b
 | 
			
		||||
(import (rnrs base (6))
 | 
			
		||||
        (rnrs io simple)$0)
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet def "(define <name> <variable>)" b
 | 
			
		||||
(define $0 $1)
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet defp "(define (<procedure-name> <arguments>))" b
 | 
			
		||||
(define ($0 $1))
 | 
			
		||||
endsnippet
 | 
			
		||||
| 
						 | 
				
			
			@ -1,19 +0,0 @@
 | 
			
		|||
extends html, javascript, css
 | 
			
		||||
 | 
			
		||||
snippet oM
 | 
			
		||||
onMount(() => $0)
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet oD
 | 
			
		||||
onDestroy(() => $0)
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet preJsf "JSON.stringify (formatted and wrapped)"
 | 
			
		||||
<pre>
 | 
			
		||||
{JSON.stringify($0, 0, 2)}
 | 
			
		||||
</pre>
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet :g "Open :global("
 | 
			
		||||
:global(
 | 
			
		||||
endsnippet
 | 
			
		||||
| 
						 | 
				
			
			@ -1,78 +0,0 @@
 | 
			
		|||
#
 | 
			
		||||
# Inspired by https://castel.dev/post/lecture-notes-1/
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
snippet beg "begin{} / end{}" b
 | 
			
		||||
\begin{$1}
 | 
			
		||||
	$0
 | 
			
		||||
\end{$1}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet def "begin{definition} / end{definition}" b
 | 
			
		||||
\begin{definition}
 | 
			
		||||
	$0
 | 
			
		||||
\end{defintion}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet fig "begin{figure} / end{figure}" b
 | 
			
		||||
\begin{figure}
 | 
			
		||||
	$0
 | 
			
		||||
\end{figure}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet time "Time"
 | 
			
		||||
`date +%R`
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet i
 | 
			
		||||
\textit{$0}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet b
 | 
			
		||||
\textbf{$0}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet center
 | 
			
		||||
\begin{center}
 | 
			
		||||
$0
 | 
			
		||||
\end{center}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet pac
 | 
			
		||||
\usepackage{$0}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet foot
 | 
			
		||||
\footnote{$0}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
# snippet m "Math" wA
 | 
			
		||||
# $${1}$`!p
 | 
			
		||||
# if t[2] and t[2][0] not in [',', '.', '?', '-', ' ']:
 | 
			
		||||
#		snip.rv = ' '
 | 
			
		||||
# else:
 | 
			
		||||
#		snip.rv = ''
 | 
			
		||||
# `$2
 | 
			
		||||
# endsnippet
 | 
			
		||||
 | 
			
		||||
snippet dm "Math" wA
 | 
			
		||||
\[
 | 
			
		||||
$1
 | 
			
		||||
\]$0
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet ch
 | 
			
		||||
\chapter{$0}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet sec
 | 
			
		||||
\section{$0}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet ssec
 | 
			
		||||
\subsection{$0}
 | 
			
		||||
endsnippet
 | 
			
		||||
 | 
			
		||||
snippet sssec
 | 
			
		||||
\subsubsection{$0}
 | 
			
		||||
endsnippet
 | 
			
		||||
		Loading…
	
		Reference in New Issue