# #!/usr/bin/env tclsh
snippet #!
	#!/usr/bin/env tclsh

# Process
snippet pro
	proc ${1:function_name} {${2:args}} {
		${0}
	}
#xif
snippet xif
	${1:expr}? ${2:true} : ${0:false}
# Conditional
snippet if
	if {${1}} {
		${0}
	}
# Conditional if..else
snippet ife
	if {${1}} {
		${2}
	} else {
		${0:# else...}
	}
snippet eif
	elseif {${1}} {
		${0}
	}
# Conditional if..elsif..else
snippet ifee
	if {${1}} {
		${2}
	} elseif {${3}} {
		${4:# elsif...}
	} else {
		${0:# else...}
	}
# If catch then
snippet ifc
	if { [catch {${1:#do something...}} ${2:err}] } {
		${0:# handle failure...}
	}
# Catch
snippet catch
	catch {${1}} ${2:err} ${0:options}
# While Loop
snippet wh
	while {${1}} {
		${0}
	}
# For Loop
snippet for
	for {set ${2:var} 0} {$$2 < ${1:count}} {${3:incr} $2} {
		${0}
	}
# Foreach Loop
snippet fore
	foreach ${1:x} {${2:#list}} {
		${0}
	}
# after ms script...
snippet af
	after ${1:ms} ${0:#do something}
# after cancel id
snippet afc
	after cancel ${0:id or script}
# after idle
snippet afi
	after idle ${0:script}
# after info id
snippet afin
	after info ${0:id}
# Expr
snippet exp
	expr {${0:#expression here}}
# Switch
snippet sw
	switch ${1:var} {
		${3:pattern 1} {
			${0:#do something}
		}
		default {
			${2:#do something}
		}
	}
# Case
snippet ca
	${1:pattern} {
		${2:#do something}
	}
# Namespace eval
snippet ns
	namespace eval ${1:path} {${0:#script...}}
# Namespace current
snippet nsc
	namespace current
