22 changed files with 4526 additions and 1 deletions
			
			
		@ -0,0 +1,103 @@ | 
				
			|||||||
 | 
					# This file contains snippets that are always defined. I personally | 
				
			||||||
 | 
					# have snippets for signatures and often needed texts | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# sligthly lower priority than everything else since specialized versions | 
				
			||||||
 | 
					# should overwrite. The user needs to adjust her priority in her snippets to | 
				
			||||||
 | 
					# ~-55 so that other filetypes will still overwrite. | 
				
			||||||
 | 
					priority -60 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					############## | 
				
			||||||
 | 
					# NICE BOXES # | 
				
			||||||
 | 
					############## | 
				
			||||||
 | 
					global !p | 
				
			||||||
 | 
					from vimsnippets import foldmarker, make_box, get_comment_format | 
				
			||||||
 | 
					endglobal | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet box "A nice box with the current comment symbol" b | 
				
			||||||
 | 
					`!p | 
				
			||||||
 | 
					box = make_box(len(t[1])) | 
				
			||||||
 | 
					snip.rv = box[0] | 
				
			||||||
 | 
					snip += box[1] | 
				
			||||||
 | 
					`${1:${VISUAL:content}}`!p | 
				
			||||||
 | 
					box = make_box(len(t[1])) | 
				
			||||||
 | 
					snip.rv = box[2] | 
				
			||||||
 | 
					snip += box[3]` | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet bbox "A nice box over the full width" b | 
				
			||||||
 | 
					`!p | 
				
			||||||
 | 
					if not snip.c: | 
				
			||||||
 | 
						width = int(vim.eval("&textwidth - (virtcol('.') == 1 ? 0 : virtcol('.'))")) or 71 | 
				
			||||||
 | 
					box = make_box(len(t[1]), width) | 
				
			||||||
 | 
					snip.rv = box[0] | 
				
			||||||
 | 
					snip += box[1] | 
				
			||||||
 | 
					`${1:${VISUAL:content}}`!p | 
				
			||||||
 | 
					box = make_box(len(t[1]), width) | 
				
			||||||
 | 
					snip.rv = box[2] | 
				
			||||||
 | 
					snip += box[3]` | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fold "Insert a vim fold marker" b | 
				
			||||||
 | 
					`!p snip.rv = get_comment_format()[0]` ${1:Fold description} `!p snip.rv = foldmarker()[0]`${2:1} `!p snip.rv = get_comment_format()[2]` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet foldc "Insert a vim fold close marker" b | 
				
			||||||
 | 
					`!p snip.rv = get_comment_format()[0]` ${2:1}`!p snip.rv = foldmarker()[1]` `!p snip.rv = get_comment_format()[2]` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet foldp "Insert a vim fold marker pair" b | 
				
			||||||
 | 
					`!p snip.rv = get_comment_format()[0]` ${1:Fold description} `!p snip.rv = foldmarker()[0]` `!p snip.rv = get_comment_format()[2]` | 
				
			||||||
 | 
					${2:${VISUAL:Content}} | 
				
			||||||
 | 
					`!p snip.rv = get_comment_format()[0]` `!p snip.rv = foldmarker()[1]` $1 `!p snip.rv = get_comment_format()[2]` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					########################## | 
				
			||||||
 | 
					# LOREM IPSUM GENERATORS # | 
				
			||||||
 | 
					########################## | 
				
			||||||
 | 
					snippet lorem "Lorem Ipsum - 50 Words" b | 
				
			||||||
 | 
					Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod | 
				
			||||||
 | 
					tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At | 
				
			||||||
 | 
					vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, | 
				
			||||||
 | 
					no sea takimata sanctus est Lorem ipsum dolor sit amet. | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					########################## | 
				
			||||||
 | 
					# VIM MODELINE GENERATOR # | 
				
			||||||
 | 
					########################## | 
				
			||||||
 | 
					# See advice on `:help 'tabstop'` for why these values are set. Uses second | 
				
			||||||
 | 
					# modeline form ('set') to work in languages with comment terminators | 
				
			||||||
 | 
					# (/* like C */). | 
				
			||||||
 | 
					snippet modeline "Vim modeline" | 
				
			||||||
 | 
					vim`!v ':set '. (&expandtab ? printf('et sw=%i ts=%i', &sw, &ts) : printf('noet sts=%i sw=%i ts=%i', &sts, &sw, &ts)) . (&tw ? ' tw='. &tw : '') . ':'` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					######### | 
				
			||||||
 | 
					# DATES # | 
				
			||||||
 | 
					######### | 
				
			||||||
 | 
					snippet date "YYYY-MM-DD" w | 
				
			||||||
 | 
					`!v strftime("%F")` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ddate "Month DD, YYYY" w | 
				
			||||||
 | 
					`!v strftime("%b %d, %Y")` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet diso "ISO format datetime" w | 
				
			||||||
 | 
					`!v strftime("%F %H:%M:%S%z")` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet time "hh:mm" w | 
				
			||||||
 | 
					`!v strftime("%H:%M")` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet datetime "YYYY-MM-DD hh:mm" w | 
				
			||||||
 | 
					`!v strftime("%Y-%m-%d %H:%M")` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet todo "TODO comment" bw | 
				
			||||||
 | 
					`!p snip.rv=get_comment_format()[0]` ${2:TODO}: $0${3: <${4:`!v strftime('%d-%m-%y')`}${5:, `!v g:snips_author`}>} `!p snip.rv=get_comment_format()[2]` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim:ft=snippets: | 
				
			||||||
