Updated plugins
This commit is contained in:
parent
879a7b6bd4
commit
a448b32309
85 changed files with 2174 additions and 941 deletions
|
@ -68,6 +68,7 @@ let [s:pref, s:bpref, s:opts, s:new_opts, s:lc_opts] =
|
||||||
\ 'key_loop': ['s:keyloop', 0],
|
\ 'key_loop': ['s:keyloop', 0],
|
||||||
\ 'lazy_update': ['s:lazy', 0],
|
\ 'lazy_update': ['s:lazy', 0],
|
||||||
\ 'match_func': ['s:matcher', {}],
|
\ 'match_func': ['s:matcher', {}],
|
||||||
|
\ 'match_window': ['s:mw', ''],
|
||||||
\ 'match_window_bottom': ['s:mwbottom', 1],
|
\ 'match_window_bottom': ['s:mwbottom', 1],
|
||||||
\ 'match_window_reversed': ['s:mwreverse', 1],
|
\ 'match_window_reversed': ['s:mwreverse', 1],
|
||||||
\ 'max_depth': ['s:maxdepth', 40],
|
\ 'max_depth': ['s:maxdepth', 40],
|
||||||
|
@ -102,7 +103,7 @@ let [s:pref, s:bpref, s:opts, s:new_opts, s:lc_opts] =
|
||||||
|
|
||||||
" Global options
|
" Global options
|
||||||
let s:glbs = { 'magic': 1, 'to': 1, 'tm': 0, 'sb': 1, 'hls': 0, 'im': 0,
|
let s:glbs = { 'magic': 1, 'to': 1, 'tm': 0, 'sb': 1, 'hls': 0, 'im': 0,
|
||||||
\ 'report': 9999, 'sc': 0, 'ss': 0, 'siso': 0, 'mfd': 200, 'mouse': 'n',
|
\ 'report': 9999, 'sc': 0, 'ss': 0, 'siso': 0, 'mfd': 200, 'ttimeout': 0,
|
||||||
\ 'gcr': 'a:blinkon0', 'ic': 1, 'lmap': '', 'mousef': 0, 'imd': 1 }
|
\ 'gcr': 'a:blinkon0', 'ic': 1, 'lmap': '', 'mousef': 0, 'imd': 1 }
|
||||||
|
|
||||||
" Keymaps
|
" Keymaps
|
||||||
|
@ -181,7 +182,7 @@ let s:hlgrps = {
|
||||||
\ 'PrtText': 'Normal',
|
\ 'PrtText': 'Normal',
|
||||||
\ 'PrtCursor': 'Constant',
|
\ 'PrtCursor': 'Constant',
|
||||||
\ }
|
\ }
|
||||||
" s:opts() {{{2
|
" Get the options {{{2
|
||||||
fu! s:opts(...)
|
fu! s:opts(...)
|
||||||
unl! s:usrign s:usrcmd s:urprtmaps
|
unl! s:usrign s:usrcmd s:urprtmaps
|
||||||
for each in ['byfname', 'regexp', 'extensions'] | if exists('s:'.each)
|
for each in ['byfname', 'regexp', 'extensions'] | if exists('s:'.each)
|
||||||
|
@ -201,6 +202,9 @@ fu! s:opts(...)
|
||||||
let {va} = {s:bpref.ke}
|
let {va} = {s:bpref.ke}
|
||||||
en
|
en
|
||||||
endfo
|
endfo
|
||||||
|
" Match window options
|
||||||
|
cal s:match_window_opts()
|
||||||
|
" One-time values
|
||||||
if a:0 && a:1 != {}
|
if a:0 && a:1 != {}
|
||||||
unl va
|
unl va
|
||||||
for [ke, va] in items(a:1)
|
for [ke, va] in items(a:1)
|
||||||
|
@ -217,7 +221,6 @@ fu! s:opts(...)
|
||||||
en | endfo
|
en | endfo
|
||||||
if !exists('g:ctrlp_newcache') | let g:ctrlp_newcache = 0 | en
|
if !exists('g:ctrlp_newcache') | let g:ctrlp_newcache = 0 | en
|
||||||
let s:maxdepth = min([s:maxdepth, 100])
|
let s:maxdepth = min([s:maxdepth, 100])
|
||||||
let s:mxheight = max([s:mxheight, 1])
|
|
||||||
let s:glob = s:showhidden ? '.*\|*' : '*'
|
let s:glob = s:showhidden ? '.*\|*' : '*'
|
||||||
let s:igntype = empty(s:usrign) ? -1 : type(s:usrign)
|
let s:igntype = empty(s:usrign) ? -1 : type(s:usrign)
|
||||||
let s:lash = ctrlp#utils#lash()
|
let s:lash = ctrlp#utils#lash()
|
||||||
|
@ -238,13 +241,32 @@ fu! s:opts(...)
|
||||||
cal extend(s:prtmaps, s:urprtmaps)
|
cal extend(s:prtmaps, s:urprtmaps)
|
||||||
en
|
en
|
||||||
endf
|
endf
|
||||||
|
|
||||||
|
fu! s:match_window_opts()
|
||||||
|
let s:mw_pos =
|
||||||
|
\ s:mw =~ 'top\|bottom' ? matchstr(s:mw, 'top\|bottom') :
|
||||||
|
\ exists('g:ctrlp_match_window_bottom') ? ( s:mwbottom ? 'bottom' : 'top' )
|
||||||
|
\ : 'bottom'
|
||||||
|
let s:mw_order =
|
||||||
|
\ s:mw =~ 'order:[^,]\+' ? matchstr(s:mw, 'order:\zs[^,]\+') :
|
||||||
|
\ exists('g:ctrlp_match_window_reversed') ? ( s:mwreverse ? 'btt' : 'ttb' )
|
||||||
|
\ : 'btt'
|
||||||
|
let s:mw_max =
|
||||||
|
\ s:mw =~ 'max:[^,]\+' ? str2nr(matchstr(s:mw, 'max:\zs\d\+')) :
|
||||||
|
\ exists('g:ctrlp_max_height') ? s:mxheight
|
||||||
|
\ : 10
|
||||||
|
let s:mw_min =
|
||||||
|
\ s:mw =~ 'min:[^,]\+' ? str2nr(matchstr(s:mw, 'min:\zs\d\+')) : 1
|
||||||
|
let [s:mw_max, s:mw_min] = [max([s:mw_max, 1]), max([s:mw_min, 1])]
|
||||||
|
let s:mw_min = min([s:mw_min, s:mw_max])
|
||||||
|
endf
|
||||||
"}}}1
|
"}}}1
|
||||||
" * Open & Close {{{1
|
" * Open & Close {{{1
|
||||||
fu! s:Open()
|
fu! s:Open()
|
||||||
cal s:log(1)
|
cal s:log(1)
|
||||||
cal s:getenv()
|
cal s:getenv()
|
||||||
cal s:execextvar('enter')
|
cal s:execextvar('enter')
|
||||||
sil! exe 'keepa' ( s:mwbottom ? 'bo' : 'to' ) '1new ControlP'
|
sil! exe 'keepa' ( s:mw_pos == 'top' ? 'to' : 'bo' ) '1new ControlP'
|
||||||
cal s:buffunc(1)
|
cal s:buffunc(1)
|
||||||
let [s:bufnr, s:winw] = [bufnr('%'), winwidth(0)]
|
let [s:bufnr, s:winw] = [bufnr('%'), winwidth(0)]
|
||||||
let [s:focus, s:prompt] = [1, ['', '', '']]
|
let [s:focus, s:prompt] = [1, ['', '', '']]
|
||||||
|
@ -297,7 +319,7 @@ fu! ctrlp#clra()
|
||||||
if isdirectory(cadir)
|
if isdirectory(cadir)
|
||||||
let cafiles = split(s:glbpath(s:fnesc(cadir, 'g', ','), '**', 1), "\n")
|
let cafiles = split(s:glbpath(s:fnesc(cadir, 'g', ','), '**', 1), "\n")
|
||||||
let eval = '!isdirectory(v:val) && v:val !~ ''\v[\/]cache[.a-z]+$|\.log$'''
|
let eval = '!isdirectory(v:val) && v:val !~ ''\v[\/]cache[.a-z]+$|\.log$'''
|
||||||
sil! cal map(filter(cafiles, eval), 'delete(v:val)')
|
sil! cal map(s:ifilter(cafiles, eval), 'delete(v:val)')
|
||||||
en
|
en
|
||||||
cal ctrlp#clr()
|
cal ctrlp#clr()
|
||||||
endf
|
endf
|
||||||
|
@ -362,7 +384,7 @@ fu! s:UserCmd(lscmd)
|
||||||
let [ssl, &ssl, path] = [&ssl, 0, tr(path, '/', '\')]
|
let [ssl, &ssl, path] = [&ssl, 0, tr(path, '/', '\')]
|
||||||
en
|
en
|
||||||
if has('win32') || has('win64')
|
if has('win32') || has('win64')
|
||||||
let lscmd = substitute(lscmd, '\v(^|&&\s*)\zscd (/d)@!', 'cd /d ', '')
|
let lscmd = substitute(lscmd, '\v(^|\&\&\s*)\zscd (/d)@!', 'cd /d ', '')
|
||||||
en
|
en
|
||||||
let path = exists('*shellescape') ? shellescape(path) : path
|
let path = exists('*shellescape') ? shellescape(path) : path
|
||||||
let g:ctrlp_allfiles = split(system(printf(lscmd, path)), "\n")
|
let g:ctrlp_allfiles = split(system(printf(lscmd, path)), "\n")
|
||||||
|
@ -433,7 +455,7 @@ endf
|
||||||
fu! s:MatchIt(items, pat, limit, exc)
|
fu! s:MatchIt(items, pat, limit, exc)
|
||||||
let [lines, id] = [[], 0]
|
let [lines, id] = [[], 0]
|
||||||
let pat =
|
let pat =
|
||||||
\ s:byfname ? map(split(a:pat, '^[^;]\+\\\@<!\zs;', 1), 's:martcs.v:val')
|
\ s:byfname() ? map(split(a:pat, '^[^;]\+\\\@<!\zs;', 1), 's:martcs.v:val')
|
||||||
\ : s:martcs.a:pat
|
\ : s:martcs.a:pat
|
||||||
for item in a:items
|
for item in a:items
|
||||||
let id += 1
|
let id += 1
|
||||||
|
@ -450,7 +472,16 @@ fu! s:MatchedItems(items, pat, limit)
|
||||||
let exc = exists('s:crfilerel') ? s:crfilerel : ''
|
let exc = exists('s:crfilerel') ? s:crfilerel : ''
|
||||||
let items = s:narrowable() ? s:matched + s:mdata[3] : a:items
|
let items = s:narrowable() ? s:matched + s:mdata[3] : a:items
|
||||||
if s:matcher != {}
|
if s:matcher != {}
|
||||||
let argms = [items, a:pat, a:limit, s:mmode(), s:ispath, exc, s:regexp]
|
let argms =
|
||||||
|
\ has_key(s:matcher, 'arg_type') && s:matcher['arg_type'] == 'dict' ? [{
|
||||||
|
\ 'items': items,
|
||||||
|
\ 'str': a:pat,
|
||||||
|
\ 'limit': a:limit,
|
||||||
|
\ 'mmode': s:mmode(),
|
||||||
|
\ 'ispath': s:ispath,
|
||||||
|
\ 'crfile': exc,
|
||||||
|
\ 'regex': s:regexp,
|
||||||
|
\ }] : [items, a:pat, a:limit, s:mmode(), s:ispath, exc, s:regexp]
|
||||||
let lines = call(s:matcher['match'], argms, s:matcher)
|
let lines = call(s:matcher['match'], argms, s:matcher)
|
||||||
el
|
el
|
||||||
let lines = s:MatchIt(items, a:pat, a:limit, exc)
|
let lines = s:MatchIt(items, a:pat, a:limit, exc)
|
||||||
|
@ -480,7 +511,7 @@ fu! s:SplitPattern(str)
|
||||||
if exists('lst')
|
if exists('lst')
|
||||||
let pat = ''
|
let pat = ''
|
||||||
if !empty(lst)
|
if !empty(lst)
|
||||||
if s:byfname && index(lst, ';') > 0
|
if s:byfname() && index(lst, ';') > 0
|
||||||
let fbar = index(lst, ';')
|
let fbar = index(lst, ';')
|
||||||
let lst_1 = s:sublist(lst, 0, fbar - 1)
|
let lst_1 = s:sublist(lst, 0, fbar - 1)
|
||||||
let lst_2 = len(lst) - 1 > fbar ? s:sublist(lst, fbar + 1, -1) : ['']
|
let lst_2 = len(lst) - 1 > fbar ? s:sublist(lst, fbar + 1, -1) : ['']
|
||||||
|
@ -494,15 +525,19 @@ fu! s:SplitPattern(str)
|
||||||
endf
|
endf
|
||||||
" * BuildPrompt() {{{1
|
" * BuildPrompt() {{{1
|
||||||
fu! s:Render(lines, pat)
|
fu! s:Render(lines, pat)
|
||||||
let [&ma, lines, s:height] = [1, a:lines, min([len(a:lines), s:winh])]
|
let [&ma, lines, s:res_count] = [1, a:lines, len(a:lines)]
|
||||||
let pat = s:byfname ? split(a:pat, '^[^;]\+\\\@<!\zs;', 1)[0] : a:pat
|
let height = min([max([s:mw_min, s:res_count]), s:winmaxh])
|
||||||
|
let pat = s:byfname() ? split(a:pat, '^[^;]\+\\\@<!\zs;', 1)[0] : a:pat
|
||||||
|
let cur_cmd = 'keepj norm! '.( s:mw_order == 'btt' ? 'G' : 'gg' ).'1|'
|
||||||
" Setup the match window
|
" Setup the match window
|
||||||
sil! exe '%d _ | res' s:height
|
sil! exe '%d _ | res' height
|
||||||
" Print the new items
|
" Print the new items
|
||||||
if empty(lines)
|
if empty(lines)
|
||||||
let [s:matched, s:lines] = [[], []]
|
let [s:matched, s:lines] = [[], []]
|
||||||
cal setline(1, ' == NO ENTRIES ==')
|
let lines = [' == NO ENTRIES ==']
|
||||||
|
cal setline(1, s:offset(lines, height - 1))
|
||||||
setl noma nocul
|
setl noma nocul
|
||||||
|
exe cur_cmd
|
||||||
cal s:unmarksigns()
|
cal s:unmarksigns()
|
||||||
if s:dohighlight() | cal clearmatches() | en
|
if s:dohighlight() | cal clearmatches() | en
|
||||||
retu
|
retu
|
||||||
|
@ -514,12 +549,12 @@ fu! s:Render(lines, pat)
|
||||||
cal sort(lines, 's:mixedsort')
|
cal sort(lines, 's:mixedsort')
|
||||||
unl s:compat
|
unl s:compat
|
||||||
en
|
en
|
||||||
if s:mwreverse | cal reverse(lines) | en
|
if s:mw_order == 'btt' | cal reverse(lines) | en
|
||||||
let s:lines = copy(lines)
|
let s:lines = copy(lines)
|
||||||
cal map(lines, 's:formatline(v:val)')
|
cal map(lines, 's:formatline(v:val)')
|
||||||
cal setline(1, lines)
|
cal setline(1, s:offset(lines, height))
|
||||||
setl noma cul
|
setl noma cul
|
||||||
exe 'keepj norm!' ( s:mwreverse ? 'G' : 'gg' ).'1|'
|
exe cur_cmd
|
||||||
cal s:unmarksigns()
|
cal s:unmarksigns()
|
||||||
cal s:remarksigns()
|
cal s:remarksigns()
|
||||||
if exists('s:cline') && s:nolim != 1
|
if exists('s:cline') && s:nolim != 1
|
||||||
|
@ -541,7 +576,7 @@ fu! s:Update(str)
|
||||||
let s:martcs = &scs && str =~ '\u' ? '\C' : ''
|
let s:martcs = &scs && str =~ '\u' ? '\C' : ''
|
||||||
let pat = s:matcher == {} ? s:SplitPattern(str) : str
|
let pat = s:matcher == {} ? s:SplitPattern(str) : str
|
||||||
let lines = s:nolim == 1 && empty(str) ? copy(g:ctrlp_lines)
|
let lines = s:nolim == 1 && empty(str) ? copy(g:ctrlp_lines)
|
||||||
\ : s:MatchedItems(g:ctrlp_lines, pat, s:winh)
|
\ : s:MatchedItems(g:ctrlp_lines, pat, s:winmaxh)
|
||||||
cal s:Render(lines, pat)
|
cal s:Render(lines, pat)
|
||||||
endf
|
endf
|
||||||
|
|
||||||
|
@ -550,7 +585,7 @@ fu! s:ForceUpdate()
|
||||||
endf
|
endf
|
||||||
|
|
||||||
fu! s:BuildPrompt(upd)
|
fu! s:BuildPrompt(upd)
|
||||||
let base = ( s:regexp ? 'r' : '>' ).( s:byfname ? 'd' : '>' ).'> '
|
let base = ( s:regexp ? 'r' : '>' ).( s:byfname() ? 'd' : '>' ).'> '
|
||||||
let str = escape(s:getinput(), '\')
|
let str = escape(s:getinput(), '\')
|
||||||
let lazy = str == '' || exists('s:force') || !has('autocmd') ? 0 : s:lazy
|
let lazy = str == '' || exists('s:force') || !has('autocmd') ? 0 : s:lazy
|
||||||
if a:upd && !lazy && ( s:matches || s:regexp || exists('s:did_exp')
|
if a:upd && !lazy && ( s:matches || s:regexp || exists('s:did_exp')
|
||||||
|
@ -581,11 +616,8 @@ fu! s:SetDefTxt()
|
||||||
if s:deftxt == '0' || ( s:deftxt == 1 && !s:ispath ) | retu | en
|
if s:deftxt == '0' || ( s:deftxt == 1 && !s:ispath ) | retu | en
|
||||||
let txt = s:deftxt
|
let txt = s:deftxt
|
||||||
if !type(txt)
|
if !type(txt)
|
||||||
let txt = txt && !stridx(s:crfpath, s:dyncwd)
|
let path = s:crfpath.s:lash(s:crfpath)
|
||||||
\ ? ctrlp#rmbasedir([s:crfpath])[0] : ''
|
let txt = txt && !stridx(path, s:dyncwd) ? ctrlp#rmbasedir([path])[0] : ''
|
||||||
let txt = txt != '' ? txt.s:lash(s:crfpath) : ''
|
|
||||||
el
|
|
||||||
let txt = expand(txt, 1)
|
|
||||||
en
|
en
|
||||||
let s:prompt[0] = txt
|
let s:prompt[0] = txt
|
||||||
endf
|
endf
|
||||||
|
@ -735,7 +767,7 @@ endf
|
||||||
|
|
||||||
fu! s:PrtSelectJump(char)
|
fu! s:PrtSelectJump(char)
|
||||||
let lines = copy(s:lines)
|
let lines = copy(s:lines)
|
||||||
if s:byfname
|
if s:byfname()
|
||||||
cal map(lines, 'split(v:val, ''[\/]\ze[^\/]\+$'')[-1]')
|
cal map(lines, 'split(v:val, ''[\/]\ze[^\/]\+$'')[-1]')
|
||||||
en
|
en
|
||||||
" Cycle through matches, use s:jmpchr to store last jump
|
" Cycle through matches, use s:jmpchr to store last jump
|
||||||
|
@ -904,6 +936,11 @@ fu! s:ToggleKeyLoop()
|
||||||
en
|
en
|
||||||
endf
|
endf
|
||||||
|
|
||||||
|
fu! s:ToggleMRURelative()
|
||||||
|
cal ctrlp#mrufiles#tgrel()
|
||||||
|
cal s:PrtClearCache()
|
||||||
|
endf
|
||||||
|
|
||||||
fu! s:PrtSwitcher()
|
fu! s:PrtSwitcher()
|
||||||
let [s:force, s:matches] = [1, 1]
|
let [s:force, s:matches] = [1, 1]
|
||||||
cal s:BuildPrompt(1)
|
cal s:BuildPrompt(1)
|
||||||
|
@ -937,14 +974,21 @@ fu! s:SetWD(args)
|
||||||
en
|
en
|
||||||
endf
|
endf
|
||||||
" * AcceptSelection() {{{1
|
" * AcceptSelection() {{{1
|
||||||
fu! ctrlp#acceptfile(mode, line, ...)
|
fu! ctrlp#acceptfile(...)
|
||||||
let [md, useb] = [a:mode, 0]
|
let useb = 0
|
||||||
if !type(a:line)
|
if a:0 == 1 && type(a:1) == 4
|
||||||
let [filpath, bufnr, useb] = [a:line, a:line, 1]
|
let [md, line] = [a:1['action'], a:1['line']]
|
||||||
|
let atl = has_key(a:1, 'tail') ? a:1['tail'] : ''
|
||||||
el
|
el
|
||||||
let filpath = fnamemodify(a:line, ':p')
|
let [md, line] = [a:1, a:2]
|
||||||
if s:nonamecond(a:line, filpath)
|
let atl = a:0 > 2 ? a:3 : ''
|
||||||
let bufnr = str2nr(matchstr(a:line, '[\/]\?\[\zs\d\+\ze\*No Name\]$'))
|
en
|
||||||
|
if !type(line)
|
||||||
|
let [filpath, bufnr, useb] = [line, line, 1]
|
||||||
|
el
|
||||||
|
let filpath = fnamemodify(line, ':p')
|
||||||
|
if s:nonamecond(line, filpath)
|
||||||
|
let bufnr = str2nr(matchstr(line, '[\/]\?\[\zs\d\+\ze\*No Name\]$'))
|
||||||
let [filpath, useb] = [bufnr, 1]
|
let [filpath, useb] = [bufnr, 1]
|
||||||
el
|
el
|
||||||
let bufnr = bufnr('^'.filpath.'$')
|
let bufnr = bufnr('^'.filpath.'$')
|
||||||
|
@ -952,7 +996,7 @@ fu! ctrlp#acceptfile(mode, line, ...)
|
||||||
en
|
en
|
||||||
cal s:PrtExit()
|
cal s:PrtExit()
|
||||||
let tail = s:tail()
|
let tail = s:tail()
|
||||||
let j2l = a:0 ? a:1 : matchstr(tail, '^ +\zs\d\+$')
|
let j2l = atl != '' ? atl : matchstr(tail, '^ +\zs\d\+$')
|
||||||
if ( s:jmptobuf =~ md || ( s:jmptobuf && md =~ '[et]' ) ) && bufnr > 0
|
if ( s:jmptobuf =~ md || ( s:jmptobuf && md =~ '[et]' ) ) && bufnr > 0
|
||||||
\ && !( md == 'e' && bufnr == bufnr('%') )
|
\ && !( md == 'e' && bufnr == bufnr('%') )
|
||||||
let [jmpb, bufwinnr] = [1, bufwinnr(bufnr)]
|
let [jmpb, bufwinnr] = [1, bufwinnr(bufnr)]
|
||||||
|
@ -980,7 +1024,7 @@ fu! ctrlp#acceptfile(mode, line, ...)
|
||||||
" Reset &switchbuf option
|
" Reset &switchbuf option
|
||||||
let [swb, &swb] = [&swb, '']
|
let [swb, &swb] = [&swb, '']
|
||||||
" Open new window/buffer
|
" Open new window/buffer
|
||||||
let [fid, tail] = [( useb ? bufnr : filpath ), ( a:0 ? ' +'.a:1 : tail )]
|
let [fid, tail] = [( useb ? bufnr : filpath ), ( atl != '' ? ' +'.atl : tail )]
|
||||||
let args = [cmd, fid, tail, 1, [useb, j2l]]
|
let args = [cmd, fid, tail, 1, [useb, j2l]]
|
||||||
cal call('s:openfile', args)
|
cal call('s:openfile', args)
|
||||||
let &swb = swb
|
let &swb = swb
|
||||||
|
@ -1011,24 +1055,34 @@ fu! s:SpecInputs(str)
|
||||||
retu 0
|
retu 0
|
||||||
endf
|
endf
|
||||||
|
|
||||||
fu! s:AcceptSelection(mode)
|
fu! s:AcceptSelection(action)
|
||||||
if a:mode != 'e' && s:OpenMulti(a:mode) != -1 | retu | en
|
let [md, icr] = [a:action[0], match(a:action, 'r') >= 0]
|
||||||
|
let subm = icr || ( !icr && md == 'e' )
|
||||||
|
if !subm && s:OpenMulti(md) != -1 | retu | en
|
||||||
let str = s:getinput()
|
let str = s:getinput()
|
||||||
if a:mode == 'e' | if s:SpecInputs(str) | retu | en | en
|
if subm | if s:SpecInputs(str) | retu | en | en
|
||||||
" Get the selected line
|
" Get the selected line
|
||||||
let line = ctrlp#getcline()
|
let line = ctrlp#getcline()
|
||||||
if a:mode != 'e' && !s:itemtype && line == ''
|
if !subm && !s:itemtype && line == '' && line('.') > s:offset
|
||||||
\ && str !~ '\v^(\.\.([\/]\.\.)*[\/]?[.\/]*|/|\\|\?|\@.+)$'
|
\ && str !~ '\v^(\.\.([\/]\.\.)*[\/]?[.\/]*|/|\\|\?|\@.+)$'
|
||||||
cal s:CreateNewFile(a:mode) | retu
|
cal s:CreateNewFile(md) | retu
|
||||||
en
|
en
|
||||||
if empty(line) | retu | en
|
if empty(line) | retu | en
|
||||||
" Do something with it
|
" Do something with it
|
||||||
if s:openfunc != {} && has_key(s:openfunc, s:ctype)
|
if s:openfunc != {} && has_key(s:openfunc, s:ctype)
|
||||||
let actfunc = s:openfunc[s:ctype]
|
let actfunc = s:openfunc[s:ctype]
|
||||||
|
let type = has_key(s:openfunc, 'arg_type') ? s:openfunc['arg_type'] : 'list'
|
||||||
el
|
el
|
||||||
let actfunc = s:itemtype < 3 ? 'ctrlp#acceptfile' : s:getextvar('accept')
|
if s:itemtype < 3
|
||||||
|
let [actfunc, type] = ['ctrlp#acceptfile', 'dict']
|
||||||
|
el
|
||||||
|
let [actfunc, exttype] = [s:getextvar('accept'), s:getextvar('act_farg')]
|
||||||
|
let type = exttype == 'dict' ? exttype : 'list'
|
||||||
|
en
|
||||||
en
|
en
|
||||||
cal call(actfunc, [a:mode, line])
|
let actargs = type == 'dict' ? [{ 'action': md, 'line': line, 'icr': icr }]
|
||||||
|
\ : [md, line]
|
||||||
|
cal call(actfunc, actargs)
|
||||||
endf
|
endf
|
||||||
" - CreateNewFile() {{{1
|
" - CreateNewFile() {{{1
|
||||||
fu! s:CreateNewFile(...)
|
fu! s:CreateNewFile(...)
|
||||||
|
@ -1187,7 +1241,10 @@ fu! s:OpenNoMarks(md, line)
|
||||||
cal s:remarksigns()
|
cal s:remarksigns()
|
||||||
cal s:BuildPrompt(0)
|
cal s:BuildPrompt(0)
|
||||||
elsei a:md == 'x'
|
elsei a:md == 'x'
|
||||||
cal call(s:openfunc[s:ctype], [a:md, a:line], s:openfunc)
|
let type = has_key(s:openfunc, 'arg_type') ? s:openfunc['arg_type'] : 'dict'
|
||||||
|
let argms = type == 'dict' ? [{ 'action': a:md, 'line': a:line }]
|
||||||
|
\ : [a:md, a:line]
|
||||||
|
cal call(s:openfunc[s:ctype], argms, s:openfunc)
|
||||||
elsei a:md == 'd'
|
elsei a:md == 'd'
|
||||||
let dir = fnamemodify(a:line, ':h')
|
let dir = fnamemodify(a:line, ':h')
|
||||||
if isdirectory(dir)
|
if isdirectory(dir)
|
||||||
|
@ -1278,7 +1335,7 @@ fu! s:mixedsort(...)
|
||||||
let [cln, cml] = [ctrlp#complen(a:1, a:2), s:compmatlen(a:1, a:2)]
|
let [cln, cml] = [ctrlp#complen(a:1, a:2), s:compmatlen(a:1, a:2)]
|
||||||
if s:ispath
|
if s:ispath
|
||||||
let ms = []
|
let ms = []
|
||||||
if s:height < 21
|
if s:res_count < 21
|
||||||
let ms += [s:compfnlen(a:1, a:2)]
|
let ms += [s:compfnlen(a:1, a:2)]
|
||||||
if s:itemtype !~ '^[12]$' | let ms += [s:comptime(a:1, a:2)] | en
|
if s:itemtype !~ '^[12]$' | let ms += [s:comptime(a:1, a:2)] | en
|
||||||
if !s:itemtype | let ms += [s:comparent(a:1, a:2)] | en
|
if !s:itemtype | let ms += [s:comparent(a:1, a:2)] | en
|
||||||
|
@ -1324,12 +1381,21 @@ fu! ctrlp#statusline()
|
||||||
let prv = tps[s:walker(max, s:itemtype, -1)][1]
|
let prv = tps[s:walker(max, s:itemtype, -1)][1]
|
||||||
let s:ctype = tps[s:itemtype][0]
|
let s:ctype = tps[s:itemtype][0]
|
||||||
let focus = s:focus ? 'prt' : 'win'
|
let focus = s:focus ? 'prt' : 'win'
|
||||||
let byfname = s:byfname ? 'file' : 'path'
|
let byfname = s:ispath ? s:byfname ? 'file' : 'path' : 'line'
|
||||||
let marked = s:opmul != '0' ?
|
let marked = s:opmul != '0' ?
|
||||||
\ exists('s:marked') ? ' <'.s:dismrk().'>' : ' <->' : ''
|
\ exists('s:marked') ? ' <'.s:dismrk().'>' : ' <->' : ''
|
||||||
if s:status != {}
|
if s:status != {}
|
||||||
let args = [focus, byfname, s:regexp, prv, s:ctype, nxt, marked]
|
let argms =
|
||||||
let &l:stl = call(s:status['main'], args, s:status)
|
\ has_key(s:status, 'arg_type') && s:status['arg_type'] == 'dict' ? [{
|
||||||
|
\ 'focus': focus,
|
||||||
|
\ 'byfname': byfname,
|
||||||
|
\ 'regex': s:regexp,
|
||||||
|
\ 'prev': prv,
|
||||||
|
\ 'item': s:ctype,
|
||||||
|
\ 'next': nxt,
|
||||||
|
\ 'marked': marked,
|
||||||
|
\ }] : [focus, byfname, s:regexp, prv, s:ctype, nxt, marked]
|
||||||
|
let &l:stl = call(s:status['main'], argms, s:status)
|
||||||
el
|
el
|
||||||
let item = '%#CtrlPMode1# '.s:ctype.' %*'
|
let item = '%#CtrlPMode1# '.s:ctype.' %*'
|
||||||
let focus = '%#CtrlPMode2# '.focus.' %*'
|
let focus = '%#CtrlPMode2# '.focus.' %*'
|
||||||
|
@ -1349,8 +1415,13 @@ endf
|
||||||
fu! ctrlp#progress(enum, ...)
|
fu! ctrlp#progress(enum, ...)
|
||||||
if has('macunix') || has('mac') | sl 1m | en
|
if has('macunix') || has('mac') | sl 1m | en
|
||||||
let txt = a:0 ? '(press ctrl-c to abort)' : ''
|
let txt = a:0 ? '(press ctrl-c to abort)' : ''
|
||||||
let &l:stl = s:status != {} ? call(s:status['prog'], [a:enum], s:status)
|
if s:status != {}
|
||||||
\ : '%#CtrlPStats# '.a:enum.' %* '.txt.'%=%<%#CtrlPMode2# %{getcwd()} %*'
|
let argms = has_key(s:status, 'arg_type') && s:status['arg_type'] == 'dict'
|
||||||
|
\ ? [{ 'str': a:enum }] : [a:enum]
|
||||||
|
let &l:stl = call(s:status['prog'], argms, s:status)
|
||||||
|
el
|
||||||
|
let &l:stl = '%#CtrlPStats# '.a:enum.' %* '.txt.'%=%<%#CtrlPMode2# %{getcwd()} %*'
|
||||||
|
en
|
||||||
redraws
|
redraws
|
||||||
endf
|
endf
|
||||||
" *** Paths {{{2
|
" *** Paths {{{2
|
||||||
|
@ -1376,6 +1447,11 @@ fu! s:pathshorten(str)
|
||||||
retu matchstr(a:str, '^.\{9}').'...'
|
retu matchstr(a:str, '^.\{9}').'...'
|
||||||
\ .matchstr(a:str, '.\{'.( s:winw - 16 ).'}$')
|
\ .matchstr(a:str, '.\{'.( s:winw - 16 ).'}$')
|
||||||
endf
|
endf
|
||||||
|
|
||||||
|
fu! s:offset(lines, height)
|
||||||
|
let s:offset = s:mw_order == 'btt' ? ( a:height - s:res_count ) : 0
|
||||||
|
retu s:offset > 0 ? ( repeat([''], s:offset) + a:lines ) : a:lines
|
||||||
|
endf
|
||||||
" Directory completion {{{3
|
" Directory completion {{{3
|
||||||
fu! s:dircompl(be, sd)
|
fu! s:dircompl(be, sd)
|
||||||
if a:sd == '' | retu [] | en
|
if a:sd == '' | retu [] | en
|
||||||
|
@ -1464,7 +1540,7 @@ fu! s:samerootsyml(each, isfile, cwd)
|
||||||
endf
|
endf
|
||||||
|
|
||||||
fu! ctrlp#rmbasedir(items)
|
fu! ctrlp#rmbasedir(items)
|
||||||
let cwd = s:dyncwd.( s:dyncwd !~ '[\/]$' ? s:lash : '' )
|
let cwd = s:dyncwd.s:lash()
|
||||||
if a:items != [] && !stridx(a:items[0], cwd)
|
if a:items != [] && !stridx(a:items[0], cwd)
|
||||||
let idx = strlen(cwd)
|
let idx = strlen(cwd)
|
||||||
retu map(a:items, 'strpart(v:val, idx)')
|
retu map(a:items, 'strpart(v:val, idx)')
|
||||||
|
@ -1599,6 +1675,18 @@ fu! s:dosigns()
|
||||||
retu exists('s:marked') && s:bufnr > 0 && s:opmul != '0' && has('signs')
|
retu exists('s:marked') && s:bufnr > 0 && s:opmul != '0' && has('signs')
|
||||||
endf
|
endf
|
||||||
" Lists & Dictionaries {{{2
|
" Lists & Dictionaries {{{2
|
||||||
|
fu! s:ifilter(list, str)
|
||||||
|
let [rlist, estr] = [[], substitute(a:str, 'v:val', 'each', 'g')]
|
||||||
|
for each in a:list
|
||||||
|
try
|
||||||
|
if eval(estr)
|
||||||
|
cal add(rlist, each)
|
||||||
|
en
|
||||||
|
cat | con | endt
|
||||||
|
endfo
|
||||||
|
retu rlist
|
||||||
|
endf
|
||||||
|
|
||||||
fu! s:dictindex(dict, expr)
|
fu! s:dictindex(dict, expr)
|
||||||
for key in keys(a:dict)
|
for key in keys(a:dict)
|
||||||
if a:dict[key] == a:expr | retu key | en
|
if a:dict[key] == a:expr | retu key | en
|
||||||
|
@ -1808,7 +1896,6 @@ endf
|
||||||
fu! s:modevar()
|
fu! s:modevar()
|
||||||
let s:matchtype = s:mtype()
|
let s:matchtype = s:mtype()
|
||||||
let s:ispath = s:ispathitem()
|
let s:ispath = s:ispathitem()
|
||||||
if !s:ispath | let s:byfname = 0 | en
|
|
||||||
let s:mfunc = s:mfunc()
|
let s:mfunc = s:mfunc()
|
||||||
let s:nolim = s:getextvar('nolim')
|
let s:nolim = s:getextvar('nolim')
|
||||||
let s:dosort = s:getextvar('sort')
|
let s:dosort = s:getextvar('sort')
|
||||||
|
@ -1820,6 +1907,10 @@ fu! s:nosort()
|
||||||
\ || ( s:itemtype =~ '\v^(1|2)$' && s:prompt == ['', '', ''] ) || !s:dosort
|
\ || ( s:itemtype =~ '\v^(1|2)$' && s:prompt == ['', '', ''] ) || !s:dosort
|
||||||
endf
|
endf
|
||||||
|
|
||||||
|
fu! s:byfname()
|
||||||
|
retu s:ispath && s:byfname
|
||||||
|
endf
|
||||||
|
|
||||||
fu! s:narrowable()
|
fu! s:narrowable()
|
||||||
retu exists('s:act_add') && exists('s:matched') && s:matched != []
|
retu exists('s:act_add') && exists('s:matched') && s:matched != []
|
||||||
\ && exists('s:mdata') && s:mdata[:2] == [s:dyncwd, s:itemtype, s:regexp]
|
\ && exists('s:mdata') && s:mdata[:2] == [s:dyncwd, s:itemtype, s:regexp]
|
||||||
|
@ -1834,7 +1925,7 @@ fu! s:getinput(...)
|
||||||
if gmd =~ 't' && gmd =~ 'k' && !a:0 && matchstr(str, '.$') =~ '\k'
|
if gmd =~ 't' && gmd =~ 'k' && !a:0 && matchstr(str, '.$') =~ '\k'
|
||||||
retu join(prt, '')
|
retu join(prt, '')
|
||||||
en
|
en
|
||||||
let [pf, rz] = [( s:byfname ? 'f' : 'p' ), ( s:regexp ? 'r' : 'z' )]
|
let [pf, rz] = [( s:byfname() ? 'f' : 'p' ), ( s:regexp ? 'r' : 'z' )]
|
||||||
for dict in s:abbrev['abbrevs']
|
for dict in s:abbrev['abbrevs']
|
||||||
let dmd = has_key(dict, 'mode') ? dict['mode'] : ''
|
let dmd = has_key(dict, 'mode') ? dict['mode'] : ''
|
||||||
let pat = escape(dict['pattern'], '~')
|
let pat = escape(dict['pattern'], '~')
|
||||||
|
@ -1916,7 +2007,7 @@ fu! s:getenv()
|
||||||
let [s:cwd, s:winres] = [getcwd(), [winrestcmd(), &lines, winnr('$')]]
|
let [s:cwd, s:winres] = [getcwd(), [winrestcmd(), &lines, winnr('$')]]
|
||||||
let [s:crword, s:crnbword] = [expand('<cword>', 1), expand('<cWORD>', 1)]
|
let [s:crword, s:crnbword] = [expand('<cword>', 1), expand('<cWORD>', 1)]
|
||||||
let [s:crgfile, s:crline] = [expand('<cfile>', 1), getline('.')]
|
let [s:crgfile, s:crline] = [expand('<cfile>', 1), getline('.')]
|
||||||
let [s:winh, s:crcursor] = [min([s:mxheight, &lines]), getpos('.')]
|
let [s:winmaxh, s:crcursor] = [min([s:mw_max, &lines]), getpos('.')]
|
||||||
let [s:crbufnr, s:crvisual] = [bufnr('%'), s:lastvisual()]
|
let [s:crbufnr, s:crvisual] = [bufnr('%'), s:lastvisual()]
|
||||||
let s:crfile = bufname('%') == ''
|
let s:crfile = bufname('%') == ''
|
||||||
\ ? '['.s:crbufnr.'*No Name]' : expand('%:p', 1)
|
\ ? '['.s:crbufnr.'*No Name]' : expand('%:p', 1)
|
||||||
|
@ -1939,7 +2030,8 @@ endf
|
||||||
fu! s:log(m)
|
fu! s:log(m)
|
||||||
if exists('g:ctrlp_log') && g:ctrlp_log | if a:m
|
if exists('g:ctrlp_log') && g:ctrlp_log | if a:m
|
||||||
let cadir = ctrlp#utils#cachedir()
|
let cadir = ctrlp#utils#cachedir()
|
||||||
sil! exe 'redi! >' cadir.s:lash(cadir).'ctrlp.log'
|
let apd = g:ctrlp_log > 1 ? '>' : ''
|
||||||
|
sil! exe 'redi! >'.apd cadir.s:lash(cadir).'ctrlp.log'
|
||||||
el
|
el
|
||||||
sil! redi END
|
sil! redi END
|
||||||
en | en
|
en | en
|
||||||
|
@ -2023,7 +2115,7 @@ endf
|
||||||
|
|
||||||
fu! s:mfunc()
|
fu! s:mfunc()
|
||||||
let mfunc = 'match'
|
let mfunc = 'match'
|
||||||
if s:byfname && s:ispath
|
if s:byfname()
|
||||||
let mfunc = 's:matchfname'
|
let mfunc = 's:matchfname'
|
||||||
elsei s:itemtype > 2
|
elsei s:itemtype > 2
|
||||||
let matchtypes = { 'tabs': 's:matchtabs', 'tabe': 's:matchtabe' }
|
let matchtypes = { 'tabs': 's:matchtabs', 'tabe': 's:matchtabe' }
|
||||||
|
@ -2102,7 +2194,9 @@ fu! s:getextvar(key)
|
||||||
endf
|
endf
|
||||||
|
|
||||||
fu! ctrlp#getcline()
|
fu! ctrlp#getcline()
|
||||||
retu !empty(s:lines) ? s:lines[line('.') - 1] : ''
|
let [linenr, offset] = [line('.'), ( s:offset > 0 ? s:offset : 0 )]
|
||||||
|
retu !empty(s:lines) && !( offset && linenr <= offset )
|
||||||
|
\ ? s:lines[linenr - 1 - offset] : ''
|
||||||
endf
|
endf
|
||||||
|
|
||||||
fu! ctrlp#getmarkedlist()
|
fu! ctrlp#getmarkedlist()
|
||||||
|
@ -2134,6 +2228,10 @@ endf
|
||||||
fu! ctrlp#call(func, ...)
|
fu! ctrlp#call(func, ...)
|
||||||
retu call(a:func, a:000)
|
retu call(a:func, a:000)
|
||||||
endf
|
endf
|
||||||
|
|
||||||
|
fu! ctrlp#getvar(var)
|
||||||
|
retu {a:var}
|
||||||
|
endf
|
||||||
"}}}1
|
"}}}1
|
||||||
" * Initialization {{{1
|
" * Initialization {{{1
|
||||||
fu! ctrlp#setlines(...)
|
fu! ctrlp#setlines(...)
|
||||||
|
|
|
@ -248,7 +248,9 @@ endf
|
||||||
fu! ctrlp#buffertag#cmd(mode, ...)
|
fu! ctrlp#buffertag#cmd(mode, ...)
|
||||||
let s:btmode = a:mode
|
let s:btmode = a:mode
|
||||||
if a:0 && !empty(a:1)
|
if a:0 && !empty(a:1)
|
||||||
let s:bufname = fnamemodify(a:1, ':p')
|
let s:btmode = 0
|
||||||
|
let bname = a:1 =~# '^%$\|^#\d*$' ? expand(a:1) : a:1
|
||||||
|
let s:bufname = fnamemodify(bname, ':p')
|
||||||
en
|
en
|
||||||
retu s:id
|
retu s:id
|
||||||
endf
|
endf
|
||||||
|
|
|
@ -83,7 +83,9 @@ endf
|
||||||
fu! ctrlp#changes#cmd(mode, ...)
|
fu! ctrlp#changes#cmd(mode, ...)
|
||||||
let s:clmode = a:mode
|
let s:clmode = a:mode
|
||||||
if a:0 && !empty(a:1)
|
if a:0 && !empty(a:1)
|
||||||
let s:bufnr = bufnr('^'.fnamemodify(a:1, ':p').'$')
|
let s:clmode = 0
|
||||||
|
let bname = a:1 =~# '^%$\|^#\d*$' ? expand(a:1) : a:1
|
||||||
|
let s:bufnr = bufnr('^'.fnamemodify(bname, ':p').'$')
|
||||||
en
|
en
|
||||||
retu s:id
|
retu s:id
|
||||||
endf
|
endf
|
||||||
|
|
|
@ -74,7 +74,7 @@ fu! ctrlp#dir#init(...)
|
||||||
endf
|
endf
|
||||||
|
|
||||||
fu! ctrlp#dir#accept(mode, str)
|
fu! ctrlp#dir#accept(mode, str)
|
||||||
let path = a:mode == 'h' ? getcwd() : s:cwd.ctrlp#utils#lash().a:str
|
let path = a:mode == 'h' ? getcwd() : s:cwd.ctrlp#call('s:lash', s:cwd).a:str
|
||||||
if a:mode =~ 't\|v\|h'
|
if a:mode =~ 't\|v\|h'
|
||||||
cal ctrlp#exit()
|
cal ctrlp#exit()
|
||||||
en
|
en
|
||||||
|
|
|
@ -11,7 +11,7 @@ en
|
||||||
let g:loaded_ctrlp_line = 1
|
let g:loaded_ctrlp_line = 1
|
||||||
|
|
||||||
cal add(g:ctrlp_ext_vars, {
|
cal add(g:ctrlp_ext_vars, {
|
||||||
\ 'init': 'ctrlp#line#init()',
|
\ 'init': 'ctrlp#line#init(s:crbufnr)',
|
||||||
\ 'accept': 'ctrlp#line#accept',
|
\ 'accept': 'ctrlp#line#accept',
|
||||||
\ 'lname': 'lines',
|
\ 'lname': 'lines',
|
||||||
\ 'sname': 'lns',
|
\ 'sname': 'lns',
|
||||||
|
@ -29,8 +29,9 @@ fu! s:syntax()
|
||||||
en
|
en
|
||||||
endf
|
endf
|
||||||
" Public {{{1
|
" Public {{{1
|
||||||
fu! ctrlp#line#init()
|
fu! ctrlp#line#init(bufnr)
|
||||||
let [bufs, lines] = [ctrlp#buffers('id'), []]
|
let [lines, bufnr] = [[], exists('s:bufnr') ? s:bufnr : a:bufnr]
|
||||||
|
let bufs = exists('s:lnmode') && s:lnmode ? ctrlp#buffers('id') : [bufnr]
|
||||||
for bufnr in bufs
|
for bufnr in bufs
|
||||||
let [lfb, bufn] = [getbufline(bufnr, 1, '$'), bufname(bufnr)]
|
let [lfb, bufn] = [getbufline(bufnr, 1, '$'), bufname(bufnr)]
|
||||||
if lfb == [] && bufn != ''
|
if lfb == [] && bufn != ''
|
||||||
|
@ -57,7 +58,13 @@ fu! ctrlp#line#accept(mode, str)
|
||||||
en
|
en
|
||||||
endf
|
endf
|
||||||
|
|
||||||
fu! ctrlp#line#id()
|
fu! ctrlp#line#cmd(mode, ...)
|
||||||
|
let s:lnmode = a:mode
|
||||||
|
if a:0 && !empty(a:1)
|
||||||
|
let s:lnmode = 0
|
||||||
|
let bname = a:1 =~# '^%$\|^#\d*$' ? expand(a:1) : a:1
|
||||||
|
let s:bufnr = bufnr('^'.fnamemodify(bname, ':p').'$')
|
||||||
|
en
|
||||||
retu s:id
|
retu s:id
|
||||||
endf
|
endf
|
||||||
"}}}
|
"}}}
|
||||||
|
|
|
@ -126,6 +126,10 @@ fu! ctrlp#mrufiles#bufs()
|
||||||
retu s:mrbs
|
retu s:mrbs
|
||||||
endf
|
endf
|
||||||
|
|
||||||
|
fu! ctrlp#mrufiles#tgrel()
|
||||||
|
let {s:re} = !{s:re}
|
||||||
|
endf
|
||||||
|
|
||||||
fu! ctrlp#mrufiles#cachefile()
|
fu! ctrlp#mrufiles#cachefile()
|
||||||
if !exists('s:cadir') || !exists('s:cafile')
|
if !exists('s:cadir') || !exists('s:cafile')
|
||||||
let s:cadir = ctrlp#utils#cachedir().ctrlp#utils#lash().'mru'
|
let s:cadir = ctrlp#utils#cachedir().ctrlp#utils#lash().'mru'
|
||||||
|
|
|
@ -40,9 +40,7 @@ Overview:~
|
||||||
|ctrlp_cmd|...................Default command used for the default mapping.
|
|ctrlp_cmd|...................Default command used for the default mapping.
|
||||||
|ctrlp_by_filename|...........Default to filename mode or not.
|
|ctrlp_by_filename|...........Default to filename mode or not.
|
||||||
|ctrlp_regexp|................Default to regexp mode or not.
|
|ctrlp_regexp|................Default to regexp mode or not.
|
||||||
|ctrlp_match_window_bottom|...Where to show the match window.
|
|ctrlp_match_window|..........Order, height and position of the match window.
|
||||||
|ctrlp_match_window_reversed|.Sort order in the match window.
|
|
||||||
|ctrlp_max_height|............Max height of the match window.
|
|
||||||
|ctrlp_switch_buffer|.........Jump to an open buffer if already opened.
|
|ctrlp_switch_buffer|.........Jump to an open buffer if already opened.
|
||||||
|ctrlp_reuse_window|..........Reuse special windows (help, quickfix, etc).
|
|ctrlp_reuse_window|..........Reuse special windows (help, quickfix, etc).
|
||||||
|ctrlp_tabpage_position|......Where to put the new tab page.
|
|ctrlp_tabpage_position|......Where to put the new tab page.
|
||||||
|
@ -77,6 +75,11 @@ Overview:~
|
||||||
|ctrlp_mruf_case_sensitive|...MRU files are case sensitive or not.
|
|ctrlp_mruf_case_sensitive|...MRU files are case sensitive or not.
|
||||||
|ctrlp_mruf_save_on_update|...Save to disk whenever a new entry is added.
|
|ctrlp_mruf_save_on_update|...Save to disk whenever a new entry is added.
|
||||||
|
|
||||||
|
BufferTag mode: (to enable, see |ctrlp-extensions|)
|
||||||
|
|g:ctrlp_buftag_ctags_bin|....The location of the ctags-compatible binary.
|
||||||
|
|g:ctrlp_buftag_systemenc|....The encoding used for the ctags command.
|
||||||
|
|g:ctrlp_buftag_types|........Add new filetypes and set the cmd arguments.
|
||||||
|
|
||||||
Advanced options:
|
Advanced options:
|
||||||
|ctrlp_open_func|.............Use custom file opening functions.
|
|ctrlp_open_func|.............Use custom file opening functions.
|
||||||
|ctrlp_status_func|...........Change CtrlP's two statuslines.
|
|ctrlp_status_func|...........Change CtrlP's two statuslines.
|
||||||
|
@ -114,21 +117,27 @@ Set this to 1 to set regexp search as the default: >
|
||||||
<
|
<
|
||||||
Can be toggled on/off by pressing <c-r> inside the prompt.
|
Can be toggled on/off by pressing <c-r> inside the prompt.
|
||||||
|
|
||||||
*'g:ctrlp_match_window_bottom'*
|
*'g:ctrlp_match_window'*
|
||||||
Set this to 0 to show the match window at the top of the screen: >
|
Change the postion, the listing order of results, the minimum and the maximum
|
||||||
let g:ctrlp_match_window_bottom = 1
|
heights of the match window: >
|
||||||
|
let g:ctrlp_match_window = ''
|
||||||
<
|
<
|
||||||
|
Example: >
|
||||||
|
let g:ctrlp_match_window = 'bottom,order:btt,min:1,max:10'
|
||||||
|
<
|
||||||
|
The position: (default: bottom)
|
||||||
|
top - show the match window at the top of the screen.
|
||||||
|
bottom - show the match window at the bottom of the screen.
|
||||||
|
|
||||||
*'g:ctrlp_match_window_reversed'*
|
The listing order of results: (default: btt)
|
||||||
Change the listing order of the files in the match window. The default setting
|
order:ttb - from top to bottom.
|
||||||
(1) is from bottom to top: >
|
order:btt - from bottom to top.
|
||||||
let g:ctrlp_match_window_reversed = 1
|
|
||||||
<
|
|
||||||
|
|
||||||
*'g:ctrlp_max_height'*
|
The minimum and maximum heights:
|
||||||
Set the maximum height of the match window: >
|
min:{n} - show minimum {n} lines (default: 1).
|
||||||
let g:ctrlp_max_height = 10
|
max:{n} - show maximum {n} lines (default: 10).
|
||||||
<
|
|
||||||
|
Note: When a setting isn't set, its default value will be used.
|
||||||
|
|
||||||
*'g:ctrlp_switch_buffer'*
|
*'g:ctrlp_switch_buffer'*
|
||||||
When opening a file, if it's already open in a window somewhere, CtrlP will try
|
When opening a file, if it's already open in a window somewhere, CtrlP will try
|
||||||
|
@ -323,18 +332,21 @@ Some examples: >
|
||||||
let g:ctrlp_user_command = ['.hg', 'for /f "tokens=1" %%a in (''hg root'') '
|
let g:ctrlp_user_command = ['.hg', 'for /f "tokens=1" %%a in (''hg root'') '
|
||||||
\ . 'do hg --cwd %s status -numac -I . %%a'] " Windows
|
\ . 'do hg --cwd %s status -numac -I . %%a'] " Windows
|
||||||
<
|
<
|
||||||
Note #1: if the fallback_command is empty or the 'fallback' key is not defined,
|
Note #1: in the |Dictionary| format, 'fallback' and 'ignore' are optional. In
|
||||||
|
the |List| format, fallback_command is optional.
|
||||||
|
|
||||||
|
Note #2: if the fallback_command is empty or the 'fallback' key is not defined,
|
||||||
|globpath()| will then be used when scanning outside of a repository.
|
|globpath()| will then be used when scanning outside of a repository.
|
||||||
|
|
||||||
Note #2: unless the |Dictionary| format is used and 'ignore' is defined and set
|
Note #3: unless the |Dictionary| format is used and 'ignore' is defined and set
|
||||||
to 1, the |wildignore| and |g:ctrlp_custom_ignore| options do not apply when
|
to 1, the |wildignore| and |g:ctrlp_custom_ignore| options do not apply when
|
||||||
these custom commands are being used. When not present, 'ignore' is set to 0 by
|
these custom commands are being used. When not present, 'ignore' is set to 0 by
|
||||||
default to retain the performance advantage of using external commands.
|
default to retain the performance advantage of using external commands.
|
||||||
|
|
||||||
Note #3: when changing the option's variable type, remember to |:unlet| it
|
Note #4: when changing the option's variable type, remember to |:unlet| it
|
||||||
first or restart Vim to avoid the "E706: Variable type mismatch" error.
|
first or restart Vim to avoid the "E706: Variable type mismatch" error.
|
||||||
|
|
||||||
Note #4: you can use a |b:var| to set this option on a per buffer basis.
|
Note #5: you can use a |b:var| to set this option on a per buffer basis.
|
||||||
|
|
||||||
*'g:ctrlp_max_history'*
|
*'g:ctrlp_max_history'*
|
||||||
The maximum number of input strings you want CtrlP to remember. The default
|
The maximum number of input strings you want CtrlP to remember. The default
|
||||||
|
@ -563,6 +575,9 @@ Example: >
|
||||||
Set this to 1 to show only MRU files in the current working directory: >
|
Set this to 1 to show only MRU files in the current working directory: >
|
||||||
let g:ctrlp_mruf_relative = 0
|
let g:ctrlp_mruf_relative = 0
|
||||||
<
|
<
|
||||||
|
Note: you can use a custom mapping to toggle this option inside the prompt: >
|
||||||
|
let g:ctrlp_prompt_mappings = { 'ToggleMRURelative()': ['<F2>'] }
|
||||||
|
<
|
||||||
|
|
||||||
*'g:ctrlp_mruf_default_order'*
|
*'g:ctrlp_mruf_default_order'*
|
||||||
Set this to 1 to disable sorting when searching in MRU mode: >
|
Set this to 1 to disable sorting when searching in MRU mode: >
|
||||||
|
@ -734,6 +749,27 @@ Structure of the function: >
|
||||||
endfunction
|
endfunction
|
||||||
<
|
<
|
||||||
|
|
||||||
|
Note: you can extend any of the above options with { 'arg_type': 'dict' } to
|
||||||
|
enable passing all the function arguments in a single Dictionary argument. Use
|
||||||
|
the existing argument names as keys in this Dictionary.
|
||||||
|
|
||||||
|
Example: >
|
||||||
|
let g:ctrlp_status_func = {
|
||||||
|
\ 'arg_type' : 'dict',
|
||||||
|
\ 'enter': 'Function_Name_1',
|
||||||
|
\ 'exit': 'Function_Name_2',
|
||||||
|
\ }
|
||||||
|
|
||||||
|
function! Function_Name_1(dict)
|
||||||
|
" where dict == {
|
||||||
|
" \ 'focus': value,
|
||||||
|
" \ 'byfname': value,
|
||||||
|
" \ 'regex': value,
|
||||||
|
" \ ...
|
||||||
|
" }
|
||||||
|
endfunction
|
||||||
|
<
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
COMMANDS *ctrlp-commands*
|
COMMANDS *ctrlp-commands*
|
||||||
|
|
||||||
|
@ -1076,8 +1112,8 @@ Available extensions:~
|
||||||
*:CtrlPLine*
|
*:CtrlPLine*
|
||||||
* Line mode:~
|
* Line mode:~
|
||||||
- Name: 'line'
|
- Name: 'line'
|
||||||
- Command: ":CtrlPLine"
|
- Command: ":CtrlPLine [buffer]"
|
||||||
- Search for a line in all listed buffers.
|
- Search for a line in all listed buffers or in the specified [buffer].
|
||||||
|
|
||||||
*:CtrlPChange*
|
*:CtrlPChange*
|
||||||
*:CtrlPChangeAll*
|
*:CtrlPChangeAll*
|
||||||
|
@ -1164,7 +1200,7 @@ Highlighting:~
|
||||||
|
|
||||||
Statuslines:~
|
Statuslines:~
|
||||||
* Highlight groups:
|
* Highlight groups:
|
||||||
CtrlPMode1 : 'file' or 'path', and the current mode (Character)
|
CtrlPMode1 : 'file' or 'path' or 'line', and the current mode (Character)
|
||||||
CtrlPMode2 : 'prt' or 'win', 'regex', the working directory (|hl-LineNr|)
|
CtrlPMode2 : 'prt' or 'win', 'regex', the working directory (|hl-LineNr|)
|
||||||
CtrlPStats : the scanning status (Function)
|
CtrlPStats : the scanning status (Function)
|
||||||
|
|
||||||
|
@ -1253,6 +1289,10 @@ Special thanks:~
|
||||||
===============================================================================
|
===============================================================================
|
||||||
CHANGELOG *ctrlp-changelog*
|
CHANGELOG *ctrlp-changelog*
|
||||||
|
|
||||||
|
+ Combine *g:ctrlp_match_window_bottom* *g:ctrlp_match_window_reversed* and
|
||||||
|
*g:ctrlp_max_height* into |g:ctrlp_match_window|.
|
||||||
|
+ New option: |g:ctrlp_match_window|.
|
||||||
|
|
||||||
Before 2012/11/30~
|
Before 2012/11/30~
|
||||||
|
|
||||||
+ New options: |g:ctrlp_abbrev|,
|
+ New options: |g:ctrlp_abbrev|,
|
||||||
|
|
|
@ -51,7 +51,9 @@ com! -n=? -com=buffer CtrlPBufTag
|
||||||
com! -bar CtrlPBufTagAll cal ctrlp#init(ctrlp#buffertag#cmd(1))
|
com! -bar CtrlPBufTagAll cal ctrlp#init(ctrlp#buffertag#cmd(1))
|
||||||
com! -bar CtrlPRTS cal ctrlp#init(ctrlp#rtscript#id())
|
com! -bar CtrlPRTS cal ctrlp#init(ctrlp#rtscript#id())
|
||||||
com! -bar CtrlPUndo cal ctrlp#init(ctrlp#undo#id())
|
com! -bar CtrlPUndo cal ctrlp#init(ctrlp#undo#id())
|
||||||
com! -bar CtrlPLine cal ctrlp#init(ctrlp#line#id())
|
|
||||||
|
com! -n=? -com=buffer CtrlPLine
|
||||||
|
\ cal ctrlp#init(ctrlp#line#cmd(1, <q-args>))
|
||||||
|
|
||||||
com! -n=? -com=buffer CtrlPChange
|
com! -n=? -com=buffer CtrlPChange
|
||||||
\ cal ctrlp#init(ctrlp#changes#cmd(0, <q-args>))
|
\ cal ctrlp#init(ctrlp#changes#cmd(0, <q-args>))
|
||||||
|
|
|
@ -76,8 +76,8 @@ syn region markdownAutomaticLink matchgroup=markdownUrlDelimiter start="<\%(\w\+
|
||||||
|
|
||||||
syn region markdownItalic start="\S\@<=\*\|\*\S\@=" end="\S\@<=\*\|\*\S\@=" keepend contains=markdownLineStart
|
syn region markdownItalic start="\S\@<=\*\|\*\S\@=" end="\S\@<=\*\|\*\S\@=" keepend contains=markdownLineStart
|
||||||
syn region markdownItalic start="\S\@<=_\|_\S\@=" end="\S\@<=_\|_\S\@=" keepend contains=markdownLineStart
|
syn region markdownItalic start="\S\@<=_\|_\S\@=" end="\S\@<=_\|_\S\@=" keepend contains=markdownLineStart
|
||||||
syn region markdownBold start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" keepend contains=markdownLineStart
|
syn region markdownBold start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" keepend contains=markdownLineStart,markdownItalic
|
||||||
syn region markdownBold start="\S\@<=__\|__\S\@=" end="\S\@<=__\|__\S\@=" keepend contains=markdownLineStart
|
syn region markdownBold start="\S\@<=__\|__\S\@=" end="\S\@<=__\|__\S\@=" keepend contains=markdownLineStart,markdownItalic
|
||||||
syn region markdownBoldItalic start="\S\@<=\*\*\*\|\*\*\*\S\@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" keepend contains=markdownLineStart
|
syn region markdownBoldItalic start="\S\@<=\*\*\*\|\*\*\*\S\@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" keepend contains=markdownLineStart
|
||||||
syn region markdownBoldItalic start="\S\@<=___\|___\S\@=" end="\S\@<=___\|___\S\@=" keepend contains=markdownLineStart
|
syn region markdownBoldItalic start="\S\@<=___\|___\S\@=" end="\S\@<=___\|___\S\@=" keepend contains=markdownLineStart
|
||||||
syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" keepend contains=markdownLineStart
|
syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" keepend contains=markdownLineStart
|
||||||
|
@ -86,7 +86,7 @@ syn region markdownCode matchgroup=markdownCodeDelimiter start="^\s*```.*$" end=
|
||||||
|
|
||||||
if main_syntax ==# 'markdown'
|
if main_syntax ==# 'markdown'
|
||||||
for s:type in g:markdown_fenced_languages
|
for s:type in g:markdown_fenced_languages
|
||||||
exe 'syn region markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' matchgroup=markdownCodeDelimiter start="^\s*```'.matchstr(s:type,'[^=]*').'\>.*$" end="^\s*```\ze\s*$" keepend contains=@markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\.','','g')
|
exe 'syn region markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' matchgroup=markdownCodeDelimiter start="^\s*```\s*'.matchstr(s:type,'[^=]*').'\>.*$" end="^\s*```\ze\s*$" keepend contains=@markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\.','','g')
|
||||||
endfor
|
endfor
|
||||||
unlet! s:type
|
unlet! s:type
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
## 2.2 (06/10/2013)
|
||||||
|
Bugfixes:
|
||||||
|
- Fix plugin break in PASTE mode. This fixes #44.
|
||||||
|
|
||||||
## 2.1 (04/26/2013)
|
## 2.1 (04/26/2013)
|
||||||
|
|
||||||
Bugfixes:
|
Bugfixes:
|
||||||
|
|
|
@ -69,7 +69,7 @@ let g:multi_cursor_start_key='<F6>'
|
||||||
|
|
||||||
## Setting
|
## Setting
|
||||||
Currently there're two additional global settings one can tweak:
|
Currently there're two additional global settings one can tweak:
|
||||||
### ```g:multi_cursor_exit_from_visual_mode``` (Defaut: 1)
|
### ```g:multi_cursor_exit_from_visual_mode``` (Default: 1)
|
||||||
|
|
||||||
If set to 0, then pressing `g:multi_cursor_quit_key` in _Visual_ mode will not quit and delete all existing cursors. This is useful if you want to press Escape and go back to Normal mode, and still be able to operate on all the cursors.
|
If set to 0, then pressing `g:multi_cursor_quit_key` in _Visual_ mode will not quit and delete all existing cursors. This is useful if you want to press Escape and go back to Normal mode, and still be able to operate on all the cursors.
|
||||||
|
|
||||||
|
@ -87,7 +87,6 @@ highlight link multiple_cursors_visual Visual
|
||||||
|
|
||||||
## Issues
|
## Issues
|
||||||
- Multi key commands like `ciw` do not work at the moment
|
- Multi key commands like `ciw` do not work at the moment
|
||||||
- Insert mode can be slow. If you are using Neobundle and have many plugins, try switching to Vundle to see if it helps. See https://github.com/Shougo/neobundle.vim/issues/84 for additional info.
|
|
||||||
- All user input typed before Vim is able to fan out the last operation to all cursors is lost. This is a implementation decision to keep the input perfectly synced in all locations, at the cost of potentially losing user input.
|
- All user input typed before Vim is able to fan out the last operation to all cursors is lost. This is a implementation decision to keep the input perfectly synced in all locations, at the cost of potentially losing user input.
|
||||||
- Select mode is not implemented
|
- Select mode is not implemented
|
||||||
|
|
||||||
|
|
|
@ -50,9 +50,9 @@ endif
|
||||||
" Internal Mappings
|
" Internal Mappings
|
||||||
"===============================================================================
|
"===============================================================================
|
||||||
|
|
||||||
inoremap <silent> <Plug>(i) <C-o>:call <SID>process_user_inut()<CR>
|
inoremap <silent> <Plug>(i) <C-o>:call <SID>process_user_input()<CR>
|
||||||
nnoremap <silent> <Plug>(i) :call <SID>process_user_inut()<CR>
|
nnoremap <silent> <Plug>(i) :call <SID>process_user_input()<CR>
|
||||||
xnoremap <silent> <Plug>(i) :<C-u>call <SID>process_user_inut()<CR>
|
xnoremap <silent> <Plug>(i) :<C-u>call <SID>process_user_input()<CR>
|
||||||
|
|
||||||
inoremap <silent> <Plug>(a) <C-o>:call <SID>apply_user_input_next('i')<CR>
|
inoremap <silent> <Plug>(a) <C-o>:call <SID>apply_user_input_next('i')<CR>
|
||||||
nnoremap <silent> <Plug>(a) :call <SID>apply_user_input_next('n')<CR>
|
nnoremap <silent> <Plug>(a) :call <SID>apply_user_input_next('n')<CR>
|
||||||
|
@ -97,8 +97,8 @@ endfunction
|
||||||
" attempted to be created at the next occurrence of the visual selection
|
" attempted to be created at the next occurrence of the visual selection
|
||||||
function! multiple_cursors#new(mode)
|
function! multiple_cursors#new(mode)
|
||||||
if a:mode ==# 'n'
|
if a:mode ==# 'n'
|
||||||
" Reset all existing cursors, don't restore view
|
" Reset all existing cursors, don't restore view and setting
|
||||||
call s:cm.reset(0)
|
call s:cm.reset(0, 0)
|
||||||
|
|
||||||
" Select the word under cursor to set the '< and '> marks
|
" Select the word under cursor to set the '< and '> marks
|
||||||
exec "normal! viw"
|
exec "normal! viw"
|
||||||
|
@ -113,7 +113,7 @@ function! multiple_cursors#new(mode)
|
||||||
let start = line("'<")
|
let start = line("'<")
|
||||||
let finish = line("'>")
|
let finish = line("'>")
|
||||||
if start != finish
|
if start != finish
|
||||||
call s:cm.reset(0)
|
call s:cm.reset(0, 0)
|
||||||
let col = col("'<")
|
let col = col("'<")
|
||||||
for line in range(line("'<"), line("'>"))
|
for line in range(line("'<"), line("'>"))
|
||||||
let pos = [line, col]
|
let pos = [line, col]
|
||||||
|
@ -124,7 +124,7 @@ function! multiple_cursors#new(mode)
|
||||||
else
|
else
|
||||||
" Came directly from visual mode
|
" Came directly from visual mode
|
||||||
if s:cm.is_empty()
|
if s:cm.is_empty()
|
||||||
call s:cm.reset(0)
|
call s:cm.reset(0, 0)
|
||||||
|
|
||||||
if visualmode() ==# 'V'
|
if visualmode() ==# 'V'
|
||||||
let left = [line('.'), 1]
|
let left = [line('.'), 1]
|
||||||
|
@ -318,6 +318,7 @@ function! s:CursorManager.new()
|
||||||
\ 'virtualedit': &virtualedit,
|
\ 'virtualedit': &virtualedit,
|
||||||
\ 'cursorline': &cursorline,
|
\ 'cursorline': &cursorline,
|
||||||
\ 'lazyredraw': &lazyredraw,
|
\ 'lazyredraw': &lazyredraw,
|
||||||
|
\ 'paste': &paste,
|
||||||
\ }
|
\ }
|
||||||
" We save the window view when multicursor mode is entered
|
" We save the window view when multicursor mode is entered
|
||||||
let obj.saved_winview = []
|
let obj.saved_winview = []
|
||||||
|
@ -327,7 +328,7 @@ function! s:CursorManager.new()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Clear all cursors and their highlights
|
" Clear all cursors and their highlights
|
||||||
function! s:CursorManager.reset(restore_view) dict
|
function! s:CursorManager.reset(restore_view, restore_setting) dict
|
||||||
if a:restore_view
|
if a:restore_view
|
||||||
" Return the view back to the beginning
|
" Return the view back to the beginning
|
||||||
if !empty(self.saved_winview)
|
if !empty(self.saved_winview)
|
||||||
|
@ -357,7 +358,9 @@ function! s:CursorManager.reset(restore_view) dict
|
||||||
let self.saved_winview = []
|
let self.saved_winview = []
|
||||||
let self.start_from_find = 0
|
let self.start_from_find = 0
|
||||||
let s:char = ''
|
let s:char = ''
|
||||||
call self.restore_user_settings()
|
if a:restore_setting
|
||||||
|
call self.restore_user_settings()
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Returns 0 if it's not managing any cursors at the moment
|
" Returns 0 if it's not managing any cursors at the moment
|
||||||
|
@ -513,10 +516,17 @@ endfunction
|
||||||
" where the real vim cursor is
|
" where the real vim cursor is
|
||||||
" lazyredraw needs to be turned on to prevent jerky screen behavior with many
|
" lazyredraw needs to be turned on to prevent jerky screen behavior with many
|
||||||
" cursors on screen
|
" cursors on screen
|
||||||
|
" paste mode needs to be switched off since it turns off a bunch of features
|
||||||
|
" that's critical for the plugin to function
|
||||||
function! s:CursorManager.initialize() dict
|
function! s:CursorManager.initialize() dict
|
||||||
|
let self.saved_settings['virtualedit'] = &virtualedit
|
||||||
|
let self.saved_settings['cursorline'] = &cursorline
|
||||||
|
let self.saved_settings['lazyredraw'] = &lazyredraw
|
||||||
|
let self.saved_settings['paste'] = &paste
|
||||||
let &virtualedit = "onemore"
|
let &virtualedit = "onemore"
|
||||||
let &cursorline = 0
|
let &cursorline = 0
|
||||||
let &lazyredraw = 1
|
let &lazyredraw = 1
|
||||||
|
let &paste = 0
|
||||||
" We could have already saved the view from multiple_cursors#find
|
" We could have already saved the view from multiple_cursors#find
|
||||||
if !self.start_from_find
|
if !self.start_from_find
|
||||||
let self.saved_winview = winsaveview()
|
let self.saved_winview = winsaveview()
|
||||||
|
@ -529,6 +539,7 @@ function! s:CursorManager.restore_user_settings() dict
|
||||||
let &virtualedit = self.saved_settings['virtualedit']
|
let &virtualedit = self.saved_settings['virtualedit']
|
||||||
let &cursorline = self.saved_settings['cursorline']
|
let &cursorline = self.saved_settings['cursorline']
|
||||||
let &lazyredraw = self.saved_settings['lazyredraw']
|
let &lazyredraw = self.saved_settings['lazyredraw']
|
||||||
|
let &paste = self.saved_settings['paste']
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
@ -742,7 +753,7 @@ function! s:feedkeys(keys)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Take the user input and apply it at every cursor
|
" Take the user input and apply it at every cursor
|
||||||
function! s:process_user_inut()
|
function! s:process_user_input()
|
||||||
" Grr this is frustrating. In Insert mode, between the feedkey call and here,
|
" Grr this is frustrating. In Insert mode, between the feedkey call and here,
|
||||||
" the current position could actually CHANGE for some odd reason. Forcing a
|
" the current position could actually CHANGE for some odd reason. Forcing a
|
||||||
" position reset here
|
" position reset here
|
||||||
|
@ -876,7 +887,7 @@ function! s:exit()
|
||||||
let exit = 1
|
let exit = 1
|
||||||
endif
|
endif
|
||||||
if exit
|
if exit
|
||||||
call s:cm.reset(1)
|
call s:cm.reset(1, 1)
|
||||||
return 1
|
return 1
|
||||||
endif
|
endif
|
||||||
return 0
|
return 0
|
||||||
|
|
|
@ -160,7 +160,6 @@ like the following in your vimrc: >
|
||||||
cursors is lost. This is a implementation decision to keep the input
|
cursors is lost. This is a implementation decision to keep the input
|
||||||
perfectly synced in all locations, at the cost of potentially losing user
|
perfectly synced in all locations, at the cost of potentially losing user
|
||||||
input.
|
input.
|
||||||
- Performance in terminal vim degrades significantly with more cursors
|
|
||||||
- Select mode is not implemented
|
- Select mode is not implemented
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
|
|
@ -270,4 +270,19 @@ describe "Multiple Cursors" do
|
||||||
hello world
|
hello world
|
||||||
EOF
|
EOF
|
||||||
end
|
end
|
||||||
|
|
||||||
|
specify "#set paste mode" do
|
||||||
|
before <<-EOF
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
EOF
|
||||||
|
|
||||||
|
type ':set paste<CR><C-n><C-n>cworld<Esc>:set nopaste<CR>'
|
||||||
|
|
||||||
|
after <<-EOF
|
||||||
|
world
|
||||||
|
world
|
||||||
|
EOF
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -77,11 +77,10 @@ fun! snipMate#expandSnip(snip, col)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call setline(lnum, line.snipLines[0])
|
" Insert snippet with proper indentation
|
||||||
|
let indent = indent(lnum) + 1
|
||||||
" Autoindent snippet according to previous indentation
|
call setline(lnum, line . snipLines[0])
|
||||||
let indent = matchend(line, '^.\{-}\ze\(\S\|$\)') + 1
|
call append(lnum, map(snipLines[1:], "empty(v:val) ? v:val : '" . strpart(line, 0, indent - 1) . "' . v:val"))
|
||||||
call append(lnum, map(snipLines[1:], "'".strpart(line, 0, indent - 1)."'.v:val"))
|
|
||||||
|
|
||||||
" Open any folds snippet expands into
|
" Open any folds snippet expands into
|
||||||
if &fen | sil! exe lnum.','.(lnum + len(snipLines) - 1).'foldopen' | endif
|
if &fen | sil! exe lnum.','.(lnum + len(snipLines) - 1).'foldopen' | endif
|
||||||
|
@ -391,7 +390,8 @@ endf
|
||||||
" if triggername is not set 'default' is assumed
|
" if triggername is not set 'default' is assumed
|
||||||
fun! snipMate#ReadSnippetsFile(file)
|
fun! snipMate#ReadSnippetsFile(file)
|
||||||
let result = []
|
let result = []
|
||||||
if !filereadable(a:file) | return result | endif
|
let new_scopes = []
|
||||||
|
if !filereadable(a:file) | return [result, new_scopes] | endif
|
||||||
let r_guard = '^guard\s\+\zs.*'
|
let r_guard = '^guard\s\+\zs.*'
|
||||||
let inSnip = 0
|
let inSnip = 0
|
||||||
let guard = 1
|
let guard = 1
|
||||||
|
@ -421,9 +421,12 @@ fun! snipMate#ReadSnippetsFile(file)
|
||||||
let trigger = strpart(trigger, 0, space - 1)
|
let trigger = strpart(trigger, 0, space - 1)
|
||||||
endif
|
endif
|
||||||
let content = ''
|
let content = ''
|
||||||
|
elseif line[:6] == 'extends'
|
||||||
|
call extend(new_scopes, map(split(strpart(line, 8)),
|
||||||
|
\ "substitute(v:val, ',*$', '', '')"))
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
return result
|
return [result, new_scopes]
|
||||||
endf
|
endf
|
||||||
|
|
||||||
" adds scope aliases to list.
|
" adds scope aliases to list.
|
||||||
|
@ -448,7 +451,14 @@ fun! s:AddScopeAliases(list)
|
||||||
endf
|
endf
|
||||||
|
|
||||||
function! s:Glob(path, expr)
|
function! s:Glob(path, expr)
|
||||||
return filter(split(globpath(a:path, a:expr), "\n"), 'filereadable(v:val)')
|
let res = []
|
||||||
|
for p in split(a:path, ',')
|
||||||
|
let h = fnamemodify(a:expr, ':h')
|
||||||
|
if isdirectory(p . '/' . h)
|
||||||
|
call extend(res, split(glob(p . '/' . a:expr), "\n"))
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
return filter(res, 'filereadable(v:val)')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" returns dict of
|
" returns dict of
|
||||||
|
@ -467,7 +477,7 @@ function! snipMate#GetSnippetFiles(mustExist, scopes, trigger)
|
||||||
let paths = join(funcref#Call(s:c.snippet_dirs), ',')
|
let paths = join(funcref#Call(s:c.snippet_dirs), ',')
|
||||||
let result = {}
|
let result = {}
|
||||||
let scopes = s:AddScopeAliases(a:scopes)
|
let scopes = s:AddScopeAliases(a:scopes)
|
||||||
let trigger = escape(a:trigger, '{}*[]`')
|
let trigger = escape(a:trigger, "*[]?{}`'$")
|
||||||
|
|
||||||
" collect existing files
|
" collect existing files
|
||||||
for scope in scopes
|
for scope in scopes
|
||||||
|
@ -490,7 +500,7 @@ function! snipMate#GetSnippetFiles(mustExist, scopes, trigger)
|
||||||
|
|
||||||
if !a:mustExist
|
if !a:mustExist
|
||||||
for p in split(paths, ',')
|
for p in split(paths, ',')
|
||||||
let p .= '/' . scope . '.snippets'
|
let p .= '/snippets/' . scope . '.snippets'
|
||||||
let result[p] = get(result, p, {'exists': 0, 'type': 'snippets'})
|
let result[p] = get(result, p, {'exists': 0, 'type': 'snippets'})
|
||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
|
@ -514,21 +524,27 @@ endf
|
||||||
" default triggers based on paths
|
" default triggers based on paths
|
||||||
fun! snipMate#DefaultPool(scopes, trigger, result)
|
fun! snipMate#DefaultPool(scopes, trigger, result)
|
||||||
let triggerR = substitute(a:trigger,'*','.*','g')
|
let triggerR = substitute(a:trigger,'*','.*','g')
|
||||||
|
let extra_scopes = []
|
||||||
for [f,opts] in items(snipMate#GetSnippetFiles(1, a:scopes, a:trigger))
|
for [f,opts] in items(snipMate#GetSnippetFiles(1, a:scopes, a:trigger))
|
||||||
let opts.name_prefix = matchstr(f, '\v[^/]+\ze/snippets') . ' ' . opts.name_prefix
|
let opts.name_prefix = matchstr(f, '\v[^/]+\ze/snippets') . ' ' . opts.name_prefix
|
||||||
if opts.type == 'snippets'
|
if opts.type == 'snippets'
|
||||||
for [trigger, name, contents, guard] in cached_file_contents#CachedFileContents(f, s:c.read_snippets_cached, 0)
|
let [snippets, extension] = cached_file_contents#CachedFileContents(f, s:c.read_snippets_cached, 0)
|
||||||
|
for [trigger, name, contents, guard] in snippets
|
||||||
if trigger !~ escape(triggerR,'~') | continue | endif
|
if trigger !~ escape(triggerR,'~') | continue | endif
|
||||||
if snipMate#EvalGuard(guard)
|
if snipMate#EvalGuard(guard)
|
||||||
call snipMate#SetByPath(a:result, [trigger, opts.name_prefix.' '.name], contents)
|
call snipMate#SetByPath(a:result, [trigger, opts.name_prefix.' '.name], contents)
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
call extend(extra_scopes, extension)
|
||||||
elseif opts.type == 'snippet'
|
elseif opts.type == 'snippet'
|
||||||
call snipMate#SetByPath(a:result, [opts.trigger, opts.name_prefix.' '.opts.name], funcref#Function('return readfile('.string(f).')'))
|
call snipMate#SetByPath(a:result, [opts.trigger, opts.name_prefix.' '.opts.name], funcref#Function('return readfile('.string(f).')'))
|
||||||
else
|
else
|
||||||
throw "unexpected"
|
throw "unexpected"
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
if !empty(extra_scopes)
|
||||||
|
call snipMate#DefaultPool(extra_scopes, a:trigger, a:result)
|
||||||
|
endif
|
||||||
endf
|
endf
|
||||||
|
|
||||||
" return a dict of snippets found in runtimepath matching trigger
|
" return a dict of snippets found in runtimepath matching trigger
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
*snipMate.txt* Plugin for using TextMate-style snippets in Vim.
|
*snipMate.txt* Plugin for using TextMate-style snippets in Vim.
|
||||||
|
|
||||||
snipMate *snippet* *snippets* *snipMate*
|
snipMate *snippet* *snippets* *snipMate*
|
||||||
Last Change: December 27, 2009
|
|
||||||
|
|
||||||
|snipMate-installation| Installation
|
|snipMate-installation| Installation
|
||||||
|snipMate-description| Description
|
|snipMate-description| Description
|
||||||
|
@ -306,6 +305,15 @@ TextMates's functionality, use the |system()| function. E.g.: >
|
||||||
will insert the current date, assuming you are on a Unix system. Note that you
|
will insert the current date, assuming you are on a Unix system. Note that you
|
||||||
can also (and should) use |strftime()| for this example.
|
can also (and should) use |strftime()| for this example.
|
||||||
|
|
||||||
|
*snipMate-extends*
|
||||||
|
Borrowing from UltiSnips, .snippets files can also contain an extends
|
||||||
|
directive, for example: >
|
||||||
|
|
||||||
|
extends html, javascript, css
|
||||||
|
|
||||||
|
will tell SnipMate to also read html, javascript, and css snippets.
|
||||||
|
|
||||||
|
|
||||||
Filename([{expr}] [, {defaultText}]) *snipMate-filename* *Filename()*
|
Filename([{expr}] [, {defaultText}]) *snipMate-filename* *Filename()*
|
||||||
|
|
||||||
Since the current filename is used often in snippets, a default function
|
Since the current filename is used often in snippets, a default function
|
||||||
|
@ -420,6 +428,15 @@ Perhaps some of these features will be added in a later release.
|
||||||
==============================================================================
|
==============================================================================
|
||||||
CHANGELOG *snipMate-changelog*
|
CHANGELOG *snipMate-changelog*
|
||||||
|
|
||||||
|
0.86 - 2013-06-15
|
||||||
|
-----------------
|
||||||
|
* Use more idiomatic <Plug> maps
|
||||||
|
|
||||||
|
* Fix disappearing variables bug (hpesoj)
|
||||||
|
* Fix cursor position bug when a variable is on the same line as the stop
|
||||||
|
* Fix undo point creation causing problems with Supertab
|
||||||
|
* Fix bug where SnipMate would use a typed trigger as a regular expression
|
||||||
|
|
||||||
0.85 - 2013-04-03
|
0.85 - 2013-04-03
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
" File: snipMate.vim
|
" File: snipMate.vim
|
||||||
" Author: Michael Sanders
|
" Author: Michael Sanders
|
||||||
" Version: 0.85
|
" Version: 0.86
|
||||||
" Description: snipMate.vim implements some of TextMate's snippets features in
|
" Description: snipMate.vim implements some of TextMate's snippets features in
|
||||||
" Vim. A snippet is a piece of often-typed text that you can
|
" Vim. A snippet is a piece of often-typed text that you can
|
||||||
" insert into your document using a trigger word followed by a "<tab>".
|
" insert into your document using a trigger word followed by a "<tab>".
|
||||||
|
@ -56,30 +56,15 @@ let s:snipMate['get_snippets'] = get(s:snipMate, 'get_snippets', funcref#Functio
|
||||||
" snippets. You can replace it with your own implementation. Defaults to all
|
" snippets. You can replace it with your own implementation. Defaults to all
|
||||||
" directories in &rtp/snippets/*
|
" directories in &rtp/snippets/*
|
||||||
let s:snipMate['snippet_dirs'] = get(s:snipMate, 'snippet_dirs', funcref#Function('return split(&runtimepath,",")'))
|
let s:snipMate['snippet_dirs'] = get(s:snipMate, 'snippet_dirs', funcref#Function('return split(&runtimepath,",")'))
|
||||||
|
if type(s:snipMate['snippet_dirs']) == type([])
|
||||||
|
call map(s:snipMate['snippet_dirs'], 'expand(v:val)')
|
||||||
|
endif
|
||||||
|
|
||||||
" _ is default scope added always
|
" _ is default scope added always
|
||||||
"
|
"
|
||||||
" &ft honors multiple filetypes and syntax such as in set ft=html.javascript syntax=FOO
|
" &ft honors multiple filetypes and syntax such as in set ft=html.javascript syntax=FOO
|
||||||
let s:snipMate['get_scopes'] = get(s:snipMate, 'get_scopes', funcref#Function('return split(&ft,"\\.")+[&syntax, "_"]'))
|
let s:snipMate['get_scopes'] = get(s:snipMate, 'get_scopes', funcref#Function('return split(&ft,"\\.")+[&syntax, "_"]'))
|
||||||
|
|
||||||
if !exists('snippets_dir')
|
|
||||||
let snippets_dir = substitute(globpath(&rtp, 'snippets/'), "\n", ',', 'g')
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Processes a single-snippet file; optionally add the name of the parent
|
|
||||||
" directory for a snippet with multiple matches.
|
|
||||||
fun! s:ProcessFile(file, ft, ...)
|
|
||||||
let keyword = fnamemodify(a:file, ':t:r')
|
|
||||||
if keyword == '' | return | endif
|
|
||||||
try
|
|
||||||
let text = join(readfile(a:file), "\n")
|
|
||||||
catch /E484/
|
|
||||||
echom "Error in snipMate.vim: couldn't read file: ".a:file
|
|
||||||
endtry
|
|
||||||
return a:0 ? MakeSnip(a:ft, a:1, text, keyword)
|
|
||||||
\ : MakeSnip(a:ft, keyword, text)
|
|
||||||
endf
|
|
||||||
|
|
||||||
" dummy for compatibility - will be removed
|
" dummy for compatibility - will be removed
|
||||||
" moving to autoload to improve loading speed and debugging
|
" moving to autoload to improve loading speed and debugging
|
||||||
fun! TriggerSnippet()
|
fun! TriggerSnippet()
|
||||||
|
|
|
@ -6,10 +6,11 @@ syn match tabStop '\$\d\+'
|
||||||
syn match snipEscape '\\\\\|\\`'
|
syn match snipEscape '\\\\\|\\`'
|
||||||
syn match snipCommand '\%(\\\@<!\%(\\\\\)*\)\@<=`.\{-}\%(\\\@<!\%(\\\\\)*\)\@<=`'
|
syn match snipCommand '\%(\\\@<!\%(\\\\\)*\)\@<=`.\{-}\%(\\\@<!\%(\\\\\)*\)\@<=`'
|
||||||
syn match snippet '^snippet.*' contains=multiSnipText,snipKeyword
|
syn match snippet '^snippet.*' contains=multiSnipText,snipKeyword
|
||||||
|
syn match snippet '^extends.*' contains=snipKeyword
|
||||||
syn match snippet '^guard\s\+.*' contains=multiSnipText,snipKeyword
|
syn match snippet '^guard\s\+.*' contains=multiSnipText,snipKeyword
|
||||||
syn match multiSnipText '\S\+ \zs.*' contained
|
syn match multiSnipText '\S\+ \zs.*' contained
|
||||||
syn match snipKeyword '^snippet'me=s+8 contained
|
syn match snipKeyword '^(snippet|extends)'me=s+8 contained
|
||||||
syn match snipError "^[^#s\t].*$"
|
syn match snipError "^[^#se\t].*$"
|
||||||
|
|
||||||
hi link snippet Identifier
|
hi link snippet Identifier
|
||||||
hi link snipComment Comment
|
hi link snipComment Comment
|
||||||
|
|
|
@ -10,6 +10,7 @@ Elliot Murphy
|
||||||
Eustaquio Rangel
|
Eustaquio Rangel
|
||||||
Henrik Nyh
|
Henrik Nyh
|
||||||
Honza Pokorny
|
Honza Pokorny
|
||||||
|
Iuri Fernandes Queiroz
|
||||||
Jakub Nawalaniec
|
Jakub Nawalaniec
|
||||||
James F. Herdman
|
James F. Herdman
|
||||||
Jon Bernard
|
Jon Bernard
|
||||||
|
@ -38,6 +39,7 @@ Dmitry Dementev
|
||||||
Travis Holton
|
Travis Holton
|
||||||
Chrisyue
|
Chrisyue
|
||||||
Erik Westrup
|
Erik Westrup
|
||||||
|
Matt Deacalion Stevens
|
||||||
|
|
||||||
TODO: add contributors from github.com/SirVer/Ultisnip having contributed to
|
TODO: add contributors from github.com/SirVer/Ultisnip having contributed to
|
||||||
github.com/SirVer/Ultisnip/UltiSnips/* files
|
github.com/SirVer/Ultisnip/UltiSnips/* files
|
||||||
|
|
|
@ -50,6 +50,49 @@ of the snippets by setting the "always_use_first_snippet" option to 1.
|
||||||
If you have VimL only (vim without python support) your best option is using
|
If you have VimL only (vim without python support) your best option is using
|
||||||
garbas/vim-snipmate and cope with the minor bugs found in the engine.
|
garbas/vim-snipmate and cope with the minor bugs found in the engine.
|
||||||
|
|
||||||
|
|
||||||
|
Policies / for contributors
|
||||||
|
===========================
|
||||||
|
Some snippets are useful for almost all languages, so let's try to have the same
|
||||||
|
triggers for them:
|
||||||
|
|
||||||
|
```
|
||||||
|
if : if without else
|
||||||
|
ife: if $1 else $2
|
||||||
|
eif : else if ($1) { .. }
|
||||||
|
el : else ..
|
||||||
|
```
|
||||||
|
|
||||||
|
If you're not satisfied with these defaults, open a ticket that we implement
|
||||||
|
aliasing. Then you can remap "else" to "el" or the like.
|
||||||
|
|
||||||
|
|
||||||
|
Don't add stupid placeholder default texts like
|
||||||
|
```
|
||||||
|
if (${1:condition}){
|
||||||
|
${2:some code here}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
instead use:
|
||||||
|
|
||||||
|
```
|
||||||
|
if (${1}){
|
||||||
|
${2}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Exception: Functions which are used less often, such as Vim's matchall(), matchstr()
|
||||||
|
functions which case hints may be helpful to remember order. In the VimL case
|
||||||
|
get vim-dev plugin which has function completion
|
||||||
|
|
||||||
|
Thus for conditions (while, if ..) and block bodies just use ${N} - Thanks
|
||||||
|
|
||||||
|
Open questions:
|
||||||
|
What about one line if ee then .. else .. vs if \n .. then \n ... \n else \n .. ?
|
||||||
|
What about wh(ile), which trigger?
|
||||||
|
Discuss at: https://github.com/honza/vim-snippets/issues/230
|
||||||
|
|
||||||
|
|
||||||
Related repositories
|
Related repositories
|
||||||
====================
|
====================
|
||||||
We also encourage people to maintain sets of snippets for particular use cases
|
We also encourage people to maintain sets of snippets for particular use cases
|
||||||
|
@ -63,10 +106,11 @@ so that all users can benefit from them. People can list their snippet reposito
|
||||||
Installation using VAM: "github:rbonvall/snipmate-snippets-bib"
|
Installation using VAM: "github:rbonvall/snipmate-snippets-bib"
|
||||||
|
|
||||||
|
|
||||||
## If you believe in the success of vim-snipmate
|
Future - ideas - examples
|
||||||
then you may also want to have a look at [vim-git-wiki](http://github.com/MarcWeber/vim-git-wiki).
|
=========================
|
||||||
If you contribute to this git based wiki editable by Vim we have a chance
|
[overview snippet engines](http://vim-wiki.mawercer.de/wiki/topic/text-snippets-skeletons-templates.html)
|
||||||
of making it official at www.vim.org.
|
If you have ideas you can add them to that list of "snippet engine features by example".
|
||||||
|
|
||||||
|
|
||||||
Historical notes
|
Historical notes
|
||||||
================
|
================
|
||||||
|
@ -86,19 +130,23 @@ add snippets/ruby-1.9.snippets (1.9 only)
|
||||||
|
|
||||||
then configure github.com/garbas/vim-snipmate this way:
|
then configure github.com/garbas/vim-snipmate this way:
|
||||||
|
|
||||||
let g:snipMate = {}
|
|
||||||
let g:snipMate.scope_aliases = {}
|
```vim
|
||||||
let g:snipMate.scope_aliases['ruby'] = 'ruby,ruby-rails,ruby-1.9'
|
let g:snipMate = {}
|
||||||
|
let g:snipMate.scope_aliases = {}
|
||||||
|
let g:snipMate.scope_aliases['ruby'] = 'ruby,ruby-rails,ruby-1.9'
|
||||||
|
```
|
||||||
|
|
||||||
or github.com/MarcWeber/UltiSnips this way:
|
or github.com/MarcWeber/UltiSnips this way:
|
||||||
|
|
||||||
|
|
||||||
let g:UltiSnips = {}
|
```vim
|
||||||
|
let g:UltiSnips = {}
|
||||||
let g:UltiSnips.snipmate_ft_filter = {
|
|
||||||
\ 'default' : {'filetypes': ["FILETYPE"] },
|
|
||||||
\ 'ruby' : {'filetypes': ["ruby", "ruby-rails", "ruby-1.9"] },
|
|
||||||
|
|
||||||
|
let g:UltiSnips.snipmate_ft_filter = {
|
||||||
|
\ 'default' : {'filetypes': ["FILETYPE"] },
|
||||||
|
\ 'ruby' : {'filetypes': ["ruby", "ruby-rails", "ruby-1.9"] },
|
||||||
|
```
|
||||||
|
|
||||||
If it happens that you work on a project requiring ruby-1.8 snippets instead,
|
If it happens that you work on a project requiring ruby-1.8 snippets instead,
|
||||||
consider using vim-addon-local-vimrc and override the filetypes.
|
consider using vim-addon-local-vimrc and override the filetypes.
|
||||||
|
@ -129,6 +177,8 @@ vim-snippets is not like the "linux kernel".
|
||||||
* Ruby - [taq](http://github.com/taq)
|
* Ruby - [taq](http://github.com/taq)
|
||||||
* PHP - [chrisyue](http://github.com/chrisyue)
|
* PHP - [chrisyue](http://github.com/chrisyue)
|
||||||
* Scala - [gorodinskiy](https://github.com/gorodinskiy)
|
* Scala - [gorodinskiy](https://github.com/gorodinskiy)
|
||||||
|
* Falcon - [steveno](https://github.com/steveno)
|
||||||
|
* Elixir - [iurifq](https://github.com/iurifq)
|
||||||
|
|
||||||
Contributing notes
|
Contributing notes
|
||||||
------------------
|
------------------
|
||||||
|
|
|
@ -1,75 +1,83 @@
|
||||||
# From the TextMate bundle
|
# From the TextMate bundle
|
||||||
|
# with some modification
|
||||||
|
|
||||||
snippet fun "Function" b
|
snippet fun "Function" b
|
||||||
${1:name} = (${2:args}) ->
|
${1:name} = `!p snip.rv = "(" if t[2] else ""`${2:args}`!p snip.rv = ") " if t[2] else ""`->
|
||||||
${0:# body...}
|
${0:# body...}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet bfun "Function (bound)" b
|
snippet bfun "Function (bound)" i
|
||||||
${1:(${2:args}) }=>
|
`!p snip.rv = "(" if t[1] else ""`${1:args}`!p snip.rv = ") " if t[1] else ""`=>`!p snip.rv = " " if t[2] and not t[2].startswith("\n") else ""`${2:expr}
|
||||||
${0:# body...}
|
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet if "If" b
|
snippet if "If"
|
||||||
if ${1:condition}
|
if ${1:condition}
|
||||||
${0:# body...}
|
${0:# body...}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet ife "If .. Else" b
|
snippet ife "If .. Else"
|
||||||
if ${1:condition}
|
if ${1:condition}
|
||||||
${2:# body...}
|
${2:# body...}
|
||||||
else
|
else
|
||||||
${3:# body...}
|
${3:# body...}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet elif "Else if" b
|
snippet eif "Else if" b
|
||||||
else if ${1:condition}
|
else if ${1:condition}
|
||||||
${0:# body...}
|
${0:# body...}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet ifte "Ternary if" b
|
snippet ifte "Ternary if"
|
||||||
if ${1:condition} then ${2:value} else ${3:other}
|
if ${1:condition} then ${2:value} else ${3:other}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet unl "Unless" b
|
snippet unl "Unless"
|
||||||
${1:action} unless ${2:condition}
|
${1:action} unless ${2:condition}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet fora "Array Comprehension" b
|
snippet fora "Array Comprehension"
|
||||||
for ${1:name} in ${2:array}
|
for ${1:name} in ${2:array}
|
||||||
${0:# body...}
|
${0:# body...}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet foro "Object Comprehension" b
|
snippet foro "Object Comprehension"
|
||||||
for ${1:key}, ${2:value} of ${3:Object}
|
for ${1:key}, ${2:value} of ${3:Object}
|
||||||
${0:# body...}
|
${0:# body...}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet forr "Range Comprehension (inclusive)" b
|
snippet forr "Range Comprehension (inclusive)"
|
||||||
for ${1:name} in [${2:start}..${3:finish}]${4: by ${5:step}}
|
for ${1:name} in [${2:start}..${3:finish}]`!p snip.rv = " by " if t[4] else ""`${4:step}
|
||||||
${0:# body...}
|
${0:# body...}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet forrex "Range Comprehension (exclusive)" b
|
snippet forrex "Range Comprehension (exclusive)"
|
||||||
for ${1:name} in [${2:start}...${3:finish}]${4: by ${5:step}}
|
for ${1:name} in [${2:start}...${3:finish}]`!p snip.rv = " by " if t[4] else ""`${4:step}
|
||||||
${0:# body...}
|
${0:# body...}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet swi "Switch" b
|
snippet swi "Switch"
|
||||||
switch ${1:object}
|
switch ${1:object}
|
||||||
when ${2:value}
|
when ${2:value}
|
||||||
${0:# body...}
|
${3:# body...}
|
||||||
|
else
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet swit "Switch when .. then"
|
||||||
|
switch ${1:object}
|
||||||
|
when ${2:condition}`!p snip.rv = " then " if t[3] else ""`${3:value}
|
||||||
|
else`!p snip.rv = " " if t[4] and not t[4].startswith("\n") else ""`${4:value}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet cla "Class" b
|
snippet cla "Class" b
|
||||||
class ${1:ClassName}${2: extends ${3:Ancestor}}
|
class ${1:ClassName}`!p snip.rv = " extends " if t[2] else ""`${2:Ancestor}
|
||||||
|
|
||||||
${4:constructor: (${5:args}) ->
|
${3:constructor:`!p snip.rv = " (" if t[4] else ""`${4:args}`!p snip.rv = ")" if t[4] else ""` ->
|
||||||
${6:# body...}}
|
${5:# body...}}
|
||||||
$7
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet try "Try .. Catch" b
|
snippet try "Try .. Catch"
|
||||||
try
|
try
|
||||||
$1
|
$1
|
||||||
catch ${2:error}
|
catch ${2:error}
|
||||||
|
@ -80,7 +88,7 @@ snippet req "Require" b
|
||||||
${1/^'?(\w+)'?$/\L$1\E/} = require(${1:'${2:sys}'})
|
${1/^'?(\w+)'?$/\L$1\E/} = require(${1:'${2:sys}'})
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet # "Interpolated Code"
|
snippet # "Interpolated Code" i
|
||||||
#{$1}$0
|
#{$1}$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
|
@ -126,7 +126,7 @@ else
|
||||||
}
|
}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet elif "else if (elif)" b
|
snippet eif "else if (elif)" b
|
||||||
else if(${1:/*condition*/})
|
else if(${1:/*condition*/})
|
||||||
{
|
{
|
||||||
${VISUAL}${0:/*code*/}
|
${VISUAL}${0:/*code*/}
|
||||||
|
@ -576,7 +576,7 @@ snippet module "New module (module)" b
|
||||||
// (See accompanying file LICENSE_1_0.txt or copy at
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
module ${2}.`!v Filename('$1', 'name')`;
|
module ${2}.`!v vim_snippets#Filename('$1', 'name')`;
|
||||||
|
|
||||||
|
|
||||||
${3}
|
${3}
|
||||||
|
|
|
@ -76,7 +76,7 @@ snippet if
|
||||||
{% endif %}
|
{% endif %}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet else
|
snippet el
|
||||||
{% else %}
|
{% else %}
|
||||||
${1}
|
${1}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
|
@ -263,7 +263,7 @@ snippet st "submit_tag"
|
||||||
`!p textmate_var('TM_RAILS_TEMPLATE_START_RUBY_EXPR', snip)`submit_tag "${1:Save changes}"${2:, :id => "${3:submit}"}${4:, :name => "${5:$3}"}${6:, :class => "${7:form_$3}"}${8:, :disabled => ${9:false}}${10:, :disable_with => "${11:Please wait...}"}`!p textmate_var('TM_RAILS_TEMPLATE_END_RUBY_EXPR', snip)`
|
`!p textmate_var('TM_RAILS_TEMPLATE_START_RUBY_EXPR', snip)`submit_tag "${1:Save changes}"${2:, :id => "${3:submit}"}${4:, :name => "${5:$3}"}${6:, :class => "${7:form_$3}"}${8:, :disabled => ${9:false}}${10:, :disable_with => "${11:Please wait...}"}`!p textmate_var('TM_RAILS_TEMPLATE_END_RUBY_EXPR', snip)`
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet else "else (ERB)"
|
snippet el "else (ERB)"
|
||||||
<% else %>
|
<% else %>
|
||||||
|
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
snippet if "if ... then ... else ..."
|
snippet ife "if ... then ... else ..."
|
||||||
if ${1:condition}
|
if ${1:condition}
|
||||||
then ${2:expression}
|
then ${2:expression}
|
||||||
else ${3:expression}
|
else ${3:expression}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet case "case ... of ..."
|
snippet case "case ... of ..."
|
||||||
case ${1:expression} of
|
case ${1} of
|
||||||
${2:pattern} -> ${3:expression}
|
${2} -> ${3}
|
||||||
${4:pattern} -> ${5:expression}
|
${4} -> ${5}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet :: "Type signature"
|
snippet :: "Type signature"
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
# more can be found in snippets/html_minimal.snippets
|
||||||
|
# these UltiSnips override snippets because nested placeholders are being used
|
||||||
|
|
||||||
|
snippet id
|
||||||
|
id="${1}"${2}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet idn
|
||||||
|
id="${1}" name="${2:$1}"
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet label_and_input
|
||||||
|
<label for="${2:$1}">${1}</label>
|
||||||
|
<input type="${3:text}" name="${4:$2}"${5: id="${6:$2}"} value="${7}" />${8}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet input
|
||||||
|
<input type="${1:text}" value="${2}" name="${3}"${4: id="${5:$3}}/>${7}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet submit
|
||||||
|
<input type="submit" value="${2}" ${3}/>${7}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet textarea
|
||||||
|
<textarea name="$2"${3: id="$4"}>$5</textarea>
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet img
|
||||||
|
<img src="$1"${2: alt="$3"}/>
|
||||||
|
endsnippet
|
|
@ -59,7 +59,7 @@ default:
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet elif "else if" b
|
snippet eif "else if" b
|
||||||
else if ($1)`!p nl(snip)`{
|
else if ($1)`!p nl(snip)`{
|
||||||
$0
|
$0
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,12 +50,19 @@ function ${1:function_name} (${2:argument}) {
|
||||||
}
|
}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
# for one line if .. else you usually use a ? b : c
|
||||||
snippet ife "if ___ else"
|
snippet ife "if ___ else"
|
||||||
if (${1:true}) {$0} else{};
|
if (${1}) {
|
||||||
|
{$2}
|
||||||
|
} else {
|
||||||
|
{$3}
|
||||||
|
};
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet if "if"
|
snippet if "if"
|
||||||
if (${1:true}) {$0};
|
if (${1}) {
|
||||||
|
{$2}
|
||||||
|
};
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet timeout "setTimeout function"
|
snippet timeout "setTimeout function"
|
||||||
|
|
|
@ -4,17 +4,17 @@ endsnippet
|
||||||
|
|
||||||
snippet open "open"
|
snippet open "open"
|
||||||
let open ${1:module} in
|
let open ${1:module} in
|
||||||
${2:e}
|
${2}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet try "try"
|
snippet try "try"
|
||||||
try ${1:e}
|
try ${1}
|
||||||
with ${2:Not_found} -> ${3:()}
|
with ${2:Not_found} -> ${3:()}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet ref "ref"
|
snippet ref "ref"
|
||||||
let ${1:name} = ref ${2:val} in
|
let ${1} = ref ${2} in
|
||||||
${3:e}
|
${3}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet matchl "pattern match on a list"
|
snippet matchl "pattern match on a list"
|
||||||
|
@ -24,88 +24,83 @@ match ${1:list} with
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet matcho "pattern match on an option type"
|
snippet matcho "pattern match on an option type"
|
||||||
match ${1:x} with
|
match ${1} with
|
||||||
| Some(${2:y}) -> ${3:()}
|
| Some(${2}) -> ${3:()}
|
||||||
| None -> ${4:()}
|
| None -> ${4:()}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet fun "anonymous function"
|
snippet fun "anonymous function"
|
||||||
(fun ${1:x} -> ${2:x})
|
(fun ${1} -> ${2})
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet cc "commment"
|
snippet cc "commment"
|
||||||
(* ${1:comment} *)
|
(* ${1} *)
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet let "let .. in binding"
|
snippet let "let .. in binding"
|
||||||
let ${1:x} = ${2:v} in
|
let ${1} = ${2} in
|
||||||
${3:e}
|
${3}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet lr "let rec"
|
snippet lr "let rec"
|
||||||
let rec ${1:f} =
|
let rec ${1} =
|
||||||
${2:expr}
|
${2}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet if "if"
|
snippet ife "if"
|
||||||
if ${1:(* condition *)} then
|
if ${1} then
|
||||||
${2:(* A *)}
|
${2}
|
||||||
else
|
else
|
||||||
${3:(* B *)}
|
${3}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet If "If"
|
snippet if "If"
|
||||||
if ${1:(* condition *)} then
|
if ${1} then
|
||||||
${2:(* A *)}
|
${2}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet while "while"
|
snippet while "while"
|
||||||
while ${1:(* condition *)} do
|
while ${1} do
|
||||||
${2:(* A *)}
|
${2}
|
||||||
done
|
done
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet for "for"
|
snippet for "for"
|
||||||
for ${1:i} = ${2:1} to ${3:10} do
|
for ${1:i} = ${2:1} to ${3:10} do
|
||||||
${4:(* BODY *)}
|
${4}
|
||||||
done
|
done
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet match "match"
|
snippet match "match"
|
||||||
match ${1:(* e1 *)} with
|
match ${1} with
|
||||||
| ${2:p} -> ${3:e2}
|
| ${2} -> ${3}
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet Match "match"
|
|
||||||
match ${1:(* e1 *)} with
|
|
||||||
| ${2:p} -> ${3:e2}
|
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet class "class"
|
snippet class "class"
|
||||||
class ${1:name} = object
|
class ${1:name} = object
|
||||||
${2:methods}
|
${2}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet obj "obj"
|
snippet obj "obj"
|
||||||
object
|
object
|
||||||
${2:methods}
|
${2}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet Obj "object"
|
snippet Obj "object"
|
||||||
object (self)
|
object (self)
|
||||||
${2:methods}
|
${2}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet {{ "object functional update"
|
snippet {{ "object functional update"
|
||||||
{< ${1:x} = ${2:y} >}
|
{< ${1} = ${2} >}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet beg "beg"
|
snippet beg "beg"
|
||||||
begin
|
begin
|
||||||
${1:block}
|
${1}${VISUAL}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -115,19 +110,19 @@ endsnippet
|
||||||
|
|
||||||
snippet mod "module - no signature"
|
snippet mod "module - no signature"
|
||||||
module ${1:(* Name *)} = struct
|
module ${1:(* Name *)} = struct
|
||||||
${2:(* BODY *)}
|
${2}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet Mod "module with signature"
|
snippet Mod "module with signature"
|
||||||
module ${1:(* Name *)} : ${2:(* SIG *)} = struct
|
module ${1:(* Name *)} : ${2:(* SIG *)} = struct
|
||||||
${3:(* BODY *)}
|
${3}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet sig "anonymous signature"
|
snippet sig "anonymous signature"
|
||||||
sig
|
sig
|
||||||
${2:(* BODY *)}
|
${2}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -137,32 +132,32 @@ endsnippet
|
||||||
|
|
||||||
snippet func "define functor - no signature"
|
snippet func "define functor - no signature"
|
||||||
module ${1:M} (${2:Arg} : ${3:ARG}) = struct
|
module ${1:M} (${2:Arg} : ${3:ARG}) = struct
|
||||||
${4:(* BODY *)}
|
${4}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet Func "define functor - with signature"
|
snippet Func "define functor - with signature"
|
||||||
module ${1:M} (${2:Arg} : ${3:ARG}) : ${4:SIG} = struct
|
module ${1:M} (${2:Arg} : ${3:ARG}) : ${4:SIG} = struct
|
||||||
${5:(* BODY *)}
|
${5}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet mot "Declare module signature"
|
snippet mot "Declare module signature"
|
||||||
module type ${1:(* Name *)} = sig
|
module type ${1:(* Name *)} = sig
|
||||||
${2:(* BODY *)}
|
${2}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet module "Module with anonymous signature"
|
snippet module "Module with anonymous signature"
|
||||||
module ${1:(* Name *)} : sig
|
module ${1:(* Name *)} : sig
|
||||||
${2:(* SIGNATURE *)}
|
${2}
|
||||||
end = struct
|
end = struct
|
||||||
${3:(* BODY *)}
|
${3}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet oo "odoc"
|
snippet oo "odoc"
|
||||||
(** ${1:odoc} *)
|
(** ${1} *)
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet qt "inline qtest"
|
snippet qt "inline qtest"
|
||||||
|
|
|
@ -11,8 +11,8 @@ endsnippet
|
||||||
|
|
||||||
snippet do "do"
|
snippet do "do"
|
||||||
do {
|
do {
|
||||||
${2:// code... }
|
${2}
|
||||||
} while (${1:/* condition */});"
|
} while (${1});"
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet doc_f "doc_f"
|
snippet doc_f "doc_f"
|
||||||
|
@ -37,21 +37,21 @@ interface ${1:someClass}
|
||||||
} // END interface $1"
|
} // END interface $1"
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet else "else"
|
snippet el "else"
|
||||||
else {
|
else {
|
||||||
${1:// code...}
|
${1}
|
||||||
}
|
}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet for "for"
|
snippet for "for"
|
||||||
for ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) {
|
for ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) {
|
||||||
${4:// code...}
|
${4}
|
||||||
}
|
}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet foreachk "foreachk"
|
snippet foreachk "foreachk"
|
||||||
foreach ($${1:variable} as $${2:key} => $${3:value}){
|
foreach ($${1:variable} as $${2:key} => $${3:value}){
|
||||||
${4:// code...}
|
${4}
|
||||||
}
|
}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -60,8 +60,8 @@ $_GET['${1}']${2}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet if "if"
|
snippet if "if"
|
||||||
if (${1:/* condition */}) {
|
if (${1}) {
|
||||||
${2:// code...}
|
${2}
|
||||||
}
|
}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -210,9 +210,9 @@ endsnippet
|
||||||
|
|
||||||
snippet ife "if else"
|
snippet ife "if else"
|
||||||
if (${1:/* condition */}) {
|
if (${1:/* condition */}) {
|
||||||
${2:// code...}
|
${2}
|
||||||
} else {
|
} else {
|
||||||
${3:// code...}
|
${3}
|
||||||
}
|
}
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
@ -227,7 +227,7 @@ class $1
|
||||||
{
|
{
|
||||||
public function ${3:__construct}(${4:$options})
|
public function ${3:__construct}(${4:$options})
|
||||||
{
|
{
|
||||||
${4:// code}
|
${4}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$0
|
$0
|
||||||
|
|
|
@ -1,61 +1,314 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# General Stuff #
|
# General Stuff #
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
global !p
|
||||||
|
import vim
|
||||||
|
from os import path as ospath
|
||||||
|
from string import Template
|
||||||
|
import re
|
||||||
|
from collections import Counter
|
||||||
|
|
||||||
|
#http://docutils.sourceforge.net/docs/ref/rst/roles.html
|
||||||
|
TEXT_ROLES = ['emphasis','literal','code','math',
|
||||||
|
'pep-reference','rfc-reference',
|
||||||
|
'strong','subscript','superscript',
|
||||||
|
'title-reference','raw']
|
||||||
|
TEXT_ROLES_REGEX = r'\.\.\srole::?\s(w+)'
|
||||||
|
|
||||||
|
#http://docutils.sourceforge.net/docs/ref/rst/directives.html#specific-admonitions
|
||||||
|
SPECIFIC_ADMONITIONS = ["attention", "caution", "danger",
|
||||||
|
"error", "hint", "important", "note",
|
||||||
|
"tip", "warning"]
|
||||||
|
#http://docutils.sourceforge.net/docs/ref/rst/directives.html
|
||||||
|
DIRECTIVES = ['topic','sidebar','math','epigraph',
|
||||||
|
'parsed-literal','code','highlights',
|
||||||
|
'pull-quote','compound','container',
|
||||||
|
'list-table','class','sectnum',
|
||||||
|
'role','default-role','unicode',
|
||||||
|
'raw']
|
||||||
|
|
||||||
|
NONE_CONTENT_DIRECTIVES = ['rubric', 'contents', 'header',
|
||||||
|
'footer', 'date', 'include', 'title']
|
||||||
|
|
||||||
|
INCLUDABLE_DIRECTIVES = ['image', 'figure', 'include']
|
||||||
|
# CJK chars
|
||||||
|
# http://stackoverflow.com/questions/2718196/find-all-chinese-text-in-a-string-using-python-and-regex
|
||||||
|
CJK_RE = re.compile(u'[⺀-⺙⺛-⻳⼀-⿕々〇〡-〩〸-〺〻㐀-䶵一-鿃豈-鶴侮-頻並-龎]', re.UNICODE)
|
||||||
|
|
||||||
|
|
||||||
|
def has_cjk(char):
|
||||||
|
"""
|
||||||
|
Detect char contains CJK character
|
||||||
|
|
||||||
|
:param char: characters needs to be detect
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
CJK_RE.finditer(char).next()
|
||||||
|
except StopIteration:
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
|
||||||
|
def real_filename(filename):
|
||||||
|
"""peal extension name off if possible
|
||||||
|
# i.e. "foo.bar.png will return "foo.bar"
|
||||||
|
"""
|
||||||
|
return ospath.splitext(filename)[0]
|
||||||
|
|
||||||
|
def check_file_exist(rst_path, relative_path):
|
||||||
|
"""
|
||||||
|
For RST file, it can just include files as relative path.
|
||||||
|
|
||||||
|
:param rst_path: absolute path to rst file
|
||||||
|
:param relative_path: path related to rst file
|
||||||
|
:return: relative file's absolute path if file exist
|
||||||
|
"""
|
||||||
|
abs_path = ospath.join(ospath.dirname(rst_path), relative_path)
|
||||||
|
if ospath.isfile(abs_path):
|
||||||
|
return abs_path
|
||||||
|
|
||||||
|
|
||||||
|
def rst_char_len(char):
|
||||||
|
"""
|
||||||
|
return len of string which fit in rst
|
||||||
|
For instance:chinese "我" decode as only one character,
|
||||||
|
However, the rst interpreter needs 2 "=" instead of 1.
|
||||||
|
|
||||||
|
:param: char needs to be count
|
||||||
|
"""
|
||||||
|
return len(re.findall(r'[^\u4e00-\u9fff\s]', char))+len(char)
|
||||||
|
|
||||||
|
def make_items(times, leading='+'):
|
||||||
|
"""
|
||||||
|
make lines with leading char multitimes
|
||||||
|
|
||||||
|
:param: times, how many times you need
|
||||||
|
:param: leading, leading character
|
||||||
|
"""
|
||||||
|
times = int(times)
|
||||||
|
if leading == 1:
|
||||||
|
msg = ""
|
||||||
|
for x in xrange(1, times+1):
|
||||||
|
msg += "%s. Item\n" % x
|
||||||
|
return msg
|
||||||
|
else:
|
||||||
|
return ("%s Item\n" % leading) * times
|
||||||
|
|
||||||
|
|
||||||
|
def look_up_directives(regex, fpath):
|
||||||
|
"""
|
||||||
|
find all directive args in given file
|
||||||
|
:param: regex, the regex that needs to match
|
||||||
|
:param: path, to path to rst file
|
||||||
|
|
||||||
|
:return: list, empty list if nothing match
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
with open(fpath) as source:
|
||||||
|
match = re.findall(regex, source.read())
|
||||||
|
except IOError:
|
||||||
|
match = []
|
||||||
|
return match
|
||||||
|
|
||||||
|
|
||||||
|
def get_popular_code_type():
|
||||||
|
"""
|
||||||
|
find most popular code type in the given rst
|
||||||
|
|
||||||
|
:param path: file to detect
|
||||||
|
|
||||||
|
:return: string, most popular code type in file
|
||||||
|
"""
|
||||||
|
buf = "".join(vim.current.buffer)
|
||||||
|
types = re.findall(r'[:|\.\.\s]code::?\s(\w+)', buf)
|
||||||
|
try:
|
||||||
|
popular_type = Counter(types).most_common()[0][0]
|
||||||
|
except IndexError:
|
||||||
|
popular_type = "lua" # Don't break default
|
||||||
|
return popular_type
|
||||||
|
|
||||||
|
|
||||||
|
def complete(t, opts):
|
||||||
|
"""
|
||||||
|
get options that start with t
|
||||||
|
|
||||||
|
:param t: query string
|
||||||
|
:param opts: list that needs to be completed
|
||||||
|
|
||||||
|
:return: a string that start with t
|
||||||
|
"""
|
||||||
|
msg = "({0})"
|
||||||
|
if t:
|
||||||
|
opts = [ m[len(t):] for m in opts if m.startswith(t) ]
|
||||||
|
if len(opts) == 1:
|
||||||
|
return opts[0]
|
||||||
|
|
||||||
|
if not len(opts):
|
||||||
|
msg = "{0}"
|
||||||
|
return msg.format("|".join(opts))
|
||||||
|
|
||||||
|
endglobal
|
||||||
|
|
||||||
snippet part "Part" b
|
snippet part "Part" b
|
||||||
`!p snip.rv = len(t[1])*'#'`
|
`!p snip.rv = rst_char_len(t[1])*'#'`
|
||||||
${1:Part name}
|
${1:Part name}
|
||||||
`!p snip.rv = len(t[1])*'#'`
|
`!p snip.rv = rst_char_len(t[1])*'#'`
|
||||||
|
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet sec "Section" b
|
snippet sec "Section" b
|
||||||
${1:Section name}
|
${1:Section name}
|
||||||
`!p snip.rv = len(t[1])*'='`
|
`!p snip.rv = rst_char_len(t[1])*'='`
|
||||||
|
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet ssec "Subsection" b
|
snippet ssec "Subsection" b
|
||||||
${1:Section name}
|
${1:Section name}
|
||||||
`!p snip.rv = len(t[1])*'-'`
|
`!p snip.rv = rst_char_len(t[1])*'-'`
|
||||||
|
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet sssec "Subsubsection" b
|
snippet sssec "Subsubsection" b
|
||||||
${1:Section name}
|
${1:Section name}
|
||||||
`!p snip.rv = len(t[1])*'^'`
|
`!p snip.rv = rst_char_len(t[1])*'^'`
|
||||||
|
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet chap "Chapter" b
|
snippet chap "Chapter" b
|
||||||
`!p snip.rv = len(t[1])*'*'`
|
`!p snip.rv = rst_char_len(t[1])*'*'`
|
||||||
${1:Chapter name}
|
${1:Chapter name}
|
||||||
`!p snip.rv = len(t[1])*'*'`
|
`!p snip.rv = rst_char_len(t[1])*'*'`
|
||||||
|
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet para "Paragraph" b
|
snippet para "Paragraph" b
|
||||||
${1:Paragraph name}
|
${1:Paragraph name}
|
||||||
`!p snip.rv = len(t[1])*'"'`
|
`!p snip.rv = rst_char_len(t[1])*'"'`
|
||||||
|
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
snippet em "Emphasize string" i
|
||||||
|
`!p
|
||||||
|
# dirty but works with CJK charactor detection
|
||||||
|
if has_cjk(vim.current.line):
|
||||||
|
snip.rv ="\ "`*${1:${VISUAL:Em}}*`!p
|
||||||
|
if has_cjk(vim.current.line):
|
||||||
|
snip.rv ="\ "
|
||||||
|
else:
|
||||||
|
snip.rv = " "
|
||||||
|
`$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet st "Strong string" i
|
||||||
|
`!p
|
||||||
|
if has_cjk(vim.current.line):
|
||||||
|
snip.rv ="\ "`**${1:${VISUAL:Strong}}**`!p
|
||||||
|
if has_cjk(vim.current.line):
|
||||||
|
snip.rv ="\ "
|
||||||
|
else:
|
||||||
|
snip.rv = " "
|
||||||
|
`$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet "li(st)? (?P<num>\d+)" "List" br
|
||||||
|
$0
|
||||||
|
`!p
|
||||||
|
# usage: li 4<tab>
|
||||||
|
# which will extand into a unordered list contains 4 items
|
||||||
|
snip.rv = make_items(match.groupdict()['num'])
|
||||||
|
`
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet "ol(st)? (?P<num>\d+)" "Order List" br
|
||||||
|
$0
|
||||||
|
`!p
|
||||||
|
# usage: ol 4<tab>
|
||||||
|
# which will extand into a ordered list contains 4 items
|
||||||
|
snip.rv = make_items(match.groupdict()['num'], 1)
|
||||||
|
`
|
||||||
|
endsnippet
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# More Specialized Stuff. #
|
# More Specialized Stuff. #
|
||||||
###########################################################################
|
###########################################################################
|
||||||
snippet cb "Code Block" b
|
snippet cb "Code Block" b
|
||||||
.. code-block:: ${1:lua}
|
.. code-block:: ${1:`!p snip.rv = get_popular_code_type()`}
|
||||||
|
|
||||||
${2:code}
|
${2:code}
|
||||||
|
|
||||||
$0
|
$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
# match snippets :
|
||||||
|
# img, inc, fig
|
||||||
|
snippet id "Includable Directives" b
|
||||||
|
`!p
|
||||||
|
real_name=real_filename(ospath.basename(t[2]))
|
||||||
|
di=t[1][:2]
|
||||||
|
|
||||||
|
link=""
|
||||||
|
content=""
|
||||||
|
|
||||||
|
if di == 'im':
|
||||||
|
link = "|{0}|".format(real_name)
|
||||||
|
|
||||||
|
if di == 'fi':
|
||||||
|
content="""
|
||||||
|
:alt: {0}
|
||||||
|
{0}""".format(real_name)
|
||||||
|
`
|
||||||
|
..`!p snip.rv = " %s" % link if link else ""` $1`!p snip.rv=complete(t[1], INCLUDABLE_DIRECTIVES)`:: ${2:file}`!p if content:
|
||||||
|
snip.rv +=" "+content`
|
||||||
|
`!p
|
||||||
|
# Tip of whether file is exist in comment type
|
||||||
|
if not check_file_exist(path, t[2]):
|
||||||
|
snip.rv='.. FILE {0} does not exist'.format(t[2])
|
||||||
|
else:
|
||||||
|
snip.rv=""
|
||||||
|
`$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet di "Directives" b
|
||||||
|
.. $1`!p snip.rv=complete(t[1], DIRECTIVES)`:: $2
|
||||||
|
|
||||||
|
${3:Content}
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet nd "None Content Directives" b
|
||||||
|
.. $1`!p snip.rv=complete(t[1], NONE_CONTENT_DIRECTIVES)`:: $2
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet sa "Specific Admonitions" b
|
||||||
|
.. $1`!p snip.rv =complete(t[1], SPECIFIC_ADMONITIONS)`::
|
||||||
|
|
||||||
|
${2:Content}
|
||||||
|
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
#it will be trigger at start of line or after a word
|
||||||
|
snippet ro "Text Roles" w
|
||||||
|
\ :$1`!p snip.rv=complete(t[1],
|
||||||
|
TEXT_ROLES+look_up_directives(TEXT_ROLES_REGEX,
|
||||||
|
path))`:\`$2\`\
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
############
|
||||||
|
# Sphinx #
|
||||||
|
############
|
||||||
|
|
||||||
|
snippet sid "SideBar" b
|
||||||
|
.. sidebar:: ${1:SideBar Title}
|
||||||
|
|
||||||
|
${2:SideBar Content}
|
||||||
|
endsnippet
|
||||||
# vim:ft=snippets:
|
# vim:ft=snippets:
|
||||||
|
|
|
@ -25,7 +25,7 @@ endsnippet
|
||||||
|
|
||||||
snippet if "if <condition> ... end"
|
snippet if "if <condition> ... end"
|
||||||
if ${1:condition}
|
if ${1:condition}
|
||||||
${2:# TODO}
|
${2}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -33,9 +33,9 @@ endsnippet
|
||||||
|
|
||||||
snippet ife "if <condition> ... else ... end"
|
snippet ife "if <condition> ... else ... end"
|
||||||
if ${1:condition}
|
if ${1:condition}
|
||||||
${2:# TODO}
|
${2}
|
||||||
else
|
else
|
||||||
${3:# TODO}
|
${3}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -43,11 +43,11 @@ endsnippet
|
||||||
|
|
||||||
snippet ifee "if <condition> ... elseif <condition> ... else ... end"
|
snippet ifee "if <condition> ... elseif <condition> ... else ... end"
|
||||||
if ${1:condition}
|
if ${1:condition}
|
||||||
${2:# TODO}
|
${2}
|
||||||
elsif ${3:condition}
|
elsif ${3:condition}
|
||||||
${4:# TODO}
|
${4}
|
||||||
else
|
else
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ endsnippet
|
||||||
|
|
||||||
snippet unless "unless <condition> ... end"
|
snippet unless "unless <condition> ... end"
|
||||||
unless ${1:condition}
|
unless ${1:condition}
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -63,9 +63,9 @@ endsnippet
|
||||||
|
|
||||||
snippet unlesse "unless <condition> ... else ... end"
|
snippet unlesse "unless <condition> ... else ... end"
|
||||||
unless ${1:condition}
|
unless ${1:condition}
|
||||||
${2:# TODO}
|
${2}
|
||||||
else
|
else
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -73,11 +73,11 @@ endsnippet
|
||||||
|
|
||||||
snippet unlesee "unless <condition> ... elseif <condition> ... else ... end"
|
snippet unlesee "unless <condition> ... elseif <condition> ... else ... end"
|
||||||
unless ${1:condition}
|
unless ${1:condition}
|
||||||
${2:# TODO}
|
${2}
|
||||||
elsif ${3:condition}
|
elsif ${3:condition}
|
||||||
${4:# TODO}
|
${4}
|
||||||
else
|
else
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ endsnippet
|
||||||
|
|
||||||
snippet "\b(de)?f" "def <name>..." r
|
snippet "\b(de)?f" "def <name>..." r
|
||||||
def ${1:function_name}${2: ${3:*args}}
|
def ${1:function_name}${2: ${3:*args}}
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ endsnippet
|
||||||
|
|
||||||
snippet defi "def initialize ..."
|
snippet defi "def initialize ..."
|
||||||
def initialize${1: ${2:*args}}
|
def initialize${1: ${2:*args}}
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -101,23 +101,23 @@ endsnippet
|
||||||
|
|
||||||
snippet defr "def <name> ... rescue ..."
|
snippet defr "def <name> ... rescue ..."
|
||||||
def ${1:function_name}${2: ${3:*args}}
|
def ${1:function_name}${2: ${3:*args}}
|
||||||
${4:# TODO}
|
${4}
|
||||||
rescue
|
rescue
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet For "(<from>..<to>).each { |<i>| <block> }"
|
snippet For "(<from>..<to>).each { |<i>| <block> }"
|
||||||
(${1:from}..${2:to}).each { |${3:i}| ${4:# TODO} }
|
(${1:from}..${2:to}).each { |${3:i}| ${4} }
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet for "(<from>..<to>).each do |<i>| <block> end"
|
snippet for "(<from>..<to>).each do |<i>| <block> end"
|
||||||
(${1:from}..${2:to}).each do |${3:i}|
|
(${1:from}..${2:to}).each do |${3:i}|
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -138,42 +138,42 @@ endsnippet
|
||||||
|
|
||||||
|
|
||||||
snippet "(\S+)\.Del(ete)?_?if" ".delete_if { |<key>,<value>| <block> }" r
|
snippet "(\S+)\.Del(ete)?_?if" ".delete_if { |<key>,<value>| <block> }" r
|
||||||
`!p snip.rv=match.group(1)`.delete_if { |${1:key},${2:value}| ${3:# TODO} }
|
`!p snip.rv=match.group(1)`.delete_if { |${1:key},${2:value}| ${3} }
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet "(\S+)\.del(ete)?_?if" ".delete_if do |<key>,<value>| <block> end" r
|
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}|
|
`!p snip.rv=match.group(1)`.delete_if do |${1:key},${2:value}|
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet "(\S+)\.Keep_?if" ".keep_if { |<key>,<value>| <block> }" r
|
snippet "(\S+)\.Keep_?if" ".keep_if { |<key>,<value>| <block> }" r
|
||||||
`!p snip.rv=match.group(1)`.keep_if { |${1:key},${2:value}| ${3:# TODO} }
|
`!p snip.rv=match.group(1)`.keep_if { |${1:key},${2:value}| ${3} }
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet "(\S+)\.keep_?if" ".keep_if do <key>,<value>| <block> end" r
|
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}|
|
`!p snip.rv=match.group(1)`.keep_if do |${1:key},${2:value}|
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet "(\S+)\.Reject" ".reject { |<key>,<value>| <block> }" r
|
snippet "(\S+)\.Reject" ".reject { |<key>,<value>| <block> }" r
|
||||||
`!p snip.rv=match.group(1)`.reject { |${1:key},${2:value}| ${3:# TODO} }
|
`!p snip.rv=match.group(1)`.reject { |${1:key},${2:value}| ${3} }
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet "(\S+)\.reject" ".reject do <key>,<value>| <block> end" r
|
snippet "(\S+)\.reject" ".reject do <key>,<value>| <block> end" r
|
||||||
`!p snip.rv=match.group(1)`.reject do |${1:key},${2:value}|
|
`!p snip.rv=match.group(1)`.reject do |${1:key},${2:value}|
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -194,56 +194,56 @@ endsnippet
|
||||||
|
|
||||||
|
|
||||||
snippet "(\S+)\.Sort" ".sort { |<a>,<b>| <block> }" r
|
snippet "(\S+)\.Sort" ".sort { |<a>,<b>| <block> }" r
|
||||||
`!p snip.rv=match.group(1)`.sort { |${1:a},${2:b}| ${3:# TODO} }
|
`!p snip.rv=match.group(1)`.sort { |${1:a},${2:b}| ${3} }
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet "(\S+)\.sort" ".sort do |<a>,<b>| <block> end" r
|
snippet "(\S+)\.sort" ".sort do |<a>,<b>| <block> end" r
|
||||||
`!p snip.rv=match.group(1)`.sort do |${1:a},${2:b}|
|
`!p snip.rv=match.group(1)`.sort do |${1:a},${2:b}|
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet "(\S+)\.Each_?k(ey)?" ".each_key { |<key>| <block> }" r
|
snippet "(\S+)\.Each_?k(ey)?" ".each_key { |<key>| <block> }" r
|
||||||
`!p snip.rv=match.group(1)`.each_key { |${1:key}| ${2:# TODO} }
|
`!p snip.rv=match.group(1)`.each_key { |${1:key}| ${2} }
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet "(\S+)\.each_?k(ey)?" ".each_key do |key| <block> end" r
|
snippet "(\S+)\.each_?k(ey)?" ".each_key do |key| <block> end" r
|
||||||
`!p snip.rv=match.group(1)`.each_key do |${1:key}|
|
`!p snip.rv=match.group(1)`.each_key do |${1:key}|
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet "(\S+)\.Each_?val(ue)?" ".each_value { |<value>| <block> }" r
|
snippet "(\S+)\.Each_?val(ue)?" ".each_value { |<value>| <block> }" r
|
||||||
`!p snip.rv=match.group(1)`.each_value { |${1:value}| ${2:# TODO} }
|
`!p snip.rv=match.group(1)`.each_value { |${1:value}| ${2} }
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet "(\S+)\.each_?val(ue)?" ".each_value do |<value>| <block> end" r
|
snippet "(\S+)\.each_?val(ue)?" ".each_value do |<value>| <block> end" r
|
||||||
`!p snip.rv=match.group(1)`.each_value do |${1:value}|
|
`!p snip.rv=match.group(1)`.each_value do |${1:value}|
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet Each "<elements>.each { |<element>| <block> }"
|
snippet Each "<elements>.each { |<element>| <block> }"
|
||||||
${1:elements}.each { |${2:${1/s$//}}| ${3:# TODO} }
|
${1:elements}.each { |${2:${1/s$//}}| ${3} }
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet each "<elements>.each do |<element>| <block> end"
|
snippet each "<elements>.each do |<element>| <block> end"
|
||||||
${1:elements}.each do |${2:${1/s$//}}|
|
${1:elements}.each do |${2:${1/s$//}}|
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -251,14 +251,14 @@ endsnippet
|
||||||
|
|
||||||
snippet each_?s(lice)? "<array>.each_slice(n) do |slice| <block> end"
|
snippet each_?s(lice)? "<array>.each_slice(n) do |slice| <block> end"
|
||||||
each_slice(${1:2}) do |${2:slice}|
|
each_slice(${1:2}) do |${2:slice}|
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet Each_?s(lice)? "<array>.each_slice(n) { |slice| <block> }"
|
snippet Each_?s(lice)? "<array>.each_slice(n) { |slice| <block> }"
|
||||||
each_slice(${1:2}) { |${2:slice}| ${3:# TODO} }
|
each_slice(${1:2}) { |${2:slice}| ${3} }
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
@ -273,7 +273,7 @@ try:
|
||||||
snip.rv = wmatch.group(1).lower()
|
snip.rv = wmatch.group(1).lower()
|
||||||
except:
|
except:
|
||||||
snip.rv = 'element'
|
snip.rv = 'element'
|
||||||
`}| ${2:# TODO} }
|
`}| ${2} }
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
@ -288,7 +288,7 @@ try:
|
||||||
except:
|
except:
|
||||||
snip.rv = 'element'
|
snip.rv = 'element'
|
||||||
`}|
|
`}|
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -303,7 +303,7 @@ try:
|
||||||
snip.rv = wmatch.group(1).lower()
|
snip.rv = wmatch.group(1).lower()
|
||||||
except:
|
except:
|
||||||
snip.rv = 'element'
|
snip.rv = 'element'
|
||||||
`}| ${2:# TODO} }
|
`}| ${2} }
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
@ -318,7 +318,7 @@ try:
|
||||||
except:
|
except:
|
||||||
snip.rv = 'element'
|
snip.rv = 'element'
|
||||||
`}|
|
`}|
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -333,7 +333,7 @@ try:
|
||||||
snip.rv = wmatch.group(1).lower()
|
snip.rv = wmatch.group(1).lower()
|
||||||
except:
|
except:
|
||||||
snip.rv = 'element'
|
snip.rv = 'element'
|
||||||
`}| ${2:# TODO} }
|
`}| ${2} }
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
@ -348,7 +348,7 @@ try:
|
||||||
except:
|
except:
|
||||||
snip.rv = 'element'
|
snip.rv = 'element'
|
||||||
`}|
|
`}|
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -364,7 +364,7 @@ try:
|
||||||
snip.rv = wmatch.group(1).lower()
|
snip.rv = wmatch.group(1).lower()
|
||||||
except:
|
except:
|
||||||
snip.rv = 'element'
|
snip.rv = 'element'
|
||||||
`},${2:i}| ${3:# TODO} }$0
|
`},${2:i}| ${3} }$0
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
@ -379,7 +379,7 @@ try:
|
||||||
except:
|
except:
|
||||||
snip.rv = 'element'
|
snip.rv = 'element'
|
||||||
`},${2:i}|
|
`},${2:i}|
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -387,14 +387,14 @@ endsnippet
|
||||||
|
|
||||||
|
|
||||||
snippet "(\S+)\.Each_?p(air)?" ".each_pair { |<key>,<value>| <block> }" r
|
snippet "(\S+)\.Each_?p(air)?" ".each_pair { |<key>,<value>| <block> }" r
|
||||||
`!p snip.rv=match.group(1)`.each_pair { |${1:key},${2:value}| ${3:# TODO} }
|
`!p snip.rv=match.group(1)`.each_pair { |${1:key},${2:value}| ${3} }
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet "(\S+)\.each_?p(air)?" ".each_pair do |<key>,<value>| <block> end" r
|
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}|
|
`!p snip.rv=match.group(1)`.each_pair do |${1:key},${2:value}|
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -424,26 +424,24 @@ snippet "(\S+)\.Index" ".index do |item| ... end" r
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
# comments about do and dov see snippets/ruby.snippets
|
||||||
|
snippet do "do ... end" i
|
||||||
snippet do "do |<key>| ... end" i
|
|
||||||
do ${1:|${2:key}|}
|
|
||||||
$0
|
|
||||||
end
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet Do "do ... end" i
|
|
||||||
do
|
do
|
||||||
$0
|
$0
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
snippet dov "do |<key>| ... end" i
|
||||||
|
do |${0:v}|
|
||||||
|
$1
|
||||||
|
end
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
snippet until "until <expression> ... end"
|
snippet until "until <expression> ... end"
|
||||||
until ${1:expression}
|
until ${1:expression}
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -451,7 +449,7 @@ endsnippet
|
||||||
|
|
||||||
snippet Until "begin ... end until <expression>"
|
snippet Until "begin ... end until <expression>"
|
||||||
begin
|
begin
|
||||||
${0:# TODO}
|
${0}
|
||||||
end until ${1:expression}
|
end until ${1:expression}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -459,7 +457,7 @@ endsnippet
|
||||||
|
|
||||||
snippet while "while <expression> ... end"
|
snippet while "while <expression> ... end"
|
||||||
while ${1:expression}
|
while ${1:expression}
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -467,7 +465,7 @@ endsnippet
|
||||||
|
|
||||||
snippet While "begin ... end while <expression>"
|
snippet While "begin ... end while <expression>"
|
||||||
begin
|
begin
|
||||||
${0:# TODO}
|
${0}
|
||||||
end while ${1:expression}
|
end while ${1:expression}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
@ -493,9 +491,9 @@ endsnippet
|
||||||
|
|
||||||
snippet begin "begin ... rescue ... end"
|
snippet begin "begin ... rescue ... end"
|
||||||
begin
|
begin
|
||||||
${1:# TODO}
|
${1}
|
||||||
rescue
|
rescue
|
||||||
${0:# TODO}
|
${0}
|
||||||
end
|
end
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
|
|
@ -16,14 +16,14 @@ foreach ${1:var} ${2:\$list} {
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet if "if... (if)" b
|
snippet if "if... (if)" b
|
||||||
if {${1:condition}} {
|
if {${1}} {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
|
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet proc "proc... (proc)" b
|
snippet proc "proc... (proc)" b
|
||||||
proc ${1:name} {${2:args}} \
|
proc ${1} {${2}} \
|
||||||
{
|
{
|
||||||
${3}
|
${3}
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ switch ${1:-exact} -- ${2:\$var} {
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet while "while... (while)" b
|
snippet while "while... (while)" b
|
||||||
while {${1:condition}} {
|
while {${1}} {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,30 +25,30 @@ endsnippet
|
||||||
|
|
||||||
snippet f
|
snippet f
|
||||||
fun ${1:function_name}(${2})
|
fun ${1:function_name}(${2})
|
||||||
${3:" code}
|
${3}
|
||||||
endf
|
endf
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet for
|
snippet for
|
||||||
for ${1:needle} in ${2:haystack}
|
for ${1} in ${2}
|
||||||
${3:" code}
|
${3}
|
||||||
endfor
|
endfor
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet wh
|
snippet wh
|
||||||
while ${1:condition}
|
while ${1}
|
||||||
${2:" code}
|
${2}
|
||||||
endw
|
endw
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet if
|
snippet if
|
||||||
if ${1:condition}
|
if ${1}
|
||||||
${2:" code}
|
${2}
|
||||||
endif
|
endif
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
snippet ife
|
snippet ife
|
||||||
if ${1:condition}
|
if ${1}
|
||||||
${2}
|
${2}
|
||||||
else
|
else
|
||||||
${3}
|
${3}
|
||||||
|
|
27
sources_non_forked/vim-snippets/autoload/vim_snippets.vim
Normal file
27
sources_non_forked/vim-snippets/autoload/vim_snippets.vim
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
" this is well known Filename found in snipmate (and the other engines), but
|
||||||
|
" rewritten and documented :)
|
||||||
|
"
|
||||||
|
" optional arg1: string in which to replace '$1' by filename with extension
|
||||||
|
" and path dropped. Defaults to $1
|
||||||
|
" optional arg2: return this value if buffer has no filename
|
||||||
|
" But why not use the template in this case, too?
|
||||||
|
" Doesn't make sense to me
|
||||||
|
fun! vim_snippets#Filename(...)
|
||||||
|
let template = get(a:000, 0, "$1")
|
||||||
|
let arg2 = get(a:000, 1, "")
|
||||||
|
|
||||||
|
let basename = expand('%:t:r')
|
||||||
|
|
||||||
|
if basename == ''
|
||||||
|
return arg2
|
||||||
|
else
|
||||||
|
return substitute(template, '$1', basename, 'g')
|
||||||
|
endif
|
||||||
|
endf
|
||||||
|
|
||||||
|
" original code:
|
||||||
|
" fun! Filename(...)
|
||||||
|
" let filename = expand('%:t:r')
|
||||||
|
" if filename == '' | return a:0 == 2 ? a:2 : '' | endif
|
||||||
|
" return !a:0 || a:1 == '' ? filename : substitute(a:1, '$1', filename, 'g')
|
||||||
|
" endf
|
|
@ -109,17 +109,17 @@ snippet try
|
||||||
# For Loop (same as c.snippet)
|
# For Loop (same as c.snippet)
|
||||||
snippet for for (..) {..}
|
snippet for for (..) {..}
|
||||||
for (${2:i} = 0; $2 < ${1:count}; $2${3:++}) {
|
for (${2:i} = 0; $2 < ${1:count}; $2${3:++}) {
|
||||||
${4:/* code */}
|
${4}
|
||||||
}
|
}
|
||||||
# Custom For Loop
|
# Custom For Loop
|
||||||
snippet forr
|
snippet forr
|
||||||
for (${1:i} = ${2:0}; ${3:$1 < 10}; $1${4:++}) {
|
for (${1:i} = ${2:0}; ${3:$1 < 10}; $1${4:++}) {
|
||||||
${5:/* code */}
|
${5}
|
||||||
}
|
}
|
||||||
# If Condition
|
# If Condition
|
||||||
snippet if
|
snippet if
|
||||||
if (${1:/* condition */}) {
|
if (${1:/* condition */}) {
|
||||||
${2:/* code */}
|
${2}
|
||||||
}
|
}
|
||||||
snippet el
|
snippet el
|
||||||
else {
|
else {
|
||||||
|
@ -131,7 +131,7 @@ snippet t
|
||||||
snippet fun
|
snippet fun
|
||||||
function ${1:function_name}(${2})${3}
|
function ${1:function_name}(${2})${3}
|
||||||
{
|
{
|
||||||
${4:/* code */}
|
${4}
|
||||||
}
|
}
|
||||||
# FlxSprite (usefull when using the flixel library)
|
# FlxSprite (usefull when using the flixel library)
|
||||||
snippet FlxSprite
|
snippet FlxSprite
|
||||||
|
@ -144,13 +144,13 @@ snippet FlxSprite
|
||||||
public function $1(${3: X:Number, Y:Number}):void
|
public function $1(${3: X:Number, Y:Number}):void
|
||||||
{
|
{
|
||||||
super(X,Y);
|
super(X,Y);
|
||||||
${4: //code...}
|
${4}
|
||||||
}
|
}
|
||||||
|
|
||||||
override public function update():void
|
override public function update():void
|
||||||
{
|
{
|
||||||
super.update();
|
super.update();
|
||||||
${5: //code...}
|
${5}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,17 +5,17 @@ snippet if
|
||||||
snippet el
|
snippet el
|
||||||
Else
|
Else
|
||||||
${1}
|
${1}
|
||||||
snippet elif
|
snippet eif
|
||||||
ElseIf ${1:condition} Then
|
ElseIf ${1:condition} Then
|
||||||
${2:; True code}
|
${2:; True code}
|
||||||
# If/Else block
|
# If/Else block
|
||||||
snippet ifel
|
snippet ife
|
||||||
If ${1:condition} Then
|
If ${1:condition} Then
|
||||||
${2:; True code}
|
${2:; True code}
|
||||||
Else
|
Else
|
||||||
${3:; Else code}
|
${3:; Else code}
|
||||||
EndIf
|
EndIf
|
||||||
# If/ElseIf/Else block
|
# If/ElseIf/Else block - because there is eif this is not really neccessary
|
||||||
snippet ifelif
|
snippet ifelif
|
||||||
If ${1:condition 1} Then
|
If ${1:condition 1} Then
|
||||||
${2:; True code}
|
${2:; True code}
|
||||||
|
|
|
@ -20,7 +20,7 @@ snippet inc
|
||||||
#include <${1:stdio}.h>${2}
|
#include <${1:stdio}.h>${2}
|
||||||
# #include "..."
|
# #include "..."
|
||||||
snippet Inc
|
snippet Inc
|
||||||
#include "${1:`Filename("$1.h")`}"${2}
|
#include "${1:`vim_snippets#Filename("$1.h")`}"${2}
|
||||||
# ifndef...define...endif
|
# ifndef...define...endif
|
||||||
snippet ndef
|
snippet ndef
|
||||||
#ifndef $1
|
#ifndef $1
|
||||||
|
@ -41,7 +41,7 @@ snippet #if
|
||||||
#endif
|
#endif
|
||||||
# header include guard
|
# header include guard
|
||||||
snippet once
|
snippet once
|
||||||
#ifndef ${1:`toupper(Filename('$1_H', 'UNTITLED_H'))`}
|
#ifndef ${1:`toupper(vim_snippets#Filename('$1_H', 'UNTITLED_H'))`}
|
||||||
|
|
||||||
#define $1
|
#define $1
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ snippet once
|
||||||
# if
|
# if
|
||||||
snippet if
|
snippet if
|
||||||
if (${1:/* condition */}) {
|
if (${1:/* condition */}) {
|
||||||
${2:/* code */}
|
${2}
|
||||||
}${3}
|
}${3}
|
||||||
# else
|
# else
|
||||||
snippet el
|
snippet el
|
||||||
|
@ -63,8 +63,11 @@ snippet el
|
||||||
# else if
|
# else if
|
||||||
snippet elif
|
snippet elif
|
||||||
else if (${1:/* condition */}) {
|
else if (${1:/* condition */}) {
|
||||||
${2:/* code */}
|
${2}
|
||||||
}${3}
|
}${3}
|
||||||
|
# ifi
|
||||||
|
snippet ifi
|
||||||
|
if (${1:/* condition */}) ${2};${3}
|
||||||
# ternary
|
# ternary
|
||||||
snippet t
|
snippet t
|
||||||
${1:/* condition */} ? ${2:a} : ${3:b}
|
${1:/* condition */} ? ${2:a} : ${3:b}
|
||||||
|
@ -94,22 +97,22 @@ snippet case
|
||||||
# for
|
# for
|
||||||
snippet for
|
snippet for
|
||||||
for (${2:i} = 0; $2 < ${1:count}; $2${3:++}) {
|
for (${2:i} = 0; $2 < ${1:count}; $2${3:++}) {
|
||||||
${4:/* code */}
|
${4}
|
||||||
}${5}
|
}${5}
|
||||||
# for (custom)
|
# for (custom)
|
||||||
snippet forr
|
snippet forr
|
||||||
for (${1:i} = ${2:0}; ${3:$1 < 10}; $1${4:++}) {
|
for (${1:i} = ${2:0}; ${3:$1 < 10}; $1${4:++}) {
|
||||||
${5:/* code */}
|
${5}
|
||||||
}${6}
|
}${6}
|
||||||
# while
|
# while
|
||||||
snippet wh
|
snippet wh
|
||||||
while (${1:/* condition */}) {
|
while (${1:/* condition */}) {
|
||||||
${2:/* code */}
|
${2}
|
||||||
}${3}
|
}${3}
|
||||||
# do... while
|
# do... while
|
||||||
snippet do
|
snippet do
|
||||||
do {
|
do {
|
||||||
${2:/* code */}
|
${2}
|
||||||
} while (${1:/* condition */});${3}
|
} while (${1:/* condition */});${3}
|
||||||
##
|
##
|
||||||
## Functions
|
## Functions
|
||||||
|
@ -117,7 +120,7 @@ snippet do
|
||||||
snippet fun
|
snippet fun
|
||||||
${1:void} ${2:function_name}(${3})
|
${1:void} ${2:function_name}(${3})
|
||||||
{
|
{
|
||||||
${4:/* code */}
|
${4}
|
||||||
}${5}
|
}${5}
|
||||||
# function declaration
|
# function declaration
|
||||||
snippet fund
|
snippet fund
|
||||||
|
@ -129,14 +132,14 @@ snippet td
|
||||||
typedef ${1:int} ${2:MyCustomType};${3}
|
typedef ${1:int} ${2:MyCustomType};${3}
|
||||||
# struct
|
# struct
|
||||||
snippet st
|
snippet st
|
||||||
struct ${1:`Filename('$1_t', 'name')`} {
|
struct ${1:`vim_snippets#Filename('$1_t', 'name')`} {
|
||||||
${2:/* data */}
|
${2:/* data */}
|
||||||
}${3: /* optional variable list */};${4}
|
}${3: /* optional variable list */};${4}
|
||||||
# typedef struct
|
# typedef struct
|
||||||
snippet tds
|
snippet tds
|
||||||
typedef struct ${2:_$1 }{
|
typedef struct ${2:_$1 }{
|
||||||
${3:/* data */}
|
${3:/* data */}
|
||||||
} ${1:`Filename('$1_t', 'name')`};${4}
|
} ${1:`vim_snippets#Filename('$1_t', 'name')`};${4}
|
||||||
# typedef enum
|
# typedef enum
|
||||||
snippet tde
|
snippet tde
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|
|
@ -35,19 +35,19 @@ snippet bfun
|
||||||
${2:# body...}
|
${2:# body...}
|
||||||
# Class
|
# Class
|
||||||
snippet cla class ..
|
snippet cla class ..
|
||||||
class ${1:`substitute(Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
|
class ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
|
||||||
${2}
|
${2}
|
||||||
snippet cla class .. constructor: ..
|
snippet cla class .. constructor: ..
|
||||||
class ${1:`substitute(Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
|
class ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
|
||||||
constructor: (${2:args}) ->
|
constructor: (${2:args}) ->
|
||||||
${3}
|
${3}
|
||||||
|
|
||||||
${4}
|
${4}
|
||||||
snippet cla class .. extends ..
|
snippet cla class .. extends ..
|
||||||
class ${1:`substitute(Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} extends ${2:ParentClass}
|
class ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} extends ${2:ParentClass}
|
||||||
${3}
|
${3}
|
||||||
snippet cla class .. extends .. constructor: ..
|
snippet cla class .. extends .. constructor: ..
|
||||||
class ${1:`substitute(Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} extends ${2:ParentClass}
|
class ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} extends ${2:ParentClass}
|
||||||
constructor: (${3:args}) ->
|
constructor: (${3:args}) ->
|
||||||
${4}
|
${4}
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ snippet ife
|
||||||
else
|
else
|
||||||
${3:# body...}
|
${3:# body...}
|
||||||
# Else if
|
# Else if
|
||||||
snippet elif
|
snippet eif
|
||||||
else if ${1:condition}
|
else if ${1:condition}
|
||||||
${2:# body...}
|
${2:# body...}
|
||||||
# Ternary If
|
# Ternary If
|
||||||
|
|
|
@ -68,7 +68,7 @@ snippet mu
|
||||||
## Class
|
## Class
|
||||||
# class
|
# class
|
||||||
snippet cl
|
snippet cl
|
||||||
class ${1:`Filename('$1', 'name')`}
|
class ${1:`vim_snippets#Filename('$1', 'name')`}
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
$1(${2});
|
$1(${2});
|
||||||
|
@ -79,12 +79,12 @@ snippet cl
|
||||||
};
|
};
|
||||||
# member function implementation
|
# member function implementation
|
||||||
snippet mfun
|
snippet mfun
|
||||||
${4:void} ${1:`Filename('$1', 'ClassName')`}::${2:memberFunction}(${3}) {
|
${4:void} ${1:`vim_snippets#Filename('$1', 'ClassName')`}::${2:memberFunction}(${3}) {
|
||||||
${5:/* code */}
|
${5}
|
||||||
}
|
}
|
||||||
# namespace
|
# namespace
|
||||||
snippet ns
|
snippet ns
|
||||||
namespace ${1:`Filename('', 'my')`} {
|
namespace ${1:`vim_snippets#Filename('', 'my')`} {
|
||||||
${2}
|
${2}
|
||||||
} /* namespace $1 */
|
} /* namespace $1 */
|
||||||
##
|
##
|
||||||
|
@ -100,13 +100,13 @@ snippet cin
|
||||||
# for i
|
# for i
|
||||||
snippet fori
|
snippet fori
|
||||||
for (int ${2:i} = 0; $2 < ${1:count}; $2${3:++}) {
|
for (int ${2:i} = 0; $2 < ${1:count}; $2${3:++}) {
|
||||||
${4:/* code */}
|
${4}
|
||||||
}${5}
|
}${5}
|
||||||
|
|
||||||
# foreach
|
# foreach
|
||||||
snippet fore
|
snippet fore
|
||||||
for (${1:auto} ${2:i} : ${3:container}) {
|
for (${1:auto} ${2:i} : ${3:container}) {
|
||||||
${4:/* code */}
|
${4}
|
||||||
}${5}
|
}${5}
|
||||||
# iterator
|
# iterator
|
||||||
snippet iter
|
snippet iter
|
||||||
|
@ -123,9 +123,9 @@ snippet itera
|
||||||
## Lambdas
|
## Lambdas
|
||||||
# lamda (one line)
|
# lamda (one line)
|
||||||
snippet ld
|
snippet ld
|
||||||
[${1}](${2}){${3:/* code */}}${4}
|
[${1}](${2}){${3}}${4}
|
||||||
# lambda (multi-line)
|
# lambda (multi-line)
|
||||||
snippet lld
|
snippet lld
|
||||||
[${1}](${2}){
|
[${1}](${2}){
|
||||||
${3:/* code */}
|
${3}
|
||||||
}${4}
|
}${4}
|
||||||
|
|
|
@ -116,49 +116,49 @@ snippet each
|
||||||
}
|
}
|
||||||
# interfaces
|
# interfaces
|
||||||
snippet interface
|
snippet interface
|
||||||
public interface ${1:`Filename()`} {
|
public interface ${1:`vim_snippets#Filename()`} {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
snippet if+
|
snippet if+
|
||||||
public interface ${1:`Filename()`} {
|
public interface ${1:`vim_snippets#Filename()`} {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
# class bodies
|
# class bodies
|
||||||
snippet class
|
snippet class
|
||||||
public class ${1:`Filename()`} {
|
public class ${1:`vim_snippets#Filename()`} {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
snippet cls
|
snippet cls
|
||||||
${2:public} class ${1:`Filename()`} {
|
${2:public} class ${1:`vim_snippets#Filename()`} {
|
||||||
${3}
|
${3}
|
||||||
}
|
}
|
||||||
snippet cls+
|
snippet cls+
|
||||||
public class ${1:`Filename()`} {
|
public class ${1:`vim_snippets#Filename()`} {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
snippet cls+^
|
snippet cls+^
|
||||||
public static class ${1:`Filename()`} {
|
public static class ${1:`vim_snippets#Filename()`} {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
snippet cls&
|
snippet cls&
|
||||||
internal class ${1:`Filename()`} {
|
internal class ${1:`vim_snippets#Filename()`} {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
snippet cls&^
|
snippet cls&^
|
||||||
internal static class ${1:`Filename()`} {
|
internal static class ${1:`vim_snippets#Filename()`} {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
snippet cls|
|
snippet cls|
|
||||||
protected class ${1:`Filename()`} {
|
protected class ${1:`vim_snippets#Filename()`} {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
snippet cls|%
|
snippet cls|%
|
||||||
protected abstract class ${1:`Filename()`} {
|
protected abstract class ${1:`vim_snippets#Filename()`} {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
# constructor
|
# constructor
|
||||||
snippet ctor
|
snippet ctor
|
||||||
public ${1:`Filename()`}() {
|
public ${1:`vim_snippets#Filename()`}() {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
# properties - auto properties by default.
|
# properties - auto properties by default.
|
||||||
|
@ -342,7 +342,7 @@ snippet ms-
|
||||||
}
|
}
|
||||||
# structure
|
# structure
|
||||||
snippet struct
|
snippet struct
|
||||||
public struct ${1:`Filename()`} {
|
public struct ${1:`vim_snippets#Filename()`} {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
# enumeration
|
# enumeration
|
||||||
|
|
|
@ -9,7 +9,7 @@ snippet so
|
||||||
${2}
|
${2}
|
||||||
snippet main
|
snippet main
|
||||||
static void main() {
|
static void main() {
|
||||||
${1:/* code */}
|
${1}
|
||||||
}
|
}
|
||||||
snippet st
|
snippet st
|
||||||
static ${1}
|
static ${1}
|
||||||
|
@ -22,9 +22,9 @@ snippet br
|
||||||
snippet th
|
snippet th
|
||||||
throw ${1}
|
throw ${1}
|
||||||
snippet cl
|
snippet cl
|
||||||
class ${1:`Filename("", "untitled")`} ${2}
|
class ${1:`vim_snippets#Filename("", "untitled")`} ${2}
|
||||||
snippet in
|
snippet in
|
||||||
interface ${1:`Filename("", "untitled")`} ${2}
|
interface ${1:`vim_snippets#Filename("", "untitled")`} ${2}
|
||||||
snippet imp
|
snippet imp
|
||||||
implements ${1}
|
implements ${1}
|
||||||
snippet ext
|
snippet ext
|
||||||
|
@ -57,15 +57,15 @@ snippet for
|
||||||
}
|
}
|
||||||
snippet fore
|
snippet fore
|
||||||
for (final ${2:item} in ${1:itemList}) {
|
for (final ${2:item} in ${1:itemList}) {
|
||||||
${3:/* code */}
|
${3}
|
||||||
}
|
}
|
||||||
snippet wh
|
snippet wh
|
||||||
while (${1:/* condition */}) {
|
while (${1:/* condition */}) {
|
||||||
${2:/* code */}
|
${2}
|
||||||
}
|
}
|
||||||
snippet dowh
|
snippet dowh
|
||||||
do {
|
do {
|
||||||
${2:/* code */}
|
${2}
|
||||||
} while (${1:/* condition */});
|
} while (${1:/* condition */});
|
||||||
snippet as
|
snippet as
|
||||||
assert(${1:/* condition */});
|
assert(${1:/* condition */});
|
||||||
|
|
122
sources_non_forked/vim-snippets/snippets/elixir.snippets
Normal file
122
sources_non_forked/vim-snippets/snippets/elixir.snippets
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
snippet do
|
||||||
|
do
|
||||||
|
${1}
|
||||||
|
end
|
||||||
|
snippet if if .. do .. end
|
||||||
|
if ${1} do
|
||||||
|
${2}
|
||||||
|
end
|
||||||
|
|
||||||
|
snippet if if .. do: ..
|
||||||
|
if ${1:condition}, do: ${2}
|
||||||
|
|
||||||
|
snippet ife if .. do .. else .. end
|
||||||
|
if ${1:condition} do
|
||||||
|
${2}
|
||||||
|
else
|
||||||
|
${3}
|
||||||
|
end
|
||||||
|
|
||||||
|
snippet ife if .. do: .. else:
|
||||||
|
if ${1:condition}, do: ${2}, else: ${3}
|
||||||
|
|
||||||
|
snippet unless unless .. do .. end
|
||||||
|
unless ${1} do
|
||||||
|
${2}
|
||||||
|
end
|
||||||
|
|
||||||
|
snippet unless unless .. do: ..
|
||||||
|
unless ${1:condition}, do: ${2}
|
||||||
|
|
||||||
|
snippet unlesse unless .. do .. else .. end
|
||||||
|
unless ${1:condition} do
|
||||||
|
${2}
|
||||||
|
else
|
||||||
|
${3}
|
||||||
|
end
|
||||||
|
|
||||||
|
snippet unlesse unless .. do: .. else:
|
||||||
|
unless ${1:condition}, do: ${2}, else: ${3}
|
||||||
|
|
||||||
|
snippet cond
|
||||||
|
cond do
|
||||||
|
${1} ->
|
||||||
|
${2}
|
||||||
|
end
|
||||||
|
|
||||||
|
snippet case
|
||||||
|
case ${1} do
|
||||||
|
${2} ->
|
||||||
|
${3}
|
||||||
|
end
|
||||||
|
|
||||||
|
snippet def
|
||||||
|
def ${1:name} do
|
||||||
|
${2}
|
||||||
|
end
|
||||||
|
|
||||||
|
snippet defim
|
||||||
|
defimpl ${1:protocol_name}, for: ${2:data_type} do
|
||||||
|
${3}
|
||||||
|
end
|
||||||
|
|
||||||
|
snippet defma
|
||||||
|
defmacro ${1:name} do
|
||||||
|
${2}
|
||||||
|
end
|
||||||
|
|
||||||
|
snippet defmo
|
||||||
|
defmodule ${1:module_name} do
|
||||||
|
${2}
|
||||||
|
end
|
||||||
|
|
||||||
|
snippet defp
|
||||||
|
defp ${1:name} do
|
||||||
|
${2}
|
||||||
|
end
|
||||||
|
|
||||||
|
snippet defpr
|
||||||
|
defprotocol ${1:name}, [${2:function}]
|
||||||
|
|
||||||
|
snippet defr
|
||||||
|
defrecord ${1:record_name}, ${2:fields}
|
||||||
|
|
||||||
|
snippet doc
|
||||||
|
@doc """
|
||||||
|
${1}
|
||||||
|
"""
|
||||||
|
|
||||||
|
snippet fn
|
||||||
|
fn(${1:args}) -> ${2} end
|
||||||
|
|
||||||
|
snippet mdoc
|
||||||
|
@moduledoc """
|
||||||
|
${1}
|
||||||
|
"""
|
||||||
|
|
||||||
|
snippet rec
|
||||||
|
receive do
|
||||||
|
${1} ->
|
||||||
|
${2}
|
||||||
|
end
|
||||||
|
|
||||||
|
snippet req
|
||||||
|
require ${1:module_name}
|
||||||
|
|
||||||
|
snippet imp
|
||||||
|
import ${1:module_name}
|
||||||
|
|
||||||
|
snippet ali
|
||||||
|
alias ${1:module_name}
|
||||||
|
|
||||||
|
snippet test
|
||||||
|
test "${1:test_name}" do
|
||||||
|
${2}
|
||||||
|
end
|
||||||
|
|
||||||
|
snippet try try .. rescue .. end
|
||||||
|
try do
|
||||||
|
${1}
|
||||||
|
rescue
|
||||||
|
${2} -> ${3}
|
||||||
|
end
|
|
@ -1,6 +1,6 @@
|
||||||
# module and export all
|
# module and export all
|
||||||
snippet mod
|
snippet mod
|
||||||
-module(${1:`Filename('', 'my')`}).
|
-module(${1:`vim_snippets#Filename('', 'my')`}).
|
||||||
|
|
||||||
-compile([export_all]).
|
-compile([export_all]).
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ snippet %p
|
||||||
%% @private
|
%% @private
|
||||||
# OTP application
|
# OTP application
|
||||||
snippet application
|
snippet application
|
||||||
-module(${1:`Filename('', 'my')`}).
|
-module(${1:`vim_snippets#Filename('', 'my')`}).
|
||||||
|
|
||||||
-behaviour(application).
|
-behaviour(application).
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ snippet application
|
||||||
ok.
|
ok.
|
||||||
# OTP supervisor
|
# OTP supervisor
|
||||||
snippet supervisor
|
snippet supervisor
|
||||||
-module(${1:`Filename('', 'my')`}).
|
-module(${1:`vim_snippets#Filename('', 'my')`}).
|
||||||
|
|
||||||
-behaviour(supervisor).
|
-behaviour(supervisor).
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ snippet supervisor
|
||||||
{ok, {RestartStrategy, Children}}.
|
{ok, {RestartStrategy, Children}}.
|
||||||
# OTP gen_server
|
# OTP gen_server
|
||||||
snippet gen_server
|
snippet gen_server
|
||||||
-module(${1:`Filename('', 'my')`}).
|
-module(${1:`vim_snippets#Filename('', 'my')`}).
|
||||||
|
|
||||||
-behaviour(gen_server).
|
-behaviour(gen_server).
|
||||||
|
|
||||||
|
@ -157,4 +157,194 @@ snippet gen_server
|
||||||
%%%===================================================================
|
%%%===================================================================
|
||||||
%%% Internal functions
|
%%% Internal functions
|
||||||
%%%===================================================================
|
%%%===================================================================
|
||||||
|
# common_test test_SUITE
|
||||||
|
snippet testsuite
|
||||||
|
-module(${1:`vim_snippets#Filename('', 'my')`}).
|
||||||
|
|
||||||
|
-include_lib("common_test/include/ct.hrl").
|
||||||
|
|
||||||
|
%% Test server callbacks
|
||||||
|
-export([suite/0, all/0, groups/0,
|
||||||
|
init_per_suite/1, end_per_suite/1,
|
||||||
|
init_per_group/2, end_per_group/2,
|
||||||
|
init_per_testcase/2, end_per_testcase/2]).
|
||||||
|
|
||||||
|
%% Test cases
|
||||||
|
-export([
|
||||||
|
]).
|
||||||
|
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% COMMON TEST CALLBACK FUNCTIONS
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% Function: suite() -> Info
|
||||||
|
%%
|
||||||
|
%% Info = [tuple()]
|
||||||
|
%% List of key/value pairs.
|
||||||
|
%%
|
||||||
|
%% Description: Returns list of tuples to set default properties
|
||||||
|
%% for the suite.
|
||||||
|
%%
|
||||||
|
%% Note: The suite/0 function is only meant to be used to return
|
||||||
|
%% default data values, not perform any other operations.
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
suite() ->
|
||||||
|
[{timetrap,{minutes,10}}].
|
||||||
|
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% Function: init_per_suite(Config0) ->
|
||||||
|
%% Config1 | {skip,Reason} | {skip_and_save,Reason,Config1}
|
||||||
|
%%
|
||||||
|
%% Config0 = Config1 = [tuple()]
|
||||||
|
%% A list of key/value pairs, holding the test case configuration.
|
||||||
|
%% Reason = term()
|
||||||
|
%% The reason for skipping the suite.
|
||||||
|
%%
|
||||||
|
%% Description: Initialization before the suite.
|
||||||
|
%%
|
||||||
|
%% Note: This function is free to add any key/value pairs to the Config
|
||||||
|
%% variable, but should NOT alter/remove any existing entries.
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
init_per_suite(Config) ->
|
||||||
|
Config.
|
||||||
|
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% Function: end_per_suite(Config0) -> void() | {save_config,Config1}
|
||||||
|
%%
|
||||||
|
%% Config0 = Config1 = [tuple()]
|
||||||
|
%% A list of key/value pairs, holding the test case configuration.
|
||||||
|
%%
|
||||||
|
%% Description: Cleanup after the suite.
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
end_per_suite(_Config) ->
|
||||||
|
ok.
|
||||||
|
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% Function: init_per_group(GroupName, Config0) ->
|
||||||
|
%% Config1 | {skip,Reason} | {skip_and_save,Reason,Config1}
|
||||||
|
%%
|
||||||
|
%% GroupName = atom()
|
||||||
|
%% Name of the test case group that is about to run.
|
||||||
|
%% Config0 = Config1 = [tuple()]
|
||||||
|
%% A list of key/value pairs, holding configuration data for the group.
|
||||||
|
%% Reason = term()
|
||||||
|
%% The reason for skipping all test cases and subgroups in the group.
|
||||||
|
%%
|
||||||
|
%% Description: Initialization before each test case group.
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
init_per_group(_GroupName, Config) ->
|
||||||
|
Config.
|
||||||
|
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% Function: end_per_group(GroupName, Config0) ->
|
||||||
|
%% void() | {save_config,Config1}
|
||||||
|
%%
|
||||||
|
%% GroupName = atom()
|
||||||
|
%% Name of the test case group that is finished.
|
||||||
|
%% Config0 = Config1 = [tuple()]
|
||||||
|
%% A list of key/value pairs, holding configuration data for the group.
|
||||||
|
%%
|
||||||
|
%% Description: Cleanup after each test case group.
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
end_per_group(_GroupName, _Config) ->
|
||||||
|
ok.
|
||||||
|
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% Function: init_per_testcase(TestCase, Config0) ->
|
||||||
|
%% Config1 | {skip,Reason} | {skip_and_save,Reason,Config1}
|
||||||
|
%%
|
||||||
|
%% TestCase = atom()
|
||||||
|
%% Name of the test case that is about to run.
|
||||||
|
%% Config0 = Config1 = [tuple()]
|
||||||
|
%% A list of key/value pairs, holding the test case configuration.
|
||||||
|
%% Reason = term()
|
||||||
|
%% The reason for skipping the test case.
|
||||||
|
%%
|
||||||
|
%% Description: Initialization before each test case.
|
||||||
|
%%
|
||||||
|
%% Note: This function is free to add any key/value pairs to the Config
|
||||||
|
%% variable, but should NOT alter/remove any existing entries.
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
init_per_testcase(_TestCase, Config) ->
|
||||||
|
Config.
|
||||||
|
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% Function: end_per_testcase(TestCase, Config0) ->
|
||||||
|
%% void() | {save_config,Config1} | {fail,Reason}
|
||||||
|
%%
|
||||||
|
%% TestCase = atom()
|
||||||
|
%% Name of the test case that is finished.
|
||||||
|
%% Config0 = Config1 = [tuple()]
|
||||||
|
%% A list of key/value pairs, holding the test case configuration.
|
||||||
|
%% Reason = term()
|
||||||
|
%% The reason for failing the test case.
|
||||||
|
%%
|
||||||
|
%% Description: Cleanup after each test case.
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
end_per_testcase(_TestCase, _Config) ->
|
||||||
|
ok.
|
||||||
|
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% Function: groups() -> [Group]
|
||||||
|
%%
|
||||||
|
%% Group = {GroupName,Properties,GroupsAndTestCases}
|
||||||
|
%% GroupName = atom()
|
||||||
|
%% The name of the group.
|
||||||
|
%% Properties = [parallel | sequence | Shuffle | {RepeatType,N}]
|
||||||
|
%% Group properties that may be combined.
|
||||||
|
%% GroupsAndTestCases = [Group | {group,GroupName} | TestCase]
|
||||||
|
%% TestCase = atom()
|
||||||
|
%% The name of a test case.
|
||||||
|
%% Shuffle = shuffle | {shuffle,Seed}
|
||||||
|
%% To get cases executed in random order.
|
||||||
|
%% Seed = {integer(),integer(),integer()}
|
||||||
|
%% RepeatType = repeat | repeat_until_all_ok | repeat_until_all_fail |
|
||||||
|
%% repeat_until_any_ok | repeat_until_any_fail
|
||||||
|
%% To get execution of cases repeated.
|
||||||
|
%% N = integer() | forever
|
||||||
|
%%
|
||||||
|
%% Description: Returns a list of test case group definitions.
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
groups() ->
|
||||||
|
[].
|
||||||
|
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% Function: all() -> GroupsAndTestCases | {skip,Reason}
|
||||||
|
%%
|
||||||
|
%% GroupsAndTestCases = [{group,GroupName} | TestCase]
|
||||||
|
%% GroupName = atom()
|
||||||
|
%% Name of a test case group.
|
||||||
|
%% TestCase = atom()
|
||||||
|
%% Name of a test case.
|
||||||
|
%% Reason = term()
|
||||||
|
%% The reason for skipping all groups and test cases.
|
||||||
|
%%
|
||||||
|
%% Description: Returns the list of groups and test cases that
|
||||||
|
%% are to be executed.
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
all() ->
|
||||||
|
[].
|
||||||
|
|
||||||
|
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% TEST CASES
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% Function: TestCase(Config0) ->
|
||||||
|
%% ok | exit() | {skip,Reason} | {comment,Comment} |
|
||||||
|
%% {save_config,Config1} | {skip_and_save,Reason,Config1}
|
||||||
|
%%
|
||||||
|
%% Config0 = Config1 = [tuple()]
|
||||||
|
%% A list of key/value pairs, holding the test case configuration.
|
||||||
|
%% Reason = term()
|
||||||
|
%% The reason for skipping the test case.
|
||||||
|
%% Comment = term()
|
||||||
|
%% A comment about the test case that will be printed in the html log.
|
||||||
|
%%
|
||||||
|
%% Description: Test case function. (The name of it must be specified in
|
||||||
|
%% the all/0 list or in a test case group for the test case
|
||||||
|
%% to be executed).
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,8 @@ snippet ff
|
||||||
<%= form_for @${1:model} do |f| %>
|
<%= form_for @${1:model} do |f| %>
|
||||||
${2}
|
${2}
|
||||||
<% end %>
|
<% end %>
|
||||||
|
snippet ffi
|
||||||
|
<%= ${1:f}.input :${2:attribute} %>
|
||||||
snippet ffcb
|
snippet ffcb
|
||||||
<%= ${1:f}.check_box :${2:attribute} %>
|
<%= ${1:f}.check_box :${2:attribute} %>
|
||||||
snippet ffe
|
snippet ffe
|
||||||
|
@ -111,3 +113,13 @@ snippet slt
|
||||||
<%= stylesheet_link_tag ${1::all}, :cache => ${2:true} %>
|
<%= stylesheet_link_tag ${1::all}, :cache => ${2:true} %>
|
||||||
snippet sslt
|
snippet sslt
|
||||||
<%= stylesheet_link_tag "${1}" %>
|
<%= stylesheet_link_tag "${1}" %>
|
||||||
|
snippet if
|
||||||
|
<% if ${1} %>
|
||||||
|
${2}
|
||||||
|
<% end %>
|
||||||
|
snippet ife
|
||||||
|
<% if ${1} %>
|
||||||
|
${2}
|
||||||
|
<% else %>
|
||||||
|
${3}
|
||||||
|
<% end %>
|
||||||
|
|
|
@ -8,7 +8,7 @@ snippet imp
|
||||||
# Function
|
# Function
|
||||||
snippet fun
|
snippet fun
|
||||||
function ${2:function_name}(${3})
|
function ${2:function_name}(${3})
|
||||||
${4:/* code */}
|
${4}
|
||||||
end
|
end
|
||||||
|
|
||||||
# Class
|
# Class
|
||||||
|
@ -20,21 +20,21 @@ snippet class
|
||||||
# If
|
# If
|
||||||
snippet if
|
snippet if
|
||||||
if ${1:condition}
|
if ${1:condition}
|
||||||
${2:/* code */}
|
${2}
|
||||||
end
|
end
|
||||||
|
|
||||||
# If else
|
# If else
|
||||||
snippet ife
|
snippet ife
|
||||||
if ${1:condition}
|
if ${1:condition}
|
||||||
${2:/* code */}
|
${2}
|
||||||
else
|
else
|
||||||
${1}
|
${1}
|
||||||
end
|
end
|
||||||
|
|
||||||
# If else if
|
# If else if
|
||||||
snippet elif
|
snippet eif
|
||||||
elif ${1:condition}
|
elif ${1:condition}
|
||||||
${2:/* code */}
|
${2}
|
||||||
|
|
||||||
# Switch case
|
# Switch case
|
||||||
snippet switch
|
snippet switch
|
||||||
|
@ -55,17 +55,17 @@ snippet select
|
||||||
# For/in Loop
|
# For/in Loop
|
||||||
snippet forin
|
snippet forin
|
||||||
for ${1:element} in ${2:container}
|
for ${1:element} in ${2:container}
|
||||||
${3:/* code */}
|
${3}
|
||||||
end
|
end
|
||||||
|
|
||||||
# For/to Loop
|
# For/to Loop
|
||||||
snippet forto
|
snippet forto
|
||||||
for ${1:lowerbound} to ${2:upperbound}
|
for ${1:lowerbound} to ${2:upperbound}
|
||||||
${3:/* code */}
|
${3}
|
||||||
end
|
end
|
||||||
|
|
||||||
# While Loop
|
# While Loop
|
||||||
snippet while
|
snippet while
|
||||||
while ${1:conidition}
|
while ${1:conidition}
|
||||||
${2:/* code */}
|
${2}
|
||||||
end
|
end
|
||||||
|
|
|
@ -16,7 +16,7 @@ snippet ch
|
||||||
# case
|
# case
|
||||||
snippet cs
|
snippet cs
|
||||||
case ${1:value}:
|
case ${1:value}:
|
||||||
${2:/* code */}
|
${2}
|
||||||
# const
|
# const
|
||||||
snippet c
|
snippet c
|
||||||
const ${1:NAME} = ${2:0}
|
const ${1:NAME} = ${2:0}
|
||||||
|
@ -36,7 +36,7 @@ snippet df
|
||||||
snippet dfr
|
snippet dfr
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
${1:/* code */}
|
${1}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
# gpl
|
# gpl
|
||||||
|
@ -78,8 +78,8 @@ snippet inf
|
||||||
# if condition
|
# if condition
|
||||||
snippet if
|
snippet if
|
||||||
if ${1:/* condition */} {
|
if ${1:/* condition */} {
|
||||||
${2:/* code */}
|
${2}
|
||||||
}${2}
|
}${3}
|
||||||
# else snippet
|
# else snippet
|
||||||
snippet el
|
snippet el
|
||||||
else {
|
else {
|
||||||
|
@ -109,7 +109,7 @@ snippet f6
|
||||||
# if else
|
# if else
|
||||||
snippet ie
|
snippet ie
|
||||||
if ${1:/* condition */} {
|
if ${1:/* condition */} {
|
||||||
${2:/* code */}
|
${2}
|
||||||
} else {
|
} else {
|
||||||
${3}
|
${3}
|
||||||
}
|
}
|
||||||
|
@ -117,25 +117,25 @@ snippet ie
|
||||||
# for loop
|
# for loop
|
||||||
snippet fo
|
snippet fo
|
||||||
for ${2:i} := 0; $2 < ${1:count}; $2${3:++} {
|
for ${2:i} := 0; $2 < ${1:count}; $2${3:++} {
|
||||||
${4:/* code */}
|
${4}
|
||||||
}
|
}
|
||||||
${5}
|
${5}
|
||||||
# for range loop
|
# for range loop
|
||||||
snippet fr
|
snippet fr
|
||||||
for ${1:k}, ${2:v} := range ${3} {
|
for ${1:k}, ${2:v} := range ${3} {
|
||||||
${4:/* code */}
|
${4}
|
||||||
}
|
}
|
||||||
${5}
|
${5}
|
||||||
# function simple
|
# function simple
|
||||||
snippet fun
|
snippet fun
|
||||||
func ${1:funcName}(${2}) ${3:error} {
|
func ${1:funcName}(${2}) ${3:error} {
|
||||||
${4:/* code */}
|
${4}
|
||||||
}
|
}
|
||||||
${5}
|
${5}
|
||||||
# function on receiver
|
# function on receiver
|
||||||
snippet fum
|
snippet fum
|
||||||
func (self ${1:type}) ${2:funcName}(${3}) ${4:error} {
|
func (self ${1:type}) ${2:funcName}(${3}) ${4:error} {
|
||||||
${5:/* code */}
|
${5}
|
||||||
}
|
}
|
||||||
${6}
|
${6}
|
||||||
# log printf
|
# log printf
|
||||||
|
@ -153,7 +153,7 @@ snippet mp
|
||||||
# main()
|
# main()
|
||||||
snippet main
|
snippet main
|
||||||
func main() {
|
func main() {
|
||||||
${1:/* code */}
|
${1}
|
||||||
}
|
}
|
||||||
${2}
|
${2}
|
||||||
# new
|
# new
|
||||||
|
@ -178,11 +178,11 @@ snippet rs
|
||||||
snippet sl
|
snippet sl
|
||||||
select {
|
select {
|
||||||
case ${1:v1} := <-${2:chan1}
|
case ${1:v1} := <-${2:chan1}
|
||||||
${3:/* code */}
|
${3}
|
||||||
case ${4:v2} := <-${5:chan2}
|
case ${4:v2} := <-${5:chan2}
|
||||||
${6:/* code */}
|
${6}
|
||||||
default:
|
default:
|
||||||
${7:/* code */}
|
${7}
|
||||||
}
|
}
|
||||||
# string
|
# string
|
||||||
snippet sr
|
snippet sr
|
||||||
|
@ -197,11 +197,11 @@ snippet st
|
||||||
snippet sw
|
snippet sw
|
||||||
switch ${1:var} {
|
switch ${1:var} {
|
||||||
case ${2:value1}:
|
case ${2:value1}:
|
||||||
${3:/* code */}
|
${3}
|
||||||
case ${4:value2}:
|
case ${4:value2}:
|
||||||
${5:/* code */}
|
${5}
|
||||||
default:
|
default:
|
||||||
${6:/* code */}
|
${6}
|
||||||
}
|
}
|
||||||
snippet sp
|
snippet sp
|
||||||
fmt.Sprintf("%${1:s}", ${2:var})${3}
|
fmt.Sprintf("%${1:s}", ${2:var})${3}
|
||||||
|
|
|
@ -11,10 +11,20 @@ snippet ul
|
||||||
%li
|
%li
|
||||||
${1:item}
|
${1:item}
|
||||||
%li
|
%li
|
||||||
snippet =rp
|
snippet rp
|
||||||
= render :partial => '${1:partial}'
|
= render :partial => "${1:item}"
|
||||||
snippet =rpl
|
snippet rpc
|
||||||
= render :partial => '${1:partial}', :locals => {}
|
= render :partial => "${1:item}", :collection => ${2:@$1s}
|
||||||
snippet =rpc
|
snippet rpl
|
||||||
= render :partial => '${1:partial}', :collection => @$1
|
= render :partial => "${1:item}", :locals => { :${2:$1} => ${3:@$1}
|
||||||
|
snippet rpo
|
||||||
|
= render :partial => "${1:item}", :object => ${2:@$1}
|
||||||
|
snippet ife
|
||||||
|
- if ${1:condition}
|
||||||
|
${2}
|
||||||
|
- else
|
||||||
|
${3}
|
||||||
|
snippet ifp
|
||||||
|
- if ${1:condition}.presence?
|
||||||
|
${2}
|
||||||
|
|
||||||
|
|
|
@ -412,7 +412,7 @@ snippet head
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<title>${1:`substitute(Filename('', 'Page Title'), '^.', '\u&', '')`}</title>
|
<title>${1:`substitute(vim_snippets#Filename('', 'Page Title'), '^.', '\u&', '')`}</title>
|
||||||
${2}
|
${2}
|
||||||
</head>
|
</head>
|
||||||
snippet header
|
snippet header
|
||||||
|
@ -450,7 +450,7 @@ snippet html5
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
<title>${1:`substitute(Filename('', 'Page Title'), '^.', '\u&', '')`}</title>
|
<title>${1:`substitute(vim_snippets#Filename('', 'Page Title'), '^.', '\u&', '')`}</title>
|
||||||
${2:meta}
|
${2:meta}
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
@ -730,6 +730,10 @@ snippet source
|
||||||
<source src="${1}" type="${2}" media="${3}" />
|
<source src="${1}" type="${2}" media="${3}" />
|
||||||
snippet span
|
snippet span
|
||||||
<span>${1}</span>
|
<span>${1}</span>
|
||||||
|
snippet span.
|
||||||
|
<span class="${1}">${2}</span>
|
||||||
|
snippet span#
|
||||||
|
<span id="${1}">${2}</span>
|
||||||
snippet strong
|
snippet strong
|
||||||
<strong>${1}</strong>
|
<strong>${1}</strong>
|
||||||
snippet style
|
snippet style
|
||||||
|
@ -791,7 +795,7 @@ snippet thead
|
||||||
snippet time
|
snippet time
|
||||||
<time datetime="${1}" pubdate="${2:$1}">${3:$1}</time>
|
<time datetime="${1}" pubdate="${2:$1}">${3:$1}</time>
|
||||||
snippet title
|
snippet title
|
||||||
<title>${1:`substitute(Filename('', 'Page Title'), '^.', '\u&', '')`}</title>
|
<title>${1:`substitute(vim_snippets#Filename('', 'Page Title'), '^.', '\u&', '')`}</title>
|
||||||
snippet tr
|
snippet tr
|
||||||
<tr>
|
<tr>
|
||||||
${1}
|
${1}
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
# file containing most useful mappings only
|
||||||
|
# when editing this file please be aware that there is ZenCoding and sparkup
|
||||||
|
|
||||||
|
# html 5 is recommended from now on
|
||||||
|
snippet html5
|
||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>$2</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
$3
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
$4
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
# ==== TAGS
|
||||||
|
# you always need these:
|
||||||
|
snippet .
|
||||||
|
class="${1}"${2}
|
||||||
|
snippet n
|
||||||
|
name="${1}"${2}
|
||||||
|
snippet r
|
||||||
|
rel="${1}"${2}
|
||||||
|
snippet t
|
||||||
|
title="${1}"${2}
|
||||||
|
|
||||||
|
# not using # because id is faster to type
|
||||||
|
snippet id
|
||||||
|
id="${1}"${2}
|
||||||
|
snippet idn
|
||||||
|
id="${1}" name="${2:$1}"
|
||||||
|
|
||||||
|
snippet label_and_input
|
||||||
|
<label for="${2:$1}">${1}</label>
|
||||||
|
<input type="${3:text}" name="${4:$2}" id="${5:$2}" value="${6}" />${7}
|
||||||
|
|
||||||
|
|
||||||
|
# FORMS
|
||||||
|
# use idn . or n to add id
|
||||||
|
snippet input
|
||||||
|
<input type="${1:text}" value="${2}" ${3}/>${7}
|
||||||
|
snippet submit
|
||||||
|
<input type="submit" value="${2}" ${3}/>${7}
|
||||||
|
snippet textarea
|
||||||
|
<textarea $1>$2</textarea>
|
||||||
|
|
||||||
|
# if you need id or class use snippets above
|
||||||
|
snippet form
|
||||||
|
<form method="${1:post/get}" action="$2">
|
||||||
|
$3
|
||||||
|
</form>
|
||||||
|
|
||||||
|
# other tags
|
||||||
|
snippet br
|
||||||
|
<br/>
|
||||||
|
snippet a
|
||||||
|
<a href="#" $2>$3</a>
|
||||||
|
snippet img
|
||||||
|
<img src="$1" alt="$2"/>
|
||||||
|
# JS/CSS
|
||||||
|
snippet css_file
|
||||||
|
<link rel="stylesheet" href="${1:style.css}" type="text/css" media="${2:all}" />${3}
|
||||||
|
snippet css_block
|
||||||
|
<link rel="stylesheet" href="${1:style.css}" type="text/css" media="${2:all}">
|
||||||
|
</link>
|
||||||
|
|
||||||
|
snippet script_block
|
||||||
|
<script type="text/javascript" charset="utf-8">
|
||||||
|
</script>
|
||||||
|
snippet script_file
|
||||||
|
<script type="text/javascript" charset="utf-8">
|
||||||
|
</script>
|
|
@ -47,10 +47,10 @@ snippet if
|
||||||
{% if ${1} %}
|
{% if ${1} %}
|
||||||
${2}
|
${2}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
snippet else
|
snippet el
|
||||||
{% else %}
|
{% else %}
|
||||||
${1}
|
${1}
|
||||||
snippet elif
|
snippet eif
|
||||||
{% elif ${1} %}
|
{% elif ${1} %}
|
||||||
${2}
|
${2}
|
||||||
snippet ifchanged
|
snippet ifchanged
|
||||||
|
|
|
@ -27,9 +27,9 @@ snippet if
|
||||||
{% if ${1:condition} %}
|
{% if ${1:condition} %}
|
||||||
${2}
|
${2}
|
||||||
{% end %}
|
{% end %}
|
||||||
snippet elif
|
snippet eif
|
||||||
{% elif ${1:condition} %}
|
{% elif ${1:condition} %}
|
||||||
snippet else
|
snippet el
|
||||||
{% else %}
|
{% else %}
|
||||||
snippet import
|
snippet import
|
||||||
{% import ${1:module} %}
|
{% import ${1:module} %}
|
||||||
|
|
|
@ -39,11 +39,11 @@ snippet j.u
|
||||||
##
|
##
|
||||||
## Class
|
## Class
|
||||||
snippet cl
|
snippet cl
|
||||||
class ${1:`Filename("", "untitled")`} ${2}
|
class ${1:`vim_snippets#Filename("", "untitled")`} ${2}
|
||||||
snippet in
|
snippet in
|
||||||
interface ${1:`Filename("", "untitled")`} ${2:extends Parent}${3}
|
interface ${1:`vim_snippets#Filename("", "untitled")`} ${2:extends Parent}${3}
|
||||||
snippet tc
|
snippet tc
|
||||||
public class ${1:`Filename()`} extends ${2:TestCase}
|
public class ${1:`vim_snippets#Filename()`} extends ${2:TestCase}
|
||||||
##
|
##
|
||||||
## Class Enhancements
|
## Class Enhancements
|
||||||
snippet ext
|
snippet ext
|
||||||
|
@ -72,7 +72,7 @@ snippet def
|
||||||
${2}
|
${2}
|
||||||
snippet el
|
snippet el
|
||||||
else
|
else
|
||||||
snippet elif
|
snippet eif
|
||||||
else if (${1}) ${2}
|
else if (${1}) ${2}
|
||||||
snippet if
|
snippet if
|
||||||
if (${1}) ${2}
|
if (${1}) ${2}
|
||||||
|
@ -144,7 +144,7 @@ snippet @au
|
||||||
snippet @br
|
snippet @br
|
||||||
@brief ${1:Description}
|
@brief ${1:Description}
|
||||||
snippet @fi
|
snippet @fi
|
||||||
@file ${1:`Filename()`}.java
|
@file ${1:`vim_snippets#Filename()`}.java
|
||||||
snippet @pa
|
snippet @pa
|
||||||
@param ${1:param}
|
@param ${1:param}
|
||||||
snippet @re
|
snippet @re
|
||||||
|
@ -171,7 +171,7 @@ snippet wh
|
||||||
## Main method
|
## Main method
|
||||||
snippet main
|
snippet main
|
||||||
public static void main (String[] args) {
|
public static void main (String[] args) {
|
||||||
${1:/* code */}
|
${1}
|
||||||
}
|
}
|
||||||
##
|
##
|
||||||
## Print Methods
|
## Print Methods
|
||||||
|
|
|
@ -260,7 +260,7 @@ snippet filter
|
||||||
${1:obj}.filter('${2:selector expression}')${3}
|
${1:obj}.filter('${2:selector expression}')${3}
|
||||||
snippet filtert
|
snippet filtert
|
||||||
${1:obj}.filter(function (${2:index}) {
|
${1:obj}.filter(function (${2:index}) {
|
||||||
${3:// test code}
|
${3}
|
||||||
})${4}
|
})${4}
|
||||||
snippet find
|
snippet find
|
||||||
${1:obj}.find('${2:selector expression}')${3}
|
${1:obj}.find('${2:selector expression}')${3}
|
||||||
|
@ -291,7 +291,7 @@ snippet getscript
|
||||||
});
|
});
|
||||||
snippet grep
|
snippet grep
|
||||||
$.grep(${1:array}, function (item, index) {
|
$.grep(${1:array}, function (item, index) {
|
||||||
${2:// test code}
|
${2}
|
||||||
}${3:, true});
|
}${3:, true});
|
||||||
snippet hasc
|
snippet hasc
|
||||||
${1:obj}.hasClass('${2:className}')${3}
|
${1:obj}.hasClass('${2:className}')${3}
|
||||||
|
|
|
@ -17,7 +17,7 @@ snippet f
|
||||||
# Immediate function
|
# Immediate function
|
||||||
snippet (f
|
snippet (f
|
||||||
(function (${1}) {
|
(function (${1}) {
|
||||||
${3:/* code */}
|
${3}
|
||||||
}(${2}));
|
}(${2}));
|
||||||
# if
|
# if
|
||||||
snippet if
|
snippet if
|
||||||
|
@ -38,16 +38,16 @@ snippet ter
|
||||||
snippet switch
|
snippet switch
|
||||||
switch (${1:expression}) {
|
switch (${1:expression}) {
|
||||||
case '${3:case}':
|
case '${3:case}':
|
||||||
${4:// code}
|
${4}
|
||||||
break;
|
break;
|
||||||
${5}
|
${5}
|
||||||
default:
|
default:
|
||||||
${2:// code}
|
${2}
|
||||||
}
|
}
|
||||||
# case
|
# case
|
||||||
snippet case
|
snippet case
|
||||||
case '${1:case}':
|
case '${1:case}':
|
||||||
${2:// code}
|
${2}
|
||||||
break;
|
break;
|
||||||
${3}
|
${3}
|
||||||
# for (...) {...}
|
# for (...) {...}
|
||||||
|
@ -63,19 +63,19 @@ snippet forr
|
||||||
# while (...) {...}
|
# while (...) {...}
|
||||||
snippet wh
|
snippet wh
|
||||||
while (${1:/* condition */}) {
|
while (${1:/* condition */}) {
|
||||||
${2:/* code */}
|
${2}
|
||||||
}
|
}
|
||||||
# try
|
# try
|
||||||
snippet try
|
snippet try
|
||||||
try {
|
try {
|
||||||
${1:/* code */}
|
${1}
|
||||||
} catch (${2:e}) {
|
} catch (${2:e}) {
|
||||||
${3:/* handle error */}
|
${3:/* handle error */}
|
||||||
}
|
}
|
||||||
# do...while
|
# do...while
|
||||||
snippet do
|
snippet do
|
||||||
do {
|
do {
|
||||||
${2:/* code */}
|
${2}
|
||||||
} while (${1:/* condition */});
|
} while (${1:/* condition */});
|
||||||
# Object Method
|
# Object Method
|
||||||
snippet :f
|
snippet :f
|
||||||
|
@ -124,10 +124,10 @@ snippet jsons
|
||||||
# self-defining function
|
# self-defining function
|
||||||
snippet sdf
|
snippet sdf
|
||||||
var ${1:function_name} = function (${2:argument}) {
|
var ${1:function_name} = function (${2:argument}) {
|
||||||
${3:// initial code ...}
|
${3}
|
||||||
|
|
||||||
$1 = function ($2) {
|
$1 = function ($2) {
|
||||||
${4:// main code}
|
${4}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# singleton
|
# singleton
|
||||||
|
@ -150,7 +150,7 @@ snippet sing
|
||||||
// reset the constructor pointer
|
// reset the constructor pointer
|
||||||
instance.constructor = $1;
|
instance.constructor = $1;
|
||||||
|
|
||||||
${3:// code ...}
|
${3}
|
||||||
|
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
snippet ifeq
|
snippet ifeq
|
||||||
ifeq (${1:cond0},${2:cond1})
|
ifeq (${1:cond0},${2:cond1})
|
||||||
${3:code}
|
${3}
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -22,7 +22,7 @@ snippet if if
|
||||||
% if ${1:condition}:
|
% if ${1:condition}:
|
||||||
${2:}
|
${2:}
|
||||||
% endif
|
% endif
|
||||||
snippet if if/else
|
snippet ife if/else
|
||||||
% if ${1:condition}:
|
% if ${1:condition}:
|
||||||
${2:}
|
${2:}
|
||||||
% else:
|
% else:
|
||||||
|
|
|
@ -3,7 +3,7 @@ snippet Imp
|
||||||
#import <${1:Cocoa/Cocoa.h}>${2}
|
#import <${1:Cocoa/Cocoa.h}>${2}
|
||||||
# #import "..."
|
# #import "..."
|
||||||
snippet imp
|
snippet imp
|
||||||
#import "${1:`Filename()`.h}"${2}
|
#import "${1:`vim_snippets#Filename()`.h}"${2}
|
||||||
# @selector(...)
|
# @selector(...)
|
||||||
snippet sel
|
snippet sel
|
||||||
@selector(${1:method}:)${3}
|
@selector(${1:method}:)${3}
|
||||||
|
@ -18,7 +18,7 @@ snippet log
|
||||||
NSLog(@"${1:%@}"${2});${3}
|
NSLog(@"${1:%@}"${2});${3}
|
||||||
# Class
|
# Class
|
||||||
snippet objc
|
snippet objc
|
||||||
@interface ${1:`Filename('', 'someClass')`} : ${2:NSObject}
|
@interface ${1:`vim_snippets#Filename('', 'someClass')`} : ${2:NSObject}
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
@ -28,33 +28,33 @@ snippet objc
|
||||||
@end
|
@end
|
||||||
# Class Interface
|
# Class Interface
|
||||||
snippet int
|
snippet int
|
||||||
@interface ${1:`Filename('', 'someClass')`} : ${2:NSObject}
|
@interface ${1:`vim_snippets#Filename('', 'someClass')`} : ${2:NSObject}
|
||||||
{${3}
|
{${3}
|
||||||
}
|
}
|
||||||
${4}
|
${4}
|
||||||
@end
|
@end
|
||||||
snippet @interface
|
snippet @interface
|
||||||
@interface ${1:`Filename('', 'someClass')`} : ${2:NSObject}
|
@interface ${1:`vim_snippets#Filename('', 'someClass')`} : ${2:NSObject}
|
||||||
{${3}
|
{${3}
|
||||||
}
|
}
|
||||||
${4}
|
${4}
|
||||||
@end
|
@end
|
||||||
# Class Implementation
|
# Class Implementation
|
||||||
snippet impl
|
snippet impl
|
||||||
@implementation ${1:`Filename('', 'someClass')`}
|
@implementation ${1:`vim_snippets#Filename('', 'someClass')`}
|
||||||
${2}
|
${2}
|
||||||
@end
|
@end
|
||||||
snippet @implementation
|
snippet @implementation
|
||||||
@implementation ${1:`Filename('', 'someClass')`}
|
@implementation ${1:`vim_snippets#Filename('', 'someClass')`}
|
||||||
${2}
|
${2}
|
||||||
@end
|
@end
|
||||||
# Protocol
|
# Protocol
|
||||||
snippet pro
|
snippet pro
|
||||||
@protocol ${1:`Filename('$1Delegate', 'MyProtocol')`} ${2:<NSObject>}
|
@protocol ${1:`vim_snippets#Filename('$1Delegate', 'MyProtocol')`} ${2:<NSObject>}
|
||||||
${3}
|
${3}
|
||||||
@end
|
@end
|
||||||
snippet @protocol
|
snippet @protocol
|
||||||
@protocol ${1:`Filename('$1Delegate', 'MyProtocol')`} ${2:<NSObject>}
|
@protocol ${1:`vim_snippets#Filename('$1Delegate', 'MyProtocol')`} ${2:<NSObject>}
|
||||||
${3}
|
${3}
|
||||||
@end
|
@end
|
||||||
# init Definition
|
# init Definition
|
||||||
|
@ -87,7 +87,7 @@ snippet cat
|
||||||
@end
|
@end
|
||||||
# Category Interface
|
# Category Interface
|
||||||
snippet cath
|
snippet cath
|
||||||
@interface ${1:`Filename('$1', 'NSObject')`} (${2:MyCategory})
|
@interface ${1:`vim_snippets#Filename('$1', 'NSObject')`} (${2:MyCategory})
|
||||||
${3}
|
${3}
|
||||||
@end
|
@end
|
||||||
# Method
|
# Method
|
||||||
|
@ -207,7 +207,7 @@ snippet arel
|
||||||
# autorelease pool
|
# autorelease pool
|
||||||
snippet pool
|
snippet pool
|
||||||
NSAutoreleasePool *${1:pool} = [[NSAutoreleasePool alloc] init];
|
NSAutoreleasePool *${1:pool} = [[NSAutoreleasePool alloc] init];
|
||||||
${2:/* code */}
|
${2}
|
||||||
[$1 drain];
|
[$1 drain];
|
||||||
# Throw an exception
|
# Throw an exception
|
||||||
snippet except
|
snippet except
|
||||||
|
|
|
@ -8,31 +8,35 @@ snippet .
|
||||||
# Function
|
# Function
|
||||||
snippet sub
|
snippet sub
|
||||||
sub ${1:function_name} {
|
sub ${1:function_name} {
|
||||||
${2:#body ...}
|
${2}
|
||||||
}
|
}
|
||||||
# Conditional
|
# Conditional
|
||||||
snippet if
|
snippet if
|
||||||
if (${1}) {
|
if (${1}) {
|
||||||
${2:# body...}
|
${2}
|
||||||
}
|
}
|
||||||
# Conditional if..else
|
# Conditional if..else
|
||||||
snippet ife
|
snippet ife
|
||||||
if (${1}) {
|
if (${1}) {
|
||||||
${2:# body...}
|
${2}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
${3:# else...}
|
${3}
|
||||||
}
|
}
|
||||||
# Conditional if..elsif..else
|
# Conditional if..elsif..else
|
||||||
snippet ifee
|
snippet ifee
|
||||||
if (${1}) {
|
if (${1}) {
|
||||||
${2:# body...}
|
${2}
|
||||||
}
|
}
|
||||||
elsif (${3}) {
|
elsif (${3}) {
|
||||||
${4:# elsif...}
|
${4:# elsif...}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
${5:# else...}
|
${5}
|
||||||
|
}
|
||||||
|
snippet eif
|
||||||
|
elsif (${1}) {
|
||||||
|
${2}
|
||||||
}
|
}
|
||||||
# Conditional One-line
|
# Conditional One-line
|
||||||
snippet xif
|
snippet xif
|
||||||
|
@ -40,7 +44,7 @@ snippet xif
|
||||||
# Unless conditional
|
# Unless conditional
|
||||||
snippet unless
|
snippet unless
|
||||||
unless (${1}) {
|
unless (${1}) {
|
||||||
${2:# body...}
|
${2}
|
||||||
}
|
}
|
||||||
# Unless conditional One-line
|
# Unless conditional One-line
|
||||||
snippet xunless
|
snippet xunless
|
||||||
|
@ -57,7 +61,7 @@ snippet eval
|
||||||
# While Loop
|
# While Loop
|
||||||
snippet wh
|
snippet wh
|
||||||
while (${1}) {
|
while (${1}) {
|
||||||
${2:# body...}
|
${2}
|
||||||
}
|
}
|
||||||
# While Loop One-line
|
# While Loop One-line
|
||||||
snippet xwh
|
snippet xwh
|
||||||
|
@ -65,7 +69,7 @@ snippet xwh
|
||||||
# C-style For Loop
|
# C-style For Loop
|
||||||
snippet cfor
|
snippet cfor
|
||||||
for (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {
|
for (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {
|
||||||
${4:# body...}
|
${4}
|
||||||
}
|
}
|
||||||
# For loop one-line
|
# For loop one-line
|
||||||
snippet xfor
|
snippet xfor
|
||||||
|
@ -73,14 +77,14 @@ snippet xfor
|
||||||
# Foreach Loop
|
# Foreach Loop
|
||||||
snippet for
|
snippet for
|
||||||
foreach my $${1:x} (@${2:array}) {
|
foreach my $${1:x} (@${2:array}) {
|
||||||
${3:# body...}
|
${3}
|
||||||
}
|
}
|
||||||
# Foreach Loop One-line
|
# Foreach Loop One-line
|
||||||
snippet fore
|
snippet fore
|
||||||
${1:expression} foreach @${2:array};${3}
|
${1:expression} foreach @${2:array};${3}
|
||||||
# Package
|
# Package
|
||||||
snippet package
|
snippet package
|
||||||
package ${1:`substitute(Filename('', 'Page Title'), '^.', '\u&', '')`};
|
package ${1:`substitute(vim_snippets#Filename('', 'Page Title'), '^.', '\u&', '')`};
|
||||||
|
|
||||||
${2}
|
${2}
|
||||||
|
|
||||||
|
@ -89,7 +93,7 @@ snippet package
|
||||||
__END__
|
__END__
|
||||||
# Package syntax perl >= 5.14
|
# Package syntax perl >= 5.14
|
||||||
snippet packagev514
|
snippet packagev514
|
||||||
package ${1:`substitute(Filename('', 'Page Title'), '^.', '\u&', '')`} ${2:0.99};
|
package ${1:`substitute(vim_snippets#Filename('', 'Page Title'), '^.', '\u&', '')`} ${2:0.99};
|
||||||
|
|
||||||
${3}
|
${3}
|
||||||
|
|
||||||
|
@ -127,7 +131,7 @@ snippet switch
|
||||||
# Anonymous subroutine
|
# Anonymous subroutine
|
||||||
snippet asub
|
snippet asub
|
||||||
sub {
|
sub {
|
||||||
${1:# body }
|
${1}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -135,7 +139,7 @@ snippet asub
|
||||||
# Begin block
|
# Begin block
|
||||||
snippet begin
|
snippet begin
|
||||||
BEGIN {
|
BEGIN {
|
||||||
${1:# begin body}
|
${1}
|
||||||
}
|
}
|
||||||
|
|
||||||
# call package function with some parameter
|
# call package function with some parameter
|
||||||
|
@ -174,7 +178,7 @@ snippet given
|
||||||
# switch-like case
|
# switch-like case
|
||||||
snippet when
|
snippet when
|
||||||
when (${1:case}) {
|
when (${1:case}) {
|
||||||
${2:# body}
|
${2}
|
||||||
}
|
}
|
||||||
|
|
||||||
# hash slice
|
# hash slice
|
||||||
|
@ -237,7 +241,7 @@ snippet subpod
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
sub ${1:subroutine_name} {
|
sub ${1:subroutine_name} {
|
||||||
${2:# body...}
|
${2}
|
||||||
}
|
}
|
||||||
# Subroutine signature
|
# Subroutine signature
|
||||||
snippet parg
|
snippet parg
|
||||||
|
@ -318,7 +322,7 @@ snippet trunner
|
||||||
snippet tsub
|
snippet tsub
|
||||||
sub t${1:number}_${2:test_case} :Test(${3:num_of_tests}) {
|
sub t${1:number}_${2:test_case} :Test(${3:num_of_tests}) {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
${4:# body}
|
${4}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -326,14 +330,14 @@ snippet tsub
|
||||||
snippet trsub
|
snippet trsub
|
||||||
test ${1:test_name} => { description => '${2:Description of test.}'} => sub {
|
test ${1:test_name} => { description => '${2:Description of test.}'} => sub {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
${3:# test code}
|
${3}
|
||||||
};
|
};
|
||||||
|
|
||||||
#prep test method
|
#prep test method
|
||||||
snippet tprep
|
snippet tprep
|
||||||
sub prep${1:number}_${2:test_case} :Test(startup) {
|
sub prep${1:number}_${2:test_case} :Test(startup) {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
${4:# body}
|
${4}
|
||||||
}
|
}
|
||||||
|
|
||||||
# cause failures to print stack trace
|
# cause failures to print stack trace
|
||||||
|
|
|
@ -28,12 +28,12 @@ snippet use
|
||||||
use ${1:Foo\Bar\Baz};
|
use ${1:Foo\Bar\Baz};
|
||||||
${2}
|
${2}
|
||||||
snippet c
|
snippet c
|
||||||
class ${1:`Filename()`}
|
class ${1:`vim_snippets#Filename()`}
|
||||||
{
|
{
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
snippet i
|
snippet i
|
||||||
interface ${1:`Filename()`}
|
interface ${1:`vim_snippets#Filename()`}
|
||||||
{
|
{
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ snippet sm
|
||||||
*
|
*
|
||||||
* @param ${2:$1} $$1 ${3:description}
|
* @param ${2:$1} $$1 ${3:description}
|
||||||
*
|
*
|
||||||
* @return ${4:`Filename()`}
|
* @return ${4:`vim_snippets#Filename()`}
|
||||||
*/
|
*/
|
||||||
${5:public} function set${6:$2}(${7:$2 }$$1)
|
${5:public} function set${6:$2}(${7:$2 }$$1)
|
||||||
{
|
{
|
||||||
|
@ -214,7 +214,7 @@ snippet interface
|
||||||
* @package ${3:default}
|
* @package ${3:default}
|
||||||
* @author ${4:`g:snips_author`}
|
* @author ${4:`g:snips_author`}
|
||||||
*/
|
*/
|
||||||
interface ${1:`Filename()`}
|
interface ${1:`vim_snippets#Filename()`}
|
||||||
{
|
{
|
||||||
${5}
|
${5}
|
||||||
}
|
}
|
||||||
|
@ -223,7 +223,7 @@ snippet class
|
||||||
/**
|
/**
|
||||||
* ${1}
|
* ${1}
|
||||||
*/
|
*/
|
||||||
class ${2:`Filename()`}
|
class ${2:`vim_snippets#Filename()`}
|
||||||
{
|
{
|
||||||
${3}
|
${3}
|
||||||
/**
|
/**
|
||||||
|
@ -231,13 +231,13 @@ snippet class
|
||||||
*/
|
*/
|
||||||
${5:public} function ${6:__construct}(${7:argument})
|
${5:public} function ${6:__construct}(${7:argument})
|
||||||
{
|
{
|
||||||
${8:// code...}
|
${8}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
snippet nc
|
snippet nc
|
||||||
namespace ${1:`substitute(substitute(expand("%:h"), '\v^\w+\/(\u)', '\1', ''), '\/', '\\\', 'g')`};
|
namespace ${1:`substitute(substitute(expand("%:h"), '\v^\w+\/(\u)', '\1', ''), '\/', '\\\', 'g')`};
|
||||||
|
|
||||||
${2:abstract }class ${3:`Filename()`}
|
${2:abstract }class ${3:`vim_snippets#Filename()`}
|
||||||
{
|
{
|
||||||
${4}
|
${4}
|
||||||
}
|
}
|
||||||
|
@ -249,26 +249,26 @@ snippet def?
|
||||||
${1}defined('${2}')${3}
|
${1}defined('${2}')${3}
|
||||||
snippet wh
|
snippet wh
|
||||||
while (${1:/* condition */}) {
|
while (${1:/* condition */}) {
|
||||||
${2:// code...}
|
${2}
|
||||||
}
|
}
|
||||||
# do ... while
|
# do ... while
|
||||||
snippet do
|
snippet do
|
||||||
do {
|
do {
|
||||||
${2:// code... }
|
${2}
|
||||||
} while (${1:/* condition */});
|
} while (${1:/* condition */});
|
||||||
snippet if
|
snippet if
|
||||||
if (${1:/* condition */}) {
|
if (${1:/* condition */}) {
|
||||||
${2:// code...}
|
${2}
|
||||||
}
|
}
|
||||||
snippet ifil
|
snippet ifil
|
||||||
<?php if (${1:/* condition */}): ?>
|
<?php if (${1:/* condition */}): ?>
|
||||||
${2:<!-- code... -->}
|
${2}
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
snippet ife
|
snippet ife
|
||||||
if (${1:/* condition */}) {
|
if (${1:/* condition */}) {
|
||||||
${2:// code...}
|
${2}
|
||||||
} else {
|
} else {
|
||||||
${3:// code...}
|
${3}
|
||||||
}
|
}
|
||||||
${4}
|
${4}
|
||||||
snippet ifeil
|
snippet ifeil
|
||||||
|
@ -278,35 +278,35 @@ snippet ifeil
|
||||||
${3:<!-- html... -->}
|
${3:<!-- html... -->}
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
${4}
|
${4}
|
||||||
snippet else
|
snippet el
|
||||||
else {
|
else {
|
||||||
${1:// code...}
|
${1}
|
||||||
}
|
}
|
||||||
snippet elseif
|
snippet eif
|
||||||
elseif (${1:/* condition */}) {
|
elseif (${1:/* condition */}) {
|
||||||
${2:// code...}
|
${2}
|
||||||
}
|
}
|
||||||
snippet switch
|
snippet switch
|
||||||
switch ($${1:variable}) {
|
switch ($${1:variable}) {
|
||||||
case '${2:value}':
|
case '${2:value}':
|
||||||
${3:// code...}
|
${3}
|
||||||
break;
|
break;
|
||||||
${5}
|
${5}
|
||||||
default:
|
default:
|
||||||
${4:// code...}
|
${4}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
snippet case
|
snippet case
|
||||||
case '${1:value}':
|
case '${1:value}':
|
||||||
${2:// code...}
|
${2}
|
||||||
break;${3}
|
break;${3}
|
||||||
snippet for
|
snippet for
|
||||||
for ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) {
|
for ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) {
|
||||||
${4: // code...}
|
${4}
|
||||||
}
|
}
|
||||||
snippet foreach
|
snippet foreach
|
||||||
foreach ($${1:variable} as $${2:value}) {
|
foreach ($${1:variable} as $${2:value}) {
|
||||||
${3:// code...}
|
${3}
|
||||||
}
|
}
|
||||||
snippet foreachil
|
snippet foreachil
|
||||||
<?php foreach ($${1:variable} as $${2:value}): ?>
|
<?php foreach ($${1:variable} as $${2:value}): ?>
|
||||||
|
@ -314,7 +314,7 @@ snippet foreachil
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
snippet foreachk
|
snippet foreachk
|
||||||
foreach ($${1:variable} as $${2:key} => $${3:value}) {
|
foreach ($${1:variable} as $${2:key} => $${3:value}) {
|
||||||
${4:// code...}
|
${4}
|
||||||
}
|
}
|
||||||
snippet foreachkil
|
snippet foreachkil
|
||||||
<?php foreach ($${1:variable} as $${2:key} => $${3:value}): ?>
|
<?php foreach ($${1:variable} as $${2:key} => $${3:value}): ?>
|
||||||
|
@ -343,6 +343,8 @@ snippet vd
|
||||||
var_dump(${1});
|
var_dump(${1});
|
||||||
snippet vdd
|
snippet vdd
|
||||||
var_dump(${1}); die(${2:});
|
var_dump(${1}); die(${2:});
|
||||||
|
snippet vdf
|
||||||
|
error_log(print_r($${1:foo}, true), 3, '${2:/tmp/debug.log}');${3}
|
||||||
snippet http_redirect
|
snippet http_redirect
|
||||||
header ("HTTP/1.1 301 Moved Permanently");
|
header ("HTTP/1.1 301 Moved Permanently");
|
||||||
header ("Location: ".URL);
|
header ("Location: ".URL);
|
||||||
|
@ -364,7 +366,7 @@ snippet gs
|
||||||
*
|
*
|
||||||
* @param $2 $$1 ${5:description}
|
* @param $2 $$1 ${5:description}
|
||||||
*
|
*
|
||||||
* @return ${6:`Filename()`}
|
* @return ${6:`vim_snippets#Filename()`}
|
||||||
*/
|
*/
|
||||||
public function set$3(${7:$2 }$$1)
|
public function set$3(${7:$2 }$$1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -65,7 +65,7 @@ snippet for
|
||||||
#loop while
|
#loop while
|
||||||
snippet while
|
snippet while
|
||||||
while (${1:/* condition */}) {
|
while (${1:/* condition */}) {
|
||||||
${2:/* code */}
|
${2}
|
||||||
}
|
}
|
||||||
#break
|
#break
|
||||||
snippet break
|
snippet break
|
||||||
|
@ -84,11 +84,11 @@ snippet default
|
||||||
snippet switch
|
snippet switch
|
||||||
switch(${1:expression}) {
|
switch(${1:expression}) {
|
||||||
case '${3:case}':
|
case '${3:case}':
|
||||||
${4:// code}
|
${4}
|
||||||
break;
|
break;
|
||||||
${5}
|
${5}
|
||||||
default:
|
default:
|
||||||
${2:// code}
|
${2}
|
||||||
}
|
}
|
||||||
#try
|
#try
|
||||||
snippet try
|
snippet try
|
||||||
|
|
|
@ -5,11 +5,11 @@
|
||||||
|
|
||||||
# Language Constructs
|
# Language Constructs
|
||||||
snippet class
|
snippet class
|
||||||
class ${1:`Filename('', 'name')`} {
|
class ${1:`vim_snippets#Filename('', 'name')`} {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
snippet node
|
snippet node
|
||||||
node "${1:`Filename('', 'fqdn')`}" {
|
node "${1:`vim_snippets#Filename('', 'fqdn')`}" {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
snippet case
|
snippet case
|
||||||
|
@ -26,7 +26,7 @@ snippet if
|
||||||
if $${1:variable} {
|
if $${1:variable} {
|
||||||
${2}
|
${2}
|
||||||
}
|
}
|
||||||
snippet else
|
snippet el
|
||||||
else {
|
else {
|
||||||
${1}
|
${1}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,29 +2,33 @@ snippet #!
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
snippet imp
|
snippet imp
|
||||||
import ${1:module}
|
import ${1:module}
|
||||||
|
snippet uni
|
||||||
|
def __unicode__(self):
|
||||||
|
${1:representation}
|
||||||
snippet from
|
snippet from
|
||||||
from ${1:package} import ${2:module}
|
from ${1:package} import ${2:module}
|
||||||
# Module Docstring
|
# Module Docstring
|
||||||
snippet docs
|
snippet docs
|
||||||
"""
|
"""
|
||||||
File: ${1:`Filename('$1.py', 'foo.py')`}
|
File: ${1:`vim_snippets#Filename('$1.py', 'foo.py')`}
|
||||||
Author: `g:snips_author`
|
Author: `g:snips_author`
|
||||||
Email: `g:snips_email`
|
Email: `g:snips_email`
|
||||||
Github: `g:snips_github`
|
Github: `g:snips_github`
|
||||||
Description: ${2}
|
Description: ${2}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
snippet wh
|
snippet wh
|
||||||
while ${1:condition}:
|
while ${1:condition}:
|
||||||
${2:# TODO: write code...}
|
${2}
|
||||||
# dowh - does the same as do...while in other languages
|
# dowh - does the same as do...while in other languages
|
||||||
snippet dowh
|
snippet dowh
|
||||||
while True:
|
while True:
|
||||||
${1:# TODO: write code...}
|
${1}
|
||||||
if ${2:condition}:
|
if ${2:condition}:
|
||||||
break
|
break
|
||||||
snippet with
|
snippet with
|
||||||
with ${1:expr} as ${2:var}:
|
with ${1:expr} as ${2:var}:
|
||||||
${3:# TODO: write code...}
|
${3}
|
||||||
# New Class
|
# New Class
|
||||||
snippet cl
|
snippet cl
|
||||||
class ${1:ClassName}(${2:object}):
|
class ${1:ClassName}(${2:object}):
|
||||||
|
@ -37,14 +41,14 @@ snippet cl
|
||||||
snippet def
|
snippet def
|
||||||
def ${1:fname}(${2:`indent('.') ? 'self' : ''`}):
|
def ${1:fname}(${2:`indent('.') ? 'self' : ''`}):
|
||||||
"""${3:docstring for $1}"""
|
"""${3:docstring for $1}"""
|
||||||
${4:# TODO: write code...}
|
${4}
|
||||||
snippet deff
|
snippet deff
|
||||||
def ${1:fname}(${2:`indent('.') ? 'self' : ''`}):
|
def ${1:fname}(${2:`indent('.') ? 'self' : ''`}):
|
||||||
${3:# TODO: write code...}
|
${3}
|
||||||
# New Method
|
# New Method
|
||||||
snippet defs
|
snippet defs
|
||||||
def ${1:mname}(self, ${2:arg}):
|
def ${1:mname}(self, ${2:arg}):
|
||||||
${3:# TODO: write code...}
|
${3}
|
||||||
# New Property
|
# New Property
|
||||||
snippet property
|
snippet property
|
||||||
def ${1:foo}():
|
def ${1:foo}():
|
||||||
|
@ -60,17 +64,17 @@ snippet property
|
||||||
# Ifs
|
# Ifs
|
||||||
snippet if
|
snippet if
|
||||||
if ${1:condition}:
|
if ${1:condition}:
|
||||||
${2:# TODO: write code...}
|
${2}
|
||||||
snippet el
|
snippet el
|
||||||
else:
|
else:
|
||||||
${1:# TODO: write code...}
|
${1}
|
||||||
snippet ei
|
snippet ei
|
||||||
elif ${1:condition}:
|
elif ${1:condition}:
|
||||||
${2:# TODO: write code...}
|
${2}
|
||||||
# For
|
# For
|
||||||
snippet for
|
snippet for
|
||||||
for ${1:item} in ${2:items}:
|
for ${1:item} in ${2:items}:
|
||||||
${3:# TODO: write code...}
|
${3}
|
||||||
# Encodes
|
# Encodes
|
||||||
snippet cutf8
|
snippet cutf8
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
@ -79,38 +83,38 @@ snippet clatin1
|
||||||
snippet cascii
|
snippet cascii
|
||||||
# -*- coding: ascii -*-
|
# -*- coding: ascii -*-
|
||||||
# Lambda
|
# Lambda
|
||||||
snippet lda
|
snippet ld
|
||||||
${1:var} = lambda ${2:vars} : ${3:action}
|
${1:var} = lambda ${2:vars} : ${3:action}
|
||||||
snippet .
|
snippet .
|
||||||
self.
|
self.
|
||||||
snippet try Try/Except
|
snippet try Try/Except
|
||||||
try:
|
try:
|
||||||
${1:# TODO: write code...}
|
${1}
|
||||||
except ${2:Exception}, ${3:e}:
|
except ${2:Exception}, ${3:e}:
|
||||||
${4:raise $3}
|
${4:raise $3}
|
||||||
snippet try Try/Except/Else
|
snippet try Try/Except/Else
|
||||||
try:
|
try:
|
||||||
${1:# TODO: write code...}
|
${1}
|
||||||
except ${2:Exception}, ${3:e}:
|
except ${2:Exception}, ${3:e}:
|
||||||
${4:raise $3}
|
${4:raise $3}
|
||||||
else:
|
else:
|
||||||
${5:# TODO: write code...}
|
${5}
|
||||||
snippet try Try/Except/Finally
|
snippet try Try/Except/Finally
|
||||||
try:
|
try:
|
||||||
${1:# TODO: write code...}
|
${1}
|
||||||
except ${2:Exception}, ${3:e}:
|
except ${2:Exception}, ${3:e}:
|
||||||
${4:raise $3}
|
${4:raise $3}
|
||||||
finally:
|
finally:
|
||||||
${5:# TODO: write code...}
|
${5}
|
||||||
snippet try Try/Except/Else/Finally
|
snippet try Try/Except/Else/Finally
|
||||||
try:
|
try:
|
||||||
${1:# TODO: write code...}
|
${1}
|
||||||
except ${2:Exception}, ${3:e}:
|
except ${2:Exception}, ${3:e}:
|
||||||
${4:raise $3}
|
${4:raise $3}
|
||||||
else:
|
else:
|
||||||
${5:# TODO: write code...}
|
${5}
|
||||||
finally:
|
finally:
|
||||||
${6:# TODO: write code...}
|
${6}
|
||||||
# if __name__ == '__main__':
|
# if __name__ == '__main__':
|
||||||
snippet ifmain
|
snippet ifmain
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
@ -127,6 +131,9 @@ snippet ipdb
|
||||||
# ipython debugger (pdbbb)
|
# ipython debugger (pdbbb)
|
||||||
snippet pdbbb
|
snippet pdbbb
|
||||||
import pdbpp; pdbpp.set_trace()
|
import pdbpp; pdbpp.set_trace()
|
||||||
|
# python console debugger (pudb)
|
||||||
|
snippet pudb
|
||||||
|
import pudb; pudb.set_trace()
|
||||||
snippet pprint
|
snippet pprint
|
||||||
import pprint; pprint.pprint(${1})${2}
|
import pprint; pprint.pprint(${1})${2}
|
||||||
snippet "
|
snippet "
|
||||||
|
@ -136,13 +143,13 @@ snippet "
|
||||||
# test function/method
|
# test function/method
|
||||||
snippet test
|
snippet test
|
||||||
def test_${1:description}(${2:`indent('.') ? 'self' : ''`}):
|
def test_${1:description}(${2:`indent('.') ? 'self' : ''`}):
|
||||||
${3:# TODO: write code...}
|
${3}
|
||||||
# test case
|
# test case
|
||||||
snippet testcase
|
snippet testcase
|
||||||
class ${1:ExampleCase}(unittest.TestCase):
|
class ${1:ExampleCase}(unittest.TestCase):
|
||||||
|
|
||||||
def test_${2:description}(self):
|
def test_${2:description}(self):
|
||||||
${3:# TODO: write code...}
|
${3}
|
||||||
snippet fut
|
snippet fut
|
||||||
from __future__ import ${1}
|
from __future__ import ${1}
|
||||||
#getopt
|
#getopt
|
||||||
|
@ -169,7 +176,8 @@ snippet glog
|
||||||
logger = logging.getLogger(${1:__name__})
|
logger = logging.getLogger(${1:__name__})
|
||||||
snippet le
|
snippet le
|
||||||
logger.error(${1:msg})
|
logger.error(${1:msg})
|
||||||
snippet ld
|
# conflict with lambda=ld, therefor we change into Logger.debuG
|
||||||
|
snippet lg
|
||||||
logger.debug(${1:msg})
|
logger.debug(${1:msg})
|
||||||
snippet lw
|
snippet lw
|
||||||
logger.warning(${1:msg})
|
logger.warning(${1:msg})
|
||||||
|
|
|
@ -12,24 +12,24 @@ snippet source
|
||||||
# conditionals
|
# conditionals
|
||||||
snippet if
|
snippet if
|
||||||
if (${1:condition}) {
|
if (${1:condition}) {
|
||||||
${2:code}
|
${2}
|
||||||
}
|
}
|
||||||
snippet el
|
snippet el
|
||||||
else {
|
else {
|
||||||
${1:code}
|
${1}
|
||||||
}
|
}
|
||||||
snippet ei
|
snippet ei
|
||||||
else if (${1:condition}) {
|
else if (${1:condition}) {
|
||||||
${2:code}
|
${2}
|
||||||
}
|
}
|
||||||
|
|
||||||
# functions
|
# functions
|
||||||
snippet fun
|
snippet fun
|
||||||
${1:name} = function (${2:variables}) {
|
${1:name} = function (${2:variables}) {
|
||||||
${3:code}
|
${3}
|
||||||
}
|
}
|
||||||
snippet ret
|
snippet ret
|
||||||
return(${1:code})
|
return(${1})
|
||||||
|
|
||||||
# dataframes, lists, etc
|
# dataframes, lists, etc
|
||||||
snippet df
|
snippet df
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
snippet :
|
snippet :
|
||||||
:${1:field name}: ${2:field body}
|
:${1:field name}: ${2:field body}
|
||||||
snippet *
|
snippet *
|
||||||
*${1:Emphasis}*
|
*${1:Emphasis}* ${2}
|
||||||
snippet **
|
snippet **
|
||||||
**${1:Strong emphasis}**
|
**${1:Strong emphasis}** ${2}
|
||||||
snippet _
|
snippet _
|
||||||
\`${1:hyperlink-name}\`_
|
\`${1:hyperlink-name}\`_
|
||||||
.. _\`$1\`: ${2:link-block}
|
.. _\`$1\`: ${2:link-block}
|
||||||
|
@ -17,6 +17,53 @@ snippet -
|
||||||
${1:Title}
|
${1:Title}
|
||||||
-----${2:-}
|
-----${2:-}
|
||||||
${3}
|
${3}
|
||||||
|
#some directive
|
||||||
|
snippet img:
|
||||||
|
.. |${2:alias}| image:: ${1:img}
|
||||||
|
snippet fig:
|
||||||
|
.. figure:: ${1:img}
|
||||||
|
:alt: ${2:alter text}
|
||||||
|
|
||||||
|
$2
|
||||||
snippet cont:
|
snippet cont:
|
||||||
.. contents::
|
.. contents::
|
||||||
|
${1:content}
|
||||||
|
snippet code:
|
||||||
|
.. code:: ${1:type}
|
||||||
|
|
||||||
|
${2:write some code}
|
||||||
|
snippet tip:
|
||||||
|
.. tip::
|
||||||
|
${1:my tips}
|
||||||
|
snippet not:
|
||||||
|
.. note::
|
||||||
|
${1:my notes}
|
||||||
|
snippet war:
|
||||||
|
.. warning::
|
||||||
|
${1:attention!}
|
||||||
|
snippet imp:
|
||||||
|
.. important::
|
||||||
|
${1:this is importatnt}
|
||||||
|
snippet att:
|
||||||
|
.. attention::
|
||||||
|
${1:hey!}
|
||||||
|
snippet dan:
|
||||||
|
.. danger::
|
||||||
|
${1:ah!}
|
||||||
|
snippet err:
|
||||||
|
.. error::
|
||||||
|
${1:Error occur}
|
||||||
|
snippet cau:
|
||||||
|
.. caution::
|
||||||
|
${1:Watch out!}
|
||||||
|
#Spinx only
|
||||||
|
snippet sid:
|
||||||
|
.. sidebar:: ${1:Title}
|
||||||
|
|
||||||
|
${2}
|
||||||
|
# CJK optimize, CJK has no space between charaters
|
||||||
|
snippet *c
|
||||||
|
\ *${1:Emphasis}*\ ${2}
|
||||||
|
snippet **c
|
||||||
|
\ **${1:Strong emphasis}**\ ${2}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,14 @@ snippet =b
|
||||||
=begin rdoc
|
=begin rdoc
|
||||||
${1}
|
${1}
|
||||||
=end
|
=end
|
||||||
|
snippet prot
|
||||||
|
protected
|
||||||
|
|
||||||
|
${1}
|
||||||
|
snippet priv
|
||||||
|
private
|
||||||
|
|
||||||
|
${1}
|
||||||
snippet y
|
snippet y
|
||||||
:yields: ${1:arguments}
|
:yields: ${1:arguments}
|
||||||
snippet rb
|
snippet rb
|
||||||
|
@ -60,7 +68,7 @@ snippet ife
|
||||||
else
|
else
|
||||||
${3}
|
${3}
|
||||||
end
|
end
|
||||||
snippet elsif
|
snippet eif
|
||||||
elsif ${1:condition}
|
elsif ${1:condition}
|
||||||
${2}
|
${2}
|
||||||
snippet unless
|
snippet unless
|
||||||
|
@ -80,23 +88,23 @@ snippet until
|
||||||
${2}
|
${2}
|
||||||
end
|
end
|
||||||
snippet cla class .. end
|
snippet cla class .. end
|
||||||
class ${1:`substitute(Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
|
class ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
|
||||||
${2}
|
${2}
|
||||||
end
|
end
|
||||||
snippet cla class .. initialize .. end
|
snippet cla class .. initialize .. end
|
||||||
class ${1:`substitute(Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
|
class ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
|
||||||
def initialize(${2:args})
|
def initialize(${2:args})
|
||||||
${3}
|
${3}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
snippet cla class .. < ParentClass .. initialize .. end
|
snippet cla class .. < ParentClass .. initialize .. end
|
||||||
class ${1:`substitute(Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} < ${2:ParentClass}
|
class ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} < ${2:ParentClass}
|
||||||
def initialize(${3:args})
|
def initialize(${3:args})
|
||||||
${4}
|
${4}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
snippet cla ClassName = Struct .. do .. end
|
snippet cla ClassName = Struct .. do .. end
|
||||||
${1:`substitute(Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} = Struct.new(:${2:attr_names}) do
|
${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} = Struct.new(:${2:attr_names}) do
|
||||||
def ${3:method_name}
|
def ${3:method_name}
|
||||||
${4}
|
${4}
|
||||||
end
|
end
|
||||||
|
@ -111,7 +119,7 @@ snippet cla class << self .. end
|
||||||
end
|
end
|
||||||
# class .. < DelegateClass .. initialize .. end
|
# class .. < DelegateClass .. initialize .. end
|
||||||
snippet cla-
|
snippet cla-
|
||||||
class ${1:`substitute(Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} < DelegateClass(${2:ParentClass})
|
class ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} < DelegateClass(${2:ParentClass})
|
||||||
def initialize(${3:args})
|
def initialize(${3:args})
|
||||||
super(${4:del_obj})
|
super(${4:del_obj})
|
||||||
|
|
||||||
|
@ -119,17 +127,17 @@ snippet cla-
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
snippet mod module .. end
|
snippet mod module .. end
|
||||||
module ${1:`substitute(Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
|
module ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
|
||||||
${2}
|
${2}
|
||||||
end
|
end
|
||||||
snippet mod module .. module_function .. end
|
snippet mod module .. module_function .. end
|
||||||
module ${1:`substitute(Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
|
module ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
|
||||||
module_function
|
module_function
|
||||||
|
|
||||||
${2}
|
${2}
|
||||||
end
|
end
|
||||||
snippet mod module .. ClassMethods .. end
|
snippet mod module .. ClassMethods .. end
|
||||||
module ${1:`substitute(Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
|
module ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`}
|
||||||
module ClassMethods
|
module ClassMethods
|
||||||
${2}
|
${2}
|
||||||
end
|
end
|
||||||
|
@ -156,6 +164,11 @@ snippet atp
|
||||||
attr_protected :${1:attr_names}
|
attr_protected :${1:attr_names}
|
||||||
snippet ata
|
snippet ata
|
||||||
attr_accessible :${1:attr_names}
|
attr_accessible :${1:attr_names}
|
||||||
|
snippet ana
|
||||||
|
accepts_nested_attributes_for :${1:association}
|
||||||
|
# ivc == instance variable cache
|
||||||
|
snippet ivc
|
||||||
|
@${1:variable_name} ||= ${2:chached_value}
|
||||||
# include Enumerable
|
# include Enumerable
|
||||||
snippet Enum
|
snippet Enum
|
||||||
include Enumerable
|
include Enumerable
|
||||||
|
@ -178,6 +191,11 @@ snippet defs
|
||||||
def self.${1:class_method_name}
|
def self.${1:class_method_name}
|
||||||
${2}
|
${2}
|
||||||
end
|
end
|
||||||
|
# def initialize
|
||||||
|
snippet definit
|
||||||
|
def initialize(${1:args})
|
||||||
|
${2}
|
||||||
|
end
|
||||||
# def method_missing
|
# def method_missing
|
||||||
snippet defmm
|
snippet defmm
|
||||||
def method_missing(meth, *args, &blk)
|
def method_missing(meth, *args, &blk)
|
||||||
|
@ -309,6 +327,12 @@ snippet injd
|
||||||
inject(${1:init}) do |${2:mem}, ${3:var}|
|
inject(${1:init}) do |${2:mem}, ${3:var}|
|
||||||
${4}
|
${4}
|
||||||
end
|
end
|
||||||
|
snippet red
|
||||||
|
reduce(${1:init}) { |${2:mem}, ${3:var}| ${4} }
|
||||||
|
snippet redd
|
||||||
|
reduce(${1:init}) do |${2:mem}, ${3:var}|
|
||||||
|
${4}
|
||||||
|
end
|
||||||
snippet map
|
snippet map
|
||||||
map { |${1:e}| ${2} }
|
map { |${1:e}| ${2} }
|
||||||
snippet mapd
|
snippet mapd
|
||||||
|
@ -389,13 +413,17 @@ snippet seld
|
||||||
end
|
end
|
||||||
snippet lam
|
snippet lam
|
||||||
lambda { |${1:args}| ${2} }
|
lambda { |${1:args}| ${2} }
|
||||||
snippet doo
|
# I'm pretty sure that ruby users expect do to expand to do .. end
|
||||||
|
snippet do
|
||||||
do
|
do
|
||||||
${1}
|
${1}
|
||||||
end
|
end
|
||||||
|
# this is for one or more variables. typing a ", " is that cheap that it may
|
||||||
|
# not be worth adding another snippet. should 0/1 placeholders change order?
|
||||||
|
# its a good idea to think about the var name, so use it first
|
||||||
snippet dov
|
snippet dov
|
||||||
do |${1:variable}|
|
do |${0:v}|
|
||||||
${2}
|
${1}
|
||||||
end
|
end
|
||||||
snippet :
|
snippet :
|
||||||
:${1:key} => ${2:"value"}${3}
|
:${1:key} => ${2:"value"}${3}
|
||||||
|
@ -529,7 +557,7 @@ snippet clafn
|
||||||
snippet sinc
|
snippet sinc
|
||||||
class << self; self end
|
class << self; self end
|
||||||
snippet nam
|
snippet nam
|
||||||
namespace :${1:`Filename()`} do
|
namespace :${1:`vim_snippets#Filename()`} do
|
||||||
${2}
|
${2}
|
||||||
end
|
end
|
||||||
snippet tas
|
snippet tas
|
||||||
|
@ -572,8 +600,8 @@ snippet artp
|
||||||
snippet artpp
|
snippet artpp
|
||||||
assert_redirected_to ${1:model}s_path
|
assert_redirected_to ${1:model}s_path
|
||||||
snippet asd
|
snippet asd
|
||||||
assert_difference "${1:Model}.${2:count}", $1 do
|
assert_difference "${1:Model}.${2:count}", ${3:1} do
|
||||||
${3}
|
${4}
|
||||||
end
|
end
|
||||||
snippet asnd
|
snippet asnd
|
||||||
assert_no_difference "${1:Model}.${2:count}" do
|
assert_no_difference "${1:Model}.${2:count}" do
|
||||||
|
@ -597,14 +625,14 @@ snippet defcreate
|
||||||
def create
|
def create
|
||||||
@${1:model_class_name} = ${2:ModelClassName}.new(params[:$1])
|
@${1:model_class_name} = ${2:ModelClassName}.new(params[:$1])
|
||||||
|
|
||||||
respond_to do |wants|
|
respond_to do |format|
|
||||||
if @$1.save
|
if @$1.save
|
||||||
flash[:notice] = '$2 was successfully created.'
|
flash[:notice] = '$2 was successfully created.'
|
||||||
wants.html { redirect_to(@$1) }
|
format.html { redirect_to(@$1) }
|
||||||
wants.xml { render :xml => @$1, :status => :created, :location => @$1 }
|
format.xml { render :xml => @$1, :status => :created, :location => @$1 }
|
||||||
else
|
else
|
||||||
wants.html { render :action => "new" }
|
format.html { render :action => "new" }
|
||||||
wants.xml { render :xml => @$1.errors, :status => :unprocessable_entity }
|
format.xml { render :xml => @$1.errors, :status => :unprocessable_entity }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end${3}
|
end${3}
|
||||||
|
@ -613,9 +641,9 @@ snippet defdestroy
|
||||||
@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])
|
@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])
|
||||||
@$1.destroy
|
@$1.destroy
|
||||||
|
|
||||||
respond_to do |wants|
|
respond_to do |format|
|
||||||
wants.html { redirect_to($1s_url) }
|
format.html { redirect_to($1s_url) }
|
||||||
wants.xml { head :ok }
|
format.xml { head :ok }
|
||||||
end
|
end
|
||||||
end${3}
|
end${3}
|
||||||
snippet defedit
|
snippet defedit
|
||||||
|
@ -626,41 +654,41 @@ snippet defindex
|
||||||
def index
|
def index
|
||||||
@${1:model_class_name} = ${2:ModelClassName}.all
|
@${1:model_class_name} = ${2:ModelClassName}.all
|
||||||
|
|
||||||
respond_to do |wants|
|
respond_to do |format|
|
||||||
wants.html # index.html.erb
|
format.html # index.html.erb
|
||||||
wants.xml { render :xml => @$1s }
|
format.xml { render :xml => @$1s }
|
||||||
end
|
end
|
||||||
end${3}
|
end${3}
|
||||||
snippet defnew
|
snippet defnew
|
||||||
def new
|
def new
|
||||||
@${1:model_class_name} = ${2:ModelClassName}.new
|
@${1:model_class_name} = ${2:ModelClassName}.new
|
||||||
|
|
||||||
respond_to do |wants|
|
respond_to do |format|
|
||||||
wants.html # new.html.erb
|
format.html # new.html.erb
|
||||||
wants.xml { render :xml => @$1 }
|
format.xml { render :xml => @$1 }
|
||||||
end
|
end
|
||||||
end${3}
|
end${3}
|
||||||
snippet defshow
|
snippet defshow
|
||||||
def show
|
def show
|
||||||
@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])
|
@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])
|
||||||
|
|
||||||
respond_to do |wants|
|
respond_to do |format|
|
||||||
wants.html # show.html.erb
|
format.html # show.html.erb
|
||||||
wants.xml { render :xml => @$1 }
|
format.xml { render :xml => @$1 }
|
||||||
end
|
end
|
||||||
end${3}
|
end${3}
|
||||||
snippet defupdate
|
snippet defupdate
|
||||||
def update
|
def update
|
||||||
@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])
|
@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])
|
||||||
|
|
||||||
respond_to do |wants|
|
respond_to do |format|
|
||||||
if @$1.update_attributes(params[:$1])
|
if @$1.update_attributes(params[:$1])
|
||||||
flash[:notice] = '$2 was successfully updated.'
|
flash[:notice] = '$2 was successfully updated.'
|
||||||
wants.html { redirect_to(@$1) }
|
format.html { redirect_to(@$1) }
|
||||||
wants.xml { head :ok }
|
format.xml { head :ok }
|
||||||
else
|
else
|
||||||
wants.html { render :action => "edit" }
|
format.html { render :action => "edit" }
|
||||||
wants.xml { render :xml => @$1.errors, :status => :unprocessable_entity }
|
format.xml { render :xml => @$1.errors, :status => :unprocessable_entity }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end${3}
|
end${3}
|
||||||
|
@ -733,8 +761,8 @@ snippet ra
|
||||||
snippet ral
|
snippet ral
|
||||||
render :action => "${1:action}", :layout => "${2:layoutname}"
|
render :action => "${1:action}", :layout => "${2:layoutname}"
|
||||||
snippet rest
|
snippet rest
|
||||||
respond_to do |wants|
|
respond_to do |format|
|
||||||
wants.${1:html} { ${2} }
|
format.${1:html} { ${2} }
|
||||||
end
|
end
|
||||||
snippet rf
|
snippet rf
|
||||||
render :file => "${1:filepath}"
|
render :file => "${1:filepath}"
|
||||||
|
@ -779,7 +807,7 @@ snippet ru
|
||||||
snippet rxml
|
snippet rxml
|
||||||
render :xml => ${1:text to render}
|
render :xml => ${1:text to render}
|
||||||
snippet sc
|
snippet sc
|
||||||
scope :${1:name}, :where(:@${2:field} => ${3:value})
|
scope :${1:name}, -> { where(${2:field}: ${3:value}) }
|
||||||
snippet sl
|
snippet sl
|
||||||
scope :${1:name}, lambda do |${2:value}|
|
scope :${1:name}, lambda do |${2:value}|
|
||||||
where("${3:field = ?}", ${4:bind var})
|
where("${3:field = ?}", ${4:bind var})
|
||||||
|
@ -802,6 +830,85 @@ snippet sweeper
|
||||||
expire_page
|
expire_page
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
snippet va validates_associated
|
||||||
|
validates_associated :${1:attribute}
|
||||||
|
snippet va validates .., :acceptance => true
|
||||||
|
validates :${1:terms}, :acceptance => true
|
||||||
|
snippet vc
|
||||||
|
validates :${1:attribute}, :confirmation => true
|
||||||
|
snippet ve
|
||||||
|
validates :${1:attribute}, :exclusion => { :in => ${2:%w( mov avi )} }
|
||||||
|
snippet vf
|
||||||
|
validates :${1:attribute}, :format => { :with => /${2:regex}/ }
|
||||||
|
snippet vi
|
||||||
|
validates :${1:attribute}, :inclusion => { :in => %w(${2: mov avi }) }
|
||||||
|
snippet vl
|
||||||
|
validates :${1:attribute}, :length => { :in => ${2:3}..${3:20} }
|
||||||
|
snippet vn
|
||||||
|
validates :${1:attribute}, :numericality => true
|
||||||
|
snippet vp
|
||||||
|
validates :${1:attribute}, :presence => true
|
||||||
|
snippet vu
|
||||||
|
validates :${1:attribute}, :uniqueness => true
|
||||||
|
snippet format
|
||||||
|
format.${1:js|xml|html} { ${2} }
|
||||||
|
snippet wc
|
||||||
|
where(${1:"conditions"}${2:, bind_var})
|
||||||
|
snippet wh
|
||||||
|
where(${1:field} => ${2:value})
|
||||||
|
snippet xdelete
|
||||||
|
xhr :delete, :${1:destroy}, :id => ${2:1}${3}
|
||||||
|
snippet xget
|
||||||
|
xhr :get, :${1:show}, :id => ${2:1}${3}
|
||||||
|
snippet xpost
|
||||||
|
xhr :post, :${1:create}, :${2:object} => { ${3} }
|
||||||
|
snippet xput
|
||||||
|
xhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { ${4} }${5}
|
||||||
|
snippet test
|
||||||
|
test "should ${1:do something}" do
|
||||||
|
${2}
|
||||||
|
end
|
||||||
|
###########################
|
||||||
|
# migrations snippets #
|
||||||
|
###########################
|
||||||
|
snippet mac
|
||||||
|
add_column :${1:table_name}, :${2:column_name}, :${3:data_type}
|
||||||
|
snippet mai
|
||||||
|
add_index :${1:table_name}, :${2:column_name}
|
||||||
|
snippet mrc
|
||||||
|
remove_column :${1:table_name}, :${2:column_name}
|
||||||
|
snippet mrnc
|
||||||
|
rename_column :${1:table_name}, :${2:old_column_name}, :${3:new_column_name}
|
||||||
|
snippet mcc
|
||||||
|
change_column :${1:table}, :${2:column}, :${3:type}
|
||||||
|
snippet mnc
|
||||||
|
t.${1:string} :${2:title}${3:, null: false}${4}
|
||||||
|
snippet mct
|
||||||
|
create_table :${1:table_name} do |t|
|
||||||
|
${2}
|
||||||
|
end
|
||||||
|
snippet migration class .. < ActiveRecord::Migration .. def up .. def down .. end
|
||||||
|
class ${1:class_name} < ActiveRecord::Migration
|
||||||
|
def up
|
||||||
|
${2}
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
end
|
||||||
|
end
|
||||||
|
snippet migration class .. < ActiveRecord::Migration .. def change .. end
|
||||||
|
class ${1:class_name} < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
${2}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
snippet trc
|
||||||
|
t.remove :${1:column}
|
||||||
|
snippet tre
|
||||||
|
t.rename :${1:old_column_name}, :${2:new_column_name}
|
||||||
|
${3}
|
||||||
|
snippet tref
|
||||||
|
t.references :${1:model}
|
||||||
snippet tcb
|
snippet tcb
|
||||||
t.boolean :${1:title}
|
t.boolean :${1:title}
|
||||||
${2}
|
${2}
|
||||||
|
@ -847,98 +954,17 @@ snippet tcts
|
||||||
snippet tctss
|
snippet tctss
|
||||||
t.timestamps
|
t.timestamps
|
||||||
${1}
|
${1}
|
||||||
snippet va
|
##########################
|
||||||
validates_associated :${1:attribute}
|
# Rspec snippets #
|
||||||
snippet vao
|
##########################
|
||||||
validates_acceptance_of :${1:terms}
|
|
||||||
snippet vc
|
|
||||||
validates_confirmation_of :${1:attribute}
|
|
||||||
snippet ve
|
|
||||||
validates_exclusion_of :${1:attribute}, :in => ${2:%w( mov avi )}
|
|
||||||
snippet vf
|
|
||||||
validates_format_of :${1:attribute}, :with => /${2:regex}/
|
|
||||||
snippet vi
|
|
||||||
validates_inclusion_of :${1:attribute}, :in => %w(${2: mov avi })
|
|
||||||
snippet vl
|
|
||||||
validates_length_of :${1:attribute}, :within => ${2:3}..${3:20}
|
|
||||||
snippet vn
|
|
||||||
validates_numericality_of :${1:attribute}
|
|
||||||
snippet vpo
|
|
||||||
validates_presence_of :${1:attribute}
|
|
||||||
snippet vu
|
|
||||||
validates_uniqueness_of :${1:attribute}
|
|
||||||
snippet wants
|
|
||||||
wants.${1:js|xml|html} { ${2} }
|
|
||||||
snippet wc
|
|
||||||
where(${1:"conditions"}${2:, bind_var})
|
|
||||||
snippet wh
|
|
||||||
where(${1:field} => ${2:value})
|
|
||||||
snippet xdelete
|
|
||||||
xhr :delete, :${1:destroy}, :id => ${2:1}${3}
|
|
||||||
snippet xget
|
|
||||||
xhr :get, :${1:show}, :id => ${2:1}${3}
|
|
||||||
snippet xpost
|
|
||||||
xhr :post, :${1:create}, :${2:object} => { ${3} }
|
|
||||||
snippet xput
|
|
||||||
xhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { ${4} }${5}
|
|
||||||
snippet test
|
|
||||||
test "should ${1:do something}" do
|
|
||||||
${2}
|
|
||||||
end
|
|
||||||
#migrations
|
|
||||||
snippet mac
|
|
||||||
add_column :${1:table_name}, :${2:column_name}, :${3:data_type}
|
|
||||||
snippet mrc
|
|
||||||
remove_column :${1:table_name}, :${2:column_name}
|
|
||||||
snippet mrnc
|
|
||||||
rename_column :${1:table_name}, :${2:old_column_name}, :${3:new_column_name}
|
|
||||||
snippet mcc
|
|
||||||
change_column :${1:table}, :${2:column}, :${3:type}
|
|
||||||
snippet mnc
|
|
||||||
t.${1:string} :${2:title}${3:, null: false}${4}
|
|
||||||
snippet mct
|
|
||||||
create_table :${1:table_name} do |t|
|
|
||||||
${2}
|
|
||||||
end
|
|
||||||
snippet migration class .. < ActiveRecord::Migration .. def up .. def down .. end
|
|
||||||
class ${1:class_name} < ActiveRecord::Migration
|
|
||||||
def up
|
|
||||||
${2}
|
|
||||||
end
|
|
||||||
|
|
||||||
def down
|
|
||||||
end
|
|
||||||
end
|
|
||||||
snippet migration class .. < ActiveRecord::Migration .. def change .. end
|
|
||||||
class ${1:class_name} < ActiveRecord::Migration
|
|
||||||
def change
|
|
||||||
${2}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
snippet trc
|
|
||||||
t.remove :${1:column}
|
|
||||||
snippet tre
|
|
||||||
t.rename :${1:old_column_name}, :${2:new_column_name}
|
|
||||||
${3}
|
|
||||||
snippet tref
|
|
||||||
t.references :${1:model}
|
|
||||||
#rspec
|
|
||||||
snippet it
|
|
||||||
it "${1:spec_name}" do
|
|
||||||
${2}
|
|
||||||
end
|
|
||||||
snippet itp
|
|
||||||
it "${1:spec_name}"
|
|
||||||
${2}
|
|
||||||
snippet its
|
|
||||||
its(:${1:method}) { should ${2} }
|
|
||||||
snippet itsn
|
|
||||||
its(:${1:method}) { should_not ${2} }
|
|
||||||
|
|
||||||
snippet desc
|
snippet desc
|
||||||
describe ${1:class_name} do
|
describe ${1:class_name} do
|
||||||
${2}
|
${2}
|
||||||
end
|
end
|
||||||
|
snippet descm
|
||||||
|
describe "${1:#method}" do
|
||||||
|
${2:pending "Not implemented"}
|
||||||
|
end
|
||||||
snippet cont
|
snippet cont
|
||||||
context "${1:message}" do
|
context "${1:message}" do
|
||||||
${2}
|
${2}
|
||||||
|
@ -952,22 +978,101 @@ snippet aft
|
||||||
${2}
|
${2}
|
||||||
end
|
end
|
||||||
snippet let
|
snippet let
|
||||||
let(:${1:object}) ${2:block}
|
let(:${1:object}) ${2}
|
||||||
snippet let!
|
snippet let!
|
||||||
let!(:${1:object}) ${2:block}
|
let!(:${1:object}) ${2}
|
||||||
snippet subj
|
snippet subj
|
||||||
subject { ${1} }
|
subject { ${1} }
|
||||||
|
snippet s.
|
||||||
|
subject.${1:method}
|
||||||
snippet spec
|
snippet spec
|
||||||
specify { subject.${1} }
|
specify { subject.${1} }
|
||||||
snippet exp
|
snippet exp
|
||||||
expect(${1:object}).to ${2}
|
expect { ${1:object} }.to ${2}
|
||||||
snippet btr
|
snippet raise
|
||||||
be_true
|
expect { ${1:object} }.to raise_error ${2:StandardError}, /${3:message_regex}/
|
||||||
snippet bfa
|
|
||||||
be_false
|
|
||||||
snippet shared
|
snippet shared
|
||||||
shared_examples "${1:shared examples name}" ${2}
|
shared_examples ${1:"shared examples name"}
|
||||||
snippet itb
|
snippet ibl
|
||||||
it_behaves_like "${1:shared examples name}"${2}
|
it_behaves_like ${1:"shared examples name"}
|
||||||
snippet ana
|
snippet it
|
||||||
accepts_nested_attributes_for :${1:association}
|
it "${1:spec_name}" do
|
||||||
|
${2}
|
||||||
|
end
|
||||||
|
snippet its
|
||||||
|
its(:${1:method}) { should ${2} }
|
||||||
|
snippet is
|
||||||
|
it { should ${1} }
|
||||||
|
snippet isn
|
||||||
|
it { should_not ${1} }
|
||||||
|
#ShouldaMatchers#ActionController
|
||||||
|
snippet isfp
|
||||||
|
it { should filter_param :${1:key} }
|
||||||
|
snippet isrt
|
||||||
|
it { should redirect_to ${1:url} }
|
||||||
|
snippet isrtp
|
||||||
|
it { should render_template ${1} }
|
||||||
|
snippet isrwl
|
||||||
|
it { should render_with_layout ${1} }
|
||||||
|
snippet isrf
|
||||||
|
it { should rescue_from ${1:exception} }
|
||||||
|
snippet isrw
|
||||||
|
it { should respond_with ${1:status} }
|
||||||
|
snippet isr
|
||||||
|
it { should route(:${1:method}, '${2:path}') }
|
||||||
|
snippet isss
|
||||||
|
it { should set_session :${1:key} }
|
||||||
|
snippet issf
|
||||||
|
it { should set_the_flash('${1}') }
|
||||||
|
#ShouldaMatchers#ActiveModel
|
||||||
|
snippet isama
|
||||||
|
it { should allow_mass_assignment_of :${1} }
|
||||||
|
snippet isav
|
||||||
|
it { should allow_value(${1}).for :${2} }
|
||||||
|
snippet isee
|
||||||
|
it { should ensure_exclusion_of :${1} }
|
||||||
|
snippet isei
|
||||||
|
it { should ensure_inclusion_of :${1} }
|
||||||
|
snippet isel
|
||||||
|
it { should ensure_length_of :${1} }
|
||||||
|
snippet isva
|
||||||
|
it { should validate_acceptance_of :${1} }
|
||||||
|
snippet isvc
|
||||||
|
it { should validate_confirmation_of :${1} }
|
||||||
|
snippet isvn
|
||||||
|
it { should validate_numericality_of :${1} }
|
||||||
|
snippet isvp
|
||||||
|
it { should validate_presence_of :${1} }
|
||||||
|
snippet isvu
|
||||||
|
it { should validate_uniqueness_of :${1} }
|
||||||
|
#ShouldaMatchers#ActiveRecord
|
||||||
|
snippet isana
|
||||||
|
it { should accept_nested_attributes_for :${1} }
|
||||||
|
snippet isbt
|
||||||
|
it { should belong_to :${1} }
|
||||||
|
snippet isbtcc
|
||||||
|
it { should belong_to(:${1}).counter_cache ${2:true} }
|
||||||
|
snippet ishbtm
|
||||||
|
it { should have_and_belong_to_many :${1} }
|
||||||
|
snippet isbv
|
||||||
|
it { should be_valid }${1}
|
||||||
|
snippet ishc
|
||||||
|
it { should have_db_column :${1} }
|
||||||
|
snippet ishi
|
||||||
|
it { should have_db_index :${1} }
|
||||||
|
snippet ishm
|
||||||
|
it { should have_many :${1} }
|
||||||
|
snippet ishmt
|
||||||
|
it { should have_many(:${1}).through :${2} }
|
||||||
|
snippet isho
|
||||||
|
it { should have_one :${1} }
|
||||||
|
snippet ishro
|
||||||
|
it { should have_readonly_attribute :${1} }
|
||||||
|
snippet iss
|
||||||
|
it { should serialize :${1} }
|
||||||
|
snippet isres
|
||||||
|
it { should respond_to :${1} }
|
||||||
|
snippet isresw
|
||||||
|
it { should respond_to(:${1}).with(${2}).arguments }
|
||||||
|
snippet super_call
|
||||||
|
${1:super_class}.instance_method(:${2:method}).bind(self).call
|
||||||
|
|
|
@ -7,61 +7,65 @@
|
||||||
#if
|
#if
|
||||||
snippet if
|
snippet if
|
||||||
if(${1:obj}) {
|
if(${1:obj}) {
|
||||||
${2:/* code */}
|
${2}
|
||||||
}
|
}
|
||||||
#if not
|
#if not
|
||||||
snippet ifn
|
snippet ifn
|
||||||
if(!${1:obj}) {
|
if(!${1:obj}) {
|
||||||
${2:/* code */}
|
${2}
|
||||||
}
|
}
|
||||||
#if-else
|
#if-else
|
||||||
snippet ifel
|
snippet ife
|
||||||
if(${1:obj}) {
|
if(${1:obj}) {
|
||||||
${2:/* code */}
|
${2}
|
||||||
} else {
|
} else {
|
||||||
${3:/* code */}
|
${3}
|
||||||
}
|
}
|
||||||
#if-else-if
|
#if-else-if
|
||||||
snippet ifelif
|
snippet ifelif
|
||||||
if(${1:obj}) {
|
if(${1:obj}) {
|
||||||
${2:/* code */}
|
${2}
|
||||||
} else if(${3:obj}) {
|
} else if(${3:obj}) {
|
||||||
${4:/* code */}
|
${4}
|
||||||
|
}
|
||||||
|
snippet eif
|
||||||
|
else if(${3:obj}) {
|
||||||
|
${4}
|
||||||
}
|
}
|
||||||
#while loop
|
#while loop
|
||||||
snippet while
|
snippet while
|
||||||
while (${1:obj}) {
|
while (${1:obj}) {
|
||||||
${2:/* code */}
|
${2}
|
||||||
}
|
}
|
||||||
#for loop(classic)
|
#for loop(classic)
|
||||||
snippet for
|
snippet for
|
||||||
for (${1:item} <- ${2:obj}) {
|
for (${1:item} <- ${2:obj}) {
|
||||||
${3:/* code */}
|
${3}
|
||||||
}
|
}
|
||||||
#for loop(indexed)
|
#for loop(indexed)
|
||||||
snippet fori
|
snippet fori
|
||||||
for (${1:i} <- ${2:0} to ${3:obj}.length) {
|
for (${1:i} <- ${2:0} to ${3:obj}.length) {
|
||||||
${4:/* code */}
|
${4}
|
||||||
}
|
}
|
||||||
#exceptions
|
#exceptions
|
||||||
snippet try
|
snippet try
|
||||||
try {
|
try {
|
||||||
${1:/* code */}
|
${1}
|
||||||
} catch {
|
} catch {
|
||||||
case e: FileNotFoundException => ${2:/* code */}
|
case e: FileNotFoundException => ${2}
|
||||||
case e: IOException => ${3:/* code */}
|
case e: IOException => ${3}
|
||||||
} finally {
|
} finally {
|
||||||
${4:/* code */}
|
${4}
|
||||||
}
|
}
|
||||||
#match
|
#match
|
||||||
snippet match
|
snippet match
|
||||||
${1: obj} match {
|
${1: obj} match {
|
||||||
case ${2:e} => ${3:/* code */}
|
case ${2:e} => ${3}
|
||||||
case _ => ${4:/* code */}
|
case _ => ${4}
|
||||||
}
|
}
|
||||||
#case
|
#case
|
||||||
snippet case
|
snippet case
|
||||||
case ${1:value} => ${2:/* code */}
|
case ${1:value} => ${2}
|
||||||
############################
|
############################
|
||||||
# methods and arguments
|
# methods and arguments
|
||||||
#
|
#
|
||||||
|
@ -82,9 +86,9 @@ snippet ovdef
|
||||||
override def ${1:name}(${2:arg}) = ${3:}
|
override def ${1:name}(${2:arg}) = ${3:}
|
||||||
#first class function(see scalabook p 188)
|
#first class function(see scalabook p 188)
|
||||||
snippet fcf
|
snippet fcf
|
||||||
(${1:a}: ${2:T}) => $1 ${3:/* code */}
|
(${1:a}: ${2:T}) => $1 ${3}
|
||||||
snippet =>
|
snippet =>
|
||||||
${1:name} => ${2:/* code */}
|
${1:name} => ${2}
|
||||||
#recursion
|
#recursion
|
||||||
snippet rec
|
snippet rec
|
||||||
def ${1:name}(${2:arg}) =
|
def ${1:name}(${2:arg}) =
|
||||||
|
@ -196,11 +200,11 @@ snippet as
|
||||||
|
|
||||||
#scope() with one arg
|
#scope() with one arg
|
||||||
snippet (a
|
snippet (a
|
||||||
(${1:a} => ${2:/* code */})
|
(${1:a} => ${2})
|
||||||
#scope() with two args
|
#scope() with two args
|
||||||
snippet {(
|
snippet {(
|
||||||
{(${1:a},${2:b}) =>
|
{(${1:a},${2:b}) =>
|
||||||
${3:/* code */}
|
${3}
|
||||||
}
|
}
|
||||||
#filter
|
#filter
|
||||||
snippet filter
|
snippet filter
|
||||||
|
@ -220,10 +224,10 @@ snippet fldr
|
||||||
#fold left operator(if u wanna reduce readability of ur code)
|
#fold left operator(if u wanna reduce readability of ur code)
|
||||||
#use wildcard symbols
|
#use wildcard symbols
|
||||||
snippet /:
|
snippet /:
|
||||||
(${1:first}/:${2:name})(${3:/* code */})
|
(${1:first}/:${2:name})(${3})
|
||||||
#fold right operator
|
#fold right operator
|
||||||
snippet :\
|
snippet :\
|
||||||
(${1:first}:\${2:name})(${3:/* code */})
|
(${1:first}:\${2:name})(${3})
|
||||||
#reduce left
|
#reduce left
|
||||||
snippet redl
|
snippet redl
|
||||||
${1:name}.reduceLeft[${2:T}] {(
|
${1:name}.reduceLeft[${2:T}] {(
|
||||||
|
@ -258,13 +262,13 @@ snippet athis
|
||||||
snippet abstract
|
snippet abstract
|
||||||
abstract class ${1:name}${2:(arg)}${3: extends }${4: with} {
|
abstract class ${1:name}${2:(arg)}${3: extends }${4: with} {
|
||||||
${5:override def toString = "$1"}
|
${5:override def toString = "$1"}
|
||||||
${6:/* code */}
|
${6}
|
||||||
}
|
}
|
||||||
#class
|
#class
|
||||||
snippet class
|
snippet class
|
||||||
class ${1:name}${2:(arg)}${3: extends }${4: with} {
|
class ${1:name}${2:(arg)}${3: extends }${4: with} {
|
||||||
${5:override def toString = "$1"}
|
${5:override def toString = "$1"}
|
||||||
${6:/* code */}
|
${6}
|
||||||
}
|
}
|
||||||
#object
|
#object
|
||||||
snippet object
|
snippet object
|
||||||
|
@ -279,7 +283,7 @@ snippet ordered
|
||||||
class ${1:name}${2:(arg)} extends Ordered[$1] ${3: with} {
|
class ${1:name}${2:(arg)} extends Ordered[$1] ${3: with} {
|
||||||
${4:override def toString = "$1"}
|
${4:override def toString = "$1"}
|
||||||
def compare(that: $1) = ${5:this - that}
|
def compare(that: $1) = ${5:this - that}
|
||||||
${6:/* code */}
|
${6}
|
||||||
}
|
}
|
||||||
#case class
|
#case class
|
||||||
snippet casecl
|
snippet casecl
|
||||||
|
|
|
@ -80,7 +80,5 @@ snippet getopt
|
||||||
esac # --- end of case ---
|
esac # --- end of case ---
|
||||||
done
|
done
|
||||||
shift $(($OPTIND-1))
|
shift $(($OPTIND-1))
|
||||||
|
|
||||||
|
|
||||||
snippet root
|
snippet root
|
||||||
if [ $(id -u) -ne 0 ]; then exec sudo $0; fi
|
if [ $(id -u) -ne 0 ]; then exec sudo $0; fi
|
||||||
|
|
|
@ -5,7 +5,7 @@ snippet #!
|
||||||
# Process
|
# Process
|
||||||
snippet pro
|
snippet pro
|
||||||
proc ${1:function_name} {${2:args}} {
|
proc ${1:function_name} {${2:args}} {
|
||||||
${3:#body ...}
|
${3}
|
||||||
}
|
}
|
||||||
#xif
|
#xif
|
||||||
snippet xif
|
snippet xif
|
||||||
|
@ -13,19 +13,23 @@ snippet xif
|
||||||
# Conditional
|
# Conditional
|
||||||
snippet if
|
snippet if
|
||||||
if {${1}} {
|
if {${1}} {
|
||||||
${2:# body...}
|
${2}
|
||||||
}
|
}
|
||||||
# Conditional if..else
|
# Conditional if..else
|
||||||
snippet ife
|
snippet ife
|
||||||
if {${1}} {
|
if {${1}} {
|
||||||
${2:# body...}
|
${2}
|
||||||
} else {
|
} else {
|
||||||
${3:# else...}
|
${3:# else...}
|
||||||
}
|
}
|
||||||
|
snippet eif
|
||||||
|
elseif {${1}} {
|
||||||
|
${2}
|
||||||
|
}
|
||||||
# Conditional if..elsif..else
|
# Conditional if..elsif..else
|
||||||
snippet ifee
|
snippet ifee
|
||||||
if {${1}} {
|
if {${1}} {
|
||||||
${2:# body...}
|
${2}
|
||||||
} elseif {${3}} {
|
} elseif {${3}} {
|
||||||
${4:# elsif...}
|
${4:# elsif...}
|
||||||
} else {
|
} else {
|
||||||
|
@ -42,17 +46,17 @@ snippet catch
|
||||||
# While Loop
|
# While Loop
|
||||||
snippet wh
|
snippet wh
|
||||||
while {${1}} {
|
while {${1}} {
|
||||||
${2:# body...}
|
${2}
|
||||||
}
|
}
|
||||||
# For Loop
|
# For Loop
|
||||||
snippet for
|
snippet for
|
||||||
for {set ${2:var} 0} {$$2 < ${1:count}} {${3:incr} $2} {
|
for {set ${2:var} 0} {$$2 < ${1:count}} {${3:incr} $2} {
|
||||||
${4:# body...}
|
${4}
|
||||||
}
|
}
|
||||||
# Foreach Loop
|
# Foreach Loop
|
||||||
snippet fore
|
snippet fore
|
||||||
foreach ${1:x} {${2:#list}} {
|
foreach ${1:x} {${2:#list}} {
|
||||||
${3:# body...}
|
${3}
|
||||||
}
|
}
|
||||||
# after ms script...
|
# after ms script...
|
||||||
snippet af
|
snippet af
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
#PREAMBLE
|
#PREAMBLE
|
||||||
#newcommand
|
#newcommand
|
||||||
snippet nc
|
snippet nc
|
||||||
\newcommand{\${1:cmd}}[${2:opt}]{${3:realcmd}}${4}
|
\newcommand{\${1:cmd}}[${2:opt}]{${3:realcmd}} ${4}
|
||||||
#usepackage
|
#usepackage
|
||||||
snippet up
|
snippet up
|
||||||
\usepackage[${1:[options}]{${2:package}}
|
\usepackage[${1:options}]{${2:package}} ${3}
|
||||||
#newunicodechar
|
#newunicodechar
|
||||||
snippet nuc
|
snippet nuc
|
||||||
\newunicodechar{${1}}{${2:\ensuremath}${3:tex-substitute}}}
|
\newunicodechar{${1}}{${2:\ensuremath}${3:tex-substitute}}} ${4}
|
||||||
#DeclareMathOperator
|
#DeclareMathOperator
|
||||||
snippet dmo
|
snippet dmo
|
||||||
\DeclareMathOperator{${1}}{${2}}
|
\DeclareMathOperator{${1}}{${2}} ${3}
|
||||||
|
|
||||||
#DOCUMENT
|
#DOCUMENT
|
||||||
# \begin{}...\end{}
|
# \begin{}...\end{}
|
||||||
|
@ -26,7 +26,7 @@ snippet tab
|
||||||
snippet thm
|
snippet thm
|
||||||
\begin[${1:author}]{${2:thm}}
|
\begin[${1:author}]{${2:thm}}
|
||||||
${3}
|
${3}
|
||||||
\end{$1}
|
\end{$2}
|
||||||
snippet center
|
snippet center
|
||||||
\begin{center}
|
\begin{center}
|
||||||
${1}
|
${1}
|
||||||
|
@ -56,6 +56,11 @@ snippet \
|
||||||
\[
|
\[
|
||||||
${1}
|
${1}
|
||||||
\]
|
\]
|
||||||
|
# Equation array
|
||||||
|
snippet eqnarray
|
||||||
|
\begin{eqnarray}
|
||||||
|
${1}
|
||||||
|
\end{eqnarray}
|
||||||
# Enumerate
|
# Enumerate
|
||||||
snippet enum
|
snippet enum
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
|
@ -66,11 +71,17 @@ snippet itemize
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item ${1}
|
\item ${1}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
snippet item
|
||||||
|
\item ${1}
|
||||||
# Description
|
# Description
|
||||||
snippet desc
|
snippet desc
|
||||||
\begin{description}
|
\begin{description}
|
||||||
\item[${1}] ${2}
|
\item[${1}] ${2}
|
||||||
\end{description}
|
\end{description}
|
||||||
|
# Endless new item
|
||||||
|
snippet ]i
|
||||||
|
\item ${1}
|
||||||
|
${2:]i}
|
||||||
# Matrix
|
# Matrix
|
||||||
snippet mat
|
snippet mat
|
||||||
\begin{${1:p/b/v/V/B/small}matrix}
|
\begin{${1:p/b/v/V/B/small}matrix}
|
||||||
|
@ -103,16 +114,31 @@ snippet sec
|
||||||
\section{${1:section name}}
|
\section{${1:section name}}
|
||||||
\label{sec:${2:$1}}
|
\label{sec:${2:$1}}
|
||||||
${3}
|
${3}
|
||||||
|
# Section without number
|
||||||
|
snippet sec*
|
||||||
|
\section*{${1:section name}}
|
||||||
|
\label{sec:${2:$1}}
|
||||||
|
${3}
|
||||||
# Sub Section
|
# Sub Section
|
||||||
snippet sub
|
snippet sub
|
||||||
\subsection{${1:subsection name}}
|
\subsection{${1:subsection name}}
|
||||||
\label{sub:${2:$1}}
|
\label{sub:${2:$1}}
|
||||||
${3}
|
${3}
|
||||||
|
# Sub Section without number
|
||||||
|
snippet sub*
|
||||||
|
\subsection*{${1:subsection name}}
|
||||||
|
\label{sub:${2:$1}}
|
||||||
|
${3}
|
||||||
# Sub Sub Section
|
# Sub Sub Section
|
||||||
snippet subs
|
snippet subs
|
||||||
\subsubsection{${1:subsubsection name}}
|
\subsubsection{${1:subsubsection name}}
|
||||||
\label{ssub:${2:$1}}
|
\label{ssub:${2:$1}}
|
||||||
${3}
|
${3}
|
||||||
|
# Sub Sub Section without number
|
||||||
|
snippet subs*
|
||||||
|
\subsubsection*{${1:subsubsection name}}
|
||||||
|
\label{ssub:${2:$1}}
|
||||||
|
${3}
|
||||||
# Paragraph
|
# Paragraph
|
||||||
snippet par
|
snippet par
|
||||||
\paragraph{${1:paragraph name}}
|
\paragraph{${1:paragraph name}}
|
||||||
|
@ -123,6 +149,9 @@ snippet subp
|
||||||
\subparagraph{${1:subparagraph name}}
|
\subparagraph{${1:subparagraph name}}
|
||||||
\label{subp:${2:$1}}
|
\label{subp:${2:$1}}
|
||||||
${3}
|
${3}
|
||||||
|
snippet ni
|
||||||
|
\noindent
|
||||||
|
${1}
|
||||||
#References
|
#References
|
||||||
snippet itd
|
snippet itd
|
||||||
\item[${1:description}] ${2:item}
|
\item[${1:description}] ${2:item}
|
||||||
|
@ -133,14 +162,21 @@ snippet table
|
||||||
snippet listing
|
snippet listing
|
||||||
${1:Listing}~\ref{${2:list}}${3}
|
${1:Listing}~\ref{${2:list}}${3}
|
||||||
snippet section
|
snippet section
|
||||||
${1:Section}~\ref{${2:sec:}}${3}
|
${1:Section}~\ref{sec:${2}} ${3}
|
||||||
snippet page
|
snippet page
|
||||||
${1:page}~\pageref{${2}}${3}
|
${1:page}~\pageref{${2}} ${3}
|
||||||
snippet index
|
snippet index
|
||||||
\index{${1:index}}${2}
|
\index{${1:index}} ${2}
|
||||||
#Citations
|
#Citations
|
||||||
|
snippet citen
|
||||||
|
\cite{$1} ${2}
|
||||||
|
# bibtex commands
|
||||||
|
snippet citep
|
||||||
|
\citep{$1} ${2}
|
||||||
|
snippet citet
|
||||||
|
\citet{$1} ${2}
|
||||||
snippet cite
|
snippet cite
|
||||||
\cite[${1}]{${2}}${3}
|
\cite[${1}]{${2}} ${3}
|
||||||
snippet fcite
|
snippet fcite
|
||||||
\footcite[${1}]{${2}}${3}
|
\footcite[${1}]{${2}}${3}
|
||||||
#Formating text: italic, bold, underline, small capital, emphase ..
|
#Formating text: italic, bold, underline, small capital, emphase ..
|
||||||
|
@ -172,6 +208,7 @@ snippet fig
|
||||||
\caption{${3}}
|
\caption{${3}}
|
||||||
\label{fig:${4}}
|
\label{fig:${4}}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
${5}
|
||||||
snippet tikz
|
snippet tikz
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
\begin{center}
|
\begin{center}
|
||||||
|
@ -182,10 +219,40 @@ snippet tikz
|
||||||
\caption{${3}}
|
\caption{${3}}
|
||||||
\label{fig:${4}}
|
\label{fig:${4}}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
${5}
|
||||||
#math
|
#math
|
||||||
snippet stackrel
|
snippet stackrel
|
||||||
\stackrel{${1:above}}{${2:below}} ${3}
|
\stackrel{${1:above}}{${2:below}} ${3}
|
||||||
snippet frac
|
snippet frac
|
||||||
\frac{${1:num}}{${2:denom}}
|
\frac{${1:num}}{${2:denom}} ${3}
|
||||||
snippet sum
|
snippet sum
|
||||||
\sum^{${1:n}}_{${2:i=1}}{${3}}
|
\sum^{${1:n}}_{${2:i=1}} ${3}
|
||||||
|
snippet lim
|
||||||
|
\lim_{${1:x \to +\infty}} ${2}
|
||||||
|
snippet frame
|
||||||
|
\begin{frame}[<+->]
|
||||||
|
\frametitle{${1:title}}
|
||||||
|
|
||||||
|
${2}
|
||||||
|
\end{frame}
|
||||||
|
snippet block
|
||||||
|
\begin{block}{${1:title}}
|
||||||
|
${2}
|
||||||
|
\end{block}
|
||||||
|
snippet alert
|
||||||
|
\begin{alertblock}{${1:title}}
|
||||||
|
${2}
|
||||||
|
\end{alertblock}
|
||||||
|
snippet example
|
||||||
|
\begin{exampleblock}{${1:title}}
|
||||||
|
${2}
|
||||||
|
\end{exampleblock}
|
||||||
|
snippet col2
|
||||||
|
\begin{columns}
|
||||||
|
\begin{column}{0.5\textwidth}
|
||||||
|
${1}
|
||||||
|
\end{column}
|
||||||
|
\begin{column}{0.5\textwidth}
|
||||||
|
${2}
|
||||||
|
\end{column}
|
||||||
|
\end{columns}
|
||||||
|
|
|
@ -4,13 +4,13 @@ snippet header
|
||||||
" Description: ${3}
|
" Description: ${3}
|
||||||
${4:" Last Modified: `strftime("%B %d, %Y")`}
|
${4:" Last Modified: `strftime("%B %d, %Y")`}
|
||||||
snippet guard
|
snippet guard
|
||||||
if exists('${1:did_`Filename()`}') || &cp${2: || version < 700}
|
if exists('${1:did_`vim_snippets#Filename()`}') || &cp${2: || version < 700}
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
let $1 = 1${3}
|
let $1 = 1${3}
|
||||||
snippet f
|
snippet f
|
||||||
fun! ${1:`expand('%') =~ 'autoload' ? substitute(matchstr(expand('%:p'),'autoload/\zs.*\ze.vim'),'[/\\]','#','g').'#' : ''`}${2:function_name}(${3})
|
fun! ${1:`expand('%') =~ 'autoload' ? substitute(matchstr(expand('%:p'),'autoload/\zs.*\ze.vim'),'[/\\]','#','g').'#' : ''`}${2:function_name}(${3})
|
||||||
${4:" code}
|
${4}
|
||||||
endf
|
endf
|
||||||
snippet t
|
snippet t
|
||||||
try
|
try
|
||||||
|
@ -19,19 +19,25 @@ snippet t
|
||||||
${3}
|
${3}
|
||||||
endtry
|
endtry
|
||||||
snippet for
|
snippet for
|
||||||
for ${1:needle} in ${2:haystack}
|
for ${1} in ${2}
|
||||||
${3:" code}
|
${3}
|
||||||
endfor
|
endfor
|
||||||
|
snippet forkv
|
||||||
|
for [${1},${2}] in items(${3})
|
||||||
|
${4}
|
||||||
|
unlet $1 $2
|
||||||
|
endfor
|
||||||
|
|
||||||
snippet wh
|
snippet wh
|
||||||
while ${1:condition}
|
while ${1}
|
||||||
${2:" code}
|
${2}
|
||||||
endw
|
endw
|
||||||
snippet if
|
snippet if
|
||||||
if ${1:condition}
|
if ${1}
|
||||||
${2:" code}
|
${2}
|
||||||
endif
|
endif
|
||||||
snippet ife
|
snippet ife
|
||||||
if ${1:condition}
|
if ${1}
|
||||||
${2}
|
${2}
|
||||||
else
|
else
|
||||||
${3}
|
${3}
|
||||||
|
|
|
@ -12,7 +12,7 @@ snippet ife
|
||||||
else
|
else
|
||||||
${3:# statements}
|
${3:# statements}
|
||||||
fi
|
fi
|
||||||
snippet elif
|
snippet eif
|
||||||
elif ${1:condition} ; then
|
elif ${1:condition} ; then
|
||||||
${2:# statements}
|
${2:# statements}
|
||||||
snippet for
|
snippet for
|
||||||
|
|
Loading…
Reference in a new issue