diff options
author | Ratakor <ratakor@disroot.org> | 2023-07-28 14:31:51 +0200 |
---|---|---|
committer | Ratakor <ratakor@disroot.org> | 2023-07-28 14:31:51 +0200 |
commit | 338e143edf1e1a043c9e0b3f25a80f183a39ff15 (patch) | |
tree | 1d863724d181a668294f7d788fd58bc7eb54f84e | |
parent | 51b2e91af1fda5f50b860d4580ba40130b539b5f (diff) |
Improve C and zig snippets
-rw-r--r-- | snippets/c.snippets | 178 | ||||
-rw-r--r-- | snippets/zig.snippets | 2 |
2 files changed, 48 insertions, 132 deletions
diff --git a/snippets/c.snippets b/snippets/c.snippets index 590e1d4..3154b7e 100644 --- a/snippets/c.snippets +++ b/snippets/c.snippets @@ -1,71 +1,48 @@ -## Main -# main snippet main int main(int argc, char *argv[]) { - ${0} + $0 } -# main(void) snippet mainn int main(void) { - ${0} + $0 } - -## Preprocessor -# #include <...> snippet #inc #include <${1:stdio}.h> - $0 snippet inc #include <${1:stdio}.h> - $0 -# #include "..." snippet Inc #include "${1:`vim_snippets#Filename("$1.h")`}" - $0 -# ifndef...define...endif +snippet def + #define snippet ndef #ifndef $1 #define ${1:SYMBOL} ${2:value} - #endif /* ifndef $1 */ -# define -snippet def - #define -# ifdef...endif + #endif /* $1 */ snippet ifdef #ifdef ${1:FOO} - ${2:#define } - #endif -# if + ${2:#define } + #endif /* $1 */ snippet #if #if ${1:FOO} - ${0:${VISUAL}} - #endif -# header include guard + ${0:${VISUAL}} + #endif /* $1 */ snippet guard #ifndef ${1:`toupper(vim_snippets#Filename('$1_H', 'UNTITLED_H'))`} #define $1 - - ${0} - + $0 #endif /* $1 */ -# Disable C++ name mangling in C headers snippet nocxx #ifdef __cplusplus extern "C" { - #endif - - ${0} - + #endif /* __cplusplus */ + $0 #ifdef __cplusplus } /* extern "C" */ - #endif - -## Control Statements -# if + #endif /* __cplusplus */ snippet if if (${1:1}) { ${0:${VISUAL}} @@ -76,82 +53,59 @@ snippet ife } else { ${0} } -# else snippet el else { ${0:${VISUAL}} } -# else if snippet elif else if (${1:1}) { ${0:${VISUAL}} } -# ifi -snippet ifi - if (${1:1}) ${0}; -# ternary snippet t Ternary: `condition ? 1 : 0` - $1 ? $2 : $0 -# switch + ${1:foo} ? ${2:1} : ${0:0} snippet switch - switch (${1:/* variable */}) { - case ${2:/* variable case */}: + switch (${1:var}) { + case ${2:x}: ${3} ${4:break;}${5} default: ${6} } -# switch without default snippet switchndef - switch (${1:/* variable */}) { - case ${2:/* variable case */}: + switch (${1:var}) { + case ${2:x}: ${3} ${4:break;}${5} } -# case snippet case - case ${1:/* variable case */}: + case ${1:x}: ${2} ${3:break;} snippet ret return ${0}; snippet ex exit($0); - -## Loops -# for snippet for for (${2:i} = 0; $2 < ${1:count}; $2${3:++}) { ${4} } -# for (custom) -snippet forr - for (${1:i} = ${2:0}; ${3:$1 < 10}; $1${4:++}) { - ${5} - } -# while snippet wh while (${1:1}) { ${0:${VISUAL}} } -# do... while snippet do do { ${0:${VISUAL}} } while (${1:1}); -## Functions -# function declaration snippet fund ${1:void} ${2:function_name}(${3:void}); -# function definition snippet fun ${1:void} ${2:function_name}(${3:void}) { ${4} } -# function definition with one parameter with Doxygen documentation snippet funD /** * @brief ${1:Brief function description here} @@ -167,12 +121,15 @@ snippet funD ${9} } -## Types -# typedef snippet td typedef ${1:int} ${2:MyCustomType}; -# struct +snippet tds + typedef struct ${2:$1} ${1:`vim_snippets#Filename('$1_t', 'name')`}; snippet st + struct ${1:`vim_snippets#Filename('$1_t', 'name')`} { + ${2:Data} + }; +snippet stD /** * @struct $1 * @brief ${3:Brief struct description} @@ -182,41 +139,26 @@ snippet st struct ${1:`vim_snippets#Filename('$1_t', 'name')`} { ${2:Data} /*!< ${4:Description} */ }${5: /* optional variable list */}; -# typedef struct -snippet tds - /** - * @struct $2 - * @brief ${5:Brief struct description} - * - * ${6:Detailed description} - */ - typedef struct ${2:_$1 }{ - m_${3:Data} /*!< ${4:Description} */ - } ${1:`vim_snippets#Filename('$1_t', 'name')`}; - snippet enum + enum ${1:name} { $0 }; +snippet enumD /** * @enum $1 * * ${2:Detailed description} */ - enum ${1:name} { ${0} }; -# typedef enum + enum ${1:name} { $0 }; snippet tde /** * @enum $2 * - * ${4:Detailed description} + * ${3:Detailed description} */ typedef enum { - ${1:Data} /*!< ${3:Description} */ + ${1:Data} } ${2:foo}; - -## Input/Output -# printf snippet pr printf("${1:%s}\n"${2}); -# fprintf (again, this isn't as nice as TextMate's version, but it works) snippet fpr fprintf(${1:stderr}, "${2:%s}\n"${3}); snippet prd @@ -226,52 +168,26 @@ snippet prf snippet prx printf("${1:} = %${2}\n", $1); snippet warn - warn("${1:%s}"$0); -snippet warnx - warnx("${1:%s}"$0); -snippet err - err(${1:1}, "${2:%s}"$0); -snippet errx - errx(${1:1}, "${2:%s}"$0); -## Assertions + warn("${1:%s}"); +snippet die + die(${1:1}, "${2:%s}"); snippet asr assert($1); snippet anl - assert(${1:ptr} != NULL); - -## Dynamic Allocation + assert(${1:p} != NULL); +snippet fre + free(${1:p}); snippet mlc - ${1:ptr} = (${2:type}*) malloc(sizeof($2)); - + ${1:p} = malloc(sizeof(*$1)); snippet clc - ${1:ptr} = (${2:type}*) calloc(${3:size}, sizeof($2)); - + ${1:p} = calloc(${3:nmemb}, sizeof(*$1)); snippet rlc - ${1:ptr} = realloc($1, ${2:size} * sizeof(${3:type})); - -snippet mlcd - ${1:type} ${2:ptr} = ($1*) malloc(sizeof($1)); - -snippet clcd - ${1:type} ${2:ptr} = ($1*) calloc(${3:size}, sizeof($1)); - -snippet fre - free(${1:ptr}); - - -# TODO section -snippet todo - /*! TODO: ${1:Todo description here} - * \todo $1 - */ -## Miscellaneous -# This is kind of convenient -snippet . - [${1}] - -snippet asm - __asm__ __volatile__( - "${0}\n\t" - : - : - ); + ${1:p} = realloc($1, ${2:size}); +snippet rlca + ${1:p} = reallocarray($1, ${2:nmemb}, ${3:size}); +snippet memd + ${1:np} = memdup(${2:p}, ${3:size}); +snippet strd + ${1:p} = strdup(${2:s}); +snippet strnd + ${1:p} = strndup(${2:s}, ${3:n}); diff --git a/snippets/zig.snippets b/snippets/zig.snippets index 55b7430..e90b017 100644 --- a/snippets/zig.snippets +++ b/snippets/zig.snippets @@ -1,4 +1,4 @@ -snippet import +snippet imp const ${1:std} = @import("${1:std}"); ${0} snippet main |