# Closure loop
snippet forindo
	for ${1:name} in ${2:array}
		do ($1) ->
			${0:// body}
# Array comprehension
snippet fora
	for ${1:name} in ${2:array}
		${0:# body...}
# Object comprehension
snippet foro
	for ${1:key}, ${2:value} of ${3:object}
		${0:# body...}
# Range comprehension (inclusive)
snippet forr
	for ${1:name} in [${2:start}..${3:finish}]
		${0:# body...}
snippet forrb
	for ${1:name} in [${2:start}..${3:finish}] by ${4:step}
		${0:# body...}
# Range comprehension (exclusive)
snippet forrex
	for ${1:name} in [${2:start}...${3:finish}]
		${0:# body...}
snippet forrexb
	for ${1:name} in [${2:start}...${3:finish}] by ${4:step}
		${0:# body...}
# Function
snippet fun
	(${1:args}) ->
		${0:# body...}
# Function (bound)
snippet bfun
	(${1:args}) =>
		${0:# body...}
# Class
snippet cla class ..
	class ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
		${0}
snippet cla class .. constructor: ..
	class ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
		constructor: (${2:args}) ->
			${3}

		${0}
snippet cla class .. extends ..
	class ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} extends ${2:ParentClass}
		${0}
snippet cla class .. extends .. constructor: ..
	class ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} extends ${2:ParentClass}
		constructor: (${3:args}) ->
			${4}

		${0}
# If
snippet if
	if ${1:condition}
		${0:# body...}
# If __ Else
snippet ife
	if ${1:condition}
		${2:# body...}
	else
		${0:# body...}
# Else if
snippet eif
	else if ${1:condition}
		${0:# body...}
# Ternary If
snippet ifte
	if ${1:condition} then ${2:value} else ${0:other}
# Unless
snippet unl
	${1:action} unless ${0:condition}
# Switch
snippet swi
	switch ${1:object}
		when ${2:value}
			${0:# body...}

# Log
snippet log
	console.log ${0}
# Try __ Catch
snippet try
	try
		${1}
	catch ${2:error}
		${0}
# Require
snippet req
	${2:$1} = require '${1:sys}'
# Export
snippet exp
	${0:root} = exports ? this

snippet jsonp
	JSON.parse ${0:jstr}
# JSON.stringify
snippet jsons
	JSON.stringify ${0:object}