Move of Snippets into repository
This commit is contained in:
363
UltiSnips/c.snippets
Normal file
363
UltiSnips/c.snippets
Normal file
@@ -0,0 +1,363 @@
|
||||
snippet for "For-loop head"
|
||||
for (${1:int i} = ${2:0}; ${3:i}; ${4:--i}) {
|
||||
$5
|
||||
}
|
||||
$0
|
||||
endsnippet
|
||||
|
||||
snippet fun "New Function"
|
||||
${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 "(\w+)->fun" "Struct function" r
|
||||
${1:int} ${2:Name} (`!p snip.rv = match.group(1)`* self, ${4: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 "self.(\w+)" "Struct call" r
|
||||
`!p snip.rv = match.group(1)`(self$1)$0
|
||||
endsnippet
|
||||
|
||||
snippet pfun "prototype for function" bA
|
||||
/**
|
||||
* $2 -> $1
|
||||
* @return $1
|
||||
* @brief Description:
|
||||
* ${4: Description}
|
||||
* @param Parameter:`!p
|
||||
params = t[3].split(",")
|
||||
rval = ""
|
||||
for param in params:
|
||||
if len(param.split(' ')) >= 2:
|
||||
rval += f"\n *\t\t{param}:\t{t[2]}_{param.split(' ')[1]}"
|
||||
snip.rv = rval`
|
||||
*/
|
||||
${1:int} ${2:MyFunc} (${3:void});
|
||||
endsnippet
|
||||
|
||||
|
||||
snippet exfun "New Function with Documentation"
|
||||
/**
|
||||
* $2 -> $1
|
||||
* @return $1
|
||||
* @brief Description:
|
||||
* ${4: Description}
|
||||
* @param Parameter:`!p
|
||||
params = t[3].split(",")
|
||||
rval = ""
|
||||
for param in params:
|
||||
if len(param.split(' ')) >= 2:
|
||||
rval += f"\n *\t\t{param}:\t{t[2]}_{param.split(' ')[1]}"
|
||||
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 while "while loop head"
|
||||
for (;$1;) {
|
||||
$2
|
||||
}
|
||||
$0
|
||||
endsnippet
|
||||
|
||||
snippet "(\w+) = malloc" "Automativ malloc error implementation" rA
|
||||
/* Allocate memory for `!p snip.rv = match.group(1)` */
|
||||
`!p snip.rv = match.group(1)` = malloc(sizeof(${1:int}) * $2);
|
||||
if (!`!p snip.rv = match.group(1)`) {
|
||||
/* Error */
|
||||
perror("malloc error on memory allocation of: `!p snip.rv = match.group(1)`");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
$0
|
||||
endsnippet
|
||||
|
||||
snippet "(\w+) = open" "Automatic open error implementation" rA
|
||||
/* create descriptor `!p snip.rv = match.group(1)` for file $1 */
|
||||
`!p snip.rv = match.group(1)` = open(${1:"Filename"}, ${2:"MODE"});
|
||||
if (-1 == `!p snip.rv = match.group(1)`) {
|
||||
/* Error */
|
||||
perror(${4:"open error"});
|
||||
${5:exit(EXIT_FAILURE);}
|
||||
}
|
||||
$0
|
||||
endsnippet
|
||||
|
||||
snippet swapint "Swap two integer or numerical variables"
|
||||
/* Swap Variables $1 and $2 */
|
||||
${1:Var1} = $1 + ${2:Var2};
|
||||
$2 = $1 - $2;
|
||||
$1 = $1 - $2;
|
||||
$0
|
||||
endsnippet
|
||||
|
||||
snippet cast "adds cast" i
|
||||
(${1:void})$0
|
||||
endsnippet
|
||||
|
||||
global !p
|
||||
def complete(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 def "Completer for predefined Values"
|
||||
$1`!p snip.rv = complete(t[1], ['EXIT_SUCCESS', 'EXIT_FAILURE', 'INT_MAX', 'INT_MIN'])`
|
||||
endsnippet
|
||||
|
||||
snippet printf "Cast printf result to 'void' if heturn value is unneeded" bA
|
||||
(void)printf("$1"`!p
|
||||
if "%" in t[1]:
|
||||
snip.rv = ", "
|
||||
else:
|
||||
snip.rv = ""`$2);$0
|
||||
endsnippet
|
||||
|
||||
snippet defstruct "define a new type with a struct" A
|
||||
/* define struct $1 ${2:Explaination} */
|
||||
typedef struct $1 $1;
|
||||
struct $1 {
|
||||
$3
|
||||
};
|
||||
endsnippet
|
||||
|
||||
snippet docomment "Meta Comment for Documenation" A
|
||||
/*
|
||||
* Filename: `!p snip.rv = fn`
|
||||
* Author: ${1:Yannick Reiss}
|
||||
* Project: ${2:Project Name}
|
||||
* Copyright: ${3:None}
|
||||
* Description: ${4:Funny module}
|
||||
*
|
||||
*/$0
|
||||
endsnippet
|
||||
|
||||
snippet templatehsrm "Program templte from HSRM" A
|
||||
/* include */
|
||||
$1
|
||||
|
||||
/* makros */
|
||||
$2
|
||||
|
||||
/* typ definitions */
|
||||
$3
|
||||
|
||||
/* local function prototypes */
|
||||
$4
|
||||
|
||||
/* global constants */
|
||||
$5
|
||||
|
||||
/* global variables */
|
||||
$6
|
||||
|
||||
/* local constants */
|
||||
$7
|
||||
|
||||
/* local variables */
|
||||
$8
|
||||
|
||||
/* global and local function implementations */
|
||||
$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 "close\((\w+)\)" "Automatic close error implementation" brA
|
||||
/* Closing file `!p snip.rv = match.group(1)` */
|
||||
if (close(`!p snip.rv = match.group(1)`)) {
|
||||
/* Error */
|
||||
perror("${1:Could not close file!}");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
$0
|
||||
endsnippet
|
||||
|
||||
snippet write( "Automatic write error check" A
|
||||
/* Write $3 bytes from $2 to file $1 */
|
||||
if (-1 == write(${1:file}, ${2:buffer}, ${3:bytes})) {
|
||||
/* Error */
|
||||
perror("${4:Could not write to file!}");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
$0
|
||||
endsnippet
|
||||
|
||||
snippet /* "comment" A
|
||||
/* $1 */$0
|
||||
endsnippet
|
||||
|
||||
snippet "read\((.+), (.+), (.+)\);" "auto read" brA
|
||||
/* read `!p snip.rv = match.group(3)` from file `!p snip.rv = match.group(1)` intobuffer `!p snip.rv = match.goup(2)` */
|
||||
if (-1 == read(`!p snip.rv = match.group(1)`, `!p snip.rv = match.group(2)`, `!p snip.rv = match.group(3)`)) {
|
||||
/* Error */
|
||||
perror("${1:Could not read to file!})";
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
$0
|
||||
endsnippet
|
||||
|
||||
snippet "fstat\((.+), (.+)\);" "auto stat" brA
|
||||
/* load information about file `!p snip.rv = match.group(1)` into struct `!p snip.rv = match.group(2)` */
|
||||
if (fstat(`!p snip.rv = match.group(1)`, `!p snip.rv = match.group(2)`)) {
|
||||
/* Error */
|
||||
perror("${1:Could not fill struct with information!}");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
$0
|
||||
endsnippet
|
||||
|
||||
snippet "ftruncate\((.+), (.+)\);" "ftruncate auto" brA
|
||||
/* Resize file `!p snip.rv = match.group(1)` to size `!p snip.rv = match.group(2)` */
|
||||
if (ftruncate(`!p snip.rv = match.group(1)`, `!p snip.rv = match.group(2)`)) {
|
||||
/* Error */
|
||||
perror("${1:Could not resize file!}j;
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
endsnippet
|
||||
|
||||
snippet 'system\("(.+)"\);' "Automatic system error implementation" rA
|
||||
/* run system command `!p snip.rv = match.group(1)` and check for success */
|
||||
if (system("`!p snip.rv = match.group(1)`")) {
|
||||
/* Error */
|
||||
perror(${1:"Could not execute shell command!"});
|
||||
${5:exit(EXIT_FAILURE);}
|
||||
}
|
||||
$0
|
||||
endsnippet
|
||||
|
||||
snippet "if \(argc" "automatically add clarg check" A
|
||||
/* check for right number of arguments */
|
||||
if (argc ${1:!=} $2) {
|
||||
/* Error */
|
||||
perror("Wrong number of arguments");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
endsnippet
|
||||
|
||||
snippet "(\w+) = fork" "Auto fork error implementation" rA
|
||||
/* create new subproccess `!p snip.rv = match.group(1)` */
|
||||
`!p snip.rv = match.group(1)` = fork();
|
||||
if (`!p snip.rv = match.group(1)` < 0) {
|
||||
/* Error */
|
||||
perror("fork error on creating new subprocess '`!p snip.rv = match.group(1)`'.");
|
||||
exit(EXIT_FAILURE);
|
||||
} else if (!`!p snip.rv = match.group(1)`) {
|
||||
/* fork runs from here */
|
||||
${1:execve(proc, args, NULL)};
|
||||
}
|
||||
$0
|
||||
endsnippet
|
||||
|
||||
snippet pthread_create "pthreadcreate auto implement" A
|
||||
/* Creating thread $1 running function $3 */
|
||||
if (pthread_create(${1:thread}, ${2:NULL}, ${3:function}, ${4:args})) {
|
||||
perror("Could not create thread $1.");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
endsnippet
|
||||
|
||||
snippet pthread_mutex_unlock "mutex" iA
|
||||
/* Unlock mutex $1 */
|
||||
if ( pthread_mutex_unlock(&${1:mutex}) ) {
|
||||
perror("Could not unlock mutex $1.");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
endsnippet
|
||||
|
||||
snippet pthread_cond_wait "condition wait" iA
|
||||
/* wait for condition $1 on mutex $2 */
|
||||
if ( pthread_cond_wait(&${1:Condition}, &${2:mutex}) ) {
|
||||
perror("Could not wait for signal $1 on mutex $2.");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
endsnippet
|
||||
|
||||
snippet pthread_cond_signal "condition signal" iA
|
||||
/* Send signal $1 */
|
||||
if ( pthread_cond_signal(&${1:signal}) ) {
|
||||
perror("Could not send signal $1.");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
endsnippet
|
||||
|
||||
snippet pthread_mutex_lock "mutex" iA
|
||||
/* lock the mutex $1 */
|
||||
if ( pthread_mutex_lock(&${1:mutex}) ) {
|
||||
perror("Could not lock mutex $1.");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
endsnippet
|
||||
|
||||
snippet pthread_join "join thread" iA
|
||||
/* join the thread $1 */
|
||||
if ( pthread_join(${1:thread}, ${2:NULL}) ) {
|
||||
perror("Could not join thread $1.");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
endsnippet
|
||||
|
||||
snippet sigaction "signal action" i
|
||||
/* call function $2 on signal $1 */
|
||||
if ( sigaction(${1:SIGINT}, ${2:&act}, ${3:&old}) ) {
|
||||
perror("Could not change function of signal $1 to $2.");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
endsnippet
|
||||
|
||||
snippet fflush "flush stdout" iA
|
||||
/* flush stdout */
|
||||
if ( fflush(stdout) ) {
|
||||
perror("Could not flush stdout");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
endsnippet
|
||||
|
||||
Reference in New Issue
Block a user