mirror of
https://github.com/amix/vimrc
synced 2024-12-20 08:53:08 +00:00
110 lines
2.3 KiB
Text
110 lines
2.3 KiB
Text
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:
|