{
	// Place your snippets for c here. Each snippet is defined under a snippet name and has a prefix, body and 
	// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
	// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the 
	// same ids are connected.
	// Example:
	// "Print to console": {
	// 	"prefix": "log",
	// 	"body": [
	// 		"console.log('$1');",
	// 		"$2"
	// 	],
	// 	"description": "Log output to console"
	// }

	// wi_util.h define snippets ========================================

	"free_and_set_null": {
		"prefix": "nfree",
		"body": [
			"free_and_set_null($1)",
		],
		"description": "#define free_and_set_null",
	},

	"ai_xfree": {
		"prefix": "afree",
		"body": [
			"ai_xfree($1)",
		],
		"description": "function ai_xfree",
	},

	"if_null_return": {
		"prefix": "retnul",
		"body": [
			"if_null_return($1)",
		],
		"description": "#define if_null_return",
	},

	"if_null_cmd_return": {
		"prefix": "cmdnul",
		"body": [
			"if_null_cmd_return($1)",
		],
		"description": "#define if_null_cmd_return",
	},

	"is_null_define": {
		"prefix": "nul",
		"body": [
			"is_null($1)",
		],
		"description": "#define is_null",
	},

	"is_not_null_define": {
		"prefix": "notnul",
		"body": [
			"is_not_null($1)",
		],
		"description": "#define is_not_null",
	},

	"is_true": {
		"prefix": "istr",
		"body": [
			"is_true($1)",
		],
		"description": "#define is_true",
	},

	"is_false": {
		"prefix": "isfal",
		"body": [
			"is_false($1)",
		],
		"description": "#define is_false",
	},

	"get_temp_buffer": {
		"prefix": "getbuf",
		"body": [
			"get_temp_buffer()",
		],
		"description": "#define get_temp_buffer",
	},

	"get_temp_buffer_and_set_zero": {
		"prefix": "getbufnul",
		"body": [
			"get_temp_buffer_and_set_zero()",
		],
		"description": "#define get_temp_buffer_and_set_zero",
	},

	"get_temp_buffer_and_set_string": {
		"prefix": "getbufstr",
		"body": [
			"get_temp_buffer_and_set_string($1)",
		],
		"description": "#define get_temp_buffer_and_set_string",
	},

	"get_temp_buffer_and_type_casting": {
		"prefix": "getbufcast",
		"body": [
			"get_temp_buffer_and_type_casting($1)",
		],
		"description": "#define get_temp_buffer_and_type_casting",
	},

	"declear_and_get_temp_buffer": {
		"prefix": "getbufclear",
		"body": [
			"declear_and_get_temp_buffer()",
		],
		"description": "#define declear_and_get_temp_buffer",
	},

	// ai_debug.h debug define snippets =================================
	"DEBUG": {
		"prefix": "dbg",
		"body": [
			"DEBUG(\\"$1\\"$2)",
		],
		"description": "#define DEBUG",
	},

	"DEBUG_ERR": {
		"prefix": "dbgerr",
		"body": [
			"DEBUG_ERR(\\"$1\\"$2)",
		],
		"description": "#define DEBUG_ERR",
	},

	"DEBUG_INFO": {
		"prefix": "dbginfo",
		"body": [
			"DEBUG_INFO(\\"$1\\"$2)",
		],
		"description": "#define DEBUG_INFO",
	},

	// inspection_local.h debug define snippets =========================
	"INSP_DBG": {
		"prefix": "idbg",
		"body": [
			"INSP_DBG(\\"$1\\"$2)",
		],
		"description": "#define INSP_DBG",
	},

	"INSP_DBG_ERR": {
		"prefix": "idbgerr",
		"body": [
			"INSP_DBG_ERR(\\"$1\\"$2)",
		],
		"description": "#define INSP_DBG_ERR",
	},

	"INSP_DBG_INFO": {
		"prefix": "idbginfo",
		"body": [
			"INSP_DBG_INFO(\\"$1\\"$2)",
		],
		"description": "#define INSP_DBG_INFO",
	},

	// proxy debug define snippets ======================================
	"PXY_DBG": {
		"prefix": "pdbg",
		"body": [
			"PXY_DBG(\\"$1\\"$2)",
		],
		"description": "#define PXY_DBG",
	},

	"PXY_DBG_ERR": {
		"prefix": "pdbgerr",
		"body": [
			"PXY_DBG_ERR(\\"$1\\"$2)",
		],
		"description": "#define PXY_DBG_ERR",
	},

	"PXY_DBG_INFO": {
		"prefix": "pdbginfo",
		"body": [
			"PXY_DBG_INFO(\\"$1\\"$2)",
		],
		"description": "#define PXY_DBG_INFO",
	},

	// cache_local.h debug define snippets ==============================
	"CA_DBG": {
		"prefix": "cdbg",
		"body": [
			"CA_DBG(\\"$1\\"$2)",
		],
		"description": "#define CA_DBG",
	},

	"CA_DBG_ERR": {
		"prefix": "cdbgerr",
		"body": [
			"CA_DBG_ERR(\\"$1\\"$2)",
		],
		"description": "#define CA_DBG_ERR",
	},

	"CA_DBG_INFO": {
		"prefix": "cdbginfo",
		"body": [
			"CA_DBG_INFO(\\"$1\\"$2)",
		],
		"description": "#define CA_DBG_INFO",
	},

	// printf snippets ==================================================
	"printf1": {
		"prefix": "pnt",
		"body": [
			"printf(\\"$1\\"$2);",
		],
		"description": "printf to standard out",
	},
	"printf2": {
		"prefix": "pntln",
		"body": [
			"printf(\\"$1\\\\n\\"$2);",
		],
		"description": "printf to standard out",
	},

	"printf3": {
		"prefix": "print",
		"body": [
			"printf(\\"$1\\"$2);",
		],
		"description": "printf to standard out",
	},
	"printf4": {
		"prefix": "println",
		"body": [
			"printf(\\"$1\\\\n\\"$2);",
		],
		"description": "printf to standard out",
	},

	"snprintf": {
		"prefix": "snpnt",
		"body": [
			"snprintf($1)",
		],
		"description": "snprintf",
	},

}