mirror of
				https://github.com/amix/vimrc
				synced 2025-10-31 06:33:35 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			344 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			344 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Functions
 | |
| # prototype
 | |
| snippet proto
 | |
| 	${1:class_name}.prototype.${2:method_name} = function(${3}) {
 | |
| 		${0:${VISUAL}}
 | |
| 	};
 | |
| # Function
 | |
| snippet fun "function"
 | |
| 	function ${1:function_name}(${2}) {
 | |
| 		${0:${VISUAL}}
 | |
| 	}
 | |
| # Asynchronous Function
 | |
| snippet asf "async function"
 | |
| 	async function ${1:function_name}(${2}) {
 | |
| 		${0:${VISUAL}}
 | |
| 	}
 | |
| # Anonymous Function
 | |
| snippet anf "" w
 | |
| 	function(${1}) {
 | |
| 		${0:${VISUAL}}
 | |
| 	}
 | |
| # Anonymous Function assigned to variable
 | |
| snippet vaf
 | |
| 	var ${1:function_name} = function(${2}) {
 | |
| 		${0:${VISUAL}}
 | |
| 	};
 | |
| # Function assigned to variable
 | |
| snippet vf
 | |
| 	var ${1:function_name} = function $1(${2}) {
 | |
| 		${0:${VISUAL}}
 | |
| 	};
 | |
| # Immediate function
 | |
