priority -50

#################################
# Snippets for the Lua language #
#################################
snippet #! "#!/usr/bin/env lua" b
#!/usr/bin/env lua
$0
endsnippet

snippet assert "Assertion" b
assert(${1:condition}`!p
if t[2]:
	snip.rv = ", "
else:
	snip.rv = ""
`${2:msg})
endsnippet

snippet !fun(ction)?! "New function" br
function ${1:new_function}(${2:args})
	$0
end
endsnippet

snippet forp "pair for loop" b
for ${1:name},${2:val} in pairs(${3:table_name}) do
	$0
end
endsnippet

snippet fori "ipair for foop" b
for ${1:idx},${2:val} in ipairs(${3:table_name}) do
	$0
end
endsnippet

snippet for "numeric for loop" b
for ${1:i}=${2:first},${3:last}${4/^..*/(?0:,:)/}${4:step} do
	$0
end
endsnippet

snippet do "do block"
do
	$0
end
endsnippet

snippet repeat "repeat loop" b
repeat
	$1
until $0
endsnippet

snippet while "while loop" b
while $1 do
	$0
end
endsnippet

snippet if "if statement" b
if $1 then
	$0
end
endsnippet

snippet ife "if/else statement" b
if $1 then
	$2
else
	$0
end
endsnippet

snippet eif "if/elseif statement" b
if $1 then
	$2
elseif $3 then
	$0
end
endsnippet

snippet eife "if/elseif/else statement" b
if $1 then
	$2
elseif $3 then
	$4
else
	$0
end
endsnippet

snippet pcall "pcall statement" b
local ok, err = pcall(${1:your_function})
if not ok then
	handler(${2:ok, err})
${3:else
	success(${4:ok, err})
}end
endsnippet

snippet local "local x = 1"
local ${1:x} = ${0:1}
endsnippet

snippet use "Use" b
use { '$1' }
endsnippet

snippet req "Require" b
require('$1')
endsnippet


# vim:ft=snippets:
