nvim/UltiSnips/cpp.snippets

197 lines
3.4 KiB
Plaintext

snippet header "Header wrapper" b
#ifndef $1
#define $1
$0
#endif//$1
endsnippet
snippet for "For-loop head"
for (${1:int i} = ${2:0}; ${3:i}; ${4:--i}) {
$5
}
$0
endsnippet
snippet exfun "New Function with Documentation"
/**
* @name $2
* @return $1
* @brief ${4: Description}
*
`!p
params = t[3].split(", ")
rval = ""
for param in params:
if len(param.split(' ')) == 2:
rval += f" * @param {param}:\t{t[2]}_{param.split(' ')[1]}\n"
snip.rv = rval`
*/
${1:int} ${2:MyFunc} (${3:void}) {
`!p
if t[1] != "void":
snip.rv = f"{t[1]} rv = 0;"
else:
snip.rv = ""`
$5
`!p
if t[1] != "void":
snip.rv = f"return rv;"
else:
snip.rv = ""`
}
$0
endsnippet
snippet fun "Function template"
${1:int} ${2:Name} (${3:void}) {
$5
return ${6:`!p
if t[1] != "void":
snip.rv = f"0"
else:
snip.rv = ""`};
}
$0
endsnippet
snippet while "while loop head"
while (${1:true}) {
$2
}
$0
endsnippet
snippet ifelse "If-Clause"
if ($1) {
$2
} else {
$3
}
$0
endsnippet
snippet class "Add new class" bA
class $1 ${2::} `!p
if t[2] == ":":
snip.rv = "public"
else:
snip.rv = ""` $3 {
public:
$1() {
`!p
variables = t[4].replace('\n', '').replace('\t', '').split(";");
rv = ""
for var in variables:
name = var.split(' ')
if var != "" and len(name) >= 2:
name[1] = name[1].split('[')[0]
rv += f"\t\t{name[1]} = 0;\n"
snip.rv = rv`
$5
}
// Methoden
$6
// set-Methods
`!p
variables = t[4].replace('\n', '').replace('\t', '').split(";");
rv = ""
for var in variables:
name = var.split(' ')
if var != "" and len(name) >= 2:
name[1] = name[1].split('[')[0]
if '[' in var:
name[0] += '*'
rv += f"\tvoid set{name[1]} ({name[0]} _{name[1]});\n"
snip.rv = rv`
// get-Methods
`!p
variables = t[4].replace('\n', '').replace('\t', '').split(";");
rv = ""
for var in variables:
name = var.split(' ')
if var != "" and len(name) >= 2:
name[1] = name[1].split('[')[0]
if '[' in var:
name[0] += '*'
rv += f"\t{name[0]} get{name[1]} ();\n"
snip.rv = rv`
private:
$4
};
`!p
variables = t[4].replace('\n', '').replace('\t', '').split(";");
rv = ""
for var in variables:
name = var.split(' ')
if var != "" and len(name) >= 2:
name[1] = name[1].split('[')[0]
if '[' in var:
name[0] += '*'
rv += f"void {t[1]}::set{name[1]} ({name[0]} _{name[1]}) {'{'}{name[1]} = _{name[1]};{'}'}\n"
snip.rv = rv`
`!p
variables = t[4].replace('\n', '').replace('\t', '').split(";");
rv = ""
for var in variables:
name = var.split(' ')
if var != "" and len(name) >= 2:
name[1] = name[1].split('[')[0]
if '[' in var:
name[0] += '*'
rv += f"{name[0]} {t[1]}::get{name[1]} () {'{'} return {name[1]}; {'}'}\n"
snip.rv = rv`
$0
endsnippet
snippet defstruct "define a new type with a struct" A
typedef struct $1 $1;
struct $1{
$2
};
endsnippet
snippet docomment "Meta Comment" A
/*
* Filename: `!p snip.rv = fn`
* Author: ${1:Yannick Reiss}
* Project: ${2:Project Name}
* Copyright: ${3:None}
* Description: ${4:Helpful description}
*/
$0
endsnippet
snippet let+ "Declare and initialize Variable" A
${1:int} ${2:Variable} = ${3:0}; /* ${4:Description} */
$0
endsnippet
snippet let- "Declare Variable" A
${1:int} ${2:Variable}; /* ${3:Description} */
$0
endsnippet
snippet pfun "prototype for function" bA
/**
* @name $2
* @return $1
* @brief ${4: Description}
* `!p
params = t[3].split(", ")
rval = ""
for param in params:
if len(param.split(' ')) >= 2:
rval += f"\n *\t@param {param}:\t{t[2]}_{param.split(' ')[1]}"
snip.rv = rval`
*/
${1:int} ${2:MyFunc} (${3:void});
endsnippet