| snippet (f
 | |
| 	(function(${1}) {
 | |
| 		${0:${VISUAL}}
 | |
| 	}(${2}));
 | |
| # Minify safe iife
 | |
| snippet ;fe
 | |
| 	;(function(${1}) {
 | |
| 		${0:${VISUAL}}
 | |
| 	}(${2}))
 | |
| # self-defining function
 | |
| snippet sdf
 | |
| 	var ${1:function_name} = function (${2:argument}) {
 | |
| 		${3}
 | |
| 
 | |
| 		$1 = function ($2) {
 | |
| 			${0:${VISUAL}}
 | |
| 		};
 | |
| 	};
 | |
| # Flow control
 | |
| # if
 | |
| snippet if "if (condition) { ... }"
 | |
| 	if (${1:true}) {
 | |
| 		${0:${VISUAL}}
 | |
| 	}
 | |
| # if ... else
 | |
| snippet ife "if (condition) { ... } else { ... }"
 | |
| 	if (${1:true}) {
 | |
| 		${0:${VISUAL}}
 | |
| 	} else {
 | |
| 		${2}
 | |
| 	}
 | |
| # tertiary conditional
 | |
| snippet ter
 | |
| 	${1:/* condition */} ? ${2:/* if true */} : ${0:/* if false */}
 | |
| # switch
 | |
| snippet switch
 | |
| 	switch (${1:expression}) {
 | |
| 		case '${3:case}':
 | |
| 			${4}
 | |
| 			break;
 | |
| 		${0}
 | |
| 		default:
 | |
| 			${2}
 | |
| 	}
 | |
| snippet case "case 'xyz': ... break"
 | |
| 	case '${1:case}':
 | |
| 		${0:${VISUAL}}
 | |
| 		break;
 | |
| snippet try "try { ... } catch(e) { ... }"
 | |
| 	try {
 | |
| 		${0:${VISUAL}}
 | |
| 	} catch (${1:e}) {
 | |
| 		${2:/* handle error */}
 | |
| 	}
 | |
| snippet tryf "try { ... } catch(e) { ... } finally { ... }"
 | |
| 	try {
 | |
| 		${0:${VISUAL}}
 | |
| 	} catch (${1:e}) {
 | |
| 		${2:/* handle error */}
 | |
| 	} finally {
 | |
| 		${3:/* be executed regardless of the try / catch result*/}
 | |
| 	}
 | |
| # throw Error
 | |
| snippet terr
 | |
| 	throw new Error('${1:error message}')
 | |
| # return
 | |
| snippet ret
 | |
| 	return ${0:result};
 | |
| snippet for "for (...) {...}"
 | |
| 	for (var ${1:i} = 0, ${2:len} = ${3:Things.length}; $1 < $2; $1++) {
 | |
| 		${0:${VISUAL}}
 | |
| 	}
 | |
| snippet forr "reversed for (...) {...}"
 | |
| 	for (var ${2:i} = ${1:Things.length} - 1; $2 >= 0; $2--) {
 | |
| 		${0:${VISUAL}}
 | |
| 	}
 | |
| snippet wh "(condition) { ... }"
 | |
| 	while (${1:/* condition */}) {
 | |
| 		${0:${VISUAL}}
 | |
| 	}
 | |
| snippet do "do { ... } while (condition)"
 | |
| 	do {
 | |
| 		${0:${VISUAL}}
 | |
| 	} while (${1:/* condition */});
 | |
| # For in loop
 | |
| snippet fori
 | |
| 	for (var ${1:prop} in ${2:object}) {
 | |
| 		${0:$2[$1]}
 | |
| 	}
 | |
| # Objects
 | |
| # Object Method
 | |
| snippet :f
 | |
| 	${1:method_name}: function (${2:attribute}) {
 | |
| 		${0:${VISUAL}}
 | |
| 	},
 | |
| # hasOwnProperty
 | |
| snippet has
 | |
| 	hasOwnProperty(${0})
 | |
| # singleton
 | |
| snippet sing
 | |
| 	function ${1:Singleton} (${2:argument}) {
 | |
| 		// the cached instance
 | |
| 		var instance;
 | |
| 
 | |
| 		// rewrite the constructor
 | |
| 		$1 = function $1($2) {
 | |
| 			return instance;
 | |
| 		};
 | |
| 
 | |
| 		// carry over the prototype properties
 | |
| 		$1.prototype = this;
 | |
| 
 | |
| 		// the instance
 | |
| 		instance = new $1();
 | |
| 
 | |
| 		// reset the constructor pointer
 | |
| 		instance.constructor = $1;
 | |
| 
 | |
| 		${0}
 | |
| 
 | |
| 		return instance;
 | |
| 	}
 | |
| # Crockford's object function
 | |
| snippet obj
 | |
| 	function object(o) {
 | |
| 		function F() {}
 | |
| 		F.prototype = o;
 | |
| 		return new F();
 | |
| 	}
 | |
| # Define multiple properties
 | |
| snippet props
 | |
| 	var ${1:my_object} = Object.defineProperties(
 | |
| 		${2:new Object()},
 | |
| 		{
 | |
| 			${3:property} : {
 | |
| 				get : function $1_$3_getter() {
 | |
| 					// getter code
 | |
| 				},
 | |
| 				set : function $1_$3_setter(value) {
 | |
| 					// setter code
 | |
| 				},
 | |
| 				value        : ${4:value},
 | |
| 				writeable    : ${5:boolean},
 | |
| 				enumerable   : ${6:boolean},
 | |
| 				configurable : ${0:boolean}
 | |
| 			}
 | |
| 		}
 | |
| 	);
 | |
| # Define single property
 | |
| snippet prop
 | |
| 	Object.defineProperty(
 | |
| 		${1:object},
 | |
| 		'${2:property}',
 | |
| 		{
 | |
| 			get : function $1_$2_getter() {
 | |
| 				// getter code
 | |
| 			},
 | |
| 			set : function $1_$2_setter(value) {
 | |
| 				// setter code
 | |
| 			},
 | |
| 			value        : ${3:value},
 | |
| 			writeable    : ${4:boolean},
 | |
| 			enumerable   : ${5:boolean},
 | |
| 			configurable : ${0:boolean}
 | |
| 		}
 | |
| 	);
 | |
| # Documentation
 | |
| # docstring
 | |
| snippet /**
 | |
| 	/**
 | |
| 	 * ${0:description}
 | |
| 	 *
 | |
| 	 */
 | |
| snippet @par
 | |
| 	@param {${1:type}} ${2:name} ${0:description}
 | |
| snippet @ret
 | |
| 	@return {${1:type}} ${0:description}
 | |
| # JSON.parse
 | |
| snippet jsonp
 | |
| 	JSON.parse(${0:jstr});
 | |
| # JSON.stringify
 | |
| snippet jsons
 | |
| 	JSON.stringify(${0:object});
 | |
| # DOM selectors
 | |
| # Get elements
 | |
| snippet get
 | |
| 	getElementsBy${1:TagName}('${0}')
 | |
| # Get element
 | |
| snippet gett
 | |
| 	getElementBy${1:Id}('${0}')
 | |
| # Elements by class
 | |
| snippet by.
 | |
| 	${1:document}.getElementsByClassName('${0:class}')
 | |
| # Element by ID
 | |
| snippet by#
 | |
| 	${1:document}.getElementById('${0:element ID}')
 | |
| # Query selector
 | |
| snippet qs
 | |
| 	${1:document}.querySelector('${0:CSS selector}')
 | |
| # Query selector all
 | |
| snippet qsa
 | |
| 	${1:document}.querySelectorAll('${0:CSS selector}')
 | |
| # Debugging
 | |
| snippet de
 | |
| 	debugger;
 | |
| snippet cl "console.log"
 | |
| 	console.log(${0});
 | |
| snippet cd "console.debug"
 | |
| 	console.debug(${0});
 | |
| snippet ce "console.error"
 | |
| 	console.error(${0});
 | |
| snippet cw "console.warn"
 | |
| 	console.warn(${0});
 | |
| snippet ci "console.info"
 | |
| 	console.info(${0});
 | |
| snippet ct "console.trace"
 | |
| 	console.trace(${0:label});
 | |
| snippet ctime "console.time ... console.timeEnd"
 | |
| 	console.time("${1:label}");
 | |
| 	${0:${VISUAL}}
 | |
| 	console.timeEnd("$1");
 | |
| snippet ctimestamp "console.timeStamp"
 | |
| 	console.timeStamp("${1:label}");
 | |
| snippet ca "console.assert"
 | |
| 	console.assert(${1:expression}, ${0:obj});
 | |
| snippet cclear "console.clear"
 | |
| 	console.clear();
 | |
| snippet cdir "console.dir"
 | |
| 	console.dir(${0:obj});
 | |
| snippet cdirx "console.dirxml"
 | |
| 	console.dirxml(${1:object});
 | |
| snippet cgroup "console.group"
 | |
| 	console.group("${1:label}");
 | |
| 	${0:${VISUAL}}
 | |
| 	console.groupEnd();
 | |
| snippet cgroupc "console.groupCollapsed"
 | |
| 	console.groupCollapsed("${1:label}");
 | |
| 	${0:${VISUAL}}
 | |
| 	console.groupEnd();
 | |
| snippet cprof "console.profile"
 | |
| 	console.profile("${1:label}");
 | |
| 	${0:${VISUAL}}
 | |
| 	console.profileEnd();
 | |
| snippet ctable "console.table"
 | |
| 	console.table(${1:"${2:value}"});
 | |
| # Misc
 | |
| snippet us
 | |
| 	'use strict';
 | |
| # setTimeout function
 | |
| snippet timeout
 | |
| 	setTimeout(function () {${0}}${2}, ${1:10});
 | |
| snippet const
 | |
| 	const ${1} = ${0};
 | |
| snippet constn
 | |
| 	const ${1} = new ${0};
 | |
| snippet let
 | |
| 	let ${1} = ${0};
 | |
| snippet im "import xyz from 'xyz'"
 | |
| 	import ${1} from '${2:$1}';
 | |
| snippet imas "import * as xyz from 'xyz'"
 | |
| 	import * as ${1} from '${2:$1}';
 | |
| snippet imm "import { member } from 'xyz'"
 | |
| 	import { ${1} } from '${2}';
 | |
| snippet cla
 | |
| 	class ${1} {
 | |
| 		${0:${VISUAL}}
 | |
| 	}
 | |
| snippet clax
 | |
| 	class ${1} extends ${2} {
 | |
| 		${0:${VISUAL}}
 | |
| 	}
 | |
| snippet clac
 | |
| 	class ${1} {
 | |
| 		constructor(${2}) {
 | |
| 			${0:${VISUAL}}
 | |
| 		}
 | |
| 	}
 | |
| snippet foro "for (const prop of object}) { ... }"
 | |
| 	for (const ${1:prop} of ${2:object}) {
 | |
| 		${0:$1}
 | |
| 	}
 | |
| snippet fun*
 | |
| 	function* ${1:function_name}(${2}) {
 | |
| 		${0:${VISUAL}}
 | |
| 	}
 | |
| snippet c=>
 | |
| 	const ${1:function_name} = (${2}) => {
 | |
| 		${0:${VISUAL}}
 | |
| 	}
 | |
| snippet caf
 | |
| 	const ${1:function_name} = (${2}) => {
 | |
| 		${0:${VISUAL}}
 | |
| 	}
 | |
| snippet =>
 | |
| 	(${1}) => {
 | |
| 		${0:${VISUAL}}
 | |
| 	}
 | |
| snippet af "() =>"
 | |
| 	(${1}) => ${0:${VISUAL}}
 | |
| snippet afb "() => {}"
 | |
| 	(${1}) => {
 | |
| 		${0:${VISUAL}}
 | |
| 	}
 | |
| snippet sym
 | |
| 	const ${1} = Symbol('${0}');
 | |
| snippet ed
 | |
| 	export default ${0}
 | |
| snippet ${
 | |
| 	${${1}}${0}
 | |
| snippet aw "await"
 | |
| 	await ${0:${VISUAL}}
 | 
