24ce8f3Migrate '.vim/plugin' to neovime3d9612Remove vim yin/yang colorschemes05986a3Migrate '.vim/ftplugin' to neovim05bc2ecMigrate vim snippets to neovim (LuaSnip)128ae8eMigrate '.vim/ftdetect/prolog' to neovimf3188f7Migrate '.vim/after/syntax' to neovim85d56f9Migrate vim init config to neovimafca2caMigrate '.vim/after' to neovimd6875c9Add 'eslint_d' PID to 'nvim-lint' config568e45fRemove jira aliases78fa170Disable 'xdg-user-dirs' by default5216f79Alias bash 'history' command to 'h'0f29dc3Add neovim dependencies to flakec901a1ctestdc4ebfcMerge commit '490998275cbdc5ff032d4a39794bf850f4bfefec'73fd4afAdd neovim 'auto-session' plugin setupff47da9Add minimal readme to my neovim configuration6dff3ebAdd minimal readme to my neovim configurationc94ccd3Remove neovim lazy load related config75ca003Fall back to 'paq.nvim' only when not on 'nixCats'78094a0Add 'nixCatsUtils' from 'nixCats'6e81624Add neovim packages to 'nixCats' flake6ded0b1Add minimal 'nixCats' flake templated0550b3Link NixOS repo in dotfiles repository git-subtree-dir: dots git-subtree-split:24ce8f39af
943 lines
16 KiB
Lua
943 lines
16 KiB
Lua
local ls = require("luasnip")
|
|
local s = ls.snippet
|
|
local i = ls.insert_node
|
|
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
|
|
return sn(nil, i(1, parent.snippet.env.LS_SELECT_RAW))
|
|
else
|
|
return sn(nil, i(1))
|
|
end
|
|
end
|
|
|
|
return {
|
|
s(
|
|
{ trig = "^h", regTrig = true, dscr = "Markdown header" },
|
|
fmta("# <><>", {
|
|
d(1, get_visual),
|
|
i(0),
|
|
})
|
|
),
|
|
s(
|
|
{ trig = "^sec", regTrig = true, dscr = "Markdown header" },
|
|
fmta("## <><>", {
|
|
d(1, get_visual),
|
|
i(0),
|
|
})
|
|
),
|
|
s(
|
|
{ trig = "^ssec", regTrig = true, dscr = "Markdown header" },
|
|
fmta("### <><>", {
|
|
d(1, get_visual),
|
|
i(0),
|
|
})
|
|
),
|
|
}
|