# A valid snippet should starts with:
#
#		snippet trigger_word [ "description" [ options ] ]
#
# and end with:
#
#		endsnippet
#
# Snippet options:
#
#		b - Beginning of line.
#		i - In-word expansion.
#		w - Word boundary.
#		r - Regular expression
#		e - Custom context snippet
#		A - Snippet will be triggered automatically, when condition matches.
#
# Basic example:
#
#		snippet emitter "emitter properties" b
#		private readonly ${1} = new Emitter<$2>()
#		public readonly ${1/^_(.*)/$1/}: Event<$2> = this.$1.event
#		endsnippet
# Online reference: https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt

snippet latex "A latex block" w
$${VISUAL}${1}$${0}
endsnippet

snippet dydx "The derivative" i
\frac{d${1:y}}{d${2:x}}${0}
endsnippet

snippet derivative "The derivative" i
\frac{d${1:y}}{d${2:x}}${0}
endsnippet

snippet inti "Integrate indefinitely" i
\int ${1} \text{ d}${2:x}${0}
endsnippet

snippet intd "Integrate definitely" i
\int{${1}}{${2}}${3} \text{ d}${4:x}${0}
endsnippet

snippet ihat "The I vector" i
\hat{\bm{i}}
endsnippet

snippet jhat "The J vector" i
\hat{\bm{j}}
endsnippet

snippet vecbold "A vector" i
\bm{${1}}${0}
endsnippet

snippet veccol2 "A 2-tall column vector" i
\begin{pmatrix} ${1} \\\\ ${2} \end{pmatrix}${0}
endsnippet

snippet nl "A latex newline (e.g. for column vectors)" i
\\\\ 
endsnippet

snippet d2ydx2 "The second derivative" i
\frac{d^2${1:y}}{d${2:x}^2}${0}
endsnippet

snippet nospell "Disable spellcheck on the visually-selected region"
<!-- spell-checker:disable -->
${VISUAL}
<!-- spell-checker:enable -->
endsnippet

snippet normaldistribution "A normal distribution" i
X\sim N(${1:mean}, ${2:variance})${0}
endsnippet

snippet 2x2matrix "A 2 by 2 matrix" i
\begin{bmatrix} ${1} & ${2} \\\\ ${3} & ${4} \end{bmatrix}${0}
endsnippet
