You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							110 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
	
	
							110 lines
						
					
					
						
							2.3 KiB
						
					
					
				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:
 | 
						|
 |