mirror of
https://github.com/amix/vimrc
synced 2025-07-07 00:15:00 +08:00
gitignore sources_non_forked_cache
This commit is contained in:
186
sources_non_forked/vim-snippets/UltiSnips/c.snippets
Normal file
186
sources_non_forked/vim-snippets/UltiSnips/c.snippets
Normal file
@ -0,0 +1,186 @@
|
||||
###########################################################################
|
||||
# TextMate Snippets #
|
||||
###########################################################################
|
||||
# --------------
|
||||
# Functions
|
||||
# --------------
|
||||
global !p
|
||||
def printf_expand_args(snip):
|
||||
"""
|
||||
This will look how many placeholders printf has and adds the separated commas
|
||||
at the end.
|
||||
"""
|
||||
|
||||
# now add so many "," as much as the amount of placeholders
|
||||
amount_placeholders = snip.tabstops[1].current_text.count("%")
|
||||
|
||||
output = ""
|
||||
|
||||
# Add the amount of tabstops
|
||||
for placeholder_index in range(3, amount_placeholders + 3):
|
||||
output += f", ${placeholder_index}"
|
||||
|
||||
# convert them into tabstops
|
||||
snip.expand_anon(output)
|
||||
|
||||
endglobal
|
||||
|
||||
# ==============
|
||||
# Snippets
|
||||
# ==============
|
||||
priority -50
|
||||
|
||||
snippet def "#define ..."
|
||||
#define $1
|
||||
endsnippet
|
||||
|
||||
snippet #ifndef "#ifndef ... #define ... #endif"
|
||||
#ifndef ${1/([A-Za-z0-9_]+).*/$1/}
|
||||
#define ${1:SYMBOL} ${2:value}
|
||||
#endif /* ifndef $1 */
|
||||
endsnippet
|
||||
|
||||
snippet #if "#if #endif" b
|
||||
#if ${1:0}
|
||||
${VISUAL}$0
|
||||
#endif
|
||||
endsnippet
|
||||
|
||||
snippet mark "#pragma mark (mark)"
|
||||
#if 0
|
||||
${1:#pragma mark -
|
||||
}#pragma mark $2
|
||||
#endif
|
||||
|
||||
$0
|
||||
endsnippet
|
||||
|
||||
snippet main "main() (main)"
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
${VISUAL}$0
|
||||
return 0;
|
||||
}
|
||||
endsnippet
|
||||
|
||||
snippet for "for loop (for)"
|
||||
for (${2:i} = 0; $2 < ${1:count}; ${3:++$2}) {
|
||||
${VISUAL}$0
|
||||
}
|
||||
endsnippet
|
||||
|
||||
snippet fori "for int loop (fori)"
|
||||
for (${4:int} ${2:i} = 0; $2 < ${1:count}; ${3:++$2}) {
|
||||
${VISUAL}$0
|
||||
}
|
||||
endsnippet
|
||||
|
||||
snippet fora "for-loop" b
|
||||
for (${1:var}; ${2:condition}; `!p
|
||||
if len(t[1]) > 0:
|
||||
snip.rv = t[1].split('=')[0].split()[-1]
|
||||
`++) {
|
||||
|
||||
$0
|
||||
} /* for ($1; $2; `!p if len(t[1]) > 0: snip.rv = t[1].split('=')[0].split()[-1]`++) */
|
||||
endsnippet
|
||||
|
||||
snippet once "Include header once only guard"
|
||||
#ifndef ${1:`!p
|
||||
if not snip.c:
|
||||
import random, string
|
||||
name = re.sub(r'[^A-Za-z0-9]+','_', snip.fn).upper()
|
||||
rand = ''.join(random.sample(string.ascii_letters+string.digits, 8))
|
||||
snip.rv = ('%s_%s' % (name,rand)).upper()
|
||||
else:
|
||||
snip.rv = snip.c`}
|
||||
#define $1
|
||||
|
||||
${VISUAL}$0
|
||||
|
||||
#endif /* end of include guard: $1 */
|
||||
endsnippet
|
||||
|
||||
snippet fprintf "fprintf ..."
|
||||
fprintf(${1:stderr}, "${2:%s}\n"${2/([^%]|%%)*(%.)?.*/(?2:, :\);)/}$3${2/([^%]|%%)*(%.)?.*/(?2:\);)/}
|
||||
endsnippet
|
||||
|
||||
snippet eli "else if .. (eli)"
|
||||
else if (${1:/* condition */}) {
|
||||
${VISUAL}$0
|
||||
}
|
||||
endsnippet
|
||||
|
||||
post_jump "printf_expand_args(snip)"
|
||||
snippet "printf" "printf with auto-expand args" wr
|
||||
printf("$1\n"$2);
|
||||
endsnippet
|
||||
|
||||
snippet st "struct"
|
||||
struct ${1:`!p snip.rv = (snip.basename or "name") + "_t"`} {
|
||||
${0:/* data */}
|
||||
};
|
||||
endsnippet
|
||||
|
||||
snippet fun "function" b
|
||||
${1:void} ${2:function_name}($3)
|
||||
{
|
||||
${VISUAL}$0
|
||||
}
|
||||
endsnippet
|
||||
|
||||
snippet fund "function declaration" b
|
||||
${1:void} ${2:function_name}($3);
|
||||
endsnippet
|
||||
|
||||
global !p
|
||||
def split_line(text):
|
||||
import textwrap
|
||||
lines = textwrap.wrap(text, 78 - 19)
|
||||
output = list()
|
||||
for line in lines:
|
||||
output.append('*' + ' '*19 + line)
|
||||
snip_line = snip.tabstops[4].end[0]
|
||||
snip.buffer.append(output, snip_line + 1)
|
||||
del snip.buffer[snip_line]
|
||||
|
||||
def get_args(arglist):
|
||||
args = [arg.strip() for arg in arglist.split(',') if arg]
|
||||
return args
|
||||
endglobal
|
||||
|
||||
post_jump "if snip.tabstop == 0 : split_line(snip.tabstops[4].current_text)"
|
||||
snippet head "File Header" b
|
||||
/******************************************************************************
|
||||
* File: `!p snip.rv = fn`
|
||||
*
|
||||
* Author: ${2}
|
||||
* Created: `date +%m/%d/%y`
|
||||
* Description: ${4:${VISUAL}}
|
||||
*****************************************************************************/
|
||||
${0}
|
||||
endsnippet
|
||||
|
||||
post_jump "if snip.tabstop == 0 : split_line(snip.tabstops[4].current_text)"
|
||||
snippet func "Function Header"
|
||||
/******************************************************************************
|
||||
* Function: $1
|
||||
* Description: ${4:${VISUAL}}
|
||||
* Where:`!p
|
||||
snip.rv = ""
|
||||
snip >> 2
|
||||
|
||||
args = get_args(t[2])
|
||||
if args:
|
||||
for arg in args:
|
||||
snip.rv += '\n' + '*' + ' '*19 + arg + ' - TODO'
|
||||
snip << 2
|
||||
`
|
||||
* Return: $5
|
||||
* Error: $6
|
||||
*****************************************************************************/
|
||||
${1}($2){
|
||||
${0}
|
||||
}
|
||||
endsnippet
|
||||
# vim:ft=snippets:
|
Reference in New Issue
Block a user