aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRatakor <ratakor@disroot.org>2023-07-28 14:31:51 +0200
committerRatakor <ratakor@disroot.org>2023-07-28 14:31:51 +0200
commit338e143edf1e1a043c9e0b3f25a80f183a39ff15 (patch)
tree1d863724d181a668294f7d788fd58bc7eb54f84e
parent51b2e91af1fda5f50b860d4580ba40130b539b5f (diff)
Improve C and zig snippets
-rw-r--r--snippets/c.snippets178
-rw-r--r--snippets/zig.snippets2
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