From 6260aefe2204bcfabb6b82d1d93f67e5f55a7e51 Mon Sep 17 00:00:00 2001
From: foo-dogsquared <foo.dogsquared@gmail.com>
Date: Thu, 15 Aug 2019 11:52:35 +0800
Subject: [PATCH] Create the UltiSnips snippets

---
 vim/own-snippets/all.snippets      |  31 ++
 vim/own-snippets/snippets.snippets |  14 +
 vim/own-snippets/tex.snippets      | 868 +++++++++++++++++++++++++++++
 3 files changed, 913 insertions(+)
 create mode 100644 vim/own-snippets/all.snippets
 create mode 100644 vim/own-snippets/snippets.snippets
 create mode 100644 vim/own-snippets/tex.snippets

diff --git a/vim/own-snippets/all.snippets b/vim/own-snippets/all.snippets
new file mode 100644
index 0000000..f3d22fb
--- /dev/null
+++ b/vim/own-snippets/all.snippets
@@ -0,0 +1,31 @@
+global !p
+from datetime import datetime, timedelta
+
+def relative_date(days):
+    time_difference = timedelta(days=int(days))
+    calculated_date = datetime.today() + time_difference
+
+    return calculated_date  
+endglobal
+
+snippet "reldate (\d+)" "Prints out the relative date in ISO format." ri
+`!p 
+reldate = relative_date(match.group(1))
+snip.rv = reldate.strftime("%F")
+`
+endsnippet
+
+snippet today "Prints out today's date in ISO format" i
+`!p
+from datetime import datetime
+
+snip.rv = datetime.today().strftime("%F")
+`
+endsnippet
+
+snippet sign "Quick signature" i
+${1:Sincerely,}
+${2:Gabriel Arazas}
+$0
+endsnippet
+
diff --git a/vim/own-snippets/snippets.snippets b/vim/own-snippets/snippets.snippets
new file mode 100644
index 0000000..54afb72
--- /dev/null
+++ b/vim/own-snippets/snippets.snippets
@@ -0,0 +1,14 @@
+snippet usnip "A working snippet for creating UltiSnips snippets" ib
+`!p snip.rv = "snippet"` ${1:<word_trigger>} ${2:<description>} ${3:<flags>}
+$4
+`!p snip.rv = "endsnippet"`
+$0
+endsnippet
+
+snippet uglobal "A working global snippets for UltiSnips" ib
+`!p snip.rv = "global"` ${2:!p}
+$1
+`!p snip.rv = "endglobal"`
+$0
+endsnippet
+
diff --git a/vim/own-snippets/tex.snippets b/vim/own-snippets/tex.snippets
new file mode 100644
index 0000000..f62c0a6
--- /dev/null
+++ b/vim/own-snippets/tex.snippets
@@ -0,0 +1,868 @@
+global !p
+texMathZones = ['texMathZone'+x for x in ['A', 'AS', 'B', 'BS', 'C', 'CS', 'D', 'DS', 'E', 'ES', 'F', 'FS', 'G', 'GS', 'H', 'HS', 'I', 'IS', 'J', 'JS', 'K', 'KS', 'L', 'LS', 'DS', 'V', 'W', 'X', 'Y', 'Z']]
+
+texIgnoreMathZones = ['texMathText']
+
+texMathZoneIds = vim.eval('map('+str(texMathZones)+", 'hlID(v:val)')")
+texIgnoreMathZoneIds = vim.eval('map('+str(texIgnoreMathZones)+", 'hlID(v:val)')")
+
+ignore = texIgnoreMathZoneIds[0]
+
+def smart_space(next_str, auto_str=" "):
+    if next_str and next_str[0] in [",", ".", "-", "!", "?", " "]:
+        snip.rv = auto_str
+    else:
+        snip.rv = ""
+endglobal
+
+snippet template "Main template (that should work without relying with style files)" bi
+\documentclass[class=memoir, crop=false, oneside, 14pt]{standalone}
+
+% all of the packages to be used
+\usepackage[nocomments]{standalone}
+\usepackage{chngcntr}
+\usepackage{import}
+\usepackage[utf8]{inputenc}
+\usepackage{fontawesome}
+\usepackage[english]{babel}
+\usepackage[rgb]{xcolor}
+\usepackage{amsmath}
+\usepackage{amssymb}
+\usepackage{amsthm}
+\usepackage{tikz}
+\usepackage{pgfplots}
+\usepackage{fancyhdr}
+\usepackage{minted}
+\usepackage[most]{tcolorbox}
+\usepackage[colorlinks=true, linkcolor=., urlcolor=blue]{hyperref}
+\usepackage{kpfonts}
+
+% using the fancy header package
+% http://linorg.usp.br/CTAN/macros/latex/contrib/fancyhdr/fancyhdr.pdf
+\pagestyle{fancy}
+
+% fill the header with the format
+\fancyhead[L]{\doctitle}
+\fancyhead[R]{\nouppercase{\rightmark}}
+
+% fill the footer with the format
+\fancyfoot[C]{\nouppercase{\leftmark}}
+\fancyfoot[R]{\thepage}
+
+% set the width of the horizontal bars in the header
+\renewcommand{\headrulewidth}{2pt}
+\renewcommand{\footrulewidth}{1pt}
+
+% set the paragraph formatting
+\renewcommand{\baselinestretch}{1.35}
+
+% set chapter style
+\chapterstyle{bianchi}
+
+% set chapter spacing for easier reading on digital screen
+\setlength{\beforechapskip}{-\beforechapskip}
+
+% document metadata
+\author{${1:"Gabriel Arazas"}}
+\title{${2:"New Title"}}
+\date{`!p
+`}
+
+\begin{document}
+% Frontmatter of the class note if it's compiled standalone
+\renewcommand{\abstractname}{Summary}
+\maketitle
+\newpage
+
+\frontmatter
+\chapter{Preface}
+$3
+\newpage
+
+\tableofcontents
+\newpage
+
+\listoffigures
+\newpage
+
+\mainmatter
+% Core content (HINT: always start with chapter LaTeX tag)
+
+$0
+\end{document}
+endsnippet
+
+# Document structure tags
+snippet chapter "Chapter element" bi
+\chapter{$1}
+\label{ch:$1}
+$0
+endsnippet
+
+snippet section "Section tag" bi
+\section{$1}
+\label{sec:$1}
+$0
+endsnippet
+
+snippet subsec "Subsection tag" bi
+\subsection{$1}
+\label{subsec:$1}
+$0
+endsnippet  
+
+# Common commands
+snippet pack "Use package command" i
+\usepackage`!p smart_space(t[2], "[")`$2`!p smart_space(t[2], "]")`{$1}
+$0
+endsnippet
+
+snippet letter "Make at letter block" i
+\makeatletter
+$1
+\makeatother
+$0
+endsnippet
+
+snippet label "Create a label" i
+\label{$1}
+$0
+endsnippet
+
+snippet ref "Create a reference for a label" i
+\ref{${1:<label to be referenced>}} $0
+endsnippet
+
+snippet foot "Footnote"
+\footnote{${1:<text>}} $0
+endsnippet
+
+# Common environments
+snippet begin "Simple empty environment" bi
+\begin{$1}
+$2
+\end{$1}
+$0
+endsnippet
+
+snippet ml "Math mode (inline)" i
+$${1}$`!p smart_space(t[2])`$2
+endsnippet
+
+snippet mb "Math block" bi
+\begin{equation*}
+$1
+\end{equation*}
+$0
+endsnippet
+
+snippet equation "Equation environment for mathematical typesetting" bi
+\begin{equation}
+\label{eq:$1}
+$2
+\end{equation}
+$0
+endsnippet
+
+snippet figure "Figure environment" bi
+\begin{figure}
+\centering
+\label{fig:$1}
+$2
+\caption{${3:$1}}
+\end{figure}
+$0
+endsnippet
+
+snippet plot "Quickly plot a graph" bi
+\begin{figure}[$1]
+\centering
+\begin{tikzpicture}
+    \begin{axis}[
+	xlabel=$x$,
+	ylabel=$y$,
+	xmin= ${2:-10}, xmax= ${3:10},
+	ymin= ${4:-10}, ymax = ${5:10},
+	axis lines = middle,
+    ]
+	\addplot[domain=$2:$3, samples=${6:100}]{$7};
+    \end{axis}
+\end{tikzpicture}
+\caption{$8}
+\label{fig:${9:$8}}
+\end{figure}
+$0
+endsnippet
+
+snippet iplot "Quickly plot a graph with integers" bi
+\begin{figure}[$1]
+\centering
+\begin{tikzpicture}
+    \begin{axis}[
+	xlabel=$x$,
+	ylabel=$y$,
+	axis lines = middle,
+    ]
+	\addplot[domain=$2:$3, samples=`!p snip.rv=abs(t[2]) + abs(t[3]) + 1`]{$4};
+    \end{axis}
+\end{tikzpicture}
+\caption{$5}
+\label{${9:$6}}
+\end{figure}
+$0
+endsnippet
+
+# Common mathematical functions and symbols 
+# Also take note that most expressions are prepended with 'M' to mean mathematical usage
+snippet === "Equivalent to" i
+\equiv
+endsnippet
+
+snippet ~= "Congruent to" i
+\cong
+endsnippet
+
+snippet ~~ "Approximately equal to" i
+\approx
+endsnippet
+
+snippet p= "Proportional to" i
+\propto
+endsnippet
+
+snippet != "Not equal" i
+\neq
+endsnippet
+
+snippet <= "Greater than or equal to" i
+\geq
+endsnippet
+
+snippet !> "Not greater than" i
+\ngtr
+endsnippet
+
+snippet >= "Less than or equal to" i
+\leq
+endsnippet
+
+snippet !< "Not less than" i
+\nless
+endsnippet
+
+snippet <-- "Precedes symbol" i
+\prec
+endsnippet
+
+snippet =<- "Precedes or equals" i
+\preceq
+endsnippet
+
+snippet !<- "Not precedes" i
+\nprec
+endsnippet
+
+snippet --> "Succeeds symbol" i
+\succ
+endsnippet
+
+snippet =-> "Succeeds or equals" i
+\succeq
+endsnippet
+
+snippet !-> "Not succeeds" i
+\nsucc
+endsnippet
+
+snippet << "Less order than" i
+\ll
+endsnippet
+
+snippet >> "Greater order than" i
+\gg
+endsnippet
+
+snippet int "Integral symbol" i
+\int
+endsnippet
+
+snippet -int "Integral with values" i
+\int_{${1:<lower bound>}}^{${2:<upper bound}}$0
+endsnippet
+
+snippet OO "Empty set" i
+\O
+endsnippet
+
+snippet -sq "Square superscript" i
+^{2}$0
+endsnippet
+
+snippet -cb "Cube superscript" i
+^{3}$0
+endsnippet
+
+snippet -- "Superscript" iA
+^{$1}$0
+endsnippet
+
+snippet __ "Subscript" iA
+_{$1}$0
+endsnippet
+
+snippet ... "Ellipsis" i
+\ldots
+endsnippet
+
+snippet c.. "Centered ellipsis" i
+\cdots
+endsnippet
+
+snippet v.. "Vertical ellipsis" i
+\vdots
+endsnippet
+
+snippet d.. "Diagonal ellipsis" i
+\ddots
+endsnippet
+
+snippet Mbc "Mathematical because symbol" i
+\because
+endsnippet
+
+snippet Mth "Mathematical therefore symbol" i
+\therefore
+endsnippet
+
+snippet exp "Expression" i
+\exp(${1:x}} $0
+endsnippet
+
+snippet frac "Fraction" i
+\frac{${1:<enumerator>}{${2:<denominator}}
+$0
+endsnippet
+
+snippet "-(\d+|\w+) over (\d+|\w+)-" "Quick fraction" riA
+`!p snip.rv = f"\\frac{{{match.group(1)}}}{{{match.group(2)}}}"`
+$0
+endsnippet
+
+snippet "-(\d+|\w+) / (\d+|\w+)-" "Quick fraction" riA
+`!p snip.rv = f"\\frac{{{match.group(1)}}}{{{match.group(2)}}}"`
+$0
+endsnippet
+
+snippet mod "Mod operator (as binary operator)" i
+\bmod $0
+endsnippet
+
+## Common notations
+snippet sum "Sigma notation symbol" i
+\sum
+endsnippet
+
+snippet -sum "Sigma notation" i
+\sum_{${1:<lower bound>}^{${2:<upper bound>}} f(${3:<function expression>})
+$0
+endsnippet
+
+snippet prod "Product notation symbol" i
+\prod
+endsnippet
+
+snippet -prod "Product notation" i 
+\prod_{${1:<lower bound>}^{${2:upper bound}} f(${3:<function expression>})
+$0
+endsnippet
+
+snippet lim "Limit keyword" i
+\lim
+endsnippet
+
+snippet -lim "Limit operator" i
+\lim\limits_{${1:x \to \infty}}
+endsnippet
+
+snippet ooo "Infinity symbol" i
+\infty
+endsnippet
+
+snippet inf "Infinity symbol" i
+\infty
+endsnippet
+
+snippet choose "Choose function" i
+\binom{${1:<range>}}{${2:<N>}}
+$0
+endsnippet
+
+snippet "-(\d+|\w+) choose (\d+|\w+)-" "Quick choose function" riA
+`!p snip.rv = f"\\binom{{{match.group(1)}}}{{{match.group(2)}}}"`
+$0
+endsnippet
+
+## Common sets of numbers
+snippet SN "Set of natural numbers" i
+\N
+endsnippet
+
+snippet SZ "Set of integers" i
+\Z
+endsnippet
+
+snippet SQ "Set of rational numbers" i
+\Q
+endsnippet
+
+snippet SA "Set of algebraic numbers" i
+\mathbb{A}
+endsnippet
+
+snippet SR "Set of real numbers" i
+\R
+endsnippet
+
+snippet SC "Set of complex numbers" i
+\C
+endsnippet
+
+## Common mathematical logic symbols
+snippet Lin "Logical in symbol" i
+\in
+endsnippet
+
+snippet L!in "Logical not in symbol" i
+\notin
+endsnippet
+
+snippet Lon "Logical owns symbol" i
+\ni
+endsnippet
+
+snippet LSu "Logical set union" i
+\cup
+endsnippet
+
+snippet LSi "Logical set interaction" i
+\cap
+endsnippet
+
+snippet LSd "Logical set difference" i
+\setminus
+endsnippet
+
+snippet Lex "There exists at least one" i
+\exists
+endsnippet
+
+snippet Lex! "There exists one and only one" i
+\exists!
+endsnippet
+
+snippet L!ex "Not exists" i
+\nexists
+endsnippet
+
+snippet Lfa "For all" i
+\forall
+endsnippet
+
+snippet Lor "Logical 'or' symbol" i
+\lor
+endsnippet
+
+snippet Land "Logical 'and' symbol" i
+\land
+endsnippet
+
+snippet Lnot "Logical 'not' symbol" i
+\neg
+endsnippet
+
+snippet => "Implies" Ai
+\implies
+endsnippet
+
+snippet =< "Implied by" Ai
+\impliedby
+endsnippet
+
+snippet <=> "If and only if" i
+\iff
+endsnippet
+
+snippet iff "If and only if" i
+\iff
+endsnippet
+
+snippet (( "Subset" i
+\subset
+endsnippet
+
+snippet !( "Not a proper subset" i
+\not\subset
+endsnippet
+
+snippet =( "Subset is equal to" i
+\subseteq
+endsnippet
+
+snippet !=( "Not a subset of" i
+\nsubseteq
+endsnippet
+
+snippet )) "A proper subset of" i
+\supset
+endsnippet
+
+snippet !) "Not a proper superset of" i
+\not\supset
+endsnippet
+
+snippet =) "A subset of" i
+\supseteq
+endsnippet
+
+snippet !=) "Not a superset of" i
+\nsupseteq
+endsnippet
+
+## Common functions
+### Trigonometric functions
+snippet Msin "Sine function" i
+\sin`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet Mcos "Cosine function" i
+\cos`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet Mtan "Tangent function" i
+\tan`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet Mcsc "Cosecant function" i
+\csc`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet Msec "Secant function" i
+\sec`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet Mcot "Cotangent function" i
+\cot`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+### Inverse trigonometric functions
+snippet M!sin "Inverse sine keyword" i
+\arcsin`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet M!cos "Inverse cosine keyword" i
+\arccos`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet M!tan "Inverse tangent keyword" i
+\arctan`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet M!csc "Inverse cosecant keyword" i
+\arccsc`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet M!sec "Inverse secant keyword" i
+\arcsec`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet M!cot "Inverse cotangent" i
+\arccot`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+### Hyperbolic trigonometric functions
+snippet Msinh "Hyperbolic sine" i
+\sinh`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet Mcosh "Hyperbolic cosine" i
+\cosh`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet Mtanh "Hyperbolic tangent" i
+\tanh`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet Mcsch "Hyperbolic cosecant" i
+\operatorname{csch}`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet Msech "Hyperbolic secant" i
+\operatorname{sech}`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet Mcoth "Hyperbolic cotangent" i
+\coth`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+### Inverse hyperbolic trigonometric functions
+snippet M!sinh "Inverse hyperbolic sine" i
+\operatorname{arsinh}`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet M!cosh "Inverse hyperbolic cosine" i
+\operatorname{arcosh}`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet M!tanh "Inverse hyperbolic tangent" i
+\operatorname{artanh}`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet M!csch "Inverse hyperbolic cosecant" i
+\operatorname{arcsch}`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet M!sech "Inverse hyperbolic secant" i
+\operatorname{arsech}`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+snippet M!coth "Inverse hyperbolic cotangent" i
+\operatorname{arcoth}`!p smart_space(t[1], "(")`$1`!p smart_space(t[1], ")")`
+endsnippet
+
+## Common symbols found in geometry
+snippet Gov "Overline" i
+\overline{$1}
+endsnippet
+
+snippet ----- "Overline" i
+\overline{$1}
+endsnippet
+
+snippet Gra "Right arrow" i
+\overrightarrow{$1}
+endsnippet
+
+snippet ----> "Right arrow" i
+\overrightarrow{$1}
+endsnippet
+
+snippet Gang "Angle symbol" i
+\angle
+endsnippet
+
+snippet Gman "Measured angle symbol" i
+\measuredangle
+endsnippet
+
+snippet Gtri "Triangle" i
+\triangle
+endsnippet
+
+snippet Gpar "Parallel with" i
+\|
+endsnippet
+
+snippet G!par "Not parallel with" i
+\nparallel
+endsnippet
+
+snippet Gper "Perpendicular to" i
+\perp
+endsnippet
+
+snippet G!per "Not perpendicular to" i
+\not\perp
+endsnippet
+
+# Text formatting
+snippet bf "Boldface text" i
+\textbf{$1}$0
+endsnippet
+
+snippet it "Italic text" i
+\emph{$1}$0
+endsnippet
+
+snippet tt "Teletype font" i
+\texttt{$1}$0
+endsnippet
+
+snippet ol "Enumerated list (ordered list)" i
+\begin{enumerate}
+$1
+\end{enumerate}
+$0
+endsnippet
+
+snippet ul "Itemized list (unordered list)" i
+\begin{itemize}
+$1
+\end{itemize}
+$0
+endsnippet
+
+snippet li "List item for the OL/UL lists" i
+\item{$1}
+$0
+endsnippet
+    
+snippet a "URL links (with description)" i
+\href{${1:<url>}{${2:<description>}}$0
+endsnippet
+
+snippet al "Reference links with label" i
+\autoref{${1:<label>}}$0
+endsnippet
+
+# Greek letters
+snippet GAA "Uppercase Greek letter alpha" 
+\Alpha
+endsnippet
+
+snippet GAa "Lowercase Greek letter alpha"
+\alpha
+endsnippet
+
+snippet GBB "Uppercase Greek letter beta"
+\Beta
+endsnippet
+
+snippet GBb "Lowercase Greek letter beta"
+\beta
+endsnippet
+
+snippet GCC "Uppercase Greek letter gamma"
+\Gamma
+endsnippet
+
+snippet GCc "Lowercase Greek letter gamma"
+\gamma
+endsnippet
+
+snippet GDD "Uppercase Greek letter delta"
+\Delta
+endsnippet
+
+snippet GDd "Lowercase Greek letter delta"
+\delta
+endsnippet
+
+snippet GEE "Uppercase Greek letter epsilon"
+\Epsilon
+endsnippet
+
+snippet GEe "Lowercase Greek letter epsilon"
+\epsilon
+endsnippet
+
+snippet GVEe "Variation Greek letter epsilon"
+\varepsilon
+endsnippet
+
+snippet GTT "Uppercase Greek letter theta"
+\Theta
+endsnippet
+
+snippet GTt "Lowercase Greek letter theta"
+\theta
+endsnippet
+
+snippet GLL "Uppercase Greek letter lambda"
+\Lambda
+endsnippet
+
+snippet GLl "Lowercase Greek letter lambda"
+\lambda
+endsnippet
+
+snippet GPP "Uppercase Greek letter pi"
+\Pi
+endsnippet
+
+snippet GPp "Lowercase Greek letter pi"
+\pi
+endsnippet
+
+snippet GVPp "Variation Greek letter pi"
+\varpi
+endsnippet
+
+snippet GSS "Uppercase Greek letter sigma"
+\Sigma
+endsnippet
+
+snippet GSs "Lowercase Greek letter sigma"
+\sigma
+endsnippet
+
+snippet GPH "Uppercase Greek letter phi"
+\Phi
+endsnippet
+
+snippet GPh "Lowercase Greek letter phi"
+\phi
+endsnippet
+
+snippet GVPh "Variation Greek letter phi"
+\varphi
+endsnippet
+
+snippet GPS "Uppercase Greek letter psi"
+\Psi
+endsnippet
+
+snippet GPs "Lowercase Greek letter psi"
+\psi
+endsnippet
+
+snippet GOO "Uppercase Greek letter omega"
+\Omega
+endsnippet
+
+snippet GOo "Lowercase Greek letter omega"
+\omega
+endsnippet
+
+# Custom commands and environment (for my class notes)
+snippet dnote "Doc note admonition block" i
+\begin{-doc-note}
+$1
+\end{-doc-note}
+$0
+endsnippet
+    
+snippet dinfo "Doc info admonition block" i
+\begin{-doc-info}
+$1
+\end{-doc-info}
+$0
+endsnippet
+
+snippet dtheo "Doc theorem block" i
+\begin{-doc-theorem}
+$1
+\end{-doc-theorem}
+$0
+endsnippet
+
+snippet ddef "Doc definition block" i
+\begin{-doc-definition}
+$1
+\end{-doc-definition}
+$0
+endsnippet
+
+snippet dwarn "Doc warning callout block" i
+\begin{-doc-warning}
+$1
+\end{-doc-warning}
+$0
+endsnippet
+
+snippet dcrit "Doc critical callout block" i
+\begin{-doc-critical}
+$1
+\end{-doc-critical}
+$0
+endsnippet
+