@ -0,0 +1,99 @@ | 
				
			|||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					#                            TextMate Snippets                            # | 
				
			||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet def "#define ..." | 
				
			||||||
 | 
					#define $1 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet #ifndef "#ifndef ... #define ... #endif" | 
				
			||||||
 | 
					#ifndef ${1/([A-Za-z0-9_]+).*/$1/} | 
				
			||||||
 | 
					#define ${1:SYMBOL} ${2:value} | 
				
			||||||
 | 
					#endif /* ifndef $1 */ | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet #if "#if #endif" b | 
				
			||||||
 | 
					#if ${1:0} | 
				
			||||||
 | 
					${VISUAL}$0 | 
				
			||||||
 | 
					#endif | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mark "#pragma mark (mark)" | 
				
			||||||
 | 
					#if 0 | 
				
			||||||
 | 
					${1:#pragma mark - | 
				
			||||||
 | 
					}#pragma mark $2 | 
				
			||||||
 | 
					#endif | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet main "main() (main)" | 
				
			||||||
 | 
					int main(int argc, char *argv[]) | 
				
			||||||
 | 
					{ | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
						return 0; | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet for "for loop (for)" | 
				
			||||||
 | 
					for (${2:i} = 0; $2 < ${1:count}; ${3:++$2}) { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fori "for int loop (fori)" | 
				
			||||||
 | 
					for (${4:int} ${2:i} = 0; $2 < ${1:count}; ${3:++$2}) { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet once "Include header once only guard" | 
				
			||||||
 | 
					#ifndef ${1:`!p | 
				
			||||||
 | 
					if not snip.c: | 
				
			||||||
 | 
						import random, string | 
				
			||||||
 | 
						name = re.sub(r'[^A-Za-z0-9]+','_', snip.fn).upper() | 
				
			||||||
 | 
						rand = ''.join(random.sample(string.ascii_letters+string.digits, 8)) | 
				
			||||||
 | 
						snip.rv = ('%s_%s' % (name,rand)).upper() | 
				
			||||||
 | 
					else: | 
				
			||||||
 | 
						snip.rv = snip.c`} | 
				
			||||||
 | 
					#define $1 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					${VISUAL}$0 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* end of include guard: $1 */ | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fprintf "fprintf ..." | 
				
			||||||
 | 
					fprintf(${1:stderr}, "${2:%s}\n"${2/([^%]|%%)*(%.)?.*/(?2:, :\);)/}$3${2/([^%]|%%)*(%.)?.*/(?2:\);)/} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet eli "else if .. (eli)" | 
				
			||||||
 | 
					else if (${1:/* condition */}) { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet printf "printf .. (printf)" | 
				
			||||||
 | 
					printf("${1:%s}\n"${1/([^%]|%%)*(%.)?.*/(?2:, :\);)/}$2${1/([^%]|%%)*(%.)?.*/(?2:\);)/} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet st "struct" | 
				
			||||||
 | 
					struct ${1:`!p snip.rv = (snip.basename or "name") + "_t"`} { | 
				
			||||||
 | 
						${0:/* data */} | 
				
			||||||
 | 
					}; | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fun "function" b | 
				
			||||||
 | 
					${1:void} ${2:function_name}($3) | 
				
			||||||
 | 
					{ | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fund "function declaration" b | 
				
			||||||
 | 
					${1:void} ${2:function_name}($3); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim:ft=snippets: | 
				
			||||||
@ -0,0 +1,110 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extends c | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# We want to overwrite everything in parent ft. | 
				
			||||||
 | 
					priority -49 | 
				
			||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					#			    Global functions 						  # | 
				
			||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					global !p | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def write_docstring_args(arglist, snip): | 
				
			||||||
 | 
						args = str(arglist).split(',') | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if len(args) > 1: | 
				
			||||||
 | 
							c = 0 | 
				
			||||||
 | 
							for arg in args: | 
				
			||||||
 | 
								if c == 0: | 
				
			||||||
 | 
									snip.rv += arg | 
				
			||||||
 | 
									c = 1 | 
				
			||||||
 | 
								else: | 
				
			||||||
 | 
									snip += '*       : %s' % arg.strip() | 
				
			||||||
 | 
						else: | 
				
			||||||
 | 
							snip.rv = args[0] | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endglobal | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					#                            TextMate Snippets                            # | 
				
			||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					snippet beginend "$1.begin(), $1.end() (beginend)" | 
				
			||||||
 | 
					${1:v}${1/^.*?(-)?(>)?$/(?2::(?1:>:.))/}begin(), $1${1/^.*?(-)?(>)?$/(?2::(?1:>:.))/}end() | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet cl "class .. (class)" | 
				
			||||||
 | 
					class ${1:`!p snip.rv = snip.basename or "name"`} | 
				
			||||||
 | 
					{ | 
				
			||||||
 | 
					public: | 
				
			||||||
 | 
						${1/(\w+).*/$1/} (${2:arguments}); | 
				
			||||||
 | 
						virtual ~${1/(\w+).*/$1/} (); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private: | 
				
			||||||
 | 
						${0:/* data */} | 
				
			||||||
 | 
					}; | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ns "namespace .. (namespace)" | 
				
			||||||
 | 
					namespace${1/.+/ /m}${1:`!p snip.rv = snip.basename or "name"`} | 
				
			||||||
 | 
					{ | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					}${1/.+/ \/* /m}$1${1/.+/ *\/ /m} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet readfile "read file (readF)" | 
				
			||||||
 | 
					std::vector<char> v; | 
				
			||||||
 | 
					if (FILE *fp = fopen(${1:"filename"}, "r")) | 
				
			||||||
 | 
					{ | 
				
			||||||
 | 
						char buf[1024]; | 
				
			||||||
 | 
						while(size_t len = fread(buf, 1, sizeof(buf), fp)) | 
				
			||||||
 | 
							v.insert(v.end(), buf, buf + len); | 
				
			||||||
 | 
						fclose(fp); | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet map "std::map (map)" | 
				
			||||||
 | 
					std::map<${1:key}, ${2:value}> map$0; | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vector "std::vector (v)" | 
				
			||||||
 | 
					std::vector<${1:char}> v$0; | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tp "template <typename ..> (template)" | 
				
			||||||
 | 
					template <typename ${1:_InputIter}> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet cla "An entire .h generator" b | 
				
			||||||
 | 
					#ifndef ${2:`!v substitute(vim_snippets#Filename('$1_H','ClassName'),'.*','\U&\E','')`} | 
				
			||||||
 | 
					#define $2 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ${1:`!v substitute(substitute(vim_snippets#Filename('$1','ClassName'),'^.','\u&',''), '_\(\w\)', '\u\1', 'g')`} | 
				
			||||||
 | 
					{ | 
				
			||||||
 | 
					private: | 
				
			||||||
 | 
						$3 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public: | 
				
			||||||
 | 
						$1(); | 
				
			||||||
 | 
						virtual ~$1(); | 
				
			||||||
 | 
					}; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* $2 */ | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fnc "Basic c++ doxygen function template" b | 
				
			||||||
 | 
					/** | 
				
			||||||
 | 
					* @brief: ${4:brief} | 
				
			||||||
 | 
					* | 
				
			||||||
 | 
					* @param: `!p write_docstring_args(t[3],snip)` | 
				
			||||||
 | 
					* | 
				
			||||||
 | 
					* @return: `!p snip.rv = t[1]` | 
				
			||||||
 | 
					*/ | 
				
			||||||
 | 
					${1:ReturnType} ${2:FunctionName}(${3:param}) | 
				
			||||||
 | 
					{ | 
				
			||||||
 | 
					  ${0:FunctionBody} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					# vim:ft=snippets: | 
				
			||||||
@ -0,0 +1,493 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet p "padding" | 
				
			||||||
 | 
					padding: ${1:0};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet m "margin" | 
				
			||||||
 | 
					margin: ${1:0};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet bd "border" | 
				
			||||||
 | 
					border: ${1:0};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet d "display" | 
				
			||||||
 | 
					display: ${1:none};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet bg "background" | 
				
			||||||
 | 
					background: ${1:none};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ff "font-family" | 
				
			||||||
 | 
					font-family: ${1:"Helvetica Neue", Helvetica, Arial, sans-serif};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet h "height" | 
				
			||||||
 | 
					height: ${1:auto};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet w "width" | 
				
			||||||
 | 
					width: ${1:auto};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet pos "position" | 
				
			||||||
 | 
					position: ${1:relative};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tt "text-transform" | 
				
			||||||
 | 
					text-transform: ${1:none};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ! "!important CSS (!)" | 
				
			||||||
 | 
					!important | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tsh "text-shadow: color-hex x y blur (text)" | 
				
			||||||
 | 
					text-shadow: ${1:${2:color} ${3:offset-x} ${4:offset-y} ${5:blur}};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet bxsh "box-shadow: color-hex x y blur (text)" | 
				
			||||||
 | 
					box-shadow: ${1:${2:offset-x} ${3:offset-y} ${4:blur} ${5:spread} ${6:color}};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# Colors | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rgb "color rgb" | 
				
			||||||
 | 
					rgb(${1:255}, ${2:255}, ${3:255})$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rgba "color rgba" | 
				
			||||||
 | 
					rgba(${1:255}, ${2:255}, ${3:255}, ${4:0.5})$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet hsl "color hsl" | 
				
			||||||
 | 
					hsl(${1:360}, ${2:100}%, ${3:100}%)$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet hsla "color hsla" | 
				
			||||||
 | 
					hsla(${1:360}, ${2:100}%, ${3:100}%, ${4:0.5})$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# Selectors | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet :fc | 
				
			||||||
 | 
					:first-child | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet :lc | 
				
			||||||
 | 
					:last-child | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet :nc | 
				
			||||||
 | 
					:nth-child($0) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet :nlc | 
				
			||||||
 | 
					:nth-last-child($0) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet :oc | 
				
			||||||
 | 
					:only-child | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# Pseudo-elements | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet :a | 
				
			||||||
 | 
					:after | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet :b | 
				
			||||||
 | 
					:before | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ::a | 
				
			||||||
 | 
					::after | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ::b | 
				
			||||||
 | 
					::before | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					#                    Most of these came from TextMate                     # | 
				
			||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet background "background-attachment: scroll:fixed (background)" | 
				
			||||||
 | 
					background-attachment: ${1:scroll/fixed};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet background "background-color:  color-hex (background)" | 
				
			||||||
 | 
					background-color: #${1:DDD};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet background "background-color:  color-name (background)" | 
				
			||||||
 | 
					background-color: ${1:red};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet background "background-color:  color-rgb (background)" | 
				
			||||||
 | 
					background-color: rgb(${1:255},${2:255},${3:255});$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet background "background-color:  transparent (background)" | 
				
			||||||
 | 
					background-color: transparent;$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet background "background-image:  none (background)" | 
				
			||||||
 | 
					background-image: none;$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet background "background-image:  url (background)" | 
				
			||||||
 | 
					background-image: url($1);$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet background "background-position:  position (background)" | 
				
			||||||
 | 
					background-position: ${1:top left/top center/top right/center left/center center/center right/bottom left/bottom center/bottom right/x-% y-%/x-pos y-pos};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet background "background-repeat:  r:r-x:r-y:n-r (background)" | 
				
			||||||
 | 
					background-repeat: ${1:repeat/repeat-x/repeat-y/no-repeat};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet background "background:  color image repeat attachment position (background)" | 
				
			||||||
 | 
					background:${6: #${1:DDD}} url($2) ${3:repeat/repeat-x/repeat-y/no-repeat} ${4:scroll/fixed} ${5:top left/top center/top right/center left/center center/center right/bottom left/bottom center/bottom right/x-% y-%/x-pos y-pos};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-bottom-color: size style color (border)" | 
				
			||||||
 | 
					border-bottom-color: #${1:999};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-bottom-style: size style color (border)" | 
				
			||||||
 | 
					border-bottom-style: ${1:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-bottom-width: size style color (border)" | 
				
			||||||
 | 
					border-bottom-width: ${1:1}px ${2:solid} #${3:999};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-bottom: size style color (border)" | 
				
			||||||
 | 
					border-bottom: ${1:1}px ${2:solid} #${3:999};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-color: color (border)" | 
				
			||||||
 | 
					border-color: ${1:999};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-left-color: color (border)" | 
				
			||||||
 | 
					border-right-color: #${1:999};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-left-style: style (border)" | 
				
			||||||
 | 
					border-left-style: ${1:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-left-width: size (border)" | 
				
			||||||
 | 
					border-left-width: ${1:1}px | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-left: size style color (border)" | 
				
			||||||
 | 
					border-left: ${1:1}px ${2:solid} #${3:999};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-right-color: color (border)" | 
				
			||||||
 | 
					border-right-color: #${1:999};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-right-style: style (border)" | 
				
			||||||
 | 
					border-right-style: ${1:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-right-width: size (border)" | 
				
			||||||
 | 
					border-right-width: ${1:1}px | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-right: size style color (border)" | 
				
			||||||
 | 
					border-right: ${1:1}px ${2:solid} #${3:999};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-style: style (border)" | 
				
			||||||
 | 
					border-style: ${1:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-top-color: color (border)" | 
				
			||||||
 | 
					border-top-color: #${1:999};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-top-style: style (border)" | 
				
			||||||
 | 
					border-top-style: ${1:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-top-width: size (border)" | 
				
			||||||
 | 
					border-top-width: ${1:1}px | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-top: size style color (border)" | 
				
			||||||
 | 
					border-top: ${1:1}px ${2:solid} #${3:999};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border-width: width (border)" | 
				
			||||||
 | 
					border-width: ${1:1px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet border "border:   size style color (border)" | 
				
			||||||
 | 
					border: ${1:1px} ${2:solid} #${3:999};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet clear "clear: value (clear)" | 
				
			||||||
 | 
					clear: ${1:left/right/both/none};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet color "color:  color-hex (color)" | 
				
			||||||
 | 
					color: #${1:DDD};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet color "color:  color-name (color)" | 
				
			||||||
 | 
					color: ${1:red};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet color "color:  color-rgb (color)" | 
				
			||||||
 | 
					color: rgb(${1:255},${2:255},${3:255});$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet cursor "cursor: type (cursor)" | 
				
			||||||
 | 
					cursor: ${1:default/auto/crosshair/pointer/move/*-resize/text/wait/help};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet cursor "cursor: url (cursor)" | 
				
			||||||
 | 
					cursor: url($1);$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet direction "direction: ltr|rtl (direction)" | 
				
			||||||
 | 
					direction: ${1:ltr|rtl};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet display "display: block (display)" | 
				
			||||||
 | 
					display: block;$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet display "display: common-types (display)" | 
				
			||||||
 | 
					display: ${1:none/inline/block/list-item/run-in/compact/marker};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet display "display: inline (display)" | 
				
			||||||
 | 
					display: inline;$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet display "display: table-types (display)" | 
				
			||||||
 | 
					display: ${1:table/inline-table/table-row-group/table-header-group/table-footer-group/table-row/table-column-group/table-column/table-cell/table-caption};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet float "float: left:right:none (float)" | 
				
			||||||
 | 
					float: ${1:left/right/none};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet font "font-family:   family (font)" | 
				
			||||||
 | 
					font-family: ${1:Arial, "MS Trebuchet"}, ${2:sans-}serif;$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet font "font-size: size (font)" | 
				
			||||||
 | 
					font-size: ${1:100%};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet font "font-style:   normal:italic:oblique (font)" | 
				
			||||||
 | 
					font-style: ${1:normal/italic/oblique};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet font "font-variant:   normal:small-caps (font)" | 
				
			||||||
 | 
					font-variant: ${1:normal/small-caps};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet font "font-weight: weight (font)" | 
				
			||||||
 | 
					font-weight: ${1:normal/bold};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet font "font:   style variant weight size:line-height font -family (font)" | 
				
			||||||
 | 
					font: ${1:normal/italic/oblique} ${2:normal/small-caps} ${3:normal/bold} ${4:1em/1.5em} ${5:Arial}, ${6:sans-}serif;$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet font "font: size font (font)" | 
				
			||||||
 | 
					font: ${1:75%} ${2:"Lucida Grande", "Trebuchet MS", Verdana,} ${3:sans-}serif;$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet letter "letter-spacing:   length-em (letter)" | 
				
			||||||
 | 
					letter-spacing: $1em;$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet letter "letter-spacing:   length-px (letter)" | 
				
			||||||
 | 
					letter-spacing: $1px;$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet list "list-style-image: url (list)" | 
				
			||||||
 | 
					list-style-image: url($1);$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet list "list-style-position: pos (list)" | 
				
			||||||
 | 
					list-style-position: ${1:inside/outside};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet list "list-style-type: asian (list)" | 
				
			||||||
 | 
					list-style-type: ${1:cjk-ideographic/hiragana/katakana/hiragana-iroha/katakana-iroha};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet list "list-style-type: marker(list)" | 
				
			||||||
 | 
					list-style-type: ${1:none/disc/circle/square};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet list "list-style-type: numeric (list)" | 
				
			||||||
 | 
					list-style-type: ${1:decimal/decimal-leading-zero/zero};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet list "list-style-type: other (list)" | 
				
			||||||
 | 
					list-style-type: ${1:hebrew/armenian/georgian};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet list "list-style-type: roman-alpha-greek (list)" | 
				
			||||||
 | 
					list-style-type: ${1:lower-roman/upper-roman/lower-alpha/upper-alpha/lower-greek/lower-latin/upper-latin};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet list "list-style: type position image (list)" | 
				
			||||||
 | 
					list-style: ${1:none/disc/circle/square/decimal/zero} ${2:inside/outside} url($3);$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet margin "margin-bottom: length (margin)" | 
				
			||||||
 | 
					margin-bottom: ${1:20px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet margin "margin-left: length (margin)" | 
				
			||||||
 | 
					margin-left: ${1:20px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet margin "margin-right: length (margin)" | 
				
			||||||
 | 
					margin-right: ${1:20px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet margin "margin-top: length (margin)" | 
				
			||||||
 | 
					margin-top: ${1:20px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet margin "margin:   all (margin)" | 
				
			||||||
 | 
					margin: ${1:20px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet margin "margin: T R B L (margin)" | 
				
			||||||
 | 
					margin: ${1:20px} ${2:0px} ${3:40px} ${4:0px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet margin "margin: V H (margin)" | 
				
			||||||
 | 
					margin: ${1:20px} ${2:0px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet marker "marker-offset: auto (marker)" | 
				
			||||||
 | 
					marker-offset: auto;$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet marker "marker-offset: length (marker)" | 
				
			||||||
 | 
					marker-offset: ${1:10px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet overflow "overflow: type (overflow)" | 
				
			||||||
 | 
					overflow: ${1:visible/hidden/scroll/auto};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet padding "padding-bottom: length (margin)" | 
				
			||||||
 | 
					padding-bottom: ${1:20px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet padding "padding-left: length (margin)" | 
				
			||||||
 | 
					padding-left: ${1:20px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet padding "padding-right: length (margin)" | 
				
			||||||
 | 
					padding-right: ${1:20px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet padding "padding-top: length (margin)" | 
				
			||||||
 | 
					padding-top: ${1:20px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet padding "padding:   T R B L (padding)" | 
				
			||||||
 | 
					padding: ${1:20px} ${2:0px} ${3:40px} ${4:0px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet padding "padding:   V H (padding)" | 
				
			||||||
 | 
					padding: ${1:20px} ${2:0px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet padding "padding:   all (padding)" | 
				
			||||||
 | 
					padding: ${1:20px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet position "position: type (position)" | 
				
			||||||
 | 
					position: ${1:static/relative/absolute/fixed};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet { "properties { } ( } )" | 
				
			||||||
 | 
					{ | 
				
			||||||
 | 
						/* $1 */ | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet scrollbar "scrollbar" | 
				
			||||||
 | 
					scrollbar-base-color:       ${1:#CCCCCC};${2: | 
				
			||||||
 | 
					scrollbar-arrow-color:      ${3:#000000}; | 
				
			||||||
 | 
					scrollbar-track-color:      ${4:#999999}; | 
				
			||||||
 | 
					scrollbar-3dlight-color:    ${5:#EEEEEE}; | 
				
			||||||
 | 
					scrollbar-highlight-color:  ${6:#FFFFFF}; | 
				
			||||||
 | 
					scrollbar-face-color:       ${7:#CCCCCC}; | 
				
			||||||
 | 
					scrollbar-shadow-color:     ${9:#999999}; | 
				
			||||||
 | 
					scrollbar-darkshadow-color: ${8:#666666};} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet selection "selection" | 
				
			||||||
 | 
					$1::-moz-selection, | 
				
			||||||
 | 
					$1::selection { | 
				
			||||||
 | 
						color: ${2:inherit}; | 
				
			||||||
 | 
						background: ${3:inherit}; | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet text "text-align: left:center:right (txt)" | 
				
			||||||
 | 
					text-align: ${1:left/right/center/justify};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet text "text-decoration: none:underline:overline:line-through:blink (text)" | 
				
			||||||
 | 
					text-decoration: ${1:none/underline/overline/line-through/blink};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet text "text-indent: length (text)" | 
				
			||||||
 | 
					text-indent: ${1:10}px;$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet text "text-transform: capitalize:upper:lower (text)" | 
				
			||||||
 | 
					text-transform: ${1:capitalize/uppercase/lowercase};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vertical "vertical-align: type (vertical)" | 
				
			||||||
 | 
					vertical-align: ${1:baseline/sub/super/top/text-top/middle/bottom/text-bottom/length/%};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet visibility "visibility: type (visibility)" | 
				
			||||||
 | 
					visibility: ${1:visible/hidden/collapse};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet white "white-space:  normal:pre:nowrap (white)" | 
				
			||||||
 | 
					white-space: ${1:normal/pre/nowrap};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet word "word-spacing:  length (word)" | 
				
			||||||
 | 
					word-spacing: ${1:10px};$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet z "z-index: index (z)" | 
				
			||||||
 | 
					z-index: $1;$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim:ft=snippets: | 
				
			||||||
@ -0,0 +1,115 @@ | 
				
			|||||||
 | 
					# Snippets for Go | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# when to abbriviate and when not? | 
				
			||||||
 | 
					# b doesn't work here, because it ignores whitespace | 
				
			||||||
 | 
					# optional local name? | 
				
			||||||
 | 
					snippet /^import/ "Import declaration" r | 
				
			||||||
 | 
					import ( | 
				
			||||||
 | 
						"${1:package}" | 
				
			||||||
 | 
					) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet /^package/ "Package declaration" r | 
				
			||||||
 | 
					// Package $1 provides ... | 
				
			||||||
 | 
					package ${1:main} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Mostly converted from: https://github.com/AlanQuatermain/go-tmbundle | 
				
			||||||
 | 
					snippet /^cons/ "Constants declaration" r | 
				
			||||||
 | 
					const ( | 
				
			||||||
 | 
						${1:constant}${2/(.+)/ /}${2:type} = ${0:value} | 
				
			||||||
 | 
					) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet /^con/ "Constant declaration" r | 
				
			||||||
 | 
					const ${1:name}${2/(.+)/ /}${2:type} = ${0:value} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet iota "Iota constant generator" b | 
				
			||||||
 | 
					const ( | 
				
			||||||
 | 
						${1:constant}${2/(.+)/ /}${2:type} = iota | 
				
			||||||
 | 
					) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet struct "Struct declaration" b | 
				
			||||||
 | 
					type ${1:Struct} struct { | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet interface "Interface declaration" b | 
				
			||||||
 | 
					type ${1:Interface} interface { | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet if "If statement" b | 
				
			||||||
 | 
					if ${1:condition}${1/(.+)/ /}{ | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet switch "Switch statement" b | 
				
			||||||
 | 
					switch ${1:expression}${1/(.+)/ /}{ | 
				
			||||||
 | 
					case$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# functions | 
				
			||||||
 | 
					snippet /^main/ "Main function" r | 
				
			||||||
 | 
					func main() { | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet /^meth/ "Method" r | 
				
			||||||
 | 
					func (${1:receiver} ${2:type}) ${3:name}(${4:params})${5/(.+)/ /}${5:type} { | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet func "Function" b | 
				
			||||||
 | 
					func ${1:name}(${2:params})${3/(.+)/ /}${3:type} { | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet funch "HTTP handler" b | 
				
			||||||
 | 
					func ${1:handler}(${2:w} http.ResponseWriter, ${3:r} *http.Request) { | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# types and variables | 
				
			||||||
 | 
					snippet map "Map type" b | 
				
			||||||
 | 
					map[${1:keytype}]${2:valtype} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet : "Variable declaration :=" b | 
				
			||||||
 | 
					${1:name} := ${0:value} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet var "Variable declaration" b | 
				
			||||||
 | 
					var ${1:name}${2/(.+)/ /}${2:type}${3: = ${0:value}} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vars "Variables declaration" b | 
				
			||||||
 | 
					var ( | 
				
			||||||
 | 
						${1:name}${2/(.+)/ /}${2:type}${3: = ${0:value} } | 
				
			||||||
 | 
					) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet json "JSON field" | 
				
			||||||
 | 
					\`json:"${1:displayName}"\` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim:ft=snippets: | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# error handling | 
				
			||||||
 | 
					snippet err "Basic error handling" b | 
				
			||||||
 | 
					if err != nil { | 
				
			||||||
 | 
						log.${1:Fatal}(err) | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
@ -0,0 +1,244 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					#                            TextMate Snippets                            # | 
				
			||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					global !p | 
				
			||||||
 | 
					def x(snip): | 
				
			||||||
 | 
						if snip.ft.startswith("x"): | 
				
			||||||
 | 
							snip.rv = '/' | 
				
			||||||
 | 
						else: | 
				
			||||||
 | 
							snip.rv = "" | 
				
			||||||
 | 
					endglobal | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet doctype "HTML - 5.0 (doctype)" b | 
				
			||||||
 | 
					<!DOCTYPE html> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					############# | 
				
			||||||
 | 
					# Shortcuts # | 
				
			||||||
 | 
					############# | 
				
			||||||
 | 
					snippet down "Down (down)" | 
				
			||||||
 | 
					↓ | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet enter "Enter (enter)" | 
				
			||||||
 | 
					⌅ | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet escape "Escape (escape)" | 
				
			||||||
 | 
					⎋ | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet shift "Shift (shift)" | 
				
			||||||
 | 
					⇧ | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tab "Tab (tab)" | 
				
			||||||
 | 
					⇥ | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet up "Up (up)" | 
				
			||||||
 | 
					↑ | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet return "Return (return)" | 
				
			||||||
 | 
					↩ | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet right "Right (right)" | 
				
			||||||
 | 
					→ | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet left "Left (left)" | 
				
			||||||
 | 
					← | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					############# | 
				
			||||||
 | 
					# HTML TAGS # | 
				
			||||||
 | 
					############# | 
				
			||||||
 | 
					snippet input "Input with Label" w | 
				
			||||||
 | 
					<label for="${2:${1/[[:alpha:]]+|( )/(?1:_:\L$0)/g}}">$1</label><input type="${3:text/submit/hidden/button}" name="${4:$2}" value="$5"${6: id="${7:$2}"}`!p x(snip)`> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet input "HTML   <input>" w | 
				
			||||||
 | 
					<input type="${1:text/submit/hidden/button}" name="${2:some_name}" value="$3"${4: id="${5:$2}"}`!p x(snip)`> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet option "Option" w | 
				
			||||||
 | 
					<option${1: value="${2:option}"}>${3:$2}</option> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet select "Select Box" w | 
				
			||||||
 | 
					<select name="${1:some_name}" id="${2:$1}"${3:${4: multiple}${5: onchange="${6:}"}${7: size="${8:1}"}}> | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					</select> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet textarea "HTML   <textarea>" w | 
				
			||||||
 | 
					<textarea name="${1:Name}" rows="${2:8}" cols="${3:40}">$0</textarea> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mailto "HTML <a mailto: >" w | 
				
			||||||
 | 
					<a href="mailto:${1:joe@example.com}?subject=${2:feedback}">${3:email me}</a> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet base "HTML <base>" w | 
				
			||||||
 | 
					<base href="$1"${2: target="$3"}`!p x(snip)`> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet body "<body>" | 
				
			||||||
 | 
					<body> | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					</body> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet div "<div>" w | 
				
			||||||
 | 
					<div> | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					</div> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet div. "<div> with class" w | 
				
			||||||
 | 
					<div`!p snip.rv=' class="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""`> | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					</div> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet div# "<div> with ID & class" w | 
				
			||||||
 | 
					<div`!p snip.rv=' id="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""``!p snip.rv=' class="' if t[2] else ""`${2:name}`!p snip.rv = '"' if t[2] else ""`> | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					</div> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet form "XHTML <form>" w | 
				
			||||||
 | 
					<form action="${1:`!p | 
				
			||||||
 | 
					snip.rv = (snip.basename or 'unnamed') + '_submit' | 
				
			||||||
 | 
					`}" method="${2:get}" accept-charset="utf-8"> | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					</form> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet h1 "XHTML <h1>" w | 
				
			||||||
 | 
					<h1>${0:${VISUAL}}</h1> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet h2 "XHTML <h2>" w | 
				
			||||||
 | 
					<h2>${0:${VISUAL}}</h2> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet h3 "XHTML <h3>" w | 
				
			||||||
 | 
					<h3>${0:${VISUAL}}</h3> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet h4 "XHTML <h4>" w | 
				
			||||||
 | 
					<h4>${0:${VISUAL}}</h4> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet h5 "XHTML <h5>" w | 
				
			||||||
 | 
					<h5>${0:${VISUAL}}</h5> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet h6 "XHTML <h6>" w | 
				
			||||||
 | 
					<h6>${0:${VISUAL}}</h6> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet head "XHTML <head>" | 
				
			||||||
 | 
					<head> | 
				
			||||||
 | 
						<meta charset="utf-8"> | 
				
			||||||
 | 
						<title>${1:`!p snip.rv = snip.basename or "Page Title"`}</title> | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					</head> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet link "XHTML <link>" w | 
				
			||||||
 | 
					<link rel="${1:stylesheet}" href="${2:/css/master.css}" type="text/css" media="${3:screen}" title="${4:no title}" charset="${5:utf-8}"`!p x(snip)`> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet meta "XHTML <meta>" w | 
				
			||||||
 | 
					<meta name="${1:name}" content="${2:content}"`!p x(snip)`> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet scriptsrc "HTML <script src...>" w | 
				
			||||||
 | 
					<script src="$1" charset="${3:utf-8}"></script> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet script "HTML <script>" w | 
				
			||||||
 | 
					<script charset="utf-8"> | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					</script> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet span "<span>" w | 
				
			||||||
 | 
					<span> ${0:${VISUAL}} </span> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet span. "<span> with class" w | 
				
			||||||
 | 
					<span`!p snip.rv=' class="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""`> ${0:${VISUAL}} </span> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet span# "<span> with ID & class" w | 
				
			||||||
 | 
					<span`!p snip.rv=' id="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""``!p snip.rv=' class="' if t[2] else ""`${2:name}`!p snip.rv = '"' if t[2] else ""`> ${0:${VISUAL}} </span> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet style "XHTML <style>" w | 
				
			||||||
 | 
					<style type="text/css" media="screen"> | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					</style> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet table "XHTML <table>" w | 
				
			||||||
 | 
					<table> | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					</table> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet a "Link" w | 
				
			||||||
 | 
					<a href="${1:http://www.${2:url.com}}"${3: target="_blank"}>${4:Anchor Text}</a> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet p "paragraph" w | 
				
			||||||
 | 
					<p>${0:${VISUAL}}</p> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet li "list item" w | 
				
			||||||
 | 
					<li>${0:${VISUAL}}</li> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ul "unordered list" w | 
				
			||||||
 | 
					<ul> | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					</ul> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet td "table cell" w | 
				
			||||||
 | 
					<td>${0:${VISUAL}}</td> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet th "table header" w | 
				
			||||||
 | 
					<th>${0:${VISUAL}}</th> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tr "table row" w | 
				
			||||||
 | 
					<tr>${0:${VISUAL}}</tr> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet title "XHTML <title>" w | 
				
			||||||
 | 
					<title>${1:`!p snip.rv = snip.basename or "Page Title"`}</title> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fieldset "Fieldset" w | 
				
			||||||
 | 
					<fieldset id="${1/[\w\d]+|( )/(?1:_:\L$0\E)/g}" ${2:class="${3:}"}> | 
				
			||||||
 | 
						<legend>$1</legend> | 
				
			||||||
 | 
						${0:${VISUAL}} | 
				
			||||||
 | 
					</fieldset> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet viewport "Responsive viewport meta" w | 
				
			||||||
 | 
					<meta name="viewport" content="width=device-width, initial-scale=1"> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					# vim:ft=snippets: | 
				
			||||||
@ -0,0 +1,435 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Many of the snippets here use a global option called | 
				
			||||||
 | 
					# "g:ultisnips_java_brace_style" which, if set to "nl" will put a newline | 
				
			||||||
 | 
					# before '{' braces. | 
				
			||||||
 | 
					# Setting "g:ultisnips_java_junit" will change how the test method snippet | 
				
			||||||
 | 
					# looks, it is defaulted to junit4, setting this option to 3 will remove the | 
				
			||||||
 | 
					# @Test annotation from the method | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					global !p | 
				
			||||||
 | 
					def junit(snip): | 
				
			||||||
 | 
						if snip.opt("g:ultisnips_java_junit", "") == "3": | 
				
			||||||
 | 
							snip += "" | 
				
			||||||
 | 
						else: | 
				
			||||||
 | 
							snip.rv += "@Test\n\t" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def nl(snip): | 
				
			||||||
 | 
						if snip.opt("g:ultisnips_java_brace_style", "") == "nl": | 
				
			||||||
 | 
							snip += "" | 
				
			||||||
 | 
						else: | 
				
			||||||
 | 
							snip.rv += " " | 
				
			||||||
 | 
					def getArgs(group): | 
				
			||||||
 | 
						import re | 
				
			||||||
 | 
						word = re.compile('[a-zA-Z0-9><.]+ \w+') | 
				
			||||||
 | 
						return [i.split(" ") for i in word.findall(group) ] | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def camel(word): | 
				
			||||||
 | 
						if not word: return '' | 
				
			||||||
 | 
						return word[0].upper() + word[1:] | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def mixedCase(word): | 
				
			||||||
 | 
						if not word: return '' | 
				
			||||||
 | 
						return word[0].lower() + word[1:] | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endglobal | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet sleep "try sleep catch" b | 
				
			||||||
 | 
					try { | 
				
			||||||
 | 
						Thread.sleep(${1:1000}); | 
				
			||||||
 | 
					} catch (InterruptedException e){ | 
				
			||||||
 | 
						e.printStackTrace(); | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet /i|n/ "new primitive or int" br | 
				
			||||||
 | 
					${1:int} ${2:i} = ${3:1}; | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet /o|v/ "new Object or variable" br | 
				
			||||||
 | 
					${1:Object} ${2:var} = new $1($3); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet f "field" b | 
				
			||||||
 | 
					${1:private} ${2:String} ${3:`!p snip.rv = t[2].lower()`}; | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ab "abstract" b | 
				
			||||||
 | 
					abstract $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet as "assert" b | 
				
			||||||
 | 
					assert ${1:test}${2/(.+)/(?1: \: ")/}${2:Failure message}${2/(.+)/(?1:")/}; | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet at "assert true" b | 
				
			||||||
 | 
					assertTrue(${1:actual}); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet af "assert false" b | 
				
			||||||
 | 
					assertFalse(${1:actual}); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ae "assert equals" b | 
				
			||||||
 | 
					assertEquals(${1:expected}, ${2:actual}); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet br "break" | 
				
			||||||
 | 
					break; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet cs "case" b | 
				
			||||||
 | 
					case $1: | 
				
			||||||
 | 
						$2 | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ca "catch" b | 
				
			||||||
 | 
					catch (${1:Exception} ${2:e})`!p nl(snip)`{ | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet cle "class extends" b | 
				
			||||||
 | 
					public class ${1:`!p | 
				
			||||||
 | 
					snip.rv = snip.basename or "untitled"`} ${2:extends ${3:Parent} }${4:implements ${5:Interface} }{ | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet clc "class with constructor, fields, setter and getters" b | 
				
			||||||
 | 
					public class `!p | 
				
			||||||
 | 
					snip.rv = snip.basename or "untitled"` { | 
				
			||||||
 | 
					`!p | 
				
			||||||
 | 
					args = getArgs(t[1]) | 
				
			||||||
 | 
					if len(args) == 0: snip.rv = "" | 
				
			||||||
 | 
					for i in args: | 
				
			||||||
 | 
						snip.rv += "\n\tprivate " + i[0] + " " + i[1]+ ";" | 
				
			||||||
 | 
					if len(args) > 0: | 
				
			||||||
 | 
						snip.rv += "\n"` | 
				
			||||||
 | 
						public `!p snip.rv = snip.basename or "unknown"`($1) {`!p | 
				
			||||||
 | 
					args = getArgs(t[1]) | 
				
			||||||
 | 
					for i in args: | 
				
			||||||
 | 
						snip.rv += "\n\t\tthis." + i[1] + " = " + i[1] + ";" | 
				
			||||||
 | 
					if len(args) == 0: | 
				
			||||||
 | 
						snip.rv += "\n"` | 
				
			||||||
 | 
						}$0 | 
				
			||||||
 | 
					`!p | 
				
			||||||
 | 
					args = getArgs(t[1]) | 
				
			||||||
 | 
					if len(args) == 0: snip.rv = "" | 
				
			||||||
 | 
					for i in args: | 
				
			||||||
 | 
						snip.rv += "\n\tpublic void set" + camel(i[1]) + "(" + i[0] + " " + i[1] + ") {\n" + "\ | 
				
			||||||
 | 
						\tthis." + i[1] + " = " + i[1] + ";\n\t}\n" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						snip.rv += "\n\tpublic " + i[0] + " get" + camel(i[1]) + "() {\n\ | 
				
			||||||
 | 
						\treturn " + i[1] + ";\n\t}\n" | 
				
			||||||
 | 
					` | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet clc "class with constructor, with field names" b | 
				
			||||||
 | 
					public class `!p | 
				
			||||||
 | 
					snip.rv = snip.basename or "untitled"` { | 
				
			||||||
 | 
					`!p | 
				
			||||||
 | 
					args = getArgs(t[1]) | 
				
			||||||
 | 
					for i in args: | 
				
			||||||
 | 
						snip.rv += "\n\tprivate " + i[0] + " " + i[1]+ ";" | 
				
			||||||
 | 
					if len(args) > 0: | 
				
			||||||
 | 
						snip.rv += "\n"` | 
				
			||||||
 | 
						public `!p snip.rv = snip.basename or "unknown"`($1) {`!p | 
				
			||||||
 | 
					args = getArgs(t[1]) | 
				
			||||||
 | 
					for i in args: | 
				
			||||||
 | 
						snip.rv += "\n\t\tthis.%s = %s;" % (i[1], i[1]) | 
				
			||||||
 | 
					if len(args) == 0: | 
				
			||||||
 | 
						snip.rv += "\n"` | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet clc "class and constructor" b | 
				
			||||||
 | 
					public class `!p | 
				
			||||||
 | 
					snip.rv = snip.basename or "untitled"` { | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public `!p snip.rv = snip.basename or "untitled"`($2) { | 
				
			||||||
 | 
							$0 | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet cl "class" b | 
				
			||||||
 | 
					public class ${1:`!p | 
				
			||||||
 | 
					snip.rv = snip.basename or "untitled"`} { | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet cos "constant string" b | 
				
			||||||
 | 
					public static final String ${1:var} = "$2";$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet co "constant" b | 
				
			||||||
 | 
					public static final ${1:String} ${2:var} = $3;$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet de "default" b | 
				
			||||||
 | 
					default: | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet elif "else if" | 
				
			||||||
 | 
					else if ($1)`!p nl(snip)`{ | 
				
			||||||
 | 
						$0${VISUAL} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet el "else" w | 
				
			||||||
 | 
					else`!p nl(snip)`{ | 
				
			||||||
 | 
						$0${VISUAL} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fi "final" b | 
				
			||||||
 | 
					final $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fore "for (each)" b | 
				
			||||||
 | 
					for ($1 : $2)`!p nl(snip)`{ | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fori "for" b | 
				
			||||||
 | 
					for (int ${1:i} = 0; $1 < ${2:10}; $1++)`!p nl(snip)`{ | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet for "for" b | 
				
			||||||
 | 
					for ($1; $2; $3)`!p nl(snip)`{ | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet if "if" b | 
				
			||||||
 | 
					if ($1)`!p nl(snip)`{ | 
				
			||||||
 | 
						$0${VISUAL} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet imt "import junit_framework_TestCase;"  b | 
				
			||||||
 | 
					import junit.framework.TestCase; | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet im "import"  b | 
				
			||||||
 | 
					import ${1:java}.${2:util}.$0; | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet in "interface" b | 
				
			||||||
 | 
					interface ${1:`!p snip.rv = snip.basename or "untitled"`} ${2:extends ${3:Parent} }{ | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet cc "constructor call or setter body" | 
				
			||||||
 | 
					this.${1:var} = $1; | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet list "Collections List" b | 
				
			||||||
 | 
					List<${1:String}> ${2:list} = new ${3:Array}List<$1>(); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet map "Collections Map" b | 
				
			||||||
 | 
					Map<${1:String}, ${2:String}> ${3:map} = new ${4:Hash}Map<$1, $2>(); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet set "Collections Set" b | 
				
			||||||
 | 
					Set<${1:String}> ${2:set} = new ${3:Hash}Set<$1>(); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet /Str?|str/ "String" br | 
				
			||||||
 | 
					String $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet cn "Constructor" b | 
				
			||||||
 | 
					public `!p snip.rv = snip.basename or "untitled"`(${1:}) { | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet cn "constructor, \w fields + assigments" b | 
				
			||||||
 | 
						`!p | 
				
			||||||
 | 
					args = getArgs(t[1]) | 
				
			||||||
 | 
					for i in args: | 
				
			||||||
 | 
						snip.rv += "\n\tprivate " + i[0] + " " + i[1]+ ";" | 
				
			||||||
 | 
					if len(args) > 0: | 
				
			||||||
 | 
						snip.rv += "\n"` | 
				
			||||||
 | 
					public `!p snip.rv = snip.basename or "unknown"`($1) {`!p | 
				
			||||||
 | 
					args = getArgs(t[1]) | 
				
			||||||
 | 
					for i in args: | 
				
			||||||
 | 
						snip.rv += "\n\t\tthis.%s = %s;" % (i[1], i[1]) | 
				
			||||||
 | 
					if len(args) == 0: | 
				
			||||||
 | 
						snip.rv += "\n"` | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet j.b "java_beans_" i | 
				
			||||||
 | 
					java.beans. | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet j.i "java_io" i | 
				
			||||||
 | 
					java.io. | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet j.m "java_math" i | 
				
			||||||
 | 
					java.math. | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet j.n "java_net_" i | 
				
			||||||
 | 
					java.net. | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet j.u "java_util_"  i | 
				
			||||||
 | 
					java.util. | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet main "method (main)" b | 
				
			||||||
 | 
					public static void main(String[] args)`!p nl(snip)`{ | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet try "try/catch" b | 
				
			||||||
 | 
					try { | 
				
			||||||
 | 
						$1${VISUAL} | 
				
			||||||
 | 
					} catch(${2:Exception} ${3:e}){ | 
				
			||||||
 | 
						${4:e.printStackTrace();} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mt "method throws" b | 
				
			||||||
 | 
					${1:private} ${2:void} ${3:method}($4) ${5:throws $6 }{ | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet m  "method" b | 
				
			||||||
 | 
					${1:private} ${2:void} ${3:method}($4) { | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet md "Method With javadoc" b | 
				
			||||||
 | 
					/** | 
				
			||||||
 | 
					 * ${7:Short Description}`!p | 
				
			||||||
 | 
					for i in getArgs(t[4]): | 
				
			||||||
 | 
						snip.rv += "\n\t * @param " + i[1] + " usage..."` | 
				
			||||||
 | 
					 *`!p | 
				
			||||||
 | 
					if "throws" in t[5]: | 
				
			||||||
 | 
						snip.rv = "\n\t * @throws " + t[6] | 
				
			||||||
 | 
					else: | 
				
			||||||
 | 
						snip.rv = ""``!p | 
				
			||||||
 | 
					if not "void" in t[2]: | 
				
			||||||
 | 
						snip.rv = "\n\t * @return object" | 
				
			||||||
 | 
					else: | 
				
			||||||
 | 
						snip.rv = ""` | 
				
			||||||
 | 
					 **/ | 
				
			||||||
 | 
					${1:public} ${2:void} ${3:method}($4) ${5:throws $6 }{ | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet /get(ter)?/ "getter" br | 
				
			||||||
 | 
					public ${1:String} get${2:Name}() { | 
				
			||||||
 | 
						return `!p snip.rv = mixedCase(t[2])`; | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet /set(ter)?/ "setter" br | 
				
			||||||
 | 
					public void set${1:Name}(${2:String} `!p snip.rv = mixedCase(t[1])`) { | 
				
			||||||
 | 
						this.`!p snip.rv = mixedCase(t[1])` = `!p snip.rv = mixedCase(t[1])`; | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet /se?tge?t|ge?tse?t|gs/ "setter and getter" br | 
				
			||||||
 | 
					public void set${1:Name}(${2:String} `!p snip.rv = mixedCase(t[1])`) { | 
				
			||||||
 | 
						this.`!p snip.rv = mixedCase(t[1])` = `!p snip.rv = mixedCase(t[1])`; | 
				
			||||||
 | 
					}`!p snip.rv += "\n"` | 
				
			||||||
 | 
					public $2 get$1() { | 
				
			||||||
 | 
						return `!p snip.rv = mixedCase(t[1])`; | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet pa "package" b | 
				
			||||||
 | 
					package $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet p "print" b | 
				
			||||||
 | 
					System.out.print($1);$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet pl "println"  b | 
				
			||||||
 | 
					System.out.println($1);$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet pr "private" b | 
				
			||||||
 | 
					private $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet po "protected" b | 
				
			||||||
 | 
					protected $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet pu "public" b | 
				
			||||||
 | 
					public $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet re "return" b | 
				
			||||||
 | 
					return $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet st "static" | 
				
			||||||
 | 
					static $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet sw "switch" b | 
				
			||||||
 | 
					switch ($1)`!p nl(snip)`{ | 
				
			||||||
 | 
						case $2: $0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet sy "synchronized" | 
				
			||||||
 | 
					synchronized $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tc "test case" | 
				
			||||||
 | 
					public class ${1:`!p snip.rv = snip.basename or "untitled"`} extends ${2:TestCase}`!p nl(snip)`{ | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t "test" b | 
				
			||||||
 | 
					`!p junit(snip)`public void test${1:Name}() { | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tt "test throws" b | 
				
			||||||
 | 
					`!p junit(snip)`public void test${1:Name}() ${2:throws Exception }{ | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet th "throw" b | 
				
			||||||
 | 
					throw new $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet wh "while" b | 
				
			||||||
 | 
					while ($1)`!p nl(snip)`{ | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim:ft=snippets: | 
				
			||||||
@ -0,0 +1,51 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# JSDoc snippets | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet /* "A JSDoc comment" b | 
				
			||||||
 | 
					/** | 
				
			||||||
 | 
					 * ${1:${VISUAL}}$0 | 
				
			||||||
 | 
					 */ | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet @au "@author email (First Last)" | 
				
			||||||
 | 
					@author ${1:`!v g:snips_author`} [${2:`!v g:snips_author_email`}] | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet @li "@license Description" | 
				
			||||||
 | 
					@license ${1:MIT}$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet @ver "@version Semantic version" | 
				
			||||||
 | 
					@version ${1:0.1.0}$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet @fileo "@fileoverview Description" b | 
				
			||||||
 | 
					/** | 
				
			||||||
 | 
					 * @fileoverview ${1:${VISUAL:A description of the file}}$0 | 
				
			||||||
 | 
					 */ | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet @constr "@constructor" | 
				
			||||||
 | 
					@constructor | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet @p "@param {Type} varname Description" | 
				
			||||||
 | 
					@param {${1:Type}} ${2:varname} ${3:Description} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet @ret "@return {Type} Description" | 
				
			||||||
 | 
					@return {${1:Type}} ${2:Description} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet @pri "@private" | 
				
			||||||
 | 
					@private | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet @over "@override" | 
				
			||||||
 | 
					@override | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet @pro "@protected" | 
				
			||||||
 | 
					@protected | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
@ -0,0 +1,65 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet #! "shebang" | 
				
			||||||
 | 
					#!/usr/bin/env node | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vreq "assign a CommonJS-style module to a var" | 
				
			||||||
 | 
					var ${0:${1/(.+\/)*(\w+)(-|\b|$)(\..+$)?/\u$2/g}} = require('$1'); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ex "module.exports" | 
				
			||||||
 | 
					module.exports = $1; | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet hcs "http.createServer" | 
				
			||||||
 | 
					http.createServer($1).listen($2); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ncs "net.createServer" | 
				
			||||||
 | 
					net.createServer(function(${1:socket}){ | 
				
			||||||
 | 
						$1.on('data', function(${3:data}){ | 
				
			||||||
 | 
							$4 | 
				
			||||||
 | 
						}); | 
				
			||||||
 | 
						$1.on('end', function(){ | 
				
			||||||
 | 
							$5 | 
				
			||||||
 | 
						}); | 
				
			||||||
 | 
					}).listen(${6:8124}); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet pipe "pipe" | 
				
			||||||
 | 
					pipe(${1:stream})$2 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Express snippets | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet eget "express GET" | 
				
			||||||
 | 
					${1:app}.get('$2', $3); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet epost "express POST" | 
				
			||||||
 | 
					${1:app}.post('$2', $3); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet eput "express PUT" | 
				
			||||||
 | 
					${1:app}.put('$2', $3); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet edelete "express DELETE" | 
				
			||||||
 | 
					${1:app}.delete('$2', $3); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# process snippets | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet stdout "stdout" | 
				
			||||||
 | 
					process.stdout | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet stdin "stdin" | 
				
			||||||
 | 
					process.stdin | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet stderr "stderr" | 
				
			||||||
 | 
					process.stderr | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -0,0 +1,140 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					############ | 
				
			||||||
 | 
					#  COMMON  # | 
				
			||||||
 | 
					############ | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The smart snippets use a global options called | 
				
			||||||
 | 
					# "g:ultisnips_javascript.{option}" which can control the format | 
				
			||||||
 | 
					# of trailing semicolon, space before function paren, etc. | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					global !p | 
				
			||||||
 | 
					from javascript_snippets import ( | 
				
			||||||
 | 
						semi, space_before_function_paren, keyword_spacing | 
				
			||||||
 | 
					) | 
				
			||||||
 | 
					endglobal | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					#                            TextMate Snippets                            # | 
				
			||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					snippet get "Get Elements" | 
				
			||||||
 | 
					getElement${1/(T)|.*/(?1:s)/}By${1:T}${1/(T)|(I)|.*/(?1:agName)(?2:d)/}('$2') | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet '':f "object method string" | 
				
			||||||
 | 
					'${1:${2:#thing}:${3:click}}': function`!p snip.rv = space_before_function_paren(snip)`(element) { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					}${10:,} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet :f "Object Method" | 
				
			||||||
 | 
					${1:method_name}: function`!p snip.rv = space_before_function_paren(snip)`(${3:attribute}) { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					}${10:,} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet :, "Object Value JS" | 
				
			||||||
 | 
					${1:value_name}: ${0:value}, | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet : "Object key key: 'value'" | 
				
			||||||
 | 
					${1:key}: ${2:"${3:value}"}${4:, } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet proto "Prototype (proto)" | 
				
			||||||
 | 
					${1:class_name}.prototype.${2:method_name} = function`!p snip.rv = space_before_function_paren(snip)`(${3:first_argument}) { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					}`!p snip.rv = semi(snip)` | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fun "function (fun)" w | 
				
			||||||
 | 
					function ${1:function_name}`!p snip.rv = space_before_function_paren(snip)`(${2:argument}) { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vf "Function assigned to var" | 
				
			||||||
 | 
					${1:var }${2:function_name} = function $2`!p snip.rv = space_before_function_paren(snip)`($3) { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					}`!p snip.rv = semi(snip)` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet af "Anonymous Function" i | 
				
			||||||
 | 
					function`!p snip.rv = space_before_function_paren(snip)`($1) { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet iife "Immediately-Invoked Function Expression (iife)" | 
				
			||||||
 | 
					(function`!p snip.rv = space_before_function_paren(snip)`(${1:window}) { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					}(${2:$1}))`!p snip.rv = semi(snip)` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ;fe "Minify safe iife" | 
				
			||||||
 | 
					;(function`!p snip.rv = space_before_function_paren(snip)`(${1}) { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					}(${2})) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet timeout "setTimeout function" | 
				
			||||||
 | 
					setTimeout(function`!p snip.rv = space_before_function_paren(snip)`() { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					}${2:.bind(${3:this})}, ${1:10})`!p snip.rv = semi(snip)` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fi "for prop in obj using hasOwnProperty" b | 
				
			||||||
 | 
					for`!p snip.rv = keyword_spacing(snip)`(${1:prop} in ${2:obj}){ | 
				
			||||||
 | 
						if`!p snip.rv = keyword_spacing(snip)`($2.hasOwnProperty($1)) { | 
				
			||||||
 | 
							${VISUAL}$0 | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet if "if (condition) { ... }" | 
				
			||||||
 | 
					if`!p snip.rv = keyword_spacing(snip)`(${1:true}) { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ife "if (condition) { ... } else { ... }" | 
				
			||||||
 | 
					if`!p snip.rv = keyword_spacing(snip)`(${1:true}) { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					}`!p snip.rv = keyword_spacing(snip)`else`!p snip.rv = keyword_spacing(snip)`{ | 
				
			||||||
 | 
						${2} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet switch | 
				
			||||||
 | 
					switch`!p snip.rv = keyword_spacing(snip)`(${VISUAL}${1:expression}) { | 
				
			||||||
 | 
						case '${VISUAL}${3:case}': | 
				
			||||||
 | 
							${4} | 
				
			||||||
 | 
							break`!p snip.rv = semi(snip)` | 
				
			||||||
 | 
						${0} | 
				
			||||||
 | 
						default: | 
				
			||||||
 | 
							${2} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet case "case 'xyz': ... break" | 
				
			||||||
 | 
					case`!p snip.rv = keyword_spacing(snip)`'${VISUAL}${1:case}': | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
						break`!p snip.rv = semi(snip)` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet do "do { ... } while (condition)" | 
				
			||||||
 | 
					do`!p snip.rv = keyword_spacing(snip)`{ | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					}`!p snip.rv = keyword_spacing(snip)`while`!p snip.rv = keyword_spacing(snip)`(${1:/* condition */})`!p snip.rv = semi(snip)` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ret "Return statement" | 
				
			||||||
 | 
					return ${VISUAL}$0`!p snip.rv = semi(snip)` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet us | 
				
			||||||
 | 
					'use strict'`!p snip.rv = semi(snip)` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim:ft=snippets: | 
				
			||||||
@ -0,0 +1,51 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet s "String" b | 
				
			||||||
 | 
					"${1:key}": "${0:value}", | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet n "Number" b | 
				
			||||||
 | 
					"${1:key}": ${0:value}, | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet a "Array" b | 
				
			||||||
 | 
					[ | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					], | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet na "Named array" b | 
				
			||||||
 | 
					"${1:key}": [ | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					], | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet o "Object" b | 
				
			||||||
 | 
					{ | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					}, | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet no "Named object" b | 
				
			||||||
 | 
					"${1:key}": { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					}, | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet null "Null" b | 
				
			||||||
 | 
					"${0:key}": null, | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					global !p | 
				
			||||||
 | 
					def compB(t, opts): | 
				
			||||||
 | 
						if t: | 
				
			||||||
 | 
							opts = [m[len(t):] for m in opts if m.startswith(t)] | 
				
			||||||
 | 
						if len(opts) == 1: | 
				
			||||||
 | 
							return opts[0] | 
				
			||||||
 | 
						return "(" + '|'.join(opts) + ')' | 
				
			||||||
 | 
					endglobal | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet b "Bool" b | 
				
			||||||
 | 
					"${1:key}": $2`!p snip.rv=compB(t[2], ['true', 'false'])`, | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
@ -0,0 +1,92 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					global !p | 
				
			||||||
 | 
					def create_table(snip): | 
				
			||||||
 | 
					    # retrieving single line from current string and treat it like tabstops count | 
				
			||||||
 | 
					    placeholders_string = snip.buffer[snip.line].strip().split("x",1) | 
				
			||||||
 | 
					    rows_amount = int(placeholders_string[0]) | 
				
			||||||
 | 
					    columns_amount = int(placeholders_string[1]) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # erase current line | 
				
			||||||
 | 
					    snip.buffer[snip.line] = '' | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # create anonymous snippet with expected content and number of tabstops | 
				
			||||||
 | 
					    anon_snippet_title = ' | '.join(['$' + str(col) for col in range(1,columns_amount+1)]) + "\n" | 
				
			||||||
 | 
					    anon_snippet_delimiter = ':-|' * (columns_amount-1) + ":-\n" | 
				
			||||||
 | 
					    anon_snippet_body = "" | 
				
			||||||
 | 
					    for row in range(1,rows_amount+1): | 
				
			||||||
 | 
					        anon_snippet_body += ' | '.join(['$' + str(row*columns_amount+col) for col in range(1,columns_amount+1)]) + "\n" | 
				
			||||||
 | 
					    anon_snippet_table = anon_snippet_title + anon_snippet_delimiter + anon_snippet_body | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # expand anonymous snippet | 
				
			||||||
 | 
					    snip.expand_anon(anon_snippet_table) | 
				
			||||||
 | 
					endglobal | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					########################### | 
				
			||||||
 | 
					# Sections and Paragraphs # | 
				
			||||||
 | 
					########################### | 
				
			||||||
 | 
					snippet sec "Section" b | 
				
			||||||
 | 
					# ${1:Section Name} # | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ssec "Sub Section" b | 
				
			||||||
 | 
					## ${1:Section Name} ## | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet sssec "SubSub Section" b | 
				
			||||||
 | 
					### ${1:Section Name} ### | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet par "Paragraph" b | 
				
			||||||
 | 
					#### ${1:Paragraph Name} #### | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet spar "Paragraph" b | 
				
			||||||
 | 
					##### ${1:Paragraph Name} ##### | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					################ | 
				
			||||||
 | 
					# Common stuff # | 
				
			||||||
 | 
					################ | 
				
			||||||
 | 
					snippet link "Link to something" | 
				
			||||||
 | 
					[${1:${VISUAL:Text}}](${3:http://${2:www.url.com}})$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet img "Image" | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ilc "Inline Code" i | 
				
			||||||
 | 
					\`$1\`$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet cbl "Codeblock" b | 
				
			||||||
 | 
					\`\`\` | 
				
			||||||
 | 
					$1 | 
				
			||||||
 | 
					\`\`\` | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet refl "Reference Link" | 
				
			||||||
 | 
					[${1:${VISUAL:Text}}][${2:id}]$0 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[$2]:${4:http://${3:www.url.com}} "${5:$4}" | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fnt "Footnote" | 
				
			||||||
 | 
					[^${1:${VISUAL:Footnote}}]$0 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[^$1]:${2:Text} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					post_jump "create_table(snip)" | 
				
			||||||
 | 
					snippet "tb(\d+x\d+)" "Customizable table" br | 
				
			||||||
 | 
					`!p snip.rv = match.group(1)` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim:ft=snippets: | 
				
			||||||
@ -0,0 +1,174 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rs "raise" b | 
				
			||||||
 | 
					raise (${1:Not_found}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet open "open" | 
				
			||||||
 | 
					let open ${1:module} in | 
				
			||||||
 | 
					${2:e} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet try "try" | 
				
			||||||
 | 
					try ${1:e} | 
				
			||||||
 | 
					with ${2:Not_found} -> ${3:()} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ref "ref" | 
				
			||||||
 | 
					let ${1:name} = ref ${2:val} in | 
				
			||||||
 | 
					${3:e} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet matchl "pattern match on a list" | 
				
			||||||
 | 
					match ${1:list} with | 
				
			||||||
 | 
					| [] -> ${2:()} | 
				
			||||||
 | 
					| x::xs -> ${3:()} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet matcho "pattern match on an option type" | 
				
			||||||
 | 
					match ${1:x} with | 
				
			||||||
 | 
					| Some(${2:y}) -> ${3:()} | 
				
			||||||
 | 
					| None -> ${4:()} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fun "anonymous function" | 
				
			||||||
 | 
					(fun ${1:x} -> ${2:x}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet cc "commment" | 
				
			||||||
 | 
					(* ${1:comment} *) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet let "let .. in binding" | 
				
			||||||
 | 
					let ${1:x} = ${2:v} in | 
				
			||||||
 | 
					${3:e} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet lr "let rec" | 
				
			||||||
 | 
					let rec ${1:f} = | 
				
			||||||
 | 
						${2:expr} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet if "if" | 
				
			||||||
 | 
					if ${1:(* condition *)} then | 
				
			||||||
 | 
						${2:(* A *)} | 
				
			||||||
 | 
					else | 
				
			||||||
 | 
						${3:(* B *)} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet If "If" | 
				
			||||||
 | 
					if ${1:(* condition *)} then | 
				
			||||||
 | 
						${2:(* A *)} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet while "while" | 
				
			||||||
 | 
					while ${1:(* condition *)} do | 
				
			||||||
 | 
						${2:(* A *)} | 
				
			||||||
 | 
					done | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet for "for" | 
				
			||||||
 | 
					for ${1:i} = ${2:1} to ${3:10} do | 
				
			||||||
 | 
						${4:(* BODY *)} | 
				
			||||||
 | 
					done | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet match "match" | 
				
			||||||
 | 
					match ${1:(* e1 *)} with | 
				
			||||||
 | 
					| ${2:p} -> ${3:e2} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet Match "match" | 
				
			||||||
 | 
					match ${1:(* e1 *)} with | 
				
			||||||
 | 
					| ${2:p} -> ${3:e2} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet class "class" | 
				
			||||||
 | 
					class ${1:name} = object | 
				
			||||||
 | 
						${2:methods} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet obj "obj" | 
				
			||||||
 | 
					object | 
				
			||||||
 | 
						${2:methods} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet Obj "object" | 
				
			||||||
 | 
					object (self) | 
				
			||||||
 | 
						${2:methods} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet {{ "object functional update" | 
				
			||||||
 | 
					{< ${1:x} = ${2:y} >} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet beg "beg" | 
				
			||||||
 | 
					begin | 
				
			||||||
 | 
						${1:block} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ml "module instantiantion with functor" | 
				
			||||||
 | 
					module ${1:Mod} = ${2:Functor}(${3:Arg}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mod "module - no signature" | 
				
			||||||
 | 
					module ${1:(* Name *)} = struct | 
				
			||||||
 | 
						${2:(* BODY *)} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet Mod "module with signature" | 
				
			||||||
 | 
					module ${1:(* Name *)} : ${2:(* SIG *)} = struct | 
				
			||||||
 | 
						${3:(* BODY *)} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet sig "anonymous signature" | 
				
			||||||
 | 
					sig | 
				
			||||||
 | 
						${2:(* BODY *)} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet sigf "functor signature or anonymous functor" | 
				
			||||||
 | 
					functor (${1:Arg} : ${2:ARG}) -> ${3:(* BODY *)} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet func "define functor - no signature" | 
				
			||||||
 | 
					module ${1:M} (${2:Arg} : ${3:ARG}) = struct | 
				
			||||||
 | 
						${4:(* BODY *)} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet Func "define functor - with signature" | 
				
			||||||
 | 
					module ${1:M} (${2:Arg} : ${3:ARG}) : ${4:SIG} = struct | 
				
			||||||
 | 
						${5:(* BODY *)} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mot "Declare module signature" | 
				
			||||||
 | 
					module type ${1:(* Name *)} = sig | 
				
			||||||
 | 
						${2:(* BODY *)} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet module "Module with anonymous signature" | 
				
			||||||
 | 
					module ${1:(* Name *)} : sig | 
				
			||||||
 | 
						${2:(* SIGNATURE *)} | 
				
			||||||
 | 
					end = struct | 
				
			||||||
 | 
						${3:(* BODY *)} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet oo "odoc" | 
				
			||||||
 | 
					(** ${1:odoc} *) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet qt "inline qtest" | 
				
			||||||
 | 
					(*$T ${1:name} | 
				
			||||||
 | 
						${2:test} | 
				
			||||||
 | 
					*) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
@ -0,0 +1,712 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					#                            TEXTMATE SNIPPETS                            # | 
				
			||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#! header | 
				
			||||||
 | 
					snippet #! "Shebang header for python scripts" b | 
				
			||||||
 | 
					#!/usr/bin/env python | 
				
			||||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ifmain "ifmain" b | 
				
			||||||
 | 
					if __name__ == `!p snip.rv = get_quoting_style(snip)`__main__`!p snip.rv = get_quoting_style(snip)`: | 
				
			||||||
 | 
						${1:${VISUAL:main()}} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet with "with" b | 
				
			||||||
 | 
					with ${1:expr}`!p snip.rv = " as " if t[2] else ""`${2:var}: | 
				
			||||||
 | 
						${3:${VISUAL:pass}} | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet for "for loop" b | 
				
			||||||
 | 
					for ${1:item} in ${2:iterable}: | 
				
			||||||
 | 
						${3:${VISUAL:pass}} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					########## | 
				
			||||||
 | 
					# COMMON # | 
				
			||||||
 | 
					########## | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The smart def and smart class snippets use a global option called | 
				
			||||||
 | 
					# "g:ultisnips_python_style" which, if set to "doxygen" will use doxygen | 
				
			||||||
 | 
					# style comments in docstrings. | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					global !p | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NORMAL  = 0x1 | 
				
			||||||
 | 
					DOXYGEN = 0x2 | 
				
			||||||
 | 
					SPHINX  = 0x3 | 
				
			||||||
 | 
					GOOGLE  = 0x4 | 
				
			||||||
 | 
					NUMPY   = 0x5 | 
				
			||||||
 | 
					JEDI    = 0x6 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SINGLE_QUOTES = "'" | 
				
			||||||
 | 
					DOUBLE_QUOTES = '"' | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Arg(object): | 
				
			||||||
 | 
						def __init__(self, arg): | 
				
			||||||
 | 
							self.arg = arg | 
				
			||||||
 | 
							self.name = arg.split('=')[0].strip() | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def __str__(self): | 
				
			||||||
 | 
							return self.name | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def __unicode__(self): | 
				
			||||||
 | 
							return self.name | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def is_kwarg(self): | 
				
			||||||
 | 
							return '=' in self.arg | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_args(arglist): | 
				
			||||||
 | 
						args = [Arg(arg) for arg in arglist.split(',') if arg] | 
				
			||||||
 | 
						args = [arg for arg in args if arg.name != 'self'] | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return args | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_quoting_style(snip): | 
				
			||||||
 | 
						style = snip.opt("g:ultisnips_python_quoting_style", "double") | 
				
			||||||
 | 
						if style == 'single': | 
				
			||||||
 | 
							return SINGLE_QUOTES | 
				
			||||||
 | 
						return DOUBLE_QUOTES | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def triple_quotes(snip): | 
				
			||||||
 | 
						style = snip.opt("g:ultisnips_python_triple_quoting_style") | 
				
			||||||
 | 
						if not style: | 
				
			||||||
 | 
							return get_quoting_style(snip) * 3 | 
				
			||||||
 | 
						return (SINGLE_QUOTES if style == 'single' else DOUBLE_QUOTES) * 3 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def triple_quotes_handle_trailing(snip, quoting_style): | 
				
			||||||
 | 
						""" | 
				
			||||||
 | 
						Generate triple quoted strings and handle any trailing quote char, | 
				
			||||||
 | 
						which might be there from some autoclose/autopair plugin, | 
				
			||||||
 | 
						i.e. when expanding ``"|"``. | 
				
			||||||
 | 
						""" | 
				
			||||||
 | 
						if not snip.c: | 
				
			||||||
 | 
							# Do this only once, otherwise the following error would happen: | 
				
			||||||
 | 
							# RuntimeError: The snippets content did not converge: … | 
				
			||||||
 | 
							_, col = vim.current.window.cursor | 
				
			||||||
 | 
							line = vim.current.line | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							# Handle already existing quote chars after the trigger. | 
				
			||||||
 | 
							_ret = quoting_style * 3 | 
				
			||||||
 | 
							while True: | 
				
			||||||
 | 
								try: | 
				
			||||||
 | 
									nextc = line[col] | 
				
			||||||
 | 
								except IndexError: | 
				
			||||||
 | 
									break | 
				
			||||||
 | 
								if nextc == quoting_style and len(_ret): | 
				
			||||||
 | 
									_ret = _ret[1:] | 
				
			||||||
 | 
									col = col+1 | 
				
			||||||
 | 
								else: | 
				
			||||||
 | 
									break | 
				
			||||||
 | 
							snip.rv = _ret | 
				
			||||||
 | 
						else: | 
				
			||||||
 | 
							snip.rv = snip.c | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_style(snip): | 
				
			||||||
 | 
						style = snip.opt("g:ultisnips_python_style", "normal") | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if    style == "doxygen": return DOXYGEN | 
				
			||||||
 | 
						elif  style == "sphinx": return SPHINX | 
				
			||||||
 | 
						elif  style == "google": return GOOGLE | 
				
			||||||
 | 
						elif  style == "numpy": return NUMPY | 
				
			||||||
 | 
						elif  style == "jedi": return JEDI | 
				
			||||||
 | 
						else: return NORMAL | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def format_arg(arg, style): | 
				
			||||||
 | 
						if style == DOXYGEN: | 
				
			||||||
 | 
							return "@param %s TODO" % arg | 
				
			||||||
 | 
						elif style == SPHINX: | 
				
			||||||
 | 
							return ":param %s: TODO" % arg | 
				
			||||||
 | 
						elif style == NORMAL: | 
				
			||||||
 | 
							return ":%s: TODO" % arg | 
				
			||||||
 | 
						elif style == GOOGLE: | 
				
			||||||
 | 
							return "%s (TODO): TODO" % arg | 
				
			||||||
 | 
						elif style == JEDI: | 
				
			||||||
 | 
							return ":type %s: TODO" % arg | 
				
			||||||
 | 
						elif style == NUMPY: | 
				
			||||||
 | 
							return "%s : TODO" % arg | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def format_return(style): | 
				
			||||||
 | 
						if style == DOXYGEN: | 
				
			||||||
 | 
							return "@return: TODO" | 
				
			||||||
 | 
						elif style in (NORMAL, SPHINX, JEDI): | 
				
			||||||
 | 
							return ":returns: TODO" | 
				
			||||||
 | 
						elif style == GOOGLE: | 
				
			||||||
 | 
							return "Returns: TODO" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def write_docstring_args(args, snip): | 
				
			||||||
 | 
						if not args: | 
				
			||||||
 | 
							snip.rv += ' {0}'.format(triple_quotes(snip)) | 
				
			||||||
 | 
							return | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						snip.rv += '\n' + snip.mkline('', indent='') | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						style = get_style(snip) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if style == GOOGLE: | 
				
			||||||
 | 
							write_google_docstring_args(args, snip) | 
				
			||||||
 | 
						elif style == NUMPY: | 
				
			||||||
 | 
							write_numpy_docstring_args(args, snip) | 
				
			||||||
 | 
						else: | 
				
			||||||
 | 
							for arg in args: | 
				
			||||||
 | 
								snip += format_arg(arg, style) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def write_google_docstring_args(args, snip): | 
				
			||||||
 | 
						kwargs = [arg for arg in args if arg.is_kwarg()] | 
				
			||||||
 | 
						args = [arg for arg in args if not arg.is_kwarg()] | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if args: | 
				
			||||||
 | 
							snip += "Args:" | 
				
			||||||
 | 
							snip.shift() | 
				
			||||||
 | 
							for arg in args: | 
				
			||||||
 | 
								snip += format_arg(arg, GOOGLE) | 
				
			||||||
 | 
							snip.unshift() | 
				
			||||||
 | 
							snip.rv += '\n' + snip.mkline('', indent='') | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if kwargs: | 
				
			||||||
 | 
							snip += "Kwargs:" | 
				
			||||||
 | 
							snip.shift() | 
				
			||||||
 | 
							for kwarg in kwargs: | 
				
			||||||
 | 
								snip += format_arg(kwarg, GOOGLE) | 
				
			||||||
 | 
							snip.unshift() | 
				
			||||||
 | 
							snip.rv += '\n' + snip.mkline('', indent='') | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def write_numpy_docstring_args(args, snip): | 
				
			||||||
 | 
						if args: | 
				
			||||||
 | 
							snip += "Parameters" | 
				
			||||||
 | 
							snip += "----------" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						kwargs = [arg for arg in args if arg.is_kwarg()] | 
				
			||||||
 | 
						args = [arg for arg in args if not arg.is_kwarg()] | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if args: | 
				
			||||||
 | 
							for arg in args: | 
				
			||||||
 | 
								snip += format_arg(arg, NUMPY) | 
				
			||||||
 | 
						if kwargs: | 
				
			||||||
 | 
							for kwarg in kwargs: | 
				
			||||||
 | 
								snip += format_arg(kwarg, NUMPY) + ', optional' | 
				
			||||||
 | 
						snip.rv += '\n' + snip.mkline('', indent='') | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def write_init_body(args, parents, snip): | 
				
			||||||
 | 
						parents = [p.strip() for p in parents.split(",")] | 
				
			||||||
 | 
						parents = [p for p in parents if p != 'object'] | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for p in parents: | 
				
			||||||
 | 
							snip += p + ".__init__(self)" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if parents: | 
				
			||||||
 | 
							snip.rv += '\n' + snip.mkline('', indent='') | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for arg in args: | 
				
			||||||
 | 
							snip += "self._%s = %s" % (arg, arg) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def write_slots_args(args, snip): | 
				
			||||||
 | 
						args = ['"_%s"' % arg for arg in args] | 
				
			||||||
 | 
						snip += '__slots__ = (%s,)' % ', '.join(args) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def write_function_docstring(t, snip): | 
				
			||||||
 | 
						""" | 
				
			||||||
 | 
						Writes a function docstring with the current style. | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						:param t: The values of the placeholders | 
				
			||||||
 | 
						:param snip: UltiSnips.TextObjects.SnippetUtil object instance | 
				
			||||||
 | 
						""" | 
				
			||||||
 | 
						snip.rv = "" | 
				
			||||||
 | 
						snip >> 1 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						args = get_args(t[2]) | 
				
			||||||
 | 
						if args: | 
				
			||||||
 | 
							write_docstring_args(args, snip) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						style = get_style(snip) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if style == NUMPY: | 
				
			||||||
 | 
							snip += 'Returns' | 
				
			||||||
 | 
							snip += '-------' | 
				
			||||||
 | 
							snip += 'TODO' | 
				
			||||||
 | 
						else: | 
				
			||||||
 | 
							snip += format_return(style) | 
				
			||||||
 | 
						snip.rv += '\n' + snip.mkline('', indent='') | 
				
			||||||
 | 
						snip += triple_quotes(snip) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_dir_and_file_name(snip): | 
				
			||||||
 | 
						return os.getcwd().split(os.sep)[-1] + '.' + snip.basename | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endglobal | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					######################################## | 
				
			||||||
 | 
					# Class & Special Method Name Snippets # | 
				
			||||||
 | 
					######################################## | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet class "class with docstrings" b | 
				
			||||||
 | 
					class ${1:MyClass}(${2:object}): | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						`!p snip.rv = triple_quotes(snip)`${3:Docstring for $1. }`!p snip.rv = triple_quotes(snip)` | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def __init__(self$4): | 
				
			||||||
 | 
							`!p snip.rv = triple_quotes(snip)`${5:TODO: to be defined1.}`!p | 
				
			||||||
 | 
					snip.rv = "" | 
				
			||||||
 | 
					snip >> 2 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					args = get_args(t[4]) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					write_docstring_args(args, snip) | 
				
			||||||
 | 
					if args: | 
				
			||||||
 | 
						snip.rv += '\n' + snip.mkline('', indent='') | 
				
			||||||
 | 
						snip += '{0}'.format(triple_quotes(snip)) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					write_init_body(args, t[2], snip) | 
				
			||||||
 | 
					` | 
				
			||||||
 | 
							$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet slotclass "class with slots and docstrings" b | 
				
			||||||
 | 
					class ${1:MyClass}(${2:object}): | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						`!p snip.rv = triple_quotes(snip)`${3:Docstring for $1. }`!p snip.rv = triple_quotes(snip)` | 
				
			||||||
 | 
					`!p | 
				
			||||||
 | 
					snip >> 1 | 
				
			||||||
 | 
					args = get_args(t[4]) | 
				
			||||||
 | 
					write_slots_args(args, snip) | 
				
			||||||
 | 
					` | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def __init__(self$4): | 
				
			||||||
 | 
							`!p snip.rv = triple_quotes(snip)`${5:TODO: to be defined.}`!p | 
				
			||||||
 | 
					snip.rv = "" | 
				
			||||||
 | 
					snip >> 2 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					args = get_args(t[4]) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					write_docstring_args(args, snip) | 
				
			||||||
 | 
					if args: | 
				
			||||||
 | 
						snip.rv += '\n' + snip.mkline('', indent='') | 
				
			||||||
 | 
						snip += triple_quotes(snip) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					write_init_body(args, t[2], snip) | 
				
			||||||
 | 
					` | 
				
			||||||
 | 
							$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet contain "methods for emulating a container type" b | 
				
			||||||
 | 
					def __len__(self): | 
				
			||||||
 | 
						${1:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __getitem__(self, key): | 
				
			||||||
 | 
						${2:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __setitem__(self, key, value): | 
				
			||||||
 | 
						${3:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __delitem__(self, key): | 
				
			||||||
 | 
						${4:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __iter__(self): | 
				
			||||||
 | 
						${5:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __reversed__(self): | 
				
			||||||
 | 
						${6:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __contains__(self, item): | 
				
			||||||
 | 
						${7:pass} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet context "context manager methods" b | 
				
			||||||
 | 
					def __enter__(self): | 
				
			||||||
 | 
						${1:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __exit__(self, exc_type, exc_value, traceback): | 
				
			||||||
 | 
						${2:pass} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet attr "methods for customizing attribute access" b | 
				
			||||||
 | 
					def __getattr__(self, name): | 
				
			||||||
 | 
						${1:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __setattr__(self, name, value): | 
				
			||||||
 | 
						${2:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __delattr__(self, name): | 
				
			||||||
 | 
						${3:pass} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet desc "methods implementing descriptors" b | 
				
			||||||
 | 
					def __get__(self, instance, owner): | 
				
			||||||
 | 
						${1:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __set__(self, instance, value): | 
				
			||||||
 | 
						${2:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __delete__(self, instance): | 
				
			||||||
 | 
						${3:pass} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet cmp "methods implementing rich comparison" | 
				
			||||||
 | 
					def __eq__(self, other): | 
				
			||||||
 | 
						${1:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __ne__(self, other): | 
				
			||||||
 | 
						${2:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __lt__(self, other): | 
				
			||||||
 | 
						${3:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __le__(self, other): | 
				
			||||||
 | 
						${4:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __gt__(self, other): | 
				
			||||||
 | 
						${5:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __ge__(self, other): | 
				
			||||||
 | 
						${6:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __cmp__(self, other): | 
				
			||||||
 | 
						${7:pass} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet repr "methods implementing string representation" | 
				
			||||||
 | 
					def __repr__(self): | 
				
			||||||
 | 
						${1:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __str__(self): | 
				
			||||||
 | 
						${2:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __unicode__(self): | 
				
			||||||
 | 
						${3:pass} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# note: reflected operands and augmented arithmeitc assignements have been | 
				
			||||||
 | 
					# intentionally ommited to reduce verbosity. | 
				
			||||||
 | 
					snippet numeric "methods for emulating a numeric type" b | 
				
			||||||
 | 
					def __add__(self, other): | 
				
			||||||
 | 
						${1:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __sub__(self, other): | 
				
			||||||
 | 
						${2:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __mul__(self, other): | 
				
			||||||
 | 
						${3:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __div__(self, other): | 
				
			||||||
 | 
						${4:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __truediv__(self, other): | 
				
			||||||
 | 
						${5:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __floordiv__(self, other): | 
				
			||||||
 | 
						${6:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __mod__(self, other): | 
				
			||||||
 | 
						${7:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __divmod__(self, other): | 
				
			||||||
 | 
						${8:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __pow__(self, other): | 
				
			||||||
 | 
						${9:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __lshift__(self, other): | 
				
			||||||
 | 
						${10:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __rshift__(self, other): | 
				
			||||||
 | 
						${11:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __and__(self, other): | 
				
			||||||
 | 
						${12:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __xor__(self, other): | 
				
			||||||
 | 
						${13:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __or__(self, other): | 
				
			||||||
 | 
						${14:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __neg__(self): | 
				
			||||||
 | 
						${15:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __pos__(self): | 
				
			||||||
 | 
						${16:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __abs__(self): | 
				
			||||||
 | 
						${17:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __invert__(self): | 
				
			||||||
 | 
						${18:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __complex__(self): | 
				
			||||||
 | 
						${19:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __int__(self): | 
				
			||||||
 | 
						${20:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __long__(self): | 
				
			||||||
 | 
						${21:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __float__(self): | 
				
			||||||
 | 
						${22:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __oct__(self): | 
				
			||||||
 | 
						${22:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __hex__(self): | 
				
			||||||
 | 
						${23:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __index__(self): | 
				
			||||||
 | 
						${24:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def __coerce__(self, other): | 
				
			||||||
 | 
						${25:pass} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet deff | 
				
			||||||
 | 
					def ${1:fname}(`!p snip.rv = vim.eval('indent(".") ? "self" : ""')`$2): | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet def "function with docstrings" b | 
				
			||||||
 | 
					def ${1:function}(`!p | 
				
			||||||
 | 
					if snip.indent: | 
				
			||||||
 | 
						snip.rv = 'self' + (", " if len(t[2]) else "")`${2:arg1}): | 
				
			||||||
 | 
						`!p snip.rv = triple_quotes(snip)`${4:TODO: Docstring for $1.}`!p | 
				
			||||||
 | 
					write_function_docstring(t, snip) ` | 
				
			||||||
 | 
						${5:${VISUAL:pass}} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet defc "class method with docstrings" b | 
				
			||||||
 | 
					@classmethod | 
				
			||||||
 | 
					def ${1:function}(`!p | 
				
			||||||
 | 
					if snip.indent: | 
				
			||||||
 | 
						snip.rv = 'cls' + (", " if len(t[2]) else "")`${2:arg1}): | 
				
			||||||
 | 
						`!p snip.rv = triple_quotes(snip)`${4:TODO: Docstring for $1.}`!p | 
				
			||||||
 | 
					write_function_docstring(t, snip) ` | 
				
			||||||
 | 
						${5:${VISUAL:pass}} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet defs "static method with docstrings" b | 
				
			||||||
 | 
					@staticmethod | 
				
			||||||
 | 
					def ${1:function}(${2:arg1}): | 
				
			||||||
 | 
						`!p snip.rv = triple_quotes(snip)`${4:TODO: Docstring for $1.}`!p | 
				
			||||||
 | 
					write_function_docstring(t, snip) ` | 
				
			||||||
 | 
						${5:${VISUAL:pass}} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# doesn't expand when there is a word in front | 
				
			||||||
 | 
					snippet /(^|(?<=\W))\./ "self." r | 
				
			||||||
 | 
					self. | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet from "from module import name" b | 
				
			||||||
 | 
					from ${1:module} import ${2:Stuff} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					############## | 
				
			||||||
 | 
					# PROPERTIES # | 
				
			||||||
 | 
					############## | 
				
			||||||
 | 
					snippet roprop "Read Only Property" b | 
				
			||||||
 | 
					@property | 
				
			||||||
 | 
					def ${1:name}(self): | 
				
			||||||
 | 
						${2:return self._$1}$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rwprop "Read write property" b | 
				
			||||||
 | 
					def ${1:name}(): | 
				
			||||||
 | 
						`!p snip.rv = triple_quotes(snip) if t[2] else '' | 
				
			||||||
 | 
					`${2:TODO: Docstring for $1.}`!p | 
				
			||||||
 | 
					if t[2]: | 
				
			||||||
 | 
						snip >> 1 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						style = get_style(snip) | 
				
			||||||
 | 
						snip.rv += '\n' + snip.mkline('', indent='') | 
				
			||||||
 | 
						snip += format_return(style) | 
				
			||||||
 | 
						snip.rv += '\n' + snip.mkline('', indent='') | 
				
			||||||
 | 
						snip += triple_quotes(snip) | 
				
			||||||
 | 
					else: | 
				
			||||||
 | 
						snip.rv = ""` | 
				
			||||||
 | 
						def fget(self): | 
				
			||||||
 | 
							return self._$1$0 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def fset(self, value): | 
				
			||||||
 | 
							self._$1 = value | 
				
			||||||
 | 
						return locals() | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$1 = property(**$1(), doc=$1.__doc__) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#################### | 
				
			||||||
 | 
					# If / Else / Elif # | 
				
			||||||
 | 
					#################### | 
				
			||||||
 | 
					snippet if "If" b | 
				
			||||||
 | 
					if ${1:condition}: | 
				
			||||||
 | 
						${2:${VISUAL:pass}} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ife "If / Else" b | 
				
			||||||
 | 
					if ${1:condition}: | 
				
			||||||
 | 
						${2:${VISUAL:pass}} | 
				
			||||||
 | 
					else: | 
				
			||||||
 | 
						${3:pass} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ifee "If / Elif / Else" b | 
				
			||||||
 | 
					if ${1:condition}: | 
				
			||||||
 | 
						${2:${VISUAL:pass}} | 
				
			||||||
 | 
					elif ${3:condition}: | 
				
			||||||
 | 
						${4:pass} | 
				
			||||||
 | 
					else: | 
				
			||||||
 | 
						${5:pass} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					########################## | 
				
			||||||
 | 
					# Try / Except / Finally # | 
				
			||||||
 | 
					########################## | 
				
			||||||
 | 
					snippet try "Try / Except" b | 
				
			||||||
 | 
					try: | 
				
			||||||
 | 
						${1:${VISUAL:pass}} | 
				
			||||||
 | 
					except ${2:Exception} as ${3:e}: | 
				
			||||||
 | 
						${4:raise $3} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet trye "Try / Except / Else" b | 
				
			||||||
 | 
					try: | 
				
			||||||
 | 
						${1:${VISUAL:pass}} | 
				
			||||||
 | 
					except ${2:Exception} as ${3:e}: | 
				
			||||||
 | 
						${4:raise $3} | 
				
			||||||
 | 
					else: | 
				
			||||||
 | 
						${5:pass} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tryf "Try / Except / Finally" b | 
				
			||||||
 | 
					try: | 
				
			||||||
 | 
						${1:${VISUAL:pass}} | 
				
			||||||
 | 
					except ${2:Exception} as ${3:e}: | 
				
			||||||
 | 
						${4:raise $3} | 
				
			||||||
 | 
					finally: | 
				
			||||||
 | 
						${5:pass} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tryef "Try / Except / Else / Finally" b | 
				
			||||||
 | 
					try: | 
				
			||||||
 | 
						${1:${VISUAL:pass}} | 
				
			||||||
 | 
					except${2: ${3:Exception} as ${4:e}}: | 
				
			||||||
 | 
						${5:raise} | 
				
			||||||
 | 
					else: | 
				
			||||||
 | 
						${6:pass} | 
				
			||||||
 | 
					finally: | 
				
			||||||
 | 
						${7:pass} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					###################### | 
				
			||||||
 | 
					# Assertions & Tests # | 
				
			||||||
 | 
					###################### | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ae "Assert equal" b | 
				
			||||||
 | 
					self.assertEqual(${1:${VISUAL:first}},${2:second}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet at "Assert True" b | 
				
			||||||
 | 
					self.assertTrue(${1:${VISUAL:expression}}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet af "Assert False" b | 
				
			||||||
 | 
					self.assertFalse(${1:${VISUAL:expression}}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet aae "Assert almost equal" b | 
				
			||||||
 | 
					self.assertAlmostEqual(${1:${VISUAL:first}},${2:second}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ar "Assert raises" b | 
				
			||||||
 | 
					self.assertRaises(${1:exception}, ${2:${VISUAL:func}}${3/.+/, /}${3:arguments}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet an "Assert is None" b | 
				
			||||||
 | 
					self.assertIsNone(${1:${VISUAL:expression}}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ann "Assert is not None" b | 
				
			||||||
 | 
					self.assertIsNotNone(${1:${VISUAL:expression}}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet testcase "pyunit testcase" b | 
				
			||||||
 | 
					class Test${1:Class}(${2:unittest.TestCase}): | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						`!p snip.rv = triple_quotes(snip)`${3:Test case docstring.}`!p snip.rv = triple_quotes(snip)` | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def setUp(self): | 
				
			||||||
 | 
							${4:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def tearDown(self): | 
				
			||||||
 | 
							${5:pass} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def test_${6:name}(self): | 
				
			||||||
 | 
							${7:${VISUAL:pass}} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet " "triple quoted string (double quotes)" b | 
				
			||||||
 | 
					""" | 
				
			||||||
 | 
					${1:${VISUAL:doc}} | 
				
			||||||
 | 
					`!p triple_quotes_handle_trailing(snip, '"')` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ' "triple quoted string (single quotes)" b | 
				
			||||||
 | 
					''' | 
				
			||||||
 | 
					${1:${VISUAL:doc}} | 
				
			||||||
 | 
					`!p triple_quotes_handle_trailing(snip, "'")` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet doc "doc block (triple quotes)" | 
				
			||||||
 | 
					`!p snip.rv = triple_quotes(snip)` | 
				
			||||||
 | 
					${1:${VISUAL:doc}} | 
				
			||||||
 | 
					`!p snip.rv = triple_quotes(snip)` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet pmdoc "pocoo style module doc string" b | 
				
			||||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||||
 | 
					""" | 
				
			||||||
 | 
						`!p snip.rv = get_dir_and_file_name(snip)` | 
				
			||||||
 | 
						`!p snip.rv = '~' * len(get_dir_and_file_name(snip))` | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						${1:DESCRIPTION} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						:copyright: (c) `date +%Y` by ${2:YOUR_NAME}. | 
				
			||||||
 | 
						:license: ${3:LICENSE_NAME}, see LICENSE for more details. | 
				
			||||||
 | 
					""" | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim:ft=snippets: | 
				
			||||||
@ -0,0 +1,178 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					global !p | 
				
			||||||
 | 
					import os | 
				
			||||||
 | 
					from vimsnippets import complete | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FIELD_TYPES = [ | 
				
			||||||
 | 
					'character', | 
				
			||||||
 | 
					'data.frame', | 
				
			||||||
 | 
					'integer', | 
				
			||||||
 | 
					'list', | 
				
			||||||
 | 
					'logical', | 
				
			||||||
 | 
					'matrix', | 
				
			||||||
 | 
					'numeric', | 
				
			||||||
 | 
					'vector'] | 
				
			||||||
 | 
					endglobal | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet #! "Hashbang for Rscript (#!)" b | 
				
			||||||
 | 
					#!/usr/bin/env Rscript | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet setwd "Set workingdir" b | 
				
			||||||
 | 
					setwd("${1:`!p snip.rv = os.getcwd()`}") | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet as "Apply type on variable" w | 
				
			||||||
 | 
					as.$1`!p snip.rv = complete(t[1], FIELD_TYPES)`($2${VISUAL}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet is "Test type on variable" w | 
				
			||||||
 | 
					is.$1`!p snip.rv = complete(t[1], FIELD_TYPES)`($2${VISUAL}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet dl "Download and install a package" b | 
				
			||||||
 | 
					download.file("${1:${VISUAL:url to package}}", destfile = "${2:${1/.*\/(\S*)$/(?1:$1)/ga}}") | 
				
			||||||
 | 
					install.packages("$2", type = "source", repos = NULL) | 
				
			||||||
 | 
					library("${3:${2/^(\w+)_.*$/(?1:$1)/ga}}") | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet lib "Import a library" | 
				
			||||||
 | 
					library(${0:package}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet req "Require a file" | 
				
			||||||
 | 
					require(${0:package}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet source "Source a file" | 
				
			||||||
 | 
					source('${0:file}') | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet if "If statement" | 
				
			||||||
 | 
					if ($1) { | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet eif "Else-If statement" | 
				
			||||||
 | 
					else if ($1) { | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet el "Else statement" | 
				
			||||||
 | 
					else { | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ife "if .. else" | 
				
			||||||
 | 
					if ($1) { | 
				
			||||||
 | 
						$2 | 
				
			||||||
 | 
					} else { | 
				
			||||||
 | 
						$3 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet wh "while loop" | 
				
			||||||
 | 
					while($1) { | 
				
			||||||
 | 
						$2 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet for "for loop" | 
				
			||||||
 | 
					for (${1:item} in ${2:list}) { | 
				
			||||||
 | 
						$3 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fun "Function definition" | 
				
			||||||
 | 
					${1:name} <- function ($2) { | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ret "Return call" | 
				
			||||||
 | 
					return($0) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet df "Data frame" | 
				
			||||||
 | 
					${1:name}[${2:rows}, ${0:cols}] | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet c "c function" | 
				
			||||||
 | 
					c(${0:items}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet li "list function" | 
				
			||||||
 | 
					list(${0:items}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mat "matrix function" | 
				
			||||||
 | 
					matrix(${1:data}, nrow = ${2:rows}, ncol = ${0:cols}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet apply "apply function" | 
				
			||||||
 | 
					apply(${1:array}, ${2:margin}, ${0:function}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet lapply "lapply function" | 
				
			||||||
 | 
					lapply(${1:list}, ${0:function}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet sapply "sapply function" | 
				
			||||||
 | 
					sapply(${1:list}, ${0:function}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vapply "vapply function" | 
				
			||||||
 | 
					vapply(${1:list}, ${2:function}, ${0:type}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mapply "mapply function" | 
				
			||||||
 | 
					mapply(${1:function}, ${0:...}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tapply "tapply function" | 
				
			||||||
 | 
					tapply(${1:vector}, ${2:index}, ${0:function}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rapply "rapply function" | 
				
			||||||
 | 
					rapply(${1:list}, ${0:function}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet pl "Plot function" | 
				
			||||||
 | 
					plot(${1:x}, ${0:y}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ggp "ggplot2 plot" | 
				
			||||||
 | 
					ggplot(${1:data}, aes(${0:aesthetics})) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fis "Fisher test" | 
				
			||||||
 | 
					fisher.test(${1:x}, ${0:y}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet chi "Chi Squared test" | 
				
			||||||
 | 
					chisq.test(${1:x}, ${0:y}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tt "t-test" | 
				
			||||||
 | 
					t.test(${1:x}, ${0:y}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet wil "Wilcox test" | 
				
			||||||
 | 
					wilcox.test(${1:x}, ${0:y}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet cor "Correlation test" | 
				
			||||||
 | 
					cor.test(${1:x}, ${0:y}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fte "FTE test" | 
				
			||||||
 | 
					var.test(${1:x}, ${0:y}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet kvt "KV test" | 
				
			||||||
 | 
					kv.test(${1:x}, ${0:y}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
@ -0,0 +1,894 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet anaf "accepts_nested_attributes_for" | 
				
			||||||
 | 
					accepts_nested_attributes_for :${1:association_name}${2:${3:, :allow_destroy => true}${4:, :reject_if => proc \{ |obj| ${5:obj.blank?} \}}} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tcbi "Create binary column" | 
				
			||||||
 | 
					t.binary :${1:title}${2:, :limit => ${3:2}.megabytes} | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tcb "Create boolean column" | 
				
			||||||
 | 
					t.boolean :${1:title} | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet clac "Create controller class" | 
				
			||||||
 | 
					class ${1:Model}Controller < ApplicationController | 
				
			||||||
 | 
						before_filter :find_${2:model} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private | 
				
			||||||
 | 
						def find_$2 | 
				
			||||||
 | 
							@$2 = ${3:$1}.find(params[:id]) if params[:id] | 
				
			||||||
 | 
						end | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tcda "Create date column" | 
				
			||||||
 | 
					t.date :${1:title} | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tcdt "Create datetime column" | 
				
			||||||
 | 
					t.datetime :${1:title} | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tcd "Create decimal column" | 
				
			||||||
 | 
					t.decimal :${1:title}${2:${3:, :precision => ${4:10}}${5:, :scale => ${6:2}}} | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tcf "Create float column" | 
				
			||||||
 | 
					t.float :${1:title} | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet clact "Create functional test class" | 
				
			||||||
 | 
					require 'test_helper' | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ${1:Model}ControllerTest < ActionController::TestCase | 
				
			||||||
 | 
						test$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tci "Create integer column" | 
				
			||||||
 | 
					t.integer :${1:title} | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tcl "Create lock_version column" | 
				
			||||||
 | 
					t.integer :lock_version, :null => false, :default => 0 | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# FIXME: handling literal bracket pair inside of nested tab groups? | 
				
			||||||
 | 
					snippet tcr "Create references column" | 
				
			||||||
 | 
					t.references :${1:taggable}${2:, :polymorphic => ${3:{ :default => '${4:Photo}' \}}} | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet resources "Create resources controller class" | 
				
			||||||
 | 
					class ${1:Model}sController < ApplicationController | 
				
			||||||
 | 
						before_filter :find_${1/./\l$0/}, :only => [:show, :edit, :update, :destroy] | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# GET /${1/./\l$0/}s | 
				
			||||||
 | 
						# GET /${1/./\l$0/}s.xml | 
				
			||||||
 | 
						def index | 
				
			||||||
 | 
							@${1/./\l$0/}s = ${1:Model}.all | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							respond_to do |wants| | 
				
			||||||
 | 
								wants.html # index.html.erb | 
				
			||||||
 | 
								wants.xml  { render :xml => @${1/./\l$0/}s } | 
				
			||||||
 | 
							end | 
				
			||||||
 | 
						end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# GET /${1/./\l$0/}s/1 | 
				
			||||||
 | 
						# GET /${1/./\l$0/}s/1.xml | 
				
			||||||
 | 
						def show | 
				
			||||||
 | 
							respond_to do |wants| | 
				
			||||||
 | 
								wants.html # show.html.erb | 
				
			||||||
 | 
								wants.xml  { render :xml => @${1/./\l$0/} } | 
				
			||||||
 | 
							end | 
				
			||||||
 | 
						end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# GET /${1/./\l$0/}s/new | 
				
			||||||
 | 
						# GET /${1/./\l$0/}s/new.xml | 
				
			||||||
 | 
						def new | 
				
			||||||
 | 
							@${1/./\l$0/} = ${1:Model}.new | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							respond_to do |wants| | 
				
			||||||
 | 
								wants.html # new.html.erb | 
				
			||||||
 | 
								wants.xml  { render :xml => @${1/./\l$0/} } | 
				
			||||||
 | 
							end | 
				
			||||||
 | 
						end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# GET /${1/./\l$0/}s/1/edit | 
				
			||||||
 | 
						def edit | 
				
			||||||
 | 
						end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# POST /${1/./\l$0/}s | 
				
			||||||
 | 
						# POST /${1/./\l$0/}s.xml | 
				
			||||||
 | 
						def create | 
				
			||||||
 | 
							@${1/./\l$0/} = ${1:Model}.new(params[:${1/./\l$0/}]) | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							respond_to do |wants| | 
				
			||||||
 | 
								if @${1/./\l$0/}.save | 
				
			||||||
 | 
									flash[:notice] = '${1:Model} was successfully created.' | 
				
			||||||
 | 
									wants.html { redirect_to(@${1/./\l$0/}) } | 
				
			||||||
 | 
									wants.xml  { render :xml => @${1/./\l$0/}, :status => :created, :location => @${1/./\l$0/} } | 
				
			||||||
 | 
								else | 
				
			||||||
 | 
									wants.html { render :action => "new" } | 
				
			||||||
 | 
									wants.xml  { render :xml => @${1/./\l$0/}.errors, :status => :unprocessable_entity } | 
				
			||||||
 | 
								end | 
				
			||||||
 | 
							end | 
				
			||||||
 | 
						end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# PUT /${1/./\l$0/}s/1 | 
				
			||||||
 | 
						# PUT /${1/./\l$0/}s/1.xml | 
				
			||||||
 | 
						def update | 
				
			||||||
 | 
							respond_to do |wants| | 
				
			||||||
 | 
								if @${1/./\l$0/}.update(params[:${1/./\l$0/}]) | 
				
			||||||
 | 
									flash[:notice] = '${1:Model} was successfully updated.' | 
				
			||||||
 | 
									wants.html { redirect_to(@${1/./\l$0/}) } | 
				
			||||||
 | 
									wants.xml  { head :ok } | 
				
			||||||
 | 
								else | 
				
			||||||
 | 
									wants.html { render :action => "edit" } | 
				
			||||||
 | 
									wants.xml  { render :xml => @${1/./\l$0/}.errors, :status => :unprocessable_entity } | 
				
			||||||
 | 
								end | 
				
			||||||
 | 
							end | 
				
			||||||
 | 
						end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# DELETE /${1/./\l$0/}s/1 | 
				
			||||||
 | 
						# DELETE /${1/./\l$0/}s/1.xml | 
				
			||||||
 | 
						def destroy | 
				
			||||||
 | 
							@${1/./\l$0/}.destroy | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							respond_to do |wants| | 
				
			||||||
 | 
								wants.html { redirect_to(${1/./\l$0/}s_url) } | 
				
			||||||
 | 
								wants.xml  { head :ok } | 
				
			||||||
 | 
							end | 
				
			||||||
 | 
						end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private | 
				
			||||||
 | 
							def find_${1/./\l$0/} | 
				
			||||||
 | 
								@${1/./\l$0/} = ${1:Model}.find(params[:id]) | 
				
			||||||
 | 
							end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tcs "Create string column" | 
				
			||||||
 | 
					t.string :${1:title} | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tct "Create text column" | 
				
			||||||
 | 
					t.text :${1:title} | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tcti "Create time column" | 
				
			||||||
 | 
					t.time :${1:title} | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tcts "Create timestamp column" | 
				
			||||||
 | 
					t.timestamp :${1:title} | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tctss "Create timestamps columns" | 
				
			||||||
 | 
					t.timestamps | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mcol "Migration Create Column (mcc)" | 
				
			||||||
 | 
					t.column ${1:title}, :${2:string} | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mccc "Migration Create Column Continue (mccc)" | 
				
			||||||
 | 
					t.column ${1:title}, :${2:string} | 
				
			||||||
 | 
					mccc$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mtab "Migration Drop Create Table (mdct)" | 
				
			||||||
 | 
					drop_table :${1:table}${2: [press tab twice to generate create_table]} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mcol "Migration Remove and Add Column (mrac)" | 
				
			||||||
 | 
					remove_column :${1:table}, :${2:column}${3: [press tab twice to generate add_column]} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rdb "RAILS_DEFAULT_LOGGER.debug (rdb)" | 
				
			||||||
 | 
					RAILS_DEFAULT_LOGGER.debug "${1:message}"$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet tre "Table column(s) rename" | 
				
			||||||
 | 
					t.rename(:${1:old_column_name}, :${2:new_column_name}) | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet art "Test Assert Redirected To (art)" | 
				
			||||||
 | 
					assert_redirected_to ${2::action => "${1:index}"} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet asre "Test Assert Response (are)" | 
				
			||||||
 | 
					assert_response :${1:success}, @response.body$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet aftc "after_create" | 
				
			||||||
 | 
					after_create $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet aftd "after_destroy" | 
				
			||||||
 | 
					after_destroy $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet afts "after_save" | 
				
			||||||
 | 
					after_save $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet aftu "after_update" | 
				
			||||||
 | 
					after_update $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet aftv "after_validation" | 
				
			||||||
 | 
					after_validation $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet aftvoc "after_validation_on_create" | 
				
			||||||
 | 
					after_validation_on_create $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet aftvou "after_validation_on_update" | 
				
			||||||
 | 
					after_validation_on_update $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet asg "assert(var = assigns(:var))" | 
				
			||||||
 | 
					assert(${1:var} = assigns(:$1), "Cannot find @$1") | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet asd "assert_difference" | 
				
			||||||
 | 
					assert_difference "${1:Model}.${2:count}", ${3:1} do | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet asnd "assert_no_difference" | 
				
			||||||
 | 
					assert_no_difference "${1:Model}.${2:count}" do | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet artnpp "assert_redirected_to (nested path plural)" | 
				
			||||||
 | 
					assert_redirected_to ${10:${2:parent}_${3:child}_path(${4:@}${5:$2})} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet artnp "assert_redirected_to (nested path)" | 
				
			||||||
 | 
					assert_redirected_to ${2:${12:parent}_${13:child}_path(${14:@}${15:$12}, ${16:@}${17:$13})} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet artpp "assert_redirected_to (path plural)" | 
				
			||||||
 | 
					assert_redirected_to ${10:${2:model}s_path} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet artp "assert_redirected_to (path)" | 
				
			||||||
 | 
					assert_redirected_to ${2:${12:model}_path(${13:@}${14:$12})} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet asrj "assert_rjs" | 
				
			||||||
 | 
					assert_rjs :${1:replace}, ${2:"${3:dom id}"} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ass "assert_select" | 
				
			||||||
 | 
					assert_select '${1:path}'${2:, :${3:text} => ${4:'${5:inner_html}'}}${6: do | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet befc "before_create" | 
				
			||||||
 | 
					before_create $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet befd "before_destroy" | 
				
			||||||
 | 
					before_destroy $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet befs "before_save" | 
				
			||||||
 | 
					before_save $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet befu "before_update" | 
				
			||||||
 | 
					before_update $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet befv "before_validation" | 
				
			||||||
 | 
					before_validation $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet befvoc "before_validation_on_create" | 
				
			||||||
 | 
					before_validation_on_create $0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet befvou "before_validation_on_update" | 
				
			||||||
 | 
					before_validation_on_update | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet bt "belongs_to (bt)" | 
				
			||||||
 | 
					belongs_to :${1:object}${2:, :class_name => "${3:${1/[[:alpha:]]+|(_)/(?1::\u$0)/g}}", :foreign_key => "${4:$1_id}"} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet crw "cattr_accessor" | 
				
			||||||
 | 
					cattr_accessor :${0:attr_names} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet defcreate "def create - resource" | 
				
			||||||
 | 
					def create | 
				
			||||||
 | 
						@${1:model} = ${2:${1/[[:alpha:]]+|(_)/(?1::\u$0)/g}}.new(params[:$1]) | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
						respond_to do |wants| | 
				
			||||||
 | 
							if @$1.save | 
				
			||||||
 | 
								flash[:notice] = '$2 was successfully created.' | 
				
			||||||
 | 
								wants.html { redirect_to(@$1) } | 
				
			||||||
 | 
								wants.xml { render :xml => @$1, :status => :created, :location => @$1 } | 
				
			||||||
 | 
							else | 
				
			||||||
 | 
								wants.html { render :action => "new" } | 
				
			||||||
 | 
								wants.xml { render :xml => @$1.errors, :status => :unprocessable_entity } | 
				
			||||||
 | 
							end | 
				
			||||||
 | 
						end | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet test "test do..end" | 
				
			||||||
 | 
					test "${1:something interesting}" do | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet deftg "def get request" | 
				
			||||||
 | 
					def test_should_get_${1:action} | 
				
			||||||
 | 
						${2:@${3:model} = ${4:$3s}(:${5:fixture_name}) | 
				
			||||||
 | 
						}get :$1${6:, :id => @$3.to_param} | 
				
			||||||
 | 
						assert_response :success | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet deftp "def post request" | 
				
			||||||
 | 
					def test_should_post_${1:action} | 
				
			||||||
 | 
						${3:@$2 = ${4:$2s}(:${5:fixture_name}) | 
				
			||||||
 | 
						}post :$1${6:, :id => @$2.to_param}, :${2:model} => { $0 } | 
				
			||||||
 | 
						assert_response :redirect | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fina "find(:all)" | 
				
			||||||
 | 
					find(:all${1:, :conditions => ['${2:${3:field} = ?}', ${5:true}]}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet finf "find(:first)" | 
				
			||||||
 | 
					find(:first${1:, :conditions => ['${2:${3:field} = ?}', ${5:true}]}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fini "find(id)" | 
				
			||||||
 | 
					find(${1:id}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fine "find_each" | 
				
			||||||
 | 
					find_each(${1::conditions => {:${2:field} => ${3:true}\}}) do |${4:${TM_CURRENT_WORD/(\w+)\./\L$1/g}}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet finb "find_in_batches" | 
				
			||||||
 | 
					find_in_batches(${1::conditions => {:${2:field} => ${3:true}\}}) do |${4:${TM_CURRENT_WORD/(\w+)\./\L$1/g}}s| | 
				
			||||||
 | 
						$4s.each do |$4| | 
				
			||||||
 | 
							$0 | 
				
			||||||
 | 
						end | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet habtm "has_and_belongs_to_many (habtm)" | 
				
			||||||
 | 
					has_and_belongs_to_many :${1:object}${2:, :join_table => "${3:table_name}", :foreign_key => "${4:$1_id}"} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet hm "has_many (hm)" | 
				
			||||||
 | 
					has_many :${1:object}s${2:, :class_name => "$1", :foreign_key => "${4:reference}_id"} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet hmt "has_many (through)" | 
				
			||||||
 | 
					has_many :${1:objects}, :through => :${2:join_association}${3:, :source => :${4:$2_table_foreign_key_to_$1_table}} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet hmd "has_many :dependent => :destroy" | 
				
			||||||
 | 
					has_many :${1:object}s${2:, :class_name => "$1", :foreign_key => "${4:reference}_id"}, :dependent => :destroy$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ho "has_one (ho)" | 
				
			||||||
 | 
					has_one :${1:object}${2:, :class_name => "${3:${1/[[:alpha:]]+|(_)/(?1::\u$0)/g}}", :foreign_key => "${4:$1_id}"} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet logd "logger.debug" | 
				
			||||||
 | 
					${1:Rails.}logger.debug { "${1:message}" }$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet loge "logger.error" | 
				
			||||||
 | 
					logger.error { "${1:message}" }$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet logf "logger.fatal" | 
				
			||||||
 | 
					logger.fatal { "${1:message}" }$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet logi "logger.info" | 
				
			||||||
 | 
					logger.info { "${1:message}" }$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet logw "logger.warn" | 
				
			||||||
 | 
					logger.warn { "${1:message}" }$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mp "map(&:sym_proc)" | 
				
			||||||
 | 
					map(&:${1:id}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mapca "map.catch_all" | 
				
			||||||
 | 
					${1:map}.catch_all "*${2:anything}", :controller => "${3:default}", :action => "${4:error}" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet map "map.named_route" | 
				
			||||||
 | 
					${1:map}.${2:connect} '${3::controller/:action/:id}' | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mapr "map.resource" | 
				
			||||||
 | 
					${1:map}.resource :${2:resource}${10: do |${11:$2}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet maprs "map.resources" | 
				
			||||||
 | 
					${1:map}.resources :${2:resource}${10: do |${11:$2}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mapwo "map.with_options" | 
				
			||||||
 | 
					${1:map}.with_options :${2:controller} => '${3:thing}' do |${4:$3}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mrw "mattr_accessor" | 
				
			||||||
 | 
					mattr_accessor :${0:attr_names} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ncl "named_scope lambda" | 
				
			||||||
 | 
					named_scope :name, lambda { |${1:param}| { :conditions => ${3:['${4:${5:field} = ?}', ${6:$1}]} } } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet nc "named_scope" | 
				
			||||||
 | 
					named_scope :name${1:, :joins => :${2:table}}, :conditions => ${3:['${4:${5:field} = ?}', ${6:true}]} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet dscope "default_scope" | 
				
			||||||
 | 
					default_scope ${1:order(${2:'${3:created_at DESC}'})} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet flash "flash[...]" | 
				
			||||||
 | 
					flash[:${1:notice}] = "${2:Successfully created...}"$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rea "redirect_to (action)" | 
				
			||||||
 | 
					redirect_to :action => "${1:index}" | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet reai "redirect_to (action, id)" | 
				
			||||||
 | 
					redirect_to :action => "${1:show}", :id => ${0:@item} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rec "redirect_to (controller)" | 
				
			||||||
 | 
					redirect_to :controller => "${1:items}" | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet reca "redirect_to (controller, action)" | 
				
			||||||
 | 
					redirect_to :controller => "${1:items}", :action => "${2:list}" | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet recai "redirect_to (controller, action, id)" | 
				
			||||||
 | 
					redirect_to :controller => "${1:items}", :action => "${2:show}", :id => ${0:@item} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet renpp "redirect_to (nested path plural)" | 
				
			||||||
 | 
					redirect_to(${2:${10:parent}_${11:child}_path(${12:@}${13:$10})}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet renp "redirect_to (nested path)" | 
				
			||||||
 | 
					redirect_to(${2:${12:parent}_${13:child}_path(${14:@}${15:$12}, ${16:@}${17:$13})}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet repp "redirect_to (path plural)" | 
				
			||||||
 | 
					redirect_to(${2:${10:model}s_path}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rep "redirect_to (path)" | 
				
			||||||
 | 
					redirect_to(${2:${12:model}_path(${13:@}${14:$12})}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet reb "redirect_to :back" | 
				
			||||||
 | 
					redirect_to :back | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ra "render (action)... (ra)" | 
				
			||||||
 | 
					render :action => "${1:action}" | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ral "render (action,layout) (ral)" | 
				
			||||||
 | 
					render :action => "${1:action}", :layout => "${2:layoutname}" | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rf "render (file) (rf)" | 
				
			||||||
 | 
					render :file => "${1:filepath}" | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rfu "render (file,use_full_path) (rfu)" | 
				
			||||||
 | 
					render :file => "${1:filepath}", :use_full_path => ${2:false} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ri "render (inline) (ri)" | 
				
			||||||
 | 
					render :inline => "${1:<%= 'hello' %>}" | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ril "render (inline,locals) (ril)" | 
				
			||||||
 | 
					render :inline => "${1:<%= 'hello' %>}", :locals => { ${2::name} => "${3:value}"$4 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rit "render (inline,type) (rit)" | 
				
			||||||
 | 
					render :inline => "${1:<%= 'hello' %>}", :type => ${2::rxml} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rl "render (layout) (rl)" | 
				
			||||||
 | 
					render :layout => "${1:layoutname}" | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rn "render (nothing) (rn)" | 
				
			||||||
 | 
					render :nothing => ${1:true} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rns "render (nothing,status) (rns)" | 
				
			||||||
 | 
					render :nothing => ${1:true}, :status => ${2:401} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rt "render (text) (rt)" | 
				
			||||||
 | 
					render :text => "${1:text to render...}" | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rtl "render (text,layout) (rtl)" | 
				
			||||||
 | 
					render :text => "${1:text to render...}", :layout => "${2:layoutname}" | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rtlt "render (text,layout => true) (rtlt)" | 
				
			||||||
 | 
					render :text => "${1:text to render...}", :layout => ${2:true} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rts "render (text,status) (rts)" | 
				
			||||||
 | 
					render :text => "${1:text to render...}", :status => ${2:401} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ru "render (update)" | 
				
			||||||
 | 
					render :update do |${2:page}| | 
				
			||||||
 | 
						$2.$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rest "respond_to" | 
				
			||||||
 | 
					respond_to do |wants| | 
				
			||||||
 | 
						wants.${1:html}${2: { $0 \}} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# FIXME | 
				
			||||||
 | 
					snippet returning "returning do |variable| ... end" | 
				
			||||||
 | 
					returning ${1:variable} do${2/(^(?<var>\s*[a-z_][a-zA-Z0-9_]*\s*)(,\g<var>)*,?\s*$)|.*/(?1: |)/}${2:v}${2/(^(?<var>\s*[a-z_][a-zA-Z0-9_]*\s*)(,\g<var>)*,?\s*$)|.*/(?1:|)/} | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t. "t.binary (tcbi)" | 
				
			||||||
 | 
					t.binary :${1:title}${2:, :limit => ${3:2}.megabytes} | 
				
			||||||
 | 
					t.$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t. "t.boolean (tcb)" | 
				
			||||||
 | 
					t.boolean :${1:title} | 
				
			||||||
 | 
					t.$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t. "t.date (tcda)" | 
				
			||||||
 | 
					t.date :${1:title} | 
				
			||||||
 | 
					t.$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t. "t.datetime (tcdt)" | 
				
			||||||
 | 
					t.datetime :${1:title} | 
				
			||||||
 | 
					t.$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t. "t.decimal (tcd)" | 
				
			||||||
 | 
					t.decimal :${1:title}${2:${3:, :precision => ${4:10}}${5:, :scale => ${6:2}}} | 
				
			||||||
 | 
					t.$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t. "t.float (tcf)" | 
				
			||||||
 | 
					t.float :${1:title} | 
				
			||||||
 | 
					t.$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t. "t.integer (tci)" | 
				
			||||||
 | 
					t.integer :${1:title} | 
				
			||||||
 | 
					t.$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t. "t.lock_version (tcl)" | 
				
			||||||
 | 
					t.integer :lock_version, :null => false, :default => 0 | 
				
			||||||
 | 
					t.$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t. "t.references (tcr)" | 
				
			||||||
 | 
					t.references :${1:taggable}${2:, :polymorphic => ${3:{ :default => '${4:Photo}' \}}} | 
				
			||||||
 | 
					t.$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t. "t.rename (tre)" | 
				
			||||||
 | 
					t.rename(:${1:old_column_name}, :${2:new_column_name}) | 
				
			||||||
 | 
					t.$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t. "t.string (tcs)" | 
				
			||||||
 | 
					t.string :${1:title} | 
				
			||||||
 | 
					t.$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t. "t.text (tct)" | 
				
			||||||
 | 
					t.text :${1:title} | 
				
			||||||
 | 
					t.$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t. "t.time (tcti)" | 
				
			||||||
 | 
					t.time :${1:title} | 
				
			||||||
 | 
					t.$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t. "t.timestamp (tcts)" | 
				
			||||||
 | 
					t.timestamp :${1:title} | 
				
			||||||
 | 
					t.$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t. "t.timestamps (tctss)" | 
				
			||||||
 | 
					t.timestamps | 
				
			||||||
 | 
					t.$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vaoif "validates_acceptance_of if" | 
				
			||||||
 | 
					validates_acceptance_of :${1:terms}${2:${3:, :accept => "${4:1}"}${5:, :message => "${6:You must accept the terms of service}"}}, :if => proc { |obj| ${7:obj.condition?} }} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vao "validates_acceptance_of" | 
				
			||||||
 | 
					validates_acceptance_of :${1:terms}${2:${3:, :accept => "${4:1}"}${5:, :message => "${6:You must accept the terms of service}"}} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet va "validates_associated (va)" | 
				
			||||||
 | 
					validates_associated :${1:attribute}${2:, :on => :${3:create}} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vaif "validates_associated if (vaif)" | 
				
			||||||
 | 
					validates_associated :${1:attribute}${2:, :on => :${3:create}, :if => proc { |obj| ${5:obj.condition?} }} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vc "validates_confirmation_of (vc)" | 
				
			||||||
 | 
					validates_confirmation_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:should match confirmation}"} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vcif "validates_confirmation_of if (vcif)" | 
				
			||||||
 | 
					validates_confirmation_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:should match confirmation}", :if => proc { |obj| ${5:obj.condition?} }} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ve "validates_exclusion_of (ve)" | 
				
			||||||
 | 
					validates_exclusion_of :${1:attribute}${2:, :in => ${3:%w( ${4:mov avi} )}, :on => :${5:create}, :message => "${6:extension %s is not allowed}"} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet veif "validates_exclusion_of if (veif)" | 
				
			||||||
 | 
					validates_exclusion_of :${1:attribute}${2:, :in => ${3:%w( ${4:mov avi} )}, :on => :${5:create}, :message => "${6:extension %s is not allowed}"}, :if => proc { |obj| ${7:obj.condition?} }} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vfif "validates_format_of if" | 
				
			||||||
 | 
					validates_format_of :${1:attribute}, :with => /${2:^[${3:\w\d}]+\$}/${4:, :on => :${5:create}, :message => "${6:is invalid}"}, :if => proc { |obj| ${7:obj.condition?} }} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vf "validates_format_of" | 
				
			||||||
 | 
					validates_format_of :${1:attribute}, :with => /${2:^[${3:\w\d}]+\$}/${4:, :on => :${5:create}, :message => "${6:is invalid}"} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet viif "validates_inclusion_of if" | 
				
			||||||
 | 
					validates_inclusion_of :${1:attribute}${2:, :in => ${3:%w( ${4:mov avi} )}, :on => :${5:create}, :message => "${6:extension %s is not included in the list}"}, :if => proc { |obj| ${7:obj.condition?} }} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vi "validates_inclusion_of" | 
				
			||||||
 | 
					validates_inclusion_of :${1:attribute}${2:, :in => ${3:%w( ${4:mov avi} )}, :on => :${5:create}, :message => "${6:extension %s is not included in the list}"} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vl "validates_length_of (vl)" | 
				
			||||||
 | 
					validates_length_of :${1:attribute}, :within => ${2:3..20}${3:, :on => :${4:create}, :message => "${5:must be present}"} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vlif "validates_length_of if" | 
				
			||||||
 | 
					validates_length_of :${1:attribute}, :within => ${2:3..20}${3:, :on => :${4:create}, :message => "${5:must be present}"}, :if => proc { |obj| ${6:obj.condition?} }} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vnif "validates_numericality_of if" | 
				
			||||||
 | 
					validates_numericality_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:is not a number}"}, :if => proc { |obj| ${5:obj.condition?} }} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vn "validates_numericality_of" | 
				
			||||||
 | 
					validates_numericality_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:is not a number}"} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vp "validates_presence_of (vp)" | 
				
			||||||
 | 
					validates_presence_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:can't be blank}"} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vpif "validates_presence_of if (vpif) 2" | 
				
			||||||
 | 
					validates_presence_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:can't be blank}"}, :if => proc { |obj| ${5:obj.condition?} }} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vu "validates_uniqueness_of (vu)" | 
				
			||||||
 | 
					validates_uniqueness_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:must be unique}"} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet vuif "validates_uniqueness_of if (vuif)" | 
				
			||||||
 | 
					validates_uniqueness_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:must be unique}", :if => proc { |obj| ${6:obj.condition?} }} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet verify "verify -- render" | 
				
			||||||
 | 
					verify :only => [:$1], :method => :post, :render => {:status => 500, :text => "use HTTP-POST"} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet verify "verify -- redirect" | 
				
			||||||
 | 
					verify :only => [:$1], :session => :user, :params => :id, :redirect_to => {:action => '${2:index}'} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet wants "wants_format" | 
				
			||||||
 | 
					wants.${1:js|xml|html}${2: { $0 \}} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet xdelete "xhr delete" | 
				
			||||||
 | 
					xhr :delete, :${1:destroy}, :id => ${2:1}$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet xget "xhr get" | 
				
			||||||
 | 
					xhr :get, :${1:show}${2:, :id => ${3:1}}$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet xpost "xhr post" | 
				
			||||||
 | 
					xhr :post, :${1:create}, :${2:object} => { $3 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet xput "xhr put" | 
				
			||||||
 | 
					xhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { $4 }$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet sweeper "Create sweeper class" | 
				
			||||||
 | 
					class ${1:Model}Sweeper < ActionController::Caching::Sweeper | 
				
			||||||
 | 
						observe ${1:Model} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def after_save(${1/./\l$0/}) | 
				
			||||||
 | 
							expire_cache(${1/./\l$0/}) | 
				
			||||||
 | 
						end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def after_destroy(${1/./\l$0/}) | 
				
			||||||
 | 
							expire_cache(${1/./\l$0/}) | 
				
			||||||
 | 
						end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							def expire_cache(${1/./\l$0/}) | 
				
			||||||
 | 
								${0:expire_page ${1/./\l$0/}s_path | 
				
			||||||
 | 
								expire_page ${1/./\l$0/}_path(${1/./\l$0/})} | 
				
			||||||
 | 
							end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet col "collection routes" | 
				
			||||||
 | 
					collection do | 
				
			||||||
 | 
						${1:get :${2:action}} | 
				
			||||||
 | 
						${3:put :${4:action}} | 
				
			||||||
 | 
						${5:post :${6:action}} | 
				
			||||||
 | 
						${7:delete :${8:action}} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet format "format (respond_with)" | 
				
			||||||
 | 
					format.${1:html|xml|json|js|any} { $0 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet gem "gem" | 
				
			||||||
 | 
					gem '${1:name}'${2:${3:, "${4:1.0}"}${5:${6:, :require => ${7:"${8:$1}"}}${9:, :group => :${10:test}}}} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet gemg "gem :git" | 
				
			||||||
 | 
					gem '${1:paperclip}', :git => "${2:git://github.com/thoughtbot/paperclip.git}"${3:, :branch => "${4:rails3}"} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet match "match" | 
				
			||||||
 | 
					match '${1:${2::controller}${3:/${4::action}${5:/${6::id}${7:(.:format)}}}}'${8: => '${9:$2}#${10:$4}'${11:, :as => :${12:$10}}} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet member "member routes" | 
				
			||||||
 | 
					member do | 
				
			||||||
 | 
						${1:get :${2:action}} | 
				
			||||||
 | 
						${3:put :${4:action}} | 
				
			||||||
 | 
						${5:post :${6:action}} | 
				
			||||||
 | 
						${7:delete :${8:action}} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet res "resources" | 
				
			||||||
 | 
					resources :${1:posts}${2: do | 
				
			||||||
 | 
						$3 | 
				
			||||||
 | 
					end} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet scope "scope" | 
				
			||||||
 | 
					scope :${1:name}, ${2:joins(:${3:table}).}where(${4:'${5:$3.${6:field}} = ?', ${7:'${8:value}'}}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet scopel "scope lambda" | 
				
			||||||
 | 
					scope :${1:name}, lambda { |${2:param}| ${3:where(${4::${5:field} => ${6:"${7:value}"}})} } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet scopee "scope with extension" | 
				
			||||||
 | 
					scope :${1:name}, ${2:where(${3::${4:field} => ${5:'${6:value}'}})} do | 
				
			||||||
 | 
						def ${7:method_name} | 
				
			||||||
 | 
							$0 | 
				
			||||||
 | 
						end | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet sb "scoped_by" | 
				
			||||||
 | 
					scoped_by_${1:attribute}(${2:id}) | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet setup "setup do..end" | 
				
			||||||
 | 
					setup do | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet trans "Translation snippet" | 
				
			||||||
 | 
					I18n.t('`!v substitute(substitute(substitute(@%, substitute(getcwd() . "/", "\/", "\\\\/", "g"), "", ""), "\\(\\.\\(html\\|js\\)\\.\\(haml\\|erb\\)\\|\\(_controller\\)\\?\\.rb\\)$", "", ""), "/", ".", "g")`.${2:${1/[^\w]/_/g}}$3', :default => "${1:some_text}"$4)${5:$0} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet route_spec | 
				
			||||||
 | 
					it 'routes to #${1:action}' do | 
				
			||||||
 | 
						${2:get}('/${3:url}').should route_to('`!v substitute(expand('%:t:r'), '_routing_spec$', '', '')`#$1'${4:, ${5:params}})$6 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim:ft=snippets: | 
				
			||||||
@ -0,0 +1,329 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# Global functions | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					global !p | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def write_instance_vars(arglist, snip): | 
				
			||||||
 | 
						args = str(arglist).split(',') | 
				
			||||||
 | 
						for arg in args: | 
				
			||||||
 | 
							name = arg.strip().replace(':', ' ').split(' ', 1)[0] | 
				
			||||||
 | 
							if name: | 
				
			||||||
 | 
								snip += '  @{} = {}'.format(name, name) | 
				
			||||||
 | 
							else: | 
				
			||||||
 | 
								snip += '' | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endglobal | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					# Snippets | 
				
			||||||
 | 
					# | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "^#!" "#!/usr/bin/env ruby" r | 
				
			||||||
 | 
					#!/usr/bin/env ruby | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "^# ?[uU][tT][fF]-?8" "# encoding: UTF-8" r | 
				
			||||||
 | 
					# encoding: UTF-8 | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "\b(de)?f" "def <name>..." r | 
				
			||||||
 | 
					def ${1:function_name}${2:(${3:*args})} | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet defi "def initialize ..." | 
				
			||||||
 | 
					def initialize($1)`!p write_instance_vars(t[1],snip)`$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet defr "def <name> ... rescue ..." | 
				
			||||||
 | 
					def ${1:function_name}${2:(${3:*args})} | 
				
			||||||
 | 
						$4 | 
				
			||||||
 | 
					rescue | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet For "(<from>..<to>).each { |<i>| <block> }" | 
				
			||||||
 | 
					(${1:from}..${2:to}).each { |${3:i}| $0 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.Merge!" ".merge!(<other_hash>) { |<key>,<oldval>,<newval>| <block> }" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.merge!(${1:other_hash}) { |${2:key},${3:oldval},${4:newval}| ${5:block} } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.merge!" ".merge!(<other_hash>) do |<key>,<oldval>,<newval>| <block> end" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.merge!(${1:other_hash}) do |${2:key},${3:oldval},${4:newval}| | 
				
			||||||
 | 
						${0:block} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.Del(ete)?_?if" ".delete_if { |<key>,<value>| <block> }" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.delete_if { |${1:key},${2:value}| $0 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.del(ete)?_?if" ".delete_if do |<key>,<value>| <block> end" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.delete_if do |${1:key},${2:value}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.Keep_?if" ".keep_if { |<key>,<value>| <block> }" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.keep_if { |${1:key},${2:value}| $0 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.keep_?if" ".keep_if do <key>,<value>| <block> end" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.keep_if do |${1:key},${2:value}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.Reject" ".reject { |<key>,<value>| <block> }" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.reject { |${1:key},${2:value}| $0 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.reject" ".reject do <key>,<value>| <block> end" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.reject do |${1:key},${2:value}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.Select" ".select { |<item>| <block>}" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.select { |${1:item}| ${2:block} } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.select" ".select do |<item>| <block> end" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.select do |${1:item}| | 
				
			||||||
 | 
						${0:block} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.Sort" ".sort { |<a>,<b>| <block> }" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.sort { |${1:a},${2:b}| $0 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.sort" ".sort do |<a>,<b>| <block> end" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.sort do |${1:a},${2:b}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.Each_?k(ey)?" ".each_key { |<key>| <block> }" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.each_key { |${1:key}| $0 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.each_?k(ey)?" ".each_key do |key| <block> end" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.each_key do |${1:key}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.Each_?val(ue)?" ".each_value { |<value>| <block> }" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.each_value { |${1:value}| $0 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.each_?val(ue)?" ".each_value do |<value>| <block> end" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.each_value do |${1:value}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.ea" "<elements>.each do |<element>| <block> end" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.each { |${1:e}| $0 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.ead" "<elements>.each do |<element>| <block> end" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.each do |${1:e}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "each_?s(lice)?" "<array>.each_slice(n) do |slice| <block> end" r | 
				
			||||||
 | 
					${1:elements}.each_slice(${2:2}) do |${3:slice}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "Each_?s(lice)?" "<array>.each_slice(n) { |slice| <block> }" r | 
				
			||||||
 | 
					${1:elements}.each_slice(${2:2}) { |${3:slice}| $0 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.Map" ".map { |<element>| <block> }" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.map { |${1:`!p | 
				
			||||||
 | 
					element_name = match.group(1).lstrip('$@') | 
				
			||||||
 | 
					ematch = re.search("([A-Za-z][A-Za-z0-9_]+?)s?[^A-Za-z0-9_]*?$", element_name) | 
				
			||||||
 | 
					try: | 
				
			||||||
 | 
						wmatch = re.search("([A-Za-z][A-Za-z0-9_]+)$", ematch.group(1)) | 
				
			||||||
 | 
						snip.rv = wmatch.group(1).lower() | 
				
			||||||
 | 
					except: | 
				
			||||||
 | 
						snip.rv = 'element' | 
				
			||||||
 | 
					`}| $0 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.map" ".map do |<element>| <block> end" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.map do |${1:`!p | 
				
			||||||
 | 
					element_name = match.group(1).lstrip('$@') | 
				
			||||||
 | 
					ematch = re.search("([A-Za-z][A-Za-z0-9_]+?)s?[^A-Za-z0-9_]*?$", element_name) | 
				
			||||||
 | 
					try: | 
				
			||||||
 | 
						wmatch = re.search("([A-Za-z][A-Za-z0-9_]+)$", ematch.group(1)) | 
				
			||||||
 | 
						snip.rv = wmatch.group(1).lower() | 
				
			||||||
 | 
					except: | 
				
			||||||
 | 
						snip.rv = 'element' | 
				
			||||||
 | 
					`}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.Rev(erse)?_?each" ".reverse_each { |<element>| <block> }" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.reverse_each { |${1:`!p | 
				
			||||||
 | 
					element_name = match.group(1).lstrip('$@') | 
				
			||||||
 | 
					ematch = re.search("([A-Za-z][A-Za-z0-9_]+?)s?[^A-Za-z0-9_]*?$", element_name) | 
				
			||||||
 | 
					try: | 
				
			||||||
 | 
						wmatch = re.search("([A-Za-z][A-Za-z0-9_]+)$", ematch.group(1)) | 
				
			||||||
 | 
						snip.rv = wmatch.group(1).lower() | 
				
			||||||
 | 
					except: | 
				
			||||||
 | 
						snip.rv = 'element' | 
				
			||||||
 | 
					`}| $0 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.rev(erse)?_?each" ".reverse_each do |<element>| <block> end" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.reverse_each do |${1:`!p | 
				
			||||||
 | 
					element_name = match.group(1).lstrip('$@') | 
				
			||||||
 | 
					ematch = re.search("([A-Za-z][A-Za-z0-9_]+?)s?[^A-Za-z0-9_]*?$", element_name) | 
				
			||||||
 | 
					try: | 
				
			||||||
 | 
						wmatch = re.search("([A-Za-z][A-Za-z0-9_]+)$", ematch.group(1)) | 
				
			||||||
 | 
						snip.rv = wmatch.group(1).lower() | 
				
			||||||
 | 
					except: | 
				
			||||||
 | 
						snip.rv = 'element' | 
				
			||||||
 | 
					`}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.Each" ".each { |<element>| <block> }" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.each { |${1:`!p | 
				
			||||||
 | 
					element_name = match.group(1).lstrip('$@') | 
				
			||||||
 | 
					ematch = re.search("([A-Za-z][A-Za-z0-9_]+?)s?[^A-Za-z0-9_]*?$", element_name) | 
				
			||||||
 | 
					try: | 
				
			||||||
 | 
						wmatch = re.search("([A-Za-z][A-Za-z0-9_]+)$", ematch.group(1)) | 
				
			||||||
 | 
						snip.rv = wmatch.group(1).lower() | 
				
			||||||
 | 
					except: | 
				
			||||||
 | 
						snip.rv = 'element' | 
				
			||||||
 | 
					`}| $0 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.each" ".each do |<element>| <block> end" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.each do |${1:`!p | 
				
			||||||
 | 
					element_name = match.group(1).lstrip('$@') | 
				
			||||||
 | 
					ematch = re.search("([A-Za-z][A-Za-z0-9_]+?)s?[^A-Za-z0-9_]*?$", element_name) | 
				
			||||||
 | 
					try: | 
				
			||||||
 | 
						wmatch = re.search("([A-Za-z][A-Za-z0-9_]+)$", ematch.group(1)) | 
				
			||||||
 | 
						snip.rv = wmatch.group(1).lower() | 
				
			||||||
 | 
					except: | 
				
			||||||
 | 
						snip.rv = 'element' | 
				
			||||||
 | 
					`}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.Each_?p(air)?"  ".each_pair { |<key>,<value>| <block> }" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.each_pair { |${1:key},${2:value}| $0 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.each_?p(air)?" ".each_pair do |<key>,<value>| <block> end" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.each_pair do |${1:key},${2:value}| | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.sub" ".sub(<expression>) { <block> }" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.sub(${1:expression}) { ${2:"replace_with"} } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.gsub" ".gsub(<expression>) { <block> }" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.gsub(${1:expression}) { ${2:"replace_with"} } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.index" ".index { |item| <block> }" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.index { |${1:item}| ${2:block} } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "(\S+)\.Index" ".index do |item| ... end" r | 
				
			||||||
 | 
					`!p snip.rv=match.group(1)`.index do |${1:item}| | 
				
			||||||
 | 
						${0:block} | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet until "until <expression> ... end" | 
				
			||||||
 | 
					until ${1:expression} | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet Until "begin ... end until <expression>" | 
				
			||||||
 | 
					begin | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end until ${1:expression} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet while "while <expression> ... end" | 
				
			||||||
 | 
					while ${1:expression} | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet While "begin ... end while <expression>" | 
				
			||||||
 | 
					begin | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end while ${1:expression} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet begin "begin ... rescue ... end" | 
				
			||||||
 | 
					begin | 
				
			||||||
 | 
						$1 | 
				
			||||||
 | 
					rescue | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet rescue | 
				
			||||||
 | 
					rescue Exception => e | 
				
			||||||
 | 
						puts e.message | 
				
			||||||
 | 
						puts e.backtrace.inspect | 
				
			||||||
 | 
						${0:# Rescue} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet "\b(case|sw(itch)?)" "case <variable> when <expression> ... end" r | 
				
			||||||
 | 
					case ${1:variable} | 
				
			||||||
 | 
					when ${2:expression} | 
				
			||||||
 | 
					$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet class "class <class_name> def initialize ... end end" | 
				
			||||||
 | 
					class ${1:class_name} | 
				
			||||||
 | 
						def initialize(${2:*args}) | 
				
			||||||
 | 
							$0 | 
				
			||||||
 | 
						end | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet module "module" | 
				
			||||||
 | 
					module ${1:module_name} | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ### | 
				
			||||||
 | 
					=begin | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					=end | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim: set ts=2 sw=2 expandtab: | 
				
			||||||
@ -0,0 +1,106 @@ | 
				
			|||||||
 | 
					####################################################################### | 
				
			||||||
 | 
					#                            Rust Snippets                            # | 
				
			||||||
 | 
					####################################################################### | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet let "let variable declaration" b | 
				
			||||||
 | 
					let ${1:name}${2:: ${3:type}} = $4; | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet letm "let mut variable declaration" b | 
				
			||||||
 | 
					let mut ${1:name}${2:: ${3:type}} = $4; | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fn "A function, optionally with arguments and return type." | 
				
			||||||
 | 
					fn ${1:function_name}($2)${3/..*/ -> /}$3 { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet pfn "A public function, optionally with arguments and return type." | 
				
			||||||
 | 
					pub fn ${1:function_name}($2)${3/..*/ -> /}$3 { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet arg "Function Arguments" i | 
				
			||||||
 | 
					${1:a}: ${2:T}${3:, arg} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet || "Closure, anonymous function (inline)" i | 
				
			||||||
 | 
					${1:move }|$2| { $3 } | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet |} "Closure, anonymous function (block)" i | 
				
			||||||
 | 
					${1:move }|$2| { | 
				
			||||||
 | 
						$3 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet pri "print!(..)" b | 
				
			||||||
 | 
					print!("$1"${2/..*/, /}$2); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet pln "println!(..)" b | 
				
			||||||
 | 
					println!("$1"${2/..*/, /}$2); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fmt "format!(..)" | 
				
			||||||
 | 
					format!("$1"${2/..*/, /}$2); | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet macro "macro_rules!" b | 
				
			||||||
 | 
					macro_rules! ${1:name} { | 
				
			||||||
 | 
						(${2:matcher}) => ( | 
				
			||||||
 | 
							$3 | 
				
			||||||
 | 
						) | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet mod "A module" b | 
				
			||||||
 | 
					mod ${1:`!p snip.rv = snip.basename.lower() or "name"`} { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet for "for .. in .." b | 
				
			||||||
 | 
					for ${1:i} in $2 { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet todo "A Todo comment" | 
				
			||||||
 | 
					// [TODO]: ${1:Description} - `!v strftime("%Y-%m-%d %I:%M%P")` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet st "Struct" b | 
				
			||||||
 | 
					struct ${1:`!p snip.rv = snip.basename.title() or "Name"`} { | 
				
			||||||
 | 
						${VISUAL}$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# TODO: fancy dynamic field mirroring like Python slotclass | 
				
			||||||
 | 
					snippet stn "Struct with new constructor." b | 
				
			||||||
 | 
					pub struct ${1:`!p snip.rv = snip.basename.title() or "Name"`} { | 
				
			||||||
 | 
						fd$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					impl $1 { | 
				
			||||||
 | 
						pub fn new($2) -> $1 { | 
				
			||||||
 | 
							$1 { $3 } | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet fd "Struct field definition" w | 
				
			||||||
 | 
					${1:name}: ${2:Type}, | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet impl "Struct/Trait implementation" b | 
				
			||||||
 | 
					impl ${1:Type/Trait}${2: for ${3:Type}} { | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim:ft=snippets: | 
				
			||||||
@ -0,0 +1,99 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					global !p | 
				
			||||||
 | 
					import vim | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Tests for the existence of a variable declared by Vim's filetype detection | 
				
			||||||
 | 
					# suggesting the type of shell script of the current file | 
				
			||||||
 | 
					def testShell(scope, shell): | 
				
			||||||
 | 
						return vim.eval("exists('" + scope + ":is_" + shell + "')") | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Loops over the possible variables, checking for global variables | 
				
			||||||
 | 
					# first since they indicate an override by the user. | 
				
			||||||
 | 
					def getShell(): | 
				
			||||||
 | 
						for scope in ["g", "b"]: | 
				
			||||||
 | 
							for shell in ["bash", "posix", "sh", "kornshell"]: | 
				
			||||||
 | 
								if testShell(scope, shell) == "1": | 
				
			||||||
 | 
									if shell == "kornshell": | 
				
			||||||
 | 
										return "ksh" | 
				
			||||||
 | 
									if shell == "posix": | 
				
			||||||
 | 
										return "sh" | 
				
			||||||
 | 
									return shell | 
				
			||||||
 | 
						return "sh" | 
				
			||||||
 | 
					endglobal | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					#                            TextMate Snippets                            # | 
				
			||||||
 | 
					########################################################################### | 
				
			||||||
 | 
					snippet #! | 
				
			||||||
 | 
					`!p snip.rv = '#!/bin/' + getShell() + "\n\n" ` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet !env "#!/usr/bin/env (!env)" | 
				
			||||||
 | 
					`!p snip.rv = '#!/usr/bin/env ' + getShell() + "\n\n" ` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet sbash "safe bash options" | 
				
			||||||
 | 
					#!/usr/bin/env bash | 
				
			||||||
 | 
					set -euo pipefail | 
				
			||||||
 | 
					IFS=$'\n\t' | 
				
			||||||
 | 
					`!p snip.rv ='\n\n' ` | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet temp "Tempfile" | 
				
			||||||
 | 
					${1:TMPFILE}="$(mktemp -t ${2:`!p | 
				
			||||||
 | 
					snip.rv = re.sub(r'[^a-zA-Z]', '_', snip.fn) or "untitled" | 
				
			||||||
 | 
					`})" | 
				
			||||||
 | 
					${3:${4/(.+)/trap "/}${4:rm -f '$${1/.*\s//}'}${4/(.+)/" 0               # EXIT\n/}${5/(.+)/trap "/}${5:rm -f '$${1/.*\s//}'; exit 1}${5/(.+)/" 2       # INT\n/}${6/(.+)/trap "/}${6:rm -f '$${1/.*\s//}'; exit 1}${6/(.+)/" 1 15    # HUP TERM\n/}} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet case "case .. esac (case)" | 
				
			||||||
 | 
					case ${1:word} in | 
				
			||||||
 | 
						${2:pattern} ) | 
				
			||||||
 | 
							$0;; | 
				
			||||||
 | 
					esac | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet elif "elif .. (elif)" | 
				
			||||||
 | 
					elif ${2:[[ ${1:condition} ]]}; then | 
				
			||||||
 | 
						${0:#statements} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet for "for ... done (for)" | 
				
			||||||
 | 
					for (( i = 0; i < ${1:10}; i++ )); do | 
				
			||||||
 | 
						${0:#statements} | 
				
			||||||
 | 
					done | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet forin "for ... in ... done (forin)" | 
				
			||||||
 | 
					for ${1:i}${2/.+/ in /}${2:words}; do | 
				
			||||||
 | 
						${0:#statements} | 
				
			||||||
 | 
					done | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet here "here document (here)" | 
				
			||||||
 | 
					<<-${2:'${1:TOKEN}'} | 
				
			||||||
 | 
						$0 | 
				
			||||||
 | 
					${1/['"`](.+)['"`]/$1/} | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet if "if ... then (if)" | 
				
			||||||
 | 
					if ${2:[[ ${1:condition} ]]}; then | 
				
			||||||
 | 
						${0:#statements} | 
				
			||||||
 | 
					fi | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet until "until ... (done)" | 
				
			||||||
 | 
					until ${2:[[ ${1:condition} ]]}; do | 
				
			||||||
 | 
						${0:#statements} | 
				
			||||||
 | 
					done | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet while "while ... (done)" | 
				
			||||||
 | 
					while ${2:[[ ${1:condition} ]]}; do | 
				
			||||||
 | 
						${0:#statements} | 
				
			||||||
 | 
					done | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim:ft=snippets: | 
				
			||||||
@ -0,0 +1,16 @@ | 
				
			|||||||
 | 
					priority -50 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet xml "XML declaration" b | 
				
			||||||
 | 
					<?xml version="1.0"?> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet t "Simple tag" b | 
				
			||||||
 | 
					<${1:tag}> | 
				
			||||||
 | 
						${2:content} | 
				
			||||||
 | 
					</${1/([\w:._-]+).*/$1/}> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snippet ti "Inline tag" b | 
				
			||||||
 | 
					<${1:tag}>${2:content}</${1/([\w:._-]+).*/$1/}> | 
				
			||||||
 | 
					endsnippet | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue