Taylor Bockman
8 years ago
22 changed files with 4526 additions and 1 deletions
@ -0,0 +1,103 @@
|
||||
# This file contains snippets that are always defined. I personally |
||||
# have snippets for signatures and often needed texts |
||||
|
||||
# sligthly lower priority than everything else since specialized versions |
||||
# should overwrite. The user needs to adjust her priority in her snippets to |
||||
# ~-55 so that other filetypes will still overwrite. |
||||
priority -60 |
||||
|
||||
############## |
||||
# NICE BOXES # |
||||
############## |
||||
global !p |
||||
from vimsnippets import foldmarker, make_box, get_comment_format |
||||
endglobal |
||||
|
||||
snippet box "A nice box with the current comment symbol" b |
||||
`!p |
||||
box = make_box(len(t[1])) |
||||
snip.rv = box[0] |
||||
snip += box[1] |
||||
`${1:${VISUAL:content}}`!p |
||||
box = make_box(len(t[1])) |
||||
snip.rv = box[2] |
||||
snip += box[3]` |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet bbox "A nice box over the full width" b |
||||
`!p |
||||
if not snip.c: |
||||
width = int(vim.eval("&textwidth - (virtcol('.') == 1 ? 0 : virtcol('.'))")) or 71 |
||||
box = make_box(len(t[1]), width) |
||||
snip.rv = box[0] |
||||
snip += box[1] |
||||
`${1:${VISUAL:content}}`!p |
||||
box = make_box(len(t[1]), width) |
||||
snip.rv = box[2] |
||||
snip += box[3]` |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet fold "Insert a vim fold marker" b |
||||
`!p snip.rv = get_comment_format()[0]` ${1:Fold description} `!p snip.rv = foldmarker()[0]`${2:1} `!p snip.rv = get_comment_format()[2]` |
||||
endsnippet |
||||
|
||||
snippet foldc "Insert a vim fold close marker" b |
||||
`!p snip.rv = get_comment_format()[0]` ${2:1}`!p snip.rv = foldmarker()[1]` `!p snip.rv = get_comment_format()[2]` |
||||
endsnippet |
||||
|
||||
snippet foldp "Insert a vim fold marker pair" b |
||||
`!p snip.rv = get_comment_format()[0]` ${1:Fold description} `!p snip.rv = foldmarker()[0]` `!p snip.rv = get_comment_format()[2]` |
||||
${2:${VISUAL:Content}} |
||||
`!p snip.rv = get_comment_format()[0]` `!p snip.rv = foldmarker()[1]` $1 `!p snip.rv = get_comment_format()[2]` |
||||
endsnippet |
||||
|
||||
########################## |
||||
# LOREM IPSUM GENERATORS # |
||||
########################## |
||||
snippet lorem "Lorem Ipsum - 50 Words" b |
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod |
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At |
||||
vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, |
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. |
||||
endsnippet |
||||
|
||||
########################## |
||||
# VIM MODELINE GENERATOR # |
||||
########################## |
||||
# See advice on `:help 'tabstop'` for why these values are set. Uses second |
||||
# modeline form ('set') to work in languages with comment terminators |
||||
# (/* like C */). |
||||
snippet modeline "Vim modeline" |
||||
vim`!v ':set '. (&expandtab ? printf('et sw=%i ts=%i', &sw, &ts) : printf('noet sts=%i sw=%i ts=%i', &sts, &sw, &ts)) . (&tw ? ' tw='. &tw : '') . ':'` |
||||
endsnippet |
||||
|
||||
######### |
||||
# DATES # |
||||
######### |
||||
snippet date "YYYY-MM-DD" w |
||||
`!v strftime("%F")` |
||||
endsnippet |
||||
|
||||
snippet ddate "Month DD, YYYY" w |
||||
`!v strftime("%b %d, %Y")` |
||||
endsnippet |
||||
|
||||
snippet diso "ISO format datetime" w |
||||
`!v strftime("%F %H:%M:%S%z")` |
||||
endsnippet |
||||
|
||||
snippet time "hh:mm" w |
||||
`!v strftime("%H:%M")` |
||||
endsnippet |
||||
|
||||
snippet datetime "YYYY-MM-DD hh:mm" w |
||||
`!v strftime("%Y-%m-%d %H:%M")` |
||||
endsnippet |
||||
|
||||
snippet todo "TODO comment" bw |
||||
`!p snip.rv=get_comment_format()[0]` ${2:TODO}: $0${3: <${4:`!v strftime('%d-%m-%y')`}${5:, `!v g:snips_author`}>} `!p snip.rv=get_comment_format()[2]` |
||||
endsnippet |
||||
|
||||
# vim:ft=snippets: |
@ -0,0 +1,99 @@
|
||||
########################################################################### |
||||
# TextMate 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 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 |
||||
|
||||
snippet printf "printf .. (printf)" |
||||
printf("${1:%s}\n"${1/([^%]|%%)*(%.)?.*/(?2:, :\);)/}$2${1/([^%]|%%)*(%.)?.*/(?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 |
||||
|
||||
# vim:ft=snippets: |
@ -0,0 +1,110 @@
|
||||
priority -50 |
||||
|
||||
extends c |
||||
|
||||
# We want to overwrite everything in parent ft. |
||||
priority -49 |
||||
########################################################################### |
||||
# Global functions # |
||||
########################################################################### |
||||
|
||||
global !p |
||||
|
||||
def write_docstring_args(arglist, snip): |
||||
args = str(arglist).split(',') |
||||
|
||||
if len(args) > 1: |
||||
c = 0 |
||||
for arg in args: |
||||
if c == 0: |
||||
snip.rv += arg |
||||
c = 1 |
||||
else: |
||||
snip += '* : %s' % arg.strip() |
||||
else: |
||||
snip.rv = args[0] |
||||
|
||||
|
||||
endglobal |
||||
|
||||
########################################################################### |
||||
# TextMate Snippets # |
||||
########################################################################### |
||||
snippet beginend "$1.begin(), $1.end() (beginend)" |
||||
${1:v}${1/^.*?(-)?(>)?$/(?2::(?1:>:.))/}begin(), $1${1/^.*?(-)?(>)?$/(?2::(?1:>:.))/}end() |
||||
endsnippet |
||||
|
||||
snippet cl "class .. (class)" |
||||
class ${1:`!p snip.rv = snip.basename or "name"`} |
||||
{ |
||||
public: |
||||
${1/(\w+).*/$1/} (${2:arguments}); |
||||
virtual ~${1/(\w+).*/$1/} (); |
||||
|
||||
private: |
||||
${0:/* data */} |
||||
}; |
||||
endsnippet |
||||
|
||||
snippet ns "namespace .. (namespace)" |
||||
namespace${1/.+/ /m}${1:`!p snip.rv = snip.basename or "name"`} |
||||
{ |
||||
${VISUAL}$0 |
||||
}${1/.+/ \/* /m}$1${1/.+/ *\/ /m} |
||||
endsnippet |
||||
|
||||
snippet readfile "read file (readF)" |
||||
std::vector<char> v; |
||||
if (FILE *fp = fopen(${1:"filename"}, "r")) |
||||
{ |
||||
char buf[1024]; |
||||
while(size_t len = fread(buf, 1, sizeof(buf), fp)) |
||||
v.insert(v.end(), buf, buf + len); |
||||
fclose(fp); |
||||
} |
||||
endsnippet |
||||
|
||||
snippet map "std::map (map)" |
||||
std::map<${1:key}, ${2:value}> map$0; |
||||
endsnippet |
||||
|
||||
snippet vector "std::vector (v)" |
||||
std::vector<${1:char}> v$0; |
||||
endsnippet |
||||
|
||||
snippet tp "template <typename ..> (template)" |
||||
template <typename ${1:_InputIter}> |
||||
endsnippet |
||||
|
||||
snippet cla "An entire .h generator" b |
||||
#ifndef ${2:`!v substitute(vim_snippets#Filename('$1_H','ClassName'),'.*','\U&\E','')`} |
||||
#define $2 |
||||
|
||||
class ${1:`!v substitute(substitute(vim_snippets#Filename('$1','ClassName'),'^.','\u&',''), '_\(\w\)', '\u\1', 'g')`} |
||||
{ |
||||
private: |
||||
$3 |
||||
|
||||
public: |
||||
$1(); |
||||
virtual ~$1(); |
||||
}; |
||||
|
||||
#endif /* $2 */ |
||||
endsnippet |
||||
|
||||
|
||||
snippet fnc "Basic c++ doxygen function template" b |
||||
/** |
||||
* @brief: ${4:brief} |
||||
* |
||||
* @param: `!p write_docstring_args(t[3],snip)` |
||||
* |
||||
* @return: `!p snip.rv = t[1]` |
||||
*/ |
||||
${1:ReturnType} ${2:FunctionName}(${3:param}) |
||||
{ |
||||
${0:FunctionBody} |
||||
} |
||||
endsnippet |
||||
# vim:ft=snippets: |
@ -0,0 +1,493 @@
|
||||
priority -50 |
||||
|
||||
snippet p "padding" |
||||
padding: ${1:0};$0 |
||||
endsnippet |
||||
|
||||
snippet m "margin" |
||||
margin: ${1:0};$0 |
||||
endsnippet |
||||
|
||||
snippet bd "border" |
||||
border: ${1:0};$0 |
||||
endsnippet |
||||
|
||||
snippet d "display" |
||||
display: ${1:none};$0 |
||||
endsnippet |
||||
|
||||
snippet bg "background" |
||||
background: ${1:none};$0 |
||||
endsnippet |
||||
|
||||
snippet ff "font-family" |
||||
font-family: ${1:"Helvetica Neue", Helvetica, Arial, sans-serif};$0 |
||||
endsnippet |
||||
|
||||
snippet h "height" |
||||
height: ${1:auto};$0 |
||||
endsnippet |
||||
|
||||
snippet w "width" |
||||
width: ${1:auto};$0 |
||||
endsnippet |
||||
|
||||
snippet pos "position" |
||||
position: ${1:relative};$0 |
||||
endsnippet |
||||
|
||||
snippet tt "text-transform" |
||||
text-transform: ${1:none};$0 |
||||
endsnippet |
||||
|
||||
snippet ! "!important CSS (!)" |
||||
!important |
||||
endsnippet |
||||
|
||||
snippet tsh "text-shadow: color-hex x y blur (text)" |
||||
text-shadow: ${1:${2:color} ${3:offset-x} ${4:offset-y} ${5:blur}};$0 |
||||
endsnippet |
||||
|
||||
snippet bxsh "box-shadow: color-hex x y blur (text)" |
||||
box-shadow: ${1:${2:offset-x} ${3:offset-y} ${4:blur} ${5:spread} ${6:color}};$0 |
||||
endsnippet |
||||
|
||||
# |
||||
# Colors |
||||
# |
||||
|
||||
snippet rgb "color rgb" |
||||
rgb(${1:255}, ${2:255}, ${3:255})$0 |
||||
endsnippet |
||||
|
||||
snippet rgba "color rgba" |
||||
rgba(${1:255}, ${2:255}, ${3:255}, ${4:0.5})$0 |
||||
endsnippet |
||||
|
||||
snippet hsl "color hsl" |
||||
hsl(${1:360}, ${2:100}%, ${3:100}%)$0 |
||||
endsnippet |
||||
|
||||
snippet hsla "color hsla" |
||||
hsla(${1:360}, ${2:100}%, ${3:100}%, ${4:0.5})$0 |
||||
endsnippet |
||||
|
||||
# |
||||
# Selectors |
||||
# |
||||
|
||||
snippet :fc |
||||
:first-child |
||||
endsnippet |
||||
|
||||
snippet :lc |
||||
:last-child |
||||
endsnippet |
||||
|
||||
snippet :nc |
||||
:nth-child($0) |
||||
endsnippet |
||||
|
||||
snippet :nlc |
||||
:nth-last-child($0) |
||||
endsnippet |
||||
|
||||
snippet :oc |
||||
:only-child |
||||
endsnippet |
||||
|
||||
# |
||||
# Pseudo-elements |
||||
# |
||||
|
||||
snippet :a |
||||
:after |
||||
endsnippet |
||||
|
||||
snippet :b |
||||
:before |
||||
endsnippet |
||||
|
||||
snippet ::a |
||||
::after |
||||
endsnippet |
||||
|
||||
snippet ::b |
||||
::before |
||||
endsnippet |
||||
|
||||
########################################################################### |
||||
# Most of these came from TextMate # |
||||
########################################################################### |
||||
|
||||
snippet background "background-attachment: scroll:fixed (background)" |
||||
background-attachment: ${1:scroll/fixed};$0 |
||||
endsnippet |
||||
|
||||
snippet background "background-color: color-hex (background)" |
||||
background-color: #${1:DDD};$0 |
||||
endsnippet |
||||
|
||||
snippet background "background-color: color-name (background)" |
||||
background-color: ${1:red};$0 |
||||
endsnippet |
||||
|
||||
snippet background "background-color: color-rgb (background)" |
||||
background-color: rgb(${1:255},${2:255},${3:255});$0 |
||||
endsnippet |
||||
|
||||
snippet background "background-color: transparent (background)" |
||||
background-color: transparent;$0 |
||||
endsnippet |
||||
|
||||
snippet background "background-image: none (background)" |
||||
background-image: none;$0 |
||||
endsnippet |
||||
|
||||
snippet background "background-image: url (background)" |
||||
background-image: url($1);$0 |
||||
endsnippet |
||||
|
||||
snippet background "background-position: position (background)" |
||||
background-position: ${1:top left/top center/top right/center left/center center/center right/bottom left/bottom center/bottom right/x-% y-%/x-pos y-pos};$0 |
||||
endsnippet |
||||
|
||||
snippet background "background-repeat: r:r-x:r-y:n-r (background)" |
||||
background-repeat: ${1:repeat/repeat-x/repeat-y/no-repeat};$0 |
||||
endsnippet |
||||
|
||||
snippet background "background: color image repeat attachment position (background)" |
||||
background:${6: #${1:DDD}} url($2) ${3:repeat/repeat-x/repeat-y/no-repeat} ${4:scroll/fixed} ${5:top left/top center/top right/center left/center center/center right/bottom left/bottom center/bottom right/x-% y-%/x-pos y-pos};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-bottom-color: size style color (border)" |
||||
border-bottom-color: #${1:999};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-bottom-style: size style color (border)" |
||||
border-bottom-style: ${1:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-bottom-width: size style color (border)" |
||||
border-bottom-width: ${1:1}px ${2:solid} #${3:999};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-bottom: size style color (border)" |
||||
border-bottom: ${1:1}px ${2:solid} #${3:999};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-color: color (border)" |
||||
border-color: ${1:999};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-left-color: color (border)" |
||||
border-right-color: #${1:999};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-left-style: style (border)" |
||||
border-left-style: ${1:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-left-width: size (border)" |
||||
border-left-width: ${1:1}px |
||||
endsnippet |
||||
|
||||
snippet border "border-left: size style color (border)" |
||||
border-left: ${1:1}px ${2:solid} #${3:999};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-right-color: color (border)" |
||||
border-right-color: #${1:999};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-right-style: style (border)" |
||||
border-right-style: ${1:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-right-width: size (border)" |
||||
border-right-width: ${1:1}px |
||||
endsnippet |
||||
|
||||
snippet border "border-right: size style color (border)" |
||||
border-right: ${1:1}px ${2:solid} #${3:999};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-style: style (border)" |
||||
border-style: ${1:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-top-color: color (border)" |
||||
border-top-color: #${1:999};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-top-style: style (border)" |
||||
border-top-style: ${1:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-top-width: size (border)" |
||||
border-top-width: ${1:1}px |
||||
endsnippet |
||||
|
||||
snippet border "border-top: size style color (border)" |
||||
border-top: ${1:1}px ${2:solid} #${3:999};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border-width: width (border)" |
||||
border-width: ${1:1px};$0 |
||||
endsnippet |
||||
|
||||
snippet border "border: size style color (border)" |
||||
border: ${1:1px} ${2:solid} #${3:999};$0 |
||||
endsnippet |
||||
|
||||
snippet clear "clear: value (clear)" |
||||
clear: ${1:left/right/both/none};$0 |
||||
endsnippet |
||||
|
||||
snippet color "color: color-hex (color)" |
||||
color: #${1:DDD};$0 |
||||
endsnippet |
||||
|
||||
snippet color "color: color-name (color)" |
||||
color: ${1:red};$0 |
||||
endsnippet |
||||
|
||||
snippet color "color: color-rgb (color)" |
||||
color: rgb(${1:255},${2:255},${3:255});$0 |
||||
endsnippet |
||||
|
||||
snippet cursor "cursor: type (cursor)" |
||||
cursor: ${1:default/auto/crosshair/pointer/move/*-resize/text/wait/help};$0 |
||||
endsnippet |
||||
|
||||
snippet cursor "cursor: url (cursor)" |
||||
cursor: url($1);$0 |
||||
endsnippet |
||||
|
||||
snippet direction "direction: ltr|rtl (direction)" |
||||
direction: ${1:ltr|rtl};$0 |
||||
endsnippet |
||||
|
||||
snippet display "display: block (display)" |
||||
display: block;$0 |
||||
endsnippet |
||||
|
||||
snippet display "display: common-types (display)" |
||||
display: ${1:none/inline/block/list-item/run-in/compact/marker};$0 |
||||
endsnippet |
||||
|
||||
snippet display "display: inline (display)" |
||||
display: inline;$0 |
||||
endsnippet |
||||
|
||||
snippet display "display: table-types (display)" |
||||
display: ${1:table/inline-table/table-row-group/table-header-group/table-footer-group/table-row/table-column-group/table-column/table-cell/table-caption};$0 |
||||
endsnippet |
||||
|
||||
snippet float "float: left:right:none (float)" |
||||
float: ${1:left/right/none};$0 |
||||
endsnippet |
||||
|
||||
snippet font "font-family: family (font)" |
||||
font-family: ${1:Arial, "MS Trebuchet"}, ${2:sans-}serif;$0 |
||||
endsnippet |
||||
|
||||
snippet font "font-size: size (font)" |
||||
font-size: ${1:100%};$0 |
||||
endsnippet |
||||
|
||||
snippet font "font-style: normal:italic:oblique (font)" |
||||
font-style: ${1:normal/italic/oblique};$0 |
||||
endsnippet |
||||
|
||||
snippet font "font-variant: normal:small-caps (font)" |
||||
font-variant: ${1:normal/small-caps};$0 |
||||
endsnippet |
||||
|
||||
snippet font "font-weight: weight (font)" |
||||
font-weight: ${1:normal/bold};$0 |
||||
endsnippet |
||||
|
||||
snippet font "font: style variant weight size:line-height font -family (font)" |
||||
font: ${1:normal/italic/oblique} ${2:normal/small-caps} ${3:normal/bold} ${4:1em/1.5em} ${5:Arial}, ${6:sans-}serif;$0 |
||||
endsnippet |
||||
|
||||
snippet font "font: size font (font)" |
||||
font: ${1:75%} ${2:"Lucida Grande", "Trebuchet MS", Verdana,} ${3:sans-}serif;$0 |
||||
endsnippet |
||||
|
||||
snippet letter "letter-spacing: length-em (letter)" |
||||
letter-spacing: $1em;$0 |
||||
endsnippet |
||||
|
||||
snippet letter "letter-spacing: length-px (letter)" |
||||
letter-spacing: $1px;$0 |
||||
endsnippet |
||||
|
||||
snippet list "list-style-image: url (list)" |
||||
list-style-image: url($1);$0 |
||||
endsnippet |
||||
|
||||
snippet list "list-style-position: pos (list)" |
||||
list-style-position: ${1:inside/outside};$0 |
||||
endsnippet |
||||
|
||||
snippet list "list-style-type: asian (list)" |
||||
list-style-type: ${1:cjk-ideographic/hiragana/katakana/hiragana-iroha/katakana-iroha};$0 |
||||
endsnippet |
||||
|
||||
snippet list "list-style-type: marker(list)" |
||||
list-style-type: ${1:none/disc/circle/square};$0 |
||||
endsnippet |
||||
|
||||
snippet list "list-style-type: numeric (list)" |
||||
list-style-type: ${1:decimal/decimal-leading-zero/zero};$0 |
||||
endsnippet |
||||
|
||||
snippet list "list-style-type: other (list)" |
||||
list-style-type: ${1:hebrew/armenian/georgian};$0 |
||||
endsnippet |
||||
|
||||
snippet list "list-style-type: roman-alpha-greek (list)" |
||||
list-style-type: ${1:lower-roman/upper-roman/lower-alpha/upper-alpha/lower-greek/lower-latin/upper-latin};$0 |
||||
endsnippet |
||||
|
||||
snippet list "list-style: type position image (list)" |
||||
list-style: ${1:none/disc/circle/square/decimal/zero} ${2:inside/outside} url($3);$0 |
||||
endsnippet |
||||
|
||||
snippet margin "margin-bottom: length (margin)" |
||||
margin-bottom: ${1:20px};$0 |
||||
endsnippet |
||||
|
||||
snippet margin "margin-left: length (margin)" |
||||
margin-left: ${1:20px};$0 |
||||
endsnippet |
||||
|
||||
snippet margin "margin-right: length (margin)" |
||||
margin-right: ${1:20px};$0 |
||||
endsnippet |
||||
|
||||
snippet margin "margin-top: length (margin)" |
||||
margin-top: ${1:20px};$0 |
||||
endsnippet |
||||
|
||||
snippet margin "margin: all (margin)" |
||||
margin: ${1:20px};$0 |
||||
endsnippet |
||||
|
||||
snippet margin "margin: T R B L (margin)" |
||||
margin: ${1:20px} ${2:0px} ${3:40px} ${4:0px};$0 |
||||
endsnippet |
||||
|
||||
snippet margin "margin: V H (margin)" |
||||
margin: ${1:20px} ${2:0px};$0 |
||||
endsnippet |
||||
|
||||
snippet marker "marker-offset: auto (marker)" |
||||
marker-offset: auto;$0 |
||||
endsnippet |
||||
|
||||
snippet marker "marker-offset: length (marker)" |
||||
marker-offset: ${1:10px};$0 |
||||
endsnippet |
||||
|
||||
snippet overflow "overflow: type (overflow)" |
||||
overflow: ${1:visible/hidden/scroll/auto};$0 |
||||
endsnippet |
||||
|
||||
snippet padding "padding-bottom: length (margin)" |
||||
padding-bottom: ${1:20px};$0 |
||||
endsnippet |
||||
|
||||
snippet padding "padding-left: length (margin)" |
||||
padding-left: ${1:20px};$0 |
||||
endsnippet |
||||
|
||||
snippet padding "padding-right: length (margin)" |
||||
padding-right: ${1:20px};$0 |
||||
endsnippet |
||||
|
||||
snippet padding "padding-top: length (margin)" |
||||
padding-top: ${1:20px};$0 |
||||
endsnippet |
||||
|
||||
snippet padding "padding: T R B L (padding)" |
||||
padding: ${1:20px} ${2:0px} ${3:40px} ${4:0px};$0 |
||||
endsnippet |
||||
|
||||
snippet padding "padding: V H (padding)" |
||||
padding: ${1:20px} ${2:0px};$0 |
||||
endsnippet |
||||
|
||||
snippet padding "padding: all (padding)" |
||||
padding: ${1:20px};$0 |
||||
endsnippet |
||||
|
||||
snippet position "position: type (position)" |
||||
position: ${1:static/relative/absolute/fixed};$0 |
||||
endsnippet |
||||
|
||||
snippet { "properties { } ( } )" |
||||
{ |
||||
/* $1 */ |
||||
$0 |
||||
|
||||
endsnippet |
||||
|
||||
snippet scrollbar "scrollbar" |
||||
scrollbar-base-color: ${1:#CCCCCC};${2: |
||||
scrollbar-arrow-color: ${3:#000000}; |
||||
scrollbar-track-color: ${4:#999999}; |
||||
scrollbar-3dlight-color: ${5:#EEEEEE}; |
||||
scrollbar-highlight-color: ${6:#FFFFFF}; |
||||
scrollbar-face-color: ${7:#CCCCCC}; |
||||
scrollbar-shadow-color: ${9:#999999}; |
||||
scrollbar-darkshadow-color: ${8:#666666};} |
||||
endsnippet |
||||
|
||||
snippet selection "selection" |
||||
$1::-moz-selection, |
||||
$1::selection { |
||||
color: ${2:inherit}; |
||||
background: ${3:inherit}; |
||||
} |
||||
endsnippet |
||||
|
||||
snippet text "text-align: left:center:right (txt)" |
||||
text-align: ${1:left/right/center/justify};$0 |
||||
endsnippet |
||||
|
||||
snippet text "text-decoration: none:underline:overline:line-through:blink (text)" |
||||
text-decoration: ${1:none/underline/overline/line-through/blink};$0 |
||||
endsnippet |
||||
|
||||
snippet text "text-indent: length (text)" |
||||
text-indent: ${1:10}px;$0 |
||||
endsnippet |
||||
|
||||
snippet text "text-transform: capitalize:upper:lower (text)" |
||||
text-transform: ${1:capitalize/uppercase/lowercase};$0 |
||||
endsnippet |
||||
|
||||
snippet vertical "vertical-align: type (vertical)" |
||||
vertical-align: ${1:baseline/sub/super/top/text-top/middle/bottom/text-bottom/length/%};$0 |
||||
endsnippet |
||||
|
||||
snippet visibility "visibility: type (visibility)" |
||||
visibility: ${1:visible/hidden/collapse};$0 |
||||
endsnippet |
||||
|
||||
snippet white "white-space: normal:pre:nowrap (white)" |
||||
white-space: ${1:normal/pre/nowrap};$0 |
||||
endsnippet |
||||
|
||||
snippet word "word-spacing: length (word)" |
||||
word-spacing: ${1:10px};$0 |
||||
endsnippet |
||||
|
||||
snippet z "z-index: index (z)" |
||||
z-index: $1;$0 |
||||
endsnippet |
||||
|
||||
# vim:ft=snippets: |
@ -0,0 +1,115 @@
|
||||
# Snippets for Go |
||||
|
||||
priority -50 |
||||
|
||||
# when to abbriviate and when not? |
||||
# b doesn't work here, because it ignores whitespace |
||||
# optional local name? |
||||
snippet /^import/ "Import declaration" r |
||||
import ( |
||||
"${1:package}" |
||||
) |
||||
endsnippet |
||||
|
||||
snippet /^package/ "Package declaration" r |
||||
// Package $1 provides ... |
||||
package ${1:main} |
||||
endsnippet |
||||
|
||||
# Mostly converted from: https://github.com/AlanQuatermain/go-tmbundle |
||||
snippet /^cons/ "Constants declaration" r |
||||
const ( |
||||
${1:constant}${2/(.+)/ /}${2:type} = ${0:value} |
||||
) |
||||
endsnippet |
||||
|
||||
snippet /^con/ "Constant declaration" r |
||||
const ${1:name}${2/(.+)/ /}${2:type} = ${0:value} |
||||
endsnippet |
||||
|
||||
snippet iota "Iota constant generator" b |
||||
const ( |
||||
${1:constant}${2/(.+)/ /}${2:type} = iota |
||||
) |
||||
endsnippet |
||||
|
||||
snippet struct "Struct declaration" b |
||||
type ${1:Struct} struct { |
||||
${0:${VISUAL}} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet interface "Interface declaration" b |
||||
type ${1:Interface} interface { |
||||
${0:${VISUAL}} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet if "If statement" b |
||||
if ${1:condition}${1/(.+)/ /}{ |
||||
${0:${VISUAL}} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet switch "Switch statement" b |
||||
switch ${1:expression}${1/(.+)/ /}{ |
||||
case$0 |
||||
} |
||||
endsnippet |
||||
|
||||
# functions |
||||
snippet /^main/ "Main function" r |
||||
func main() { |
||||
${0:${VISUAL}} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet /^meth/ "Method" r |
||||
func (${1:receiver} ${2:type}) ${3:name}(${4:params})${5/(.+)/ /}${5:type} { |
||||
${0:${VISUAL}} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet func "Function" b |
||||
func ${1:name}(${2:params})${3/(.+)/ /}${3:type} { |
||||
${0:${VISUAL}} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet funch "HTTP handler" b |
||||
func ${1:handler}(${2:w} http.ResponseWriter, ${3:r} *http.Request) { |
||||
${0:${VISUAL}} |
||||
} |
||||
endsnippet |
||||
|
||||
# types and variables |
||||
snippet map "Map type" b |
||||
map[${1:keytype}]${2:valtype} |
||||
endsnippet |
||||
|
||||
snippet : "Variable declaration :=" b |
||||
${1:name} := ${0:value} |
||||
endsnippet |
||||
|
||||
snippet var "Variable declaration" b |
||||
var ${1:name}${2/(.+)/ /}${2:type}${3: = ${0:value}} |
||||
endsnippet |
||||
|
||||
snippet vars "Variables declaration" b |
||||
var ( |
||||
${1:name}${2/(.+)/ /}${2:type}${3: = ${0:value} } |
||||
) |
||||
endsnippet |
||||
|
||||
snippet json "JSON field" |
||||
\`json:"${1:displayName}"\` |
||||
endsnippet |
||||
|
||||
# vim:ft=snippets: |
||||
|
||||
# error handling |
||||
snippet err "Basic error handling" b |
||||
if err != nil { |
||||
log.${1:Fatal}(err) |
||||
} |
||||
endsnippet |
@ -0,0 +1,244 @@
|
||||
priority -50 |
||||
|
||||
########################################################################### |
||||
# TextMate Snippets # |
||||
########################################################################### |
||||
|
||||
global !p |
||||
def x(snip): |
||||
if snip.ft.startswith("x"): |
||||
snip.rv = '/' |
||||
else: |
||||
snip.rv = "" |
||||
endglobal |
||||
|
||||
snippet doctype "HTML - 5.0 (doctype)" b |
||||
<!DOCTYPE html> |
||||
|
||||
endsnippet |
||||
|
||||
############# |
||||
# Shortcuts # |
||||
############# |
||||
snippet down "Down (down)" |
||||
↓ |
||||
endsnippet |
||||
|
||||
snippet enter "Enter (enter)" |
||||
⌅ |
||||
endsnippet |
||||
|
||||
snippet escape "Escape (escape)" |
||||
⎋ |
||||
endsnippet |
||||
|
||||
snippet shift "Shift (shift)" |
||||
⇧ |
||||
endsnippet |
||||
|
||||
snippet tab "Tab (tab)" |
||||
⇥ |
||||
endsnippet |
||||
|
||||
snippet up "Up (up)" |
||||
↑ |
||||
endsnippet |
||||
|
||||
snippet return "Return (return)" |
||||
↩ |
||||
endsnippet |
||||
|
||||
snippet right "Right (right)" |
||||
→ |
||||
endsnippet |
||||
|
||||
snippet left "Left (left)" |
||||
← |
||||
endsnippet |
||||
|
||||
############# |
||||
# HTML TAGS # |
||||
############# |
||||
snippet input "Input with Label" w |
||||
<label for="${2:${1/[[:alpha:]]+|( )/(?1:_:\L$0)/g}}">$1</label><input type="${3:text/submit/hidden/button}" name="${4:$2}" value="$5"${6: id="${7:$2}"}`!p x(snip)`> |
||||
endsnippet |
||||
|
||||
snippet input "HTML <input>" w |
||||
<input type="${1:text/submit/hidden/button}" name="${2:some_name}" value="$3"${4: id="${5:$2}"}`!p x(snip)`> |
||||
endsnippet |
||||
|
||||
|
||||
snippet option "Option" w |
||||
<option${1: value="${2:option}"}>${3:$2}</option> |
||||
endsnippet |
||||
|
||||
snippet select "Select Box" w |
||||
<select name="${1:some_name}" id="${2:$1}"${3:${4: multiple}${5: onchange="${6:}"}${7: size="${8:1}"}}> |
||||
${0:${VISUAL}} |
||||
</select> |
||||
endsnippet |
||||
|
||||
|
||||
snippet textarea "HTML <textarea>" w |
||||
<textarea name="${1:Name}" rows="${2:8}" cols="${3:40}">$0</textarea> |
||||
endsnippet |
||||
|
||||
snippet mailto "HTML <a mailto: >" w |
||||
<a href="mailto:${1:joe@example.com}?subject=${2:feedback}">${3:email me}</a> |
||||
endsnippet |
||||
|
||||
snippet base "HTML <base>" w |
||||
<base href="$1"${2: target="$3"}`!p x(snip)`> |
||||
endsnippet |
||||
|
||||
snippet body "<body>" |
||||
<body> |
||||
${0:${VISUAL}} |
||||
</body> |
||||
endsnippet |
||||
|
||||
snippet div "<div>" w |
||||
<div> |
||||
${0:${VISUAL}} |
||||
</div> |
||||
endsnippet |
||||
|
||||
snippet div. "<div> with class" w |
||||
<div`!p snip.rv=' class="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""`> |
||||
${0:${VISUAL}} |
||||
</div> |
||||
endsnippet |
||||
|
||||
snippet div# "<div> with ID & class" w |
||||
<div`!p snip.rv=' id="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""``!p snip.rv=' class="' if t[2] else ""`${2:name}`!p snip.rv = '"' if t[2] else ""`> |
||||
${0:${VISUAL}} |
||||
</div> |
||||
endsnippet |
||||
|
||||
snippet form "XHTML <form>" w |
||||
<form action="${1:`!p |
||||
snip.rv = (snip.basename or 'unnamed') + '_submit' |
||||
`}" method="${2:get}" accept-charset="utf-8"> |
||||
${0:${VISUAL}} |
||||
</form> |
||||
endsnippet |
||||
|
||||
snippet h1 "XHTML <h1>" w |
||||
<h1>${0:${VISUAL}}</h1> |
||||
endsnippet |
||||
|
||||
snippet h2 "XHTML <h2>" w |
||||
<h2>${0:${VISUAL}}</h2> |
||||
endsnippet |
||||
|
||||
snippet h3 "XHTML <h3>" w |
||||
<h3>${0:${VISUAL}}</h3> |
||||
endsnippet |
||||
|
||||
snippet h4 "XHTML <h4>" w |
||||
<h4>${0:${VISUAL}}</h4> |
||||
endsnippet |
||||
|
||||
snippet h5 "XHTML <h5>" w |
||||
<h5>${0:${VISUAL}}</h5> |
||||
endsnippet |
||||
|
||||
snippet h6 "XHTML <h6>" w |
||||
<h6>${0:${VISUAL}}</h6> |
||||
endsnippet |
||||
|
||||
snippet head "XHTML <head>" |
||||
<head> |
||||
<meta charset="utf-8"> |
||||
<title>${1:`!p snip.rv = snip.basename or "Page Title"`}</title> |
||||
${0:${VISUAL}} |
||||
</head> |
||||
endsnippet |
||||
|
||||
snippet link "XHTML <link>" w |
||||
<link rel="${1:stylesheet}" href="${2:/css/master.css}" type="text/css" media="${3:screen}" title="${4:no title}" charset="${5:utf-8}"`!p x(snip)`> |
||||
endsnippet |
||||
|
||||
snippet meta "XHTML <meta>" w |
||||
<meta name="${1:name}" content="${2:content}"`!p x(snip)`> |
||||
endsnippet |
||||
|
||||
snippet scriptsrc "HTML <script src...>" w |
||||
<script src="$1" charset="${3:utf-8}"></script> |
||||
endsnippet |
||||
|
||||
snippet script "HTML <script>" w |
||||
<script charset="utf-8"> |
||||
${0:${VISUAL}} |
||||
</script> |
||||
endsnippet |
||||
|
||||
snippet span "<span>" w |
||||
<span> ${0:${VISUAL}} </span> |
||||
endsnippet |
||||
|
||||
snippet span. "<span> with class" w |
||||
<span`!p snip.rv=' class="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""`> ${0:${VISUAL}} </span> |
||||
endsnippet |
||||
|
||||
snippet span# "<span> with ID & class" w |
||||
<span`!p snip.rv=' id="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""``!p snip.rv=' class="' if t[2] else ""`${2:name}`!p snip.rv = '"' if t[2] else ""`> ${0:${VISUAL}} </span> |
||||
endsnippet |
||||
|
||||
snippet style "XHTML <style>" w |
||||
<style type="text/css" media="screen"> |
||||
${0:${VISUAL}} |
||||
</style> |
||||
endsnippet |
||||
|
||||
snippet table "XHTML <table>" w |
||||
<table> |
||||
${0:${VISUAL}} |
||||
</table> |
||||
endsnippet |
||||
|
||||
snippet a "Link" w |
||||
<a href="${1:http://www.${2:url.com}}"${3: target="_blank"}>${4:Anchor Text}</a> |
||||
endsnippet |
||||
|
||||
snippet p "paragraph" w |
||||
<p>${0:${VISUAL}}</p> |
||||
endsnippet |
||||
|
||||
snippet li "list item" w |
||||
<li>${0:${VISUAL}}</li> |
||||
endsnippet |
||||
|
||||
snippet ul "unordered list" w |
||||
<ul> |
||||
${0:${VISUAL}} |
||||
</ul> |
||||
endsnippet |
||||
|
||||
snippet td "table cell" w |
||||
<td>${0:${VISUAL}}</td> |
||||
endsnippet |
||||
|
||||
snippet th "table header" w |
||||
<th>${0:${VISUAL}}</th> |
||||
endsnippet |
||||
|
||||
snippet tr "table row" w |
||||
<tr>${0:${VISUAL}}</tr> |
||||
endsnippet |
||||
|
||||
snippet title "XHTML <title>" w |
||||
<title>${1:`!p snip.rv = snip.basename or "Page Title"`}</title> |
||||
endsnippet |
||||
|
||||
snippet fieldset "Fieldset" w |
||||
<fieldset id="${1/[\w\d]+|( )/(?1:_:\L$0\E)/g}" ${2:class="${3:}"}> |
||||
<legend>$1</legend> |
||||
${0:${VISUAL}} |
||||
</fieldset> |
||||
endsnippet |
||||
|
||||
snippet viewport "Responsive viewport meta" w |
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
||||
endsnippet |
||||
# vim:ft=snippets: |
@ -0,0 +1,435 @@
|
||||
priority -50 |
||||
|
||||
# Many of the snippets here use a global option called |
||||
# "g:ultisnips_java_brace_style" which, if set to "nl" will put a newline |
||||
# before '{' braces. |
||||
# Setting "g:ultisnips_java_junit" will change how the test method snippet |
||||
# looks, it is defaulted to junit4, setting this option to 3 will remove the |
||||
# @Test annotation from the method |
||||
|
||||
global !p |
||||
def junit(snip): |
||||
if snip.opt("g:ultisnips_java_junit", "") == "3": |
||||
snip += "" |
||||
else: |
||||
snip.rv += "@Test\n\t" |
||||
|
||||
def nl(snip): |
||||
if snip.opt("g:ultisnips_java_brace_style", "") == "nl": |
||||
snip += "" |
||||
else: |
||||
snip.rv += " " |
||||
def getArgs(group): |
||||
import re |
||||
word = re.compile('[a-zA-Z0-9><.]+ \w+') |
||||
return [i.split(" ") for i in word.findall(group) ] |
||||
|
||||
def camel(word): |
||||
if not word: return '' |
||||
return word[0].upper() + word[1:] |
||||
|
||||
def mixedCase(word): |
||||
if not word: return '' |
||||
return word[0].lower() + word[1:] |
||||
|
||||
endglobal |
||||
|
||||
snippet sleep "try sleep catch" b |
||||
try { |
||||
Thread.sleep(${1:1000}); |
||||
} catch (InterruptedException e){ |
||||
e.printStackTrace(); |
||||
} |
||||
endsnippet |
||||
|
||||
snippet /i|n/ "new primitive or int" br |
||||
${1:int} ${2:i} = ${3:1}; |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet /o|v/ "new Object or variable" br |
||||
${1:Object} ${2:var} = new $1($3); |
||||
endsnippet |
||||
|
||||
snippet f "field" b |
||||
${1:private} ${2:String} ${3:`!p snip.rv = t[2].lower()`}; |
||||
endsnippet |
||||
|
||||
snippet ab "abstract" b |
||||
abstract $0 |
||||
endsnippet |
||||
|
||||
snippet as "assert" b |
||||
assert ${1:test}${2/(.+)/(?1: \: ")/}${2:Failure message}${2/(.+)/(?1:")/}; |
||||
endsnippet |
||||
|
||||
snippet at "assert true" b |
||||
assertTrue(${1:actual}); |
||||
endsnippet |
||||
|
||||
snippet af "assert false" b |
||||
assertFalse(${1:actual}); |
||||
endsnippet |
||||
|
||||
snippet ae "assert equals" b |
||||
assertEquals(${1:expected}, ${2:actual}); |
||||
endsnippet |
||||
|
||||
snippet br "break" |
||||
break; |
||||
|
||||
endsnippet |
||||
|
||||
snippet cs "case" b |
||||
case $1: |
||||
$2 |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet ca "catch" b |
||||
catch (${1:Exception} ${2:e})`!p nl(snip)`{ |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet cle "class extends" b |
||||
public class ${1:`!p |
||||
snip.rv = snip.basename or "untitled"`} ${2:extends ${3:Parent} }${4:implements ${5:Interface} }{ |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet clc "class with constructor, fields, setter and getters" b |
||||
public class `!p |
||||
snip.rv = snip.basename or "untitled"` { |
||||
`!p |
||||
args = getArgs(t[1]) |
||||
if len(args) == 0: snip.rv = "" |
||||
for i in args: |
||||
snip.rv += "\n\tprivate " + i[0] + " " + i[1]+ ";" |
||||
if len(args) > 0: |
||||
snip.rv += "\n"` |
||||
public `!p snip.rv = snip.basename or "unknown"`($1) {`!p |
||||
args = getArgs(t[1]) |
||||
for i in args: |
||||
snip.rv += "\n\t\tthis." + i[1] + " = " + i[1] + ";" |
||||
if len(args) == 0: |
||||
snip.rv += "\n"` |
||||
}$0 |
||||
`!p |
||||
args = getArgs(t[1]) |
||||
if len(args) == 0: snip.rv = "" |
||||
for i in args: |
||||
snip.rv += "\n\tpublic void set" + camel(i[1]) + "(" + i[0] + " " + i[1] + ") {\n" + "\ |
||||
\tthis." + i[1] + " = " + i[1] + ";\n\t}\n" |
||||
|
||||
snip.rv += "\n\tpublic " + i[0] + " get" + camel(i[1]) + "() {\n\ |
||||
\treturn " + i[1] + ";\n\t}\n" |
||||
` |
||||
} |
||||
endsnippet |
||||
|
||||
snippet clc "class with constructor, with field names" b |
||||
public class `!p |
||||
snip.rv = snip.basename or "untitled"` { |
||||
`!p |
||||
args = getArgs(t[1]) |
||||
for i in args: |
||||
snip.rv += "\n\tprivate " + i[0] + " " + i[1]+ ";" |
||||
if len(args) > 0: |
||||
snip.rv += "\n"` |
||||
public `!p snip.rv = snip.basename or "unknown"`($1) {`!p |
||||
args = getArgs(t[1]) |
||||
for i in args: |
||||
snip.rv += "\n\t\tthis.%s = %s;" % (i[1], i[1]) |
||||
if len(args) == 0: |
||||
snip.rv += "\n"` |
||||
} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet clc "class and constructor" b |
||||
public class `!p |
||||
snip.rv = snip.basename or "untitled"` { |
||||
|
||||
public `!p snip.rv = snip.basename or "untitled"`($2) { |
||||
$0 |
||||
} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet cl "class" b |
||||
public class ${1:`!p |
||||
snip.rv = snip.basename or "untitled"`} { |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet cos "constant string" b |
||||
public static final String ${1:var} = "$2";$0 |
||||
endsnippet |
||||
|
||||
snippet co "constant" b |
||||
public static final ${1:String} ${2:var} = $3;$0 |
||||
endsnippet |
||||
|
||||
snippet de "default" b |
||||
default: |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet elif "else if" |
||||
else if ($1)`!p nl(snip)`{ |
||||
$0${VISUAL} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet el "else" w |
||||
else`!p nl(snip)`{ |
||||
$0${VISUAL} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet fi "final" b |
||||
final $0 |
||||
endsnippet |
||||
|
||||
snippet fore "for (each)" b |
||||
for ($1 : $2)`!p nl(snip)`{ |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet fori "for" b |
||||
for (int ${1:i} = 0; $1 < ${2:10}; $1++)`!p nl(snip)`{ |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet for "for" b |
||||
for ($1; $2; $3)`!p nl(snip)`{ |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet if "if" b |
||||
if ($1)`!p nl(snip)`{ |
||||
$0${VISUAL} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet imt "import junit_framework_TestCase;" b |
||||
import junit.framework.TestCase; |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet im "import" b |
||||
import ${1:java}.${2:util}.$0; |
||||
endsnippet |
||||
|
||||
snippet in "interface" b |
||||
interface ${1:`!p snip.rv = snip.basename or "untitled"`} ${2:extends ${3:Parent} }{ |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet cc "constructor call or setter body" |
||||
this.${1:var} = $1; |
||||
endsnippet |
||||
|
||||
snippet list "Collections List" b |
||||
List<${1:String}> ${2:list} = new ${3:Array}List<$1>(); |
||||
endsnippet |
||||
|
||||
snippet map "Collections Map" b |
||||
Map<${1:String}, ${2:String}> ${3:map} = new ${4:Hash}Map<$1, $2>(); |
||||
endsnippet |
||||
|
||||
snippet set "Collections Set" b |
||||
Set<${1:String}> ${2:set} = new ${3:Hash}Set<$1>(); |
||||
endsnippet |
||||
|
||||
snippet /Str?|str/ "String" br |
||||
String $0 |
||||
endsnippet |
||||
|
||||
snippet cn "Constructor" b |
||||
public `!p snip.rv = snip.basename or "untitled"`(${1:}) { |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet cn "constructor, \w fields + assigments" b |
||||
`!p |
||||
args = getArgs(t[1]) |
||||
for i in args: |
||||
snip.rv += "\n\tprivate " + i[0] + " " + i[1]+ ";" |
||||
if len(args) > 0: |
||||
snip.rv += "\n"` |
||||
public `!p snip.rv = snip.basename or "unknown"`($1) {`!p |
||||
args = getArgs(t[1]) |
||||
for i in args: |
||||
snip.rv += "\n\t\tthis.%s = %s;" % (i[1], i[1]) |
||||
if len(args) == 0: |
||||
snip.rv += "\n"` |
||||
} |
||||
endsnippet |
||||
|
||||
snippet j.b "java_beans_" i |
||||
java.beans. |
||||
endsnippet |
||||
|
||||
snippet j.i "java_io" i |
||||
java.io. |
||||
endsnippet |
||||
|
||||
snippet j.m "java_math" i |
||||
java.math. |
||||
endsnippet |
||||
|
||||
snippet j.n "java_net_" i |
||||
java.net. |
||||
endsnippet |
||||
|
||||
snippet j.u "java_util_" i |
||||
java.util. |
||||
endsnippet |
||||
|
||||
snippet main "method (main)" b |
||||
public static void main(String[] args)`!p nl(snip)`{ |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet try "try/catch" b |
||||
try { |
||||
$1${VISUAL} |
||||
} catch(${2:Exception} ${3:e}){ |
||||
${4:e.printStackTrace();} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet mt "method throws" b |
||||
${1:private} ${2:void} ${3:method}($4) ${5:throws $6 }{ |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet m "method" b |
||||
${1:private} ${2:void} ${3:method}($4) { |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet md "Method With javadoc" b |
||||
/** |
||||
* ${7:Short Description}`!p |
||||
for i in getArgs(t[4]): |
||||
snip.rv += "\n\t * @param " + i[1] + " usage..."` |
||||
*`!p |
||||
if "throws" in t[5]: |
||||
snip.rv = "\n\t * @throws " + t[6] |
||||
else: |
||||
snip.rv = ""``!p |
||||
if not "void" in t[2]: |
||||
snip.rv = "\n\t * @return object" |
||||
else: |
||||
snip.rv = ""` |
||||
**/ |
||||
${1:public} ${2:void} ${3:method}($4) ${5:throws $6 }{ |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet /get(ter)?/ "getter" br |
||||
public ${1:String} get${2:Name}() { |
||||
return `!p snip.rv = mixedCase(t[2])`; |
||||
} |
||||
endsnippet |
||||
|
||||
snippet /set(ter)?/ "setter" br |
||||
public void set${1:Name}(${2:String} `!p snip.rv = mixedCase(t[1])`) { |
||||
this.`!p snip.rv = mixedCase(t[1])` = `!p snip.rv = mixedCase(t[1])`; |
||||
} |
||||
endsnippet |
||||
|
||||
snippet /se?tge?t|ge?tse?t|gs/ "setter and getter" br |
||||
public void set${1:Name}(${2:String} `!p snip.rv = mixedCase(t[1])`) { |
||||
this.`!p snip.rv = mixedCase(t[1])` = `!p snip.rv = mixedCase(t[1])`; |
||||
}`!p snip.rv += "\n"` |
||||
public $2 get$1() { |
||||
return `!p snip.rv = mixedCase(t[1])`; |
||||
} |
||||
endsnippet |
||||
|
||||
snippet pa "package" b |
||||
package $0 |
||||
endsnippet |
||||
|
||||
snippet p "print" b |
||||
System.out.print($1);$0 |
||||
endsnippet |
||||
|
||||
snippet pl "println" b |
||||
System.out.println($1);$0 |
||||
endsnippet |
||||
|
||||
snippet pr "private" b |
||||
private $0 |
||||
endsnippet |
||||
|
||||
snippet po "protected" b |
||||
protected $0 |
||||
endsnippet |
||||
|
||||
snippet pu "public" b |
||||
public $0 |
||||
endsnippet |
||||
|
||||
snippet re "return" b |
||||
return $0 |
||||
endsnippet |
||||
|
||||
snippet st "static" |
||||
static $0 |
||||
endsnippet |
||||
|
||||
snippet sw "switch" b |
||||
switch ($1)`!p nl(snip)`{ |
||||
case $2: $0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet sy "synchronized" |
||||
synchronized $0 |
||||
endsnippet |
||||
|
||||
snippet tc "test case" |
||||
public class ${1:`!p snip.rv = snip.basename or "untitled"`} extends ${2:TestCase}`!p nl(snip)`{ |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet t "test" b |
||||
`!p junit(snip)`public void test${1:Name}() { |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet tt "test throws" b |
||||
`!p junit(snip)`public void test${1:Name}() ${2:throws Exception }{ |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet th "throw" b |
||||
throw new $0 |
||||
endsnippet |
||||
|
||||
snippet wh "while" b |
||||
while ($1)`!p nl(snip)`{ |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
# vim:ft=snippets: |
@ -0,0 +1,51 @@
|
||||
priority -50 |
||||
|
||||
# JSDoc snippets |
||||
|
||||
snippet /* "A JSDoc comment" b |
||||
/** |
||||
* ${1:${VISUAL}}$0 |
||||
*/ |
||||
endsnippet |
||||
|
||||
snippet @au "@author email (First Last)" |
||||
@author ${1:`!v g:snips_author`} [${2:`!v g:snips_author_email`}] |
||||
endsnippet |
||||
|
||||
snippet @li "@license Description" |
||||
@license ${1:MIT}$0 |
||||
endsnippet |
||||
|
||||
snippet @ver "@version Semantic version" |
||||
@version ${1:0.1.0}$0 |
||||
endsnippet |
||||
|
||||
snippet @fileo "@fileoverview Description" b |
||||
/** |
||||
* @fileoverview ${1:${VISUAL:A description of the file}}$0 |
||||
*/ |
||||
endsnippet |
||||
|
||||
snippet @constr "@constructor" |
||||
@constructor |
||||
endsnippet |
||||
|
||||
snippet @p "@param {Type} varname Description" |
||||
@param {${1:Type}} ${2:varname} ${3:Description} |
||||
endsnippet |
||||
|
||||
snippet @ret "@return {Type} Description" |
||||
@return {${1:Type}} ${2:Description} |
||||
endsnippet |
||||
|
||||
snippet @pri "@private" |
||||
@private |
||||
endsnippet |
||||
|
||||
snippet @over "@override" |
||||
@override |
||||
endsnippet |
||||
|
||||
snippet @pro "@protected" |
||||
@protected |
||||
endsnippet |
@ -0,0 +1,65 @@
|
||||
priority -50 |
||||
|
||||
snippet #! "shebang" |
||||
#!/usr/bin/env node |
||||
endsnippet |
||||
|
||||
snippet vreq "assign a CommonJS-style module to a var" |
||||
var ${0:${1/(.+\/)*(\w+)(-|\b|$)(\..+$)?/\u$2/g}} = require('$1'); |
||||
endsnippet |
||||
|
||||
snippet ex "module.exports" |
||||
module.exports = $1; |
||||
endsnippet |
||||
|
||||
snippet hcs "http.createServer" |
||||
http.createServer($1).listen($2); |
||||
endsnippet |
||||
|
||||
snippet ncs "net.createServer" |
||||
net.createServer(function(${1:socket}){ |
||||
$1.on('data', function(${3:data}){ |
||||
$4 |
||||
}); |
||||
$1.on('end', function(){ |
||||
$5 |
||||
}); |
||||
}).listen(${6:8124}); |
||||
endsnippet |
||||
|
||||
snippet pipe "pipe" |
||||
pipe(${1:stream})$2 |
||||
endsnippet |
||||
|
||||
# Express snippets |
||||
|
||||
snippet eget "express GET" |
||||
${1:app}.get('$2', $3); |
||||
endsnippet |
||||
|
||||
snippet epost "express POST" |
||||
${1:app}.post('$2', $3); |
||||
endsnippet |
||||
|
||||
snippet eput "express PUT" |
||||
${1:app}.put('$2', $3); |
||||
endsnippet |
||||
|
||||
snippet edelete "express DELETE" |
||||
${1:app}.delete('$2', $3); |
||||
endsnippet |
||||
|
||||
# process snippets |
||||
|
||||
snippet stdout "stdout" |
||||
process.stdout |
||||
endsnippet |
||||
|
||||
snippet stdin "stdin" |
||||
process.stdin |
||||
endsnippet |
||||
|
||||
snippet stderr "stderr" |
||||
process.stderr |
||||
endsnippet |
||||
|
@ -0,0 +1,140 @@
|
||||
priority -50 |
||||
|
||||
############ |
||||
# COMMON # |
||||
############ |
||||
|
||||
# The smart snippets use a global options called |
||||
# "g:ultisnips_javascript.{option}" which can control the format |
||||
# of trailing semicolon, space before function paren, etc. |
||||
|
||||
global !p |
||||
from javascript_snippets import ( |
||||
semi, space_before_function_paren, keyword_spacing |
||||
) |
||||
endglobal |
||||
|
||||
########################################################################### |
||||
# TextMate Snippets # |
||||
########################################################################### |
||||
snippet get "Get Elements" |
||||
getElement${1/(T)|.*/(?1:s)/}By${1:T}${1/(T)|(I)|.*/(?1:agName)(?2:d)/}('$2') |
||||
endsnippet |
||||
|
||||
snippet '':f "object method string" |
||||
'${1:${2:#thing}:${3:click}}': function`!p snip.rv = space_before_function_paren(snip)`(element) { |
||||
${VISUAL}$0 |
||||
}${10:,} |
||||
endsnippet |
||||
|
||||
snippet :f "Object Method" |
||||
${1:method_name}: function`!p snip.rv = space_before_function_paren(snip)`(${3:attribute}) { |
||||
${VISUAL}$0 |
||||
}${10:,} |
||||
endsnippet |
||||
|
||||
snippet :, "Object Value JS" |
||||
${1:value_name}: ${0:value}, |
||||
endsnippet |
||||
|
||||
snippet : "Object key key: 'value'" |
||||
${1:key}: ${2:"${3:value}"}${4:, } |
||||
endsnippet |
||||
|
||||
snippet proto "Prototype (proto)" |
||||
${1:class_name}.prototype.${2:method_name} = function`!p snip.rv = space_before_function_paren(snip)`(${3:first_argument}) { |
||||
${VISUAL}$0 |
||||
}`!p snip.rv = semi(snip)` |
||||
|
||||
endsnippet |
||||
|
||||
snippet fun "function (fun)" w |
||||
function ${1:function_name}`!p snip.rv = space_before_function_paren(snip)`(${2:argument}) { |
||||
${VISUAL}$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet vf "Function assigned to var" |
||||
${1:var }${2:function_name} = function $2`!p snip.rv = space_before_function_paren(snip)`($3) { |
||||
${VISUAL}$0 |
||||
}`!p snip.rv = semi(snip)` |
||||
endsnippet |
||||
|
||||
snippet af "Anonymous Function" i |
||||
function`!p snip.rv = space_before_function_paren(snip)`($1) { |
||||
${VISUAL}$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet iife "Immediately-Invoked Function Expression (iife)" |
||||
(function`!p snip.rv = space_before_function_paren(snip)`(${1:window}) { |
||||
${VISUAL}$0 |
||||
}(${2:$1}))`!p snip.rv = semi(snip)` |
||||
endsnippet |
||||
|
||||
snippet ;fe "Minify safe iife" |
||||
;(function`!p snip.rv = space_before_function_paren(snip)`(${1}) { |
||||
${VISUAL}$0 |
||||
}(${2})) |
||||
endsnippet |
||||
|
||||
snippet timeout "setTimeout function" |
||||
setTimeout(function`!p snip.rv = space_before_function_paren(snip)`() { |
||||
${VISUAL}$0 |
||||
}${2:.bind(${3:this})}, ${1:10})`!p snip.rv = semi(snip)` |
||||
endsnippet |
||||
|
||||
snippet fi "for prop in obj using hasOwnProperty" b |
||||
for`!p snip.rv = keyword_spacing(snip)`(${1:prop} in ${2:obj}){ |
||||
if`!p snip.rv = keyword_spacing(snip)`($2.hasOwnProperty($1)) { |
||||
${VISUAL}$0 |
||||
} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet if "if (condition) { ... }" |
||||
if`!p snip.rv = keyword_spacing(snip)`(${1:true}) { |
||||
${VISUAL}$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet ife "if (condition) { ... } else { ... }" |
||||
if`!p snip.rv = keyword_spacing(snip)`(${1:true}) { |
||||
${VISUAL}$0 |
||||
}`!p snip.rv = keyword_spacing(snip)`else`!p snip.rv = keyword_spacing(snip)`{ |
||||
${2} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet switch |
||||
switch`!p snip.rv = keyword_spacing(snip)`(${VISUAL}${1:expression}) { |
||||
case '${VISUAL}${3:case}': |
||||
${4} |
||||
break`!p snip.rv = semi(snip)` |
||||
${0} |
||||
default: |
||||
${2} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet case "case 'xyz': ... break" |
||||
case`!p snip.rv = keyword_spacing(snip)`'${VISUAL}${1:case}': |
||||
${VISUAL}$0 |
||||
break`!p snip.rv = semi(snip)` |
||||
endsnippet |
||||
|
||||
snippet do "do { ... } while (condition)" |
||||
do`!p snip.rv = keyword_spacing(snip)`{ |
||||
${VISUAL}$0 |
||||
}`!p snip.rv = keyword_spacing(snip)`while`!p snip.rv = keyword_spacing(snip)`(${1:/* condition */})`!p snip.rv = semi(snip)` |
||||
endsnippet |
||||
|
||||
snippet ret "Return statement" |
||||
return ${VISUAL}$0`!p snip.rv = semi(snip)` |
||||
endsnippet |
||||
|
||||
snippet us |
||||
'use strict'`!p snip.rv = semi(snip)` |
||||
endsnippet |
||||
|
||||
# vim:ft=snippets: |
@ -0,0 +1,51 @@
|
||||
priority -50 |
||||
|
||||
snippet s "String" b |
||||
"${1:key}": "${0:value}", |
||||
endsnippet |
||||
|
||||
snippet n "Number" b |
||||
"${1:key}": ${0:value}, |
||||
endsnippet |
||||
|
||||
snippet a "Array" b |
||||
[ |
||||
${VISUAL}$0 |
||||
], |
||||
endsnippet |
||||
|
||||
snippet na "Named array" b |
||||
"${1:key}": [ |
||||
${VISUAL}$0 |
||||
], |
||||
endsnippet |
||||
|
||||
snippet o "Object" b |
||||
{ |
||||
${VISUAL}$0 |
||||
}, |
||||
endsnippet |
||||
|
||||
snippet no "Named object" b |
||||
"${1:key}": { |
||||
${VISUAL}$0 |
||||
}, |
||||
endsnippet |
||||
|
||||
snippet null "Null" b |
||||
"${0:key}": null, |
||||
endsnippet |
||||
|
||||
|
||||
global !p |
||||
def compB(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 b "Bool" b |
||||
"${1:key}": $2`!p snip.rv=compB(t[2], ['true', 'false'])`, |
||||
endsnippet |
@ -0,0 +1,92 @@
|
||||
priority -50 |
||||
|
||||
global !p |
||||
def create_table(snip): |
||||
# retrieving single line from current string and treat it like tabstops count |
||||
placeholders_string = snip.buffer[snip.line].strip().split("x",1) |
||||
rows_amount = int(placeholders_string[0]) |
||||
columns_amount = int(placeholders_string[1]) |
||||
|
||||
# erase current line |
||||
snip.buffer[snip.line] = '' |
||||
|
||||
# create anonymous snippet with expected content and number of tabstops |
||||
anon_snippet_title = ' | '.join(['$' + str(col) for col in range(1,columns_amount+1)]) + "\n" |
||||
anon_snippet_delimiter = ':-|' * (columns_amount-1) + ":-\n" |
||||
anon_snippet_body = "" |
||||
for row in range(1,rows_amount+1): |
||||
anon_snippet_body += ' | '.join(['$' + str(row*columns_amount+col) for col in range(1,columns_amount+1)]) + "\n" |
||||
anon_snippet_table = anon_snippet_title + anon_snippet_delimiter + anon_snippet_body |
||||
|
||||
# expand anonymous snippet |
||||
snip.expand_anon(anon_snippet_table) |
||||
endglobal |
||||
|
||||
########################### |
||||
# Sections and Paragraphs # |
||||
########################### |
||||
snippet sec "Section" b |
||||
# ${1:Section Name} # |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet ssec "Sub Section" b |
||||
## ${1:Section Name} ## |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet sssec "SubSub Section" b |
||||
### ${1:Section Name} ### |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet par "Paragraph" b |
||||
#### ${1:Paragraph Name} #### |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet spar "Paragraph" b |
||||
##### ${1:Paragraph Name} ##### |
||||
$0 |
||||
endsnippet |
||||
|
||||
################ |
||||
# Common stuff # |
||||
################ |
||||
snippet link "Link to something" |
||||
[${1:${VISUAL:Text}}](${3:http://${2:www.url.com}})$0 |
||||
endsnippet |
||||
|
||||
snippet img "Image" |
||||
![${1:pic alt}](${2:path}${3/.+/ "/}${3:opt title}${3/.+/"/})$0 |
||||
endsnippet |
||||
|
||||
snippet ilc "Inline Code" i |
||||
\`$1\`$0 |
||||
endsnippet |
||||
|
||||
snippet cbl "Codeblock" b |
||||
\`\`\` |
||||
$1 |
||||
\`\`\` |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet refl "Reference Link" |
||||
[${1:${VISUAL:Text}}][${2:id}]$0 |
||||
|
||||
[$2]:${4:http://${3:www.url.com}} "${5:$4}" |
||||
endsnippet |
||||
|
||||
snippet fnt "Footnote" |
||||
[^${1:${VISUAL:Footnote}}]$0 |
||||
|
||||
[^$1]:${2:Text} |
||||
endsnippet |
||||
|
||||
post_jump "create_table(snip)" |
||||
snippet "tb(\d+x\d+)" "Customizable table" br |
||||
`!p snip.rv = match.group(1)` |
||||
endsnippet |
||||
|
||||
# vim:ft=snippets: |
@ -0,0 +1,174 @@
|
||||
priority -50 |
||||
|
||||
snippet rs "raise" b |
||||
raise (${1:Not_found}) |
||||
endsnippet |
||||
|
||||
snippet open "open" |
||||
let open ${1:module} in |
||||
${2:e} |
||||
endsnippet |
||||
|
||||
snippet try "try" |
||||
try ${1:e} |
||||
with ${2:Not_found} -> ${3:()} |
||||
endsnippet |
||||
|
||||
snippet ref "ref" |
||||
let ${1:name} = ref ${2:val} in |
||||
${3:e} |
||||
endsnippet |
||||
|
||||
snippet matchl "pattern match on a list" |
||||
match ${1:list} with |
||||
| [] -> ${2:()} |
||||
| x::xs -> ${3:()} |
||||
endsnippet |
||||
|
||||
snippet matcho "pattern match on an option type" |
||||
match ${1:x} with |
||||
| Some(${2:y}) -> ${3:()} |
||||
| None -> ${4:()} |
||||
endsnippet |
||||
|
||||
snippet fun "anonymous function" |
||||
(fun ${1:x} -> ${2:x}) |
||||
endsnippet |
||||
|
||||
snippet cc "commment" |
||||
(* ${1:comment} *) |
||||
endsnippet |
||||
|
||||
snippet let "let .. in binding" |
||||
let ${1:x} = ${2:v} in |
||||
${3:e} |
||||
endsnippet |
||||
|
||||
snippet lr "let rec" |
||||
let rec ${1:f} = |
||||
${2:expr} |
||||
endsnippet |
||||
|
||||
snippet if "if" |
||||
if ${1:(* condition *)} then |
||||
${2:(* A *)} |
||||
else |
||||
${3:(* B *)} |
||||
endsnippet |
||||
|
||||
snippet If "If" |
||||
if ${1:(* condition *)} then |
||||
${2:(* A *)} |
||||
endsnippet |
||||
|
||||
snippet while "while" |
||||
while ${1:(* condition *)} do |
||||
${2:(* A *)} |
||||
done |
||||
endsnippet |
||||
|
||||
snippet for "for" |
||||
for ${1:i} = ${2:1} to ${3:10} do |
||||
${4:(* BODY *)} |
||||
done |
||||
endsnippet |
||||
|
||||
snippet match "match" |
||||
match ${1:(* e1 *)} with |
||||
| ${2:p} -> ${3:e2} |
||||
endsnippet |
||||
|
||||
snippet Match "match" |
||||
match ${1:(* e1 *)} with |
||||
| ${2:p} -> ${3:e2} |
||||
endsnippet |
||||
|
||||
snippet class "class" |
||||
class ${1:name} = object |
||||
${2:methods} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet obj "obj" |
||||
object |
||||
${2:methods} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet Obj "object" |
||||
object (self) |
||||
${2:methods} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet {{ "object functional update" |
||||
{< ${1:x} = ${2:y} >} |
||||
endsnippet |
||||
|
||||
snippet beg "beg" |
||||
begin |
||||
${1:block} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet ml "module instantiantion with functor" |
||||
module ${1:Mod} = ${2:Functor}(${3:Arg}) |
||||
endsnippet |
||||
|
||||
snippet mod "module - no signature" |
||||
module ${1:(* Name *)} = struct |
||||
${2:(* BODY *)} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet Mod "module with signature" |
||||
module ${1:(* Name *)} : ${2:(* SIG *)} = struct |
||||
${3:(* BODY *)} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet sig "anonymous signature" |
||||
sig |
||||
${2:(* BODY *)} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet sigf "functor signature or anonymous functor" |
||||
functor (${1:Arg} : ${2:ARG}) -> ${3:(* BODY *)} |
||||
endsnippet |
||||
|
||||
snippet func "define functor - no signature" |
||||
module ${1:M} (${2:Arg} : ${3:ARG}) = struct |
||||
${4:(* BODY *)} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet Func "define functor - with signature" |
||||
module ${1:M} (${2:Arg} : ${3:ARG}) : ${4:SIG} = struct |
||||
${5:(* BODY *)} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet mot "Declare module signature" |
||||
module type ${1:(* Name *)} = sig |
||||
${2:(* BODY *)} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet module "Module with anonymous signature" |
||||
module ${1:(* Name *)} : sig |
||||
${2:(* SIGNATURE *)} |
||||
end = struct |
||||
${3:(* BODY *)} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet oo "odoc" |
||||
(** ${1:odoc} *) |
||||
endsnippet |
||||
|
||||
snippet qt "inline qtest" |
||||
(*$T ${1:name} |
||||
${2:test} |
||||
*) |
||||
endsnippet |
@ -0,0 +1,712 @@
|
||||
priority -50 |
||||
|
||||
########################################################################### |
||||
# TEXTMATE SNIPPETS # |
||||
########################################################################### |
||||
|
||||
#! header |
||||
snippet #! "Shebang header for python scripts" b |
||||
#!/usr/bin/env python |
||||
# -*- coding: utf-8 -*- |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet ifmain "ifmain" b |
||||
if __name__ == `!p snip.rv = get_quoting_style(snip)`__main__`!p snip.rv = get_quoting_style(snip)`: |
||||
${1:${VISUAL:main()}} |
||||
endsnippet |
||||
|
||||
snippet with "with" b |
||||
with ${1:expr}`!p snip.rv = " as " if t[2] else ""`${2:var}: |
||||
${3:${VISUAL:pass}} |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet for "for loop" b |
||||
for ${1:item} in ${2:iterable}: |
||||
${3:${VISUAL:pass}} |
||||
endsnippet |
||||
|
||||
########## |
||||
# COMMON # |
||||
########## |
||||
|
||||
# The smart def and smart class snippets use a global option called |
||||
# "g:ultisnips_python_style" which, if set to "doxygen" will use doxygen |
||||
# style comments in docstrings. |
||||
|
||||
global !p |
||||
|
||||
NORMAL = 0x1 |
||||
DOXYGEN = 0x2 |
||||
SPHINX = 0x3 |
||||
GOOGLE = 0x4 |
||||
NUMPY = 0x5 |
||||
JEDI = 0x6 |
||||
|
||||
SINGLE_QUOTES = "'" |
||||
DOUBLE_QUOTES = '"' |
||||
|
||||
|
||||
class Arg(object): |
||||
def __init__(self, arg): |
||||
self.arg = arg |
||||
self.name = arg.split('=')[0].strip() |
||||
|
||||
def __str__(self): |
||||
return self.name |
||||
|
||||
def __unicode__(self): |
||||
return self.name |
||||
|
||||
def is_kwarg(self): |
||||
return '=' in self.arg |
||||
|
||||
|
||||
def get_args(arglist): |
||||
args = [Arg(arg) for arg in arglist.split(',') if arg] |
||||
args = [arg for arg in args if arg.name != 'self'] |
||||
|
||||
return args |
||||
|
||||
|
||||
def get_quoting_style(snip): |
||||
style = snip.opt("g:ultisnips_python_quoting_style", "double") |
||||
if style == 'single': |
||||
return SINGLE_QUOTES |
||||
return DOUBLE_QUOTES |
||||
|
||||
def triple_quotes(snip): |
||||
style = snip.opt("g:ultisnips_python_triple_quoting_style") |
||||
if not style: |
||||
return get_quoting_style(snip) * 3 |
||||
return (SINGLE_QUOTES if style == 'single' else DOUBLE_QUOTES) * 3 |
||||
|
||||
def triple_quotes_handle_trailing(snip, quoting_style): |
||||
""" |
||||
Generate triple quoted strings and handle any trailing quote char, |
||||
which might be there from some autoclose/autopair plugin, |
||||
i.e. when expanding ``"|"``. |
||||
""" |
||||
if not snip.c: |
||||
# Do this only once, otherwise the following error would happen: |
||||
# RuntimeError: The snippets content did not converge: … |
||||
_, col = vim.current.window.cursor |
||||
line = vim.current.line |
||||
|
||||
# Handle already existing quote chars after the trigger. |
||||
_ret = quoting_style * 3 |
||||
while True: |
||||
try: |
||||
nextc = line[col] |
||||
except IndexError: |
||||
break |
||||
if nextc == quoting_style and len(_ret): |
||||
_ret = _ret[1:] |
||||
col = col+1 |
||||
else: |
||||
break |
||||
snip.rv = _ret |
||||
else: |
||||
snip.rv = snip.c |
||||
|
||||
def get_style(snip): |
||||
style = snip.opt("g:ultisnips_python_style", "normal") |
||||
|
||||
if style == "doxygen": return DOXYGEN |
||||
elif style == "sphinx": return SPHINX |
||||
elif style == "google": return GOOGLE |
||||
elif style == "numpy": return NUMPY |
||||
elif style == "jedi": return JEDI |
||||
else: return NORMAL |
||||
|
||||
|
||||
def format_arg(arg, style): |
||||
if style == DOXYGEN: |
||||
return "@param %s TODO" % arg |
||||
elif style == SPHINX: |
||||
return ":param %s: TODO" % arg |
||||
elif style == NORMAL: |
||||
return ":%s: TODO" % arg |
||||
elif style == GOOGLE: |
||||
return "%s (TODO): TODO" % arg |
||||
elif style == JEDI: |
||||
return ":type %s: TODO" % arg |
||||
elif style == NUMPY: |
||||
return "%s : TODO" % arg |
||||
|
||||
|
||||
def format_return(style): |
||||
if style == DOXYGEN: |
||||
return "@return: TODO" |
||||
elif style in (NORMAL, SPHINX, JEDI): |
||||
return ":returns: TODO" |
||||
elif style == GOOGLE: |
||||
return "Returns: TODO" |
||||
|
||||
|
||||
def write_docstring_args(args, snip): |
||||
if not args: |
||||
snip.rv += ' {0}'.format(triple_quotes(snip)) |
||||
return |
||||
|
||||
snip.rv += '\n' + snip.mkline('', indent='') |
||||
|
||||
style = get_style(snip) |
||||
|
||||
if style == GOOGLE: |
||||
write_google_docstring_args(args, snip) |
||||
elif style == NUMPY: |
||||
write_numpy_docstring_args(args, snip) |
||||
else: |
||||
for arg in args: |
||||
snip += format_arg(arg, style) |
||||
|
||||
|
||||
def write_google_docstring_args(args, snip): |
||||
kwargs = [arg for arg in args if arg.is_kwarg()] |
||||
args = [arg for arg in args if not arg.is_kwarg()] |
||||
|
||||
if args: |
||||
snip += "Args:" |
||||
snip.shift() |
||||
for arg in args: |
||||
snip += format_arg(arg, GOOGLE) |
||||
snip.unshift() |
||||
snip.rv += '\n' + snip.mkline('', indent='') |
||||
|
||||
if kwargs: |
||||
snip += "Kwargs:" |
||||
snip.shift() |
||||
for kwarg in kwargs: |
||||
snip += format_arg(kwarg, GOOGLE) |
||||
snip.unshift() |
||||
snip.rv += '\n' + snip.mkline('', indent='') |
||||
|
||||
|
||||
def write_numpy_docstring_args(args, snip): |
||||
if args: |
||||
snip += "Parameters" |
||||
snip += "----------" |
||||
|
||||
kwargs = [arg for arg in args if arg.is_kwarg()] |
||||
args = [arg for arg in args if not arg.is_kwarg()] |
||||
|
||||
if args: |
||||
for arg in args: |
||||
snip += format_arg(arg, NUMPY) |
||||
if kwargs: |
||||
for kwarg in kwargs: |
||||
snip += format_arg(kwarg, NUMPY) + ', optional' |
||||
snip.rv += '\n' + snip.mkline('', indent='') |
||||
|
||||
|
||||
def write_init_body(args, parents, snip): |
||||
parents = [p.strip() for p in parents.split(",")] |
||||
parents = [p for p in parents if p != 'object'] |
||||
|
||||
for p in parents: |
||||
snip += p + ".__init__(self)" |
||||
|
||||
if parents: |
||||
snip.rv += '\n' + snip.mkline('', indent='') |
||||
|
||||
for arg in args: |
||||
snip += "self._%s = %s" % (arg, arg) |
||||
|
||||
|
||||
def write_slots_args(args, snip): |
||||
args = ['"_%s"' % arg for arg in args] |
||||
snip += '__slots__ = (%s,)' % ', '.join(args) |
||||
|
||||
|
||||
def write_function_docstring(t, snip): |
||||
""" |
||||
Writes a function docstring with the current style. |
||||
|
||||
:param t: The values of the placeholders |
||||
:param snip: UltiSnips.TextObjects.SnippetUtil object instance |
||||
""" |
||||
snip.rv = "" |
||||
snip >> 1 |
||||
|
||||
args = get_args(t[2]) |
||||
if args: |
||||
write_docstring_args(args, snip) |
||||
|
||||
style = get_style(snip) |
||||
|
||||
if style == NUMPY: |
||||
snip += 'Returns' |
||||
snip += '-------' |
||||
snip += 'TODO' |
||||
else: |
||||
snip += format_return(style) |
||||
snip.rv += '\n' + snip.mkline('', indent='') |
||||
snip += triple_quotes(snip) |
||||
|
||||
def get_dir_and_file_name(snip): |
||||
return os.getcwd().split(os.sep)[-1] + '.' + snip.basename |
||||
|
||||
endglobal |
||||
|
||||
######################################## |
||||
# Class & Special Method Name Snippets # |
||||
######################################## |
||||
|
||||
snippet class "class with docstrings" b |
||||
class ${1:MyClass}(${2:object}): |
||||
|
||||
`!p snip.rv = triple_quotes(snip)`${3:Docstring for $1. }`!p snip.rv = triple_quotes(snip)` |
||||
|
||||
def __init__(self$4): |
||||
`!p snip.rv = triple_quotes(snip)`${5:TODO: to be defined1.}`!p |
||||
snip.rv = "" |
||||
snip >> 2 |
||||
|
||||
args = get_args(t[4]) |
||||
|
||||
write_docstring_args(args, snip) |
||||
if args: |
||||
snip.rv += '\n' + snip.mkline('', indent='') |
||||
snip += '{0}'.format(triple_quotes(snip)) |
||||
|
||||
write_init_body(args, t[2], snip) |
||||
` |
||||
$0 |
||||
endsnippet |
||||
|
||||
|
||||
snippet slotclass "class with slots and docstrings" b |
||||
class ${1:MyClass}(${2:object}): |
||||
|
||||
`!p snip.rv = triple_quotes(snip)`${3:Docstring for $1. }`!p snip.rv = triple_quotes(snip)` |
||||
`!p |
||||
snip >> 1 |
||||
args = get_args(t[4]) |
||||
write_slots_args(args, snip) |
||||
` |
||||
|
||||
def __init__(self$4): |
||||
`!p snip.rv = triple_quotes(snip)`${5:TODO: to be defined.}`!p |
||||
snip.rv = "" |
||||
snip >> 2 |
||||
|
||||
args = get_args(t[4]) |
||||
|
||||
write_docstring_args(args, snip) |
||||
if args: |
||||
snip.rv += '\n' + snip.mkline('', indent='') |
||||
snip += triple_quotes(snip) |
||||
|
||||
write_init_body(args, t[2], snip) |
||||
` |
||||
$0 |
||||
endsnippet |
||||
|
||||
|
||||
snippet contain "methods for emulating a container type" b |
||||
def __len__(self): |
||||
${1:pass} |
||||
|
||||
def __getitem__(self, key): |
||||
${2:pass} |
||||
|
||||
def __setitem__(self, key, value): |
||||
${3:pass} |
||||
|
||||
def __delitem__(self, key): |
||||
${4:pass} |
||||
|
||||
def __iter__(self): |
||||
${5:pass} |
||||
|
||||
def __reversed__(self): |
||||
${6:pass} |
||||
|
||||
def __contains__(self, item): |
||||
${7:pass} |
||||
endsnippet |
||||
|
||||
|
||||
snippet context "context manager methods" b |
||||
def __enter__(self): |
||||
${1:pass} |
||||
|
||||
def __exit__(self, exc_type, exc_value, traceback): |
||||
${2:pass} |
||||
endsnippet |
||||
|
||||
|
||||
snippet attr "methods for customizing attribute access" b |
||||
def __getattr__(self, name): |
||||
${1:pass} |
||||
|
||||
def __setattr__(self, name, value): |
||||
${2:pass} |
||||
|
||||
def __delattr__(self, name): |
||||
${3:pass} |
||||
endsnippet |
||||
|
||||
|
||||
snippet desc "methods implementing descriptors" b |
||||
def __get__(self, instance, owner): |
||||
${1:pass} |
||||
|
||||
def __set__(self, instance, value): |
||||
${2:pass} |
||||
|
||||
def __delete__(self, instance): |
||||
${3:pass} |
||||
endsnippet |
||||
|
||||
|
||||
snippet cmp "methods implementing rich comparison" |
||||
def __eq__(self, other): |
||||
${1:pass} |
||||
|
||||
def __ne__(self, other): |
||||
${2:pass} |
||||
|
||||
def __lt__(self, other): |
||||
${3:pass} |
||||
|
||||
def __le__(self, other): |
||||
${4:pass} |
||||
|
||||
def __gt__(self, other): |
||||
${5:pass} |
||||
|
||||
def __ge__(self, other): |
||||
${6:pass} |
||||
|
||||
def __cmp__(self, other): |
||||
${7:pass} |
||||
endsnippet |
||||
|
||||
|
||||
snippet repr "methods implementing string representation" |
||||
def __repr__(self): |
||||
${1:pass} |
||||
|
||||
def __str__(self): |
||||
${2:pass} |
||||
|
||||
def __unicode__(self): |
||||
${3:pass} |
||||
endsnippet |
||||
|
||||
|
||||
# note: reflected operands and augmented arithmeitc assignements have been |
||||
# intentionally ommited to reduce verbosity. |
||||
snippet numeric "methods for emulating a numeric type" b |
||||
def __add__(self, other): |
||||
${1:pass} |
||||
|
||||
def __sub__(self, other): |
||||
${2:pass} |
||||
|
||||
def __mul__(self, other): |
||||
${3:pass} |
||||
|
||||
def __div__(self, other): |
||||
${4:pass} |
||||
|
||||
def __truediv__(self, other): |
||||
${5:pass} |
||||
|
||||
def __floordiv__(self, other): |
||||
${6:pass} |
||||
|
||||
|
||||
def __mod__(self, other): |
||||
${7:pass} |
||||
|
||||
def __divmod__(self, other): |
||||
${8:pass} |
||||
|
||||
def __pow__(self, other): |
||||
${9:pass} |
||||
|
||||
|
||||
def __lshift__(self, other): |
||||
${10:pass} |
||||
|
||||
def __rshift__(self, other): |
||||
${11:pass} |
||||
|
||||
def __and__(self, other): |
||||
${12:pass} |
||||
|
||||
def __xor__(self, other): |
||||
${13:pass} |
||||
|
||||
def __or__(self, other): |
||||
${14:pass} |
||||
|
||||
|
||||
def __neg__(self): |
||||
${15:pass} |
||||
|
||||
def __pos__(self): |
||||
${16:pass} |
||||
|
||||
def __abs__(self): |
||||
${17:pass} |
||||
|
||||
def __invert__(self): |
||||
${18:pass} |
||||
|
||||
|
||||
def __complex__(self): |
||||
${19:pass} |
||||
|
||||
def __int__(self): |
||||
${20:pass} |
||||
|
||||
def __long__(self): |
||||
${21:pass} |
||||
|
||||
def __float__(self): |
||||
${22:pass} |
||||
|
||||
|
||||
def __oct__(self): |
||||
${22:pass} |
||||
|
||||
def __hex__(self): |
||||
${23:pass} |
||||
|
||||
|
||||
def __index__(self): |
||||
${24:pass} |
||||
|
||||
def __coerce__(self, other): |
||||
${25:pass} |
||||
endsnippet |
||||
|
||||
snippet deff |
||||
def ${1:fname}(`!p snip.rv = vim.eval('indent(".") ? "self" : ""')`$2): |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet def "function with docstrings" b |
||||
def ${1:function}(`!p |
||||
if snip.indent: |
||||
snip.rv = 'self' + (", " if len(t[2]) else "")`${2:arg1}): |
||||
`!p snip.rv = triple_quotes(snip)`${4:TODO: Docstring for $1.}`!p |
||||
write_function_docstring(t, snip) ` |
||||
${5:${VISUAL:pass}} |
||||
endsnippet |
||||
|
||||
|
||||
snippet defc "class method with docstrings" b |
||||
@classmethod |
||||
def ${1:function}(`!p |
||||
if snip.indent: |
||||
snip.rv = 'cls' + (", " if len(t[2]) else "")`${2:arg1}): |
||||
`!p snip.rv = triple_quotes(snip)`${4:TODO: Docstring for $1.}`!p |
||||
write_function_docstring(t, snip) ` |
||||
${5:${VISUAL:pass}} |
||||
endsnippet |
||||
|
||||
|
||||
snippet defs "static method with docstrings" b |
||||
@staticmethod |
||||
def ${1:function}(${2:arg1}): |
||||
`!p snip.rv = triple_quotes(snip)`${4:TODO: Docstring for $1.}`!p |
||||
write_function_docstring(t, snip) ` |
||||
${5:${VISUAL:pass}} |
||||
endsnippet |
||||
|
||||
|
||||
# doesn't expand when there is a word in front |
||||
snippet /(^|(?<=\W))\./ "self." r |
||||
self. |
||||
endsnippet |
||||
|
||||
snippet from "from module import name" b |
||||
from ${1:module} import ${2:Stuff} |
||||
endsnippet |
||||
|
||||
|
||||
############## |
||||
# PROPERTIES # |
||||
############## |
||||
snippet roprop "Read Only Property" b |
||||
@property |
||||
def ${1:name}(self): |
||||
${2:return self._$1}$0 |
||||
endsnippet |
||||
|
||||
snippet rwprop "Read write property" b |
||||
def ${1:name}(): |
||||
`!p snip.rv = triple_quotes(snip) if t[2] else '' |
||||
`${2:TODO: Docstring for $1.}`!p |
||||
if t[2]: |
||||
snip >> 1 |
||||
|
||||
style = get_style(snip) |
||||
snip.rv += '\n' + snip.mkline('', indent='') |
||||
snip += format_return(style) |
||||
snip.rv += '\n' + snip.mkline('', indent='') |
||||
snip += triple_quotes(snip) |
||||
else: |
||||
snip.rv = ""` |
||||
def fget(self): |
||||
return self._$1$0 |
||||
|
||||
def fset(self, value): |
||||
self._$1 = value |
||||
return locals() |
||||
|
||||
$1 = property(**$1(), doc=$1.__doc__) |
||||
endsnippet |
||||
|
||||
|
||||
#################### |
||||
# If / Else / Elif # |
||||
#################### |
||||
snippet if "If" b |
||||
if ${1:condition}: |
||||
${2:${VISUAL:pass}} |
||||
endsnippet |
||||
|
||||
snippet ife "If / Else" b |
||||
if ${1:condition}: |
||||
${2:${VISUAL:pass}} |
||||
else: |
||||
${3:pass} |
||||
endsnippet |
||||
|
||||
snippet ifee "If / Elif / Else" b |
||||
if ${1:condition}: |
||||
${2:${VISUAL:pass}} |
||||
elif ${3:condition}: |
||||
${4:pass} |
||||
else: |
||||
${5:pass} |
||||
endsnippet |
||||
|
||||
|
||||
########################## |
||||
# Try / Except / Finally # |
||||
########################## |
||||
snippet try "Try / Except" b |
||||
try: |
||||
${1:${VISUAL:pass}} |
||||
except ${2:Exception} as ${3:e}: |
||||
${4:raise $3} |
||||
endsnippet |
||||
|
||||
snippet trye "Try / Except / Else" b |
||||
try: |
||||
${1:${VISUAL:pass}} |
||||
except ${2:Exception} as ${3:e}: |
||||
${4:raise $3} |
||||
else: |
||||
${5:pass} |
||||
endsnippet |
||||
|
||||
snippet tryf "Try / Except / Finally" b |
||||
try: |
||||
${1:${VISUAL:pass}} |
||||
except ${2:Exception} as ${3:e}: |
||||
${4:raise $3} |
||||
finally: |
||||
${5:pass} |
||||
endsnippet |
||||
|
||||
snippet tryef "Try / Except / Else / Finally" b |
||||
try: |
||||
${1:${VISUAL:pass}} |
||||
except${2: ${3:Exception} as ${4:e}}: |
||||
${5:raise} |
||||
else: |
||||
${6:pass} |
||||
finally: |
||||
${7:pass} |
||||
endsnippet |
||||
|
||||
|
||||
###################### |
||||
# Assertions & Tests # |
||||
###################### |
||||
|
||||
snippet ae "Assert equal" b |
||||
self.assertEqual(${1:${VISUAL:first}},${2:second}) |
||||
endsnippet |
||||
|
||||
snippet at "Assert True" b |
||||
self.assertTrue(${1:${VISUAL:expression}}) |
||||
endsnippet |
||||
|
||||
snippet af "Assert False" b |
||||
self.assertFalse(${1:${VISUAL:expression}}) |
||||
endsnippet |
||||
|
||||
snippet aae "Assert almost equal" b |
||||
self.assertAlmostEqual(${1:${VISUAL:first}},${2:second}) |
||||
endsnippet |
||||
|
||||
snippet ar "Assert raises" b |
||||
self.assertRaises(${1:exception}, ${2:${VISUAL:func}}${3/.+/, /}${3:arguments}) |
||||
endsnippet |
||||
|
||||
snippet an "Assert is None" b |
||||
self.assertIsNone(${1:${VISUAL:expression}}) |
||||
endsnippet |
||||
|
||||
snippet ann "Assert is not None" b |
||||
self.assertIsNotNone(${1:${VISUAL:expression}}) |
||||
endsnippet |
||||
|
||||
snippet testcase "pyunit testcase" b |
||||
class Test${1:Class}(${2:unittest.TestCase}): |
||||
|
||||
`!p snip.rv = triple_quotes(snip)`${3:Test case docstring.}`!p snip.rv = triple_quotes(snip)` |
||||
|
||||
def setUp(self): |
||||
${4:pass} |
||||
|
||||
def tearDown(self): |
||||
${5:pass} |
||||
|
||||
def test_${6:name}(self): |
||||
${7:${VISUAL:pass}} |
||||
endsnippet |
||||
|
||||
snippet " "triple quoted string (double quotes)" b |
||||
""" |
||||
${1:${VISUAL:doc}} |
||||
`!p triple_quotes_handle_trailing(snip, '"')` |
||||
endsnippet |
||||
|
||||
snippet ' "triple quoted string (single quotes)" b |
||||
''' |
||||
${1:${VISUAL:doc}} |
||||
`!p triple_quotes_handle_trailing(snip, "'")` |
||||
endsnippet |
||||
|
||||
snippet doc "doc block (triple quotes)" |
||||
`!p snip.rv = triple_quotes(snip)` |
||||
${1:${VISUAL:doc}} |
||||
`!p snip.rv = triple_quotes(snip)` |
||||
endsnippet |
||||
|
||||
snippet pmdoc "pocoo style module doc string" b |
||||
# -*- coding: utf-8 -*- |
||||
""" |
||||
`!p snip.rv = get_dir_and_file_name(snip)` |
||||
`!p snip.rv = '~' * len(get_dir_and_file_name(snip))` |
||||
|
||||
${1:DESCRIPTION} |
||||
|
||||
:copyright: (c) `date +%Y` by ${2:YOUR_NAME}. |
||||
:license: ${3:LICENSE_NAME}, see LICENSE for more details. |
||||
""" |
||||
$0 |
||||
endsnippet |
||||
|
||||
# vim:ft=snippets: |
@ -0,0 +1,178 @@
|
||||
priority -50 |
||||
|
||||
global !p |
||||
import os |
||||
from vimsnippets import complete |
||||
|
||||
FIELD_TYPES = [ |
||||
'character', |
||||
'data.frame', |
||||
'integer', |
||||
'list', |
||||
'logical', |
||||
'matrix', |
||||
'numeric', |
||||
'vector'] |
||||
endglobal |
||||
|
||||
snippet #! "Hashbang for Rscript (#!)" b |
||||
#!/usr/bin/env Rscript |
||||
endsnippet |
||||
|
||||
snippet setwd "Set workingdir" b |
||||
setwd("${1:`!p snip.rv = os.getcwd()`}") |
||||
endsnippet |
||||
|
||||
snippet as "Apply type on variable" w |
||||
as.$1`!p snip.rv = complete(t[1], FIELD_TYPES)`($2${VISUAL}) |
||||
endsnippet |
||||
|
||||
snippet is "Test type on variable" w |
||||
is.$1`!p snip.rv = complete(t[1], FIELD_TYPES)`($2${VISUAL}) |
||||
endsnippet |
||||
|
||||
snippet dl "Download and install a package" b |
||||
download.file("${1:${VISUAL:url to package}}", destfile = "${2:${1/.*\/(\S*)$/(?1:$1)/ga}}") |
||||
install.packages("$2", type = "source", repos = NULL) |
||||
library("${3:${2/^(\w+)_.*$/(?1:$1)/ga}}") |
||||
endsnippet |
||||
|
||||
snippet lib "Import a library" |
||||
library(${0:package}) |
||||
endsnippet |
||||
|
||||
snippet req "Require a file" |
||||
require(${0:package}) |
||||
endsnippet |
||||
|
||||
snippet source "Source a file" |
||||
source('${0:file}') |
||||
endsnippet |
||||
|
||||
snippet if "If statement" |
||||
if ($1) { |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet eif "Else-If statement" |
||||
else if ($1) { |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet el "Else statement" |
||||
else { |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet ife "if .. else" |
||||
if ($1) { |
||||
$2 |
||||
} else { |
||||
$3 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet wh "while loop" |
||||
while($1) { |
||||
$2 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet for "for loop" |
||||
for (${1:item} in ${2:list}) { |
||||
$3 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet fun "Function definition" |
||||
${1:name} <- function ($2) { |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet ret "Return call" |
||||
return($0) |
||||
endsnippet |
||||
|
||||
snippet df "Data frame" |
||||
${1:name}[${2:rows}, ${0:cols}] |
||||
endsnippet |
||||
|
||||
snippet c "c function" |
||||
c(${0:items}) |
||||
endsnippet |
||||
|
||||
snippet li "list function" |
||||
list(${0:items}) |
||||
endsnippet |
||||
|
||||
snippet mat "matrix function" |
||||
matrix(${1:data}, nrow = ${2:rows}, ncol = ${0:cols}) |
||||
endsnippet |
||||
|
||||
snippet apply "apply function" |
||||
apply(${1:array}, ${2:margin}, ${0:function}) |
||||
endsnippet |
||||
|
||||
snippet lapply "lapply function" |
||||
lapply(${1:list}, ${0:function}) |
||||
endsnippet |
||||
|
||||
snippet sapply "sapply function" |
||||
sapply(${1:list}, ${0:function}) |
||||
endsnippet |
||||
|
||||
snippet vapply "vapply function" |
||||
vapply(${1:list}, ${2:function}, ${0:type}) |
||||
endsnippet |
||||
|
||||
snippet mapply "mapply function" |
||||
mapply(${1:function}, ${0:...}) |
||||
endsnippet |
||||
|
||||
snippet tapply "tapply function" |
||||
tapply(${1:vector}, ${2:index}, ${0:function}) |
||||
endsnippet |
||||
|
||||
snippet rapply "rapply function" |
||||
rapply(${1:list}, ${0:function}) |
||||
endsnippet |
||||
|
||||
snippet pl "Plot function" |
||||
plot(${1:x}, ${0:y}) |
||||
endsnippet |
||||
|
||||
snippet ggp "ggplot2 plot" |
||||
ggplot(${1:data}, aes(${0:aesthetics})) |
||||
endsnippet |
||||
|
||||
snippet fis "Fisher test" |
||||
fisher.test(${1:x}, ${0:y}) |
||||
endsnippet |
||||
|
||||
snippet chi "Chi Squared test" |
||||
chisq.test(${1:x}, ${0:y}) |
||||
endsnippet |
||||
|
||||
snippet tt "t-test" |
||||
t.test(${1:x}, ${0:y}) |
||||
endsnippet |
||||
|
||||
snippet wil "Wilcox test" |
||||
wilcox.test(${1:x}, ${0:y}) |
||||
endsnippet |
||||
|
||||
snippet cor "Correlation test" |
||||
cor.test(${1:x}, ${0:y}) |
||||
endsnippet |
||||
|
||||
snippet fte "FTE test" |
||||
var.test(${1:x}, ${0:y}) |
||||
endsnippet |
||||
|
||||
snippet kvt "KV test" |
||||
kv.test(${1:x}, ${0:y}) |
||||
endsnippet |
@ -0,0 +1,894 @@
|
||||
priority -50 |
||||
|
||||
snippet anaf "accepts_nested_attributes_for" |
||||
accepts_nested_attributes_for :${1:association_name}${2:${3:, :allow_destroy => true}${4:, :reject_if => proc \{ |obj| ${5:obj.blank?} \}}} |
||||
|
||||
endsnippet |
||||
|
||||
snippet tcbi "Create binary column" |
||||
t.binary :${1:title}${2:, :limit => ${3:2}.megabytes} |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet tcb "Create boolean column" |
||||
t.boolean :${1:title} |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet clac "Create controller class" |
||||
class ${1:Model}Controller < ApplicationController |
||||
before_filter :find_${2:model} |
||||
|
||||
$0 |
||||
|
||||
private |
||||
def find_$2 |
||||
@$2 = ${3:$1}.find(params[:id]) if params[:id] |
||||
end |
||||
end |
||||
endsnippet |
||||
|
||||
snippet tcda "Create date column" |
||||
t.date :${1:title} |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet tcdt "Create datetime column" |
||||
t.datetime :${1:title} |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet tcd "Create decimal column" |
||||
t.decimal :${1:title}${2:${3:, :precision => ${4:10}}${5:, :scale => ${6:2}}} |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet tcf "Create float column" |
||||
t.float :${1:title} |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet clact "Create functional test class" |
||||
require 'test_helper' |
||||
|
||||
class ${1:Model}ControllerTest < ActionController::TestCase |
||||
test$0 |
||||
end |
||||
|
||||
endsnippet |
||||
|
||||
snippet tci "Create integer column" |
||||
t.integer :${1:title} |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet tcl "Create lock_version column" |
||||
t.integer :lock_version, :null => false, :default => 0 |
||||
$0 |
||||
endsnippet |
||||
|
||||
# FIXME: handling literal bracket pair inside of nested tab groups? |
||||
snippet tcr "Create references column" |
||||
t.references :${1:taggable}${2:, :polymorphic => ${3:{ :default => '${4:Photo}' \}}} |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet resources "Create resources controller class" |
||||
class ${1:Model}sController < ApplicationController |
||||
before_filter :find_${1/./\l$0/}, :only => [:show, :edit, :update, :destroy] |
||||
|
||||
# GET /${1/./\l$0/}s |
||||
# GET /${1/./\l$0/}s.xml |
||||
def index |
||||
@${1/./\l$0/}s = ${1:Model}.all |
||||
|
||||
respond_to do |wants| |
||||
wants.html # index.html.erb |
||||
wants.xml { render :xml => @${1/./\l$0/}s } |
||||
end |
||||
end |
||||
|
||||
# GET /${1/./\l$0/}s/1 |
||||
# GET /${1/./\l$0/}s/1.xml |
||||
def show |
||||
respond_to do |wants| |
||||
wants.html # show.html.erb |
||||
wants.xml { render :xml => @${1/./\l$0/} } |
||||
end |
||||
end |
||||
|
||||
# GET /${1/./\l$0/}s/new |
||||
# GET /${1/./\l$0/}s/new.xml |
||||
def new |
||||
@${1/./\l$0/} = ${1:Model}.new |
||||
|
||||
respond_to do |wants| |
||||
wants.html # new.html.erb |
||||
wants.xml { render :xml => @${1/./\l$0/} } |
||||
end |
||||
end |
||||
|
||||
# GET /${1/./\l$0/}s/1/edit |
||||
def edit |
||||
end |
||||
|
||||
# POST /${1/./\l$0/}s |
||||
# POST /${1/./\l$0/}s.xml |
||||
def create |
||||
@${1/./\l$0/} = ${1:Model}.new(params[:${1/./\l$0/}]) |
||||
|
||||
respond_to do |wants| |
||||
if @${1/./\l$0/}.save |
||||
flash[:notice] = '${1:Model} was successfully created.' |
||||
wants.html { redirect_to(@${1/./\l$0/}) } |
||||
wants.xml { render :xml => @${1/./\l$0/}, :status => :created, :location => @${1/./\l$0/} } |
||||
else |
||||
wants.html { render :action => "new" } |
||||
wants.xml { render :xml => @${1/./\l$0/}.errors, :status => :unprocessable_entity } |
||||
end |
||||
end |
||||
end |
||||
|
||||
# PUT /${1/./\l$0/}s/1 |
||||
# PUT /${1/./\l$0/}s/1.xml |
||||
def update |
||||
respond_to do |wants| |
||||
if @${1/./\l$0/}.update(params[:${1/./\l$0/}]) |
||||
flash[:notice] = '${1:Model} was successfully updated.' |
||||
wants.html { redirect_to(@${1/./\l$0/}) } |
||||
wants.xml { head :ok } |
||||
else |
||||
wants.html { render :action => "edit" } |
||||
wants.xml { render :xml => @${1/./\l$0/}.errors, :status => :unprocessable_entity } |
||||
end |
||||
end |
||||
end |
||||
|
||||
# DELETE /${1/./\l$0/}s/1 |
||||
# DELETE /${1/./\l$0/}s/1.xml |
||||
def destroy |
||||
@${1/./\l$0/}.destroy |
||||
|
||||
respond_to do |wants| |
||||
wants.html { redirect_to(${1/./\l$0/}s_url) } |
||||
wants.xml { head :ok } |
||||
end |
||||
end |
||||
|
||||
private |
||||
def find_${1/./\l$0/} |
||||
@${1/./\l$0/} = ${1:Model}.find(params[:id]) |
||||
end |
||||
|
||||
end |
||||
|
||||
endsnippet |
||||
|
||||
snippet tcs "Create string column" |
||||
t.string :${1:title} |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet tct "Create text column" |
||||
t.text :${1:title} |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet tcti "Create time column" |
||||
t.time :${1:title} |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet tcts "Create timestamp column" |
||||
t.timestamp :${1:title} |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet tctss "Create timestamps columns" |
||||
t.timestamps |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet mcol "Migration Create Column (mcc)" |
||||
t.column ${1:title}, :${2:string} |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet mccc "Migration Create Column Continue (mccc)" |
||||
t.column ${1:title}, :${2:string} |
||||
mccc$0 |
||||
endsnippet |
||||
|
||||
snippet mtab "Migration Drop Create Table (mdct)" |
||||
drop_table :${1:table}${2: [press tab twice to generate create_table]} |
||||
endsnippet |
||||
|
||||
snippet mcol "Migration Remove and Add Column (mrac)" |
||||
remove_column :${1:table}, :${2:column}${3: [press tab twice to generate add_column]} |
||||
endsnippet |
||||
|
||||
snippet rdb "RAILS_DEFAULT_LOGGER.debug (rdb)" |
||||
RAILS_DEFAULT_LOGGER.debug "${1:message}"$0 |
||||
endsnippet |
||||
|
||||
snippet tre "Table column(s) rename" |
||||
t.rename(:${1:old_column_name}, :${2:new_column_name}) |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet art "Test Assert Redirected To (art)" |
||||
assert_redirected_to ${2::action => "${1:index}"} |
||||
endsnippet |
||||
|
||||
snippet asre "Test Assert Response (are)" |
||||
assert_response :${1:success}, @response.body$0 |
||||
endsnippet |
||||
|
||||
snippet aftc "after_create" |
||||
after_create $0 |
||||
endsnippet |
||||
|
||||
snippet aftd "after_destroy" |
||||
after_destroy $0 |
||||
endsnippet |
||||
|
||||
snippet afts "after_save" |
||||
after_save $0 |
||||
endsnippet |
||||
|
||||
snippet aftu "after_update" |
||||
after_update $0 |
||||
endsnippet |
||||
|
||||
snippet aftv "after_validation" |
||||
after_validation $0 |
||||
endsnippet |
||||
|
||||
snippet aftvoc "after_validation_on_create" |
||||
after_validation_on_create $0 |
||||
endsnippet |
||||
|
||||
snippet aftvou "after_validation_on_update" |
||||
after_validation_on_update $0 |
||||
endsnippet |
||||
|
||||
snippet asg "assert(var = assigns(:var))" |
||||
assert(${1:var} = assigns(:$1), "Cannot find @$1") |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet asd "assert_difference" |
||||
assert_difference "${1:Model}.${2:count}", ${3:1} do |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet asnd "assert_no_difference" |
||||
assert_no_difference "${1:Model}.${2:count}" do |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet artnpp "assert_redirected_to (nested path plural)" |
||||
assert_redirected_to ${10:${2:parent}_${3:child}_path(${4:@}${5:$2})} |
||||
endsnippet |
||||
|
||||
snippet artnp "assert_redirected_to (nested path)" |
||||
assert_redirected_to ${2:${12:parent}_${13:child}_path(${14:@}${15:$12}, ${16:@}${17:$13})} |
||||
endsnippet |
||||
|
||||
snippet artpp "assert_redirected_to (path plural)" |
||||
assert_redirected_to ${10:${2:model}s_path} |
||||
endsnippet |
||||
|
||||
snippet artp "assert_redirected_to (path)" |
||||
assert_redirected_to ${2:${12:model}_path(${13:@}${14:$12})} |
||||
endsnippet |
||||
|
||||
snippet asrj "assert_rjs" |
||||
assert_rjs :${1:replace}, ${2:"${3:dom id}"} |
||||
endsnippet |
||||
|
||||
snippet ass "assert_select" |
||||
assert_select '${1:path}'${2:, :${3:text} => ${4:'${5:inner_html}'}}${6: do |
||||
$0 |
||||
end} |
||||
endsnippet |
||||
|
||||
snippet befc "before_create" |
||||
before_create $0 |
||||
endsnippet |
||||
|
||||
snippet befd "before_destroy" |
||||
before_destroy $0 |
||||
endsnippet |
||||
|
||||
snippet befs "before_save" |
||||
before_save $0 |
||||
endsnippet |
||||
|
||||
snippet befu "before_update" |
||||
before_update $0 |
||||
endsnippet |
||||
|
||||
snippet befv "before_validation" |
||||
before_validation $0 |
||||
endsnippet |
||||
|
||||
snippet befvoc "before_validation_on_create" |
||||
before_validation_on_create $0 |
||||
endsnippet |
||||
|
||||
snippet befvou "before_validation_on_update" |
||||
before_validation_on_update |
||||
endsnippet |
||||
|
||||
snippet bt "belongs_to (bt)" |
||||
belongs_to :${1:object}${2:, :class_name => "${3:${1/[[:alpha:]]+|(_)/(?1::\u$0)/g}}", :foreign_key => "${4:$1_id}"} |
||||
endsnippet |
||||
|
||||
snippet crw "cattr_accessor" |
||||
cattr_accessor :${0:attr_names} |
||||
endsnippet |
||||
|
||||
snippet defcreate "def create - resource" |
||||
def create |
||||
@${1:model} = ${2:${1/[[:alpha:]]+|(_)/(?1::\u$0)/g}}.new(params[:$1]) |
||||
$0 |
||||
respond_to do |wants| |
||||
if @$1.save |
||||
flash[:notice] = '$2 was successfully created.' |
||||
wants.html { redirect_to(@$1) } |
||||
wants.xml { render :xml => @$1, :status => :created, :location => @$1 } |
||||
else |
||||
wants.html { render :action => "new" } |
||||
wants.xml { render :xml => @$1.errors, :status => :unprocessable_entity } |
||||
end |
||||
end |
||||
end |
||||
|
||||
endsnippet |
||||
|
||||
snippet test "test do..end" |
||||
test "${1:something interesting}" do |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet deftg "def get request" |
||||
def test_should_get_${1:action} |
||||
${2:@${3:model} = ${4:$3s}(:${5:fixture_name}) |
||||
}get :$1${6:, :id => @$3.to_param} |
||||
assert_response :success |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet deftp "def post request" |
||||
def test_should_post_${1:action} |
||||
${3:@$2 = ${4:$2s}(:${5:fixture_name}) |
||||
}post :$1${6:, :id => @$2.to_param}, :${2:model} => { $0 } |
||||
assert_response :redirect |
||||
|
||||
end |
||||
endsnippet |
||||
|
||||
snippet fina "find(:all)" |
||||
find(:all${1:, :conditions => ['${2:${3:field} = ?}', ${5:true}]}) |
||||
endsnippet |
||||
|
||||
snippet finf "find(:first)" |
||||
find(:first${1:, :conditions => ['${2:${3:field} = ?}', ${5:true}]}) |
||||
endsnippet |
||||
|
||||
snippet fini "find(id)" |
||||
find(${1:id}) |
||||
endsnippet |
||||
|
||||
snippet fine "find_each" |
||||
find_each(${1::conditions => {:${2:field} => ${3:true}\}}) do |${4:${TM_CURRENT_WORD/(\w+)\./\L$1/g}}| |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet finb "find_in_batches" |
||||
find_in_batches(${1::conditions => {:${2:field} => ${3:true}\}}) do |${4:${TM_CURRENT_WORD/(\w+)\./\L$1/g}}s| |
||||
$4s.each do |$4| |
||||
$0 |
||||
end |
||||
end |
||||
endsnippet |
||||
|
||||
snippet habtm "has_and_belongs_to_many (habtm)" |
||||
has_and_belongs_to_many :${1:object}${2:, :join_table => "${3:table_name}", :foreign_key => "${4:$1_id}"} |
||||
endsnippet |
||||
|
||||
snippet hm "has_many (hm)" |
||||
has_many :${1:object}s${2:, :class_name => "$1", :foreign_key => "${4:reference}_id"} |
||||
endsnippet |
||||
|
||||
snippet hmt "has_many (through)" |
||||
has_many :${1:objects}, :through => :${2:join_association}${3:, :source => :${4:$2_table_foreign_key_to_$1_table}} |
||||
endsnippet |
||||
|
||||
snippet hmd "has_many :dependent => :destroy" |
||||
has_many :${1:object}s${2:, :class_name => "$1", :foreign_key => "${4:reference}_id"}, :dependent => :destroy$0 |
||||
endsnippet |
||||
|
||||
snippet ho "has_one (ho)" |
||||
has_one :${1:object}${2:, :class_name => "${3:${1/[[:alpha:]]+|(_)/(?1::\u$0)/g}}", :foreign_key => "${4:$1_id}"} |
||||
endsnippet |
||||
|
||||
snippet logd "logger.debug" |
||||
${1:Rails.}logger.debug { "${1:message}" }$0 |
||||
endsnippet |
||||
|
||||
snippet loge "logger.error" |
||||
logger.error { "${1:message}" }$0 |
||||
endsnippet |
||||
|
||||
snippet logf "logger.fatal" |
||||
logger.fatal { "${1:message}" }$0 |
||||
endsnippet |
||||
|
||||
snippet logi "logger.info" |
||||
logger.info { "${1:message}" }$0 |
||||
endsnippet |
||||
|
||||
snippet logw "logger.warn" |
||||
logger.warn { "${1:message}" }$0 |
||||
endsnippet |
||||
|
||||
snippet mp "map(&:sym_proc)" |
||||
map(&:${1:id}) |
||||
endsnippet |
||||
|
||||
snippet mapca "map.catch_all" |
||||
${1:map}.catch_all "*${2:anything}", :controller => "${3:default}", :action => "${4:error}" |
||||
|
||||
endsnippet |
||||
|
||||
snippet map "map.named_route" |
||||
${1:map}.${2:connect} '${3::controller/:action/:id}' |
||||
endsnippet |
||||
|
||||
snippet mapr "map.resource" |
||||
${1:map}.resource :${2:resource}${10: do |${11:$2}| |
||||
$0 |
||||
end} |
||||
endsnippet |
||||
|
||||
snippet maprs "map.resources" |
||||
${1:map}.resources :${2:resource}${10: do |${11:$2}| |
||||
$0 |
||||
end} |
||||
endsnippet |
||||
|
||||
snippet mapwo "map.with_options" |
||||
${1:map}.with_options :${2:controller} => '${3:thing}' do |${4:$3}| |
||||
$0 |
||||
end |
||||
|
||||
endsnippet |
||||
|
||||
snippet mrw "mattr_accessor" |
||||
mattr_accessor :${0:attr_names} |
||||
endsnippet |
||||
|
||||
snippet ncl "named_scope lambda" |
||||
named_scope :name, lambda { |${1:param}| { :conditions => ${3:['${4:${5:field} = ?}', ${6:$1}]} } } |
||||
|
||||
endsnippet |
||||
|
||||
snippet nc "named_scope" |
||||
named_scope :name${1:, :joins => :${2:table}}, :conditions => ${3:['${4:${5:field} = ?}', ${6:true}]} |
||||
|
||||
endsnippet |
||||
|
||||
snippet dscope "default_scope" |
||||
default_scope ${1:order(${2:'${3:created_at DESC}'})} |
||||
endsnippet |
||||
|
||||
snippet flash "flash[...]" |
||||
flash[:${1:notice}] = "${2:Successfully created...}"$0 |
||||
endsnippet |
||||
|
||||
snippet rea "redirect_to (action)" |
||||
redirect_to :action => "${1:index}" |
||||
endsnippet |
||||
|
||||
snippet reai "redirect_to (action, id)" |
||||
redirect_to :action => "${1:show}", :id => ${0:@item} |
||||
endsnippet |
||||
|
||||
snippet rec "redirect_to (controller)" |
||||
redirect_to :controller => "${1:items}" |
||||
endsnippet |
||||
|
||||
snippet reca "redirect_to (controller, action)" |
||||
redirect_to :controller => "${1:items}", :action => "${2:list}" |
||||
endsnippet |
||||
|
||||
snippet recai "redirect_to (controller, action, id)" |
||||
redirect_to :controller => "${1:items}", :action => "${2:show}", :id => ${0:@item} |
||||
endsnippet |
||||
|
||||
snippet renpp "redirect_to (nested path plural)" |
||||
redirect_to(${2:${10:parent}_${11:child}_path(${12:@}${13:$10})}) |
||||
endsnippet |
||||
|
||||
snippet renp "redirect_to (nested path)" |
||||
redirect_to(${2:${12:parent}_${13:child}_path(${14:@}${15:$12}, ${16:@}${17:$13})}) |
||||
endsnippet |
||||
|
||||
snippet repp "redirect_to (path plural)" |
||||
redirect_to(${2:${10:model}s_path}) |
||||
endsnippet |
||||
|
||||
snippet rep "redirect_to (path)" |
||||
redirect_to(${2:${12:model}_path(${13:@}${14:$12})}) |
||||
endsnippet |
||||
|
||||
snippet reb "redirect_to :back" |
||||
redirect_to :back |
||||
endsnippet |
||||
|
||||
snippet ra "render (action)... (ra)" |
||||
render :action => "${1:action}" |
||||
endsnippet |
||||
|
||||
snippet ral "render (action,layout) (ral)" |
||||
render :action => "${1:action}", :layout => "${2:layoutname}" |
||||
endsnippet |
||||
|
||||
snippet rf "render (file) (rf)" |
||||
render :file => "${1:filepath}" |
||||
endsnippet |
||||
|
||||
snippet rfu "render (file,use_full_path) (rfu)" |
||||
render :file => "${1:filepath}", :use_full_path => ${2:false} |
||||
endsnippet |
||||
|
||||
snippet ri "render (inline) (ri)" |
||||
render :inline => "${1:<%= 'hello' %>}" |
||||
endsnippet |
||||
|
||||
snippet ril "render (inline,locals) (ril)" |
||||
render :inline => "${1:<%= 'hello' %>}", :locals => { ${2::name} => "${3:value}"$4 } |
||||
endsnippet |
||||
|
||||
snippet rit "render (inline,type) (rit)" |
||||
render :inline => "${1:<%= 'hello' %>}", :type => ${2::rxml} |
||||
endsnippet |
||||
|
||||
snippet rl "render (layout) (rl)" |
||||
render :layout => "${1:layoutname}" |
||||
endsnippet |
||||
|
||||
snippet rn "render (nothing) (rn)" |
||||
render :nothing => ${1:true} |
||||
endsnippet |
||||
|
||||
snippet rns "render (nothing,status) (rns)" |
||||
render :nothing => ${1:true}, :status => ${2:401} |
||||
endsnippet |
||||
|
||||
snippet rt "render (text) (rt)" |
||||
render :text => "${1:text to render...}" |
||||
endsnippet |
||||
|
||||
snippet rtl "render (text,layout) (rtl)" |
||||
render :text => "${1:text to render...}", :layout => "${2:layoutname}" |
||||
endsnippet |
||||
|
||||
snippet rtlt "render (text,layout => true) (rtlt)" |
||||
render :text => "${1:text to render...}", :layout => ${2:true} |
||||
endsnippet |
||||
|
||||
snippet rts "render (text,status) (rts)" |
||||
render :text => "${1:text to render...}", :status => ${2:401} |
||||
endsnippet |
||||
|
||||
snippet ru "render (update)" |
||||
render :update do |${2:page}| |
||||
$2.$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet rest "respond_to" |
||||
respond_to do |wants| |
||||
wants.${1:html}${2: { $0 \}} |
||||
end |
||||
endsnippet |
||||
|
||||
# FIXME |
||||
snippet returning "returning do |variable| ... end" |
||||
returning ${1:variable} do${2/(^(?<var>\s*[a-z_][a-zA-Z0-9_]*\s*)(,\g<var>)*,?\s*$)|.*/(?1: |)/}${2:v}${2/(^(?<var>\s*[a-z_][a-zA-Z0-9_]*\s*)(,\g<var>)*,?\s*$)|.*/(?1:|)/} |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet t. "t.binary (tcbi)" |
||||
t.binary :${1:title}${2:, :limit => ${3:2}.megabytes} |
||||
t.$0 |
||||
endsnippet |
||||
|
||||
snippet t. "t.boolean (tcb)" |
||||
t.boolean :${1:title} |
||||
t.$0 |
||||
endsnippet |
||||
|
||||
snippet t. "t.date (tcda)" |
||||
t.date :${1:title} |
||||
t.$0 |
||||
endsnippet |
||||
|
||||
snippet t. "t.datetime (tcdt)" |
||||
t.datetime :${1:title} |
||||
t.$0 |
||||
endsnippet |
||||
|
||||
snippet t. "t.decimal (tcd)" |
||||
t.decimal :${1:title}${2:${3:, :precision => ${4:10}}${5:, :scale => ${6:2}}} |
||||
t.$0 |
||||
endsnippet |
||||
|
||||
snippet t. "t.float (tcf)" |
||||
t.float :${1:title} |
||||
t.$0 |
||||
endsnippet |
||||
|
||||
snippet t. "t.integer (tci)" |
||||
t.integer :${1:title} |
||||
t.$0 |
||||
endsnippet |
||||
|
||||
snippet t. "t.lock_version (tcl)" |
||||
t.integer :lock_version, :null => false, :default => 0 |
||||
t.$0 |
||||
endsnippet |
||||
|
||||
snippet t. "t.references (tcr)" |
||||
t.references :${1:taggable}${2:, :polymorphic => ${3:{ :default => '${4:Photo}' \}}} |
||||
t.$0 |
||||
endsnippet |
||||
|
||||
snippet t. "t.rename (tre)" |
||||
t.rename(:${1:old_column_name}, :${2:new_column_name}) |
||||
t.$0 |
||||
endsnippet |
||||
|
||||
snippet t. "t.string (tcs)" |
||||
t.string :${1:title} |
||||
t.$0 |
||||
endsnippet |
||||
|
||||
snippet t. "t.text (tct)" |
||||
t.text :${1:title} |
||||
t.$0 |
||||
endsnippet |
||||
|
||||
snippet t. "t.time (tcti)" |
||||
t.time :${1:title} |
||||
t.$0 |
||||
endsnippet |
||||
|
||||
snippet t. "t.timestamp (tcts)" |
||||
t.timestamp :${1:title} |
||||
t.$0 |
||||
endsnippet |
||||
|
||||
snippet t. "t.timestamps (tctss)" |
||||
t.timestamps |
||||
t.$0 |
||||
endsnippet |
||||
|
||||
snippet vaoif "validates_acceptance_of if" |
||||
validates_acceptance_of :${1:terms}${2:${3:, :accept => "${4:1}"}${5:, :message => "${6:You must accept the terms of service}"}}, :if => proc { |obj| ${7:obj.condition?} }} |
||||
endsnippet |
||||
|
||||
snippet vao "validates_acceptance_of" |
||||
validates_acceptance_of :${1:terms}${2:${3:, :accept => "${4:1}"}${5:, :message => "${6:You must accept the terms of service}"}} |
||||
endsnippet |
||||
|
||||
snippet va "validates_associated (va)" |
||||
validates_associated :${1:attribute}${2:, :on => :${3:create}} |
||||
endsnippet |
||||
|
||||
snippet vaif "validates_associated if (vaif)" |
||||
validates_associated :${1:attribute}${2:, :on => :${3:create}, :if => proc { |obj| ${5:obj.condition?} }} |
||||
endsnippet |
||||
|
||||
snippet vc "validates_confirmation_of (vc)" |
||||
validates_confirmation_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:should match confirmation}"} |
||||
endsnippet |
||||
|
||||
snippet vcif "validates_confirmation_of if (vcif)" |
||||
validates_confirmation_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:should match confirmation}", :if => proc { |obj| ${5:obj.condition?} }} |
||||
endsnippet |
||||
|
||||
snippet ve "validates_exclusion_of (ve)" |
||||
validates_exclusion_of :${1:attribute}${2:, :in => ${3:%w( ${4:mov avi} )}, :on => :${5:create}, :message => "${6:extension %s is not allowed}"} |
||||
endsnippet |
||||
|
||||
snippet veif "validates_exclusion_of if (veif)" |
||||
validates_exclusion_of :${1:attribute}${2:, :in => ${3:%w( ${4:mov avi} )}, :on => :${5:create}, :message => "${6:extension %s is not allowed}"}, :if => proc { |obj| ${7:obj.condition?} }} |
||||
endsnippet |
||||
|
||||
snippet vfif "validates_format_of if" |
||||
validates_format_of :${1:attribute}, :with => /${2:^[${3:\w\d}]+\$}/${4:, :on => :${5:create}, :message => "${6:is invalid}"}, :if => proc { |obj| ${7:obj.condition?} }} |
||||
endsnippet |
||||
|
||||
snippet vf "validates_format_of" |
||||
validates_format_of :${1:attribute}, :with => /${2:^[${3:\w\d}]+\$}/${4:, :on => :${5:create}, :message => "${6:is invalid}"} |
||||
endsnippet |
||||
|
||||
snippet viif "validates_inclusion_of if" |
||||
validates_inclusion_of :${1:attribute}${2:, :in => ${3:%w( ${4:mov avi} )}, :on => :${5:create}, :message => "${6:extension %s is not included in the list}"}, :if => proc { |obj| ${7:obj.condition?} }} |
||||
endsnippet |
||||
|
||||
snippet vi "validates_inclusion_of" |
||||
validates_inclusion_of :${1:attribute}${2:, :in => ${3:%w( ${4:mov avi} )}, :on => :${5:create}, :message => "${6:extension %s is not included in the list}"} |
||||
endsnippet |
||||
|
||||
snippet vl "validates_length_of (vl)" |
||||
validates_length_of :${1:attribute}, :within => ${2:3..20}${3:, :on => :${4:create}, :message => "${5:must be present}"} |
||||
endsnippet |
||||
|
||||
snippet vlif "validates_length_of if" |
||||
validates_length_of :${1:attribute}, :within => ${2:3..20}${3:, :on => :${4:create}, :message => "${5:must be present}"}, :if => proc { |obj| ${6:obj.condition?} }} |
||||
endsnippet |
||||
|
||||
snippet vnif "validates_numericality_of if" |
||||
validates_numericality_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:is not a number}"}, :if => proc { |obj| ${5:obj.condition?} }} |
||||
endsnippet |
||||
|
||||
snippet vn "validates_numericality_of" |
||||
validates_numericality_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:is not a number}"} |
||||
endsnippet |
||||
|
||||
snippet vp "validates_presence_of (vp)" |
||||
validates_presence_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:can't be blank}"} |
||||
endsnippet |
||||
|
||||
snippet vpif "validates_presence_of if (vpif) 2" |
||||
validates_presence_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:can't be blank}"}, :if => proc { |obj| ${5:obj.condition?} }} |
||||
endsnippet |
||||
|
||||
snippet vu "validates_uniqueness_of (vu)" |
||||
validates_uniqueness_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:must be unique}"} |
||||
endsnippet |
||||
|
||||
snippet vuif "validates_uniqueness_of if (vuif)" |
||||
validates_uniqueness_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:must be unique}", :if => proc { |obj| ${6:obj.condition?} }} |
||||
endsnippet |
||||
|
||||
snippet verify "verify -- render" |
||||
verify :only => [:$1], :method => :post, :render => {:status => 500, :text => "use HTTP-POST"} |
||||
|
||||
endsnippet |
||||
|
||||
snippet verify "verify -- redirect" |
||||
verify :only => [:$1], :session => :user, :params => :id, :redirect_to => {:action => '${2:index}'} |
||||
|
||||
endsnippet |
||||
|
||||
snippet wants "wants_format" |
||||
wants.${1:js|xml|html}${2: { $0 \}} |
||||
endsnippet |
||||
|
||||
snippet xdelete "xhr delete" |
||||
xhr :delete, :${1:destroy}, :id => ${2:1}$0 |
||||
endsnippet |
||||
|
||||
snippet xget "xhr get" |
||||
xhr :get, :${1:show}${2:, :id => ${3:1}}$0 |
||||
endsnippet |
||||
|
||||
snippet xpost "xhr post" |
||||
xhr :post, :${1:create}, :${2:object} => { $3 } |
||||
endsnippet |
||||
|
||||
snippet xput "xhr put" |
||||
xhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { $4 }$0 |
||||
endsnippet |
||||
|
||||
snippet sweeper "Create sweeper class" |
||||
class ${1:Model}Sweeper < ActionController::Caching::Sweeper |
||||
observe ${1:Model} |
||||
|
||||
def after_save(${1/./\l$0/}) |
||||
expire_cache(${1/./\l$0/}) |
||||
end |
||||
|
||||
def after_destroy(${1/./\l$0/}) |
||||
expire_cache(${1/./\l$0/}) |
||||
end |
||||
|
||||
private |
||||
|
||||
def expire_cache(${1/./\l$0/}) |
||||
${0:expire_page ${1/./\l$0/}s_path |
||||
expire_page ${1/./\l$0/}_path(${1/./\l$0/})} |
||||
end |
||||
|
||||
end |
||||
endsnippet |
||||
|
||||
snippet col "collection routes" |
||||
collection do |
||||
${1:get :${2:action}} |
||||
${3:put :${4:action}} |
||||
${5:post :${6:action}} |
||||
${7:delete :${8:action}} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet format "format (respond_with)" |
||||
format.${1:html|xml|json|js|any} { $0 } |
||||
endsnippet |
||||
|
||||
snippet gem "gem" |
||||
gem '${1:name}'${2:${3:, "${4:1.0}"}${5:${6:, :require => ${7:"${8:$1}"}}${9:, :group => :${10:test}}}} |
||||
endsnippet |
||||
|
||||
snippet gemg "gem :git" |
||||
gem '${1:paperclip}', :git => "${2:git://github.com/thoughtbot/paperclip.git}"${3:, :branch => "${4:rails3}"} |
||||
endsnippet |
||||
|
||||
snippet match "match" |
||||
match '${1:${2::controller}${3:/${4::action}${5:/${6::id}${7:(.:format)}}}}'${8: => '${9:$2}#${10:$4}'${11:, :as => :${12:$10}}} |
||||
endsnippet |
||||
|
||||
snippet member "member routes" |
||||
member do |
||||
${1:get :${2:action}} |
||||
${3:put :${4:action}} |
||||
${5:post :${6:action}} |
||||
${7:delete :${8:action}} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet res "resources" |
||||
resources :${1:posts}${2: do |
||||
$3 |
||||
end} |
||||
endsnippet |
||||
|
||||
snippet scope "scope" |
||||
scope :${1:name}, ${2:joins(:${3:table}).}where(${4:'${5:$3.${6:field}} = ?', ${7:'${8:value}'}}) |
||||
endsnippet |
||||
|
||||
snippet scopel "scope lambda" |
||||
scope :${1:name}, lambda { |${2:param}| ${3:where(${4::${5:field} => ${6:"${7:value}"}})} } |
||||
endsnippet |
||||
|
||||
snippet scopee "scope with extension" |
||||
scope :${1:name}, ${2:where(${3::${4:field} => ${5:'${6:value}'}})} do |
||||
def ${7:method_name} |
||||
$0 |
||||
end |
||||
end |
||||
endsnippet |
||||
|
||||
snippet sb "scoped_by" |
||||
scoped_by_${1:attribute}(${2:id}) |
||||
endsnippet |
||||
|
||||
snippet setup "setup do..end" |
||||
setup do |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet trans "Translation snippet" |
||||
I18n.t('`!v substitute(substitute(substitute(@%, substitute(getcwd() . "/", "\/", "\\\\/", "g"), "", ""), "\\(\\.\\(html\\|js\\)\\.\\(haml\\|erb\\)\\|\\(_controller\\)\\?\\.rb\\)$", "", ""), "/", ".", "g")`.${2:${1/[^\w]/_/g}}$3', :default => "${1:some_text}"$4)${5:$0} |
||||
endsnippet |
||||
|
||||
snippet route_spec |
||||
it 'routes to #${1:action}' do |
||||
${2:get}('/${3:url}').should route_to('`!v substitute(expand('%:t:r'), '_routing_spec$', '', '')`#$1'${4:, ${5:params}})$6 |
||||
end |
||||
endsnippet |
||||
|
||||
# vim:ft=snippets: |
@ -0,0 +1,329 @@
|
||||
priority -50 |
||||
|
||||
# |
||||
# Global functions |
||||
# |
||||
|
||||
global !p |
||||
|
||||
def write_instance_vars(arglist, snip): |
||||
args = str(arglist).split(',') |
||||
for arg in args: |
||||
name = arg.strip().replace(':', ' ').split(' ', 1)[0] |
||||
if name: |
||||
snip += ' @{} = {}'.format(name, name) |
||||
else: |
||||
snip += '' |
||||
|
||||
endglobal |
||||
|
||||
# |
||||
# Snippets |
||||
# |
||||
|
||||
snippet "^#!" "#!/usr/bin/env ruby" r |
||||
#!/usr/bin/env ruby |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet "^# ?[uU][tT][fF]-?8" "# encoding: UTF-8" r |
||||
# encoding: UTF-8 |
||||
$0 |
||||
endsnippet |
||||
|
||||
snippet "\b(de)?f" "def <name>..." r |
||||
def ${1:function_name}${2:(${3:*args})} |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet defi "def initialize ..." |
||||
def initialize($1)`!p write_instance_vars(t[1],snip)`$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet defr "def <name> ... rescue ..." |
||||
def ${1:function_name}${2:(${3:*args})} |
||||
$4 |
||||
rescue |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet For "(<from>..<to>).each { |<i>| <block> }" |
||||
(${1:from}..${2:to}).each { |${3:i}| $0 } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.Merge!" ".merge!(<other_hash>) { |<key>,<oldval>,<newval>| <block> }" r |
||||
`!p snip.rv=match.group(1)`.merge!(${1:other_hash}) { |${2:key},${3:oldval},${4:newval}| ${5:block} } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.merge!" ".merge!(<other_hash>) do |<key>,<oldval>,<newval>| <block> end" r |
||||
`!p snip.rv=match.group(1)`.merge!(${1:other_hash}) do |${2:key},${3:oldval},${4:newval}| |
||||
${0:block} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.Del(ete)?_?if" ".delete_if { |<key>,<value>| <block> }" r |
||||
`!p snip.rv=match.group(1)`.delete_if { |${1:key},${2:value}| $0 } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.del(ete)?_?if" ".delete_if do |<key>,<value>| <block> end" r |
||||
`!p snip.rv=match.group(1)`.delete_if do |${1:key},${2:value}| |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.Keep_?if" ".keep_if { |<key>,<value>| <block> }" r |
||||
`!p snip.rv=match.group(1)`.keep_if { |${1:key},${2:value}| $0 } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.keep_?if" ".keep_if do <key>,<value>| <block> end" r |
||||
`!p snip.rv=match.group(1)`.keep_if do |${1:key},${2:value}| |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.Reject" ".reject { |<key>,<value>| <block> }" r |
||||
`!p snip.rv=match.group(1)`.reject { |${1:key},${2:value}| $0 } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.reject" ".reject do <key>,<value>| <block> end" r |
||||
`!p snip.rv=match.group(1)`.reject do |${1:key},${2:value}| |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.Select" ".select { |<item>| <block>}" r |
||||
`!p snip.rv=match.group(1)`.select { |${1:item}| ${2:block} } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.select" ".select do |<item>| <block> end" r |
||||
`!p snip.rv=match.group(1)`.select do |${1:item}| |
||||
${0:block} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.Sort" ".sort { |<a>,<b>| <block> }" r |
||||
`!p snip.rv=match.group(1)`.sort { |${1:a},${2:b}| $0 } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.sort" ".sort do |<a>,<b>| <block> end" r |
||||
`!p snip.rv=match.group(1)`.sort do |${1:a},${2:b}| |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.Each_?k(ey)?" ".each_key { |<key>| <block> }" r |
||||
`!p snip.rv=match.group(1)`.each_key { |${1:key}| $0 } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.each_?k(ey)?" ".each_key do |key| <block> end" r |
||||
`!p snip.rv=match.group(1)`.each_key do |${1:key}| |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.Each_?val(ue)?" ".each_value { |<value>| <block> }" r |
||||
`!p snip.rv=match.group(1)`.each_value { |${1:value}| $0 } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.each_?val(ue)?" ".each_value do |<value>| <block> end" r |
||||
`!p snip.rv=match.group(1)`.each_value do |${1:value}| |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.ea" "<elements>.each do |<element>| <block> end" r |
||||
`!p snip.rv=match.group(1)`.each { |${1:e}| $0 } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.ead" "<elements>.each do |<element>| <block> end" r |
||||
`!p snip.rv=match.group(1)`.each do |${1:e}| |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet "each_?s(lice)?" "<array>.each_slice(n) do |slice| <block> end" r |
||||
${1:elements}.each_slice(${2:2}) do |${3:slice}| |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet "Each_?s(lice)?" "<array>.each_slice(n) { |slice| <block> }" r |
||||
${1:elements}.each_slice(${2:2}) { |${3:slice}| $0 } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.Map" ".map { |<element>| <block> }" r |
||||
`!p snip.rv=match.group(1)`.map { |${1:`!p |
||||
element_name = match.group(1).lstrip('$@') |
||||
ematch = re.search("([A-Za-z][A-Za-z0-9_]+?)s?[^A-Za-z0-9_]*?$", element_name) |
||||
try: |
||||
wmatch = re.search("([A-Za-z][A-Za-z0-9_]+)$", ematch.group(1)) |
||||
snip.rv = wmatch.group(1).lower() |
||||
except: |
||||
snip.rv = 'element' |
||||
`}| $0 } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.map" ".map do |<element>| <block> end" r |
||||
`!p snip.rv=match.group(1)`.map do |${1:`!p |
||||
element_name = match.group(1).lstrip('$@') |
||||
ematch = re.search("([A-Za-z][A-Za-z0-9_]+?)s?[^A-Za-z0-9_]*?$", element_name) |
||||
try: |
||||
wmatch = re.search("([A-Za-z][A-Za-z0-9_]+)$", ematch.group(1)) |
||||
snip.rv = wmatch.group(1).lower() |
||||
except: |
||||
snip.rv = 'element' |
||||
`}| |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.Rev(erse)?_?each" ".reverse_each { |<element>| <block> }" r |
||||
`!p snip.rv=match.group(1)`.reverse_each { |${1:`!p |
||||
element_name = match.group(1).lstrip('$@') |
||||
ematch = re.search("([A-Za-z][A-Za-z0-9_]+?)s?[^A-Za-z0-9_]*?$", element_name) |
||||
try: |
||||
wmatch = re.search("([A-Za-z][A-Za-z0-9_]+)$", ematch.group(1)) |
||||
snip.rv = wmatch.group(1).lower() |
||||
except: |
||||
snip.rv = 'element' |
||||
`}| $0 } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.rev(erse)?_?each" ".reverse_each do |<element>| <block> end" r |
||||
`!p snip.rv=match.group(1)`.reverse_each do |${1:`!p |
||||
element_name = match.group(1).lstrip('$@') |
||||
ematch = re.search("([A-Za-z][A-Za-z0-9_]+?)s?[^A-Za-z0-9_]*?$", element_name) |
||||
try: |
||||
wmatch = re.search("([A-Za-z][A-Za-z0-9_]+)$", ematch.group(1)) |
||||
snip.rv = wmatch.group(1).lower() |
||||
except: |
||||
snip.rv = 'element' |
||||
`}| |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.Each" ".each { |<element>| <block> }" r |
||||
`!p snip.rv=match.group(1)`.each { |${1:`!p |
||||
element_name = match.group(1).lstrip('$@') |
||||
ematch = re.search("([A-Za-z][A-Za-z0-9_]+?)s?[^A-Za-z0-9_]*?$", element_name) |
||||
try: |
||||
wmatch = re.search("([A-Za-z][A-Za-z0-9_]+)$", ematch.group(1)) |
||||
snip.rv = wmatch.group(1).lower() |
||||
except: |
||||
snip.rv = 'element' |
||||
`}| $0 } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.each" ".each do |<element>| <block> end" r |
||||
`!p snip.rv=match.group(1)`.each do |${1:`!p |
||||
element_name = match.group(1).lstrip('$@') |
||||
ematch = re.search("([A-Za-z][A-Za-z0-9_]+?)s?[^A-Za-z0-9_]*?$", element_name) |
||||
try: |
||||
wmatch = re.search("([A-Za-z][A-Za-z0-9_]+)$", ematch.group(1)) |
||||
snip.rv = wmatch.group(1).lower() |
||||
except: |
||||
snip.rv = 'element' |
||||
`}| |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.Each_?p(air)?" ".each_pair { |<key>,<value>| <block> }" r |
||||
`!p snip.rv=match.group(1)`.each_pair { |${1:key},${2:value}| $0 } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.each_?p(air)?" ".each_pair do |<key>,<value>| <block> end" r |
||||
`!p snip.rv=match.group(1)`.each_pair do |${1:key},${2:value}| |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.sub" ".sub(<expression>) { <block> }" r |
||||
`!p snip.rv=match.group(1)`.sub(${1:expression}) { ${2:"replace_with"} } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.gsub" ".gsub(<expression>) { <block> }" r |
||||
`!p snip.rv=match.group(1)`.gsub(${1:expression}) { ${2:"replace_with"} } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.index" ".index { |item| <block> }" r |
||||
`!p snip.rv=match.group(1)`.index { |${1:item}| ${2:block} } |
||||
endsnippet |
||||
|
||||
snippet "(\S+)\.Index" ".index do |item| ... end" r |
||||
`!p snip.rv=match.group(1)`.index do |${1:item}| |
||||
${0:block} |
||||
end |
||||
endsnippet |
||||
|
||||
snippet until "until <expression> ... end" |
||||
until ${1:expression} |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet Until "begin ... end until <expression>" |
||||
begin |
||||
$0 |
||||
end until ${1:expression} |
||||
endsnippet |
||||
|
||||
snippet while "while <expression> ... end" |
||||
while ${1:expression} |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet While "begin ... end while <expression>" |
||||
begin |
||||
$0 |
||||
end while ${1:expression} |
||||
endsnippet |
||||
|
||||
snippet begin "begin ... rescue ... end" |
||||
begin |
||||
$1 |
||||
rescue |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet rescue |
||||
rescue Exception => e |
||||
puts e.message |
||||
puts e.backtrace.inspect |
||||
${0:# Rescue} |
||||
endsnippet |
||||
|
||||
snippet "\b(case|sw(itch)?)" "case <variable> when <expression> ... end" r |
||||
case ${1:variable} |
||||
when ${2:expression} |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet class "class <class_name> def initialize ... end end" |
||||
class ${1:class_name} |
||||
def initialize(${2:*args}) |
||||
$0 |
||||
end |
||||
end |
||||
endsnippet |
||||
|
||||
snippet module "module" |
||||
module ${1:module_name} |
||||
$0 |
||||
end |
||||
endsnippet |
||||
|
||||
snippet ### |
||||
=begin |
||||
$0 |
||||
=end |
||||
endsnippet |
||||
|
||||
# vim: set ts=2 sw=2 expandtab: |
@ -0,0 +1,106 @@
|
||||
####################################################################### |
||||
# Rust Snippets # |
||||
####################################################################### |
||||
|
||||
priority -50 |
||||
|
||||
snippet let "let variable declaration" b |
||||
let ${1:name}${2:: ${3:type}} = $4; |
||||
endsnippet |
||||
|
||||
snippet letm "let mut variable declaration" b |
||||
let mut ${1:name}${2:: ${3:type}} = $4; |
||||
endsnippet |
||||
|
||||
snippet fn "A function, optionally with arguments and return type." |
||||
fn ${1:function_name}($2)${3/..*/ -> /}$3 { |
||||
${VISUAL}$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet pfn "A public function, optionally with arguments and return type." |
||||
pub fn ${1:function_name}($2)${3/..*/ -> /}$3 { |
||||
${VISUAL}$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet arg "Function Arguments" i |
||||
${1:a}: ${2:T}${3:, arg} |
||||
endsnippet |
||||
|
||||
snippet || "Closure, anonymous function (inline)" i |
||||
${1:move }|$2| { $3 } |
||||
endsnippet |
||||
|
||||
snippet |} "Closure, anonymous function (block)" i |
||||
${1:move }|$2| { |
||||
$3 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet pri "print!(..)" b |
||||
print!("$1"${2/..*/, /}$2); |
||||
endsnippet |
||||
|
||||
snippet pln "println!(..)" b |
||||
println!("$1"${2/..*/, /}$2); |
||||
endsnippet |
||||
|
||||
snippet fmt "format!(..)" |
||||
format!("$1"${2/..*/, /}$2); |
||||
endsnippet |
||||
|
||||
snippet macro "macro_rules!" b |
||||
macro_rules! ${1:name} { |
||||
(${2:matcher}) => ( |
||||
$3 |
||||
) |
||||
} |
||||
endsnippet |
||||
|
||||
snippet mod "A module" b |
||||
mod ${1:`!p snip.rv = snip.basename.lower() or "name"`} { |
||||
${VISUAL}$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet for "for .. in .." b |
||||
for ${1:i} in $2 { |
||||
${VISUAL}$0 |
||||
} |
||||
endsnippet |
||||
|
||||
snippet todo "A Todo comment" |
||||
// [TODO]: ${1:Description} - `!v strftime("%Y-%m-%d %I:%M%P")` |
||||
endsnippet |
||||
|
||||
snippet st "Struct" b |
||||
struct ${1:`!p snip.rv = snip.basename.title() or "Name"`} { |
||||
${VISUAL}$0 |
||||
} |
||||
endsnippet |
||||
|
||||
# TODO: fancy dynamic field mirroring like Python slotclass |
||||
snippet stn "Struct with new constructor." b |
||||
pub struct ${1:`!p snip.rv = snip.basename.title() or "Name"`} { |
||||
fd$0 |
||||
} |
||||
|
||||
impl $1 { |
||||
pub fn new($2) -> $1 { |
||||
$1 { $3 } |
||||
} |
||||
} |
||||
endsnippet |
||||
|
||||
snippet fd "Struct field definition" w |
||||
${1:name}: ${2:Type}, |
||||
endsnippet |
||||
|
||||
snippet impl "Struct/Trait implementation" b |
||||
impl ${1:Type/Trait}${2: for ${3:Type}} { |
||||
$0 |
||||
} |
||||
endsnippet |
||||
|
||||
# vim:ft=snippets: |
@ -0,0 +1,99 @@
|
||||
priority -50 |
||||
|
||||
global !p |
||||
import vim |
||||
|
||||
# Tests for the existence of a variable declared by Vim's filetype detection |
||||
# suggesting the type of shell script of the current file |
||||
def testShell(scope, shell): |
||||
return vim.eval("exists('" + scope + ":is_" + shell + "')") |
||||
|
||||
# Loops over the possible variables, checking for global variables |
||||
# first since they indicate an override by the user. |
||||
def getShell(): |
||||
for scope in ["g", "b"]: |
||||
for shell in ["bash", "posix", "sh", "kornshell"]: |
||||
if testShell(scope, shell) == "1": |
||||
if shell == "kornshell": |
||||
return "ksh" |
||||
if shell == "posix": |
||||
return "sh" |
||||
return shell |
||||
return "sh" |
||||
endglobal |
||||
|
||||
########################################################################### |
||||
# TextMate Snippets # |
||||
########################################################################### |
||||
snippet #! |
||||
`!p snip.rv = '#!/bin/' + getShell() + "\n\n" ` |
||||
endsnippet |
||||
|
||||
snippet !env "#!/usr/bin/env (!env)" |
||||
`!p snip.rv = '#!/usr/bin/env ' + getShell() + "\n\n" ` |
||||
endsnippet |
||||
|
||||
snippet sbash "safe bash options" |
||||
#!/usr/bin/env bash |
||||
set -euo pipefail |
||||
IFS=$'\n\t' |
||||
`!p snip.rv ='\n\n' ` |
||||
endsnippet |
||||
|
||||
snippet temp "Tempfile" |
||||
${1:TMPFILE}="$(mktemp -t ${2:`!p |
||||
snip.rv = re.sub(r'[^a-zA-Z]', '_', snip.fn) or "untitled" |
||||
`})" |
||||
${3:${4/(.+)/trap "/}${4:rm -f '$${1/.*\s//}'}${4/(.+)/" 0 # EXIT\n/}${5/(.+)/trap "/}${5:rm -f '$${1/.*\s//}'; exit 1}${5/(.+)/" 2 # INT\n/}${6/(.+)/trap "/}${6:rm -f '$${1/.*\s//}'; exit 1}${6/(.+)/" 1 15 # HUP TERM\n/}} |
||||
|
||||
endsnippet |
||||
|
||||
snippet case "case .. esac (case)" |
||||
case ${1:word} in |
||||
${2:pattern} ) |
||||
$0;; |
||||
esac |
||||
endsnippet |
||||
|
||||
snippet elif "elif .. (elif)" |
||||
elif ${2:[[ ${1:condition} ]]}; then |
||||
${0:#statements} |
||||
endsnippet |
||||
|
||||
snippet for "for ... done (for)" |
||||
for (( i = 0; i < ${1:10}; i++ )); do |
||||
${0:#statements} |
||||
done |
||||
endsnippet |
||||
|
||||
snippet forin "for ... in ... done (forin)" |
||||
for ${1:i}${2/.+/ in /}${2:words}; do |
||||
${0:#statements} |
||||
done |
||||
endsnippet |
||||
|
||||
snippet here "here document (here)" |
||||
<<-${2:'${1:TOKEN}'} |
||||
$0 |
||||
${1/['"`](.+)['"`]/$1/} |
||||
endsnippet |
||||
|
||||
snippet if "if ... then (if)" |
||||
if ${2:[[ ${1:condition} ]]}; then |
||||
${0:#statements} |
||||
fi |
||||
endsnippet |
||||
|
||||
snippet until "until ... (done)" |
||||
until ${2:[[ ${1:condition} ]]}; do |
||||
${0:#statements} |
||||
done |
||||
endsnippet |
||||
|
||||
snippet while "while ... (done)" |
||||
while ${2:[[ ${1:condition} ]]}; do |
||||
${0:#statements} |
||||
done |
||||
endsnippet |
||||
|
||||
# vim:ft=snippets: |
@ -0,0 +1,16 @@
|
||||
priority -50 |
||||
|
||||
snippet xml "XML declaration" b |
||||
<?xml version="1.0"?> |
||||
|
||||
endsnippet |
||||
|
||||
snippet t "Simple tag" b |
||||
<${1:tag}> |
||||
${2:content} |
||||
</${1/([\w:._-]+).*/$1/}> |
||||
endsnippet |
||||
|
||||
snippet ti "Inline tag" b |
||||
<${1:tag}>${2:content}</${1/([\w:._-]+).*/$1/}> |
||||
endsnippet |
Loading…
Reference in new issue