diff --git a/.config/nvim/snips/css.lua b/.config/nvim/snips/css.lua index 233e536..b48635c 100644 --- a/.config/nvim/snips/css.lua +++ b/.config/nvim/snips/css.lua @@ -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), diff --git a/.config/nvim/snips/pandoc.lua b/.config/nvim/snips/pandoc.lua index d636602..4bc29bf 100644 --- a/.config/nvim/snips/pandoc.lua +++ b/.config/nvim/snips/pandoc.lua @@ -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)" +-- $2 +-- endsnippet +-- +-- snippet <. "Comment (html) ..." i +-- $1 +-- endsnippet +-- +-- snippet +-- endsnippet +-- +-- snippet +-- endsnippet +-- +-- snippet +-- endsnippet +-- +-- snippet +-- endsnippet +-- +-- snippet td "Todo" +-- TODO${1:: $2} +-- endsnippet +-- +-- snippet ref "References" +-- +-- endsnippet +-- +-- snippet sort "Sort" +-- +-- endsnippet +-- +-- snippet foot "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 = ""` +-- 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 (?" +-- 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 " r +-- {{c`!p snip.rv = int(match.group(1))`::${0:${VISUAL}}$1}}$2 +-- endsnippet +-- +-- # Match preceded by whitespace or start of line +-- snippet (?\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 diff --git a/.config/nvim/snips/scheme.lua b/.config/nvim/snips/scheme.lua new file mode 100644 index 0000000..b452668 --- /dev/null +++ b/.config/nvim/snips/scheme.lua @@ -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("))"), + }), +} diff --git a/.config/nvim/snips/tex.lua b/.config/nvim/snips/tex.lua new file mode 100644 index 0000000..1bca1a1 --- /dev/null +++ b/.config/nvim/snips/tex.lua @@ -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("}")), +}) diff --git a/.vim/snips/all.snippets b/.vim/snips/all.snippets deleted file mode 100644 index 63c2db3..0000000 --- a/.vim/snips/all.snippets +++ /dev/null @@ -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 diff --git a/.vim/snips/css.snippets b/.vim/snips/css.snippets deleted file mode 100644 index deb9e3f..0000000 --- a/.vim/snips/css.snippets +++ /dev/null @@ -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 diff --git a/.vim/snips/glsl.snippets b/.vim/snips/glsl.snippets deleted file mode 100644 index c8f916a..0000000 --- a/.vim/snips/glsl.snippets +++ /dev/null @@ -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 diff --git a/.vim/snips/javascript.snippets b/.vim/snips/javascript.snippets deleted file mode 100644 index 3f00b27..0000000 --- a/.vim/snips/javascript.snippets +++ /dev/null @@ -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 diff --git a/.vim/snips/pandoc.snippets b/.vim/snips/pandoc.snippets deleted file mode 100644 index f2c8ce0..0000000 --- a/.vim/snips/pandoc.snippets +++ /dev/null @@ -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)" -$2 -endsnippet - -snippet <. "Comment (html) ..." i -$1 -endsnippet - -snippet -endsnippet - -snippet -endsnippet - -snippet -endsnippet - -snippet -endsnippet - -snippet td "Todo" -TODO${1:: $2} -endsnippet - -snippet ref "References" - -endsnippet - -snippet sort "Sort" - -endsnippet - -snippet foot "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 = ""` -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 (?" -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 " r -{{c`!p snip.rv = int(match.group(1))`::${0:${VISUAL}}$1}}$2 -endsnippet - -# Match preceded by whitespace or start of line -snippet (?\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 diff --git a/.vim/snips/scheme.snippets b/.vim/snips/scheme.snippets deleted file mode 100644 index b8e3828..0000000 --- a/.vim/snips/scheme.snippets +++ /dev/null @@ -1,20 +0,0 @@ -snippet reqtrace "(#%require racket/trace)" b -(#%require racket/trace) -endsnippet - -snippet strln "(string-length )" b -(string-length $0) -endsnippet - -snippet impb "Import rnrs base libraries" b -(import (rnrs base (6)) - (rnrs io simple)$0) -endsnippet - -snippet def "(define )" b -(define $0 $1) -endsnippet - -snippet defp "(define ( ))" b -(define ($0 $1)) -endsnippet diff --git a/.vim/snips/svelte.snippets b/.vim/snips/svelte.snippets deleted file mode 100644 index f4cd5eb..0000000 --- a/.vim/snips/svelte.snippets +++ /dev/null @@ -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)" -
-{JSON.stringify($0, 0, 2)}
-
-endsnippet - -snippet :g "Open :global(" -:global( -endsnippet diff --git a/.vim/snips/tex.snippets b/.vim/snips/tex.snippets deleted file mode 100644 index dee379d..0000000 --- a/.vim/snips/tex.snippets +++ /dev/null @@ -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