First commit of some current dotfiles
parent
6a6ffcc322
commit
e9c52b31ba
@ -0,0 +1,9 @@
|
||||
# command prefix (like screen)
|
||||
set -g prefix C-a
|
||||
bind C-a send-prefix
|
||||
|
||||
# basic settings
|
||||
set-window-option -g mode-keys vi # vi key
|
||||
set-option -g status-keys vi
|
||||
set-window-option -g utf8 on # utf8 support
|
||||
|
@ -0,0 +1,7 @@
|
||||
let g:netrw_dirhistmax =10
|
||||
let g:netrw_dirhist_cnt =5
|
||||
let g:netrw_dirhist_1='/srv/http/default/iocom/test'
|
||||
let g:netrw_dirhist_2='/srv/http/default/include'
|
||||
let g:netrw_dirhist_3='/home/dustinswan/.npm/socket.io'
|
||||
let g:netrw_dirhist_4='/srv/http/default/wantfeed.com/services'
|
||||
let g:netrw_dirhist_5='/srv/http/default/conrad'
|
@ -0,0 +1,35 @@
|
||||
" These are the mappings for snipMate.vim. Putting it here ensures that it
|
||||
" will be mapped after other plugins such as supertab.vim.
|
||||
if !exists('loaded_snips') || exists('s:did_snips_mappings')
|
||||
finish
|
||||
endif
|
||||
let s:did_snips_mappings = 1
|
||||
|
||||
ino <silent> <tab> <c-r>=TriggerSnippet()<cr>
|
||||
snor <silent> <tab> <esc>i<right><c-r>=TriggerSnippet()<cr>
|
||||
ino <silent> <s-tab> <c-r>=BackwardsSnippet()<cr>
|
||||
snor <silent> <s-tab> <esc>i<right><c-r>=BackwardsSnippet()<cr>
|
||||
ino <silent> <c-r><tab> <c-r>=ShowAvailableSnips()<cr>
|
||||
|
||||
" The default mappings for these are annoying & sometimes break snipMate.
|
||||
" You can change them back if you want, I've put them here for convenience.
|
||||
snor <bs> b<bs>
|
||||
snor <right> <esc>a
|
||||
snor <left> <esc>bi
|
||||
snor ' b<bs>'
|
||||
snor ` b<bs>`
|
||||
snor % b<bs>%
|
||||
snor U b<bs>U
|
||||
snor ^ b<bs>^
|
||||
snor \ b<bs>\
|
||||
snor <c-x> b<bs><c-x>
|
||||
|
||||
" By default load snippets in snippets_dir
|
||||
if empty(snippets_dir)
|
||||
finish
|
||||
endif
|
||||
|
||||
call GetSnippets(snippets_dir, '_') " Get global snippets
|
||||
|
||||
au FileType * if &ft != 'help' | call GetSnippets(snippets_dir, &ft) | endif
|
||||
" vim:noet:sw=4:ts=4:ft=vim
|
@ -0,0 +1,431 @@
|
||||
"=============================================================================
|
||||
" Copyright (c) 2007-2009 Takeshi NISHIDA
|
||||
"
|
||||
"=============================================================================
|
||||
" LOAD GUARD {{{1
|
||||
|
||||
if exists('g:loaded_autoload_acp') || v:version < 702
|
||||
finish
|
||||
endif
|
||||
let g:loaded_autoload_acp = 1
|
||||
|
||||
" }}}1
|
||||
"=============================================================================
|
||||
" GLOBAL FUNCTIONS: {{{1
|
||||
|
||||
"
|
||||
function acp#enable()
|
||||
call acp#disable()
|
||||
|
||||
augroup AcpGlobalAutoCommand
|
||||
autocmd!
|
||||
autocmd InsertEnter * unlet! s:posLast s:lastUncompletable
|
||||
autocmd InsertLeave * call s:finishPopup(1)
|
||||
augroup END
|
||||
|
||||
if g:acp_mappingDriven
|
||||
call s:mapForMappingDriven()
|
||||
else
|
||||
autocmd AcpGlobalAutoCommand CursorMovedI * call s:feedPopup()
|
||||
endif
|
||||
|
||||
nnoremap <silent> i i<C-r>=<SID>feedPopup()<CR>
|
||||
nnoremap <silent> a a<C-r>=<SID>feedPopup()<CR>
|
||||
nnoremap <silent> R R<C-r>=<SID>feedPopup()<CR>
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#disable()
|
||||
call s:unmapForMappingDriven()
|
||||
augroup AcpGlobalAutoCommand
|
||||
autocmd!
|
||||
augroup END
|
||||
nnoremap i <Nop> | nunmap i
|
||||
nnoremap a <Nop> | nunmap a
|
||||
nnoremap R <Nop> | nunmap R
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#lock()
|
||||
let s:lockCount += 1
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#unlock()
|
||||
let s:lockCount -= 1
|
||||
if s:lockCount < 0
|
||||
let s:lockCount = 0
|
||||
throw "AutoComplPop: not locked"
|
||||
endif
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#meetsForSnipmate(context)
|
||||
if g:acp_behaviorSnipmateLength < 0
|
||||
return 0
|
||||
endif
|
||||
let matches = matchlist(a:context, '\(^\|\s\|\<\)\(\u\{' .
|
||||
\ g:acp_behaviorSnipmateLength . ',}\)$')
|
||||
return !empty(matches) && !empty(s:getMatchingSnipItems(matches[2]))
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#meetsForKeyword(context)
|
||||
if g:acp_behaviorKeywordLength < 0
|
||||
return 0
|
||||
endif
|
||||
let matches = matchlist(a:context, '\(\k\{' . g:acp_behaviorKeywordLength . ',}\)$')
|
||||
if empty(matches)
|
||||
return 0
|
||||
endif
|
||||
for ignore in g:acp_behaviorKeywordIgnores
|
||||
if stridx(ignore, matches[1]) == 0
|
||||
return 0
|
||||
endif
|
||||
endfor
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#meetsForFile(context)
|
||||
if g:acp_behaviorFileLength < 0
|
||||
return 0
|
||||
endif
|
||||
if has('win32') || has('win64')
|
||||
let separator = '[/\\]'
|
||||
else
|
||||
let separator = '\/'
|
||||
endif
|
||||
if a:context !~ '\f' . separator . '\f\{' . g:acp_behaviorFileLength . ',}$'
|
||||
return 0
|
||||
endif
|
||||
return a:context !~ '[*/\\][/\\]\f*$\|[^[:print:]]\f*$'
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#meetsForRubyOmni(context)
|
||||
if !has('ruby')
|
||||
return 0
|
||||
endif
|
||||
if g:acp_behaviorRubyOmniMethodLength >= 0 &&
|
||||
\ a:context =~ '[^. \t]\(\.\|::\)\k\{' .
|
||||
\ g:acp_behaviorRubyOmniMethodLength . ',}$'
|
||||
return 1
|
||||
endif
|
||||
if g:acp_behaviorRubyOmniSymbolLength >= 0 &&
|
||||
\ a:context =~ '\(^\|[^:]\):\k\{' .
|
||||
\ g:acp_behaviorRubyOmniSymbolLength . ',}$'
|
||||
return 1
|
||||
endif
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#meetsForPythonOmni(context)
|
||||
return has('python') && g:acp_behaviorPythonOmniLength >= 0 &&
|
||||
\ a:context =~ '\k\.\k\{' . g:acp_behaviorPythonOmniLength . ',}$'
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#meetsForPerlOmni(context)
|
||||
return g:acp_behaviorPerlOmniLength >= 0 &&
|
||||
\ a:context =~ '\w->\k\{' . g:acp_behaviorPerlOmniLength . ',}$'
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#meetsForXmlOmni(context)
|
||||
return g:acp_behaviorXmlOmniLength >= 0 &&
|
||||
\ a:context =~ '\(<\|<\/\|<[^>]\+ \|<[^>]\+=\"\)\k\{' .
|
||||
\ g:acp_behaviorXmlOmniLength . ',}$'
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#meetsForHtmlOmni(context)
|
||||
return g:acp_behaviorHtmlOmniLength >= 0 &&
|
||||
\ a:context =~ '\(<\|<\/\|<[^>]\+ \|<[^>]\+=\"\)\k\{' .
|
||||
\ g:acp_behaviorHtmlOmniLength . ',}$'
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#meetsForCssOmni(context)
|
||||
if g:acp_behaviorCssOmniPropertyLength >= 0 &&
|
||||
\ a:context =~ '\(^\s\|[;{]\)\s*\k\{' .
|
||||
\ g:acp_behaviorCssOmniPropertyLength . ',}$'
|
||||
return 1
|
||||
endif
|
||||
if g:acp_behaviorCssOmniValueLength >= 0 &&
|
||||
\ a:context =~ '[:@!]\s*\k\{' .
|
||||
\ g:acp_behaviorCssOmniValueLength . ',}$'
|
||||
return 1
|
||||
endif
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#completeSnipmate(findstart, base)
|
||||
if a:findstart
|
||||
let s:posSnipmateCompletion = len(matchstr(s:getCurrentText(), '.*\U'))
|
||||
return s:posSnipmateCompletion
|
||||
endif
|
||||
let lenBase = len(a:base)
|
||||
let items = filter(GetSnipsInCurrentScope(),
|
||||
\ 'strpart(v:key, 0, lenBase) ==? a:base')
|
||||
return map(sort(items(items)), 's:makeSnipmateItem(v:val[0], v:val[1])')
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#onPopupCloseSnipmate()
|
||||
let word = s:getCurrentText()[s:posSnipmateCompletion :]
|
||||
for trigger in keys(GetSnipsInCurrentScope())
|
||||
if word ==# trigger
|
||||
call feedkeys("\<C-r>=TriggerSnippet()\<CR>", "n")
|
||||
return 0
|
||||
endif
|
||||
endfor
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#onPopupPost()
|
||||
" to clear <C-r>= expression on command-line
|
||||
echo ''
|
||||
if pumvisible()
|
||||
inoremap <silent> <expr> <C-h> acp#onBs()
|
||||
inoremap <silent> <expr> <BS> acp#onBs()
|
||||
" a command to restore to original text and select the first match
|
||||
return (s:behavsCurrent[s:iBehavs].command =~# "\<C-p>" ? "\<C-n>\<Up>"
|
||||
\ : "\<C-p>\<Down>")
|
||||
endif
|
||||
let s:iBehavs += 1
|
||||
if len(s:behavsCurrent) > s:iBehavs
|
||||
call s:setCompletefunc()
|
||||
return printf("\<C-e>%s\<C-r>=acp#onPopupPost()\<CR>",
|
||||
\ s:behavsCurrent[s:iBehavs].command)
|
||||
else
|
||||
let s:lastUncompletable = {
|
||||
\ 'word': s:getCurrentWord(),
|
||||
\ 'commands': map(copy(s:behavsCurrent), 'v:val.command')[1:],
|
||||
\ }
|
||||
call s:finishPopup(0)
|
||||
return "\<C-e>"
|
||||
endif
|
||||
endfunction
|
||||
|
||||
"
|
||||
function acp#onBs()
|
||||
" using "matchstr" and not "strpart" in order to handle multi-byte
|
||||
" characters
|
||||
if call(s:behavsCurrent[s:iBehavs].meets,
|
||||
\ [matchstr(s:getCurrentText(), '.*\ze.')])
|
||||
return "\<BS>"
|
||||
endif
|
||||
return "\<C-e>\<BS>"
|
||||
endfunction
|
||||
|
||||
" }}}1
|
||||
"=============================================================================
|
||||
" LOCAL FUNCTIONS: {{{1
|
||||
|
||||
"
|
||||
function s:mapForMappingDriven()
|
||||
call s:unmapForMappingDriven()
|
||||
let s:keysMappingDriven = [
|
||||
\ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
|
||||
\ 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
|
||||
\ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
|
||||
\ 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
|
||||
\ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
|
||||
\ '-', '_', '~', '^', '.', ',', ':', '!', '#', '=', '%', '$', '@', '<', '>', '/', '\',
|
||||
\ '<Space>', '<C-h>', '<BS>', ]
|
||||
for key in s:keysMappingDriven
|
||||
execute printf('inoremap <silent> %s %s<C-r>=<SID>feedPopup()<CR>',
|
||||
\ key, key)
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
"
|
||||
function s:unmapForMappingDriven()
|
||||
if !exists('s:keysMappingDriven')
|
||||
return
|
||||
endif
|
||||
for key in s:keysMappingDriven
|
||||
execute 'iunmap ' . key
|
||||
endfor
|
||||
let s:keysMappingDriven = []
|
||||
endfunction
|
||||
|
||||
"
|
||||
function s:setTempOption(group, name, value)
|
||||
call extend(s:tempOptionSet[a:group], { a:name : eval('&' . a:name) }, 'keep')
|
||||
execute printf('let &%s = a:value', a:name)
|
||||
endfunction
|
||||
|
||||
"
|
||||
function s:restoreTempOptions(group)
|
||||
for [name, value] in items(s:tempOptionSet[a:group])
|
||||
execute printf('let &%s = value', name)
|
||||
endfor
|
||||
let s:tempOptionSet[a:group] = {}
|
||||
endfunction
|
||||
|
||||
"
|
||||
function s:getCurrentWord()
|
||||
return matchstr(s:getCurrentText(), '\k*$')
|
||||
endfunction
|
||||
|
||||
"
|
||||
function s:getCurrentText()
|
||||
return strpart(getline('.'), 0, col('.') - 1)
|
||||
endfunction
|
||||
|
||||
"
|
||||
function s:getPostText()
|
||||
return strpart(getline('.'), col('.') - 1)
|
||||
endfunction
|
||||
|
||||
"
|
||||
function s:isModifiedSinceLastCall()
|
||||
if exists('s:posLast')
|
||||
let posPrev = s:posLast
|
||||
let nLinesPrev = s:nLinesLast
|
||||
let textPrev = s:textLast
|
||||
endif
|
||||
let s:posLast = getpos('.')
|
||||
let s:nLinesLast = line('$')
|
||||
let s:textLast = getline('.')
|
||||
if !exists('posPrev')
|
||||
return 1
|
||||
elseif posPrev[1] != s:posLast[1] || nLinesPrev != s:nLinesLast
|
||||
return (posPrev[1] - s:posLast[1] == nLinesPrev - s:nLinesLast)
|
||||
elseif textPrev ==# s:textLast
|
||||
return 0
|
||||
elseif posPrev[2] > s:posLast[2]
|
||||
return 1
|
||||
elseif has('gui_running') && has('multi_byte')
|
||||
" NOTE: auto-popup causes a strange behavior when IME/XIM is working
|
||||
return posPrev[2] + 1 == s:posLast[2]
|
||||
endif
|
||||
return posPrev[2] != s:posLast[2]
|
||||
endfunction
|
||||
|
||||
"
|
||||
function s:makeCurrentBehaviorSet()
|
||||
let modified = s:isModifiedSinceLastCall()
|
||||
if exists('s:behavsCurrent[s:iBehavs].repeat') && s:behavsCurrent[s:iBehavs].repeat
|
||||
let behavs = [ s:behavsCurrent[s:iBehavs] ]
|
||||
elseif exists('s:behavsCurrent[s:iBehavs]')
|
||||
return []
|
||||
elseif modified
|
||||
let behavs = copy(exists('g:acp_behavior[&filetype]')
|
||||
\ ? g:acp_behavior[&filetype]
|
||||
\ : g:acp_behavior['*'])
|
||||
else
|
||||
return []
|
||||
endif
|
||||
let text = s:getCurrentText()
|
||||
call filter(behavs, 'call(v:val.meets, [text])')
|
||||
let s:iBehavs = 0
|
||||
if exists('s:lastUncompletable') &&
|
||||
\ stridx(s:getCurrentWord(), s:lastUncompletable.word) == 0 &&
|
||||
\ map(copy(behavs), 'v:val.command') ==# s:lastUncompletable.commands
|
||||
let behavs = []
|
||||
else
|
||||
unlet! s:lastUncompletable
|
||||
endif
|
||||
return behavs
|
||||
endfunction
|
||||
|
||||
"
|
||||
function s:feedPopup()
|
||||
" NOTE: CursorMovedI is not triggered while the popup menu is visible. And
|
||||
" it will be triggered when popup menu is disappeared.
|
||||
if s:lockCount > 0 || pumvisible() || &paste
|
||||
return ''
|
||||
endif
|
||||
if exists('s:behavsCurrent[s:iBehavs].onPopupClose')
|
||||
if !call(s:behavsCurrent[s:iBehavs].onPopupClose, [])
|
||||
call s:finishPopup(1)
|
||||
return ''
|
||||
endif
|
||||
endif
|
||||
let s:behavsCurrent = s:makeCurrentBehaviorSet()
|
||||
if empty(s:behavsCurrent)
|
||||
call s:finishPopup(1)
|
||||
return ''
|
||||
endif
|
||||
" In case of dividing words by symbols (e.g. "for(int", "ab==cd") while a
|
||||
" popup menu is visible, another popup is not available unless input <C-e>
|
||||
" or try popup once. So first completion is duplicated.
|
||||
call insert(s:behavsCurrent, s:behavsCurrent[s:iBehavs])
|
||||
call s:setTempOption(s:GROUP0, 'spell', 0)
|
||||
call s:setTempOption(s:GROUP0, 'completeopt', 'menuone' . (g:acp_completeoptPreview ? ',preview' : ''))
|
||||
call s:setTempOption(s:GROUP0, 'complete', g:acp_completeOption)
|
||||
call s:setTempOption(s:GROUP0, 'ignorecase', g:acp_ignorecaseOption)
|
||||
" NOTE: With CursorMovedI driven, Set 'lazyredraw' to avoid flickering.
|
||||
" With Mapping driven, set 'nolazyredraw' to make a popup menu visible.
|
||||
call s:setTempOption(s:GROUP0, 'lazyredraw', !g:acp_mappingDriven)
|
||||
" NOTE: 'textwidth' must be restored after <C-e>.
|
||||
call s:setTempOption(s:GROUP1, 'textwidth', 0)
|
||||
call s:setCompletefunc()
|
||||
call feedkeys(s:behavsCurrent[s:iBehavs].command . "\<C-r>=acp#onPopupPost()\<CR>", 'n')
|
||||
return '' " this function is called by <C-r>=
|
||||
endfunction
|
||||
|
||||
"
|
||||
function s:finishPopup(fGroup1)
|
||||
inoremap <C-h> <Nop> | iunmap <C-h>
|
||||
inoremap <BS> <Nop> | iunmap <BS>
|
||||
let s:behavsCurrent = []
|
||||
call s:restoreTempOptions(s:GROUP0)
|
||||
if a:fGroup1
|
||||
call s:restoreTempOptions(s:GROUP1)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
"
|
||||
function s:setCompletefunc()
|
||||
if exists('s:behavsCurrent[s:iBehavs].completefunc')
|
||||
call s:setTempOption(0, 'completefunc', s:behavsCurrent[s:iBehavs].completefunc)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
"
|
||||
function s:makeSnipmateItem(key, snip)
|
||||
if type(a:snip) == type([])
|
||||
let descriptions = map(copy(a:snip), 'v:val[0]')
|
||||
let snipFormatted = '[MULTI] ' . join(descriptions, ', ')
|
||||
else
|
||||
let snipFormatted = substitute(a:snip, '\(\n\|\s\)\+', ' ', 'g')
|
||||
endif
|
||||
return {
|
||||
\ 'word': a:key,
|
||||
\ 'menu': strpart(snipFormatted, 0, 80),
|
||||
\ }
|
||||
endfunction
|
||||
|
||||
"
|
||||
function s:getMatchingSnipItems(base)
|
||||
let key = a:base . "\n"
|
||||
if !exists('s:snipItems[key]')
|
||||
let s:snipItems[key] = items(GetSnipsInCurrentScope())
|
||||
call filter(s:snipItems[key], 'strpart(v:val[0], 0, len(a:base)) ==? a:base')
|
||||
call map(s:snipItems[key], 's:makeSnipmateItem(v:val[0], v:val[1])')
|
||||
endif
|
||||
return s:snipItems[key]
|
||||
endfunction
|
||||
|
||||
" }}}1
|
||||
"=============================================================================
|
||||
" INITIALIZATION {{{1
|
||||
|
||||
let s:GROUP0 = 0
|
||||
let s:GROUP1 = 1
|
||||
let s:lockCount = 0
|
||||
let s:behavsCurrent = []
|
||||
let s:iBehavs = 0
|
||||
let s:tempOptionSet = [{}, {}]
|
||||
let s:snipItems = {}
|
||||
|
||||
" }}}1
|
||||
"=============================================================================
|
||||
" vim: set fdm=marker:
|
@ -0,0 +1,433 @@
|
||||
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
|
||||
|
||||
fun s:RemoveSnippet()
|
||||
unl! g:snipPos s:curPos s:snipLen s:endCol s:endLine s:prevLen
|
||||
\ s:lastBuf s:oldWord
|
||||
if exists('s:update')
|
||||
unl s:startCol s:origWordLen s:update
|
||||
if exists('s:oldVars') | unl s:oldVars s:oldEndCol | endif
|
||||
endif
|
||||
aug! snipMateAutocmds
|
||||
endf
|
||||
|
||||
fun snipMate#expandSnip(snip, col)
|
||||
let lnum = line('.') | let col = a:col
|
||||
|
||||
let snippet = s:ProcessSnippet(a:snip)
|
||||
" Avoid error if eval evaluates to nothing
|
||||
if snippet == '' | return '' | endif
|
||||
|
||||
" Expand snippet onto current position with the tab stops removed
|
||||
let snipLines = split(substitute(snippet, '$\d\+\|${\d\+.\{-}}', '', 'g'), "\n", 1)
|
||||
|
||||
let line = getline(lnum)
|
||||
let afterCursor = strpart(line, col - 1)
|
||||
" Keep text after the cursor
|
||||
if afterCursor != "\t" && afterCursor != ' '
|
||||
let line = strpart(line, 0, col - 1)
|
||||
let snipLines[-1] .= afterCursor
|
||||
else
|
||||
let afterCursor = ''
|
||||
" For some reason the cursor needs to move one right after this
|
||||
if line != '' && col == 1 && &ve != 'all' && &ve != 'onemore'
|
||||
let col += 1
|
||||
endif
|
||||
endif
|
||||
|
||||
call setline(lnum, line.snipLines[0])
|
||||
|
||||
" Autoindent snippet according to previous indentation
|
||||
let indent = matchend(line, '^.\{-}\ze\(\S\|$\)') + 1
|
||||
call append(lnum, map(snipLines[1:], "'".strpart(line, 0, indent - 1)."'.v:val"))
|
||||
|
||||
" Open any folds snippet expands into
|
||||
if &fen | sil! exe lnum.','.(lnum + len(snipLines) - 1).'foldopen' | endif
|
||||
|
||||
let [g:snipPos, s:snipLen] = s:BuildTabStops(snippet, lnum, col - indent, indent)
|
||||
|
||||
if s:snipLen
|
||||
aug snipMateAutocmds
|
||||
au CursorMovedI * call s:UpdateChangedSnip(0)
|
||||
au InsertEnter * call s:UpdateChangedSnip(1)
|
||||
aug END
|
||||
let s:lastBuf = bufnr(0) " Only expand snippet while in current buffer
|
||||
let s:curPos = 0
|
||||
let s:endCol = g:snipPos[s:curPos][1]
|
||||
let s:endLine = g:snipPos[s:curPos][0]
|
||||
|
||||
call cursor(g:snipPos[s:curPos][0], g:snipPos[s:curPos][1])
|
||||
let s:prevLen = [line('$'), col('$')]
|
||||
if g:snipPos[s:curPos][2] != -1 | return s:SelectWord() | endif
|
||||
else
|
||||
unl g:snipPos s:snipLen
|
||||
" Place cursor at end of snippet if no tab stop is given
|
||||
let newlines = len(snipLines) - 1
|
||||
call cursor(lnum + newlines, indent + len(snipLines[-1]) - len(afterCursor)
|
||||
\ + (newlines ? 0: col - 1))
|
||||
endif
|
||||
return ''
|
||||
endf
|
||||
|
||||
" Prepare snippet to be processed by s:BuildTabStops
|
||||
fun s:ProcessSnippet(snip)
|
||||
let snippet = a:snip
|
||||
" Evaluate eval (`...`) expressions.
|
||||
" Using a loop here instead of a regex fixes a bug with nested "\=".
|
||||
if stridx(snippet, '`') != -1
|
||||
while match(snippet, '`.\{-}`') != -1
|
||||
let snippet = substitute(snippet, '`.\{-}`',
|
||||
\ substitute(eval(matchstr(snippet, '`\zs.\{-}\ze`')),
|
||||
\ "\n\\%$", '', ''), '')
|
||||
endw
|
||||
let snippet = substitute(snippet, "\r", "\n", 'g')
|
||||
endif
|
||||
|
||||
" Place all text after a colon in a tab stop after the tab stop
|
||||
" (e.g. "${#:foo}" becomes "${:foo}foo").
|
||||
" This helps tell the position of the tab stops later.
|
||||
let snippet = substitute(snippet, '${\d\+:\(.\{-}\)}', '&\1', 'g')
|
||||
|
||||
" Update the a:snip so that all the $# become the text after
|
||||
" the colon in their associated ${#}.
|
||||
" (e.g. "${1:foo}" turns all "$1"'s into "foo")
|
||||
let i = 1
|
||||
while stridx(snippet, '${'.i) != -1
|
||||
let s = matchstr(snippet, '${'.i.':\zs.\{-}\ze}')
|
||||
if s != ''
|
||||
let snippet = substitute(snippet, '$'.i, s.'&', 'g')
|
||||
endif
|
||||
let i += 1
|
||||
endw
|
||||
|
||||
if &et " Expand tabs to spaces if 'expandtab' is set.
|
||||
return substitute(snippet, '\t', repeat(' ', &sts ? &sts : &sw), 'g')
|
||||
endif
|
||||
return snippet
|
||||
endf
|
||||
|
||||
" Counts occurences of haystack in needle
|
||||
fun s:Count(haystack, needle)
|
||||
let counter = 0
|
||||
let index = stridx(a:haystack, a:needle)
|
||||
while index != -1
|
||||
let index = stridx(a:haystack, a:needle, index+1)
|
||||
let counter += 1
|
||||
endw
|
||||
return counter
|
||||
endf
|
||||
|
||||
" Builds a list of a list of each tab stop in the snippet containing:
|
||||
" 1.) The tab stop's line number.
|
||||
" 2.) The tab stop's column number
|
||||
" (by getting the length of the string between the last "\n" and the
|
||||
" tab stop).
|
||||
" 3.) The length of the text after the colon for the current tab stop
|
||||
" (e.g. "${1:foo}" would return 3). If there is no text, -1 is returned.
|
||||
" 4.) If the "${#:}" construct is given, another list containing all
|
||||
" the matches of "$#", to be replaced with the placeholder. This list is
|
||||
" composed the same way as the parent; the first item is the line number,
|
||||
" and the second is the column.
|
||||
fun s:BuildTabStops(snip, lnum, col, indent)
|
||||
let snipPos = []
|
||||
let i = 1
|
||||
let withoutVars = substitute(a:snip, '$\d\+', '', 'g')
|
||||
while stridx(a:snip, '${'.i) != -1
|
||||
let beforeTabStop = matchstr(withoutVars, '^.*\ze${'.i.'\D')
|
||||
let withoutOthers = substitute(withoutVars, '${\('.i.'\D\)\@!\d\+.\{-}}', '', 'g')
|
||||
|
||||
let j = i - 1
|
||||
call add(snipPos, [0, 0, -1])
|
||||
let snipPos[j][0] = a:lnum + s:Count(beforeTabStop, "\n")
|
||||
let snipPos[j][1] = a:indent + len(matchstr(withoutOthers, '.*\(\n\|^\)\zs.*\ze${'.i.'\D'))
|
||||
if snipPos[j][0] == a:lnum | let snipPos[j][1] += a:col | endif
|
||||
|
||||
" Get all $# matches in another list, if ${#:name} is given
|
||||
if stridx(withoutVars, '${'.i.':') != -1
|
||||
let snipPos[j][2] = len(matchstr(withoutVars, '${'.i.':\zs.\{-}\ze}'))
|
||||
let dots = repeat('.', snipPos[j][2])
|
||||
call add(snipPos[j], [])
|
||||
let withoutOthers = substitute(a:snip, '${\d\+.\{-}}\|$'.i.'\@!\d\+', '', 'g')
|
||||
while match(withoutOthers, '$'.i.'\(\D\|$\)') != -1
|
||||
let beforeMark = matchstr(withoutOthers, '^.\{-}\ze'.dots.'$'.i.'\(\D\|$\)')
|
||||
call add(snipPos[j][3], [0, 0])
|
||||
let snipPos[j][3][-1][0] = a:lnum + s:Count(beforeMark, "\n")
|
||||
let snipPos[j][3][-1][1] = a:indent + (snipPos[j][3][-1][0] > a:lnum
|
||||
\ ? len(matchstr(beforeMark, '.*\n\zs.*'))
|
||||
\ : a:col + len(beforeMark))
|
||||
let withoutOthers = substitute(withoutOthers, '$'.i.'\ze\(\D\|$\)', '', '')
|
||||
endw
|
||||
endif
|
||||
let i += 1
|
||||
endw
|
||||
return [snipPos, i - 1]
|
||||
endf
|
||||
|
||||
fun snipMate#jumpTabStop(backwards)
|
||||
let leftPlaceholder = exists('s:origWordLen')
|
||||
\ && s:origWordLen != g:snipPos[s:curPos][2]
|
||||
if leftPlaceholder && exists('s:oldEndCol')
|
||||
let startPlaceholder = s:oldEndCol + 1
|
||||
endif
|
||||
|
||||
if exists('s:update')
|
||||
call s:UpdatePlaceholderTabStops()
|
||||
else
|
||||
call s:UpdateTabStops()
|
||||
endif
|
||||
|
||||
" Don't reselect placeholder if it has been modified
|
||||
if leftPlaceholder && g:snipPos[s:curPos][2] != -1
|
||||
if exists('startPlaceholder')
|
||||
let g:snipPos[s:curPos][1] = startPlaceholder
|
||||
else
|
||||
let g:snipPos[s:curPos][1] = col('.')
|
||||
let g:snipPos[s:curPos][2] = 0
|
||||
endif
|
||||
endif
|
||||
|
||||
let s:curPos += a:backwards ? -1 : 1
|
||||
" Loop over the snippet when going backwards from the beginning
|
||||
if s:curPos < 0 | let s:curPos = s:snipLen - 1 | endif
|
||||
|
||||
if s:curPos == s:snipLen
|
||||
let sMode = s:endCol == g:snipPos[s:curPos-1][1]+g:snipPos[s:curPos-1][2]
|
||||
call s:RemoveSnippet()
|
||||
return sMode ? "\<tab>" : TriggerSnippet()
|
||||
endif
|
||||
|
||||
call cursor(g:snipPos[s:curPos][0], g:snipPos[s:curPos][1])
|
||||
|
||||
let s:endLine = g:snipPos[s:curPos][0]
|
||||
let s:endCol = g:snipPos[s:curPos][1]
|
||||
let s:prevLen = [line('$'), col('$')]
|
||||
|
||||
return g:snipPos[s:curPos][2] == -1 ? '' : s:SelectWord()
|
||||
endf
|
||||
|
||||
fun s:UpdatePlaceholderTabStops()
|
||||
let changeLen = s:origWordLen - g:snipPos[s:curPos][2]
|
||||
unl s:startCol s:origWordLen s:update
|
||||
if !exists('s:oldVars') | return | endif
|
||||
" Update tab stops in snippet if text has been added via "$#"
|
||||
" (e.g., in "${1:foo}bar$1${2}").
|
||||
if changeLen != 0
|
||||
let curLine = line('.')
|
||||
|
||||
for pos in g:snipPos
|
||||
if pos == g:snipPos[s:curPos] | continue | endif
|
||||
let changed = pos[0] == curLine && pos[1] > s:oldEndCol
|
||||
let changedVars = 0
|
||||
let endPlaceholder = pos[2] - 1 + pos[1]
|
||||
" Subtract changeLen from each tab stop that was after any of
|
||||
" the current tab stop's placeholders.
|
||||
for [lnum, col] in s:oldVars
|
||||
if lnum > pos[0] | break | endif
|
||||
if pos[0] == lnum
|
||||
if pos[1] > col || (pos[2] == -1 && pos[1] == col)
|
||||
let changed += 1
|
||||
elseif col < endPlaceholder
|
||||
let changedVars += 1
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
let pos[1] -= changeLen * changed
|
||||
let pos[2] -= changeLen * changedVars " Parse variables within placeholders
|
||||
" e.g., "${1:foo} ${2:$1bar}"
|
||||
|
||||
if pos[2] == -1 | continue | endif
|
||||
" Do the same to any placeholders in the other tab stops.
|
||||
for nPos in pos[3]
|
||||
let changed = nPos[0] == curLine && nPos[1] > s:oldEndCol
|
||||
for [lnum, col] in s:oldVars
|
||||
if lnum > nPos[0] | break | endif
|
||||
if nPos[0] == lnum && nPos[1] > col
|
||||
let changed += 1
|
||||
endif
|
||||
endfor
|
||||
let nPos[1] -= changeLen * changed
|
||||
endfor
|
||||
endfor
|
||||
endif
|
||||
unl s:endCol s:oldVars s:oldEndCol
|
||||
endf
|
||||
|
||||
fun s:UpdateTabStops()
|
||||
let changeLine = s:endLine - g:snipPos[s:curPos][0]
|
||||
let changeCol = s:endCol - g:snipPos[s:curPos][1]
|
||||
if exists('s:origWordLen')
|
||||
let changeCol -= s:origWordLen
|
||||
unl s:origWordLen
|
||||
endif
|
||||
let lnum = g:snipPos[s:curPos][0]
|
||||
let col = g:snipPos[s:curPos][1]
|
||||
" Update the line number of all proceeding tab stops if <cr> has
|
||||
" been inserted.
|
||||
if changeLine != 0
|
||||
let changeLine -= 1
|
||||
for pos in g:snipPos
|
||||
if pos[0] >= lnum
|
||||
if pos[0] == lnum | let pos[1] += changeCol | endif
|
||||
let pos[0] += changeLine
|
||||
endif
|
||||
if pos[2] == -1 | continue | endif
|
||||
for nPos in pos[3]
|
||||
if nPos[0] >= lnum
|
||||
if nPos[0] == lnum | let nPos[1] += changeCol | endif
|
||||
let nPos[0] += changeLine
|
||||
endif
|
||||
endfor
|
||||
endfor
|
||||
elseif changeCol != 0
|
||||
" Update the column of all proceeding tab stops if text has
|
||||
" been inserted/deleted in the current line.
|
||||
for pos in g:snipPos
|
||||
if pos[1] >= col && pos[0] == lnum
|
||||
let pos[1] += changeCol
|
||||
endif
|
||||
if pos[2] == -1 | continue | endif
|
||||
for nPos in pos[3]
|
||||
if nPos[0] > lnum | break | endif
|
||||
if nPos[0] == lnum && nPos[1] >= col
|
||||
let nPos[1] += changeCol
|
||||
endif
|
||||
endfor
|
||||
endfor
|
||||
endif
|
||||
endf
|
||||
|
||||
fun s:SelectWord()
|
||||
let s:origWordLen = g:snipPos[s:curPos][2]
|
||||
let s:oldWord = strpart(getline('.'), g:snipPos[s:curPos][1] - 1,
|
||||
\ s:origWordLen)
|
||||
let s:prevLen[1] -= s:origWordLen
|
||||
if !empty(g:snipPos[s:curPos][3])
|
||||
let s:update = 1
|
||||
let s:endCol = -1
|
||||
let s:startCol = g:snipPos[s:curPos][1] - 1
|
||||
endif
|
||||
if !s:origWordLen | return '' | endif
|
||||
let l = col('.') != 1 ? 'l' : ''
|
||||
if &sel == 'exclusive'
|
||||
return "\<esc>".l.'v'.s:origWordLen."l\<c-g>"
|
||||
endif
|
||||
return s:origWordLen == 1 ? "\<esc>".l.'gh'
|
||||
\ : "\<esc>".l.'v'.(s:origWordLen - 1)."l\<c-g>"
|
||||
endf
|
||||
|
||||
" This updates the snippet as you type when text needs to be inserted
|
||||
" into multiple places (e.g. in "${1:default text}foo$1bar$1",
|
||||
" "default text" would be highlighted, and if the user types something,
|
||||
" UpdateChangedSnip() would be called so that the text after "foo" & "bar"
|
||||
" are updated accordingly)
|
||||
"
|
||||
" It also automatically quits the snippet if the cursor is moved out of it
|
||||
" while in insert mode.
|
||||
fun s:UpdateChangedSnip(entering)
|
||||
if exists('g:snipPos') && bufnr(0) != s:lastBuf
|
||||
call s:RemoveSnippet()
|
||||
elseif exists('s:update') " If modifying a placeholder
|
||||
if !exists('s:oldVars') && s:curPos + 1 < s:snipLen
|
||||
" Save the old snippet & word length before it's updated
|
||||
" s:startCol must be saved too, in case text is added
|
||||
" before the snippet (e.g. in "foo$1${2}bar${1:foo}").
|
||||
let s:oldEndCol = s:startCol
|
||||
let s:oldVars = deepcopy(g:snipPos[s:curPos][3])
|
||||
endif
|
||||
let col = col('.') - 1
|
||||
|
||||
if s:endCol != -1
|
||||
let changeLen = col('$') - s:prevLen[1]
|
||||
let s:endCol += changeLen
|
||||
else " When being updated the first time, after leaving select mode
|
||||
if a:entering | return | endif
|
||||
let s:endCol = col - 1
|
||||
endif
|
||||
|
||||
" If the cursor moves outside the snippet, quit it
|
||||
if line('.') != g:snipPos[s:curPos][0] || col < s:startCol ||
|
||||
\ col - 1 > s:endCol
|
||||
unl! s:startCol s:origWordLen s:oldVars s:update
|
||||
return s:RemoveSnippet()
|
||||
endif
|
||||
|
||||
call s:UpdateVars()
|
||||
let s:prevLen[1] = col('$')
|
||||
elseif exists('g:snipPos')
|
||||
if !a:entering && g:snipPos[s:curPos][2] != -1
|
||||
let g:snipPos[s:curPos][2] = -2
|
||||
endif
|
||||
|
||||
let col = col('.')
|
||||
let lnum = line('.')
|
||||
let changeLine = line('$') - s:prevLen[0]
|
||||
|
||||
if lnum == s:endLine
|
||||
let s:endCol += col('$') - s:prevLen[1]
|
||||
let s:prevLen = [line('$'), col('$')]
|
||||
endif
|
||||
if changeLine != 0
|
||||
let s:endLine += changeLine
|
||||
let s:endCol = col
|
||||
endif
|
||||
|
||||
" Delete snippet if cursor moves out of it in insert mode
|
||||
if (lnum == s:endLine && (col > s:endCol || col < g:snipPos[s:curPos][1]))
|
||||
\ || lnum > s:endLine || lnum < g:snipPos[s:curPos][0]
|
||||
call s:RemoveSnippet()
|
||||
endif
|
||||
endif
|
||||
endf
|
||||
|
||||
" This updates the variables in a snippet when a placeholder has been edited.
|
||||
" (e.g., each "$1" in "${1:foo} $1bar $1bar")
|
||||
fun s:UpdateVars()
|
||||
let newWordLen = s:endCol - s:startCol + 1
|
||||
let newWord = strpart(getline('.'), s:startCol, newWordLen)
|
||||
if newWord == s:oldWord || empty(g:snipPos[s:curPos][3])
|
||||
return
|
||||
endif
|
||||
|
||||
let changeLen = g:snipPos[s:curPos][2] - newWordLen
|
||||
let curLine = line('.')
|
||||
let startCol = col('.')
|
||||
let oldStartSnip = s:startCol
|
||||
let updateTabStops = changeLen != 0
|
||||
let i = 0
|
||||
|
||||
for [lnum, col] in g:snipPos[s:curPos][3]
|
||||
if updateTabStops
|
||||
let start = s:startCol
|
||||
if lnum == curLine && col <= start
|
||||
let s:startCol -= changeLen
|
||||
let s:endCol -= changeLen
|
||||
endif
|
||||
for nPos in g:snipPos[s:curPos][3][(i):]
|
||||
" This list is in ascending order, so quit if we've gone too far.
|
||||
if nPos[0] > lnum | break | endif
|
||||
if nPos[0] == lnum && nPos[1] > col
|
||||
let nPos[1] -= changeLen
|
||||
endif
|
||||
endfor
|
||||
if lnum == curLine && col > start
|
||||
let col -= changeLen
|
||||
let g:snipPos[s:curPos][3][i][1] = col
|
||||
endif
|
||||
let i += 1
|
||||
endif
|
||||
|
||||
" "Very nomagic" is used here to allow special characters.
|
||||
call setline(lnum, substitute(getline(lnum), '\%'.col.'c\V'.
|
||||
\ escape(s:oldWord, '\'), escape(newWord, '\&'), ''))
|
||||
endfor
|
||||
if oldStartSnip != s:startCol
|
||||
call cursor(0, startCol + s:startCol - oldStartSnip)
|
||||
endif
|
||||
|
||||
let s:oldWord = newWord
|
||||
let g:snipPos[s:curPos][2] = newWordLen
|
||||
endf
|
||||
" vim:noet:sw=4:ts=4:ft=vim
|
@ -0,0 +1,204 @@
|
||||
#===============================================================================
|
||||
#
|
||||
# Filename: Makefile
|
||||
# Description:
|
||||
#
|
||||
# Usage: make (generate executable )
|
||||
# make clean (remove objects, executable, prerequisits )
|
||||
# make tarball (generate compressed archive )
|
||||
# make zip (generate compressed archive )
|
||||
#
|
||||
# Version: 1.0
|
||||
# Created:
|
||||
# Revision: ---
|
||||
#
|
||||
# Author:
|
||||
# Company:
|
||||
# Email:
|
||||
#
|
||||
# Notes: This is a GNU make (gmake) makefile.
|
||||
# C extension : c
|
||||
# C++ extensions : cc cpp C
|
||||
# C and C++ sources can be mixed.
|
||||
# Prerequisites are generated automatically; makedepend is not
|
||||
# needed (see documentation for GNU make Version 3.80, July 2002,
|
||||
# section 4.13). The utility sed is used.
|
||||
#========================================== makefile template version 1.8 ======
|
||||
|
||||
# DEBUG can be set to YES to include debugging info, or NO otherwise
|
||||
DEBUG := YES
|
||||
|
||||
# PROFILE can be set to YES to include profiling info, or NO otherwise
|
||||
PROFILE := NO
|
||||
|
||||
# ------------ name of the executable ----------------------------------------
|
||||
EXECUTABLE := main
|
||||
|
||||
# ------------ list of all source files --------------------------------------
|
||||
SOURCES := main.c
|
||||
|
||||
# ------------ compiler ------------------------------------------------------
|
||||
CC := gcc
|
||||
CXX := g++
|
||||
|
||||
# ------------ compiler flags ------------------------------------------------
|
||||
DEBUG_CFLAGS := -Wall -ansi -pedantic -O0 -g
|
||||
RELEASE_CFLAGS := -Wall -ansi -pedantic -O3
|
||||
|
||||
# ------------ linker flags --------------------------------------------------
|
||||
DEBUG_LDFLAGS := -g
|
||||
RELEASE_LDFLAGS :=
|
||||
|
||||
ifeq (YES, ${DEBUG})
|
||||
CFLAGS := ${DEBUG_CFLAGS}
|
||||
CXXFLAGS := ${DEBUG_CXXFLAGS}
|
||||
LDFLAGS := ${DEBUG_LDFLAGS}
|
||||
else
|
||||
CFLAGS := ${RELEASE_CFLAGS}
|
||||
CXXFLAGS := ${RELEASE_CXXFLAGS}
|
||||
LDFLAGS := ${RELEASE_LDFLAGS}
|
||||
endif
|
||||
|
||||
ifeq (YES, ${PROFILE})
|
||||
CFLAGS := ${CFLAGS} -pg -O3
|
||||
CXXFLAGS := ${CXXFLAGS} -pg -O3
|
||||
LDFLAGS := ${LDFLAGS} -pg
|
||||
endif
|
||||
|
||||
# ------------ additional system include directories -------------------------
|
||||
GLOBAL_INC_DIR =
|
||||
|
||||
# ------------ private include directories -----------------------------------
|
||||
LOCAL_INC_DIR = $(HOME)/include
|
||||
|
||||
# ------------ system libraries (e.g. -lm ) ---------------------------------
|
||||
SYS_LIBS = -lm
|
||||
|
||||
# ------------ additional system library directories -------------------------
|
||||
GLOBAL_LIB_DIR =
|
||||
|
||||
# ------------ additional system libraries -----------------------------------
|
||||
GLOBAL_LIBS =
|
||||
|
||||
# ------------ private library directories -----------------------------------
|
||||
LOCAL_LIB_DIR = $(HOME)/lib
|
||||
|
||||
# ------------ private libraries (e.g. libxyz.a ) ---------------------------
|
||||
LOCAL_LIBS =
|
||||
|
||||
# ------------ archive generation ---------------------------------------------
|
||||
TARBALL_EXCLUDE = *.{o,gz,zip}
|
||||
ZIP_EXCLUDE = *.{o,gz,zip}
|
||||
|
||||
# ------------ run executable out of this Makefile (yes/no) -----------------
|
||||
# ------------ cmd line parameters for this executable -----------------------
|
||||
EXE_START = no
|
||||
EXE_CMDLINE =
|
||||
|
||||
#===============================================================================
|
||||
# The following statements usually need not to be changed
|
||||
#===============================================================================
|
||||
|
||||
C_SOURCES = $(filter %.c, $(SOURCES))
|
||||
CPP_SOURCES = $(filter-out %.c, $(SOURCES))
|
||||
ALL_INC_DIR = $(addprefix -I, $(LOCAL_INC_DIR) $(GLOBAL_INC_DIR))
|
||||
ALL_LIB_DIR = $(addprefix -L, $(LOCAL_LIB_DIR) $(GLOBAL_LIB_DIR))
|
||||
GLOBAL_LIBSS = $(addprefix $(GLOBAL_LIB_DIR)/, $(GLOBAL_LIBS))
|
||||
LOCAL_LIBSS = $(addprefix $(LOCAL_LIB_DIR)/, $(LOCAL_LIBS))
|
||||
ALL_CFLAGS = $(CFLAGS) $(ALL_INC_DIR)
|
||||
ALL_LFLAGS = $(LDFLAGS) $(ALL_LIB_DIR)
|
||||
BASENAMES = $(basename $(SOURCES))
|
||||
|
||||
# ------------ generate the names of the object files ------------------------
|
||||
OBJECTS = $(addsuffix .o,$(BASENAMES))
|
||||
|
||||
# ------------ generate the names of the hidden prerequisite files -----------
|
||||
PREREQUISITES = $(addprefix .,$(addsuffix .d,$(BASENAMES)))
|
||||
|
||||
# ------------ make the executable (the default goal) ------------------------
|
||||
$(EXECUTABLE): $(OBJECTS)
|
||||
ifeq ($(strip $(CPP_SOURCES)),)
|
||||
$(CC) $(ALL_LFLAGS) -o $(EXECUTABLE) $(OBJECTS) $(LOCAL_LIBSS) $(GLOBAL_LIBSS) $(SYS_LIBS)
|
||||
else
|
||||
$(CXX) $(ALL_LFLAGS) -o $(EXECUTABLE) $(OBJECTS) $(LOCAL_LIBSS) $(GLOBAL_LIBSS) $(SYS_LIBS)
|
||||
endif
|
||||
ifeq ($(EXE_START),yes)
|
||||
./$(EXECUTABLE) $(EXE_CMDLINE)
|
||||
endif
|
||||
|
||||
# ------------ include the automatically generated prerequisites -------------
|
||||
# ------------ if target is not clean, tarball or zip -------------
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
ifneq ($(MAKECMDGOALS),tarball)
|
||||
ifneq ($(MAKECMDGOALS),zip)
|
||||
include $(PREREQUISITES)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# ------------ make the objects ----------------------------------------------
|
||||
%.o: %.c
|
||||
$(CC) -c $(ALL_CFLAGS) $<
|
||||
|
||||
%.o: %.cc
|
||||
$(CXX) -c $(ALL_CFLAGS) $<
|
||||
|
||||
%.o: %.cpp
|
||||
$(CXX) -c $(ALL_CFLAGS) $<
|
||||
|
||||
%.o: %.C
|
||||
$(CXX) -c $(ALL_CFLAGS) $<
|
||||
|
||||
# ------------ make the prerequisites ----------------------------------------
|
||||
#
|
||||
.%.d: %.c
|
||||
@$(make-prerequisite-c)
|
||||
|
||||
.%.d: %.cc
|
||||
@$(make-prerequisite-cplusplus)
|
||||
|
||||
.%.d: %.cpp
|
||||
@$(make-prerequisite-cplusplus)
|
||||
|
||||
.%.d: %.C
|
||||
@$(make-prerequisite-cplusplus)
|
||||
|
||||
# canned command sequences
|
||||
# echoing of the sed command is suppressed by the leading @
|
||||
|
||||
define make-prerequisite-c
|
||||
@$(CC) -MM $(ALL_CFLAGS) $< > $@.$$$$; \
|
||||
sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' < $@.$$$$ > $@; \
|
||||
rm -f $@.$$$$;
|
||||
endef
|
||||
|
||||
define make-prerequisite-cplusplus
|
||||
@$(CXX) -MM $(ALL_CFLAGS) $< > $@.$$$$; \
|
||||
sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' < $@.$$$$ > $@; \
|
||||
rm -f $@.$$$$;
|
||||
endef
|
||||
|
||||
# ------------ remove generated files ----------------------------------------
|
||||
# ------------ remove hidden backup files ------------------------------------
|
||||
clean:
|
||||
-rm --force $(EXECUTABLE) $(OBJECTS) $(PREREQUISITES) *~
|
||||
|
||||
# ------------ tarball generation ----------------------------------------------
|
||||
tarball:
|
||||
@lokaldir=`pwd`; lokaldir=$${lokaldir##*/}; \
|
||||
rm --force $$lokaldir.tar.gz; \
|
||||
tar --exclude=$(TARBALL_EXCLUDE) \
|
||||
--create \
|
||||
--gzip \
|
||||
--verbose \
|
||||
--file $$lokaldir.tar.gz *
|
||||
|
||||
# ------------ zip -------------------------------------------------------------
|
||||
zip:
|
||||
@lokaldir=`pwd`; lokaldir=$${lokaldir##*/}; \
|
||||
zip -r $$lokaldir.zip * -x $(ZIP_EXCLUDE)
|
||||
|
||||
.PHONY: clean tarball zip
|
||||
|
||||
# ==============================================================================
|
||||
# vim: set tabstop=2: set shiftwidth=2:
|
@ -0,0 +1,70 @@
|
||||
#===============================================================================
|
||||
#
|
||||
# File: Makefile
|
||||
# Description:
|
||||
#
|
||||
# Usage: make (generate executable(s) )
|
||||
# make clean (remove objects, executables, prerequisits )
|
||||
# make tarball (generate compressed archive )
|
||||
# make zip (generate compressed archive )
|
||||
#
|
||||
# Author: Dr.-Ing. Fritz Mehner
|
||||
# Email: mehner@mfh-iserlohn.de
|
||||
# Created:
|
||||
#
|
||||
#===============================================================================
|
||||
|
||||
|
||||
CC = gcc
|
||||
CCP = g++
|
||||
CFLAGS = -c -g -Wall
|
||||
LFLAGS = -g
|
||||
SYS_LIBS = -lm
|
||||
TARBALL_EXCLUDE = "*.{o,gz,zip}"
|
||||
ZIP_EXCLUDE = *.o *.gz *.zip
|
||||
|
||||
TARGETS = target_1 target_2
|
||||
|
||||
#---------- targets --------------------------------------
|
||||
all: $(TARGETS)
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) $*.c
|
||||
|
||||
%.o: %.cc
|
||||
$(CCP) $(CFLAGS) $*.cc
|
||||
|
||||
#---------- target 1 -------------------------------------
|
||||
# C target
|
||||
target_1: target_1.o
|
||||
$(CC) $(LFLAGS) -o $@ $@.o $(SYS_LIBS)
|
||||
|
||||
#---------- target 2 -------------------------------------
|
||||
# C++ target
|
||||
target_2: target_2.o
|
||||
$(CCP) $(LFLAGS) -o $@ $@.o $(SYS_LIBS)
|
||||
|
||||
|
||||
#---------- target 3 -------------------------------------
|
||||
|
||||
|
||||
|
||||
#---------- tarball --------------------------------------
|
||||
tarball:
|
||||
lokaldir=`pwd`; lokaldir=$${lokaldir##*/}; \
|
||||
rm --force $$lokaldir.tar.gz; \
|
||||
tar --exclude=$(TARBALL_EXCLUDE) \
|
||||
--create \
|
||||
--gzip \
|
||||
--verbose \
|
||||
--file $$lokaldir.tar.gz *
|
||||
|
||||
#---------- zip ------------------------------------------
|
||||
zip:
|
||||
lokaldir=`pwd`; lokaldir=$${lokaldir##*/}; \
|
||||
zip -r $$lokaldir.zip * -x $(ZIP_EXCLUDE)
|
||||
|
||||
#---------- clear up -------------------------------------
|
||||
clean:
|
||||
rm --force $(EXECUTABLE) $(OBJECTS) $(PREREQUISITES)
|
||||
|
@ -0,0 +1,36 @@
|
||||
|
||||
/*
|
||||
* === FUNCTION ======================================================================
|
||||
* Name: calloc_double_matrix
|
||||
* Description: Allocate a dynamic double-matrix of size rows*columns;
|
||||
* return a pointer.
|
||||
* =====================================================================================
|
||||
*/
|
||||
double**
|
||||
calloc_double_matrix ( int rows, int columns )
|
||||
{
|
||||
int i;
|
||||
double **m;
|
||||
m = calloc ( rows, sizeof(double*) ); /* allocate pointer array */
|
||||
assert( m != NULL); /* abort if allocation failed */
|
||||
*m = calloc ( rows*columns, sizeof(double) );/* allocate data array */
|
||||
assert(*m != NULL); /* abort if allocation failed */
|
||||
for ( i=1; i<rows; i+=1 ) /* set pointers */
|
||||
m[i] = m[i-1] + columns;
|
||||
return m;
|
||||
} /* ---------- end of function calloc_double_matrix ---------- */
|
||||
|
||||
/*
|
||||
* === FUNCTION ======================================================================
|
||||
* Name: free_matrix_double
|
||||
* Description: Free a dynamic double-matrix.
|
||||
* =====================================================================================
|
||||
*/
|
||||
void
|
||||
free_double_matrix ( double **m )
|
||||
{
|
||||
free(*m); /* free data array */
|
||||
free( m); /* free pointer array */
|
||||
return ;
|
||||
} /* ---------- end of function free_double_matrix ---------- */
|
||||
|
@ -0,0 +1,35 @@
|
||||
|
||||
/*
|
||||
* === FUNCTION ======================================================================
|
||||
* Name: calloc_int_matrix
|
||||
* Description: Allocate a dynamic int-matrix of size rows*columns; return a pointer.
|
||||
* =====================================================================================
|
||||
*/
|
||||
int**
|
||||
calloc_int_matrix ( int rows, int columns )
|
||||
{
|
||||
int i;
|
||||
int **m;
|
||||
m = calloc ( rows, sizeof(int*) ); /* allocate pointer array */
|
||||
assert( m != NULL ); /* abort if allocation failed */
|
||||
*m = calloc ( rows*columns, sizeof(int) ); /* allocate data array */
|
||||
assert(*m != NULL ); /* abort if allocation failed */
|
||||
for ( i=1; i<rows; i+=1 ) /* set pointers */
|
||||
m[i] = m[i-1] + columns;
|
||||
return m;
|
||||
} /* ---------- end of function calloc_int_matrix ---------- */
|
||||
|
||||
/*
|
||||
* === FUNCTION ======================================================================
|
||||
* Name: free_int_matrix
|
||||
* Description: Free a dynamic int-matrix.
|
||||
* =====================================================================================
|
||||
*/
|
||||
void
|
||||
free_int_matrix ( int **m )
|
||||
{
|
||||
free(*m); /* free data array */
|
||||
free( m); /* free pointer array */
|
||||
return ;
|
||||
} /* ---------- end of function free_int_matrix ---------- */
|
||||
|
@ -0,0 +1,20 @@
|
||||
#include <errno.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
/*
|
||||
* === FUNCTION ======================================================================
|
||||
* Name: main
|
||||
* Description: main function
|
||||
* =====================================================================================
|
||||
*/
|
||||
int
|
||||
main ( int argc, char *argv[] )
|
||||
{
|
||||
printf ("\nProgram %s\n\n", argv[0] );
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
} /* ---------- end of function main ---------- */
|
||||
|
@ -0,0 +1,19 @@
|
||||
#include <cstdlib>
|
||||
#include <fstream>
|
||||
#include <iomanip>
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
// === FUNCTION ======================================================================
|
||||
// Name: main
|
||||
// Description: main function
|
||||
// =====================================================================================
|
||||
int
|
||||
main ( int argc, char *argv[] )
|
||||
{
|
||||
cout << "\nProgram " << argv[0] << endl << endl;
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
} // ---------- end of function main ----------
|
||||
|
@ -0,0 +1,29 @@
|
||||
|
||||
// === FUNCTION ======================================================================
|
||||
// Name: print_array
|
||||
// Description: Print an array with one dimension.
|
||||
// Use
|
||||
// print_array<T,w>( *matrix, n1*n2, n2, "matrix" );
|
||||
// for
|
||||
// T matrix[n1][n2];
|
||||
// =====================================================================================
|
||||
template <class T, int width>
|
||||
void print_array ( T *array, // array to print
|
||||
int n, // number of elements to print
|
||||
int nrow, // number of elements per row
|
||||
string arrayname // array name
|
||||
)
|
||||
{
|
||||
string line(" index | content\n ------+-");
|
||||
|
||||
cout << "\n\n array \"" << arrayname << "\", length " << n << endl << endl;
|
||||
cout << line.append(width*nrow, '-');
|
||||
for ( int i=0; i<n; i+=1 ) {
|
||||
if( i%nrow == 0 )
|
||||
cout << endl << setw(6) << i << " | ";
|
||||
cout << "" << setw(width) << fixed << setprecision(2) << array[i];
|
||||
}
|
||||
cout << endl << endl;
|
||||
return ;
|
||||
} // ---------- end of function print_double_array ----------
|
||||
|
@ -0,0 +1,34 @@
|
||||
|
||||
/*
|
||||
* === FUNCTION ======================================================================
|
||||
* Name: print_double_array
|
||||
* Description: Print a double-array with one dimension.
|
||||
* Use
|
||||
* print_int_array( *matrix, n1*n2, n2, "matrix" );
|
||||
* for
|
||||
* double matrix[n1][n2];
|
||||
* =====================================================================================
|
||||
*/
|
||||
static void
|
||||
print_double_array ( double array[], /* array to print */
|
||||
int n, /* number of elements to print */
|
||||
int nrow, /* number of elements per row */
|
||||
char *arrayname /* array name */
|
||||
)
|
||||
{
|
||||
int i;
|
||||
printf ("\n\n array \"%s\", length %d\n", arrayname, n );
|
||||
printf ("\n index | content\n" );
|
||||
printf ( " ------+-" );
|
||||
for ( i = 0; i < nrow; i += 1 )
|
||||
printf ( "---------" );
|
||||
for ( i=0; i<n; i+=1 )
|
||||
{
|
||||
if( i%nrow == 0 )
|
||||
printf ("\n%6d | ", i );
|
||||
printf (" %8.2f", array[i] );
|
||||
}
|
||||
printf ("\n\n");
|
||||
return ;
|
||||
} /* ---------- end of function print_double_array ---------- */
|
||||
|
@ -0,0 +1,34 @@
|
||||
|
||||
/*
|
||||
* === FUNCTION ======================================================================
|
||||
* Name: print_int_array
|
||||
* Description: Print an int-array with one dimension.
|
||||
* Use
|
||||
* print_int_array( *matrix, n1*n2, n2, "matrix" );
|
||||
* for
|
||||
* int matrix[n1][n2];
|
||||
* =====================================================================================
|
||||
*/
|
||||
static void
|
||||
print_int_array ( int array[], /* array to print */
|
||||
int n, /* number of elements to print */
|
||||
int nrow, /* number of elements per row */
|
||||
char *arrayname /* array name */
|
||||
)
|
||||
{
|
||||
int i;
|
||||
printf ("\n\n array \"%s\", length %d\n", arrayname, n );
|
||||
printf ("\n index | content\n" );
|
||||
printf ( " ------+-" );
|
||||
for ( i = 0; i < nrow; i += 1 )
|
||||
printf ( "-------" );
|
||||
for ( i=0; i<n; i+=1 )
|
||||
{
|
||||
if( i%nrow == 0 )
|
||||
printf ("\n%6d | ", i );
|
||||
printf (" %6d", array[i] );
|
||||
}
|
||||
printf ("\n\n");
|
||||
return ;
|
||||
} /* ---------- end of function print_int_array ---------- */
|
||||
|
@ -0,0 +1,410 @@
|
||||
================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.10
|
||||
================================================================================
|
||||
- The plugin now handles different template styles without editing and
|
||||
reloading the main template file.
|
||||
- The number of template styles is not limited.
|
||||
- New hotkey and ex-command to switch template styles.
|
||||
- Template styles can automatically be related to file extensions.
|
||||
- indent(1) errors will be presented in a quickfix error window.
|
||||
- Comment alignment improved.
|
||||
- Minor improvements.
|
||||
|
||||
================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.9
|
||||
================================================================================
|
||||
+ Two additional hotkeys (+ ex commands) for preprocessor statements.
|
||||
+ Compile-link-run: improved error detection.
|
||||
+ Menu Run: hardcopy can print any buffer.
|
||||
+ Several minor improvements and bugfixes.
|
||||
|
||||
================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.8
|
||||
================================================================================
|
||||
+ Hotkeys are shown in the menus.
|
||||
+ File browser for code snippets and templates choosable (2 global variables).
|
||||
+ Two new hotkeys: include file description (implementation, header).
|
||||
+ New menu item: namespace alias
|
||||
+ Bugfix: wrapper script for use of a xterm could not handle parameters containing blanks.
|
||||
+ Several minor improvements.
|
||||
|
||||
================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.7
|
||||
================================================================================
|
||||
+ 4 new hotkeys : insert file section comments (C/C++/H), special comments,
|
||||
keyword comments.
|
||||
+ Adjusting end-of-line comment adjustment improved.
|
||||
|
||||
================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.6
|
||||
================================================================================
|
||||
+ Jump targets (templates) and mapping Ctrl-j can be switched off.
|
||||
+ Yet unused jump targets will be highlighted after a file is opened.
|
||||
+ Statements menu: else block (key mapping \se).
|
||||
+ Handling of <SPLIT> improved (templates).
|
||||
+ Minor improvements.
|
||||
|
||||
================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.5
|
||||
================================================================================
|
||||
+ Additional plugin-tags (jump targets in templates): <+text+>, <-text->.
|
||||
+ Additional mapping Ctrl-j : jump to these new targets.
|
||||
+ Template-file: additional macro |STYLE| and IF-ENDIF-construct to easily
|
||||
choose between sets of templates.
|
||||
+ Additional mapping: auto-complete classical C comment (also multi-line).
|
||||
+ Additional mapping: auto-complete open block starting with {<CR> .
|
||||
+ Visual mode for date and time insertion (menu 'Comments').
|
||||
+ Visual mode for tags (submenu 'Comments->tags (plugin)').
|
||||
+ Bugfix: hotkey \ica not working
|
||||
+ Bugfix: hotkey Shift-F2 for the alternate-plugin disappeared.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.4
|
||||
=======================================================================================
|
||||
+ New hotkey \+co inserts ' cout << << endl;'
|
||||
+ New menu item C++-menu: 'cout' replaces 'cout variable' and 'cout string'.
|
||||
+ Hotkey \c/ removed ( \cc does the same).
|
||||
+ Bugfix: after an unsuccessful compilation screen sometimes garbled.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.3
|
||||
=======================================================================================
|
||||
+ Insertions work properly when folding is used.
|
||||
+ Menu items Idioms->for(...) : type declaration for loop variable possible (tab completion).
|
||||
+ Specification of command line arguments (Run->cmd. line arg.): filename completion active.
|
||||
+ New main menu item 'show manual' (hotkey \hm): read manual for word under cursor.
|
||||
+ One hotkey renamed: \h -> \hp (help plugin)
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.2.1
|
||||
=======================================================================================
|
||||
+ Bugfix: stray characters whith three dialogs
|
||||
+ Bugfix: Missing parameter in 2 internal function calls
|
||||
+ Menu items 'Snippets->edit local/global templates' start an file browser (convenience).
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.2
|
||||
=======================================================================================
|
||||
+ Superfluous control characters for mode switching (menus, hotkeys) removed. Caused beeps.
|
||||
+ Template files (local/global) can be opened from the snippet menu.
|
||||
+ Three new preprocessor statements.
|
||||
+ v-mode for RTTI-entries.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.1
|
||||
=======================================================================================
|
||||
+ Definition and implementation of classes have now different templates and menu entries.
|
||||
+ Accessor methods (get/set) can be generated.
|
||||
+ New templates: everything other than language keywords comes from a template
|
||||
(and is user changeable).
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.0.5
|
||||
=======================================================================================
|
||||
+ Bugfix: on a few systems doubling of path components in the run command (F9).
|
||||
Skip this upgrade if you do not have this problem.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.0.4
|
||||
=======================================================================================
|
||||
+ Format for the macros |DATE|, |TIME|, and |YEAR| can be defined by the user.
|
||||
+ Help text improved.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.0.3
|
||||
=======================================================================================
|
||||
+ Code snippets can now be used in the console mode (Vim without GUI).
|
||||
+ Bugfix: Possible conflict with 'indent' removed when inserting templates.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.0.2
|
||||
=======================================================================================
|
||||
+ Bugfix: Prototype picker did not alway delete no longer used prototypes.
|
||||
+ Bugfix: Prototype picker removed template specializations from parameter lists.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.0.1
|
||||
=======================================================================================
|
||||
+ Bugfix: autocmd setting can influence autocmd settings of OTHER plugins.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 5.0
|
||||
=======================================================================================
|
||||
+ Completely new template system. Now every menu item is user definable.
|
||||
+ Changes to allow a system-wide installation.
|
||||
+ A few hotkeys added and renamed.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 4.6.1
|
||||
=======================================================================================
|
||||
+ New global variable to control the filetype of *.h header files (default is now 'cpp').
|
||||
+ Bugfix: properly resetting 'compiler' after using make, splint, and CodeCheck.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 4.6
|
||||
=======================================================================================
|
||||
+ New insert mode mappings (comments, statements, preprocessing, idioms, C++).
|
||||
+ Some mappings renamed (easier to remember).
|
||||
+ New tag (basename of a file reduced to characters allowed in names).
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 4.5
|
||||
=======================================================================================
|
||||
+ New menu item and hotkey for the (re)alignement of end-of-line comments.
|
||||
+ Hotkey \cn removed. Only one menu item for end-of-line comments left.
|
||||
+ Changed hotkeys: \ce -> \cl and \cl -> \cs .
|
||||
+ Three new tags (giving the basename of a file) for writing template files.
|
||||
+ Prototype picker handles template methods.
|
||||
+ Bugfix: splint works now under Windows.
|
||||
+ Minor improvements.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 4.4
|
||||
=======================================================================================
|
||||
+ Plugin directories rearranged.
|
||||
+ main- and for-idiom have a visual mode now.
|
||||
+ Four new commands (command line) to control the comment style.
|
||||
+ Comment style (C/C++) can automatically follow the filetype.
|
||||
+ Bugfix: empty new file after removing the header template can't be closed.
|
||||
+ Bugfix : Tools entry missing when root menu not shown from the start.
|
||||
+ Minor improvements.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 4.3
|
||||
=======================================================================================
|
||||
+ CodeCheck (TM) integrated (source code analysing tool).
|
||||
+ New key mappings for preprocessor statements.
|
||||
+ New preprocessor menu.
|
||||
+ Bugfix: indent under Windows.
|
||||
+ Minor improvements.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 4.2.1
|
||||
=======================================================================================
|
||||
+ Bugfix: change needed for some menu names after patch 7.0.054 .
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 4.2
|
||||
=======================================================================================
|
||||
+ Setting the starting column for trailing comments improved.
|
||||
+ Small bug in block uncommenting fixed.
|
||||
+ Mac OS X : circumvent a Vim bug which caused a crash when loading plugin version 4.1.
|
||||
+ File syntax/c.vim removed (but see help in csupport.txt).
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 4.1
|
||||
=======================================================================================
|
||||
+ A complete switch statement can be made from a list of labels.
|
||||
+ Additional cases can be made from a list of labels.
|
||||
+ Small bug in line end commenting fixed.
|
||||
+ Some minor improvements.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 4.0
|
||||
=======================================================================================
|
||||
|
||||
+ Kernighan & Ritchie style for block statements can be enabled.
|
||||
+ Changes to make it compatible with Vim 7.
|
||||
+ Set C/C++ file type for source files which should not be preprocessed (*.i, *.ii).
|
||||
+ Some minor improvements.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.11
|
||||
=======================================================================================
|
||||
|
||||
+ Hotkeys and an accompanying reference card added.
|
||||
+ Preparation for syntax based folding.
|
||||
+ Some minor improvements.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.10
|
||||
=======================================================================================
|
||||
|
||||
+ Remove "#if 0 ... #endif" from the inside.
|
||||
+ Change C comments to C++ comments and vice versa.
|
||||
+ try..catch / catch / catch(...) now can be set surround a marked area.
|
||||
+ Prototype picking improved (for C++).
|
||||
+ A hardcopy shows the localized date and time in the header line.
|
||||
+ New help menu entry in the main menu of this plugin (shows the plugin documentation).
|
||||
+ Switch between corresponding source and header files with <S-F2> if the plugin a.vim
|
||||
is present.
|
||||
+ Plugin can be used with autocompletion for (, [, and { .
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.9.1
|
||||
=======================================================================================
|
||||
|
||||
+ Doubling of file header for new c- and h-files under Windows fixed (Thanks to
|
||||
Fabricio C A Oliveira).
|
||||
+ Tiny bug in the file open idioms fixed.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.9
|
||||
=======================================================================================
|
||||
|
||||
+ Formatter 'indent' integrated.
|
||||
+ Bugfix in the automatic header insertion.
|
||||
+ Assert idiom added.
|
||||
+ #if 0 ... #endif statement for blocking out code added.
|
||||
+ Minor stylistic improvements in some idioms.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.8.2
|
||||
=======================================================================================
|
||||
|
||||
+ Screen update problem solved: color inversion under FC4 (Thanks to Bernie Barton).
|
||||
+ RTTI menu : additional v-mode.
|
||||
+ Statement menu and C++ menu rearranged.
|
||||
+ Include guard : name generation improved.
|
||||
+ File header templates will be included for additional file extensions (cp, cxx, c++, ...).
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.8.1
|
||||
=======================================================================================
|
||||
|
||||
+ More C++ output manipulators, manipulator insertion more intuitive.
|
||||
+ Output into buffer: cursor goes to top of file.
|
||||
+ Makefile template improved (code snippet).
|
||||
+ Some internal improvements.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.8
|
||||
=======================================================================================
|
||||
|
||||
+ Windows support. Most features are now available under Windows.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.7.2
|
||||
=======================================================================================
|
||||
|
||||
+ Run buffer through splint (A tool for statically checking C programs; see
|
||||
http://www.splint.org). An error window will be opened; quickfix commands can be used.
|
||||
+ Set buffer related command line arguments for splint.
|
||||
+ Line end comments start in a fixed column (can be set from the menu).
|
||||
+ Spaces in path names and file names are now possible.
|
||||
+ Template files and snippet files are no longer kept in the list of alternate files.
|
||||
+ Some minor improvements.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.7.1
|
||||
=======================================================================================
|
||||
|
||||
+ Bug fixed (command line arguments not passed to the executable).
|
||||
+ File extension for executables can be set.
|
||||
+ Minor improvements.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.7
|
||||
=======================================================================================
|
||||
|
||||
+ Running a program:
|
||||
(1) Run program from the gVim command line.
|
||||
(2) Run program and direct the output into a window with name "C-Output".
|
||||
This buffer and its content will disappear when closing the window.
|
||||
The buffer is reused when still open.
|
||||
(3) Run program in an xterm (adjustable).
|
||||
+ Command line arguments are now buffer related (each buffer can have its own arguments).
|
||||
+ Code snippets can be protected from being indented during insertion.
|
||||
+ Picked up prototypes will be deleted after insertion.
|
||||
+ A code snippet with the file name extension "ni" or "noindent" will not be
|
||||
indented on insertion.
|
||||
+ for- and calloc-/malloc-idioms improved.
|
||||
+ Bug fixed (word list handling).
|
||||
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.6
|
||||
=======================================================================================
|
||||
|
||||
+ Installation simplified.
|
||||
+ for-loop-idiom asks for control variable, initial value, ...
|
||||
+ malloc-idiom asks for pointer variable and size.
|
||||
+ Toggling the comment style works correct again.
|
||||
+ Empty error windows will be closed.
|
||||
+ Prototype picker removes trailing parts of the function body if marked.
|
||||
+ The dialog windows (GUI) have been replaced by more flexible command line inputs.
|
||||
+ The undocumented and unnecessary hot key F12 has been removed.
|
||||
+ Extension to ctags + taglist shows makefile targets and qmake targets.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.5
|
||||
=======================================================================================
|
||||
|
||||
+ Aligned line end comments for consecutive lines.
|
||||
+ Improved prototype picker removes comments.
|
||||
+ Picked up prototypes can be shown.
|
||||
+ Uncomment more than one block at once.
|
||||
+ 3 new idioms.
|
||||
+ Help file improved .
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.4
|
||||
=======================================================================================
|
||||
|
||||
+ Two new global variables: C_Dictionary_File, C_MenuHeader .
|
||||
+ The preprocessor statements #if... and the function idiom include marked
|
||||
lines when invoked in visual mode.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.3
|
||||
=======================================================================================
|
||||
|
||||
+ The C/C++ root menu can be disabled.
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.2
|
||||
=======================================================================================
|
||||
|
||||
+ Only one C/C++ entry in the gVim root menu.
|
||||
+ All hotkeys are only defined for C/C++ files (file type plugin added).
|
||||
+ The following constructs are now read as templates from files:
|
||||
class, class using new,
|
||||
template class, template class using new,
|
||||
error class
|
||||
+ Install script added.
|
||||
+ Customization improved.
|
||||
+ Documentation improved (help file added).
|
||||
+ Bug fix (template file handling)
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.1
|
||||
=======================================================================================
|
||||
|
||||
+ When the comment style "C" is active the menu entry "Comments.code->comment"
|
||||
turns a marked region in one multiline C-comment.
|
||||
+ The menu entry "Comments.comment->code" turns marked multiline C-comment
|
||||
back into code.
|
||||
+ A marked region can be surrounded by a for-, if, if-else, while-, do-while-statement
|
||||
(with indentation).
|
||||
+ The menu entry "Snippets.make prototype" makes a C- or C++-prototype from
|
||||
the current line or marked region and puts it in an internal buffer.
|
||||
+ The menu entry "Snippets.add prototype" also makes a C- or C++-prototype from
|
||||
the current line or a marked region and adds it to the internal buffer.
|
||||
+ The menu entry "Snippets.put prototype" inserts all gathered prototypes
|
||||
below the current line.
|
||||
+ Tag substitution rewritten (Some characters in a substitution text for a tag
|
||||
prevented the tag from being substituted).
|
||||
|
||||
=======================================================================================
|
||||
RELEASE NOTES FOR VERSION 3.0
|
||||
=======================================================================================
|
||||
|
||||
+ C-style comments AND C++-style comments are supported now.
|
||||
+ The menu entry 'Comments->Comment style ..' switches the styles (toggle).
|
||||
+ Block comments are now read as templates or skeletons from files:
|
||||
Frame Block, Function Description, Method Description,
|
||||
Class Description, H+file header, C/C++-file header
|
||||
+ These templates can contain tags like |FILENAME|, |AUTHOR| etc. which are replaced
|
||||
after reading (KDevelop templates can be used without any change).
|
||||
+ indentation: multiline inserts and code snippets will be indented after insertion.
|
||||
+ Most menu entries are now also active in normal mode.
|
||||
+ new menu items:
|
||||
includes for the C99 header,
|
||||
includes for the standard C++ header,
|
||||
includes for the C++ version of the Standard C Library header,
|
||||
multiline C comment
|
||||
vim modeline
|
||||
+ Reading the templates is done in one function which can be called in an autocmd.
|
||||
+ Code cleanup: register z no longer used. Most function calls are silent now.
|
||||
|
||||
|
Binary file not shown.
@ -0,0 +1,366 @@
|
||||
%%=====================================================================================
|
||||
%%
|
||||
%% File: c-hotkeys.tex
|
||||
%%
|
||||
%% Description: c-support.vim : Key mappings for Vim without GUI.
|
||||
%%
|
||||
%%
|
||||
%% Author: Dr.-Ing. Fritz Mehner
|
||||
%% Email: mehner@fh-swf.de
|
||||
%% Copyright: Copyright (C) 2006-2010 Dr.-Ing. Fritz Mehner (mehner@fh-swf.de)
|
||||
%% Version: 1.0
|
||||
%% Created: 10.11.2006
|
||||
%% Revision: $Id: c-hotkeys.tex,v 1.34 2010/05/14 19:13:40 mehner Exp $
|
||||
%%
|
||||
%% Notes:
|
||||
%%
|
||||
%%=====================================================================================
|
||||
|
||||
\documentclass[oneside,11pt,landscape,DIV16]{scrartcl}
|
||||
|
||||
\usepackage[english]{babel}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage{times}
|
||||
\usepackage{lastpage}
|
||||
\usepackage{multicol}
|
||||
\usepackage{setspace}
|
||||
|
||||
\setlength\parindent{0pt}
|
||||
|
||||
\newcommand{\Pluginversion}{5.11}
|
||||
\newcommand{\ReleaseDate}{ May 2010}
|
||||
|
||||
%%----------------------------------------------------------------------
|
||||
%% luximono : Type1-font
|
||||
%% Makes keyword stand out by using semibold letters.
|
||||
%%----------------------------------------------------------------------
|
||||
\usepackage[scaled]{luximono}
|
||||
|
||||
%%----------------------------------------------------------------------
|
||||
%% fancyhdr
|
||||
%%----------------------------------------------------------------------
|
||||
\usepackage{fancyhdr}
|
||||
\pagestyle{fancyplain}
|
||||
\fancyfoot[L]{\small \ReleaseDate}
|
||||
\fancyfoot[C]{c-support.vim}
|
||||
\fancyfoot[R]{\small \textbf{Page \thepage{} / \pageref{LastPage}}}
|
||||
\renewcommand{\headrulewidth}{0.0pt}
|
||||
|
||||
%%----------------------------------------------------------------------
|
||||
%% hyperref
|
||||
%%----------------------------------------------------------------------
|
||||
\usepackage[ps2pdf]{hyperref}
|
||||
\hypersetup{pdfauthor={Dr.-Ing. Fritz Mehner, FH Südwestfalen, Iserlohn, Germany}}
|
||||
\hypersetup{pdfkeywords={Vim, C/C++}}
|
||||
\hypersetup{pdfsubject={Vim-plugin, c-support.vim, hot keys}}
|
||||
\hypersetup{pdftitle={Vim-plugin, c-support.vim, hot keys}}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% START OF DOCUMENT
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\begin{document}%
|
||||
|
||||
\begin{multicols}{3}
|
||||
%
|
||||
%%======================================================================
|
||||
%% title
|
||||
%%======================================================================
|
||||
\begin{center}
|
||||
\textbf{\textsc{\small{Vim-Plugin}}}\\
|
||||
\textbf{\LARGE{c-support.vim}}\\
|
||||
\textbf{\textsc{\small{Version \Pluginversion}}}\\
|
||||
\textbf{\textsc{\Huge{Hot keys}}}\\
|
||||
Key mappings for Vim with and without GUI.\\
|
||||
Plugin: http://vim.sourceforge.net\\
|
||||
\vspace{3.0mm}
|
||||
{\normalsize (i)} insert mode, {\normalsize (n)} normal mode, {\normalsize (v)} visual mode\\
|
||||
\vspace{5.0mm}
|
||||
%
|
||||
%%======================================================================
|
||||
%% table, left part
|
||||
%%======================================================================
|
||||
%%~~~~~ TABULAR : begin ~~~~~~~~~~
|
||||
\begin{tabular}[]{|p{10mm}|p{60mm}|}
|
||||
%
|
||||
\hline
|
||||
\multicolumn{2}{|r|}{\textsl{\textbf{C}omments}} \\
|
||||
\hline \verb'\cl' & end-of-line comment \hfill (n,v,i)\\
|
||||
\hline \verb'\cj' & adjust end-of-line comment \hfill (n,v,i)\\
|
||||
\hline \verb'\cs' & set end-of-line comment column \hfill (n) \\
|
||||
\hline \verb'\c*' & code $\Rightarrow$ comment \verb'/* */' \hfill (n,v) \\
|
||||
\hline \verb'\cc' & code $\Rightarrow$ comment \verb'//' \hfill (n,v) \\
|
||||
\hline \verb'\co' & comment $\Rightarrow$ code \hfill (n,v) \\
|
||||
|
||||
\hline \verb'\cfr' & frame comment \hfill (n,i)\\
|
||||
\hline \verb'\cfu' & function comment \hfill (n,i)\\
|
||||
\hline \verb'\cme' & method description \hfill (n,i)\\
|
||||
\hline \verb'\ccl' & class description \hfill (n,i)\\
|
||||
\hline \verb'\cfdi'& file description (implementation) \hfill (n,i)\\
|
||||
\hline \verb'\cfdh'& file description (header) \hfill (n,i)\\
|
||||
|
||||
\hline \verb'\ccs'& C/C++--file sections\hspace{3mm}\footnotesize{(tab compl.)} \hfill \normalsize{(n,i)}\\
|
||||
\hline \verb'\chs'& H--file sections\hspace{10mm}\footnotesize{(tab compl.)} \hfill \normalsize{(n,i)}\\
|
||||
\hline \verb'\ckc'& keyword comment\hspace{5mm}\footnotesize{(tab compl.)} \hfill \normalsize{(n,i)}\\
|
||||
\hline \verb'\csc'& special comment\hspace{7,5mm}\footnotesize{(tab compl.)} \hfill \normalsize{(n,i)}\\
|
||||
|
||||
\hline \verb'\cd' & date \hfill (n,v,i)\\
|
||||
\hline \verb'\ct' & date \& time \hfill (n,v,i)\\
|
||||
\hline
|
||||
\end{tabular}\\
|
||||
%%~~~~~ TABULAR : end ~~~~~~~~~~
|
||||
%
|
||||
%%======================================================================
|
||||
%% table, middle part
|
||||
%%======================================================================
|
||||
%
|
||||
%%~~~~~ TABULAR : begin ~~~~~~~~~~
|
||||
\begin{tabular}[]{|p{15mm}|p{55mm}|}
|
||||
%%----------------------------------------------------------------------
|
||||
%% menu statements
|
||||
%%----------------------------------------------------------------------
|
||||
\hline
|
||||
\multicolumn{2}{|r|}{\textsl{\textbf{S}tatements}} \\
|
||||
\hline \verb'\sd' & \verb'do { } while' \hfill (n,v,i)\\
|
||||
\hline \verb'\sf' & \verb'for' \hfill (n,i)\\
|
||||
\hline \verb'\sfo' & \verb'for { }' \hfill (n,v,i)\\
|
||||
\hline \verb'\si' & \verb'if' \hfill (n,i)\\
|
||||
\hline \verb'\sif' & \verb'if { }' \hfill (n,v,i)\\
|
||||
\hline \verb'\sie' & \verb'if else' \hfill (n,v,i)\\
|
||||
\hline \verb'\sife'& \verb'if { } else { }' \hfill (n,v,i)\\
|
||||
\hline \verb'\se' & \verb'else { }' \hfill (n,v,i)\\
|
||||
\hline \verb'\sw' & \verb'while' \hfill (n,i)\\
|
||||
\hline \verb'\swh' & \verb'while { }' \hfill (n,v,i)\\
|
||||
\hline \verb'\ss' & \verb'switch' \hfill (n,v,i)\\
|
||||
\hline \verb'\sc' & \verb'case' \hfill (n,i)\\
|
||||
\hline \verb'\s{ \sb' & \verb'{ }' \hfill (n,v,i)\\
|
||||
\hline
|
||||
%%----------------------------------------------------------------------
|
||||
%% preprocessor menu
|
||||
%%----------------------------------------------------------------------
|
||||
\hline
|
||||
\multicolumn{2}{|r|}{\textsl{\textbf{P}reprocessor}} \\
|
||||
\hline \verb'\ps' & choose a Std. Lib. include \hfill (n,i)\\
|
||||
\hline \verb'\pc' & choose a C99 include \hfill (n,i)\\
|
||||
\hline \verb'\p<' & \verb$#include<...>$ \hfill (n,i)\\
|
||||
\hline \verb'\p"' & \verb$#include"..."$ \hfill (n,i)\\
|
||||
\hline \verb'\pd' & \verb'#define' \hfill (n,i)\\
|
||||
\hline \verb'\pu' & \verb'#undef' \hfill (n,i)\\
|
||||
\hline \verb'\pie' & \verb'#if #else #endif' \hfill (n,v,i)\\
|
||||
\hline \verb'\pid' & \verb'#ifdef #else #endif' \hfill (n,v,i)\\
|
||||
\hline \verb'\pin' & \verb'#ifndef #else #endif' \hfill (n,v,i)\\
|
||||
\hline \verb'\pind' & \verb'#ifndef #def #endif' \hfill (n,v,i)\\
|
||||
\hline \verb'\pi0' & \verb'#if 0 #endif' \hfill (n,v,i)\\
|
||||
\hline \verb'\pr0' & remove \verb'#if 0 #endif' \hfill (n,i)\\
|
||||
\hline \verb'\pe' & \verb'#error ' \hfill (n,i)\\
|
||||
\hline \verb'\pl' & \verb'#line ' \hfill (n,i)\\
|
||||
\hline \verb'\pp' & \verb'#pragma' \hfill (n,i)\\
|
||||
\hline
|
||||
\end{tabular} \\
|
||||
%%~~~~~ TABULAR : end ~~~~~~~~~~
|
||||
|
||||
%%======================================================================
|
||||
%% table, right part
|
||||
%%======================================================================
|
||||
%
|
||||
%%~~~~~ TABULAR : begin ~~~~~~~~~~
|
||||
\begin{tabular}[]{|p{11mm}|p{60mm}|}
|
||||
%%----------------------------------------------------------------------
|
||||
%% snippet menu
|
||||
%%----------------------------------------------------------------------
|
||||
\hline
|
||||
\multicolumn{2}{|r|}{\textsl{S\textbf{n}ippet}} \\
|
||||
\hline \verb'\nr' & read code snippet \hfill (n,i)\\
|
||||
\hline \verb'\nw' & write code snippet \hfill (n,v,i)\\
|
||||
\hline \verb'\ne' & edit code snippet \hfill (n,i)\\
|
||||
\hline \verb'\np' & pick up prototype \hfill (n,v,i)\\
|
||||
\hline \verb'\ni' & insert prototype(s) \hfill (n,i)\\
|
||||
\hline \verb'\nc' & clear prototype(s) \hfill (n,i)\\
|
||||
\hline \verb'\ns' & show prototype(s) \hfill (n,i)\\
|
||||
%
|
||||
\hline \verb'\ntl' & edit local templates \hfill (n,i)\\
|
||||
\hline \verb'\ntg' & edit global templates \hfill (n,i)\\
|
||||
\hline \verb'\ntr' & reread the templates \hfill (n,i)\\
|
||||
\hline \verb'\nts' & change templates style \hfill (n,i)\\
|
||||
\hline
|
||||
%%----------------------------------------------------------------------
|
||||
%% idioms menu
|
||||
%%----------------------------------------------------------------------
|
||||
\hline
|
||||
\multicolumn{2}{|r|}{\textsl{\textbf{I}dioms}} \\
|
||||
\hline \verb'\if' & function \hfill (n,v,i)\\
|
||||
\hline \verb'\isf' & static function \hfill (n,v,i)\\
|
||||
\hline \verb'\im' & \verb'main()' \hfill (n,v,i)\\
|
||||
\hline \verb'\i0' & \verb'for( x=0; x<n; x+=1 )' \hfill (n,v,i)\\
|
||||
\hline \verb'\in' & \verb'for( x=n-1; x>=0; x-=1 )' \hfill (n,v,i)\\
|
||||
\hline \verb'\ie' & \verb'enum' + \verb'typedef' \hfill (n,v,i)\\
|
||||
\hline \verb'\is' & \verb'struct' + \verb'typedef' \hfill (n,v,i)\\
|
||||
\hline \verb'\iu' & \verb'union' + \verb'typedef' \hfill (n,v,i)\\
|
||||
\hline \verb'\ip' & \verb'printf()' \hfill (n,i)\\
|
||||
\hline \verb'\isc' & \verb'scanf()' \hfill (n,i)\\
|
||||
\hline \verb'\ica' & \verb'p=calloc()' \hfill (n,i)\\
|
||||
\hline \verb'\ima' & \verb'p=malloc()' \hfill (n,i)\\
|
||||
\hline \verb'\isi' & \verb'sizeof()' \hfill (n,v,i)\\
|
||||
\hline \verb'\ias' & \verb'assert()' \hfill (n,v,i)\\
|
||||
\hline \verb'\ii' & open input file \hfill (n,v,i)\\
|
||||
\hline \verb'\io' & open output file \hfill (n,v,i)\\
|
||||
\hline
|
||||
\end{tabular}\\
|
||||
%
|
||||
%%======================================================================
|
||||
%% table, right part
|
||||
%%======================================================================
|
||||
%
|
||||
%%~~~~~ TABULAR : begin ~~~~~~~~~~
|
||||
\begin{tabular}[]{|p{12mm}|p{62mm}|}
|
||||
%%----------------------------------------------------------------------
|
||||
%% C++ menu
|
||||
%%----------------------------------------------------------------------
|
||||
\hline
|
||||
\multicolumn{2}{|r|}{\textsl{C\textbf{+}+}} \\
|
||||
\hline \verb'\+co' & \verb'cout << << endl; ' \hfill (n,i)\\
|
||||
\hline \verb'\+c' & class \hfill (n,i)\\
|
||||
\hline \verb'\+ps' & \verb$#include<...> STL$ \hfill (n,i)\\
|
||||
\hline \verb'\+pc' & \verb$#include<c..> C$ \hfill (n,i)\\
|
||||
\hline \verb'\+cn' & class (using \verb'new') \hfill (n,i)\\
|
||||
\hline \verb'\+ci' & class implementation \hfill (n,i)\\
|
||||
\hline \verb'\+cni' & class (using \verb'new') implementation \hfill (n,i)\\
|
||||
\hline \verb'\+mi' & method implementation \hfill (n,i)\\
|
||||
\hline \verb'\+ai' & accessor implementation \hfill (n,i)\\
|
||||
\hline \verb'\+tc' & template class \hfill (n,i)\\
|
||||
\hline \verb'\+tcn' & template class (using \verb'new') \hfill (n,i)\\
|
||||
\hline \verb'\+tci' & template class implementation \hfill (n,i)\\
|
||||
\hline \verb'\+tcni'& template class (using \verb'new') impl. \hfill (n,i)\\
|
||||
\hline \verb'\+tmi' & template method implementation \hfill (n,i)\\
|
||||
\hline \verb'\+tai' & template accessor implementation \hfill (n,i)\\
|
||||
\hline \verb'\+tf' & template function \hfill (n,i)\\
|
||||
\hline \verb'\+ec' & error class \hfill (n,i)\\
|
||||
\hline \verb'\+tr' & \verb'try' \dots \verb'catch' \hfill (n,v,i)\\
|
||||
\hline \verb'\+ca' & \verb'catch' \hfill (n,v,i)\\
|
||||
\hline \verb'\+c.' & \verb'catch(...)' \hfill (n,v,i)\\
|
||||
\hline
|
||||
%%----------------------------------------------------------------------
|
||||
%% run menu
|
||||
%%----------------------------------------------------------------------
|
||||
\hline
|
||||
\multicolumn{2}{|r|}{\textsl{\textbf{R}un}} \\
|
||||
\hline \verb'\rc' & save and compile \hfill (n,i)\\
|
||||
\hline \verb'\rl' & link \hfill (n,i)\\
|
||||
\hline \verb'\rr' & run \hfill (n,i)\\
|
||||
\hline \verb'\ra' & set comand line arguments \hfill (n,i)\\
|
||||
\hline \verb'\rm' & run \texttt{make} \hfill (n,i)\\
|
||||
\hline \verb'\rma' & cmd.\ line arg.\ for \texttt{make} \hfill (n,i)\\
|
||||
%
|
||||
\hline \verb'\rp' & run \texttt{splint}$^1$ \hfill (n,i)\\
|
||||
\hline \verb'\rpa' & cmd.\ line arg.\ for \texttt{splint} \hfill (n,i)\\
|
||||
%
|
||||
\hline \verb'\rk' & run \texttt{CodeCheck}$^2$ \hfill (n,i)\\
|
||||
\hline \verb'\rka' & cmd.\ line arg.\ for \texttt{CodeCheck} \hfill (n,i)\\
|
||||
%
|
||||
\hline \verb'\rd' & run \texttt{indent} \hfill (n,i)\\
|
||||
\hline \verb'\rh' & hardcopy buffer \hfill (n,i,v)\\
|
||||
\hline \verb'\rs' & show plugin settings \hfill (n,i)\\
|
||||
\hline \verb'\rx' & set xterm size \hfill (n,i, only Unix \& GUI)\\
|
||||
\hline \verb'\ro' & change output destination \hfill (n,i)\\
|
||||
\hline
|
||||
\end{tabular}
|
||||
%
|
||||
%%----------------------------------------------------------------------
|
||||
%% load / unload menu entry
|
||||
%%----------------------------------------------------------------------
|
||||
\begin{tabular}[]{|p{12mm}|p{52mm}|}
|
||||
\hline
|
||||
%\multicolumn{2}{|r|}{\textsl{Menu(s)}}\\
|
||||
%%----------------------------------------------------------------------
|
||||
%% show plugin help
|
||||
%%----------------------------------------------------------------------
|
||||
%\hline
|
||||
\multicolumn{2}{|r|}{\textsl{\textbf{H}elp and Menus}}\\
|
||||
\hline \verb'\hm' & show manual \hfill (n,i)\\
|
||||
\hline \verb'\hp' & help (c-support) \hfill (n,i)\\
|
||||
\hline \verb'\lcs' & load Menus\hfill \scriptsize{(n \& GUI only)}\\
|
||||
\hline \verb'\ucs' & unload Menus\hfill \scriptsize{(n \& GUI only)}\\
|
||||
\hline
|
||||
\end{tabular}
|
||||
%%~~~~~ TABULAR : end ~~~~~~~~~~
|
||||
%
|
||||
%
|
||||
\begin{minipage}[b]{66mm}%
|
||||
\vspace{10mm}
|
||||
%
|
||||
\begin{flushleft}
|
||||
%
|
||||
\textit{Ex commands:}
|
||||
\begin{description}
|
||||
%
|
||||
\item [CFileSection]
|
||||
C/C++--file sections (same as \verb'\ccs')
|
||||
%
|
||||
\item [HFileSection]
|
||||
H--file sections (same as \verb'\chs')
|
||||
%
|
||||
\item [KeywordComment]
|
||||
keyword comment (same as \verb'\ckc')
|
||||
%
|
||||
\item [SpecialComment]
|
||||
special comment (same as \verb'\csc')
|
||||
%
|
||||
\item [IncludeStdLibrary]
|
||||
standard library includes (same as \verb'\ps')
|
||||
%
|
||||
\item [IncludeC99Library]
|
||||
C99 includes (same as \verb'\pc')
|
||||
%
|
||||
\item [IncludeCppLibrary]
|
||||
STL includes (same as \verb'\+ps')
|
||||
%
|
||||
\item [IncludeCppCLibrary]
|
||||
C includes (same as \verb'\+pc')
|
||||
%
|
||||
\item [CStyle]
|
||||
C99 include (same as \verb'\nts')
|
||||
%
|
||||
\end{description}
|
||||
%
|
||||
Use tab expansion to show the items to choose from.
|
||||
%
|
||||
\end{flushleft}
|
||||
%
|
||||
\end{minipage}\\
|
||||
%
|
||||
\begin{minipage}[b]{64mm}%
|
||||
\scriptsize{%
|
||||
\vspace{10mm}
|
||||
\hrulefill\\
|
||||
$^1$ {www.splint.org}\\
|
||||
$^2$ \textbf{CodeCheck}$^{TM}$ is a product of Abraxas Software, Inc.
|
||||
}%
|
||||
\end{minipage}\\
|
||||
%
|
||||
\begin{minipage}[b]{64mm}%
|
||||
|
||||
\setlength{\fboxsep}{.25mm}
|
||||
%%----------------------------------------------------------------------
|
||||
%% Additional Mappings
|
||||
%%----------------------------------------------------------------------
|
||||
\begin{spacing}{1.2}
|
||||
\begin{tabular}[]{|p{12mm}|p{56mm}|}
|
||||
\hline
|
||||
\multicolumn{2}{|r|}{\textsl{Additional Mappings}}\\
|
||||
\hline
|
||||
\hline \textbf{typing} & \textbf{expansion}\\
|
||||
\hline \verb'/*' & \verb'/* */' \hfill (i)\\
|
||||
\hline \verb'/*' & \verb'/* '\fbox{\small{(multiline) marked text}}\verb' */' \hfill (v)\\
|
||||
\hline \verb'/*<CR>' & \verb'/*'\hfill (i)\newline\verb' * |'\newline\verb' */'\\
|
||||
\hline \verb'{<CR>' & \verb'{'\hfill (i)\newline\verb' |'\newline\verb'}' \\
|
||||
\hline \verb'{<CR>' & \verb'{'\hfill (v)\newline\verb' '\fbox{\small{(multiline) marked text}}\newline\verb'}'\\
|
||||
\hline
|
||||
\end{tabular}
|
||||
\end{spacing}
|
||||
%%~~~~~ TABULAR : end ~~~~~~~~~~
|
||||
%
|
||||
\end{minipage}%
|
||||
%
|
||||
\end{center}
|
||||
\end{multicols}
|
||||
\end{document}
|
@ -0,0 +1,8 @@
|
||||
|
||||
--regex-make=/^([^:# \t]+)[ \t]*:($|[^=]+)/\1/t,targets/
|
||||
--regex-make=/^include[ \t]+(.+)/\1/i,includes/
|
||||
|
||||
--langdef=qmake
|
||||
--langmap=qmake:+.pro
|
||||
--regex-qmake=/^([[:upper:]_]+)/\1/t,SystemVariables/
|
||||
|
@ -0,0 +1,57 @@
|
||||
"===================================================================================
|
||||
" FILE: .gvimrc
|
||||
" DESCRIPTION: suggestion for a personal configuration file ~/.gvimrc
|
||||
" AUTHOR: Dr.-Ing. Fritz Mehner
|
||||
" VERSION: 1.0
|
||||
" CREATED: 04.04.2009
|
||||
" REVISION: $Id: customization.gvimrc,v 1.3 2009/04/04 08:26:21 mehner Exp $
|
||||
"===================================================================================
|
||||
"
|
||||
"===================================================================================
|
||||
" GENERAL SETTINGS
|
||||
"===================================================================================
|
||||
set cmdheight=2 " Make command line two lines high
|
||||
set mousehide " Hide the mouse when typing text
|
||||
|
||||
highlight Normal guibg=grey90
|
||||
highlight Cursor guibg=Blue guifg=NONE
|
||||
highlight lCursor guibg=Cyan guifg=NONE
|
||||
highlight NonText guibg=grey80
|
||||
highlight Constant gui=NONE guibg=grey95
|
||||
highlight Special gui=NONE guibg=grey95
|
||||
"
|
||||
let c_comment_strings=1 " highlight strings inside C comments
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" Moving cursor to other windows
|
||||
"
|
||||
" shift down : change window focus to lower one (cyclic)
|
||||
" shift up : change window focus to upper one (cyclic)
|
||||
" shift left : change window focus to one on left
|
||||
" shift right : change window focus to one on right
|
||||
"-------------------------------------------------------------------------------
|
||||
nmap <s-down> <c-w>w
|
||||
nmap <s-up> <c-w>W
|
||||
nmap <s-left> <c-w>h
|
||||
nmap <s-right> <c-w>l
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" some additional hot keys
|
||||
"-------------------------------------------------------------------------------
|
||||
" S-F3 - call gvim file browser
|
||||
"-------------------------------------------------------------------------------
|
||||
map <silent> <s-F3> :silent browse confirm e<CR>
|
||||
imap <silent> <s-F3> <Esc>:silent browse confirm e<CR>
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" toggle insert mode <--> 'normal mode with the <RightMouse>-key
|
||||
"-------------------------------------------------------------------------------
|
||||
"
|
||||
nmap <RightMouse> <Insert>
|
||||
imap <RightMouse> <ESC>
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" use font with clearly distinguishable brackets : ()[]{}
|
||||
"-------------------------------------------------------------------------------
|
||||
"set guifont=Luxi\ Mono\ 14
|
||||
"
|
@ -0,0 +1,8 @@
|
||||
--blank-lines-after-procedures
|
||||
--brace-indent0
|
||||
--comment-indentation49
|
||||
--declaration-comment-column49
|
||||
--declaration-indentation10
|
||||
--space-after-parentheses
|
||||
--swallow-optional-blank-lines
|
||||
--tab-size2
|
@ -0,0 +1,222 @@
|
||||
"===================================================================================
|
||||
" FILE: .vimrc
|
||||
" DESCRIPTION: suggestion for a personal configuration file ~/.vimrc
|
||||
" AUTHOR: Dr.-Ing. Fritz Mehner
|
||||
" CREATED: 04.04.2009
|
||||
" REVISION: $Id: customization.vimrc,v 1.6 2009/10/03 12:24:30 mehner Exp $
|
||||
"===================================================================================
|
||||
"
|
||||
"===================================================================================
|
||||
" GENERAL SETTINGS
|
||||
"===================================================================================
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Use Vim settings, rather then Vi settings.
|
||||
" This must be first, because it changes other options as a side effect.
|
||||
"-------------------------------------------------------------------------------
|
||||
set nocompatible
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" Enable file type detection. Use the default filetype settings.
|
||||
" Also load indent files, to automatically do language-dependent indenting.
|
||||
"-------------------------------------------------------------------------------
|
||||
filetype plugin on
|
||||
filetype indent on
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" Switch syntax highlighting on.
|
||||
"-------------------------------------------------------------------------------
|
||||
syntax on
|
||||
"
|
||||
" Platform specific items:
|
||||
" - central backup directory (has to be created)
|
||||
" - default dictionary
|
||||
" Uncomment your choice.
|
||||
if has("win16") || has("win32") || has("win64") ||
|
||||
\ has("win95") || has("win32unix")
|
||||
"
|
||||
" runtime mswin.vim
|
||||
" set backupdir =$VIM\vimfiles\backupdir
|
||||
" set dictionary=$VIM\vimfiles\wordlists/german.list
|
||||
else
|
||||
" set backupdir =$HOME/.vim.backupdir
|
||||
" set dictionary=$HOME/.vim/wordlists/german.list
|
||||
endif
|
||||
"
|
||||
" Using a backupdir under UNIX/Linux: you may want to include a line similar to
|
||||
" find $HOME/.vim.backupdir -name "*" -type f -mtime +60 -exec rm -f {} \;
|
||||
" in one of your shell startup files (e.g. $HOME/.profile)
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" Various settings
|
||||
"-------------------------------------------------------------------------------
|
||||
set autoindent " copy indent from current line
|
||||
set autoread " read open files again when changed outside Vim
|
||||
set autowrite " write a modified buffer on each :next , ...
|
||||
set backspace=indent,eol,start " backspacing over everything in insert mode
|
||||
set backup " keep a backup file
|
||||
set browsedir=current " which directory to use for the file browser
|
||||
set complete+=k " scan the files given with the 'dictionary' option
|
||||
set history=50 " keep 50 lines of command line history
|
||||
set hlsearch " highlight the last used search pattern
|
||||
set incsearch " do incremental searching
|
||||
set listchars=tab:>.,eol:\$ " strings to use in 'list' mode
|
||||
set mouse=a " enable the use of the mouse
|
||||
set nowrap " do not wrap lines
|
||||
set popt=left:8pc,right:3pc " print options
|
||||
set ruler " show the cursor position all the time
|
||||
set shiftwidth=2 " number of spaces to use for each step of indent
|
||||
set showcmd " display incomplete commands
|
||||
set smartindent " smart autoindenting when starting a new line
|
||||
set tabstop=2 " number of spaces that a <Tab> counts for
|
||||
set visualbell " visual bell instead of beeping
|
||||
set wildignore=*.bak,*.o,*.e,*~ " wildmenu: ignore these extensions
|
||||
set wildmenu " command-line completion in an enhanced mode
|
||||
"
|
||||
"===================================================================================
|
||||
" BUFFERS, WINDOWS
|
||||
"===================================================================================
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" The current directory is the directory of the file in the current window.
|
||||
"-------------------------------------------------------------------------------
|
||||
if has("autocmd")
|
||||
autocmd BufEnter * :lchdir %:p:h
|
||||
endif
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" close window (conflicts with the KDE setting for calling the process manager)
|
||||
"-------------------------------------------------------------------------------
|
||||
noremap <C-Esc> :close<CR>
|
||||
inoremap <C-Esc> <C-C>:close<CR>
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" Fast switching between buffers
|
||||
" The current buffer will be saved before switching to the next one.
|
||||
" Choose :bprevious or :bnext
|
||||
"-------------------------------------------------------------------------------
|
||||
noremap <silent> <s-tab> :if &modifiable && !&readonly &&
|
||||
\ &modified <CR> :write<CR> :endif<CR>:bprevious<CR>
|
||||
inoremap <silent> <s-tab> <C-C>:if &modifiable && !&readonly &&
|
||||
\ &modified <CR> :write<CR> :endif<CR>:bprevious<CR>
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" Leave the editor with Ctrl-q (KDE): Write all changed buffers and exit Vim
|
||||
"-------------------------------------------------------------------------------
|
||||
nnoremap <C-q> :wqall<CR>
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" When editing a file, always jump to the last known cursor position.
|
||||
" Don't do it when the position is invalid or when inside an event handler
|
||||
" (happens when dropping a file on gvim).
|
||||
"-------------------------------------------------------------------------------
|
||||
if has("autocmd")
|
||||
autocmd BufReadPost *
|
||||
\ if line("'\"") > 0 && line("'\"") <= line("$") |
|
||||
\ exe "normal! g`\"" |
|
||||
\ endif
|
||||
endif " has("autocmd")
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" some additional hot keys
|
||||
"-------------------------------------------------------------------------------
|
||||
" F2 - write file without confirmation
|
||||
" F3 - call file explorer Ex
|
||||
" F4 - show tag under curser in the preview window (tagfile must exist!)
|
||||
" F5 - open quickfix error window
|
||||
" F6 - close quickfix error window
|
||||
" F7 - display previous error
|
||||
" F8 - display next error
|
||||
"-------------------------------------------------------------------------------
|
||||
"
|
||||
map <silent> <F2> :write<CR>
|
||||
map <silent> <F3> :Explore<CR>
|
||||
nmap <silent> <F4> :exe ":ptag ".expand("<cword>")<CR>
|
||||
map <silent> <F5> :copen<CR>
|
||||
map <silent> <F6> :cclose<CR>
|
||||
map <silent> <F7> :cp<CR>
|
||||
map <silent> <F8> :cn<CR>
|
||||
"
|
||||
imap <silent> <F2> <Esc>:write<CR>
|
||||
imap <silent> <F3> <Esc>:Explore<CR>
|
||||
imap <silent> <F4> <Esc>:exe ":ptag ".expand("<cword>")<CR>
|
||||
imap <silent> <F5> <Esc>:copen<CR>
|
||||
imap <silent> <F6> <Esc>:cclose<CR>
|
||||
imap <silent> <F7> <Esc>:cp<CR>
|
||||
imap <silent> <F8> <Esc>:cn<CR>
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" Fast switching between buffers
|
||||
" The current buffer will be saved before switching to the next one.
|
||||
" Choose :bprevious or :bnext
|
||||
"-------------------------------------------------------------------------------
|
||||
"
|
||||
map <silent> <s-tab> <Esc>:if &modifiable && !&readonly &&
|
||||
\ &modified <CR> :write<CR> :endif<CR>:bprevious<CR>
|
||||
imap <silent> <s-tab> <Esc>:if &modifiable && !&readonly &&
|
||||
\ &modified <CR> :write<CR> :endif<CR>:bprevious<CR>
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" Leave the editor with Ctrl-q : Write all changed buffers and exit Vim
|
||||
"-------------------------------------------------------------------------------
|
||||
nmap <C-q> :wqa<CR>
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" comma always followed by a space
|
||||
"-------------------------------------------------------------------------------
|
||||
inoremap , ,<Space>
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" autocomplete parenthesis, brackets and braces
|
||||
"-------------------------------------------------------------------------------
|
||||
inoremap ( ()<Left>
|
||||
inoremap [ []<Left>
|
||||
inoremap { {}<Left>
|
||||
"
|
||||
vnoremap ( s()<Esc>P<Right>%
|
||||
vnoremap [ s[]<Esc>P<Right>%
|
||||
vnoremap { s{}<Esc>P<Right>%
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" autocomplete quotes (visual and select mode)
|
||||
"-------------------------------------------------------------------------------
|
||||
xnoremap ' s''<Esc>P<Right>
|
||||
xnoremap " s""<Esc>P<Right>
|
||||
xnoremap ` s``<Esc>P<Right>
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" Change the working directory to the directory containing the current file
|
||||
"-------------------------------------------------------------------------------
|
||||
if has("autocmd")
|
||||
autocmd BufEnter * :lchdir %:p:h
|
||||
endif " has("autocmd")
|
||||
"
|
||||
"===================================================================================
|
||||
" VARIOUS PLUGIN CONFIGURATIONS
|
||||
"===================================================================================
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" c.vim
|
||||
"-------------------------------------------------------------------------------
|
||||
"
|
||||
" --empty --
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" taglist.vim : toggle the taglist window
|
||||
" taglist.vim : define the title texts for make
|
||||
" taglist.vim : define the title texts for qmake
|
||||
"-------------------------------------------------------------------------------
|
||||
noremap <silent> <F11> <Esc><Esc>:Tlist<CR>
|
||||
inoremap <silent> <F11> <Esc><Esc>:Tlist<CR>
|
||||
|
||||
let Tlist_GainFocus_On_ToggleOpen = 1
|
||||
let Tlist_Close_On_Select = 1
|
||||
|
||||
let tlist_make_settings = 'make;m:makros;t:targets'
|
||||
let tlist_qmake_settings = 'qmake;t:SystemVariables'
|
||||
|
||||
if has("autocmd")
|
||||
" ---------- qmake : set filetype for *.pro ----------
|
||||
autocmd BufNewFile,BufRead *.pro set filetype=qmake
|
||||
endif " has("autocmd")
|
||||
|
@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
#===============================================================================
|
||||
# FILE: wrapper.sh
|
||||
# USAGE: ./wrapper.sh executable [cmd-line-args]
|
||||
# DESCRIPTION: Wraps the execution of a programm or script.
|
||||
# Use with xterm: xterm -e wrapper.sh executable cmd-line-args
|
||||
# This script is used by the plugins c.vim
|
||||
# OPTIONS: ---
|
||||
# REQUIREMENTS: ---
|
||||
# BUGS: ---
|
||||
# NOTES: ---
|
||||
# AUTHOR: Dr.-Ing. Fritz Mehner (Mn), mehner@fh-swf.de
|
||||
# COMPANY: Fachhochschule Südwestfalen, Iserlohn
|
||||
# CREATED: 23.11.2004 18:04:01 CET
|
||||
# REVISION: $Id: wrapper.sh,v 1.5 2009/06/03 17:47:06 mehner Exp $
|
||||
#===============================================================================
|
||||
|
||||
executable="${1}" # name of the executable
|
||||
|
||||
if [ ${#} -ge 1 ] && [ -x "$executable" ]
|
||||
then
|
||||
"${@}"
|
||||
returncode=$?
|
||||
[ $returncode -ne 0 ] && printf "'${@}' returned ${returncode}\n"
|
||||
else
|
||||
printf "\n !! file \"${executable}\" does not exist or is not executable !!\n"
|
||||
returncode=126 # command invoked cannot execute
|
||||
fi
|
||||
read -p " ... press return key ... " dummy
|
||||
exit $returncode
|
@ -0,0 +1,29 @@
|
||||
$
|
||||
$ =============================================================
|
||||
$ ========== USER MACROS ======================================
|
||||
$ =============================================================
|
||||
$
|
||||
|AUTHOR| = Dustin Swan
|
||||
|AUTHORREF| = DDS
|
||||
|EMAIL| = dustinswan@gmail.com
|
||||
|COPYRIGHT| = Copyright (c) |YEAR|, |AUTHOR|
|
||||
|STYLE| = default
|
||||
$
|
||||
$ =============================================================
|
||||
$ ========== FILE INCLUDES ====================================
|
||||
$ =============================================================
|
||||
$
|
||||
|includefile| = c.comments.template
|
||||
|includefile| = c.cpp.template
|
||||
|includefile| = c.idioms.template
|
||||
|includefile| = c.preprocessor.template
|
||||
|includefile| = c.statements.template
|
||||
$
|
||||
== IF |STYLE| IS CPP ==
|
||||
|includefile| = cpp.comments.template
|
||||
|includefile| = cpp.cpp.template
|
||||
|includefile| = cpp.idioms.template
|
||||
|includefile| = cpp.preprocessor.template
|
||||
|includefile| = cpp.statements.template
|
||||
== ENDIF ==
|
||||
$
|
@ -0,0 +1,178 @@
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.end-of-line-comment == append ==
|
||||
/* <CURSOR> */
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.frame ==
|
||||
/*-----------------------------------------------------------------------------
|
||||
* <CURSOR>
|
||||
*-----------------------------------------------------------------------------*/
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.function ==
|
||||
/*
|
||||
* === FUNCTION ======================================================================
|
||||
* Name: |?FUNCTION_NAME|
|
||||
* Description: <CURSOR>
|
||||
* =====================================================================================
|
||||
*/
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.method ==
|
||||
/*
|
||||
*--------------------------------------------------------------------------------------
|
||||
* Class: |?CLASSNAME|
|
||||
* Method: |?CLASSNAME| :: |?METHODNAME|
|
||||
* Description: <CURSOR>
|
||||
*--------------------------------------------------------------------------------------
|
||||
*/
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.class ==
|
||||
/*
|
||||
* =====================================================================================
|
||||
* Class: |?CLASSNAME|
|
||||
* Description: <CURSOR>
|
||||
* =====================================================================================
|
||||
*/
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-description == start ==
|
||||
/*
|
||||
* =====================================================================================
|
||||
*
|
||||
* Filename: |FILENAME|
|
||||
*
|
||||
* Description: <CURSOR>
|
||||
*
|
||||
* Version: 1.0
|
||||
* Created: |DATE| |TIME|
|
||||
* Revision: none
|
||||
* Compiler: gcc
|
||||
*
|
||||
* Author: |AUTHOR| (|AUTHORREF|), |EMAIL|
|
||||
* Company: |COMPANY|
|
||||
*
|
||||
* =====================================================================================
|
||||
*/
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-description-header == start ==
|
||||
/*
|
||||
* =====================================================================================
|
||||
*
|
||||
* Filename: |FILENAME|
|
||||
*
|
||||
* Description: <CURSOR>
|
||||
*
|
||||
* Version: 1.0
|
||||
* Created: |DATE| |TIME|
|
||||
* Revision: none
|
||||
* Compiler: gcc
|
||||
*
|
||||
* Author: |AUTHOR| (|AUTHORREF|), |EMAIL|
|
||||
* Company: |COMPANY|
|
||||
*
|
||||
* =====================================================================================
|
||||
*/
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-header-includes ==
|
||||
/* ##### HEADER FILE INCLUDES ################################################### */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-macros ==
|
||||
/* ##### MACROS - LOCAL TO THIS SOURCE FILE ################################### */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-typedefs ==
|
||||
/* ##### TYPE DEFINITIONS - LOCAL TO THIS SOURCE FILE ######################### */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-data-types ==
|
||||
/* ##### DATA TYPES - LOCAL TO THIS SOURCE FILE ############################### */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-class-defs ==
|
||||
/* ##### CLASS DEFINITIONS - LOCAL TO THIS SOURCE FILE ######################## */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-local-variables ==
|
||||
/* ##### VARIABLES - LOCAL TO THIS SOURCE FILE ################################ */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-prototypes ==
|
||||
/* ##### PROTOTYPES - LOCAL TO THIS SOURCE FILE ############################### */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-function-defs-exported ==
|
||||
/* ##### FUNCTION DEFINITIONS - EXPORTED FUNCTIONS ############################ */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-function-defs-local ==
|
||||
/* ##### FUNCTION DEFINITIONS - LOCAL TO THIS SOURCE FILE ##################### */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-class-implementations-exported ==
|
||||
/* ##### CLASS IMPLEMENTATIONS - EXPORTED CLASSES ############################# */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-class-implementations-local ==
|
||||
/* ##### CLASS IMPLEMENTATIONS - LOCAL CLASSES ################################ */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-hpp-header-includes ==
|
||||
/* ##### HEADER FILE INCLUDES ################################################### */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-hpp-macros ==
|
||||
/* ##### EXPORTED MACROS ######################################################## */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-hpp-exported-typedefs ==
|
||||
/* ##### EXPORTED TYPE DEFINITIONS ############################################## */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-hpp-exported-data-types ==
|
||||
/* ##### EXPORTED DATA TYPES #################################################### */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-hpp-exported-class-defs ==
|
||||
/* ##### EXPORTED CLASS DEFINITIONS ############################################# */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-hpp-exported-variables ==
|
||||
/* ##### EXPORTED VARIABLES ##################################################### */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-hpp-exported-function-declarations ==
|
||||
/* ##### EXPORTED FUNCTION DECLARATIONS ######################################### */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.keyword-bug == append ==
|
||||
/* :BUG:|DATE| |TIME|:|AUTHORREF|: <CURSOR> */
|
||||
== comment.keyword-compiler == append ==
|
||||
/* :COMPILER:|DATE| |TIME|:|AUTHORREF|: <CURSOR> */
|
||||
== comment.keyword-todo == append ==
|
||||
/* :TODO:|DATE| |TIME|:|AUTHORREF|: <CURSOR> */
|
||||
== comment.keyword-tricky == append ==
|
||||
/* :TRICKY:|DATE| |TIME|:|AUTHORREF|: <CURSOR> */
|
||||
== comment.keyword-warning == append ==
|
||||
/* :WARNING:|DATE| |TIME|:|AUTHORREF|: <CURSOR> */
|
||||
== comment.keyword-workaround == append ==
|
||||
/* :WORKAROUND:|DATE| |TIME|:|AUTHORREF|: <CURSOR> */
|
||||
== comment.keyword-keyword == append ==
|
||||
/* :|?KEYWORD:u|:|DATE| |TIME|:|AUTHORREF|: <CURSOR> */
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.special-empty == append ==
|
||||
/* EMPTY */<CURSOR>
|
||||
== comment.special-fall-through == append ==
|
||||
/* FALL THROUGH */<CURSOR>
|
||||
== comment.special-implicit-type-conversion == append ==
|
||||
/* IMPLICIT TYPE CONVERSION */<CURSOR>
|
||||
== comment.special-no-return == append ==
|
||||
/* NO RETURN */<CURSOR>
|
||||
== comment.special-not-reached == append ==
|
||||
/* NOT REACHED */<CURSOR>
|
||||
== comment.special-remains-to-be-implemented == append ==
|
||||
/* REMAINS TO BE IMPLEMENTED */<CURSOR>
|
||||
== comment.special-constant-type-is-long == append ==
|
||||
/* constant type is long */<CURSOR>
|
||||
== comment.special-constant-type-is-unsigned == append ==
|
||||
/* constant type is unsigned */<CURSOR>
|
||||
== comment.special-constant-type-is-unsigned-long == append ==
|
||||
/* constant type is unsigned long */<CURSOR>
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
@ -0,0 +1,487 @@
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
$
|
||||
== cpp.cin ==
|
||||
cin >> <CURSOR>;
|
||||
$
|
||||
== cpp.cout ==
|
||||
cout << <CURSOR> << endl;
|
||||
$
|
||||
== cpp.cout-operator == insert ==
|
||||
<< "<CURSOR>"
|
||||
$
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.output-manipulator-boolalpha == insert ==
|
||||
<< boolalpha <CURSOR>
|
||||
== cpp.output-manipulator-dec == insert ==
|
||||
<< dec <CURSOR>
|
||||
== cpp.output-manipulator-endl == insert ==
|
||||
<< endl <CURSOR>
|
||||
== cpp.output-manipulator-fixed == insert ==
|
||||
<< fixed <CURSOR>
|
||||
== cpp.output-manipulator-flush == insert ==
|
||||
<< flush <CURSOR>
|
||||
== cpp.output-manipulator-hex == insert ==
|
||||
<< hex <CURSOR>
|
||||
== cpp.output-manipulator-internal == insert ==
|
||||
<< internal <CURSOR>
|
||||
== cpp.output-manipulator-left == insert ==
|
||||
<< left <CURSOR>
|
||||
== cpp.output-manipulator-oct == insert ==
|
||||
<< oct <CURSOR>
|
||||
== cpp.output-manipulator-right == insert ==
|
||||
<< right <CURSOR>
|
||||
== cpp.output-manipulator-scientific == insert ==
|
||||
<< scientific <CURSOR>
|
||||
== cpp.output-manipulator-setbase == insert ==
|
||||
<< setbase(10<CURSOR>)
|
||||
== cpp.output-manipulator-setfill == insert ==
|
||||
<< setfill(<CURSOR>)
|
||||
== cpp.output-manipulator-setiosflag == insert ==
|
||||
<< setiosflags(<CURSOR>)
|
||||
== cpp.output-manipulator-setprecision == insert ==
|
||||
<< setprecision(6<CURSOR>)
|
||||
== cpp.output-manipulator-setw == insert ==
|
||||
<< setw(0<CURSOR>)
|
||||
== cpp.output-manipulator-showbase == insert ==
|
||||
<< showbase <CURSOR>
|
||||
== cpp.output-manipulator-showpoint == insert ==
|
||||
<< showpoint <CURSOR>
|
||||
== cpp.output-manipulator-showpos == insert ==
|
||||
<< showpos <CURSOR>
|
||||
== cpp.output-manipulator-uppercase == insert ==
|
||||
<< uppercase <CURSOR>
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.method-implementation ==
|
||||
void<CURSOR>
|
||||
|?CLASSNAME|::|?METHODNAME| ( <+argument list+> )
|
||||
{
|
||||
return ;
|
||||
} /* ----- end of method |CLASSNAME|::|?METHODNAME| ----- */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.accessor-implementation ==
|
||||
/*
|
||||
*--------------------------------------------------------------------------------------
|
||||
* Class: |?CLASSNAME|
|
||||
* Method: get_|?ATTRIBUTE|
|
||||
*--------------------------------------------------------------------------------------
|
||||
*/
|
||||
inline int<CURSOR>
|
||||
|CLASSNAME|::get_|ATTRIBUTE| ( )
|
||||
{
|
||||
return |ATTRIBUTE|;
|
||||
} /* ----- end of method |CLASSNAME|::get_|ATTRIBUTE| ----- */
|
||||
|
||||
/*
|
||||
*--------------------------------------------------------------------------------------
|
||||
* Class: |CLASSNAME|
|
||||
* Method: set_|ATTRIBUTE|
|
||||
*--------------------------------------------------------------------------------------
|
||||
*/
|
||||
inline void
|
||||
|CLASSNAME|::set_|ATTRIBUTE| ( <+argument list+> )
|
||||
{
|
||||
|ATTRIBUTE| = value;
|
||||
return ;
|
||||
} /* ----- end of method |CLASSNAME|::set_|ATTRIBUTE| ----- */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.class-definition ==
|
||||
/*
|
||||
* =====================================================================================
|
||||
* Class: |?CLASSNAME:c|
|
||||
* Description: <CURSOR>
|
||||
* =====================================================================================
|
||||
*/
|
||||
class |CLASSNAME|
|
||||
{
|
||||
public:
|
||||
/* ==================== LIFECYCLE ======================================= */
|
||||
|CLASSNAME| (); /* constructor */
|
||||
|
||||
/* ==================== ACCESSORS ======================================= */
|
||||
|
||||
/* ==================== MUTATORS ======================================= */
|
||||
|
||||
/* ==================== OPERATORS ======================================= */
|
||||
|
||||
protected:
|
||||
/* ==================== DATA MEMBERS ======================================= */
|
||||
|
||||
private:
|
||||
/* ==================== DATA MEMBERS ======================================= */
|
||||
|
||||
}; /* ----- end of class |CLASSNAME| ----- */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.class-implementation ==
|
||||
/*
|
||||
*--------------------------------------------------------------------------------------
|
||||
* Class: |?CLASSNAME:c|
|
||||
* Method: |CLASSNAME|
|
||||
* Description: constructor
|
||||
*--------------------------------------------------------------------------------------
|
||||
*/
|
||||
|CLASSNAME|::|CLASSNAME| ()
|
||||
{<CURSOR>
|
||||
} /* ----- end of method |CLASSNAME|::|CLASSNAME| (constructor) ----- */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.class-using-new-definition ==
|
||||
/*
|
||||
* =====================================================================================
|
||||
* Class: |?CLASSNAME:c|
|
||||
* Description: <CURSOR>
|
||||
* =====================================================================================
|
||||
*/
|
||||
class |CLASSNAME|
|
||||
{
|
||||
public:
|
||||
|
||||
/* ==================== LIFECYCLE ======================================= */
|
||||
|CLASSNAME| (); /* constructor */
|
||||
|CLASSNAME| ( const |CLASSNAME| &other ); /* copy constructor */
|
||||
~|CLASSNAME| (); /* destructor */
|
||||
|
||||
/* ==================== ACCESSORS ======================================= */
|
||||
|
||||
/* ==================== MUTATORS ======================================= */
|
||||
|
||||
/* ==================== OPERATORS ======================================= */
|
||||
|
||||
|CLASSNAME|& operator = ( const |CLASSNAME| &other ); /* assignment operator */
|
||||
|
||||
protected:
|
||||
/* ==================== DATA MEMBERS ======================================= */
|
||||
|
||||
private:
|
||||
/* ==================== DATA MEMBERS ======================================= */
|
||||
|
||||
}; /* ----- end of class |CLASSNAME| ----- */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.class-using-new-implementation ==
|
||||
/*
|
||||
*--------------------------------------------------------------------------------------
|
||||
* Class: |?CLASSNAME:c|
|
||||
* Method: |CLASSNAME|
|
||||
* Description: constructor
|
||||
*--------------------------------------------------------------------------------------
|
||||
*/
|
||||
|CLASSNAME|::|CLASSNAME| ()
|
||||
{<CURSOR>
|
||||
} /* ----- end of method |CLASSNAME|::|CLASSNAME| (constructor) ----- */
|
||||
|
||||
/*
|
||||
*--------------------------------------------------------------------------------------
|
||||
* Class: |CLASSNAME|
|
||||
* Method: |CLASSNAME|
|
||||
* Description: copy constructor
|
||||
*--------------------------------------------------------------------------------------
|
||||
*/
|
||||
|CLASSNAME|::|CLASSNAME| ( const |CLASSNAME| &other )
|
||||
{
|
||||
} /* ----- end of method |CLASSNAME|::|CLASSNAME| (copy constructor) ----- */
|
||||
|
||||
/*
|
||||
*--------------------------------------------------------------------------------------
|
||||
* Class: |CLASSNAME|
|
||||
* Method: ~|CLASSNAME|
|
||||
* Description: destructor
|
||||
*--------------------------------------------------------------------------------------
|
||||
*/
|
||||
|CLASSNAME|::~|CLASSNAME| ()
|
||||
{
|
||||
} /* ----- end of method |CLASSNAME|::~|CLASSNAME| (destructor) ----- */
|
||||
|
||||
/*
|
||||
*--------------------------------------------------------------------------------------
|
||||
* Class: |CLASSNAME|
|
||||
* Method: operator =
|
||||
* Description: assignment operator
|
||||
*--------------------------------------------------------------------------------------
|
||||
*/
|
||||
|CLASSNAME|&
|
||||
|CLASSNAME|::operator = ( const |CLASSNAME| &other )
|
||||
{
|
||||
if ( this != &other ) {
|
||||
}
|
||||
return *this;
|
||||
} /* ----- end of method |CLASSNAME|::operator = (assignment operator) ----- */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.error-class ==
|
||||
/*
|
||||
* =====================================================================================
|
||||
* Class: |?CLASSNAME:c|
|
||||
* Description: <CURSOR>
|
||||
* =====================================================================================
|
||||
*/
|
||||
class |CLASSNAME|
|
||||
{
|
||||
public: |CLASSNAME| ( string msg = "|CLASSNAME|" ):message(msg) { }
|
||||
virtual ~|CLASSNAME| ( ) { }
|
||||
virtual string what ( ) const throw ( ) { return message; }
|
||||
protected: string message;
|
||||
}; /* ----- end of class |CLASSNAME| ----- */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.template-method-implementation ==
|
||||
template < class T >
|
||||
void<CURSOR> |?CLASSNAME|<T>::|?METHODNAME| ( <+argument list+> )
|
||||
{
|
||||
return ;
|
||||
} /* ----- end of method |CLASSNAME|<T>::|METHODNAME| ----- */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.template-accessor-implementation ==
|
||||
/*
|
||||
*--------------------------------------------------------------------------------------
|
||||
* Class: |?CLASSNAME|
|
||||
* Method: get_|?ATTRIBUTE|
|
||||
*--------------------------------------------------------------------------------------
|
||||
*/
|
||||
template < class T >
|
||||
inline int<CURSOR> |CLASSNAME|<T>::get_|ATTRIBUTE| ( )
|
||||
{
|
||||
return |ATTRIBUTE|;
|
||||
} /* ----- end of method |CLASSNAME|<T>::get_|ATTRIBUTE| ----- */
|
||||
|
||||
/*
|
||||
*--------------------------------------------------------------------------------------
|
||||
* Class: |CLASSNAME|
|
||||
* Method: set_|ATTRIBUTE|
|
||||
*--------------------------------------------------------------------------------------
|
||||
*/
|
||||
template < class T >
|
||||
inline void |CLASSNAME|<T>::set_|ATTRIBUTE| ( <+argument list+> )
|
||||
{
|
||||
|ATTRIBUTE| = value;
|
||||
return ;
|
||||
} /* ----- end of method |CLASSNAME|<T>::set_|ATTRIBUTE| ----- */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.template-class-definition ==
|
||||
/*
|
||||
* =====================================================================================
|
||||
* Class: |?CLASSNAME:c|
|
||||
* Description: <CURSOR>
|
||||
* =====================================================================================
|
||||
*/
|
||||
template < class T >
|
||||
class |CLASSNAME|
|
||||
{
|
||||
public:
|
||||
|
||||
/* ==================== LIFECYCLE ======================================= */
|
||||
|CLASSNAME| (); /* constructor */
|
||||
|
||||
/* ==================== ACCESSORS ======================================= */
|
||||
|
||||
/* ==================== MUTATORS ======================================= */
|
||||
|
||||
/* ==================== OPERATORS ======================================= */
|
||||
|
||||
protected:
|
||||
/* ==================== DATA MEMBERS ======================================= */
|
||||
|
||||
private:
|
||||
/* ==================== DATA MEMBERS ======================================= */
|
||||
|
||||
}; /* ---------- end of template class |CLASSNAME| ---------- */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.template-class-implementation ==
|
||||
/*
|
||||
*--------------------------------------------------------------------------------------
|
||||
* Class: |?CLASSNAME:c|
|
||||
* Method: |CLASSNAME|
|
||||
* Description:
|
||||
*--------------------------------------------------------------------------------------
|
||||
*/
|
||||
template < class T >
|
||||
|CLASSNAME| < T >::|CLASSNAME| ()
|
||||
{<CURSOR>
|
||||
} /* ---------- end of constructor of template class |CLASSNAME| ---------- */
|
||||
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.template-class-using-new-definition ==
|
||||
/*
|
||||
* =====================================================================================
|
||||
* Class: |?CLASSNAME:c|
|
||||
* Description: <CURSOR>
|
||||
* =====================================================================================
|
||||
*/
|
||||
|
||||
template < class T >
|
||||
class |CLASSNAME|
|
||||
{
|
||||
public:
|
||||
|
||||
// ==================== LIFECYCLE =======================================
|
||||
|CLASSNAME| (); /* constructor */
|
||||
|CLASSNAME| ( const |CLASSNAME| &other ); /* copy constructor */
|
||||
~|CLASSNAME| (); /* destructor */
|
||||
|
||||
/* ==================== ACCESSORS ======================================= */
|
||||
|
||||
/* ==================== MUTATORS ======================================= */
|
||||
|
||||
/* ==================== OPERATORS ======================================= */
|
||||
|
||||
|CLASSNAME|& operator = ( const |CLASSNAME| &other ); // assignment operator
|
||||
|
||||
protected:
|
||||
/* ==================== DATA MEMBERS ======================================= */
|
||||
|
||||
private:
|
||||
/* ==================== DATA MEMBERS ======================================= */
|
||||
|
||||
}; /* ----- end of template class |CLASSNAME| ----- */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.template-class-using-new-implementation ==
|
||||
/*
|
||||
*--------------------------------------------------------------------------------------
|
||||
* Class: |?CLASSNAME:c|
|
||||
* Method: |CLASSNAME|
|
||||
* Description: constructor
|
||||
*--------------------------------------------------------------------------------------
|
||||
*/
|
||||
template < class T >
|
||||
|CLASSNAME|< T >::|CLASSNAME| ()
|
||||
{<CURSOR>
|
||||
} /* ---------- end of constructor of template class |CLASSNAME| ---------- */
|
||||
|
||||
/*
|
||||
*--------------------------------------------------------------------------------------
|
||||
* Class: |CLASSNAME|
|
||||
* Method: |CLASSNAME|
|
||||
* Description: copy constructor
|
||||
*--------------------------------------------------------------------------------------
|
||||
*/
|
||||
template < class T >
|
||||
|CLASSNAME|< T >::|CLASSNAME| ( const |CLASSNAME| &other )
|
||||
{
|
||||
} /* ---------- end of copy constructor of template class |CLASSNAME| ---------- */
|
||||
|
||||
/*
|
||||
*--------------------------------------------------------------------------------------
|
||||
* Class: |CLASSNAME|
|
||||
* Method: ~|CLASSNAME|
|
||||
* Description: destructor
|
||||
*--------------------------------------------------------------------------------------
|
||||
*/
|
||||
template < class T >
|
||||
|CLASSNAME|< T >::~|CLASSNAME| ()
|
||||
{
|
||||
} /* ---------- end of destructor of template class |CLASSNAME| ---------- */
|
||||
|
||||
/*
|
||||
*--------------------------------------------------------------------------------------
|
||||
* Class: |CLASSNAME|
|
||||
* Method: operator =
|
||||
* Description: assignment operator
|
||||
*--------------------------------------------------------------------------------------
|
||||
*/
|
||||
template < class T >
|
||||
|CLASSNAME|< T >& |CLASSNAME|< T >::operator = ( const |CLASSNAME| &other )
|
||||
{
|
||||
return *this;
|
||||
} /* ---------- end of assignment operator of template class |CLASSNAME| ---------- */
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.template-function ==
|
||||
template <class T>
|
||||
void<CURSOR> |?TEMPALTE_FUNCTION_NAME| ( <+argument list+> )
|
||||
{
|
||||
return ;
|
||||
} /* ----- end of template function |?TEMPALTE_FUNCTION_NAME| ----- */
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.operator-in ==
|
||||
ostream &
|
||||
operator << ( ostream & os, const |?CLASSNAME| & obj )
|
||||
{
|
||||
os << obj.<CURSOR> ;
|
||||
return os;
|
||||
} /* ----- end of function operator << ----- */
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.operator-out ==
|
||||
istream &
|
||||
operator >> ( istream & is, |?CLASSNAME| & obj )
|
||||
{
|
||||
is >> obj.<CURSOR> ;
|
||||
return is;
|
||||
} /* ----- end of function operator >> ----- */
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.try-catch ==
|
||||
try {
|
||||
<SPLIT>}
|
||||
catch ( const <CURSOR> &ExceptObj ) { /* handle exception: */
|
||||
}
|
||||
catch (...) { /* handle exception: unspecified */
|
||||
}
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.catch ==
|
||||
catch ( <CURSOR>const &ExceptObj ) { /* handle exception: */
|
||||
<SPLIT>}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.catch-points ==
|
||||
catch (...) { /* handle exception: */
|
||||
<SPLIT>}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.extern ==
|
||||
extern "C" {<CURSOR>
|
||||
<SPLIT>}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.open-input-file ==
|
||||
char *ifs_file_name = "<CURSOR>"; /* input file name */
|
||||
ifstream ifs; /* create ifstream object */
|
||||
|
||||
ifs.open (ifs_file_name); /* open ifstream */
|
||||
if (!ifs) {
|
||||
cerr << "\nERROR : failed to open input file " << ifs_file_name << endl;
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
<SPLIT>{-continue here-}
|
||||
ifs.close (); /* close ifstream */
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.open-output-file ==
|
||||
char *ofs_file_name = "<CURSOR>"; /* output file name */
|
||||
ofstream ofs; /* create ofstream object */
|
||||
|
||||
ofs.open (ofs_file_name); /* open ofstream */
|
||||
if (!ofs) {
|
||||
cerr << "\nERROR : failed to open output file " << ofs_file_name << endl;
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
<SPLIT>{-continue here-}
|
||||
ofs.close (); /* close ofstream */
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.namespace-std ==
|
||||
using namespace std;
|
||||
== cpp.namespace ==
|
||||
using namespace |?NAMESPACE|;
|
||||
== cpp.namespace-block ==
|
||||
namespace |?NAMESPACE| {<CURSOR>
|
||||
<SPLIT>} /* ----- end of namespace |NAMESPACE| ----- */
|
||||
== cpp.namespace-alias ==
|
||||
namespace |?NAMESPACE_ALIAS| = {-original namespace name-};
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.rtti-typeid == insert ==
|
||||
typeid(<CURSOR><SPLIT>)
|
||||
$
|
||||
== cpp.rtti-static-cast == insert ==
|
||||
static_cast<>(<CURSOR><SPLIT>)
|
||||
$
|
||||
== cpp.rtti-const-cast == insert ==
|
||||
const_cast<>(<CURSOR><SPLIT>)
|
||||
$
|
||||
== cpp.rtti-reinterpret-cast == insert ==
|
||||
reinterpret_cast<>(<CURSOR><SPLIT>)
|
||||
$
|
||||
== cpp.rtti-dynamic-cast == insert ==
|
||||
dynamic_cast<>(<CURSOR><SPLIT>)
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
@ -0,0 +1,133 @@
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.function ==
|
||||
/*
|
||||
* === FUNCTION ======================================================================
|
||||
* Name: |?FUNCTION_NAME|
|
||||
* Description:
|
||||
* =====================================================================================
|
||||
*/
|
||||
void<CURSOR>
|
||||
|FUNCTION_NAME| ( <+argument list+> )
|
||||
{
|
||||
<SPLIT> return <+return value+>;
|
||||
} /* ----- end of function |FUNCTION_NAME| ----- */
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.function-static ==
|
||||
/*
|
||||
* === FUNCTION ======================================================================
|
||||
* Name: |?FUNCTION_NAME|
|
||||
* Description:
|
||||
* =====================================================================================
|
||||
*/
|
||||
static void<CURSOR>
|
||||
|FUNCTION_NAME| ( <+argument list+> )
|
||||
{
|
||||
<SPLIT> return <+return value+>;
|
||||
} /* ----- end of static function |FUNCTION_NAME| ----- */
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.main ==
|
||||
#include <stdlib.h>
|
||||
|
||||
/*
|
||||
* === FUNCTION ======================================================================
|
||||
* Name: main
|
||||
* Description:
|
||||
* =====================================================================================
|
||||
*/
|
||||
int
|
||||
main ( int argc, char *argv[] )
|
||||
{<CURSOR>
|
||||
<SPLIT> return EXIT_SUCCESS;
|
||||
} /* ---------- end of function main ---------- */
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.enum ==
|
||||
enum |?ENUM_NAME| {<CURSOR>
|
||||
<SPLIT>}; /* ---------- end of enum |ENUM_NAME| ---------- */
|
||||
|
||||
typedef enum |ENUM_NAME| |ENUM_NAME:c|;
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.struct ==
|
||||
struct |?STRUCT_NAME| {<CURSOR>
|
||||
<SPLIT>}; /* ---------- end of struct |STRUCT_NAME| ---------- */
|
||||
|
||||
typedef struct |STRUCT_NAME| |STRUCT_NAME:c|;
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.union ==
|
||||
union |?UNION_NAME| {<CURSOR>
|
||||
<SPLIT>}; /* ---------- end of union |UNION_NAME| ---------- */
|
||||
|
||||
typedef union |UNION_NAME| |UNION_NAME:c|;
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.printf == insert ==
|
||||
printf ( "<CURSOR>\n" );
|
||||
== idioms.scanf == insert ==
|
||||
scanf ( "<CURSOR>", & );
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.calloc ==
|
||||
|?POINTER| = calloc ( (size_t)(<CURSOR><+COUNT+>), sizeof(<+TYPE+>) );
|
||||
if ( |POINTER|==NULL ) {
|
||||
fprintf ( stderr, "\ndynamic memory allocation failed\n" );
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
free (|POINTER|);
|
||||
|POINTER| = NULL;
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.malloc ==
|
||||
|?POINTER| = malloc ( sizeof(<CURSOR><+TYPE+>) );
|
||||
if ( |POINTER|==NULL ) {
|
||||
fprintf ( stderr, "\ndynamic memory allocation failed\n" );
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
free (|POINTER|);
|
||||
|POINTER| = NULL;
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.sizeof == insert ==
|
||||
sizeof(<CURSOR><SPLIT>)
|
||||
== idioms.assert == insert ==
|
||||
assert(<CURSOR><SPLIT>);
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.open-input-file ==
|
||||
FILE *|?FILEPOINTER|; /* input-file pointer */
|
||||
char *|FILEPOINTER|_file_name = "<CURSOR>"; /* input-file name */
|
||||
|
||||
|FILEPOINTER| = fopen( |FILEPOINTER|_file_name, "r" );
|
||||
if ( |FILEPOINTER| == NULL ) {
|
||||
fprintf ( stderr, "couldn't open file '%s'; %s\n",
|
||||
|FILEPOINTER|_file_name, strerror(errno) );
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
<SPLIT>{-continue here-}
|
||||
if( fclose(|FILEPOINTER|) == EOF ) { /* close input file */
|
||||
fprintf ( stderr, "couldn't close file '%s'; %s\n",
|
||||
|FILEPOINTER|_file_name, strerror(errno) );
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.open-output-file ==
|
||||
FILE *|?FILEPOINTER|; /* output-file pointer */
|
||||
char *|FILEPOINTER|_file_name = "<CURSOR>"; /* output-file name */
|
||||
|
||||
|FILEPOINTER| = fopen( |FILEPOINTER|_file_name, "w" );
|
||||
if ( |FILEPOINTER| == NULL ) {
|
||||
fprintf ( stderr, "couldn't open file '%s'; %s\n",
|
||||
|FILEPOINTER|_file_name, strerror(errno) );
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
<SPLIT>{-continue here-}
|
||||
if( fclose(|FILEPOINTER|) == EOF ) { /* close output file */
|
||||
fprintf ( stderr, "couldn't close file '%s'; %s\n",
|
||||
|FILEPOINTER|_file_name, strerror(errno) );
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.fprintf == insert ==
|
||||
fprintf ( |?FILEPOINTER|, "<CURSOR>\n", );
|
||||
== idioms.fscanf == insert ==
|
||||
fscanf ( |?FILEPOINTER|, "<CURSOR>", & );
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
@ -0,0 +1,49 @@
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.include-global ==
|
||||
#include <<CURSOR>>
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.include-local ==
|
||||
#include "<CURSOR>"
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.define ==
|
||||
#define <CURSOR> /* */
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.undefine ==
|
||||
#undef <CURSOR> /* */
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.if-else-endif ==
|
||||
#if |?CONDITION:u|
|
||||
<CURSOR><SPLIT>
|
||||
#else /* ----- not |CONDITION| ----- */
|
||||
<+ELSE PART+>
|
||||
#endif /* ----- not |CONDITION| ----- */
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.ifdef-else-endif ==
|
||||
#ifdef |?CONDITION:u|
|
||||
<CURSOR><SPLIT>
|
||||
#else /* ----- not |CONDITION| ----- */
|
||||
<+ELSE PART+>
|
||||
#endif /* ----- not |CONDITION| ----- */
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.ifndef-else-endif ==
|
||||
#ifndef |?CONDITION:u|
|
||||
<CURSOR><SPLIT>
|
||||
#else /* ----- not |CONDITION| ----- */
|
||||
<+ELSE PART+>
|
||||
#endif /* ----- not |CONDITION| ----- */
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.ifndef-def-endif ==
|
||||
#ifndef |?BASENAME:L|_INC
|
||||
#define |BASENAME|_INC
|
||||
<CURSOR><SPLIT>
|
||||
#endif /* ----- #ifndef |BASENAME|_INC ----- */
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.error ==
|
||||
#error "<CURSOR>" /* */
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.line ==
|
||||
#line <CURSOR> /* */
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.pragma ==
|
||||
#pragma <CURSOR> /* */
|
||||
$-------------------------------------------------------------------------
|
@ -0,0 +1,69 @@
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.do-while ==
|
||||
do {
|
||||
<SPLIT>} while ( <CURSOR> ); /* ----- end do-while ----- */
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.for ==
|
||||
for ( <CURSOR>; ; )
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.for-block ==
|
||||
for ( <CURSOR>; ; ) {
|
||||
<SPLIT>}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.if ==
|
||||
if ( <CURSOR> )
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.if-block ==
|
||||
if ( <CURSOR> ) {
|
||||
<SPLIT><-IF PART->
|
||||
}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.if-else ==
|
||||
if ( <CURSOR> )
|
||||
<SPLIT>else
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.if-block-else ==
|
||||
if ( <CURSOR> ) {
|
||||
<SPLIT><-IF PART->
|
||||
}
|
||||
else {
|
||||
<-ELSE PART->
|
||||
}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.else-block ==
|
||||
else {
|
||||
<CURSOR><SPLIT>
|
||||
}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.while ==
|
||||
while ( <CURSOR> )
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.while-block ==
|
||||
while ( <CURSOR> ) {
|
||||
<SPLIT>}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.switch ==
|
||||
switch ( <CURSOR> ) {
|
||||
case <-LABEL->:
|
||||
<SPLIT>break;
|
||||
|
||||
case <-LABEL->:
|
||||
break;
|
||||
|
||||
case <-LABEL->:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
} /* ----- end switch ----- */
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.case ==
|
||||
case <CURSOR>:
|
||||
break;
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.block ==
|
||||
{
|
||||
<CURSOR><SPLIT>
|
||||
}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
@ -0,0 +1,168 @@
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.end-of-line-comment == append ==
|
||||
// <CURSOR>
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.frame ==
|
||||
//----------------------------------------------------------------------
|
||||
// <CURSOR>
|
||||
//----------------------------------------------------------------------
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.function ==
|
||||
// === FUNCTION ======================================================================
|
||||
// Name: |?FUNCTION_NAME|
|
||||
// Description: <CURSOR>
|
||||
// =====================================================================================
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.method ==
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Class: |?CLASSNAME|
|
||||
// Method: |?METHODNAME|
|
||||
// Description: <CURSOR>
|
||||
//--------------------------------------------------------------------------------------
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.class ==
|
||||
// =====================================================================================
|
||||
// Class: |?CLASSNAME|
|
||||
// Description: <CURSOR>
|
||||
// =====================================================================================
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-description == start ==
|
||||
// =====================================================================================
|
||||
//
|
||||
// Filename: |FILENAME|
|
||||
//
|
||||
// Description: <CURSOR>
|
||||
//
|
||||
// Version: 1.0
|
||||
// Created: |DATE| |TIME|
|
||||
// Revision: none
|
||||
// Compiler: g++
|
||||
//
|
||||
// Author: |AUTHOR| (|AUTHORREF|), |EMAIL|
|
||||
// Company: |COMPANY|
|
||||
//
|
||||
// =====================================================================================
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-description-header == start ==
|
||||
// =====================================================================================
|
||||
//
|
||||
// Filename: |FILENAME|
|
||||
//
|
||||
// Description: <CURSOR>
|
||||
//
|
||||
// Version: 1.0
|
||||
// Created: |DATE| |TIME|
|
||||
// Revision: none
|
||||
// Compiler: g++
|
||||
//
|
||||
// Author: |AUTHOR| (|AUTHORREF|), |EMAIL|
|
||||
// Company: |COMPANY|
|
||||
//
|
||||
// =====================================================================================
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-header-includes ==
|
||||
// ##### HEADER FILE INCLUDES ###################################################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-macros ==
|
||||
// ##### MACROS - LOCAL TO THIS SOURCE FILE ###################################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-typedefs ==
|
||||
// ##### TYPE DEFINITIONS - LOCAL TO THIS SOURCE FILE #########################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-data-types ==
|
||||
// ##### DATA TYPES - LOCAL TO THIS SOURCE FILE ###############################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-class-defs ==
|
||||
// ##### CLASS DEFINITIONS - LOCAL TO THIS SOURCE FILE ########################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-local-variables ==
|
||||
// ##### VARIABLES - LOCAL TO THIS SOURCE FILE ################################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-prototypes ==
|
||||
// ##### PROTOTYPES - LOCAL TO THIS SOURCE FILE ###############################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-function-defs-exported ==
|
||||
// ##### FUNCTION DEFINITIONS - EXPORTED FUNCTIONS ############################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-function-defs-local ==
|
||||
// ##### FUNCTION DEFINITIONS - LOCAL TO THIS SOURCE FILE #####################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-class-implementations-exported ==
|
||||
// ##### CLASS IMPLEMENTATIONS - EXPORTED CLASSES #############################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-cpp-class-implementations-local ==
|
||||
// ##### CLASS IMPLEMENTATIONS - LOCAL CLASSES ################################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-hpp-header-includes ==
|
||||
// ##### HEADER FILE INCLUDES ###################################################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-hpp-macros ==
|
||||
// ##### EXPORTED MACROS ########################################################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-hpp-exported-typedefs ==
|
||||
// ##### EXPORTED TYPE DEFINITIONS ##############################################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-hpp-exported-data-types ==
|
||||
// ##### EXPORTED DATA TYPES ####################################################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-hpp-exported-class-defs ==
|
||||
// ##### EXPORTED CLASS DEFINITIONS #############################################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-hpp-exported-variables ==
|
||||
// ##### EXPORTED VARIABLES #####################################################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.file-section-hpp-exported-function-declarations ==
|
||||
// ##### EXPORTED FUNCTION DECLARATIONS #########################################
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.keyword-bug == append ==
|
||||
// :BUG:|DATE| |TIME|:|AUTHORREF|: <CURSOR>
|
||||
== comment.keyword-compiler == append ==
|
||||
// :COMPILER:|DATE| |TIME|:|AUTHORREF|: <CURSOR>
|
||||
== comment.keyword-todo == append ==
|
||||
// :TODO:|DATE| |TIME|:|AUTHORREF|: <CURSOR>
|
||||
== comment.keyword-tricky == append ==
|
||||
// :TRICKY:|DATE| |TIME|:|AUTHORREF|: <CURSOR>
|
||||
== comment.keyword-warning == append ==
|
||||
// :WARNING:|DATE| |TIME|:|AUTHORREF|: <CURSOR>
|
||||
== comment.keyword-workaround == append ==
|
||||
// :WORKAROUND:|DATE| |TIME|:|AUTHORREF|: <CURSOR>
|
||||
== comment.keyword-keyword == append ==
|
||||
// :|?KEYWORD:u|:|DATE| |TIME|:|AUTHORREF|: <CURSOR>
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== comment.special-empty == append ==
|
||||
// EMPTY<CURSOR>
|
||||
== comment.special-fall-through == append ==
|
||||
// FALL THROUGH<CURSOR>
|
||||
== comment.special-implicit-type-conversion == append ==
|
||||
// IMPLICIT TYPE CONVERSION<CURSOR>
|
||||
== comment.special-no-return == append ==
|
||||
// NO RETURN<CURSOR>
|
||||
== comment.special-not-reached == append ==
|
||||
// NOT REACHED<CURSOR>
|
||||
== comment.special-remains-to-be-implemented == append ==
|
||||
// REMAINS TO BE IMPLEMENTED<CURSOR>
|
||||
== comment.special-constant-type-is-long == append ==
|
||||
// constant type is long<CURSOR>
|
||||
== comment.special-constant-type-is-unsigned == append ==
|
||||
// constant type is unsigned<CURSOR>
|
||||
== comment.special-constant-type-is-unsigned-long == append ==
|
||||
// constant type is unsigned long<CURSOR>
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
@ -0,0 +1,450 @@
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
$
|
||||
== cpp.cin ==
|
||||
cin >> <CURSOR>;
|
||||
$
|
||||
== cpp.cout ==
|
||||
cout << <CURSOR> << endl;
|
||||
$
|
||||
== cpp.cout-operator == insert ==
|
||||
<< "<CURSOR>"
|
||||
$
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.output-manipulator-boolalpha == insert ==
|
||||
<< boolalpha <CURSOR>
|
||||
== cpp.output-manipulator-dec == insert ==
|
||||
<< dec <CURSOR>
|
||||
== cpp.output-manipulator-endl == insert ==
|
||||
<< endl <CURSOR>
|
||||
== cpp.output-manipulator-fixed == insert ==
|
||||
<< fixed <CURSOR>
|
||||
== cpp.output-manipulator-flush == insert ==
|
||||
<< flush <CURSOR>
|
||||
== cpp.output-manipulator-hex == insert ==
|
||||
<< hex <CURSOR>
|
||||
== cpp.output-manipulator-internal == insert ==
|
||||
<< internal <CURSOR>
|
||||
== cpp.output-manipulator-left == insert ==
|
||||
<< left <CURSOR>
|
||||
== cpp.output-manipulator-oct == insert ==
|
||||
<< oct <CURSOR>
|
||||
== cpp.output-manipulator-right == insert ==
|
||||
<< right <CURSOR>
|
||||
== cpp.output-manipulator-scientific == insert ==
|
||||
<< scientific <CURSOR>
|
||||
== cpp.output-manipulator-setbase == insert ==
|
||||
<< setbase(10<CURSOR>)
|
||||
== cpp.output-manipulator-setfill == insert ==
|
||||
<< setfill(<CURSOR>)
|
||||
== cpp.output-manipulator-setiosflag == insert ==
|
||||
<< setiosflags(<CURSOR>)
|
||||
== cpp.output-manipulator-setprecision == insert ==
|
||||
<< setprecision(6<CURSOR>)
|
||||
== cpp.output-manipulator-setw == insert ==
|
||||
<< setw(0<CURSOR>)
|
||||
== cpp.output-manipulator-showbase == insert ==
|
||||
<< showbase <CURSOR>
|
||||
== cpp.output-manipulator-showpoint == insert ==
|
||||
<< showpoint <CURSOR>
|
||||
== cpp.output-manipulator-showpos == insert ==
|
||||
<< showpos <CURSOR>
|
||||
== cpp.output-manipulator-uppercase == insert ==
|
||||
<< uppercase <CURSOR>
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.method-implementation ==
|
||||
void<CURSOR>
|
||||
|?CLASSNAME|::|?METHODNAME| ( <+argument list+> )
|
||||
{
|
||||
return ;
|
||||
} // ----- end of method |CLASSNAME|::|METHODNAME| -----
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.accessor-implementation ==
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Class: |?CLASSNAME|
|
||||
// Method: get_|?ATTRIBUTE|
|
||||
//--------------------------------------------------------------------------------------
|
||||
inline int<CURSOR>
|
||||
|CLASSNAME|::get_|ATTRIBUTE| ( )
|
||||
{
|
||||
return |ATTRIBUTE|;
|
||||
} // ----- end of method |CLASSNAME|::get_|ATTRIBUTE| -----
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Class: |CLASSNAME|
|
||||
// Method: set_|ATTRIBUTE|
|
||||
//--------------------------------------------------------------------------------------
|
||||
inline void
|
||||
|CLASSNAME|::set_|ATTRIBUTE| ( <+argument list+> )
|
||||
{
|
||||
|ATTRIBUTE| = value;
|
||||
return ;
|
||||
} // ----- end of method |CLASSNAME|::set_|ATTRIBUTE| -----
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.class-definition ==
|
||||
// =====================================================================================
|
||||
// Class: |?CLASSNAME:c|
|
||||
// Description: <CURSOR>
|
||||
// =====================================================================================
|
||||
class |CLASSNAME|
|
||||
{
|
||||
public:
|
||||
|
||||
// ==================== LIFECYCLE =======================================
|
||||
|CLASSNAME| (); // constructor
|
||||
|
||||
// ==================== ACCESSORS =======================================
|
||||
|
||||
// ==================== MUTATORS =======================================
|
||||
|
||||
// ==================== OPERATORS =======================================
|
||||
|
||||
protected:
|
||||
// ==================== DATA MEMBERS =======================================
|
||||
|
||||
private:
|
||||
// ==================== DATA MEMBERS =======================================
|
||||
|
||||
}; // ----- end of class |CLASSNAME| -----
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.class-implementation ==
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Class: |?CLASSNAME|
|
||||
// Method: |CLASSNAME|
|
||||
// Description: constructor
|
||||
//--------------------------------------------------------------------------------------
|
||||
|CLASSNAME|::|CLASSNAME| ()
|
||||
{<CURSOR>
|
||||
} // ----- end of method |CLASSNAME|::|CLASSNAME| (constructor) -----
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.class-using-new-definition ==
|
||||
// =====================================================================================
|
||||
// Class: |?CLASSNAME:c|
|
||||
// Description: <CURSOR>
|
||||
// =====================================================================================
|
||||
class |CLASSNAME|
|
||||
{
|
||||
public:
|
||||
|
||||
// ==================== LIFECYCLE =======================================
|
||||
|CLASSNAME| (); // constructor
|
||||
|CLASSNAME| ( const |CLASSNAME| &other ); // copy constructor
|
||||
~|CLASSNAME| (); // destructor
|
||||
|
||||
// ==================== ACCESSORS =======================================
|
||||
|
||||
// ==================== MUTATORS =======================================
|
||||
|
||||
// ==================== OPERATORS =======================================
|
||||
|
||||
|CLASSNAME|& operator = ( const |CLASSNAME| &other ); // assignment operator
|
||||
|
||||
protected:
|
||||
// ==================== DATA MEMBERS =======================================
|
||||
|
||||
private:
|
||||
// ==================== DATA MEMBERS =======================================
|
||||
|
||||
}; // ----- end of class |CLASSNAME| -----
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.class-using-new-implementation ==
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Class: |?CLASSNAME|
|
||||
// Method: |CLASSNAME|
|
||||
// Description: constructor
|
||||
//--------------------------------------------------------------------------------------
|
||||
|CLASSNAME|::|CLASSNAME| ()
|
||||
{<CURSOR>
|
||||
} // ----- end of method |CLASSNAME|::|CLASSNAME| (constructor) -----
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Class: |CLASSNAME|
|
||||
// Method: |CLASSNAME|
|
||||
// Description: copy constructor
|
||||
//--------------------------------------------------------------------------------------
|
||||
|CLASSNAME|::|CLASSNAME| ( const |CLASSNAME| &other )
|
||||
{
|
||||
} // ----- end of method |CLASSNAME|::|CLASSNAME| (copy constructor) -----
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Class: |CLASSNAME|
|
||||
// Method: ~|CLASSNAME|
|
||||
// Description: destructor
|
||||
//--------------------------------------------------------------------------------------
|
||||
|CLASSNAME|::~|CLASSNAME| ()
|
||||
{
|
||||
} // ----- end of method |CLASSNAME|::~|CLASSNAME| (destructor) -----
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Class: |CLASSNAME|
|
||||
// Method: operator =
|
||||
// Description: assignment operator
|
||||
//--------------------------------------------------------------------------------------
|
||||
|CLASSNAME|&
|
||||
|CLASSNAME|::operator = ( const |CLASSNAME| &other )
|
||||
{
|
||||
if ( this != &other ) {
|
||||
}
|
||||
return *this;
|
||||
} // ----- end of method |CLASSNAME|::operator = (assignment operator) -----
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.error-class ==
|
||||
// =====================================================================================
|
||||
// Class: |?CLASSNAME:c|
|
||||
// Description: <CURSOR>
|
||||
// =====================================================================================
|
||||
class |CLASSNAME|
|
||||
{
|
||||
public: |CLASSNAME| ( string msg = "|CLASSNAME|" ):message(msg) { }
|
||||
virtual ~|CLASSNAME| ( ) { }
|
||||
virtual string what ( ) const throw ( ) { return message; }
|
||||
protected: string message;
|
||||
}; // ---------- end of class |CLASSNAME| ----------
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.template-method-implementation ==
|
||||
template < class T >
|
||||
void<CURSOR> |?CLASSNAME|<T>::|?METHODNAME| ( <+argument list+> )
|
||||
{
|
||||
return ;
|
||||
} // ----- end of method |CLASSNAME|<T>::|METHODNAME| -----
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.template-accessor-implementation ==
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Class: |?CLASSNAME|
|
||||
// Method: get_|?ATTRIBUTE|
|
||||
//--------------------------------------------------------------------------------------
|
||||
template < class T >
|
||||
inline int<CURSOR> |CLASSNAME|<T>::get_|ATTRIBUTE| ( )
|
||||
{
|
||||
return |ATTRIBUTE|;
|
||||
} // ----- end of method |CLASSNAME|<T>::get_|ATTRIBUTE| -----
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Class: |CLASSNAME|
|
||||
// Method: set_|ATTRIBUTE|
|
||||
//--------------------------------------------------------------------------------------
|
||||
template < class T >
|
||||
inline void |CLASSNAME|<T>::set_|ATTRIBUTE| ( <+argument list+> )
|
||||
{
|
||||
|ATTRIBUTE| = value;
|
||||
return ;
|
||||
} // ----- end of method |CLASSNAME|<T>::set_|ATTRIBUTE| -----
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.template-class-definition ==
|
||||
// =====================================================================================
|
||||
// Class: |?CLASSNAME:c|
|
||||
// Description: <CURSOR>
|
||||
// =====================================================================================
|
||||
|
||||
template < class T >
|
||||
class |CLASSNAME|
|
||||
{
|
||||
public:
|
||||
|
||||
// ==================== LIFECYCLE =======================================
|
||||
|CLASSNAME| (); // constructor
|
||||
|
||||
// ==================== ACCESSORS =======================================
|
||||
|
||||
// ==================== MUTATORS =======================================
|
||||
|
||||
// ==================== OPERATORS =======================================
|
||||
|
||||
protected:
|
||||
// ==================== DATA MEMBERS =======================================
|
||||
|
||||
private:
|
||||
// ==================== DATA MEMBERS =======================================
|
||||
|
||||
}; // ----- end of template class |CLASSNAME| -----
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.template-class-implementation ==
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Class: |?CLASSNAME|
|
||||
// Method: |CLASSNAME|
|
||||
// Description: constructor
|
||||
//--------------------------------------------------------------------------------------
|
||||
template < class T >
|
||||
|CLASSNAME| <T>:: |CLASSNAME| ()
|
||||
{<CURSOR>
|
||||
} // ----- end of constructor of template class |CLASSNAME| -----
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.template-class-using-new-definition ==
|
||||
// =====================================================================================
|
||||
// Class: |?CLASSNAME:c|
|
||||
// Description: <CURSOR>
|
||||
// =====================================================================================
|
||||
|
||||
template < class T >
|
||||
class |CLASSNAME|
|
||||
{
|
||||
public:
|
||||
|
||||
// ==================== LIFECYCLE =======================================
|
||||
|CLASSNAME| (); // constructor
|
||||
|CLASSNAME| ( const |CLASSNAME| &other ); // copy constructor
|
||||
~|CLASSNAME| (); // destructor
|
||||
|
||||
// ==================== ACCESSORS =======================================
|
||||
|
||||
// ==================== MUTATORS =======================================
|
||||
|
||||
// ==================== OPERATORS =======================================
|
||||
|
||||
|CLASSNAME|& operator = ( const |CLASSNAME| &other ); // assignment operator
|
||||
|
||||
protected:
|
||||
// ==================== DATA MEMBERS =======================================
|
||||
|
||||
private:
|
||||
// ==================== DATA MEMBERS =======================================
|
||||
|
||||
}; // ----- end of template class |CLASSNAME| -----
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.template-class-using-new-implementation ==
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Class: |?CLASSNAME|
|
||||
// Method: |CLASSNAME|
|
||||
// Description: constructor
|
||||
//--------------------------------------------------------------------------------------
|
||||
template < class T >
|
||||
|CLASSNAME|<T>::|CLASSNAME| ()
|
||||
{
|
||||
} // ----- end of constructor of template class |CLASSNAME| -----
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Class: |CLASSNAME|
|
||||
// Method: |CLASSNAME|
|
||||
// Description: copy constructor
|
||||
//--------------------------------------------------------------------------------------
|
||||
template < class T >
|
||||
|CLASSNAME|<T>::|CLASSNAME| ( const |CLASSNAME| &other )
|
||||
{<CURSOR>
|
||||
} // ----- end of copy constructor of template class |CLASSNAME| -----
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Class: |CLASSNAME|
|
||||
// Method: ~|CLASSNAME|
|
||||
// Description: destructor
|
||||
//--------------------------------------------------------------------------------------
|
||||
template < class T >
|
||||
|CLASSNAME|<T>::~|CLASSNAME| ()
|
||||
{
|
||||
} // ----- end of destructor of template class |CLASSNAME| -----
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Class: |CLASSNAME|
|
||||
// Method: operator =
|
||||
// Description: assignment operator
|
||||
//--------------------------------------------------------------------------------------
|
||||
template < class T >
|
||||
|CLASSNAME|<T>& |CLASSNAME|<T>::operator = ( const |CLASSNAME| &other )
|
||||
{
|
||||
if ( this != &other ) {
|
||||
}
|
||||
return *this;
|
||||
} // ----- end of assignment operator of template class |CLASSNAME| -----
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.template-function ==
|
||||
template <class T>
|
||||
void<CURSOR> |?TEMPALTE_FUNCTION_NAME| ( <+argument list+> )
|
||||
{
|
||||
return ;
|
||||
} // ----- end of template function |?TEMPALTE_FUNCTION_NAME| -----
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.operator-in ==
|
||||
ostream &
|
||||
operator << ( ostream & os, const |?CLASSNAME| & obj )
|
||||
{
|
||||
os << obj.<CURSOR> ;
|
||||
return os;
|
||||
} // ----- end of function operator << -----
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.operator-out ==
|
||||
istream &
|
||||
operator >> ( istream & is, |?CLASSNAME| & obj )
|
||||
{
|
||||
is >> obj.<CURSOR> ;
|
||||
return is;
|
||||
} // ----- end of function operator >> -----
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.try-catch ==
|
||||
try {
|
||||
<SPLIT>}
|
||||
catch ( const <CURSOR> &ExceptObj ) { // handle exception:
|
||||
}
|
||||
catch (...) { // handle exception: unspecified
|
||||
}
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.catch ==
|
||||
catch ( <CURSOR>const &ExceptObj ) { // handle exception:
|
||||
<SPLIT>}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.catch-points ==
|
||||
catch (...) { // handle exception:
|
||||
<SPLIT>}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.extern ==
|
||||
extern "C" {<CURSOR>
|
||||
<SPLIT>}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.open-input-file ==
|
||||
string ifs_file_name = "<CURSOR>"; // input file name
|
||||
ifstream ifs; // create ifstream object
|
||||
|
||||
ifs.open ( ifs_file_name.c_str() ); // open ifstream
|
||||
if (!ifs) {
|
||||
cerr << "\nERROR : failed to open input file " << ifs_file_name << endl;
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
<SPLIT>{-continue here-}
|
||||
ifs.close (); // close ifstream
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.open-output-file ==
|
||||
string ofs_file_name = "<CURSOR>"; // input file name
|
||||
ofstream ofs; // create ofstream object
|
||||
|
||||
ofs.open ( ofs_file_name.c_str() ); // open ofstream
|
||||
if (!ofs) {
|
||||
cerr << "\nERROR : failed to open output file " << ofs_file_name << endl;
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
<SPLIT>{-continue here-}
|
||||
ofs.close (); // close ofstream
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.namespace-std ==
|
||||
using namespace std;
|
||||
== cpp.namespace ==
|
||||
using namespace |?NAMESPACE|;
|
||||
== cpp.namespace-block ==
|
||||
namespace |?NAMESPACE| {<CURSOR>
|
||||
<SPLIT>} // ----- end of namespace |NAMESPACE| -----
|
||||
== cpp.namespace-alias ==
|
||||
namespace |?NAMESPACE_ALIAS| = {-original namespace name-};
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== cpp.rtti-typeid == insert ==
|
||||
typeid(<CURSOR><SPLIT>)
|
||||
$
|
||||
== cpp.rtti-static-cast == insert ==
|
||||
static_cast<>(<CURSOR><SPLIT>)
|
||||
$
|
||||
== cpp.rtti-const-cast == insert ==
|
||||
const_cast<>(<CURSOR><SPLIT>)
|
||||
$
|
||||
== cpp.rtti-reinterpret-cast == insert ==
|
||||
reinterpret_cast<>(<CURSOR><SPLIT>)
|
||||
$
|
||||
== cpp.rtti-dynamic-cast == insert ==
|
||||
dynamic_cast<>(<CURSOR><SPLIT>)
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
@ -0,0 +1,109 @@
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.function ==
|
||||
void<CURSOR>
|
||||
|?FUNCTION_NAME| ( <+argument list+> )
|
||||
{
|
||||
<SPLIT> return <+return value+>;
|
||||
} // ----- end of function |FUNCTION_NAME| -----
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.function-static ==
|
||||
static void<CURSOR>
|
||||
|?FUNCTION_NAME| ( <+argument list+> )
|
||||
{
|
||||
<SPLIT> return <+return value+>;
|
||||
} // ----- end of static function |FUNCTION_NAME| -----
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.main ==
|
||||
#include <cstdlib>
|
||||
|
||||
int
|
||||
main ( int argc, char *argv[] )
|
||||
{<CURSOR>
|
||||
<SPLIT> return EXIT_SUCCESS;
|
||||
} // ---------- end of function main ----------
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.enum ==
|
||||
enum |?ENUM_NAME| {<CURSOR>
|
||||
<SPLIT>}; // ---------- end of enum |ENUM_NAME| ----------
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.struct ==
|
||||
struct |?STRUCT_NAME| {<CURSOR>
|
||||
<SPLIT>}; // ---------- end of struct |STRUCT_NAME| ----------
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.union ==
|
||||
union |?UNION_NAME| {<CURSOR>
|
||||
<SPLIT>}; // ---------- end of union |UNION_NAME| ----------
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.printf == insert ==
|
||||
printf ( "<CURSOR>\n" );
|
||||
== idioms.scanf == insert ==
|
||||
scanf ( "<CURSOR>", & );
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.calloc ==
|
||||
|?POINTER| = calloc ( (size_t)(<CURSOR><+COUNT+>), sizeof(<+TYPE+>) );
|
||||
if ( |POINTER|==NULL ) {
|
||||
fprintf ( stderr, "\ndynamic memory allocation failed\n" );
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
free (|POINTER|);
|
||||
|POINTER| = NULL;
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.malloc ==
|
||||
|?POINTER| = malloc ( sizeof(<CURSOR><+TYPE+>) );
|
||||
if ( |POINTER|==NULL ) {
|
||||
fprintf ( stderr, "\ndynamic memory allocation failed\n" );
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
free (|POINTER|);
|
||||
|POINTER| = NULL;
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.sizeof == insert ==
|
||||
sizeof(<CURSOR><SPLIT>)
|
||||
== idioms.assert == insert ==
|
||||
assert(<CURSOR><SPLIT>);
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.open-input-file ==
|
||||
FILE *|?FILEPOINTER|; // input-file pointer
|
||||
char *|FILEPOINTER|_file_name = "<CURSOR>"; // input-file name
|
||||
|
||||
|FILEPOINTER| = fopen( |FILEPOINTER|_file_name, "r" );
|
||||
if ( |FILEPOINTER| == NULL ) {
|
||||
fprintf ( stderr, "couldn't open file '%s'; %s\n",
|
||||
|FILEPOINTER|_file_name, strerror(errno) );
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
<SPLIT>{-continue here-}
|
||||
if( fclose(|FILEPOINTER|) == EOF ) { // close input file
|
||||
fprintf ( stderr, "couldn't close file '%s'; %s\n",
|
||||
|FILEPOINTER|_file_name, strerror(errno) );
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.open-output-file ==
|
||||
FILE *|?FILEPOINTER|; // output-file pointer
|
||||
char *|FILEPOINTER|_file_name = "<CURSOR>"; // output-file name
|
||||
|
||||
|FILEPOINTER| = fopen( |FILEPOINTER|_file_name, "w" );
|
||||
if ( |FILEPOINTER| == NULL ) {
|
||||
fprintf ( stderr, "couldn't open file '%s'; %s\n",
|
||||
|FILEPOINTER|_file_name, strerror(errno) );
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
<SPLIT>{-continue here-}
|
||||
if( fclose(|FILEPOINTER|) == EOF ) { // close output file
|
||||
fprintf ( stderr, "couldn't close file '%s'; %s\n",
|
||||
|FILEPOINTER|_file_name, strerror(errno) );
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== idioms.fprintf == insert ==
|
||||
fprintf ( |?FILEPOINTER|, "<CURSOR>\n", );
|
||||
== idioms.fscanf == insert ==
|
||||
fscanf ( |?FILEPOINTER|, "<CURSOR>", & );
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
@ -0,0 +1,50 @@
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.include-global ==
|
||||
#include <<CURSOR>>
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.include-local ==
|
||||
#include "<CURSOR>"
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.define ==
|
||||
#define <CURSOR> //
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.undefine ==
|
||||
#undef <CURSOR> //
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.if-else-endif ==
|
||||
#if |?CONDITION:u|
|
||||
<CURSOR><SPLIT>
|
||||
#else // ----- not |CONDITION| -----
|
||||
<+ELSE PART+>
|
||||
|
||||
#endif // ----- not |CONDITION| -----
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.ifdef-else-endif ==
|
||||
#ifdef |?CONDITION:u|
|
||||
<CURSOR><SPLIT>
|
||||
#else // ----- not |CONDITION| -----
|
||||
<+ELSE PART+>
|
||||
#endif // ----- not |CONDITION| -----
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.ifndef-else-endif ==
|
||||
#ifndef |?CONDITION:u|
|
||||
<CURSOR><SPLIT>
|
||||
#else // ----- not |CONDITION| -----
|
||||
<+ELSE PART+>
|
||||
#endif // ----- not |CONDITION| -----
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.ifndef-def-endif ==
|
||||
#ifndef |?BASENAME:L|_INC
|
||||
#define |BASENAME|_INC
|
||||
<CURSOR><SPLIT>
|
||||
#endif // ----- #ifndef |BASENAME|_INC -----
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.error ==
|
||||
#error "<CURSOR>" //
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.line ==
|
||||
#line <CURSOR> //
|
||||
$-------------------------------------------------------------------------
|
||||
== preprocessor.pragma ==
|
||||
#pragma <CURSOR> //
|
||||
$-------------------------------------------------------------------------
|
@ -0,0 +1,72 @@
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.do-while ==
|
||||
do {
|
||||
<SPLIT>} while ( <CURSOR> ); // ----- end do-while -----
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.for ==
|
||||
for ( <CURSOR>; ; )
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.for-block ==
|
||||
for ( <CURSOR>; ; ) {
|
||||
<SPLIT>}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.if ==
|
||||
if ( <CURSOR> )
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.if-block ==
|
||||
if ( <CURSOR> ) {
|
||||
<SPLIT><-IF PART->
|
||||
}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.if-else ==
|
||||
if ( <CURSOR> )
|
||||
<SPLIT>else
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.if-block-else ==
|
||||
if ( <CURSOR> ) {
|
||||
<SPLIT><-IF PART->
|
||||
}
|
||||
else {
|
||||
<+ELSE PART+>
|
||||
}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.else-block ==
|
||||
else {
|
||||
<CURSOR><SPLIT>
|
||||
}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.while ==
|
||||
while ( <CURSOR> )
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.while-block ==
|
||||
while ( <CURSOR> ) {
|
||||
<SPLIT>}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.switch ==
|
||||
switch ( <CURSOR> ) {
|
||||
case 1:
|
||||
<SPLIT>break;
|
||||
|
||||
case 2:
|
||||
break;
|
||||
|
||||
case 3:
|
||||
break;
|
||||
|
||||
case 4:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
} // ----- end switch -----
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.case ==
|
||||
case <CURSOR>:
|
||||
break;
|
||||
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
== statements.block ==
|
||||
{
|
||||
<CURSOR><SPLIT>
|
||||
}
|
||||
$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
@ -0,0 +1,209 @@
|
||||
adjustfield
|
||||
basefield
|
||||
boolalpha
|
||||
floatfield
|
||||
internal
|
||||
scientific
|
||||
setbase
|
||||
setiosflags
|
||||
setprecision
|
||||
showbase
|
||||
showpoint
|
||||
showpos
|
||||
uppercase
|
||||
|
||||
auto
|
||||
break
|
||||
case
|
||||
char
|
||||
const
|
||||
continue
|
||||
default
|
||||
double
|
||||
else
|
||||
enum
|
||||
extern
|
||||
float
|
||||
goto
|
||||
inline
|
||||
long
|
||||
register
|
||||
restrict
|
||||
return
|
||||
short
|
||||
signed
|
||||
sizeof
|
||||
static
|
||||
struct
|
||||
switch
|
||||
typedef
|
||||
union
|
||||
unsigned
|
||||
void
|
||||
volatile
|
||||
while
|
||||
_Bool
|
||||
_Complex
|
||||
_Imaginary
|
||||
EXIT_FAILURE
|
||||
EXIT_SUCCESS
|
||||
|
||||
bool
|
||||
catch
|
||||
class
|
||||
const_cast
|
||||
delete
|
||||
dynamic_cast
|
||||
explicit
|
||||
export
|
||||
false
|
||||
friend
|
||||
mutable
|
||||
namespace
|
||||
operator
|
||||
private
|
||||
protected
|
||||
public
|
||||
reinterpret_cast
|
||||
static_cast
|
||||
template
|
||||
this
|
||||
throw
|
||||
true
|
||||
typeid
|
||||
typename
|
||||
using
|
||||
virtual
|
||||
wchar_t
|
||||
|
||||
and_eq
|
||||
bitand
|
||||
bitor
|
||||
compl
|
||||
not_eq
|
||||
or_eq
|
||||
xor_eq
|
||||
|
||||
define
|
||||
defined
|
||||
elif
|
||||
endif
|
||||
error
|
||||
ifdef
|
||||
ifndef
|
||||
include
|
||||
pragma
|
||||
undef
|
||||
|
||||
exception
|
||||
bad_alloc
|
||||
bad_exception
|
||||
bad_cast
|
||||
bad_typeid
|
||||
ios_base::failure
|
||||
logic_error
|
||||
domain_error
|
||||
invalid_argument
|
||||
length_error
|
||||
out_of_range
|
||||
runtime_error
|
||||
range_error
|
||||
overflow_error
|
||||
underflow_error
|
||||
uncaught_exception
|
||||
|
||||
__DATE__
|
||||
__FILE__
|
||||
__LINE__
|
||||
__STDC__
|
||||
__STDC_HOSTED__
|
||||
__STDC_IEC_559__
|
||||
__STDC_IEC_559_COMPLEX__
|
||||
__STDC_ISO_10646__
|
||||
__STDC_VERSION__
|
||||
__TIME__
|
||||
__func__
|
||||
__cplusplus
|
||||
|
||||
__BORLANDC__
|
||||
__CYGWIN__
|
||||
__CYGWIN32__
|
||||
__GNUC__
|
||||
__WIN32__
|
||||
__WINDOWS__
|
||||
|
||||
assert
|
||||
ctype
|
||||
errno
|
||||
float
|
||||
limits
|
||||
locale
|
||||
math
|
||||
setjmp
|
||||
signal
|
||||
stdarg
|
||||
stddef
|
||||
stdio
|
||||
stdlib
|
||||
string
|
||||
time
|
||||
|
||||
complex
|
||||
fenv
|
||||
inttypes
|
||||
iso646
|
||||
stdbool
|
||||
stdint
|
||||
tgmath
|
||||
wchar
|
||||
wctype
|
||||
|
||||
algorithm
|
||||
bitset
|
||||
complex
|
||||
deque
|
||||
exception
|
||||
fstream
|
||||
functional
|
||||
iomanip
|
||||
ios
|
||||
iosfwd
|
||||
iostream
|
||||
istream
|
||||
iterator
|
||||
limits
|
||||
list
|
||||
locale
|
||||
|
||||
map
|
||||
memory
|
||||
new
|
||||
numeric
|
||||
ostream
|
||||
queue
|
||||
set
|
||||
sstream
|
||||
stack
|
||||
stdexcept
|
||||
streambuf
|
||||
string
|
||||
typeinfo
|
||||
utility
|
||||
valarray
|
||||
vector
|
||||
|
||||
cassert
|
||||
cctype
|
||||
cerrno
|
||||
cfloat
|
||||
climits
|
||||
clocale
|
||||
cmath
|
||||
csetjmp
|
||||
csignal
|
||||
cstdarg
|
||||
cstddef
|
||||
cstdio
|
||||
cstdlib
|
||||
cstring
|
||||
ctime
|
@ -0,0 +1,108 @@
|
||||
address
|
||||
allocator
|
||||
allocation
|
||||
argument
|
||||
arithmetic
|
||||
array
|
||||
assignement
|
||||
bitwise
|
||||
block
|
||||
character
|
||||
command
|
||||
condition
|
||||
conditional
|
||||
constant
|
||||
conversion
|
||||
declaration
|
||||
decrement
|
||||
defined
|
||||
definition
|
||||
descriptor
|
||||
description
|
||||
dimension
|
||||
evaluation
|
||||
expression
|
||||
external
|
||||
format
|
||||
formatted
|
||||
function
|
||||
global
|
||||
handling
|
||||
identifier
|
||||
implementation
|
||||
increment
|
||||
initialization
|
||||
input
|
||||
interface
|
||||
label
|
||||
lexical
|
||||
local
|
||||
logical
|
||||
lookup
|
||||
loop
|
||||
lvalue
|
||||
miscellaneous
|
||||
notation
|
||||
numerical
|
||||
operator
|
||||
operation
|
||||
output
|
||||
pointer
|
||||
precedence
|
||||
preprocessor
|
||||
preprocessing
|
||||
program
|
||||
random
|
||||
recursion
|
||||
recursive
|
||||
reference
|
||||
referential
|
||||
relational
|
||||
scope
|
||||
standard
|
||||
statement
|
||||
string
|
||||
structure
|
||||
system
|
||||
undefined
|
||||
variable
|
||||
|
||||
abstract
|
||||
algorithm
|
||||
alignment
|
||||
application
|
||||
assignment
|
||||
asynchronous
|
||||
binary
|
||||
buffer
|
||||
component
|
||||
constructor
|
||||
container
|
||||
destructor
|
||||
difference
|
||||
enumeration
|
||||
exception
|
||||
floating-point
|
||||
horizontal
|
||||
inheritance
|
||||
instantiation
|
||||
integer
|
||||
internal
|
||||
invariant
|
||||
iterator
|
||||
localization
|
||||
overflow
|
||||
overload
|
||||
override
|
||||
overwrite
|
||||
polymorphic
|
||||
portability
|
||||
position
|
||||
postcondition
|
||||
precision
|
||||
precondition
|
||||
prototype
|
||||
subscript
|
||||
underflow
|
||||
vertical
|
||||
whitespace
|
@ -0,0 +1,202 @@
|
||||
accumulate
|
||||
adjacent_difference
|
||||
adjacent_find
|
||||
advance
|
||||
append
|
||||
assign
|
||||
auto_ptr
|
||||
back
|
||||
back_inserter
|
||||
basic_string
|
||||
bidirectional_iterator
|
||||
bidirectional_iterator_tag
|
||||
binary_compose
|
||||
binary_function
|
||||
binary_negate
|
||||
binary_search
|
||||
bind1st
|
||||
bind2nd
|
||||
bit_vector
|
||||
bitset
|
||||
capacity
|
||||
char_producer
|
||||
char_traits
|
||||
char_type
|
||||
compare
|
||||
construct
|
||||
copy
|
||||
copy_backward
|
||||
copy_n
|
||||
count
|
||||
count_if
|
||||
deque
|
||||
destroy
|
||||
distance
|
||||
distance_type
|
||||
divides
|
||||
equal
|
||||
equal_range
|
||||
equal_to
|
||||
erase
|
||||
fill
|
||||
fill_n
|
||||
find
|
||||
find_end
|
||||
find_first_not_of
|
||||
find_first_of
|
||||
find_if
|
||||
find_last_not_of
|
||||
find_last_of
|
||||
for_each
|
||||
forward_iterator
|
||||
forward_iterator_tag
|
||||
front
|
||||
front_inserter
|
||||
generate
|
||||
generate_n
|
||||
get_temporary_buffer
|
||||
greater
|
||||
greater_equal
|
||||
hash
|
||||
hash_map
|
||||
hash_multimap
|
||||
hash_multiset
|
||||
hash_set
|
||||
identity
|
||||
includes
|
||||
inner_product
|
||||
inplace_merge
|
||||
input_iterator
|
||||
input_iterator_tag
|
||||
insert
|
||||
insert_iterator
|
||||
inserter
|
||||
int_type
|
||||
iota
|
||||
is_heap
|
||||
is_sorted
|
||||
istream_iterator
|
||||
istream_type
|
||||
istreambuf_iterator
|
||||
iter_swap
|
||||
iterator_category
|
||||
iterator_traits
|
||||
less
|
||||
less_equal
|
||||
lexicographical_compare
|
||||
lexicographical_compare_3way
|
||||
list
|
||||
logical_and
|
||||
logical_not
|
||||
logical_or
|
||||
lower_bound
|
||||
make_heap
|
||||
make_pair
|
||||
map
|
||||
max
|
||||
max_element
|
||||
mem_fun1_ref_t
|
||||
mem_fun1_t
|
||||
mem_fun_ref_t
|
||||
mem_fun_t
|
||||
merge
|
||||
min
|
||||
min_element
|
||||
minus
|
||||
mismatch
|
||||
modulus
|
||||
multimap
|
||||
multiplies
|
||||
multiset
|
||||
negate
|
||||
next_permutation
|
||||
not_equal_to
|
||||
nth_element
|
||||
operator
|
||||
ostream_iterator
|
||||
ostreambuf_iterator
|
||||
output_iterator
|
||||
output_iterator_tag
|
||||
pair
|
||||
partial_sort
|
||||
partial_sort_copy
|
||||
partial_sum
|
||||
partition
|
||||
plus
|
||||
pointer_to_binary_function
|
||||
pointer_to_unary_function
|
||||
pop_back
|
||||
pop_front
|
||||
pop_heap
|
||||
power
|
||||
prev_permutation
|
||||
priority_queue
|
||||
project1st
|
||||
project2nd
|
||||
ptr_fun
|
||||
push_back
|
||||
push_front
|
||||
push_heap
|
||||
queue
|
||||
random_access_iterator
|
||||
random_access_iterator_tag
|
||||
random_sample
|
||||
random_sample_n
|
||||
random_shuffle
|
||||
raw_storage_iterator
|
||||
release
|
||||
remove
|
||||
remove_copy
|
||||
remove_copy_if
|
||||
remove_if
|
||||
replace
|
||||
replace_copy
|
||||
replace_copy_if
|
||||
replace_if
|
||||
reset
|
||||
resize
|
||||
return_temporary_buffer
|
||||
reverse
|
||||
reverse_bidirectional_iterator
|
||||
reverse_copy
|
||||
reverse_iterator
|
||||
rfind
|
||||
rope
|
||||
rotate
|
||||
rotate_copy
|
||||
search
|
||||
search_n
|
||||
select1st
|
||||
select2nd
|
||||
sequence_buffer
|
||||
set
|
||||
set_difference
|
||||
set_intersection
|
||||
set_symmetric_difference
|
||||
set_union
|
||||
slist
|
||||
sort
|
||||
sort_heap
|
||||
stable_partition
|
||||
stable_sort
|
||||
stack
|
||||
streambuf_type
|
||||
substr
|
||||
subtractive_rng
|
||||
swap
|
||||
swap_ranges
|
||||
temporary_buffer
|
||||
transform
|
||||
unary_compose
|
||||
unary_function
|
||||
unary_negate
|
||||
uninitialized_copy
|
||||
uninitialized_copy_n
|
||||
uninitialized_fill
|
||||
uninitialized_fill_n
|
||||
unique
|
||||
unique_copy
|
||||
upper_bound
|
||||
value_comp
|
||||
value_type
|
||||
vector
|
@ -0,0 +1,298 @@
|
||||
*acp.txt* 補完メニューの自動ポップアップ
|
||||
|
||||
Copyright (c) 2007-2009 Takeshi NISHIDA
|
||||
|
||||
AutoComplPop *autocomplpop* *acp*
|
||||
|
||||
概要 |acp-introduction|
|
||||
インストール |acp-installation|
|
||||
使い方 |acp-usage|
|
||||
コマンド |acp-commands|
|
||||
オプション |acp-options|
|
||||
SPECIAL THANKS |acp-thanks|
|
||||
CHANGELOG |acp-changelog|
|
||||
あばうと |acp-about|
|
||||
|
||||
|
||||
==============================================================================
|
||||
概要 *acp-introduction*
|
||||
|
||||
このプラグインは、インサートモードで文字を入力したりカーソルを動かしたときに補
|
||||
完メニューを自動的に開くようにします。しかし、続けて文字を入力するのを妨げたり
|
||||
はしません。
|
||||
|
||||
|
||||
==============================================================================
|
||||
インストール *acp-installation*
|
||||
|
||||
ZIPファイルをランタイムディレクトリに展開します。
|
||||
|
||||
以下のようにファイルが配置されるはずです。
|
||||
>
|
||||
<your runtime directory>/plugin/acp.vim
|
||||
<your runtime directory>/doc/acp.txt
|
||||
...
|
||||
<
|
||||
もしランタイムディレクトリが他のプラグインとごた混ぜになるのが嫌なら、ファイル
|
||||
を新規ディレクトリに配置し、そのディレクトリのパスを 'runtimepath' に追加して
|
||||
ください。アンインストールも楽になります。
|
||||
|
||||
その後 FuzzyFinder のヘルプを有効にするためにタグファイルを更新してください。
|
||||
詳しくは|add-local-help|を参照してください。
|
||||
|
||||
|
||||
==============================================================================
|
||||
使い方 *acp-usage*
|
||||
|
||||
このプラグインがインストールされていれば、自動ポップアップは vim の開始時から
|
||||
有効になります。
|
||||
|
||||
カーソル直前のテキストに応じて、利用する補完の種類を切り替えます。デフォルトの
|
||||
補完動作は次の通りです:
|
||||
|
||||
補完モード filetype カーソル直前のテキスト ~
|
||||
キーワード補完 * 2文字のキーワード文字
|
||||
ファイル名補完 * ファイル名文字 + パスセパレータ
|
||||
+ 0文字以上のファイル名文字
|
||||
オムニ補完 ruby ".", "::" or 単語を構成する文字以外 + ":"
|
||||
オムニ補完 python "."
|
||||
オムニ補完 xml "<", "</" or ("<" + ">"以外の文字列 + " ")
|
||||
オムニ補完 html/xhtml "<", "</" or ("<" + ">"以外の文字列 + " ")
|
||||
オムニ補完 css (":", ";", "{", "^", "@", or "!")
|
||||
+ 0個または1個のスペース
|
||||
|
||||
さらに、設定を行うことで、ユーザー定義補完と snipMate トリガー補完
|
||||
(|acp-snipMate|) を自動ポップアップさせることができます。
|
||||
|
||||
これらの補完動作はカスタマイズ可能です。
|
||||
|
||||
*acp-snipMate*
|
||||
snipMate トリガー補完 ~
|
||||
|
||||
snipMate トリガー補完では、snipMate プラグイン
|
||||
(http://www.vim.org/scripts/script.php?script_id=2540) が提供するスニペットの
|
||||
トリガーを補完してそれを展開することができます。
|
||||
|
||||
この自動ポップアップを有効にするには、次の関数を plugin/snipMate.vim に追加す
|
||||
る必要があります:
|
||||
>
|
||||
fun! GetSnipsInCurrentScope()
|
||||
let snips = {}
|
||||
for scope in [bufnr('%')] + split(&ft, '\.') + ['_']
|
||||
call extend(snips, get(s:snippets, scope, {}), 'keep')
|
||||
call extend(snips, get(s:multi_snips, scope, {}), 'keep')
|
||||
endfor
|
||||
return snips
|
||||
endf
|
||||
<
|
||||
そして|g:acp_behaviorSnipmateLength|オプションを 1 にしてください。
|
||||
|
||||
この自動ポップアップには制限があり、カーソル直前の単語は大文字英字だけで構成さ
|
||||
れていなければなりません。
|
||||
|
||||
*acp-perl-omni*
|
||||
Perl オムニ補完 ~
|
||||
|
||||
AutoComplPop は perl-completion.vim
|
||||
(http://www.vim.org/scripts/script.php?script_id=2852) をサポートしています。
|
||||
|
||||
この自動ポップアップを有効にするには、|g:acp_behaviorPerlOmniLength|オプション
|
||||
を 0 以上にしてください。
|
||||
|
||||
|
||||
==============================================================================
|
||||
コマンド *acp-commands*
|
||||
|
||||
*:AcpEnable*
|
||||
:AcpEnable
|
||||
自動ポップアップを有効にします。
|
||||
|
||||
*:AcpDisable*
|
||||
:AcpDisable
|
||||
自動ポップアップを無効にします。
|
||||
|
||||
*:AcpLock*
|
||||
:AcpLock
|
||||
自動ポップアップを一時的に停止します。
|
||||
|
||||
別のスクリプトへの干渉を回避する目的なら、このコマンドと|:AcpUnlock|
|
||||
を利用することを、|:AcpDisable|と|:AcpEnable| を利用するよりも推奨しま
|
||||
す。
|
||||
|
||||
*:AcpUnlock*
|
||||
:AcpUnlock
|
||||
|:AcpLock| で停止された自動ポップアップを再開します。
|
||||
|
||||
|
||||
==============================================================================
|
||||
オプション *acp-options*
|
||||
|
||||
*g:acp_enableAtStartup* >
|
||||
let g:acp_enableAtStartup = 1
|
||||
<
|
||||
真なら vim 開始時から自動ポップアップが有効になります。
|
||||
|
||||
*g:acp_mappingDriven* >
|
||||
let g:acp_mappingDriven = 0
|
||||
<
|
||||
真なら|CursorMovedI|イベントではなくキーマッピングで自動ポップアップを
|
||||
行うようにします。カーソルを移動するたびに補完が行われることで重いなど
|
||||
の不都合がある場合に利用してください。ただし他のプラグインとの相性問題
|
||||
や日本語入力での不具合が発生する可能性があります。(逆も然り。)
|
||||
|
||||
*g:acp_ignorecaseOption* >
|
||||
let g:acp_ignorecaseOption = 1
|
||||
<
|
||||
自動ポップアップ時に、'ignorecase' に一時的に設定する値
|
||||
|
||||
*g:acp_completeOption* >
|
||||
let g:acp_completeOption = '.,w,b,k'
|
||||
<
|
||||
自動ポップアップ時に、'complete' に一時的に設定する値
|
||||
|
||||
*g:acp_completeoptPreview* >
|
||||
let g:acp_completeoptPreview = 0
|
||||
<
|
||||
真なら自動ポップアップ時に、 'completeopt' へ "preview" を追加します。
|
||||
|
||||
*g:acp_behaviorUserDefinedFunction* >
|
||||
let g:acp_behaviorUserDefinedFunction = ''
|
||||
<
|
||||
ユーザー定義補完の|g:acp_behavior-completefunc|。空ならこの補完は行わ
|
||||
れません。。
|
||||
|
||||
*g:acp_behaviorUserDefinedMeets* >
|
||||
let g:acp_behaviorUserDefinedMeets = ''
|
||||
<
|
||||
ユーザー定義補完の|g:acp_behavior-meets|。空ならこの補完は行われません
|
||||
。
|
||||
|
||||
*g:acp_behaviorSnipmateLength* >
|
||||
let g:acp_behaviorSnipmateLength = -1
|
||||
<
|
||||
snipMate トリガー補完の自動ポップアップを行うのに必要なカーソルの直前
|
||||
のパターン。
|
||||
|
||||
*g:acp_behaviorKeywordCommand* >
|
||||
let g:acp_behaviorKeywordCommand = "\<C-n>"
|
||||
<
|
||||
キーワード補完のコマンド。このオプションには普通 "\<C-n>" か "\<C-p>"
|
||||
を設定します。
|
||||
|
||||
*g:acp_behaviorKeywordLength* >
|
||||
let g:acp_behaviorKeywordLength = 2
|
||||
<
|
||||
キーワード補完の自動ポップアップを行うのに必要なカーソルの直前のキーワ
|
||||
ード文字数。負数ならこの補完は行われません。
|
||||
|
||||
*g:acp_behaviorKeywordIgnores* >
|
||||
let g:acp_behaviorKeywordIgnores = []
|
||||
<
|
||||
文字列のリスト。カーソル直前の単語がこれらの内いずれかの先頭部分にマッ
|
||||
チする場合、この補完は行われません。
|
||||
|
||||
例えば、 "get" で始まる補完キーワードが多過ぎて、"g", "ge", "get" を入
|
||||
力したときの自動ポップアップがレスポンスの低下を引き起こしている場合、
|
||||
このオプションに ["get"] を設定することでそれを回避することができます。
|
||||
|
||||
*g:acp_behaviorFileLength* >
|
||||
let g:acp_behaviorFileLength = 0
|
||||
<
|
||||
ファイル名補完の自動ポップアップを行うのに必要なカーソルの直前のキーワ
|
||||
ード文字数。負数ならこの補完は行われません。
|
||||
|
||||
*g:acp_behaviorRubyOmniMethodLength* >
|
||||
let g:acp_behaviorRubyOmniMethodLength = 0
|
||||
<
|
||||
メソッド補完のための、Ruby オムニ補完の自動ポップアップを行うのに必要
|
||||
なカーソルの直前のキーワード文字数。負数ならこの補完は行われません。
|
||||
|
||||
*g:acp_behaviorRubyOmniSymbolLength* >
|
||||
let g:acp_behaviorRubyOmniSymbolLength = 1
|
||||
<
|
||||
シンボル補完のための、Ruby オムニ補完の自動ポップアップを行うのに必要
|
||||
なカーソルの直前のキーワード文字数。負数ならこの補完は行われません。
|
||||
|
||||
*g:acp_behaviorPythonOmniLength* >
|
||||
let g:acp_behaviorPythonOmniLength = 0
|
||||
<
|
||||
Python オムニ補完の自動ポップアップを行うのに必要なカーソルの直前のキ
|
||||
ーワード文字数。負数ならこの補完は行われません。
|
||||
|
||||
*g:acp_behaviorPerlOmniLength* >
|
||||
let g:acp_behaviorPerlOmniLength = -1
|
||||
<
|
||||
Perl オムニ補完の自動ポップアップを行うのに必要なカーソルの直前のキー
|
||||
ワード文字数。負数ならこの補完は行われません。
|
||||
|
||||
See also: |acp-perl-omni|
|
||||
|
||||
*g:acp_behaviorXmlOmniLength* >
|
||||
let g:acp_behaviorXmlOmniLength = 0
|
||||
<
|
||||
XML オムニ補完の自動ポップアップを行うのに必要なカーソルの直前のキーワ
|
||||
ード文字数。負数ならこの補完は行われません。
|
||||
|
||||
*g:acp_behaviorHtmlOmniLength* >
|
||||
let g:acp_behaviorHtmlOmniLength = 0
|
||||
<
|
||||
HTML オムニ補完の自動ポップアップを行うのに必要なカーソルの直前のキー
|
||||
ワード文字数。負数ならこの補完は行われません。
|
||||
|
||||
*g:acp_behaviorCssOmniPropertyLength* >
|
||||
let g:acp_behaviorCssOmniPropertyLength = 1
|
||||
<
|
||||
プロパティ補完のための、CSS オムニ補完の自動ポップアップを行うのに必要
|
||||
なカーソルの直前のキーワード文字数。負数ならこの補完は行われません。
|
||||
|
||||
*g:acp_behaviorCssOmniValueLength* >
|
||||
let g:acp_behaviorCssOmniValueLength = 0
|
||||
<
|
||||
値補完のための、CSS オムニ補完の自動ポップアップを行うのに必要なカーソ
|
||||
ルの直前のキーワード文字数。負数ならこの補完は行われません。
|
||||
|
||||
*g:acp_behavior* >
|
||||
let g:acp_behavior = {}
|
||||
<
|
||||
|
||||
これは内部仕様がわかっている人向けのオプションで、他のオプションでの設
|
||||
定より優先されます。
|
||||
|
||||
|Dictionary|型で、キーはファイルタイプに対応します。 '*' はデフォルト
|
||||
を表します。値はリスト型です。補完候補が得られるまでリストの先頭アイテ
|
||||
ムから順に評価します。各要素は|Dictionary|で詳細は次の通り:
|
||||
|
||||
"command": *g:acp_behavior-command*
|
||||
補完メニューをポップアップするためのコマンド。
|
||||
|
||||
"completefunc": *g:acp_behavior-completefunc*
|
||||
'completefunc' に設定する関数。 "command" が "<C-x><C-u>" のときだけ
|
||||
意味があります。
|
||||
|
||||
"meets": *g:acp_behavior-meets*
|
||||
この補完を行うかどうかを判断する関数の名前。この関数はカーソル直前の
|
||||
テキストを引数に取り、補完を行うなら非 0 の値を返します。
|
||||
|
||||
"onPopupClose": *g:acp_behavior-onPopupClose*
|
||||
この補完のポップアップメニューが閉じられたときに呼ばれる関数の名前。
|
||||
この関数が 0 を返した場合、続いて行われる予定の補完は抑制されます。
|
||||
|
||||
"repeat": *g:acp_behavior-repeat*
|
||||
真なら最後の補完が自動的に繰り返されます。
|
||||
|
||||
|
||||
==============================================================================
|
||||
あばうと *acp-about* *acp-contact* *acp-author*
|
||||
|
||||
作者: Takeshi NISHIDA <ns9tks@DELETE-ME.gmail.com>
|
||||
ライセンス: MIT Licence
|
||||
URL: http://www.vim.org/scripts/script.php?script_id=1879
|
||||
http://bitbucket.org/ns9tks/vim-autocomplpop/
|
||||
|
||||
バグや要望など ~
|
||||
|
||||
こちらへどうぞ: http://bitbucket.org/ns9tks/vim-autocomplpop/issues/
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
@ -0,0 +1,512 @@
|
||||
*acp.txt* Automatically opens popup menu for completions.
|
||||
|
||||
Copyright (c) 2007-2009 Takeshi NISHIDA
|
||||
|
||||
AutoComplPop *autocomplpop* *acp*
|
||||
|
||||
INTRODUCTION |acp-introduction|
|
||||
INSTALLATION |acp-installation|
|
||||
USAGE |acp-usage|
|
||||
COMMANDS |acp-commands|
|
||||
OPTIONS |acp-options|
|
||||
SPECIAL THANKS |acp-thanks|
|
||||
CHANGELOG |acp-changelog|
|
||||
ABOUT |acp-about|
|
||||
|
||||
|
||||
==============================================================================
|
||||
INTRODUCTION *acp-introduction*
|
||||
|
||||
With this plugin, your vim comes to automatically opens popup menu for
|
||||
completions when you enter characters or move the cursor in Insert mode. It
|
||||
won't prevent you continuing entering characters.
|
||||
|
||||
|
||||
==============================================================================
|
||||
INSTALLATION *acp-installation*
|
||||
|
||||
Put all files into your runtime directory. If you have the zip file, extract
|
||||
it to your runtime directory.
|
||||
|
||||
You should place the files as follows:
|
||||
>
|
||||
<your runtime directory>/plugin/acp.vim
|
||||
<your runtime directory>/doc/acp.txt
|
||||
...
|
||||
<
|
||||
If you disgust to jumble up this plugin and other plugins in your runtime
|
||||
directory, put the files into new directory and just add the directory path to
|
||||
'runtimepath'. It's easy to uninstall the plugin.
|
||||
|
||||
And then update your help tags files to enable fuzzyfinder help. See
|
||||
|add-local-help| for details.
|
||||
|
||||
|
||||
==============================================================================
|
||||
USAGE *acp-usage*
|
||||
|
||||
Once this plugin is installed, auto-popup is enabled at startup by default.
|
||||
|
||||
Which completion method is used depends on the text before the cursor. The
|
||||
default behavior is as follows:
|
||||
|
||||
kind filetype text before the cursor ~
|
||||
Keyword * two keyword characters
|
||||
Filename * a filename character + a path separator
|
||||
+ 0 or more filename character
|
||||
Omni ruby ".", "::" or non-word character + ":"
|
||||
(|+ruby| required.)
|
||||
Omni python "." (|+python| required.)
|
||||
Omni xml "<", "</" or ("<" + non-">" characters + " ")
|
||||
Omni html/xhtml "<", "</" or ("<" + non-">" characters + " ")
|
||||
Omni css (":", ";", "{", "^", "@", or "!")
|
||||
+ 0 or 1 space
|
||||
|
||||
Also, you can make user-defined completion and snipMate's trigger completion
|
||||
(|acp-snipMate|) auto-popup if the options are set.
|
||||
|
||||
These behavior are customizable.
|
||||
|
||||
*acp-snipMate*
|
||||
snipMate's Trigger Completion ~
|
||||
|
||||
snipMate's trigger completion enables you to complete a snippet trigger
|
||||
provided by snipMate plugin
|
||||
(http://www.vim.org/scripts/script.php?script_id=2540) and expand it.
|
||||
|
||||
|
||||
To enable auto-popup for this completion, add following function to
|
||||
plugin/snipMate.vim:
|
||||
>
|
||||
fun! GetSnipsInCurrentScope()
|
||||
let snips = {}
|
||||
for scope in [bufnr('%')] + split(&ft, '\.') + ['_']
|
||||
call extend(snips, get(s:snippets, scope, {}), 'keep')
|
||||
call extend(snips, get(s:multi_snips, scope, {}), 'keep')
|
||||
endfor
|
||||
return snips
|
||||
endf
|
||||
<
|
||||
And set |g:acp_behaviorSnipmateLength| option to 1.
|
||||
|
||||
There is the restriction on this auto-popup, that the word before cursor must
|
||||
consist only of uppercase characters.
|
||||
|
||||
*acp-perl-omni*
|
||||
Perl Omni-Completion ~
|
||||
|
||||
AutoComplPop supports perl-completion.vim
|
||||
(http://www.vim.org/scripts/script.php?script_id=2852).
|
||||
|
||||
To enable auto-popup for this completion, set |g:acp_behaviorPerlOmniLength|
|
||||
option to 0 or more.
|
||||
|
||||
|
||||
==============================================================================
|
||||
COMMANDS *acp-commands*
|
||||
|
||||
*:AcpEnable*
|
||||
:AcpEnable
|
||||
enables auto-popup.
|
||||
|
||||
*:AcpDisable*
|
||||
:AcpDisable
|
||||
disables auto-popup.
|
||||
|
||||
*:AcpLock*
|
||||
:AcpLock
|
||||
suspends auto-popup temporarily.
|
||||
|
||||
For the purpose of avoiding interruption to another script, it is
|
||||
recommended to insert this command and |:AcpUnlock| than |:AcpDisable|
|
||||
and |:AcpEnable| .
|
||||
|
||||
*:AcpUnlock*
|
||||
:AcpUnlock
|
||||
resumes auto-popup suspended by |:AcpLock| .
|
||||
|
||||
|
||||
==============================================================================
|
||||
OPTIONS *acp-options*
|
||||
|
||||
*g:acp_enableAtStartup* >
|
||||
let g:acp_enableAtStartup = 1
|
||||
<
|
||||
If non-zero, auto-popup is enabled at startup.
|
||||
|
||||
*g:acp_mappingDriven* >
|
||||
let g:acp_mappingDriven = 0
|
||||
<
|
||||
If non-zero, auto-popup is triggered by key mappings instead of
|
||||
|CursorMovedI| event. This is useful to avoid auto-popup by moving
|
||||
cursor in Insert mode.
|
||||
|
||||
*g:acp_ignorecaseOption* >
|
||||
let g:acp_ignorecaseOption = 1
|
||||
<
|
||||
Value set to 'ignorecase' temporarily when auto-popup.
|
||||
|
||||
*g:acp_completeOption* >
|
||||
let g:acp_completeOption = '.,w,b,k'
|
||||
<
|
||||
Value set to 'complete' temporarily when auto-popup.
|
||||
|
||||
*g:acp_completeoptPreview* >
|
||||
let g:acp_completeoptPreview = 0
|
||||
<
|
||||
If non-zero, "preview" is added to 'completeopt' when auto-popup.
|
||||
|
||||
*g:acp_behaviorUserDefinedFunction* >
|
||||
let g:acp_behaviorUserDefinedFunction = ''
|
||||
<
|
||||
|g:acp_behavior-completefunc| for user-defined completion. If empty,
|
||||
this completion will be never attempted.
|
||||
|
||||
*g:acp_behaviorUserDefinedMeets* >
|
||||
let g:acp_behaviorUserDefinedMeets = ''
|
||||
<
|
||||
|g:acp_behavior-meets| for user-defined completion. If empty, this
|
||||
completion will be never attempted.
|
||||
|
||||
*g:acp_behaviorSnipmateLength* >
|
||||
let g:acp_behaviorSnipmateLength = -1
|
||||
<
|
||||
Pattern before the cursor, which are needed to attempt
|
||||
snipMate-trigger completion.
|
||||
|
||||
*g:acp_behaviorKeywordCommand* >
|
||||
let g:acp_behaviorKeywordCommand = "\<C-n>"
|
||||
<
|
||||
Command for keyword completion. This option is usually set "\<C-n>" or
|
||||
"\<C-p>".
|
||||
|
||||
*g:acp_behaviorKeywordLength* >
|
||||
let g:acp_behaviorKeywordLength = 2
|
||||
<
|
||||
Length of keyword characters before the cursor, which are needed to
|
||||
attempt keyword completion. If negative value, this completion will be
|
||||
never attempted.
|
||||
|
||||
*g:acp_behaviorKeywordIgnores* >
|
||||
let g:acp_behaviorKeywordIgnores = []
|
||||
<
|
||||
List of string. If a word before the cursor matches to the front part
|
||||
of one of them, keyword completion won't be attempted.
|
||||
|
||||
E.g., when there are too many keywords beginning with "get" for the
|
||||
completion and auto-popup by entering "g", "ge", or "get" causes
|
||||
response degradation, set ["get"] to this option and avoid it.
|
||||
|
||||
*g:acp_behaviorFileLength* >
|
||||
let g:acp_behaviorFileLength = 0
|
||||
<
|
||||
Length of filename characters before the cursor, which are needed to
|
||||
attempt filename completion. If negative value, this completion will
|
||||
be never attempted.
|
||||
|
||||
*g:acp_behaviorRubyOmniMethodLength* >
|
||||
let g:acp_behaviorRubyOmniMethodLength = 0
|
||||
<
|
||||
Length of keyword characters before the cursor, which are needed to
|
||||
attempt ruby omni-completion for methods. If negative value, this
|
||||
completion will be never attempted.
|
||||
|
||||
*g:acp_behaviorRubyOmniSymbolLength* >
|
||||
let g:acp_behaviorRubyOmniSymbolLength = 1
|
||||
<
|
||||
Length of keyword characters before the cursor, which are needed to
|
||||
attempt ruby omni-completion for symbols. If negative value, this
|
||||
completion will be never attempted.
|
||||
|
||||
*g:acp_behaviorPythonOmniLength* >
|
||||
let g:acp_behaviorPythonOmniLength = 0
|
||||
<
|
||||
Length of keyword characters before the cursor, which are needed to
|
||||
attempt python omni-completion. If negative value, this completion
|
||||
will be never attempted.
|
||||
|
||||
*g:acp_behaviorPerlOmniLength* >
|
||||
let g:acp_behaviorPerlOmniLength = -1
|
||||
<
|
||||
Length of keyword characters before the cursor, which are needed to
|
||||
attempt perl omni-completion. If negative value, this completion will
|
||||
be never attempted.
|
||||
|
||||
See also: |acp-perl-omni|
|
||||
|
||||
*g:acp_behaviorXmlOmniLength* >
|
||||
let g:acp_behaviorXmlOmniLength = 0
|
||||
<
|
||||
Length of keyword characters before the cursor, which are needed to
|
||||
attempt XML omni-completion. If negative value, this completion will
|
||||
be never attempted.
|
||||
|
||||
*g:acp_behaviorHtmlOmniLength* >
|
||||
let g:acp_behaviorHtmlOmniLength = 0
|
||||
<
|
||||
Length of keyword characters before the cursor, which are needed to
|
||||
attempt HTML omni-completion. If negative value, this completion will
|
||||
be never attempted.
|
||||
|
||||
*g:acp_behaviorCssOmniPropertyLength* >
|
||||
let g:acp_behaviorCssOmniPropertyLength = 1
|
||||
<
|
||||
Length of keyword characters before the cursor, which are needed to
|
||||
attempt CSS omni-completion for properties. If negative value, this
|
||||
completion will be never attempted.
|
||||
|
||||
*g:acp_behaviorCssOmniValueLength* >
|
||||
let g:acp_behaviorCssOmniValueLength = 0
|
||||
<
|
||||
Length of keyword characters before the cursor, which are needed to
|
||||
attempt CSS omni-completion for values. If negative value, this
|
||||
completion will be never attempted.
|
||||
|
||||
*g:acp_behavior* >
|
||||
let g:acp_behavior = {}
|
||||
<
|
||||
This option is for advanced users. This setting overrides other
|
||||
behavior options. This is a |Dictionary|. Each key corresponds to a
|
||||
filetype. '*' is default. Each value is a list. These are attempted in
|
||||
sequence until completion item is found. Each element is a
|
||||
|Dictionary| which has following items:
|
||||
|
||||
"command": *g:acp_behavior-command*
|
||||
Command to be fed to open popup menu for completions.
|
||||
|
||||
"completefunc": *g:acp_behavior-completefunc*
|
||||
'completefunc' will be set to this user-provided function during the
|
||||
completion. Only makes sense when "command" is "<C-x><C-u>".
|
||||
|
||||
"meets": *g:acp_behavior-meets*
|
||||
Name of the function which dicides whether or not to attempt this
|
||||
completion. It will be attempted if this function returns non-zero.
|
||||
This function takes a text before the cursor.
|
||||
|
||||
"onPopupClose": *g:acp_behavior-onPopupClose*
|
||||
Name of the function which is called when popup menu for this
|
||||
completion is closed. Following completions will be suppressed if
|
||||
this function returns zero.
|
||||
|
||||
"repeat": *g:acp_behavior-repeat*
|
||||
If non-zero, the last completion is automatically repeated.
|
||||
|
||||
|
||||
==============================================================================
|
||||
SPECIAL THANKS *acp-thanks*
|
||||
|
||||
- Daniel Schierbeck
|
||||
- Ingo Karkat
|
||||
|
||||
|
||||
==============================================================================
|
||||
CHANGELOG *acp-changelog*
|
||||
|
||||
2.14.1
|
||||
- Changed the way of auto-popup for avoiding an issue about filename
|
||||
completion.
|
||||
- Fixed a bug that popup menu was opened twice when auto-popup was done.
|
||||
|
||||
2.14
|
||||
- Added the support for perl-completion.vim.
|
||||
|
||||
2.13
|
||||
- Changed to sort snipMate's triggers.
|
||||
- Fixed a bug that a wasted character was inserted after snipMate's trigger
|
||||
completion.
|
||||
|
||||
2.12.1
|
||||
- Changed to avoid a strange behavior with Microsoft IME.
|
||||
|
||||
2.12
|
||||
- Added g:acp_behaviorKeywordIgnores option.
|
||||
- Added g:acp_behaviorUserDefinedMeets option and removed
|
||||
g:acp_behaviorUserDefinedPattern.
|
||||
- Changed to do auto-popup only when a buffer is modified.
|
||||
- Changed the structure of g:acp_behavior option.
|
||||
- Changed to reflect a change of behavior options (named g:acp_behavior*)
|
||||
any time it is done.
|
||||
- Fixed a bug that completions after omni completions or snipMate's trigger
|
||||
completion were never attempted when no candidate for the former
|
||||
completions was found.
|
||||
|
||||
2.11.1
|
||||
- Fixed a bug that a snipMate's trigger could not be expanded when it was
|
||||
completed.
|
||||
|
||||
2.11
|
||||
- Implemented experimental feature which is snipMate's trigger completion.
|
||||
|
||||
2.10
|
||||
- Improved the response by changing not to attempt any completion when
|
||||
keyword characters are entered after a word which has been found that it
|
||||
has no completion candidate at the last attempt of completions.
|
||||
- Improved the response by changing to close popup menu when <BS> was
|
||||
pressed and the text before the cursor would not match with the pattern of
|
||||
current behavior.
|
||||
|
||||
2.9
|
||||
- Changed default behavior to support XML omni completion.
|
||||
- Changed default value of g:acp_behaviorKeywordCommand option.
|
||||
The option with "\<C-p>" cause a problem which inserts a match without
|
||||
<CR> when 'dictionary' has been set and keyword completion is done.
|
||||
- Changed to show error message when incompatible with a installed vim.
|
||||
|
||||
2.8.1
|
||||
- Fixed a bug which inserted a selected match to the next line when
|
||||
auto-wrapping (enabled with 'formatoptions') was performed.
|
||||
|
||||
2.8
|
||||
- Added g:acp_behaviorUserDefinedFunction option and
|
||||
g:acp_behaviorUserDefinedPattern option for users who want to make custom
|
||||
completion auto-popup.
|
||||
- Fixed a bug that setting 'spell' on a new buffer made typing go crazy.
|
||||
|
||||
2.7
|
||||
- Changed naming conventions for filenames, functions, commands, and options
|
||||
and thus renamed them.
|
||||
- Added g:acp_behaviorKeywordCommand option. If you prefer the previous
|
||||
behavior for keyword completion, set this option "\<C-n>".
|
||||
- Changed default value of g:acp_ignorecaseOption option.
|
||||
|
||||
The following were done by Ingo Karkat:
|
||||
|
||||
- ENH: Added support for setting a user-provided 'completefunc' during the
|
||||
completion, configurable via g:acp_behavior.
|
||||
- BUG: When the configured completion is <C-p> or <C-x><C-p>, the command to
|
||||
restore the original text (in on_popup_post()) must be reverted, too.
|
||||
- BUG: When using a custom completion function (<C-x><C-u>) that also uses
|
||||
an s:...() function name, the s:GetSidPrefix() function dynamically
|
||||
determines the wrong SID. Now calling s:DetermineSidPrefix() once during
|
||||
sourcing and caching the value in s:SID.
|
||||
- BUG: Should not use custom defined <C-X><C-...> completion mappings. Now
|
||||
consistently using unmapped completion commands everywhere. (Beforehand,
|
||||
s:PopupFeeder.feed() used mappings via feedkeys(..., 'm'), but
|
||||
s:PopupFeeder.on_popup_post() did not due to its invocation via
|
||||
:map-expr.)
|
||||
|
||||
2.6:
|
||||
- Improved the behavior of omni completion for HTML/XHTML.
|
||||
|
||||
2.5:
|
||||
- Added some options to customize behavior easily:
|
||||
g:AutoComplPop_BehaviorKeywordLength
|
||||
g:AutoComplPop_BehaviorFileLength
|
||||
g:AutoComplPop_BehaviorRubyOmniMethodLength
|
||||
g:AutoComplPop_BehaviorRubyOmniSymbolLength
|
||||
g:AutoComplPop_BehaviorPythonOmniLength
|
||||
g:AutoComplPop_BehaviorHtmlOmniLength
|
||||
g:AutoComplPop_BehaviorCssOmniPropertyLength
|
||||
g:AutoComplPop_BehaviorCssOmniValueLength
|
||||
|
||||
2.4:
|
||||
- Added g:AutoComplPop_MappingDriven option.
|
||||
|
||||
2.3.1:
|
||||
- Changed to set 'lazyredraw' while a popup menu is visible to avoid
|
||||
flickering.
|
||||
- Changed a behavior for CSS.
|
||||
- Added support for GetLatestVimScripts.
|
||||
|
||||
2.3:
|
||||
- Added a behavior for Python to support omni completion.
|
||||
- Added a behavior for CSS to support omni completion.
|
||||
|
||||
2.2:
|
||||
- Changed not to work when 'paste' option is set.
|
||||
- Fixed AutoComplPopEnable command and AutoComplPopDisable command to
|
||||
map/unmap "i" and "R".
|
||||
|
||||
2.1:
|
||||
- Fixed the problem caused by "." command in Normal mode.
|
||||
- Changed to map "i" and "R" to feed completion command after starting
|
||||
Insert mode.
|
||||
- Avoided the problem caused by Windows IME.
|
||||
|
||||
2.0:
|
||||
- Changed to use CursorMovedI event to feed a completion command instead of
|
||||
key mapping. Now the auto-popup is triggered by moving the cursor.
|
||||
- Changed to feed completion command after starting Insert mode.
|
||||
- Removed g:AutoComplPop_MapList option.
|
||||
|
||||
1.7:
|
||||
- Added behaviors for HTML/XHTML. Now supports the omni completion for
|
||||
HTML/XHTML.
|
||||
- Changed not to show expressions for CTRL-R =.
|
||||
- Changed not to set 'nolazyredraw' while a popup menu is visible.
|
||||
|
||||
1.6.1:
|
||||
- Changed not to trigger the filename completion by a text which has
|
||||
multi-byte characters.
|
||||
|
||||
1.6:
|
||||
- Redesigned g:AutoComplPop_Behavior option.
|
||||
- Changed default value of g:AutoComplPop_CompleteOption option.
|
||||
- Changed default value of g:AutoComplPop_MapList option.
|
||||
|
||||
1.5:
|
||||
- Implemented continuous-completion for the filename completion. And added
|
||||
new option to g:AutoComplPop_Behavior.
|
||||
|
||||
1.4:
|
||||
- Fixed the bug that the auto-popup was not suspended in fuzzyfinder.
|
||||
- Fixed the bug that an error has occurred with Ruby-omni-completion unless
|
||||
Ruby interface.
|
||||
|
||||
1.3:
|
||||
- Supported Ruby-omni-completion by default.
|
||||
- Supported filename completion by default.
|
||||
- Added g:AutoComplPop_Behavior option.
|
||||
- Added g:AutoComplPop_CompleteoptPreview option.
|
||||
- Removed g:AutoComplPop_MinLength option.
|
||||
- Removed g:AutoComplPop_MaxLength option.
|
||||
- Removed g:AutoComplPop_PopupCmd option.
|
||||
|
||||
1.2:
|
||||
- Fixed bugs related to 'completeopt'.
|
||||
|
||||
1.1:
|
||||
- Added g:AutoComplPop_IgnoreCaseOption option.
|
||||
- Added g:AutoComplPop_NotEnableAtStartup option.
|
||||
- Removed g:AutoComplPop_LoadAndEnable option.
|
||||
1.0:
|
||||
- g:AutoComplPop_LoadAndEnable option for a startup activation is added.
|
||||
- AutoComplPopLock command and AutoComplPopUnlock command are added to
|
||||
suspend and resume.
|
||||
- 'completeopt' and 'complete' options are changed temporarily while
|
||||
completing by this script.
|
||||
|
||||
0.4:
|
||||
- The first match are selected when the popup menu is Opened. You can insert
|
||||
the first match with CTRL-Y.
|
||||
|
||||
0.3:
|
||||
- Fixed the problem that the original text is not restored if 'longest' is
|
||||
not set in 'completeopt'. Now the plugin works whether or not 'longest' is
|
||||
set in 'completeopt', and also 'menuone'.
|
||||
|
||||
0.2:
|
||||
- When completion matches are not found, insert CTRL-E to stop completion.
|
||||
- Clear the echo area.
|
||||
- Fixed the problem in case of dividing words by symbols, popup menu is
|
||||
not opened.
|
||||
|
||||
0.1:
|
||||
- First release.
|
||||
|
||||
|
||||
==============================================================================
|
||||
ABOUT *acp-about* *acp-contact* *acp-author*
|
||||
|
||||
Author: Takeshi NISHIDA <ns9tks@DELETE-ME.gmail.com>
|
||||
Licence: MIT Licence
|
||||
URL: http://www.vim.org/scripts/script.php?script_id=1879
|
||||
http://bitbucket.org/ns9tks/vim-autocomplpop/
|
||||
|
||||
Bugs/Issues/Suggestions/Improvements ~
|
||||
|
||||
Please submit to http://bitbucket.org/ns9tks/vim-autocomplpop/issues/ .
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,286 @@
|
||||
*snipMate.txt* Plugin for using TextMate-style snippets in Vim.
|
||||
|
||||
snipMate *snippet* *snippets* *snipMate*
|
||||
Last Change: July 13, 2009
|
||||
|
||||
|snipMate-description| Description
|
||||
|snipMate-syntax| Snippet syntax
|
||||
|snipMate-usage| Usage
|
||||
|snipMate-settings| Settings
|
||||
|snipMate-features| Features
|
||||
|snipMate-disadvantages| Disadvantages to TextMate
|
||||
|snipMate-contact| Contact
|
||||
|
||||
For Vim version 7.0 or later.
|
||||
This plugin only works if 'compatible' is not set.
|
||||
{Vi does not have any of these features.}
|
||||
|
||||
==============================================================================
|
||||
DESCRIPTION *snipMate-description*
|
||||
|
||||
snipMate.vim implements some of TextMate's snippets features in 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>.
|
||||
|
||||
For instance, in a C file using the default installation of snipMate.vim, if
|
||||
you type "for<tab>" in insert mode, it will expand a typical for loop in C: >
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
To go to the next item in the loop, simply <tab> over to it; if there is
|
||||
repeated code, such as the "i" variable in this example, you can simply
|
||||
start typing once it's highlighted and all the matches specified in the
|
||||
snippet will be updated. To go in reverse, use <shift-tab>.
|
||||
|
||||
==============================================================================
|
||||
SYNTAX *snippet-syntax*
|
||||
|
||||
Snippets can be defined in two ways. They can be in their own file, named
|
||||
after their trigger in 'snippets/<filetype>/<trigger>.snippet', or they can be
|
||||
defined together in a 'snippets/<filetype>.snippets' file. Note that dotted
|
||||
'filetype' syntax is supported -- e.g., you can use >
|
||||
|
||||
:set ft=html.eruby
|
||||
|
||||
to activate snippets for both HTML and eRuby for the current file.
|
||||
|
||||
The syntax for snippets in *.snippets files is the following: >
|
||||
|
||||
snippet trigger
|
||||
expanded text
|
||||
more expanded text
|
||||
|
||||
Note that the first hard tab after the snippet trigger is required, and not
|
||||
expanded in the actual snippet. The syntax for *.snippet files is the same,
|
||||
only without the trigger declaration and starting indentation.
|
||||
|
||||
Also note that snippets must be defined using hard tabs. They can be expanded
|
||||
to spaces later if desired (see |snipMate-indenting|).
|
||||
|
||||
"#" is used as a line-comment character in *.snippets files; however, they can
|
||||
only be used outside of a snippet declaration. E.g.: >
|
||||
|
||||
# this is a correct comment
|
||||
snippet trigger
|
||||
expanded text
|
||||
snippet another_trigger
|
||||
# this isn't a comment!
|
||||
expanded text
|
||||
<
|
||||
This should hopefully be obvious with the included syntax highlighting.
|
||||
|
||||
*snipMate-${#}*
|
||||
Tab stops ~
|
||||
|
||||
By default, the cursor is placed at the end of a snippet. To specify where the
|
||||
cursor is to be placed next, use "${#}", where the # is the number of the tab
|
||||
stop. E.g., to place the cursor first on the id of a <div> tag, and then allow
|
||||
the user to press <tab> to go to the middle of it:
|
||||
>
|
||||
snippet div
|
||||
<div id="${1}">
|
||||
${2}
|
||||
</div>
|
||||
<
|
||||
*snipMate-placeholders* *snipMate-${#:}* *snipMate-$#*
|
||||
Placeholders ~
|
||||
|
||||
Placeholder text can be supplied using "${#:text}", where # is the number of
|
||||
the tab stop. This text then can be copied throughout the snippet using "$#",
|
||||
given # is the same number as used before. So, to make a C for loop: >
|
||||
|
||||
snippet for
|
||||
for (${2:i}; $2 < ${1:count}; $1++) {
|
||||
${4}
|
||||
}
|
||||
|
||||
This will cause "count" to first be selected and change if the user starts
|
||||
typing. When <tab> is pressed, the "i" in ${2}'s position will be selected;
|
||||
all $2 variables will default to "i" and automatically be updated if the user
|
||||
starts typing.
|
||||
NOTE: "$#" syntax is used only for variables, not for tab stops as in TextMate.
|
||||
|
||||
Variables within variables are also possible. For instance: >
|
||||
|
||||
snippet opt
|
||||
<option value="${1:option}">${2:$1}</option>
|
||||
|
||||
Will, as usual, cause "option" to first be selected and update all the $1
|
||||
variables if the user starts typing. Since one of these variables is inside of
|
||||
${2}, this text will then be used as a placeholder for the next tab stop,
|
||||
allowing the user to change it if he wishes.
|
||||
|
||||
To copy a value throughout a snippet without supplying default text, simply
|
||||
use the "${#:}" construct without the text; e.g.: >
|
||||
|
||||
snippet foo
|
||||
${1:}bar$1
|
||||
< *snipMate-commands*
|
||||
Interpolated Vim Script ~
|
||||
|
||||
Snippets can also contain Vim script commands that are executed (via |eval()|)
|
||||
when the snippet is inserted. Commands are given inside backticks (`...`); for
|
||||
TextMates's functionality, use the |system()| function. E.g.: >
|
||||
|
||||
snippet date
|
||||
`system("date +%Y-%m-%d")`
|
||||
|
||||
will insert the current date, assuming you are on a Unix system. Note that you
|
||||
can also (and should) use |strftime()| for this example.
|
||||
|
||||
Filename([{expr}] [, {defaultText}]) *snipMate-filename* *Filename()*
|
||||
|
||||
Since the current filename is used often in snippets, a default function
|
||||
has been defined for it in snipMate.vim, appropriately called Filename().
|
||||
|
||||
With no arguments, the default filename without an extension is returned;
|
||||
the first argument specifies what to place before or after the filename,
|
||||
and the second argument supplies the default text to be used if the file
|
||||
has not been named. "$1" in the first argument is replaced with the filename;
|
||||
if you only want the filename to be returned, the first argument can be left
|
||||
blank. Examples: >
|
||||
|
||||
snippet filename
|
||||
`Filename()`
|
||||
snippet filename_with_default
|
||||
`Filename('', 'name')`
|
||||
snippet filename_foo
|
||||
`filename('$1_foo')`
|
||||
|
||||
The first example returns the filename if it the file has been named, and an
|
||||
empty string if it hasn't. The second returns the filename if it's been named,
|
||||
and "name" if it hasn't. The third returns the filename followed by "_foo" if
|
||||
it has been named, and an empty string if it hasn't.
|
||||
|
||||
*multi_snip*
|
||||
To specify that a snippet can have multiple matches in a *.snippets file, use
|
||||
this syntax: >
|
||||
|
||||
snippet trigger A description of snippet #1
|
||||
expand this text
|
||||
snippet trigger A description of snippet #2
|
||||
expand THIS text!
|
||||
|
||||
In this example, when "trigger<tab>" is typed, a numbered menu containing all
|
||||
of the descriptions of the "trigger" will be shown; when the user presses the
|
||||
corresponding number, that snippet will then be expanded.
|
||||
|
||||
To create a snippet with multiple matches using *.snippet files,
|
||||
simply place all the snippets in a subdirectory with the trigger name:
|
||||
'snippets/<filetype>/<trigger>/<name>.snippet'.
|
||||
|
||||
==============================================================================
|
||||
USAGE *snipMate-usage*
|
||||
|
||||
*'snippets'* *g:snippets_dir*
|
||||
Snippets are by default looked for any 'snippets' directory in your
|
||||
'runtimepath'. Typically, it is located at '~/.vim/snippets/' on *nix or
|
||||
'$HOME\vimfiles\snippets\' on Windows. To change that location or add another
|
||||
one, change the g:snippets_dir variable in your |.vimrc| to your preferred
|
||||
directory, or use the |ExtractSnips()|function. This will be used by the
|
||||
|globpath()| function, and so accepts the same syntax as it (e.g.,
|
||||
comma-separated paths).
|
||||
|
||||
ExtractSnipsFile({directory}, {filetype}) *ExtractSnipsFile()* *.snippets*
|
||||
|
||||
ExtractSnipsFile() extracts the specified *.snippets file for the given
|
||||
filetype. A .snippets file contains multiple snippet declarations for the
|
||||
filetype. It is further explained above, in |snippet-syntax|.
|
||||
|
||||
ExtractSnips({directory}, {filetype}) *ExtractSnips()* *.snippet*
|
||||
|
||||
ExtractSnips() extracts *.snippet files from the specified directory and
|
||||
defines them as snippets for the given filetype. The directory tree should
|
||||
look like this: 'snippets/<filetype>/<trigger>.snippet'. If the snippet has
|
||||
multiple matches, it should look like this:
|
||||
'snippets/<filetype>/<trigger>/<name>.snippet' (see |multi_snip|).
|
||||
|
||||
*ResetSnippets()*
|
||||
The ResetSnippets() function removes all snippets from memory. This is useful
|
||||
to put at the top of a snippet setup file for if you would like to |:source|
|
||||
it multiple times.
|
||||
|
||||
*list-snippets* *i_CTRL-R_<Tab>*
|
||||
If you would like to see what snippets are available, simply type <c-r><tab>
|
||||
in the current buffer to show a list via |popupmenu-completion|.
|
||||
|
||||
==============================================================================
|
||||
SETTINGS *snipMate-settings* *g:snips_author*
|
||||
|
||||
The g:snips_author string (similar to $TM_FULLNAME in TextMate) should be set
|
||||
to your name; it can then be used in snippets to automatically add it. E.g.: >
|
||||
|
||||
let g:snips_author = 'Hubert Farnsworth'
|
||||
snippet name
|
||||
`g:snips_author`
|
||||
<
|
||||
*snipMate-expandtab* *snipMate-indenting*
|
||||
If you would like your snippets to be expanded using spaces instead of tabs,
|
||||
just enable 'expandtab' and set 'softtabstop' to your preferred amount of
|
||||
spaces. If 'softtabstop' is not set, 'shiftwidth' is used instead.
|
||||
|
||||
*snipMate-remap*
|
||||
snipMate does not come with a setting to customize the trigger key, but you
|
||||
can remap it easily in the two lines it's defined in the 'after' directory
|
||||
under 'plugin/snipMate.vim'. For instance, to change the trigger key
|
||||
to CTRL-J, just change this: >
|
||||
|
||||
ino <tab> <c-r>=TriggerSnippet()<cr>
|
||||
snor <tab> <esc>i<right><c-r>=TriggerSnippet()<cr>
|
||||
|
||||
to this: >
|
||||
ino <c-j> <c-r>=TriggerSnippet()<cr>
|
||||
snor <c-j> <esc>i<right><c-r>=TriggerSnippet()<cr>
|
||||
|
||||
==============================================================================
|
||||
FEATURES *snipMate-features*
|
||||
|
||||
snipMate.vim has the following features among others:
|
||||
- The syntax of snippets is very similar to TextMate's, allowing
|
||||
easy conversion.
|
||||
- The position of the snippet is kept transparently (i.e. it does not use
|
||||
markers/placeholders written to the buffer), which allows you to escape
|
||||
out of an incomplete snippet, something particularly useful in Vim.
|
||||
- Variables in snippets are updated as-you-type.
|
||||
- Snippets can have multiple matches.
|
||||
- Snippets can be out of order. For instance, in a do...while loop, the
|
||||
condition can be added before the code.
|
||||
- [New] File-based snippets are supported.
|
||||
- [New] Triggers after non-word delimiters are expanded, e.g. "foo"
|
||||
in "bar.foo".
|
||||
- [New] <shift-tab> can now be used to jump tab stops in reverse order.
|
||||
|
||||
==============================================================================
|
||||
DISADVANTAGES *snipMate-disadvantages*
|
||||
|
||||
snipMate.vim currently has the following disadvantages to TextMate's snippets:
|
||||
- There is no $0; the order of tab stops must be explicitly stated.
|
||||
- Placeholders within placeholders are not possible. E.g.: >
|
||||
|
||||
'<div${1: id="${2:some_id}}">${3}</div>'
|
||||
<
|
||||
In TextMate this would first highlight ' id="some_id"', and if
|
||||
you hit delete it would automatically skip ${2} and go to ${3}
|
||||
on the next <tab>, but if you didn't delete it it would highlight
|
||||
"some_id" first. You cannot do this in snipMate.vim.
|
||||
- Regex cannot be performed on variables, such as "${1/.*/\U&}"
|
||||
- Placeholders cannot span multiple lines.
|
||||
- Activating snippets in different scopes of the same file is
|
||||
not possible.
|
||||
|
||||
Perhaps some of these features will be added in a later release.
|
||||
|
||||
==============================================================================
|
||||
CONTACT *snipMate-contact* *snipMate-author*
|
||||
|
||||
To contact the author (Michael Sanders), please email:
|
||||
msanders42+snipmate <at> gmail <dot> com
|
||||
|
||||
I greatly appreciate any suggestions or improvements offered for the script.
|
||||
|
||||
==============================================================================
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,171 @@
|
||||
'Tlist_Auto_Highlight_Tag' taglist.txt /*'Tlist_Auto_Highlight_Tag'*
|
||||
'Tlist_Auto_Open' taglist.txt /*'Tlist_Auto_Open'*
|
||||
'Tlist_Auto_Update' taglist.txt /*'Tlist_Auto_Update'*
|
||||
'Tlist_Close_On_Select' taglist.txt /*'Tlist_Close_On_Select'*
|
||||
'Tlist_Compact_Format' taglist.txt /*'Tlist_Compact_Format'*
|
||||
'Tlist_Ctags_Cmd' taglist.txt /*'Tlist_Ctags_Cmd'*
|
||||
'Tlist_Display_Prototype' taglist.txt /*'Tlist_Display_Prototype'*
|
||||
'Tlist_Display_Tag_Scope' taglist.txt /*'Tlist_Display_Tag_Scope'*
|
||||
'Tlist_Enable_Fold_Column' taglist.txt /*'Tlist_Enable_Fold_Column'*
|
||||
'Tlist_Exit_OnlyWindow' taglist.txt /*'Tlist_Exit_OnlyWindow'*
|
||||
'Tlist_File_Fold_Auto_Close' taglist.txt /*'Tlist_File_Fold_Auto_Close'*
|
||||
'Tlist_GainFocus_On_ToggleOpen' taglist.txt /*'Tlist_GainFocus_On_ToggleOpen'*
|
||||
'Tlist_Highlight_Tag_On_BufEnter' taglist.txt /*'Tlist_Highlight_Tag_On_BufEnter'*
|
||||
'Tlist_Inc_Winwidth' taglist.txt /*'Tlist_Inc_Winwidth'*
|
||||
'Tlist_Max_Submenu_Items' taglist.txt /*'Tlist_Max_Submenu_Items'*
|
||||
'Tlist_Max_Tag_Length' taglist.txt /*'Tlist_Max_Tag_Length'*
|
||||
'Tlist_Process_File_Always' taglist.txt /*'Tlist_Process_File_Always'*
|
||||
'Tlist_Show_Menu' taglist.txt /*'Tlist_Show_Menu'*
|
||||
'Tlist_Show_One_File' taglist.txt /*'Tlist_Show_One_File'*
|
||||
'Tlist_Sort_Type' taglist.txt /*'Tlist_Sort_Type'*
|
||||
'Tlist_Use_Horiz_Window' taglist.txt /*'Tlist_Use_Horiz_Window'*
|
||||
'Tlist_Use_Right_Window' taglist.txt /*'Tlist_Use_Right_Window'*
|
||||
'Tlist_Use_SingleClick' taglist.txt /*'Tlist_Use_SingleClick'*
|
||||
'Tlist_WinHeight' taglist.txt /*'Tlist_WinHeight'*
|
||||
'Tlist_WinWidth' taglist.txt /*'Tlist_WinWidth'*
|
||||
'snippets' snipMate.txt /*'snippets'*
|
||||
.snippet snipMate.txt /*.snippet*
|
||||
.snippets snipMate.txt /*.snippets*
|
||||
:TlistAddFiles taglist.txt /*:TlistAddFiles*
|
||||
:TlistAddFilesRecursive taglist.txt /*:TlistAddFilesRecursive*
|
||||
:TlistClose taglist.txt /*:TlistClose*
|
||||
:TlistDebug taglist.txt /*:TlistDebug*
|
||||
:TlistHighlightTag taglist.txt /*:TlistHighlightTag*
|
||||
:TlistLock taglist.txt /*:TlistLock*
|
||||
:TlistMessages taglist.txt /*:TlistMessages*
|
||||
:TlistOpen taglist.txt /*:TlistOpen*
|
||||
:TlistSessionLoad taglist.txt /*:TlistSessionLoad*
|
||||
:TlistSessionSave taglist.txt /*:TlistSessionSave*
|
||||
:TlistShowPrototype taglist.txt /*:TlistShowPrototype*
|
||||
:TlistShowTag taglist.txt /*:TlistShowTag*
|
||||
:TlistToggle taglist.txt /*:TlistToggle*
|
||||
:TlistUndebug taglist.txt /*:TlistUndebug*
|
||||
:TlistUnlock taglist.txt /*:TlistUnlock*
|
||||
:TlistUpdate taglist.txt /*:TlistUpdate*
|
||||
ExtractSnips() snipMate.txt /*ExtractSnips()*
|
||||
ExtractSnipsFile() snipMate.txt /*ExtractSnipsFile()*
|
||||
Filename() snipMate.txt /*Filename()*
|
||||
ResetSnippets() snipMate.txt /*ResetSnippets()*
|
||||
Tlist_Get_Tag_Prototype_By_Line() taglist.txt /*Tlist_Get_Tag_Prototype_By_Line()*
|
||||
Tlist_Get_Tagname_By_Line() taglist.txt /*Tlist_Get_Tagname_By_Line()*
|
||||
Tlist_Set_App() taglist.txt /*Tlist_Set_App()*
|
||||
Tlist_Update_File_Tags() taglist.txt /*Tlist_Update_File_Tags()*
|
||||
c-support csupport.txt /*c-support*
|
||||
csupport csupport.txt /*csupport*
|
||||
csupport-Ctrl-j csupport.txt /*csupport-Ctrl-j*
|
||||
csupport-ad-mappings csupport.txt /*csupport-ad-mappings*
|
||||
csupport-c++ csupport.txt /*csupport-c++*
|
||||
csupport-c++-ex csupport.txt /*csupport-c++-ex*
|
||||
csupport-c++-method-impl csupport.txt /*csupport-c++-method-impl*
|
||||
csupport-c++-normal-mode csupport.txt /*csupport-c++-normal-mode*
|
||||
csupport-c++-visual-mode csupport.txt /*csupport-c++-visual-mode*
|
||||
csupport-code-to-comm csupport.txt /*csupport-code-to-comm*
|
||||
csupport-comm csupport.txt /*csupport-comm*
|
||||
csupport-comm-aligned csupport.txt /*csupport-comm-aligned*
|
||||
csupport-comm-c-cpp csupport.txt /*csupport-comm-c-cpp*
|
||||
csupport-comm-date csupport.txt /*csupport-comm-date*
|
||||
csupport-comm-frame csupport.txt /*csupport-comm-frame*
|
||||
csupport-comm-keyword csupport.txt /*csupport-comm-keyword*
|
||||
csupport-comm-realign csupport.txt /*csupport-comm-realign*
|
||||
csupport-comm-sections csupport.txt /*csupport-comm-sections*
|
||||
csupport-comm-tags csupport.txt /*csupport-comm-tags*
|
||||
csupport-comm-to-code csupport.txt /*csupport-comm-to-code*
|
||||
csupport-ctags csupport.txt /*csupport-ctags*
|
||||
csupport-ctags-make csupport.txt /*csupport-ctags-make*
|
||||
csupport-ctags-templates csupport.txt /*csupport-ctags-templates*
|
||||
csupport-custom csupport.txt /*csupport-custom*
|
||||
csupport-custom-glob-vars csupport.txt /*csupport-custom-glob-vars*
|
||||
csupport-custom-root-menu csupport.txt /*csupport-custom-root-menu*
|
||||
csupport-dictionary csupport.txt /*csupport-dictionary*
|
||||
csupport-folding csupport.txt /*csupport-folding*
|
||||
csupport-help csupport.txt /*csupport-help*
|
||||
csupport-hotkeys csupport.txt /*csupport-hotkeys*
|
||||
csupport-idioms csupport.txt /*csupport-idioms*
|
||||
csupport-idioms-for-loop csupport.txt /*csupport-idioms-for-loop*
|
||||
csupport-idioms-function csupport.txt /*csupport-idioms-function*
|
||||
csupport-idioms-input csupport.txt /*csupport-idioms-input*
|
||||
csupport-idioms-output csupport.txt /*csupport-idioms-output*
|
||||
csupport-prep csupport.txt /*csupport-prep*
|
||||
csupport-prep-ex csupport.txt /*csupport-prep-ex*
|
||||
csupport-prep-if0 csupport.txt /*csupport-prep-if0*
|
||||
csupport-prep-normal-mode csupport.txt /*csupport-prep-normal-mode*
|
||||
csupport-prep-visual-mode csupport.txt /*csupport-prep-visual-mode*
|
||||
csupport-proto csupport.txt /*csupport-proto*
|
||||
csupport-release-notes csupport.txt /*csupport-release-notes*
|
||||
csupport-run csupport.txt /*csupport-run*
|
||||
csupport-run-buffer csupport.txt /*csupport-run-buffer*
|
||||
csupport-run-cmdline-args csupport.txt /*csupport-run-cmdline-args*
|
||||
csupport-run-codecheck csupport.txt /*csupport-run-codecheck*
|
||||
csupport-run-hardcopy csupport.txt /*csupport-run-hardcopy*
|
||||
csupport-run-indent csupport.txt /*csupport-run-indent*
|
||||
csupport-run-make csupport.txt /*csupport-run-make*
|
||||
csupport-run-make-args csupport.txt /*csupport-run-make-args*
|
||||
csupport-run-output csupport.txt /*csupport-run-output*
|
||||
csupport-run-splint csupport.txt /*csupport-run-splint*
|
||||
csupport-run-templates csupport.txt /*csupport-run-templates*
|
||||
csupport-run-xterm csupport.txt /*csupport-run-xterm*
|
||||
csupport-snippets csupport.txt /*csupport-snippets*
|
||||
csupport-stat csupport.txt /*csupport-stat*
|
||||
csupport-stat-normal-mode csupport.txt /*csupport-stat-normal-mode*
|
||||
csupport-stat-visual-mode csupport.txt /*csupport-stat-visual-mode*
|
||||
csupport-system-wide csupport.txt /*csupport-system-wide*
|
||||
csupport-templates csupport.txt /*csupport-templates*
|
||||
csupport-templates-bind csupport.txt /*csupport-templates-bind*
|
||||
csupport-templates-date csupport.txt /*csupport-templates-date*
|
||||
csupport-templates-definition csupport.txt /*csupport-templates-definition*
|
||||
csupport-templates-expansion csupport.txt /*csupport-templates-expansion*
|
||||
csupport-templates-files csupport.txt /*csupport-templates-files*
|
||||
csupport-templates-jump csupport.txt /*csupport-templates-jump*
|
||||
csupport-templates-macros csupport.txt /*csupport-templates-macros*
|
||||
csupport-templates-menu csupport.txt /*csupport-templates-menu*
|
||||
csupport-templates-names csupport.txt /*csupport-templates-names*
|
||||
csupport-templates-sets csupport.txt /*csupport-templates-sets*
|
||||
csupport-tips csupport.txt /*csupport-tips*
|
||||
csupport-troubleshooting csupport.txt /*csupport-troubleshooting*
|
||||
csupport-usage-gvim csupport.txt /*csupport-usage-gvim*
|
||||
csupport-usage-vim csupport.txt /*csupport-usage-vim*
|
||||
csupport-windows csupport.txt /*csupport-windows*
|
||||
csupport.txt csupport.txt /*csupport.txt*
|
||||
g:snippets_dir snipMate.txt /*g:snippets_dir*
|
||||
g:snips_author snipMate.txt /*g:snips_author*
|
||||
i_CTRL-R_<Tab> snipMate.txt /*i_CTRL-R_<Tab>*
|
||||
list-snippets snipMate.txt /*list-snippets*
|
||||
multi_snip snipMate.txt /*multi_snip*
|
||||
snipMate snipMate.txt /*snipMate*
|
||||
snipMate-$# snipMate.txt /*snipMate-$#*
|
||||
snipMate-${#:} snipMate.txt /*snipMate-${#:}*
|
||||
snipMate-${#} snipMate.txt /*snipMate-${#}*
|
||||
snipMate-author snipMate.txt /*snipMate-author*
|
||||
snipMate-commands snipMate.txt /*snipMate-commands*
|
||||
snipMate-contact snipMate.txt /*snipMate-contact*
|
||||
snipMate-description snipMate.txt /*snipMate-description*
|
||||
snipMate-disadvantages snipMate.txt /*snipMate-disadvantages*
|
||||
snipMate-expandtab snipMate.txt /*snipMate-expandtab*
|
||||
snipMate-features snipMate.txt /*snipMate-features*
|
||||
snipMate-filename snipMate.txt /*snipMate-filename*
|
||||
snipMate-indenting snipMate.txt /*snipMate-indenting*
|
||||
snipMate-placeholders snipMate.txt /*snipMate-placeholders*
|
||||
snipMate-remap snipMate.txt /*snipMate-remap*
|
||||
snipMate-settings snipMate.txt /*snipMate-settings*
|
||||
snipMate-usage snipMate.txt /*snipMate-usage*
|
||||
snipMate.txt snipMate.txt /*snipMate.txt*
|
||||
snippet snipMate.txt /*snippet*
|
||||
snippet-syntax snipMate.txt /*snippet-syntax*
|
||||
snippets snipMate.txt /*snippets*
|
||||
taglist-commands taglist.txt /*taglist-commands*
|
||||
taglist-debug taglist.txt /*taglist-debug*
|
||||
taglist-extend taglist.txt /*taglist-extend*
|
||||
taglist-faq taglist.txt /*taglist-faq*
|
||||
taglist-functions taglist.txt /*taglist-functions*
|
||||
taglist-install taglist.txt /*taglist-install*
|
||||
taglist-internet taglist.txt /*taglist-internet*
|
||||
taglist-intro taglist.txt /*taglist-intro*
|
||||
taglist-keys taglist.txt /*taglist-keys*
|
||||
taglist-license taglist.txt /*taglist-license*
|
||||
taglist-menu taglist.txt /*taglist-menu*
|
||||
taglist-options taglist.txt /*taglist-options*
|
||||
taglist-requirements taglist.txt /*taglist-requirements*
|
||||
taglist-session taglist.txt /*taglist-session*
|
||||
taglist-todo taglist.txt /*taglist-todo*
|
||||
taglist-using taglist.txt /*taglist-using*
|
||||
taglist.txt taglist.txt /*taglist.txt*
|
@ -0,0 +1,2 @@
|
||||
" Jade
|
||||
autocmd BufNewFile,BufReadPost *.jade set filetype=jade
|
@ -0,0 +1,436 @@
|
||||
" ------------------------------------------------------------------------------
|
||||
"
|
||||
" Vim filetype plugin file
|
||||
"
|
||||
" Language : C / C++
|
||||
" Plugin : c.vim
|
||||
" Maintainer : Fritz Mehner <mehner@fh-swf.de>
|
||||
" Revision : $Id: c.vim,v 1.58 2010/05/14 19:13:40 mehner Exp $
|
||||
"
|
||||
" ------------------------------------------------------------------------------
|
||||
"
|
||||
" Only do this when not done yet for this buffer
|
||||
"
|
||||
if exists("b:did_C_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_C_ftplugin = 1
|
||||
"
|
||||
" ---------- Do we have a mapleader other than '\' ? ------------
|
||||
"
|
||||
if exists("g:C_MapLeader")
|
||||
let maplocalleader = g:C_MapLeader
|
||||
endif
|
||||
"
|
||||
" ---------- C/C++ dictionary -----------------------------------
|
||||
" This will enable keyword completion for C and C++
|
||||
" using Vim's dictionary feature |i_CTRL-X_CTRL-K|.
|
||||
" Set the new dictionaries in front of the existing ones
|
||||
"
|
||||
if exists("g:C_Dictionary_File")
|
||||
let save=&dictionary
|
||||
silent! exe 'setlocal dictionary='.g:C_Dictionary_File
|
||||
silent! exe 'setlocal dictionary+='.save
|
||||
endif
|
||||
"
|
||||
" ---------- F-key mappings ------------------------------------
|
||||
"
|
||||
" Alt-F9 write buffer and compile
|
||||
" F9 compile and link
|
||||
" Ctrl-F9 run executable
|
||||
" Shift-F9 command line arguments
|
||||
"
|
||||
map <buffer> <silent> <A-F9> :call C_Compile()<CR>:call C_HlMessage()<CR>
|
||||
imap <buffer> <silent> <A-F9> <C-C>:call C_Compile()<CR>:call C_HlMessage()<CR>
|
||||
"
|
||||
map <buffer> <silent> <F9> :call C_Link()<CR>:call C_HlMessage()<CR>
|
||||
imap <buffer> <silent> <F9> <C-C>:call C_Link()<CR>:call C_HlMessage()<CR>
|
||||
"
|
||||
map <buffer> <silent> <C-F9> :call C_Run()<CR>
|
||||
imap <buffer> <silent> <C-F9> <C-C>:call C_Run()<CR>
|
||||
"
|
||||
map <buffer> <silent> <S-F9> :call C_Arguments()<CR>
|
||||
imap <buffer> <silent> <S-F9> <C-C>:call C_Arguments()<CR>
|
||||
"
|
||||
" ---------- alternate file plugin (a.vim) ----------------------
|
||||
"
|
||||
if exists("loaded_alternateFile")
|
||||
map <buffer> <silent> <S-F2> :A<CR>
|
||||
imap <buffer> <silent> <S-F2> <C-C>:A<CR>
|
||||
endif
|
||||
"
|
||||
command! -nargs=1 -complete=customlist,C_CFileSectionList CFileSection call C_CFileSectionListInsert (<f-args>)
|
||||
command! -nargs=1 -complete=customlist,C_HFileSectionList HFileSection call C_HFileSectionListInsert (<f-args>)
|
||||
command! -nargs=1 -complete=customlist,C_KeywordCommentList KeywordComment call C_KeywordCommentListInsert (<f-args>)
|
||||
command! -nargs=1 -complete=customlist,C_SpecialCommentList SpecialComment call C_SpecialCommentListInsert (<f-args>)
|
||||
command! -nargs=1 -complete=customlist,C_StdLibraryIncludesList IncludeStdLibrary call C_StdLibraryIncludesInsert (<f-args>)
|
||||
command! -nargs=1 -complete=customlist,C_C99LibraryIncludesList IncludeC99Library call C_C99LibraryIncludesInsert (<f-args>)
|
||||
command! -nargs=1 -complete=customlist,C_CppLibraryIncludesList IncludeCppLibrary call C_CppLibraryIncludesInsert (<f-args>)
|
||||
command! -nargs=1 -complete=customlist,C_CppCLibraryIncludesList IncludeCppCLibrary call C_CppCLibraryIncludesInsert(<f-args>)
|
||||
command! -nargs=1 -complete=customlist,C_StyleList CStyle call C_Style (<f-args>)
|
||||
|
||||
" ---------- KEY MAPPINGS : MENU ENTRIES -------------------------------------
|
||||
" ---------- comments menu ------------------------------------------------
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>cl :call C_LineEndComment()<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>cl <Esc>:call C_LineEndComment()<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>cl <Esc>:call C_MultiLineEndComments()<CR>a
|
||||
noremap <buffer> <silent> <LocalLeader>cj :call C_AdjustLineEndComm("a")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>cj <Esc>:call C_AdjustLineEndComm("v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>cj <Esc>:call C_AdjustLineEndComm("a")<CR>a
|
||||
noremap <buffer> <silent> <LocalLeader>cs :call C_GetLineEndCommCol()<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>c* :call C_CodeComment("a","yes")<CR>:nohlsearch<CR>j
|
||||
vnoremap <buffer> <silent> <LocalLeader>c* <Esc>:call C_CodeComment("v","yes")<CR>:nohlsearch<CR>j
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>cc :call C_CodeComment("a","no")<CR>:nohlsearch<CR>j
|
||||
vnoremap <buffer> <silent> <LocalLeader>cc <Esc>:call C_CodeComment("v","no")<CR>:nohlsearch<CR>j
|
||||
noremap <buffer> <silent> <LocalLeader>co :call C_CommentCode("a")<CR>:nohlsearch<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>co <Esc>:call C_CommentCode("v")<CR>:nohlsearch<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>cfr :call C_InsertTemplate("comment.frame")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>cfu :call C_InsertTemplate("comment.function")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>cme :call C_InsertTemplate("comment.method")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>ccl :call C_InsertTemplate("comment.class")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>cfdi :call C_InsertTemplate("comment.file-description")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>cfdh :call C_InsertTemplate("comment.file-description-header")<CR>
|
||||
|
||||
inoremap <buffer> <silent> <LocalLeader>cfr <Esc>:call C_InsertTemplate("comment.frame")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>cfu <Esc>:call C_InsertTemplate("comment.function")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>cme <Esc>:call C_InsertTemplate("comment.method")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>ccl <Esc>:call C_InsertTemplate("comment.class")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>cfdi <Esc>:call C_InsertTemplate("comment.file-description")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>cfdh <Esc>:call C_InsertTemplate("comment.file-description-header")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>cd <Esc>:call C_InsertDateAndTime('d')<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>cd <Esc>:call C_InsertDateAndTime('d')<CR>a
|
||||
vnoremap <buffer> <silent> <LocalLeader>cd s<Esc>:call C_InsertDateAndTime('d')<CR>a
|
||||
noremap <buffer> <silent> <LocalLeader>ct <Esc>:call C_InsertDateAndTime('dt')<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>ct <Esc>:call C_InsertDateAndTime('dt')<CR>a
|
||||
vnoremap <buffer> <silent> <LocalLeader>ct s<Esc>:call C_InsertDateAndTime('dt')<CR>a
|
||||
"
|
||||
" call the above defined commands:
|
||||
"
|
||||
noremap <buffer> <LocalLeader>ccs <Esc>:CFileSection<Space>
|
||||
noremap <buffer> <LocalLeader>chs <Esc>:HFileSection<Space>
|
||||
noremap <buffer> <LocalLeader>ckc <Esc>:KeywordComment<Space>
|
||||
noremap <buffer> <LocalLeader>csc <Esc>:SpecialComment<Space>
|
||||
"
|
||||
inoremap <buffer> <LocalLeader>ccs <Esc>:CFileSection<Space>
|
||||
inoremap <buffer> <LocalLeader>chs <Esc>:HFileSection<Space>
|
||||
inoremap <buffer> <LocalLeader>ckc <Esc>:KeywordComment<Space>
|
||||
inoremap <buffer> <LocalLeader>csc <Esc>:SpecialComment<Space>
|
||||
"
|
||||
" ---------- statements menu ------------------------------------------------
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>sd :call C_InsertTemplate("statements.do-while")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>sd <Esc>:call C_InsertTemplate("statements.do-while", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>sd <Esc>:call C_InsertTemplate("statements.do-while")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>sf :call C_InsertTemplate("statements.for")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>sf <Esc>:call C_InsertTemplate("statements.for")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>sfo :call C_InsertTemplate("statements.for-block")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>sfo <Esc>:call C_InsertTemplate("statements.for-block", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>sfo <Esc>:call C_InsertTemplate("statements.for-block")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>si :call C_InsertTemplate("statements.if")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>si <Esc>:call C_InsertTemplate("statements.if")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>sif :call C_InsertTemplate("statements.if-block")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>sif <Esc>:call C_InsertTemplate("statements.if-block", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>sif <Esc>:call C_InsertTemplate("statements.if-block")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>sie :call C_InsertTemplate("statements.if-else")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>sie <Esc>:call C_InsertTemplate("statements.if-else", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>sie <Esc>:call C_InsertTemplate("statements.if-else")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>sife :call C_InsertTemplate("statements.if-block-else")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>sife <Esc>:call C_InsertTemplate("statements.if-block-else", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>sife <Esc>:call C_InsertTemplate("statements.if-block-else")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>se :call C_InsertTemplate("statements.else-block")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>se <Esc>:call C_InsertTemplate("statements.else-block", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>se <Esc>:call C_InsertTemplate("statements.else-block")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>sw :call C_InsertTemplate("statements.while")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>sw <Esc>:call C_InsertTemplate("statements.while")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>swh :call C_InsertTemplate("statements.while-block")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>swh <Esc>:call C_InsertTemplate("statements.while-block", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>swh <Esc>:call C_InsertTemplate("statements.while-block")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>ss :call C_InsertTemplate("statements.switch")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>ss <Esc>:call C_InsertTemplate("statements.switch", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>ss <Esc>:call C_InsertTemplate("statements.switch")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>sc :call C_InsertTemplate("statements.case")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>sc <Esc>:call C_InsertTemplate("statements.case")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>s{ :call C_InsertTemplate("statements.block")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>s{ <Esc>:call C_InsertTemplate("statements.block", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>s{ <Esc>:call C_InsertTemplate("statements.block")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>sb :call C_InsertTemplate("statements.block")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>sb <Esc>:call C_InsertTemplate("statements.block", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>sb <Esc>:call C_InsertTemplate("statements.block")<CR>
|
||||
"
|
||||
" ---------- preprocessor menu ----------------------------------------------
|
||||
""
|
||||
noremap <buffer> <LocalLeader>ps :IncludeStdLibrary<Space>
|
||||
inoremap <buffer> <LocalLeader>ps <Esc>:IncludeStdLibrary<Space>
|
||||
noremap <buffer> <LocalLeader>pc :IncludeC99Library<Space>
|
||||
inoremap <buffer> <LocalLeader>pc <Esc>:IncludeC99Library<Space>
|
||||
noremap <buffer> <LocalLeader>+ps :IncludeCppLibrary<Space>
|
||||
inoremap <buffer> <LocalLeader>+ps <Esc>:IncludeCppLibrary<Space>
|
||||
noremap <buffer> <LocalLeader>+pc :IncludeCppCLibrary<Space>
|
||||
inoremap <buffer> <LocalLeader>+pc <Esc>:IncludeCppC9Library<Space>
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>p< :call C_InsertTemplate("preprocessor.include-global")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>p" :call C_InsertTemplate("preprocessor.include-local")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>pd :call C_InsertTemplate("preprocessor.define")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>pu :call C_InsertTemplate("preprocessor.undefine")<CR>
|
||||
"
|
||||
inoremap <buffer> <silent> <LocalLeader>p< <Esc>:call C_InsertTemplate("preprocessor.include-global")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>p" <Esc>:call C_InsertTemplate("preprocessor.include-local")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>pd <Esc>:call C_InsertTemplate("preprocessor.define")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>pu <Esc>:call C_InsertTemplate("preprocessor.undefine")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>pie :call C_InsertTemplate("preprocessor.if-else-endif")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>pid :call C_InsertTemplate("preprocessor.ifdef-else-endif")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>pin :call C_InsertTemplate("preprocessor.ifndef-else-endif")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>pind :call C_InsertTemplate("preprocessor.ifndef-def-endif")<CR>
|
||||
|
||||
vnoremap <buffer> <silent> <LocalLeader>pie <Esc>:call C_InsertTemplate("preprocessor.if-else-endif", "v")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>pid <Esc>:call C_InsertTemplate("preprocessor.ifdef-else-endif", "v")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>pin <Esc>:call C_InsertTemplate("preprocessor.ifndef-else-endif", "v")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>pind <Esc>:call C_InsertTemplate("preprocessor.ifndef-def-endif", "v")<CR>
|
||||
|
||||
inoremap <buffer> <silent> <LocalLeader>pie <Esc>:call C_InsertTemplate("preprocessor.if-else-endif")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>pid <Esc>:call C_InsertTemplate("preprocessor.ifdef-else-endif")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>pin <Esc>:call C_InsertTemplate("preprocessor.ifndef-else-endif")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>pind <Esc>:call C_InsertTemplate("preprocessor.ifndef-def-endif")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>pi0 :call C_PPIf0("a")<CR>2ji
|
||||
inoremap <buffer> <silent> <LocalLeader>pi0 <Esc>:call C_PPIf0("a")<CR>2ji
|
||||
vnoremap <buffer> <silent> <LocalLeader>pi0 <Esc>:call C_PPIf0("v")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>pr0 :call C_PPIf0Remove()<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>pr0 <Esc>:call C_PPIf0Remove()<CR>
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>pe :call C_InsertTemplate("preprocessor.error")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>pl :call C_InsertTemplate("preprocessor.line")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>pp :call C_InsertTemplate("preprocessor.pragma")<CR>
|
||||
"
|
||||
inoremap <buffer> <silent> <LocalLeader>pe <Esc>:call C_InsertTemplate("preprocessor.error")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>pl <Esc>:call C_InsertTemplate("preprocessor.line")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>pp <Esc>:call C_InsertTemplate("preprocessor.pragma")<CR>
|
||||
"
|
||||
" ---------- idioms menu ----------------------------------------------------
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>if :call C_InsertTemplate("idioms.function")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>if <Esc>:call C_InsertTemplate("idioms.function", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>if <Esc>:call C_InsertTemplate("idioms.function")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>isf :call C_InsertTemplate("idioms.function-static")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>isf <Esc>:call C_InsertTemplate("idioms.function-static", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>isf <Esc>:call C_InsertTemplate("idioms.function-static")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>im :call C_InsertTemplate("idioms.main")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>im <Esc>:call C_InsertTemplate("idioms.main", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>im <Esc>:call C_InsertTemplate("idioms.main")<CR>
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>i0 :call C_CodeFor("up" , "a")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>i0 <Esc>:call C_CodeFor("up" , "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>i0 <Esc>:call C_CodeFor("up" , "a")<CR>i
|
||||
noremap <buffer> <silent> <LocalLeader>in :call C_CodeFor("down", "a")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>in <Esc>:call C_CodeFor("down", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>in <Esc>:call C_CodeFor("down", "a")<CR>i
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>ie :call C_InsertTemplate("idioms.enum")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>ie <Esc>:call C_InsertTemplate("idioms.enum" , "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>ie <Esc>:call C_InsertTemplate("idioms.enum")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>is :call C_InsertTemplate("idioms.struct")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>is <Esc>:call C_InsertTemplate("idioms.struct", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>is <Esc>:call C_InsertTemplate("idioms.struct")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>iu :call C_InsertTemplate("idioms.union")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>iu <Esc>:call C_InsertTemplate("idioms.union" , "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>iu <Esc>:call C_InsertTemplate("idioms.union")<CR>
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>ip :call C_InsertTemplate("idioms.printf")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>ip <Esc>:call C_InsertTemplate("idioms.printf")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>isc :call C_InsertTemplate("idioms.scanf")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>isc <Esc>:call C_InsertTemplate("idioms.scanf")<CR>
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>ica :call C_InsertTemplate("idioms.calloc")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>ica <Esc>:call C_InsertTemplate("idioms.calloc")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>ima :call C_InsertTemplate("idioms.malloc")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>ima <Esc>:call C_InsertTemplate("idioms.malloc")<CR>
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>isi :call C_InsertTemplate("idioms.sizeof")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>isi <Esc>:call C_InsertTemplate("idioms.sizeof")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>isi <Esc>:call C_InsertTemplate("idioms.sizeof", "v")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>ias :call C_InsertTemplate("idioms.assert")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>ias <Esc>:call C_InsertTemplate("idioms.assert", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>ias <Esc>:call C_InsertTemplate("idioms.assert")<CR>
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>ii :call C_InsertTemplate("idioms.open-input-file")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>ii <Esc>:call C_InsertTemplate("idioms.open-input-file")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>ii <Esc>:call C_InsertTemplate("idioms.open-input-file", "v")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>io :call C_InsertTemplate("idioms.open-output-file")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>io <Esc>:call C_InsertTemplate("idioms.open-output-file")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>io <Esc>:call C_InsertTemplate("idioms.open-output-file", "v")<CR>
|
||||
"
|
||||
" ---------- snippet menu ----------------------------------------------------
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>nr :call C_CodeSnippet("r")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>nw :call C_CodeSnippet("w")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>nw <Esc>:call C_CodeSnippet("wv")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>ne :call C_CodeSnippet("e")<CR>
|
||||
"
|
||||
inoremap <buffer> <silent> <LocalLeader>nr <Esc>:call C_CodeSnippet("r")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>nw <Esc>:call C_CodeSnippet("w")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>ne <Esc>:call C_CodeSnippet("e")<CR>
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>np :call C_ProtoPick("n")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>np <Esc>:call C_ProtoPick("v")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>ni :call C_ProtoInsert()<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>nc :call C_ProtoClear()<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>ns :call C_ProtoShow()<CR>
|
||||
"
|
||||
inoremap <buffer> <silent> <LocalLeader>np <Esc>:call C_ProtoPick("n")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>ni <Esc>:call C_ProtoInsert()<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>nc <Esc>:call C_ProtoClear()<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>ns <Esc>:call C_ProtoShow()<CR>
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>ntl :call C_EditTemplates("local")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>ntg :call C_EditTemplates("global")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>ntr :call C_RereadTemplates()<CR>
|
||||
noremap <buffer> <LocalLeader>nts <Esc>:CStyle<Space>
|
||||
"
|
||||
" ---------- C++ menu ----------------------------------------------------
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>+co :call C_InsertTemplate("cpp.cout")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+co <Esc>:call C_InsertTemplate("cpp.cout")<CR>
|
||||
"
|
||||
noremap <buffer> <silent> <LocalLeader>+c :call C_InsertTemplate("cpp.class-definition")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+c <Esc>:call C_InsertTemplate("cpp.class-definition")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>+cn :call C_InsertTemplate("cpp.class-using-new-definition")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+cn <Esc>:call C_InsertTemplate("cpp.class-using-new-definition")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>+ci :call C_InsertTemplate("cpp.class-implementation")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+ci <Esc>:call C_InsertTemplate("cpp.class-implementation")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>+cni :call C_InsertTemplate("cpp.class-using-new-implementation")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+cni <Esc>:call C_InsertTemplate("cpp.class-using-new-implementation")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>+mi :call C_InsertTemplate("cpp.method-implementation")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+mi <Esc>:call C_InsertTemplate("cpp.method-implementation")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>+ai :call C_InsertTemplate("cpp.accessor-implementation")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+ai <Esc>:call C_InsertTemplate("cpp.accessor-implementation")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>+tc :call C_InsertTemplate("cpp.template-class-definition")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+tc <Esc>:call C_InsertTemplate("cpp.template-class-definition")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>+tcn :call C_InsertTemplate("cpp.template-class-using-new-definition")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+tcn <Esc>:call C_InsertTemplate("cpp.template-class-using-new-definition")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>+tci :call C_InsertTemplate("cpp.template-class-implementation")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+tci <Esc>:call C_InsertTemplate("cpp.template-class-implementation")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>+tcni :call C_InsertTemplate("cpp.template-class-using-new-implementation")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+tcni <Esc>:call C_InsertTemplate("cpp.template-class-using-new-implementation")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>+tmi :call C_InsertTemplate("cpp.template-method-implementation")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+tmi <Esc>:call C_InsertTemplate("cpp.template-method-implementation")<CR>
|
||||
noremap <buffer> <silent> <LocalLeader>+tai :call C_InsertTemplate("cpp.template-accessor-implementation")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+tai <Esc>:call C_InsertTemplate("cpp.template-accessor-implementation")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>+tf :call C_InsertTemplate("cpp.template-function")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+tf <Esc>:call C_InsertTemplate("cpp.template-function")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>+ec :call C_InsertTemplate("cpp.error-class")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+ec <Esc>:call C_InsertTemplate("cpp.error-class")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>+tr :call C_InsertTemplate("cpp.try-catch")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>+tr <Esc>:call C_InsertTemplate("cpp.try-catch", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+tr <Esc>:call C_InsertTemplate("cpp.try-catch")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>+ca :call C_InsertTemplate("cpp.catch")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>+ca <Esc>:call C_InsertTemplate("cpp.catch", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+ca <Esc>:call C_InsertTemplate("cpp.catch")<CR>
|
||||
|
||||
noremap <buffer> <silent> <LocalLeader>+c. :call C_InsertTemplate("cpp.catch-points")<CR>
|
||||
vnoremap <buffer> <silent> <LocalLeader>+c. <Esc>:call C_InsertTemplate("cpp.catch-points", "v")<CR>
|
||||
inoremap <buffer> <silent> <LocalLeader>+c. <Esc>:call C_InsertTemplate("cpp.catch-points")<CR>
|
||||
"
|
||||
" ---------- run menu --------------------------------------------------------
|
||||
"
|
||||
map <buffer> <silent> <LocalLeader>rc :call C_Compile()<CR>:call C_HlMessage()<CR>
|
||||
map <buffer> <silent> <LocalLeader>rl :call C_Link()<CR>:call C_HlMessage()<CR>
|
||||
map <buffer> <silent> <LocalLeader>rr :call C_Run()<CR>
|
||||
map <buffer> <silent> <LocalLeader>ra :call C_Arguments()<CR>
|
||||
map <buffer> <silent> <LocalLeader>rm :call C_Make()<CR>
|
||||
map <buffer> <silent> <LocalLeader>rma :call C_MakeArguments()<CR>
|
||||
map <buffer> <silent> <LocalLeader>rp :call C_SplintCheck()<CR>:call C_HlMessage()<CR>
|
||||
map <buffer> <silent> <LocalLeader>rpa :call C_SplintArguments()<CR>
|
||||
map <buffer> <silent> <LocalLeader>rd :call C_Indent()<CR>
|
||||
map <buffer> <silent> <LocalLeader>rh :call C_Hardcopy("n")<CR>
|
||||
map <buffer> <silent> <LocalLeader>rs :call C_Settings()<CR>
|
||||
"
|
||||
vmap <buffer> <silent> <LocalLeader>rh <C-C>:call C_Hardcopy("v")<CR>
|
||||
"
|
||||
imap <buffer> <silent> <LocalLeader>rc <C-C>:call C_Compile()<CR>:call C_HlMessage()<CR>
|
||||
imap <buffer> <silent> <LocalLeader>rl <C-C>:call C_Link()<CR>:call C_HlMessage()<CR>
|
||||
imap <buffer> <silent> <LocalLeader>rr <C-C>:call C_Run()<CR>
|
||||
imap <buffer> <silent> <LocalLeader>ra <C-C>:call C_Arguments()<CR>
|
||||
imap <buffer> <silent> <LocalLeader>rm <C-C>:call C_Make()<CR>
|
||||
imap <buffer> <silent> <LocalLeader>rma <C-C>:call C_MakeArguments()<CR>
|
||||
imap <buffer> <silent> <LocalLeader>rp <C-C>:call C_SplintCheck()<CR>:call C_HlMessage()<CR>
|
||||
imap <buffer> <silent> <LocalLeader>rpa <C-C>:call C_SplintArguments()<CR>
|
||||
imap <buffer> <silent> <LocalLeader>rd <C-C>:call C_Indent()<CR>
|
||||
imap <buffer> <silent> <LocalLeader>rh <C-C>:call C_Hardcopy("n")<CR>
|
||||
imap <buffer> <silent> <LocalLeader>rs <C-C>:call C_Settings()<CR>
|
||||
if has("unix")
|
||||
map <buffer> <silent> <LocalLeader>rx :call C_XtermSize()<CR>
|
||||
imap <buffer> <silent> <LocalLeader>rx <C-C>:call C_XtermSize()<CR>
|
||||
endif
|
||||
map <buffer> <silent> <LocalLeader>ro :call C_Toggle_Gvim_Xterm()<CR>
|
||||
imap <buffer> <silent> <LocalLeader>ro <C-C>:call C_Toggle_Gvim_Xterm()<CR>
|
||||
"
|
||||
" Abraxas CodeCheck (R)
|
||||
"
|
||||
if executable("check")
|
||||
map <buffer> <silent> <LocalLeader>rk :call C_CodeCheck()<CR>:call C_HlMessage()<CR>
|
||||
map <buffer> <silent> <LocalLeader>rka :call C_CodeCheckArguments()<CR>
|
||||
imap <buffer> <silent> <LocalLeader>rk <C-C>:call C_CodeCheck()<CR>:call C_HlMessage()<CR>
|
||||
imap <buffer> <silent> <LocalLeader>rka <C-C>:call C_CodeCheckArguments()<CR>
|
||||
endif
|
||||
" ---------- plugin help -----------------------------------------------------
|
||||
"
|
||||
map <buffer> <silent> <LocalLeader>hp :call C_HelpCsupport()<CR>
|
||||
imap <buffer> <silent> <LocalLeader>hp <C-C>:call C_HelpCsupport()<CR>
|
||||
map <buffer> <silent> <LocalLeader>hm :call C_Help("m")<CR>
|
||||
imap <buffer> <silent> <LocalLeader>hm <C-C>:call C_Help("m")<CR>
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" additional mapping : complete a classical C comment: '/*' => '/* | */'
|
||||
"-------------------------------------------------------------------------------
|
||||
inoremap <buffer> /* /*<Space><Space>*/<Left><Left><Left>
|
||||
vnoremap <buffer> /* s/*<Space><Space>*/<Left><Left><Left><Esc>p
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" additional mapping : complete a classical C multi-line comment:
|
||||
" '/*<CR>' => /*
|
||||
" * |
|
||||
" */
|
||||
"-------------------------------------------------------------------------------
|
||||
inoremap <buffer> /*<CR> /*<CR><CR>/<Esc>kA<Space>
|
||||
"
|
||||
"-------------------------------------------------------------------------------
|
||||
" additional mapping : {<CR> always opens a block
|
||||
"-------------------------------------------------------------------------------
|
||||
inoremap <buffer> {<CR> {<CR>}<Esc>O
|
||||
vnoremap <buffer> {<CR> S{<CR>}<Esc>Pk=iB
|
||||
"
|
||||
"
|
||||
if !exists("g:C_Ctrl_j") || ( exists("g:C_Ctrl_j") && g:C_Ctrl_j != 'off' )
|
||||
nmap <buffer> <silent> <C-j> i<C-R>=C_JumpCtrlJ()<CR>
|
||||
imap <buffer> <silent> <C-j> <C-R>=C_JumpCtrlJ()<CR>
|
||||
endif
|
@ -0,0 +1,10 @@
|
||||
" Helper function for (x)html snippets
|
||||
if exists('s:did_snip_helper') || &cp || !exists('loaded_snips')
|
||||
finish
|
||||
endif
|
||||
let s:did_snip_helper = 1
|
||||
|
||||
" Automatically closes tag if in xhtml
|
||||
fun! Close()
|
||||
return stridx(&ft, 'xhtml') == -1 ? '' : ' /'
|
||||
endf
|
@ -0,0 +1,53 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Jade
|
||||
" Maintainer: Joshua Borton
|
||||
" Credits: Tim Pope
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo-=C
|
||||
|
||||
" Define some defaults in case the included ftplugins don't set them.
|
||||
let s:undo_ftplugin = ""
|
||||
let s:browsefilter = "All Files (*.*)\t*.*\n"
|
||||
let s:match_words = ""
|
||||
|
||||
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
|
||||
unlet! b:did_ftplugin
|
||||
|
||||
" Override our defaults if these were set by an included ftplugin.
|
||||
if exists("b:undo_ftplugin")
|
||||
let s:undo_ftplugin = b:undo_ftplugin
|
||||
unlet b:undo_ftplugin
|
||||
endif
|
||||
if exists("b:browsefilter")
|
||||
let s:browsefilter = b:browsefilter
|
||||
unlet b:browsefilter
|
||||
endif
|
||||
if exists("b:match_words")
|
||||
let s:match_words = b:match_words
|
||||
unlet b:match_words
|
||||
endif
|
||||
|
||||
" Change the browse dialog on Win32 to show mainly Haml-related files
|
||||
if has("gui_win32")
|
||||
let b:browsefilter="Jade Files (*.jade)\t*.jade\n" . s:browsefilter
|
||||
endif
|
||||
|
||||
" Load the combined list of match_words for matchit.vim
|
||||
if exists("loaded_matchit")
|
||||
let b:match_words = s:match_words
|
||||
endif
|
||||
|
||||
setlocal comments= commentstring=-#\ %s
|
||||
|
||||
let b:undo_ftplugin = "setl cms< com< "
|
||||
\ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
|
||||
" vim:set sw=2:
|
@ -0,0 +1,70 @@
|
||||
" Vim indent file
|
||||
" Language: Jade
|
||||
" Maintainer: Joshua Borton
|
||||
" Credits: Tim Pope (vim-jade)
|
||||
" Last Change: 2010 Sep 22
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
|
||||
unlet! b:did_indent
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal autoindent sw=2 et
|
||||
setlocal indentexpr=GetJadeIndent()
|
||||
setlocal indentkeys=o,O,*<Return>,},],0),!^F
|
||||
|
||||
" Only define the function once.
|
||||
if exists("*GetJadeIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:attributes = '\%((.\{-\})\)'
|
||||
let s:tag = '\([%.#][[:alnum:]_-]\+\|'.s:attributes.'\)*[<>]*'
|
||||
|
||||
if !exists('g:jade_self_closing_tags')
|
||||
let g:jade_self_closing_tags = 'meta|link|img|hr|br'
|
||||
endif
|
||||
|
||||
setlocal formatoptions+=r
|
||||
setlocal comments+=n:\|
|
||||
|
||||
function! GetJadeIndent()
|
||||
let lnum = prevnonblank(v:lnum-1)
|
||||
if lnum == 0
|
||||
return 0
|
||||
endif
|
||||
let line = substitute(getline(lnum),'\s\+$','','')
|
||||
let cline = substitute(substitute(getline(v:lnum),'\s\+$','',''),'^\s\+','','')
|
||||
let lastcol = strlen(line)
|
||||
let line = substitute(line,'^\s\+','','')
|
||||
let indent = indent(lnum)
|
||||
let cindent = indent(v:lnum)
|
||||
let increase = indent + &sw
|
||||
if indent == indent(lnum)
|
||||
let indent = cindent <= indent ? -1 : increase
|
||||
endif
|
||||
|
||||
let group = synIDattr(synID(lnum,lastcol,1),'name')
|
||||
|
||||
if line =~ '^!!!'
|
||||
return indent
|
||||
elseif line =~ '^/\%(\[[^]]*\]\)\=$'
|
||||
return increase
|
||||
elseif group == 'jadeFilter'
|
||||
return increase
|
||||
elseif line =~ '^'.s:tag.'[&!]\=[=~-].*,\s*$'
|
||||
return increase
|
||||
elseif line == '-#'
|
||||
return increase
|
||||
elseif line =~? '^\v%('.g:jade_self_closing_tags.')>'
|
||||
return indent
|
||||
elseif group =~? '\v^%(jadeTag|jadeAttributesDelimiter|jadeClass|jadeId|htmlTagName|htmlSpecialTagName)$'
|
||||
return increase
|
||||
else
|
||||
return indent
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" vim:set sw=2:
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,170 @@
|
||||
"=============================================================================
|
||||
" Copyright (c) 2007-2009 Takeshi NISHIDA
|
||||
"
|
||||
" GetLatestVimScripts: 1879 1 :AutoInstall: AutoComplPop
|
||||
"=============================================================================
|
||||
" LOAD GUARD {{{1
|
||||
|
||||
if exists('g:loaded_acp')
|
||||
finish
|
||||
elseif v:version < 702
|
||||
echoerr 'AutoComplPop does not support this version of vim (' . v:version . ').'
|
||||
finish
|
||||
endif
|
||||
let g:loaded_acp = 1
|
||||
|
||||
" }}}1
|
||||
"=============================================================================
|
||||
" FUNCTION: {{{1
|
||||
|
||||
"
|
||||
function s:defineOption(name, default)
|
||||
if !exists(a:name)
|
||||
let {a:name} = a:default
|
||||
endif
|
||||
endfunction
|
||||
|
||||
"
|
||||
function s:makeDefaultBehavior()
|
||||
let behavs = {
|
||||
\ '*' : [],
|
||||
\ 'ruby' : [],
|
||||
\ 'python' : [],
|
||||
\ 'perl' : [],
|
||||
\ 'xml' : [],
|
||||
\ 'html' : [],
|
||||
\ 'xhtml' : [],
|
||||
\ 'css' : [],
|
||||
\ }
|
||||
"---------------------------------------------------------------------------
|
||||
if !empty(g:acp_behaviorUserDefinedFunction) &&
|
||||
\ !empty(g:acp_behaviorUserDefinedMeets)
|
||||
for key in keys(behavs)
|
||||
call add(behavs[key], {
|
||||
\ 'command' : "\<C-x>\<C-u>",
|
||||
\ 'completefunc' : g:acp_behaviorUserDefinedFunction,
|
||||
\ 'meets' : g:acp_behaviorUserDefinedMeets,
|
||||
\ 'repeat' : 0,
|
||||
\ })
|
||||
endfor
|
||||
endif
|
||||
"---------------------------------------------------------------------------
|
||||
for key in keys(behavs)
|
||||
call add(behavs[key], {
|
||||
\ 'command' : "\<C-x>\<C-u>",
|
||||
\ 'completefunc' : 'acp#completeSnipmate',
|
||||
\ 'meets' : 'acp#meetsForSnipmate',
|
||||
\ 'onPopupClose' : 'acp#onPopupCloseSnipmate',
|
||||
\ 'repeat' : 0,
|
||||
\ })
|
||||
endfor
|
||||
"---------------------------------------------------------------------------
|
||||
for key in keys(behavs)
|
||||
call add(behavs[key], {
|
||||
\ 'command' : g:acp_behaviorKeywordCommand,
|
||||
\ 'meets' : 'acp#meetsForKeyword',
|
||||
\ 'repeat' : 0,
|
||||
\ })
|
||||
endfor
|
||||
"---------------------------------------------------------------------------
|
||||
for key in keys(behavs)
|
||||
call add(behavs[key], {
|
||||
\ 'command' : "\<C-x>\<C-f>",
|
||||
\ 'meets' : 'acp#meetsForFile',
|
||||
\ 'repeat' : 1,
|
||||
\ })
|
||||
endfor
|
||||
"---------------------------------------------------------------------------
|
||||
call add(behavs.ruby, {
|
||||
\ 'command' : "\<C-x>\<C-o>",
|
||||
\ 'meets' : 'acp#meetsForRubyOmni',
|
||||
\ 'repeat' : 0,
|
||||
\ })
|
||||
"---------------------------------------------------------------------------
|
||||
call add(behavs.python, {
|
||||
\ 'command' : "\<C-x>\<C-o>",
|
||||
\ 'meets' : 'acp#meetsForPythonOmni',
|
||||
\ 'repeat' : 0,
|
||||
\ })
|
||||
"---------------------------------------------------------------------------
|
||||
call add(behavs.perl, {
|
||||
\ 'command' : "\<C-x>\<C-o>",
|
||||
\ 'meets' : 'acp#meetsForPerlOmni',
|
||||
\ 'repeat' : 0,
|
||||
\ })
|
||||
"---------------------------------------------------------------------------
|
||||
call add(behavs.xml, {
|
||||
\ 'command' : "\<C-x>\<C-o>",
|
||||
\ 'meets' : 'acp#meetsForXmlOmni',
|
||||
\ 'repeat' : 1,
|
||||
\ })
|
||||
"---------------------------------------------------------------------------
|
||||
call add(behavs.html, {
|
||||
\ 'command' : "\<C-x>\<C-o>",
|
||||
\ 'meets' : 'acp#meetsForHtmlOmni',
|
||||
\ 'repeat' : 1,
|
||||
\ })
|
||||
"---------------------------------------------------------------------------
|
||||
call add(behavs.xhtml, {
|
||||
\ 'command' : "\<C-x>\<C-o>",
|
||||
\ 'meets' : 'acp#meetsForHtmlOmni',
|
||||
\ 'repeat' : 1,
|
||||
\ })
|
||||
"---------------------------------------------------------------------------
|
||||
call add(behavs.css, {
|
||||
\ 'command' : "\<C-x>\<C-o>",
|
||||
\ 'meets' : 'acp#meetsForCssOmni',
|
||||
\ 'repeat' : 0,
|
||||
\ })
|
||||
"---------------------------------------------------------------------------
|
||||
return behavs
|
||||
endfunction
|
||||
|
||||
" }}}1
|
||||
"=============================================================================
|
||||
" INITIALIZATION {{{1
|
||||
|
||||
"-----------------------------------------------------------------------------
|
||||
call s:defineOption('g:acp_enableAtStartup', 1)
|
||||
call s:defineOption('g:acp_mappingDriven', 0)
|
||||
call s:defineOption('g:acp_ignorecaseOption', 1)
|
||||
call s:defineOption('g:acp_completeOption', '.,w,b,k')
|
||||
call s:defineOption('g:acp_completeoptPreview', 0)
|
||||
call s:defineOption('g:acp_behaviorUserDefinedFunction', '')
|
||||
call s:defineOption('g:acp_behaviorUserDefinedMeets', '')
|
||||
call s:defineOption('g:acp_behaviorSnipmateLength', -1)
|
||||
call s:defineOption('g:acp_behaviorKeywordCommand', "\<C-n>")
|
||||
call s:defineOption('g:acp_behaviorKeywordLength', 2)
|
||||
call s:defineOption('g:acp_behaviorKeywordIgnores', [])
|
||||
call s:defineOption('g:acp_behaviorFileLength', 0)
|
||||
call s:defineOption('g:acp_behaviorRubyOmniMethodLength', 0)
|
||||
call s:defineOption('g:acp_behaviorRubyOmniSymbolLength', 1)
|
||||
call s:defineOption('g:acp_behaviorPythonOmniLength', 0)
|
||||
call s:defineOption('g:acp_behaviorPerlOmniLength', -1)
|
||||
call s:defineOption('g:acp_behaviorXmlOmniLength', 0)
|
||||
call s:defineOption('g:acp_behaviorHtmlOmniLength', 0)
|
||||
call s:defineOption('g:acp_behaviorCssOmniPropertyLength', 1)
|
||||
call s:defineOption('g:acp_behaviorCssOmniValueLength', 0)
|
||||
call s:defineOption('g:acp_behavior', {})
|
||||
"-----------------------------------------------------------------------------
|
||||
call extend(g:acp_behavior, s:makeDefaultBehavior(), 'keep')
|
||||
"-----------------------------------------------------------------------------
|
||||
command! -bar -narg=0 AcpEnable call acp#enable()
|
||||
command! -bar -narg=0 AcpDisable call acp#disable()
|
||||
command! -bar -narg=0 AcpLock call acp#lock()
|
||||
command! -bar -narg=0 AcpUnlock call acp#unlock()
|
||||
"-----------------------------------------------------------------------------
|
||||
" legacy commands
|
||||
command! -bar -narg=0 AutoComplPopEnable AcpEnable
|
||||
command! -bar -narg=0 AutoComplPopDisable AcpDisable
|
||||
command! -bar -narg=0 AutoComplPopLock AcpLock
|
||||
command! -bar -narg=0 AutoComplPopUnlock AcpUnlock
|
||||
"-----------------------------------------------------------------------------
|
||||
if g:acp_enableAtStartup
|
||||
AcpEnable
|
||||
endif
|
||||
"-----------------------------------------------------------------------------
|
||||
|
||||
" }}}1
|
||||
"=============================================================================
|
||||
" vim: set fdm=marker:
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,247 @@
|
||||
" File: snipMate.vim
|
||||
" Author: Michael Sanders
|
||||
" Last Updated: July 13, 2009
|
||||
" Version: 0.83
|
||||
" Description: snipMate.vim implements some of TextMate's snippets features in
|
||||
" 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>".
|
||||
"
|
||||
" For more help see snipMate.txt; you can do this by using:
|
||||
" :helptags ~/.vim/doc
|
||||
" :h snipMate.txt
|
||||
|
||||
if exists('loaded_snips') || &cp || version < 700
|
||||
finish
|
||||
endif
|
||||
let loaded_snips = 1
|
||||
if !exists('snips_author') | let snips_author = 'Me' | endif
|
||||
|
||||
au BufRead,BufNewFile *.snippets\= set ft=snippet
|
||||
au FileType snippet setl noet fdm=indent
|
||||
|
||||
let s:snippets = {} | let s:multi_snips = {}
|
||||
|
||||
if !exists('snippets_dir')
|
||||
let snippets_dir = substitute(globpath(&rtp, 'snippets/'), "\n", ',', 'g')
|
||||
endif
|
||||
|
||||
fun! MakeSnip(scope, trigger, content, ...)
|
||||
let multisnip = a:0 && a:1 != ''
|
||||
let var = multisnip ? 's:multi_snips' : 's:snippets'
|
||||
if !has_key({var}, a:scope) | let {var}[a:scope] = {} | endif
|
||||
if !has_key({var}[a:scope], a:trigger)
|
||||
let {var}[a:scope][a:trigger] = multisnip ? [[a:1, a:content]] : a:content
|
||||
elseif multisnip | let {var}[a:scope][a:trigger] += [[a:1, a:content]]
|
||||
else
|
||||
echom 'Warning in snipMate.vim: Snippet '.a:trigger.' is already defined.'
|
||||
\ .' See :h multi_snip for help on snippets with multiple matches.'
|
||||
endif
|
||||
endf
|
||||
|
||||
fun! ExtractSnips(dir, ft)
|
||||
for path in split(globpath(a:dir, '*'), "\n")
|
||||
if isdirectory(path)
|
||||
let pathname = fnamemodify(path, ':t')
|
||||
for snipFile in split(globpath(path, '*.snippet'), "\n")
|
||||
call s:ProcessFile(snipFile, a:ft, pathname)
|
||||
endfor
|
||||
elseif fnamemodify(path, ':e') == 'snippet'
|
||||
call s:ProcessFile(path, a:ft)
|
||||
endif
|
||||
endfor
|
||||
endf
|
||||
|
||||
" 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
|
||||
|
||||
fun! ExtractSnipsFile(file, ft)
|
||||
if !filereadable(a:file) | return | endif
|
||||
let text = readfile(a:file)
|
||||
let inSnip = 0
|
||||
for line in text + ["\n"]
|
||||
if inSnip && (line[0] == "\t" || line == '')
|
||||
let content .= strpart(line, 1)."\n"
|
||||
continue
|
||||
elseif inSnip
|
||||
call MakeSnip(a:ft, trigger, content[:-2], name)
|
||||
let inSnip = 0
|
||||
endif
|
||||
|
||||
if line[:6] == 'snippet'
|
||||
let inSnip = 1
|
||||
let trigger = strpart(line, 8)
|
||||
let name = ''
|
||||
let space = stridx(trigger, ' ') + 1
|
||||
if space " Process multi snip
|
||||
let name = strpart(trigger, space)
|
||||
let trigger = strpart(trigger, 0, space - 1)
|
||||
endif
|
||||
let content = ''
|
||||
endif
|
||||
endfor
|
||||
endf
|
||||
|
||||
fun! ResetSnippets()
|
||||
let s:snippets = {} | let s:multi_snips = {} | let g:did_ft = {}
|
||||
endf
|
||||
|
||||
let g:did_ft = {}
|
||||
fun! GetSnippets(dir, filetypes)
|
||||
for ft in split(a:filetypes, '\.')
|
||||
if has_key(g:did_ft, ft) | continue | endif
|
||||
call s:DefineSnips(a:dir, ft, ft)
|
||||
if ft == 'objc' || ft == 'cpp' || ft == 'cs'
|
||||
call s:DefineSnips(a:dir, 'c', ft)
|
||||
elseif ft == 'xhtml'
|
||||
call s:DefineSnips(a:dir, 'html', 'xhtml')
|
||||
endif
|
||||
let g:did_ft[ft] = 1
|
||||
endfor
|
||||
endf
|
||||
|
||||
" Define "aliasft" snippets for the filetype "realft".
|
||||
fun s:DefineSnips(dir, aliasft, realft)
|
||||
for path in split(globpath(a:dir, a:aliasft.'/')."\n".
|
||||
\ globpath(a:dir, a:aliasft.'-*/'), "\n")
|
||||
call ExtractSnips(path, a:realft)
|
||||
endfor
|
||||
for path in split(globpath(a:dir, a:aliasft.'.snippets')."\n".
|
||||
\ globpath(a:dir, a:aliasft.'-*.snippets'), "\n")
|
||||
call ExtractSnipsFile(path, a:realft)
|
||||
endfor
|
||||
endf
|
||||
|
||||
fun! TriggerSnippet()
|
||||
if exists('g:SuperTabMappingForward')
|
||||
if g:SuperTabMappingForward == "<tab>"
|
||||
let SuperTabKey = "\<c-n>"
|
||||
elseif g:SuperTabMappingBackward == "<tab>"
|
||||
let SuperTabKey = "\<c-p>"
|
||||
endif
|
||||
endif
|
||||
|
||||
if pumvisible() " Update snippet if completion is used, or deal with supertab
|
||||
if exists('SuperTabKey')
|
||||
call feedkeys(SuperTabKey) | return ''
|
||||
endif
|
||||
call feedkeys("\<esc>a", 'n') " Close completion menu
|
||||
call feedkeys("\<tab>") | return ''
|
||||
endif
|
||||
|
||||
if exists('g:snipPos') | return snipMate#jumpTabStop(0) | endif
|
||||
|
||||
let word = matchstr(getline('.'), '\S\+\%'.col('.').'c')
|
||||
for scope in [bufnr('%')] + split(&ft, '\.') + ['_']
|
||||
let [trigger, snippet] = s:GetSnippet(word, scope)
|
||||
" If word is a trigger for a snippet, delete the trigger & expand
|
||||
" the snippet.
|
||||
if snippet != ''
|
||||
let col = col('.') - len(trigger)
|
||||
sil exe 's/\V'.escape(trigger, '/.').'\%#//'
|
||||
return snipMate#expandSnip(snippet, col)
|
||||
endif
|
||||
endfor
|
||||
|
||||
if exists('SuperTabKey')
|
||||
call feedkeys(SuperTabKey)
|
||||
return ''
|
||||
endif
|
||||
return "\<tab>"
|
||||
endf
|
||||
|
||||
fun! BackwardsSnippet()
|
||||
if exists('g:snipPos') | return snipMate#jumpTabStop(1) | endif
|
||||
|
||||
if exists('g:SuperTabMappingForward')
|
||||
if g:SuperTabMappingBackward == "<s-tab>"
|
||||
let SuperTabKey = "\<c-p>"
|
||||
elseif g:SuperTabMappingForward == "<s-tab>"
|
||||
let SuperTabKey = "\<c-n>"
|
||||
endif
|
||||
endif
|
||||
if exists('SuperTabKey')
|
||||
call feedkeys(SuperTabKey)
|
||||
return ''
|
||||
endif
|
||||
return "\<s-tab>"
|
||||
endf
|
||||
|
||||
" Check if word under cursor is snippet trigger; if it isn't, try checking if
|
||||
" the text after non-word characters is (e.g. check for "foo" in "bar.foo")
|
||||
fun s:GetSnippet(word, scope)
|
||||
let word = a:word | let snippet = ''
|
||||
while snippet == ''
|
||||
if exists('s:snippets["'.a:scope.'"]["'.escape(word, '\"').'"]')
|
||||
let snippet = s:snippets[a:scope][word]
|
||||
elseif exists('s:multi_snips["'.a:scope.'"]["'.escape(word, '\"').'"]')
|
||||
let snippet = s:ChooseSnippet(a:scope, word)
|
||||
if snippet == '' | break | endif
|
||||
else
|
||||
if match(word, '\W') == -1 | break | endif
|
||||
let word = substitute(word, '.\{-}\W', '', '')
|
||||
endif
|
||||
endw
|
||||
if word == '' && a:word != '.' && stridx(a:word, '.') != -1
|
||||
let [word, snippet] = s:GetSnippet('.', a:scope)
|
||||
endif
|
||||
return [word, snippet]
|
||||
endf
|
||||
|
||||
fun s:ChooseSnippet(scope, trigger)
|
||||
let snippet = []
|
||||
let i = 1
|
||||
for snip in s:multi_snips[a:scope][a:trigger]
|
||||
let snippet += [i.'. '.snip[0]]
|
||||
let i += 1
|
||||
endfor
|
||||
if i == 2 | return s:multi_snips[a:scope][a:trigger][0][1] | endif
|
||||
let num = inputlist(snippet) - 1
|
||||
return num == -1 ? '' : s:multi_snips[a:scope][a:trigger][num][1]
|
||||
endf
|
||||
|
||||
fun! ShowAvailableSnips()
|
||||
let line = getline('.')
|
||||
let col = col('.')
|
||||
let word = matchstr(getline('.'), '\S\+\%'.col.'c')
|
||||
let words = [word]
|
||||
if stridx(word, '.')
|
||||
let words += split(word, '\.', 1)
|
||||
endif
|
||||
let matchlen = 0
|
||||
let matches = []
|
||||
for scope in [bufnr('%')] + split(&ft, '\.') + ['_']
|
||||
let triggers = has_key(s:snippets, scope) ? keys(s:snippets[scope]) : []
|
||||
if has_key(s:multi_snips, scope)
|
||||
let triggers += keys(s:multi_snips[scope])
|
||||
endif
|
||||
for trigger in triggers
|
||||
for word in words
|
||||
if word == ''
|
||||
let matches += [trigger] " Show all matches if word is empty
|
||||
elseif trigger =~ '^'.word
|
||||
let matches += [trigger]
|
||||
let len = len(word)
|
||||
if len > matchlen | let matchlen = len | endif
|
||||
endif
|
||||
endfor
|
||||
endfor
|
||||
endfor
|
||||
|
||||
" This is to avoid a bug with Vim when using complete(col - matchlen, matches)
|
||||
" (Issue#46 on the Google Code snipMate issue tracker).
|
||||
call setline(line('.'), substitute(line, repeat('.', matchlen).'\%'.col.'c', '', ''))
|
||||
call complete(col, matches)
|
||||
return ''
|
||||
endf
|
||||
" vim:noet:sw=4:ts=4:ft=vim
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
||||
# Global snippets
|
||||
|
||||
# (c) holds no legal value ;)
|
||||
snippet c)
|
||||
`&enc[:2] == "utf" ? "©" : "(c)"` Copyright `strftime("%Y")` ${1:`g:snips_author`}. All Rights Reserved.${2}
|
||||
snippet date
|
||||
`strftime("%Y-%m-%d")`
|
@ -0,0 +1,66 @@
|
||||
snippet if
|
||||
If ${1:condition} Then
|
||||
${2:; True code}
|
||||
EndIf
|
||||
snippet el
|
||||
Else
|
||||
${1}
|
||||
snippet elif
|
||||
ElseIf ${1:condition} Then
|
||||
${2:; True code}
|
||||
# If/Else block
|
||||
snippet ifel
|
||||
If ${1:condition} Then
|
||||
${2:; True code}
|
||||
Else
|
||||
${3:; Else code}
|
||||
EndIf
|
||||
# If/ElseIf/Else block
|
||||
snippet ifelif
|
||||
If ${1:condition 1} Then
|
||||
${2:; True code}
|
||||
ElseIf ${3:condition 2} Then
|
||||
${4:; True code}
|
||||
Else
|
||||
${5:; Else code}
|
||||
EndIf
|
||||
# Switch block
|
||||
snippet switch
|
||||
Switch (${1:condition})
|
||||
Case {$2:case1}:
|
||||
{$3:; Case 1 code}
|
||||
Case Else:
|
||||
{$4:; Else code}
|
||||
EndSwitch
|
||||
# Select block
|
||||
snippet select
|
||||
Select (${1:condition})
|
||||
Case {$2:case1}:
|
||||
{$3:; Case 1 code}
|
||||
Case Else:
|
||||
{$4:; Else code}
|
||||
EndSelect
|
||||
# While loop
|
||||
snippet while
|
||||
While (${1:condition})
|
||||
${2:; code...}
|
||||
WEnd
|
||||
# For loop
|
||||
snippet for
|
||||
For ${1:n} = ${3:1} to ${2:count}
|
||||
${4:; code...}
|
||||
Next
|
||||
# New Function
|
||||
snippet func
|
||||
Func ${1:fname}(${2:`indent('.') ? 'self' : ''`}):
|
||||
${4:Return}
|
||||
EndFunc
|
||||
# Message box
|
||||
snippet msg
|
||||
MsgBox(${3:MsgType}, ${1:"Title"}, ${2:"Message Text"})
|
||||
# Debug Message
|
||||
snippet debug
|
||||
MsgBox(0, "Debug", ${1:"Debug Message"})
|
||||
# Show Variable Debug Message
|
||||
snippet showvar
|
||||
MsgBox(0, "${1:VarName}", $1)
|
@ -0,0 +1,110 @@
|
||||
# main()
|
||||
snippet main
|
||||
int main(int argc, const char *argv[])
|
||||
{
|
||||
${1}
|
||||
return 0;
|
||||
}
|
||||
# #include <...>
|
||||
snippet inc
|
||||
#include <${1:stdio}.h>${2}
|
||||
# #include "..."
|
||||
snippet Inc
|
||||
#include "${1:`Filename("$1.h")`}"${2}
|
||||
# #ifndef ... #define ... #endif
|
||||
snippet Def
|
||||
#ifndef $1
|
||||
#define ${1:SYMBOL} ${2:value}
|
||||
#endif${3}
|
||||
snippet def
|
||||
#define
|
||||
snippet ifdef
|
||||
#ifdef ${1:FOO}
|
||||
${2:#define }
|
||||
#endif
|
||||
snippet #if
|
||||
#if ${1:FOO}
|
||||
${2}
|
||||
#endif
|
||||
# Header Include-Guard
|
||||
# (the randomizer code is taken directly from TextMate; it could probably be
|
||||
# cleaner, I don't know how to do it in vim script)
|
||||
snippet once
|
||||
#ifndef ${1:`toupper(Filename('', 'UNTITLED').'_'.system("/usr/bin/ruby -e 'print (rand * 2821109907455).round.to_s(36)'"))`}
|
||||
|
||||
#define $1
|
||||
|
||||
${2}
|
||||
|
||||
#endif /* end of include guard: $1 */
|
||||
# If Condition
|
||||
snippet if
|
||||
if (${1:/* condition */}) {
|
||||
${2:/* code */}
|
||||
}
|
||||
snippet el
|
||||
else {
|
||||
${1}
|
||||
}
|
||||
# Tertiary conditional
|
||||
snippet t
|
||||
${1:/* condition */} ? ${2:a} : ${3:b}
|
||||
# Do While Loop
|
||||
snippet do
|
||||
do {
|
||||
${2:/* code */}
|
||||
} while (${1:/* condition */});
|
||||
# While Loop
|
||||
snippet wh
|
||||
while (${1:/* condition */}) {
|
||||
${2:/* code */}
|
||||
}
|
||||
# For Loop
|
||||
snippet for
|
||||
for (${2:i} = 0; $2 < ${1:count}; $2${3:++}) {
|
||||
${4:/* code */}
|
||||
}
|
||||
# Custom For Loop
|
||||
snippet forr
|
||||
for (${1:i} = ${2:0}; ${3:$1 < 10}; $1${4:++}) {
|
||||
${5:/* code */}
|
||||
}
|
||||
# Function
|
||||
snippet fun
|
||||
${1:void} ${2:function_name}(${3})
|
||||
{
|
||||
${4:/* code */}
|
||||
}
|
||||
# Function Declaration
|
||||
snippet fund
|
||||
${1:void} ${2:function_name}(${3});${4}
|
||||
# Typedef
|
||||
snippet td
|
||||
typedef ${1:int} ${2:MyCustomType};${3}
|
||||
# Struct
|
||||
snippet st
|
||||
struct ${1:`Filename('$1_t', 'name')`} {
|
||||
${2:/* data */}
|
||||
}${3: /* optional variable list */};${4}
|
||||
# Typedef struct
|
||||
snippet tds
|
||||
typedef struct ${2:_$1 }{
|
||||
${3:/* data */}
|
||||
} ${1:`Filename('$1_t', 'name')`};
|
||||
# Typdef enum
|
||||
snippet tde
|
||||
typedef enum {
|
||||
${1:/* data */}
|
||||
} ${2:foo};
|
||||
# printf
|
||||
# unfortunately version this isn't as nice as TextMates's, given the lack of a
|
||||
# dynamic `...`
|
||||
snippet pr
|
||||
printf("${1:%s}\n"${2});${3}
|
||||
# fprintf (again, this isn't as nice as TextMate's version, but it works)
|
||||
snippet fpr
|
||||
fprintf(${1:stderr}, "${2:%s}\n"${3});${4}
|
||||
snippet .
|
||||
[${1}]${2}
|
||||
snippet un
|
||||
unsigned
|
@ -0,0 +1,30 @@
|
||||
# Read File Into Vector
|
||||
snippet readfile
|
||||
std::vector<char> v;
|
||||
if (FILE *${2:fp} = fopen(${1:"filename"}, "r")) {
|
||||
char buf[1024];
|
||||
while (size_t len = fread(buf, 1, sizeof(buf), $2))
|
||||
v.insert(v.end(), buf, buf + len);
|
||||
fclose($2);
|
||||
}${3}
|
||||
# std::map
|
||||
snippet map
|
||||
std::map<${1:key}, ${2:value}> map${3};
|
||||
# std::vector
|
||||
snippet vector
|
||||
std::vector<${1:char}> v${2};
|
||||
# Namespace
|
||||
snippet ns
|
||||
namespace ${1:`Filename('', 'my')`} {
|
||||
${2}
|
||||
} /* $1 */
|
||||
# Class
|
||||
snippet cl
|
||||
class ${1:`Filename('$1_t', 'name')`} {
|
||||
public:
|
||||
$1 (${2:arguments});
|
||||
virtual ~$1 ();
|
||||
|
||||
private:
|
||||
${3:/* data */}
|
||||
};
|
@ -0,0 +1,190 @@
|
||||
# Some useful Unicode entities
|
||||
# Non-Breaking Space
|
||||
snippet nbs
|
||||
|
||||
# ←
|
||||
snippet left
|
||||
←
|
||||
# →
|
||||
snippet right
|
||||
→
|
||||
# ↑
|
||||
snippet up
|
||||
↑
|
||||
# ↓
|
||||
snippet down
|
||||
↓
|
||||
# ↩
|
||||
snippet return
|
||||
↩
|
||||
# ⇤
|
||||
snippet backtab
|
||||
⇤
|
||||
# ⇥
|
||||
snippet tab
|
||||
⇥
|
||||
# ⇧
|
||||
snippet shift
|
||||
⇧
|
||||
# ⌃
|
||||
snippet control
|
||||
⌃
|
||||
# ⌅
|
||||
snippet enter
|
||||
⌅
|
||||
# ⌘
|
||||
snippet command
|
||||
⌘
|
||||
# ⌥
|
||||
snippet option
|
||||
⌥
|
||||
# ⌦
|
||||
snippet delete
|
||||
⌦
|
||||
# ⌫
|
||||
snippet backspace
|
||||
⌫
|
||||
# ⎋
|
||||
snippet escape
|
||||
⎋
|
||||
# Generic Doctype
|
||||
snippet doctype HTML 4.01 Strict
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""
|
||||
"http://www.w3.org/TR/html4/strict.dtd">
|
||||
snippet doctype HTML 4.01 Transitional
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
snippet doctype HTML 5
|
||||
<!DOCTYPE HTML>
|
||||
snippet doctype XHTML 1.0 Frameset
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
snippet doctype XHTML 1.0 Strict
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
snippet doctype XHTML 1.0 Transitional
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
snippet doctype XHTML 1.1
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
# HTML Doctype 4.01 Strict
|
||||
snippet docts
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""
|
||||
"http://www.w3.org/TR/html4/strict.dtd">
|
||||
# HTML Doctype 4.01 Transitional
|
||||
snippet doct
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
# HTML Doctype 5
|
||||
snippet doct5
|
||||
<!DOCTYPE HTML>
|
||||
# XHTML Doctype 1.0 Frameset
|
||||
snippet docxf
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
||||
# XHTML Doctype 1.0 Strict
|
||||
snippet docxs
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
# XHTML Doctype 1.0 Transitional
|
||||
snippet docxt
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
# XHTML Doctype 1.1
|
||||
snippet docx
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
snippet html
|
||||
<html>
|
||||
${1}
|
||||
</html>
|
||||
snippet xhtml
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
${1}
|
||||
</html>
|
||||
snippet body
|
||||
<body>
|
||||
${1}
|
||||
</body>
|
||||
snippet head
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8"`Close()`>
|
||||
|
||||
<title>${1:`substitute(Filename('', 'Page Title'), '^.', '\u&', '')`}</title>
|
||||
${2}
|
||||
</head>
|
||||
snippet title
|
||||
<title>${1:`substitute(Filename('', 'Page Title'), '^.', '\u&', '')`}</title>${2}
|
||||
snippet script
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
${1}
|
||||
</script>${2}
|
||||
snippet scriptsrc
|
||||
<script src="${1}.js" type="text/javascript" charset="utf-8"></script>${2}
|
||||
snippet style
|
||||
<style type="text/css" media="${1:screen}">
|
||||
${2}
|
||||
</style>${3}
|
||||
snippet base
|
||||
<base href="${1}" target="${2}"`Close()`>
|
||||
snippet r
|
||||
<br`Close()[1:]`>
|
||||
snippet div
|
||||
<div id="${1:name}">
|
||||
${2}
|
||||
</div>
|
||||
# Embed QT Movie
|
||||
snippet movie
|
||||
<object width="$2" height="$3" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
|
||||
codebase="http://www.apple.com/qtactivex/qtplugin.cab">
|
||||
<param name="src" value="$1"`Close()`>
|
||||
<param name="controller" value="$4"`Close()`>
|
||||
<param name="autoplay" value="$5"`Close()`>
|
||||
<embed src="${1:movie.mov}"
|
||||
width="${2:320}" height="${3:240}"
|
||||
controller="${4:true}" autoplay="${5:true}"
|
||||
scale="tofit" cache="true"
|
||||
pluginspage="http://www.apple.com/quicktime/download/"
|
||||
`Close()[1:]`>
|
||||
</object>${6}
|
||||
snippet fieldset
|
||||
<fieldset id="$1">
|
||||
<legend>${1:name}</legend>
|
||||
|
||||
${3}
|
||||
</fieldset>
|
||||
snippet form
|
||||
<form action="${1:`Filename('$1_submit')`}" method="${2:get}" accept-charset="utf-8">
|
||||
${3}
|
||||
|
||||
|
||||
<p><input type="submit" value="Continue →"`Close()`></p>
|
||||
</form>
|
||||
snippet h1
|
||||
<h1 id="${1:heading}">${2:$1}</h1>
|
||||
snippet input
|
||||
<input type="${1:text/submit/hidden/button}" name="${2:some_name}" value="${3}"`Close()`>${4}
|
||||
snippet label
|
||||
<label for="${2:$1}">${1:name}</label><input type="${3:text/submit/hidden/button}" name="${4:$2}" value="${5}" id="${6:$2}"`Close()`>${7}
|
||||
snippet link
|
||||
<link rel="${1:stylesheet}" href="${2:/css/master.css}" type="text/css" media="${3:screen}" charset="utf-8"`Close()`>${4}
|
||||
snippet mailto
|
||||
<a href="mailto:${1:joe@example.com}?subject=${2:feedback}">${3:email me}</a>
|
||||
snippet meta
|
||||
<meta name="${1:name}" content="${2:content}"`Close()`>${3}
|
||||
snippet opt
|
||||
<option value="${1:option}">${2:$1}</option>${3}
|
||||
snippet optt
|
||||
<option>${1:option}</option>${2}
|
||||
snippet select
|
||||
<select name="${1:some_name}" id="${2:$1}">
|
||||
<option value="${3:option}">${4:$3}</option>
|
||||
</select>${5}
|
||||
snippet table
|
||||
<table border="${1:0}">
|
||||
<tr><th>${2:Header}</th></tr>
|
||||
<tr><th>${3:Data}</th></tr>
|
||||
</table>${4}
|
||||
snippet textarea
|
||||
<textarea name="${1:Name}" rows="${2:8}" cols="${3:40}">${4}</textarea>${5}
|
@ -0,0 +1,78 @@
|
||||
snippet main
|
||||
public static void main (String [] args)
|
||||
{
|
||||
${1:/* code */}
|
||||
}
|
||||
snippet pu
|
||||
public
|
||||
snippet po
|
||||
protected
|
||||
snippet pr
|
||||
private
|
||||
snippet st
|
||||
static
|
||||
snippet fi
|
||||
final
|
||||
snippet ab
|
||||
abstract
|
||||
snippet re
|
||||
return
|
||||
snippet br
|
||||
break;
|
||||
snippet de
|
||||
default:
|
||||
${1}
|
||||
snippet ca
|
||||
catch(${1:Exception} ${2:e}) ${3}
|
||||
snippet th
|
||||
throw
|
||||
snippet sy
|
||||
synchronized
|
||||
snippet im
|
||||
import
|
||||
snippet j.u
|
||||
java.util
|
||||
snippet j.i
|
||||
java.io.
|
||||
snippet j.b
|
||||
java.beans.
|
||||
snippet j.n
|
||||
java.net.
|
||||
snippet j.m
|
||||
java.math.
|
||||
snippet if
|
||||
if (${1}) ${2}
|
||||
snippet el
|
||||
else
|
||||
snippet elif
|
||||
else if (${1}) ${2}
|
||||
snippet wh
|
||||
while (${1}) ${2}
|
||||
snippet for
|
||||
for (${1}; ${2}; ${3}) ${4}
|
||||
snippet fore
|
||||
for (${1} : ${2}) ${3}
|
||||
snippet sw
|
||||
switch (${1}) ${2}
|
||||
snippet cs
|
||||
case ${1}:
|
||||
${2}
|
||||
${3}
|
||||
snippet tc
|
||||
public class ${1:`Filename()`} extends ${2:TestCase}
|
||||
snippet t
|
||||
public void test${1:Name}() throws Exception ${2}
|
||||
snippet cl
|
||||
class ${1:`Filename("", "untitled")`} ${2}
|
||||
snippet in
|
||||
interface ${1:`Filename("", "untitled")`} ${2:extends Parent}${3}
|
||||
snippet m
|
||||
${1:void} ${2:method}(${3}) ${4:throws }${5}
|
||||
snippet v
|
||||
${1:String} ${2:var}${3: = null}${4};${5}
|
||||
snippet co
|
||||
static public final ${1:String} ${2:var} = ${3};${4}
|
||||
snippet cos
|
||||
static public final String ${1:var} = "${2}";${3}
|
||||
snippet as
|
||||
assert ${1:test} : "${2:Failure message}";${3}
|
@ -0,0 +1,74 @@
|
||||
# Prototype
|
||||
snippet proto
|
||||
${1:class_name}.prototype.${2:method_name} =
|
||||
function(${3:first_argument}) {
|
||||
${4:// body...}
|
||||
};
|
||||
# Function
|
||||
snippet fun
|
||||
function ${1:function_name} (${2:argument}) {
|
||||
${3:// body...}
|
||||
}
|
||||
# Anonymous Function
|
||||
snippet f
|
||||
function(${1}) {${2}};
|
||||
# if
|
||||
snippet if
|
||||
if (${1:true}) {${2}};
|
||||
# if ... else
|
||||
snippet ife
|
||||
if (${1:true}) {${2}}
|
||||
else{${3}};
|
||||
# tertiary conditional
|
||||
snippet t
|
||||
${1:/* condition */} ? ${2:a} : ${3:b}
|
||||
# switch
|
||||
snippet switch
|
||||
switch(${1:expression}) {
|
||||
case '${3:case}':
|
||||
${4:// code}
|
||||
break;
|
||||
${5}
|
||||
default:
|
||||
${2:// code}
|
||||
}
|
||||
# case
|
||||
snippet case
|
||||
case '${1:case}':
|
||||
${2:// code}
|
||||
break;
|
||||
${3}
|
||||
# for (...) {...}
|
||||
snippet for
|
||||
for (var ${2:i} = 0; $2 < ${1:Things}.length; $2${3:++}) {
|
||||
${4:$1[$2]}
|
||||
};
|
||||
# for (...) {...} (Improved Native For-Loop)
|
||||
snippet forr
|
||||
for (var ${2:i} = ${1:Things}.length - 1; $2 >= 0; $2${3:--}) {
|
||||
${4:$1[$2]}
|
||||
};
|
||||
# while (...) {...}
|
||||
snippet wh
|
||||
while (${1:/* condition */}) {
|
||||
${2:/* code */}
|
||||
}
|
||||
# do...while
|
||||
snippet do
|
||||
do {
|
||||
${2:/* code */}
|
||||
} while (${1:/* condition */});
|
||||
# Object Method
|
||||
snippet :f
|
||||
${1:method_name}: function(${2:attribute}) {
|
||||
${4}
|
||||
}${3:,}
|
||||
# setTimeout function
|
||||
snippet timeout
|
||||
setTimeout(function() {${3}}${2}, ${1:10};
|
||||
# Get Elements
|
||||
snippet get
|
||||
getElementsBy${1:TagName}('${2}')${3}
|
||||
# Get Element
|
||||
snippet gett
|
||||
getElementBy${1:Id}('${2}')${3}
|
@ -0,0 +1,54 @@
|
||||
snippet def
|
||||
<%def name="${1:name}">
|
||||
${2:}
|
||||
</%def>
|
||||
snippet call
|
||||
<%call expr="${1:name}">
|
||||
${2:}
|
||||
</%call>
|
||||
snippet doc
|
||||
<%doc>
|
||||
${1:}
|
||||
</%doc>
|
||||
snippet text
|
||||
<%text>
|
||||
${1:}
|
||||
</%text>
|
||||
snippet for
|
||||
% for ${1:i} in ${2:iter}:
|
||||
${3:}
|
||||
% endfor
|
||||
snippet if if
|
||||
% if ${1:condition}:
|
||||
${2:}
|
||||
% endif
|
||||
snippet if if/else
|
||||
% if ${1:condition}:
|
||||
${2:}
|
||||
% else:
|
||||
${3:}
|
||||
% endif
|
||||
snippet try
|
||||
% try:
|
||||
${1:}
|
||||
% except${2:}:
|
||||
${3:pass}
|
||||
% endtry
|
||||
snippet wh
|
||||
% while ${1:}:
|
||||
${2:}
|
||||
% endwhile
|
||||
snippet $
|
||||
${ ${1:} }
|
||||
snippet <%
|
||||
<% ${1:} %>
|
||||
snippet <!%
|
||||
<!% ${1:} %>
|
||||
snippet inherit
|
||||
<%inherit file="${1:filename}" />
|
||||
snippet include
|
||||
<%include file="${1:filename}" />
|
||||
snippet namespace
|
||||
<%namespace file="${1:name}" />
|
||||
snippet page
|
||||
<%page args="${1:}" />
|
@ -0,0 +1,184 @@
|
||||
# #import <...>
|
||||
snippet Imp
|
||||
#import <${1:Cocoa/Cocoa.h}>${2}
|
||||
# #import "..."
|
||||
snippet imp
|
||||
#import "${1:`Filename()`.h}"${2}
|
||||
# @selector(...)
|
||||
snippet sel
|
||||
@selector(${1:method}:)${3}
|
||||
# @"..." string
|
||||
snippet s
|
||||
@"${1}"${2}
|
||||
# Object
|
||||
snippet o
|
||||
${1:NSObject} *${2:foo} = [${3:$1 alloc}]${4};${5}
|
||||
# NSLog(...)
|
||||
snippet log
|
||||
NSLog(@"${1:%@}"${2});${3}
|
||||
# Class
|
||||
snippet objc
|
||||
@interface ${1:`Filename('', 'someClass')`} : ${2:NSObject}
|
||||
{
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation $1
|
||||
${3}
|
||||
@end
|
||||
# Class Interface
|
||||
snippet int
|
||||
@interface ${1:`Filename('', 'someClass')`} : ${2:NSObject}
|
||||
{${3}
|
||||
}
|
||||
${4}
|
||||
@end
|
||||
# Class Implementation
|
||||
snippet impl
|
||||
@implementation ${1:`Filename('', 'someClass')`}
|
||||
${2}
|
||||
@end
|
||||
snippet init
|
||||
- (id)init
|
||||
{
|
||||
[super init];
|
||||
return self;
|
||||
}
|
||||
snippet ifself
|
||||
if (self = [super init]) {
|
||||
${1:/* code */}
|
||||
}
|
||||
return self;
|
||||
snippet ibo
|
||||
IBOutlet ${1:NSSomeClass} *${2:$1};${3}
|
||||
# Category
|
||||
snippet cat
|
||||
@interface ${1:NSObject} (${2:Category})
|
||||
@end
|
||||
|
||||
@implementation $1 ($2)
|
||||
${3}
|
||||
@end
|
||||
# Category Interface
|
||||
snippet cath
|
||||
@interface ${1:NSObject} (${2:Category})
|
||||
${3}
|
||||
@end
|
||||
# NSArray
|
||||
snippet array
|
||||
NSMutableArray *${1:array} = [NSMutable array];${2}
|
||||
# NSDictionary
|
||||
snippet dict
|
||||
NSMutableDictionary *${1:dict} = [NSMutableDictionary dictionary];${2}
|
||||
# NSBezierPath
|
||||
snippet bez
|
||||
NSBezierPath *${1:path} = [NSBezierPath bezierPath];${2}
|
||||
# Method
|
||||
snippet m
|
||||
- (${1:id})${2:method}
|
||||
{
|
||||
${3}
|
||||
}
|
||||
# Method declaration
|
||||
snippet md
|
||||
- (${1:id})${2:method};${3}
|
||||
# IBAction declaration
|
||||
snippet ibad
|
||||
- (IBAction)${1:method}:(${2:id})sender;${3}
|
||||
# IBAction method
|
||||
snippet iba
|
||||
- (IBAction)${1:method}:(${2:id})sender
|
||||
{
|
||||
${3}
|
||||
}
|
||||
# awakeFromNib method
|
||||
snippet wake
|
||||
- (void)awakeFromNib
|
||||
{
|
||||
${1}
|
||||
}
|
||||
# Class Method
|
||||
snippet M
|
||||
+ (${1:id})${2:method}
|
||||
{${3}
|
||||
return nil;
|
||||
}
|
||||
# Sub-method (Call super)
|
||||
snippet sm
|
||||
- (${1:id})${2:method}
|
||||
{
|
||||
[super $2];${3}
|
||||
return self;
|
||||
}
|
||||
# Method: Initialize
|
||||
snippet I
|
||||
+ (void) initialize
|
||||
{
|
||||
[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWIthObjectsAndKeys:
|
||||
${1}@"value", @"key",
|
||||
nil]];
|
||||
}
|
||||
# Accessor Methods For:
|
||||
# Object
|
||||
snippet objacc
|
||||
- (${1:id})${2:thing}
|
||||
{
|
||||
return $2;
|
||||
}
|
||||
|
||||
- (void)set$2:($1)${3:new$2}
|
||||
{
|
||||
[$3 retain];
|
||||
[$2 release];
|
||||
$2 = $3;
|
||||
}${4}
|
||||
# for (object in array)
|
||||
snippet forin
|
||||
for (${1:Class} *${2:some$1} in ${3:array}) {
|
||||
${4}
|
||||
}
|
||||
snippet forarray
|
||||
unsigned int ${1:object}Count = [${2:array} count];
|
||||
|
||||
for (unsigned int index = 0; index < $1Count; index++) {
|
||||
${3:id} $1 = [$2 $1AtIndex:index];
|
||||
${4}
|
||||
}
|
||||
# IBOutlet
|
||||
# @property (Objective-C 2.0)
|
||||
snippet prop
|
||||
@property (${1:retain}) ${2:NSSomeClass} ${3:*$2};${4}
|
||||
# @synthesize (Objective-C 2.0)
|
||||
snippet syn
|
||||
@synthesize ${1:property};${2}
|
||||
# [[ alloc] init]
|
||||
snippet alloc
|
||||
[[${1:foo} alloc] init${2}];${3}
|
||||
# retain
|
||||
snippet ret
|
||||
[${1:foo} retain];${2}
|
||||
# release
|
||||
snippet rel
|
||||
[${1:foo} release];
|
||||
${2:$1 = nil;}
|
||||
# autorelease
|
||||
snippet arel
|
||||
[${1:foo} autorelease];
|
||||
# autorelease pool
|
||||
snippet pool
|
||||
NSAutoreleasePool *${1:pool} = [[NSAutoreleasePool alloc] init];
|
||||
${2:/* code */}
|
||||
[$1 drain];
|
||||
# Throw an exception
|
||||
snippet except
|
||||
NSException *${1:badness};
|
||||
$1 = [NSException exceptionWithName:@"${2:$1Name}"
|
||||
reason:@"${3}"
|
||||
userInfo:nil];
|
||||
[$1 raise];
|
||||
snippet prag
|
||||
#pragma mark ${1:foo}
|
||||
snippet cl
|
||||
@class ${1:Foo};${2}
|
||||
snippet color
|
||||
[[NSColor ${1:blackColor}] set];
|
@ -0,0 +1,91 @@
|
||||
# #!/usr/bin/perl
|
||||
snippet #!
|
||||
#!/usr/bin/perl
|
||||
|
||||
# Hash Pointer
|
||||
snippet .
|
||||
=>
|
||||
# Function
|
||||
snippet sub
|
||||
sub ${1:function_name} {
|
||||
${2:#body ...}
|
||||
}
|
||||
# Conditional
|
||||
snippet if
|
||||
if (${1}) {
|
||||
${2:# body...}
|
||||
}
|
||||
# Conditional if..else
|
||||
snippet ife
|
||||
if (${1}) {
|
||||
${2:# body...}
|
||||
} else {
|
||||
${3:# else...}
|
||||
}
|
||||
# Conditional if..elsif..else
|
||||
snippet ifee
|
||||
if (${1}) {
|
||||
${2:# body...}
|
||||
} elsif (${3}) {
|
||||
${4:# elsif...}
|
||||
} else {
|
||||
${5:# else...}
|
||||
}
|
||||
# Conditional One-line
|
||||
snippet xif
|
||||
${1:expression} if ${2:condition};${3}
|
||||
# Unless conditional
|
||||
snippet unless
|
||||
unless (${1}) {
|
||||
${2:# body...}
|
||||
}
|
||||
# Unless conditional One-line
|
||||
snippet xunless
|
||||
${1:expression} unless ${2:condition};${3}
|
||||
# Try/Except
|
||||
snippet eval
|
||||
eval {
|
||||
${1:# do something risky...}
|
||||
};
|
||||
if ($@) {
|
||||
${2:# handle failure...}
|
||||
}
|
||||
# While Loop
|
||||
snippet wh
|
||||
while (${1}) {
|
||||
${2:# body...}
|
||||
}
|
||||
# While Loop One-line
|
||||
snippet xwh
|
||||
${1:expression} while ${2:condition};${3}
|
||||
# For Loop
|
||||
snippet for
|
||||
for (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {
|
||||
${4:# body...}
|
||||
}
|
||||
# Foreach Loop
|
||||
snippet fore
|
||||
foreach my $${1:x} (@${2:array}) {
|
||||
${3:# body...}
|
||||
}
|
||||
# Foreach Loop One-line
|
||||
snippet xfore
|
||||
${1:expression} foreach @${2:array};${3}
|
||||
# Package
|
||||
snippet cl
|
||||
package ${1:ClassName};
|
||||
|
||||
use base qw(${2:ParentClass});
|
||||
|
||||
sub new {
|
||||
my $class = shift;
|
||||
$class = ref $class if ref $class;
|
||||
my $self = bless {}, $class;
|
||||
$self;
|
||||
}
|
||||
|
||||
1;${3}
|
||||
# Read File
|
||||
snippet slurp
|
||||
my $${1:var};
|
||||
{ local $/ = undef; local *FILE; open FILE, "<${2:file}"; $$1 = <FILE>; close FILE }${3}
|
@ -0,0 +1,216 @@
|
||||
snippet php
|
||||
<?php
|
||||
${1}
|
||||
?>
|
||||
snippet ec
|
||||
echo "${1:string}"${2};
|
||||
snippet inc
|
||||
include '${1:file}';${2}
|
||||
snippet inc1
|
||||
include_once '${1:file}';${2}
|
||||
snippet req
|
||||
require '${1:file}';${2}
|
||||
snippet req1
|
||||
require_once '${1:file}';${2}
|
||||
# $GLOBALS['...']
|
||||
snippet globals
|
||||
$GLOBALS['${1:variable}']${2: = }${3:something}${4:;}${5}
|
||||
snippet $_ COOKIE['...']
|
||||
$_COOKIE['${1:variable}']${2}
|
||||
snippet $_ ENV['...']
|
||||
$_ENV['${1:variable}']${2}
|
||||
snippet $_ FILES['...']
|
||||
$_FILES['${1:variable}']${2}
|
||||
snippet $_ Get['...']
|
||||
$_GET['${1:variable}']${2}
|
||||
snippet $_ POST['...']
|
||||
$_POST['${1:variable}']${2}
|
||||
snippet $_ REQUEST['...']
|
||||
$_REQUEST['${1:variable}']${2}
|
||||
snippet $_ SERVER['...']
|
||||
$_SERVER['${1:variable}']${2}
|
||||
snippet $_ SESSION['...']
|
||||
$_SESSION['${1:variable}']${2}
|
||||
# Start Docblock
|
||||
snippet /*
|
||||
/**
|
||||
* ${1}
|
||||
**/
|
||||
# Class - post doc
|
||||
snippet doc_cp
|
||||
/**
|
||||
* ${1:undocumented class}
|
||||
*
|
||||
* @package ${2:default}
|
||||
* @author ${3:`g:snips_author`}
|
||||
**/${4}
|
||||
# Class Variable - post doc
|
||||
snippet doc_vp
|
||||
/**
|
||||
* ${1:undocumented class variable}
|
||||
*
|
||||
* @var ${2:string}
|
||||
**/${3}
|
||||
# Class Variable
|
||||
snippet doc_v
|
||||
/**
|
||||
* ${3:undocumented class variable}
|
||||
*
|
||||
* @var ${4:string}
|
||||
**/
|
||||
${1:var} $${2};${5}
|
||||
# Class
|
||||
snippet doc_c
|
||||
/**
|
||||
* ${3:undocumented class}
|
||||
*
|
||||
* @packaged ${4:default}
|
||||
* @author ${5:`g:snips_author`}
|
||||
**/
|
||||
${1:}class ${2:}
|
||||
{${6}
|
||||
} // END $1class $2
|
||||
# Constant Definition - post doc
|
||||
snippet doc_dp
|
||||
/**
|
||||
* ${1:undocumented constant}
|
||||
**/${2}
|
||||
# Constant Definition
|
||||
snippet doc_d
|
||||
/**
|
||||
* ${3:undocumented constant}
|
||||
**/
|
||||
define(${1}, ${2});${4}
|
||||
# Function - post doc
|
||||
snippet doc_fp
|
||||
/**
|
||||
* ${1:undocumented function}
|
||||
*
|
||||
* @return ${2:void}
|
||||
* @author ${3:`g:snips_author`}
|
||||
**/${4}
|
||||
# Function signature
|
||||
snippet doc_s
|
||||
/**
|
||||
* ${4:undocumented function}
|
||||
*
|
||||
* @return ${5:void}
|
||||
* @author ${6:`g:snips_author`}
|
||||
**/
|
||||
${1}function ${2}(${3});${7}
|
||||
# Function
|
||||
snippet doc_f
|
||||
/**
|
||||
* ${4:undocumented function}
|
||||
*
|
||||
* @return ${5:void}
|
||||
* @author ${6:`g:snips_author`}
|
||||
**/
|
||||
${1}function ${2}(${3})
|
||||
{${7}
|
||||
}
|
||||
# Header
|
||||
snippet doc_h
|
||||
/**
|
||||
* ${1}
|
||||
*
|
||||
* @author ${2:`g:snips_author`}
|
||||
* @version ${3:$Id$}
|
||||
* @copyright ${4:$2}, `strftime('%d %B, %Y')`
|
||||
* @package ${5:default}
|
||||
**/
|
||||
|
||||
/**
|
||||
* Define DocBlock
|
||||
*//
|
||||
# Interface
|
||||
snippet doc_i
|
||||
/**
|
||||
* ${2:undocumented class}
|
||||
*
|
||||
* @package ${3:default}
|
||||
* @author ${4:`g:snips_author`}
|
||||
**/
|
||||
interface ${1:}
|
||||
{${5}
|
||||
} // END interface $1
|
||||
# class ...
|
||||
snippet class
|
||||
/**
|
||||
* ${1}
|
||||
**/
|
||||
class ${2:ClassName}
|
||||
{
|
||||
${3}
|
||||
function ${4:__construct}(${5:argument})
|
||||
{
|
||||
${6:// code...}
|
||||
}
|
||||
}
|
||||
# define(...)
|
||||
snippet def
|
||||
define('${1}'${2});${3}
|
||||
# defined(...)
|
||||
snippet def?
|
||||
${1}defined('${2}')${3}
|
||||
snippet wh
|
||||
while (${1:/* condition */}) {
|
||||
${2:// code...}
|
||||
}
|
||||
# do ... while
|
||||
snippet do
|
||||
do {
|
||||
${2:// code... }
|
||||
} while (${1:/* condition */});
|
||||
snippet if
|
||||
if (${1:/* condition */}) {
|
||||
${2:// code...}
|
||||
}
|
||||
snippet ife
|
||||
if (${1:/* condition */}) {
|
||||
${2:// code...}
|
||||
} else {
|
||||
${3:// code...}
|
||||
}
|
||||
${4}
|
||||
snippet else
|
||||
else {
|
||||
${1:// code...}
|
||||
}
|
||||
snippet elseif
|
||||
elseif (${1:/* condition */}) {
|
||||
${2:// code...}
|
||||
}
|
||||
# Tertiary conditional
|
||||
snippet t
|
||||
$${1:retVal} = (${2:condition}) ? ${3:a} : ${4:b};${5}
|
||||
snippet switch
|
||||
switch ($${1:variable}) {
|
||||
case '${2:value}':
|
||||
${3:// code...}
|
||||
break;
|
||||
${5}
|
||||
default:
|
||||
${4:// code...}
|
||||
break;
|
||||
}
|
||||
snippet case
|
||||
case '${1:value}':
|
||||
${2:// code...}
|
||||
break;${3}
|
||||
snippet for
|
||||
for ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) {
|
||||
${4: // code...}
|
||||
}
|
||||
snippet foreach
|
||||
foreach ($${1:variable} as $${2:key}) {
|
||||
${3:// code...}
|
||||
}
|
||||
snippet fun
|
||||
${1:public }function ${2:FunctionName}(${3})
|
||||
{
|
||||
${4:// code...}
|
||||
}
|
||||
# $... = array (...)
|
||||
snippet array
|
||||
$${1:arrayName} = array('${2}' => ${3});${4}
|
@ -0,0 +1,86 @@
|
||||
snippet #!
|
||||
#!/usr/bin/python
|
||||
|
||||
snippet imp
|
||||
import ${1:module}
|
||||
# Module Docstring
|
||||
snippet docs
|
||||
'''
|
||||
File: ${1:`Filename('$1.py', 'foo.py')`}
|
||||
Author: ${2:`g:snips_author`}
|
||||
Description: ${3}
|
||||
'''
|
||||
snippet wh
|
||||
while ${1:condition}:
|
||||
${2:# code...}
|
||||
snippet for
|
||||
for ${1:needle} in ${2:haystack}:
|
||||
${3:# code...}
|
||||
# New Class
|
||||
snippet cl
|
||||
class ${1:ClassName}(${2:object}):
|
||||
"""${3:docstring for $1}"""
|
||||
def __init__(self, ${4:arg}):
|
||||
${5:super($1, self).__init__()}
|
||||
self.$4 = $4
|
||||
${6}
|
||||
# New Function
|
||||
snippet def
|
||||
def ${1:fname}(${2:`indent('.') ? 'self' : ''`}):
|
||||
"""${3:docstring for $1}"""
|
||||
${4:pass}
|
||||
snippet deff
|
||||
def ${1:fname}(${2:`indent('.') ? 'self' : ''`}):
|
||||
${3}
|
||||
# New Method
|
||||
snippet defs
|
||||
def ${1:mname}(self, ${2:arg}):
|
||||
${3:pass}
|
||||
# New Property
|
||||
snippet property
|
||||
def ${1:foo}():
|
||||
doc = "${2:The $1 property.}"
|
||||
def fget(self):
|
||||
${3:return self._$1}
|
||||
def fset(self, value):
|
||||
${4:self._$1 = value}
|
||||
# Lambda
|
||||
snippet ld
|
||||
${1:var} = lambda ${2:vars} : ${3:action}
|
||||
snippet .
|
||||
self.
|
||||
snippet try Try/Except
|
||||
try:
|
||||
${1:pass}
|
||||
except ${2:Exception}, ${3:e}:
|
||||
${4:raise $3}
|
||||
snippet try Try/Except/Else
|
||||
try:
|
||||
${1:pass}
|
||||
except ${2:Exception}, ${3:e}:
|
||||
${4:raise $3}
|
||||
else:
|
||||
${5:pass}
|
||||
snippet try Try/Except/Finally
|
||||
try:
|
||||
${1:pass}
|
||||
except ${2:Exception}, ${3:e}:
|
||||
${4:raise $3}
|
||||
finally:
|
||||
${5:pass}
|
||||
snippet try Try/Except/Else/Finally
|
||||
try:
|
||||
${1:pass}
|
||||
except ${2:Exception}, ${3:e}:
|
||||
${4:raise $3}
|
||||
else:
|
||||
${5:pass}
|
||||
finally:
|
||||
${6:pass}
|
||||
# if __name__ == '__main__':
|
||||
snippet ifmain
|
||||
if __name__ == '__main__':
|
||||
${1:main()}
|
||||
# __magic__
|
||||
snippet _
|
||||
__${1:init}__${2}
|
@ -0,0 +1,420 @@
|
||||
# #!/usr/bin/ruby
|
||||
snippet #!
|
||||
#!/usr/bin/ruby
|
||||
|
||||
# New Block
|
||||
snippet =b
|
||||
=begin rdoc
|
||||
${1}
|
||||
=end
|
||||
snippet y
|
||||
:yields: ${1:arguments}
|
||||
snippet rb
|
||||
#!/usr/bin/env ruby -wKU
|
||||
|
||||
snippet req
|
||||
require "${1}"${2}
|
||||
snippet #
|
||||
# =>
|
||||
snippet end
|
||||
__END__
|
||||
snippet case
|
||||
case ${1:object}
|
||||
when ${2:condition}
|
||||
${3}
|
||||
end
|
||||
snippet when
|
||||
when ${1:condition}
|
||||
${2}
|
||||
snippet def
|
||||
def ${1:method_name}
|
||||
${2}
|
||||
end
|
||||
snippet deft
|
||||
def test_${1:case_name}
|
||||
${2}
|
||||
end
|
||||
snippet if
|
||||
if ${1:condition}
|
||||
${2}
|
||||
end
|
||||
snippet ife
|
||||
if ${1:condition}
|
||||
${2}
|
||||
else
|
||||
${3}
|
||||
end
|
||||
snippet elsif
|
||||
elsif ${1:condition}
|
||||
${2}
|
||||
snippet unless
|
||||
unless ${1:condition}
|
||||
${2}
|
||||
end
|
||||
snippet while
|
||||
while ${1:condition}
|
||||
${2}
|
||||
end
|
||||
snippet until
|
||||
until ${1:condition}
|
||||
${2}
|
||||
end
|
||||
snippet cla class .. end
|
||||
class ${1:`substitute(Filename(), '^.', '\u&', '')`}
|
||||
${2}
|
||||
end
|
||||
snippet cla class .. initialize .. end
|
||||
class ${1:`substitute(Filename(), '^.', '\u&', '')`}
|
||||
def initialize(${2:args})
|
||||
${3}
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
snippet cla class .. < ParentClass .. initialize .. end
|
||||
class ${1:`substitute(Filename(), '^.', '\u&', '')`} < ${2:ParentClass}
|
||||
def initialize(${3:args})
|
||||
${4}
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
snippet cla ClassName = Struct .. do .. end
|
||||
${1:`substitute(Filename(), '^.', '\u&', '')`} = Struct.new(:${2:attr_names}) do
|
||||
def ${3:method_name}
|
||||
${4}
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
snippet cla class BlankSlate .. initialize .. end
|
||||
class ${1:BlankSlate}
|
||||
instance_methods.each { |meth| undef_method(meth) unless meth =~ /\A__/ }
|
||||
snippet cla class << self .. end
|
||||
class << ${1:self}
|
||||
${2}
|
||||
end
|
||||
# class .. < DelegateClass .. initialize .. end
|
||||
snippet cla-
|
||||
class ${1:`substitute(Filename(), '^.', '\u&', '')`} < DelegateClass(${2:ParentClass})
|
||||
def initialize(${3:args})
|
||||
super(${4:del_obj})
|
||||
|
||||
${5}
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
snippet mod module .. end
|
||||
module ${1:`substitute(Filename(), '^.', '\u&', '')`}
|
||||
${2}
|
||||
end
|
||||
snippet mod module .. module_function .. end
|
||||
module ${1:`substitute(Filename(), '^.', '\u&', '')`}
|
||||
module_function
|
||||
|
||||
${2}
|
||||
end
|
||||
snippet mod module .. ClassMethods .. end
|
||||
module ${1:`substitute(Filename(), '^.', '\u&', '')`}
|
||||
module ClassMethods
|
||||
${2}
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
|
||||
end
|
||||
|
||||
def self.included(receiver)
|
||||
receiver.extend ClassMethods
|
||||
receiver.send :include, InstanceMethods
|
||||
end
|
||||
end
|
||||
# attr_reader
|
||||
snippet r
|
||||
attr_reader :${1:attr_names}
|
||||
# attr_writer
|
||||
snippet w
|
||||
attr_writer :${1:attr_names}
|
||||
# attr_accessor
|
||||
snippet rw
|
||||
attr_accessor :${1:attr_names}
|
||||
# include Enumerable
|
||||
snippet Enum
|
||||
include Enumerable
|
||||
|
||||
def each(&block)
|
||||
${1}
|
||||
end
|
||||
# include Comparable
|
||||
snippet Comp
|
||||
include Comparable
|
||||
|
||||
def <=>(other)
|
||||
${1}
|
||||
end
|
||||
# extend Forwardable
|
||||
snippet Forw-
|
||||
extend Forwardable
|
||||
# def self
|
||||
snippet defs
|
||||
def self.${1:class_method_name}
|
||||
${2}
|
||||
end
|
||||
# def method_missing
|
||||
snippet defmm
|
||||
def method_missing(meth, *args, &blk)
|
||||
${1}
|
||||
end
|
||||
snippet defd
|
||||
def_delegator :${1:@del_obj}, :${2:del_meth}, :${3:new_name}
|
||||
snippet defds
|
||||
def_delegators :${1:@del_obj}, :${2:del_methods}
|
||||
snippet am
|
||||
alias_method :${1:new_name}, :${2:old_name}
|
||||
snippet app
|
||||
if __FILE__ == $PROGRAM_NAME
|
||||
${1}
|
||||
end
|
||||
# usage_if()
|
||||
snippet usai
|
||||
if ARGV.${1}
|
||||
abort "Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}"${3}
|
||||
end
|
||||
# usage_unless()
|
||||
snippet usau
|
||||
unless ARGV.${1}
|
||||
abort "Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}"${3}
|
||||
end
|
||||
snippet array
|
||||
Array.new(${1:10}) { |${2:i}| ${3} }
|
||||
snippet hash
|
||||
Hash.new { |${1:hash}, ${2:key}| $1[$2] = ${3} }
|
||||
snippet file File.foreach() { |line| .. }
|
||||
File.foreach(${1:"path/to/file"}) { |${2:line}| ${3} }
|
||||
snippet file File.read()
|
||||
File.read(${1:"path/to/file"})${2}
|
||||
snippet Dir Dir.global() { |file| .. }
|
||||
Dir.glob(${1:"dir/glob/*"}) { |${2:file}| ${3} }
|
||||
snippet Dir Dir[".."]
|
||||
Dir[${1:"glob/**/*.rb"}]${2}
|
||||
snippet dir
|
||||
Filename.dirname(__FILE__)
|
||||
snippet deli
|
||||
delete_if { |${1:e}| ${2} }
|
||||
snippet fil
|
||||
fill(${1:range}) { |${2:i}| ${3} }
|
||||
# flatten_once()
|
||||
snippet flao
|
||||
inject(Array.new) { |${1:arr}, ${2:a}| $1.push(*$2)}${3}
|
||||
snippet zip
|
||||
zip(${1:enums}) { |${2:row}| ${3} }
|
||||
# downto(0) { |n| .. }
|
||||
snippet dow
|
||||
downto(${1:0}) { |${2:n}| ${3} }
|
||||
snippet ste
|
||||
step(${1:2}) { |${2:n}| ${3} }
|
||||
snippet tim
|
||||
times { |${1:n}| ${2} }
|
||||
snippet upt
|
||||
upto(${1:1.0/0.0}) { |${2:n}| ${3} }
|
||||
snippet loo
|
||||
loop { ${1} }
|
||||
snippet ea
|
||||
each { |${1:e}| ${2} }
|
||||
snippet eab
|
||||
each_byte { |${1:byte}| ${2} }
|
||||
snippet eac- each_char { |chr| .. }
|
||||
each_char { |${1:chr}| ${2} }
|
||||
snippet eac- each_cons(..) { |group| .. }
|
||||
each_cons(${1:2}) { |${2:group}| ${3} }
|
||||
snippet eai
|
||||
each_index { |${1:i}| ${2} }
|
||||
snippet eak
|
||||
each_key { |${1:key}| ${2} }
|
||||
snippet eal
|
||||
each_line { |${1:line}| ${2} }
|
||||
snippet eap
|
||||
each_pair { |${1:name}, ${2:val}| ${3} }
|
||||
snippet eas-
|
||||
each_slice(${1:2}) { |${2:group}| ${3} }
|
||||
snippet eav
|
||||
each_value { |${1:val}| ${2} }
|
||||
snippet eawi
|
||||
each_with_index { |${1:e}, ${2:i}| ${3} }
|
||||
snippet reve
|
||||
reverse_each { |${1:e}| ${2} }
|
||||
snippet inj
|
||||
inject(${1:init}) { |${2:mem}, ${3:var}| ${4} }
|
||||
snippet map
|
||||
map { |${1:e}| ${2} }
|
||||
snippet mapwi-
|
||||
enum_with_index.map { |${1:e}, ${2:i}| ${3} }
|
||||
snippet sor
|
||||
sort { |a, b| ${1} }
|
||||
snippet sorb
|
||||
sort_by { |${1:e}| ${2} }
|
||||
snippet ran
|
||||
sort_by { rand }
|
||||
snippet all
|
||||
all? { |${1:e}| ${2} }
|
||||
snippet any
|
||||
any? { |${1:e}| ${2} }
|
||||
snippet cl
|
||||
classify { |${1:e}| ${2} }
|
||||
snippet col
|
||||
collect { |${1:e}| ${2} }
|
||||
snippet det
|
||||
detect { |${1:e}| ${2} }
|
||||
snippet fet
|
||||
fetch(${1:name}) { |${2:key}| ${3} }
|
||||
snippet fin
|
||||
find { |${1:e}| ${2} }
|
||||
snippet fina
|
||||
find_all { |${1:e}| ${2} }
|
||||
snippet gre
|
||||
grep(${1:/pattern/}) { |${2:match}| ${3} }
|
||||
snippet sub
|
||||
${1:g}sub(${2:/pattern/}) { |${3:match}| ${4} }
|
||||
snippet sca
|
||||
scan(${1:/pattern/}) { |${2:match}| ${3} }
|
||||
snippet max
|
||||
max { |a, b|, ${1} }
|
||||
snippet min
|
||||
min { |a, b|, ${1} }
|
||||
snippet par
|
||||
partition { |${1:e}|, ${2} }
|
||||
snippet rej
|
||||
reject { |${1:e}|, ${2} }
|
||||
snippet sel
|
||||
select { |${1:e}|, ${2} }
|
||||
snippet lam
|
||||
lambda { |${1:args}| ${2} }
|
||||
snippet do
|
||||
do |${1:variable}|
|
||||
${2}
|
||||
end
|
||||
snippet :
|
||||
:${1:key} => ${2:"value"}${3}
|
||||
snippet ope
|
||||
open(${1:"path/or/url/or/pipe"}, "${2:w}") { |${3:io}| ${4} }
|
||||
# path_from_here()
|
||||
snippet patfh
|
||||
File.join(File.dirname(__FILE__), *%2[${1:rel path here}])${2}
|
||||
# unix_filter {}
|
||||
snippet unif
|
||||
ARGF.each_line${1} do |${2:line}|
|
||||
${3}
|
||||
end
|
||||
# option_parse {}
|
||||
snippet optp
|
||||
require "optparse"
|
||||
|
||||
options = {${1:default => "args"}}
|
||||
|
||||
ARGV.options do |opts|
|
||||
opts.banner = "Usage: #{File.basename($PROGRAM_NAME)}
|
||||
snippet opt
|
||||
opts.on( "-${1:o}", "--${2:long-option-name}", ${3:String},
|
||||
"${4:Option description.}") do |${5:opt}|
|
||||
${6}
|
||||
end
|
||||
snippet tc
|
||||
require "test/unit"
|
||||
|
||||
require "${1:library_file_name}"
|
||||
|
||||
class Test${2:$1} < Test::Unit::TestCase
|
||||
def test_${3:case_name}
|
||||
${4}
|
||||
end
|
||||
end
|
||||
snippet ts
|
||||
require "test/unit"
|
||||
|
||||
require "tc_${1:test_case_file}"
|
||||
require "tc_${2:test_case_file}"${3}
|
||||
snippet as
|
||||
assert(${1:test}, "${2:Failure message.}")${3}
|
||||
snippet ase
|
||||
assert_equal(${1:expected}, ${2:actual})${3}
|
||||
snippet asne
|
||||
assert_not_equal(${1:unexpected}, ${2:actual})${3}
|
||||
snippet asid
|
||||
assert_in_delta(${1:expected_float}, ${2:actual_float}, ${3:2 ** -20})${4}
|
||||
snippet asio
|
||||
assert_instance_of(${1:ExpectedClass}, ${2:actual_instance})${3}
|
||||
snippet asko
|
||||
assert_kind_of(${1:ExpectedKind}, ${2:actual_instance})${3}
|
||||
snippet asn
|
||||
assert_nil(${1:instance})${2}
|
||||
snippet asnn
|
||||
assert_not_nil(${1:instance})${2}
|
||||
snippet asm
|
||||
assert_match(/${1:expected_pattern}/, ${2:actual_string})${3}
|
||||
snippet asnm
|
||||
assert_no_match(/${1:unexpected_pattern}/, ${2:actual_string})${3}
|
||||
snippet aso
|
||||
assert_operator(${1:left}, :${2:operator}, ${3:right})${4}
|
||||
snippet asr
|
||||
assert_raise(${1:Exception}) { ${2} }
|
||||
snippet asnr
|
||||
assert_nothing_raised(${1:Exception}) { ${2} }
|
||||
snippet asrt
|
||||
assert_respond_to(${1:object}, :${2:method})${3}
|
||||
snippet ass assert_same(..)
|
||||
assert_same(${1:expected}, ${2:actual})${3}
|
||||
snippet ass assert_send(..)
|
||||
assert_send([${1:object}, :${2:message}, ${3:args}])${4}
|
||||
snippet asns
|
||||
assert_not_same(${1:unexpected}, ${2:actual})${3}
|
||||
snippet ast
|
||||
assert_throws(:${1:expected}) { ${2} }
|
||||
snippet asnt
|
||||
assert_nothing_thrown { ${1} }
|
||||
snippet fl
|
||||
flunk("${1:Failure message.}")${2}
|
||||
# Benchmark.bmbm do .. end
|
||||
snippet bm-
|
||||
TESTS = ${1:10_000}
|
||||
Benchmark.bmbm do |results|
|
||||
${2}
|
||||
end
|
||||
snippet rep
|
||||
results.report("${1:name}:") { TESTS.times { ${2} }}
|
||||
# Marshal.dump(.., file)
|
||||
snippet Md
|
||||
File.open(${1:"path/to/file.dump"}, "wb") { |${2:file}| Marshal.dump(${3:obj}, $2) }${4}
|
||||
# Mashal.load(obj)
|
||||
snippet Ml
|
||||
File.open(${1:"path/to/file.dump"}, "rb") { |${2:file}| Marshal.load($2) }${3}
|
||||
# deep_copy(..)
|
||||
snippet deec
|
||||
Marshal.load(Marshal.dump(${1:obj_to_copy}))${2}
|
||||
snippet Pn-
|
||||
PStore.new(${1:"file_name.pstore"})${2}
|
||||
snippet tra
|
||||
transaction(${1:true}) { ${2} }
|
||||
# xmlread(..)
|
||||
snippet xml-
|
||||
REXML::Document.new(File.read(${1:"path/to/file"}))${2}
|
||||
# xpath(..) { .. }
|
||||
snippet xpa
|
||||
elements.each(${1:"//Xpath"}) do |${2:node}|
|
||||
${3}
|
||||
end
|
||||
# class_from_name()
|
||||
snippet clafn
|
||||
split("::").inject(Object) { |par, const| par.const_get(const) }
|
||||
# singleton_class()
|
||||
snippet sinc
|
||||
class << self; self end
|
||||
snippet nam
|
||||
namespace :${1:`Filename()`} do
|
||||
${2}
|
||||
end
|
||||
snippet tas
|
||||
desc "${1:Task description\}"
|
||||
task :${2:task_name => [:dependent, :tasks]} do
|
||||
${3}
|
||||
end
|
@ -0,0 +1,28 @@
|
||||
# #!/bin/bash
|
||||
snippet #!
|
||||
#!/bin/bash
|
||||
|
||||
snippet if
|
||||
if [[ ${1:condition} ]]; then
|
||||
${2:#statements}
|
||||
fi
|
||||
snippet elif
|
||||
elif [[ ${1:condition} ]]; then
|
||||
${2:#statements}
|
||||
snippet for
|
||||
for (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do
|
||||
${3:#statements}
|
||||
done
|
||||
snippet wh
|
||||
while [[ ${1:condition} ]]; do
|
||||
${2:#statements}
|
||||
done
|
||||
snippet until
|
||||
until [[ ${1:condition} ]]; do
|
||||
${2:#statements}
|
||||
done
|
||||
snippet case
|
||||
case ${1:word} in
|
||||
${2:pattern})
|
||||
${3};;
|
||||
esac
|
@ -0,0 +1,7 @@
|
||||
# snippets for making snippets :)
|
||||
snippet snip
|
||||
snippet ${1:trigger}
|
||||
${2}
|
||||
snippet msnip
|
||||
snippet ${1:trigger} ${2:description}
|
||||
${3}
|
@ -0,0 +1,92 @@
|
||||
# #!/usr/bin/tclsh
|
||||
snippet #!
|
||||
#!/usr/bin/tclsh
|
||||
|
||||
# Process
|
||||
snippet pro
|
||||
proc ${1:function_name} {${2:args}} {
|
||||
${3:#body ...}
|
||||
}
|
||||
#xif
|
||||
snippet xif
|
||||
${1:expr}? ${2:true} : ${3:false}
|
||||
# Conditional
|
||||
snippet if
|
||||
if {${1}} {
|
||||
${2:# body...}
|
||||
}
|
||||
# Conditional if..else
|
||||
snippet ife
|
||||
if {${1}} {
|
||||
${2:# body...}
|
||||
} else {
|
||||
${3:# else...}
|
||||
}
|
||||
# Conditional if..elsif..else
|
||||
snippet ifee
|
||||
if {${1}} {
|
||||
${2:# body...}
|
||||
} elseif {${3}} {
|
||||
${4:# elsif...}
|
||||
} else {
|
||||
${5:# else...}
|
||||
}
|
||||
# If catch then
|
||||
snippet ifc
|
||||
if { [catch {${1:#do something...}} ${2:err}] } {
|
||||
${3:# handle failure...}
|
||||
}
|
||||
# Catch
|
||||
snippet catch
|
||||
catch {${1}} ${2:err} ${3:options}
|
||||
# While Loop
|
||||
snippet wh
|
||||
while {${1}} {
|
||||
${2:# body...}
|
||||
}
|
||||
# For Loop
|
||||
snippet for
|
||||
for {set ${2:var} 0} {$$2 < ${1:count}} {${3:incr} $2} {
|
||||
${4:# body...}
|
||||
}
|
||||
# Foreach Loop
|
||||
snippet fore
|
||||
foreach ${1:x} {${2:#list}} {
|
||||
${3:# body...}
|
||||
}
|
||||
# after ms script...
|
||||
snippet af
|
||||
after ${1:ms} ${2:#do something}
|
||||
# after cancel id
|
||||
snippet afc
|
||||
after cancel ${1:id or script}
|
||||
# after idle
|
||||
snippet afi
|
||||
after idle ${1:script}
|
||||
# after info id
|
||||
snippet afin
|
||||
after info ${1:id}
|
||||
# Expr
|
||||
snippet exp
|
||||
expr {${1:#expression here}}
|
||||
# Switch
|
||||
snippet sw
|
||||
switch ${1:var} {
|
||||
${3:pattern 1} {
|
||||
${4:#do something}
|
||||
}
|
||||
default {
|
||||
${2:#do something}
|
||||
}
|
||||
}
|
||||
# Case
|
||||
snippet ca
|
||||
${1:pattern} {
|
||||
${2:#do something}
|
||||
}${3}
|
||||
# Namespace eval
|
||||
snippet ns
|
||||
namespace eval ${1:path} {${2:#script...}}
|
||||
# Namespace current
|
||||
snippet nsc
|
||||
namespace current
|
@ -0,0 +1,115 @@
|
||||
# \begin{}...\end{}
|
||||
snippet begin
|
||||
\begin{${1:env}}
|
||||
${2}
|
||||
\end{$1}
|
||||
# Tabular
|
||||
snippet tab
|
||||
\begin{${1:tabular}}{${2:c}}
|
||||
${3}
|
||||
\end{$1}
|
||||
# Align(ed)
|
||||
snippet ali
|
||||
\begin{align${1:ed}}
|
||||
${2}
|
||||
\end{align$1}
|
||||
# Gather(ed)
|
||||
snippet gat
|
||||
\begin{gather${1:ed}}
|
||||
${2}
|
||||
\end{gather$1}
|
||||
# Equation
|
||||
snippet eq
|
||||
\begin{equation}
|
||||
${1}
|
||||
\end{equation}
|
||||
# Unnumbered Equation
|
||||
snippet \
|
||||
\\[
|
||||
${1}
|
||||
\\]
|
||||
# Enumerate
|
||||
snippet enum
|
||||
\begin{enumerate}
|
||||
\item ${1}
|
||||
\end{enumerate}
|
||||
# Itemize
|
||||
snippet item
|
||||
\begin{itemize}
|
||||
\item ${1}
|
||||
\end{itemize}
|
||||
# Description
|
||||
snippet desc
|
||||
\begin{description}
|
||||
\item[${1}] ${2}
|
||||
\end{description}
|
||||
# Matrix
|
||||
snippet mat
|
||||
\begin{${1:p/b/v/V/B/small}matrix}
|
||||
${2}
|
||||
\end{$1matrix}
|
||||
# Cases
|
||||
snippet cas
|
||||
\begin{cases}
|
||||
${1:equation}, &\text{ if }${2:case}\\
|
||||
${3}
|
||||
\end{cases}
|
||||
# Split
|
||||
snippet spl
|
||||
\begin{split}
|
||||
${1}
|
||||
\end{split}
|
||||
# Part
|
||||
snippet part
|
||||
\part{${1:part name}} % (fold)
|
||||
\label{prt:${2:$1}}
|
||||
${3}
|
||||
% part $2 (end)
|
||||
# Chapter
|
||||
snippet cha
|
||||
\chapter{${1:chapter name}} % (fold)
|
||||
\label{cha:${2:$1}}
|
||||
${3}
|
||||
% chapter $2 (end)
|
||||
# Section
|
||||
snippet sec
|
||||
\section{${1:section name}} % (fold)
|
||||
\label{sec:${2:$1}}
|
||||
${3}
|
||||
% section $2 (end)
|
||||
# Sub Section
|
||||
snippet sub
|
||||
\subsection{${1:subsection name}} % (fold)
|
||||
\label{sub:${2:$1}}
|
||||
${3}
|
||||
% subsection $2 (end)
|
||||
# Sub Sub Section
|
||||
snippet subs
|
||||
\subsubsection{${1:subsubsection name}} % (fold)
|
||||
\label{ssub:${2:$1}}
|
||||
${3}
|
||||
% subsubsection $2 (end)
|
||||
# Paragraph
|
||||
snippet par
|
||||
\paragraph{${1:paragraph name}} % (fold)
|
||||
\label{par:${2:$1}}
|
||||
${3}
|
||||
% paragraph $2 (end)
|
||||
# Sub Paragraph
|
||||
snippet subp
|
||||
\subparagraph{${1:subparagraph name}} % (fold)
|
||||
\label{subp:${2:$1}}
|
||||
${3}
|
||||
% subparagraph $2 (end)
|
||||
snippet itd
|
||||
\item[${1:description}] ${2:item}
|
||||
snippet figure
|
||||
${1:Figure}~\ref{${2:fig:}}${3}
|
||||
snippet table
|
||||
${1:Table}~\ref{${2:tab:}}${3}
|
||||
snippet listing
|
||||
${1:Listing}~\ref{${2:list}}${3}
|
||||
snippet section
|
||||
${1:Section}~\ref{${2:sec:}}${3}
|
||||
snippet page
|
||||
${1:page}~\pageref{${2}}${3}
|
@ -0,0 +1,32 @@
|
||||
snippet header
|
||||
" File: ${1:`expand('%:t')`}
|
||||
" Author: ${2:`g:snips_author`}
|
||||
" Description: ${3}
|
||||
${4:" Last Modified: `strftime("%B %d, %Y")`}
|
||||
snippet guard
|
||||
if exists('${1:did_`Filename()`}') || &cp${2: || version < 700}
|
||||
finish
|
||||
endif
|
||||
let $1 = 1${3}
|
||||
snippet f
|
||||
fun ${1:function_name}(${2})
|
||||
${3:" code}
|
||||
endf
|
||||
snippet for
|
||||
for ${1:needle} in ${2:haystack}
|
||||
${3:" code}
|
||||
endfor
|
||||
snippet wh
|
||||
while ${1:condition}
|
||||
${2:" code}
|
||||
endw
|
||||
snippet if
|
||||
if ${1:condition}
|
||||
${2:" code}
|
||||
endif
|
||||
snippet ife
|
||||
if ${1:condition}
|
||||
${2}
|
||||
else
|
||||
${3}
|
||||
endif
|
@ -0,0 +1,58 @@
|
||||
# #!/bin/zsh
|
||||
snippet #!
|
||||
#!/bin/zsh
|
||||
|
||||
snippet if
|
||||
if ${1:condition}; then
|
||||
${2:# statements}
|
||||
fi
|
||||
snippet ife
|
||||
if ${1:condition}; then
|
||||
${2:# statements}
|
||||
else
|
||||
${3:# statements}
|
||||
fi
|
||||
snippet elif
|
||||
elif ${1:condition} ; then
|
||||
${2:# statements}
|
||||
snippet for
|
||||
for (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do
|
||||
${3:# statements}
|
||||
done
|
||||
snippet fore
|
||||
for ${1:item} in ${2:list}; do
|
||||
${3:# statements}
|
||||
done
|
||||
snippet wh
|
||||
while ${1:condition}; do
|
||||
${2:# statements}
|
||||
done
|
||||
snippet until
|
||||
until ${1:condition}; do
|
||||
${2:# statements}
|
||||
done
|
||||
snippet repeat
|
||||
repeat ${1:integer}; do
|
||||
${2:# statements}
|
||||
done
|
||||
snippet case
|
||||
case ${1:word} in
|
||||
${2:pattern})
|
||||
${3};;
|
||||
esac
|
||||
snippet select
|
||||
select ${1:answer} in ${2:choices}; do
|
||||
${3:# statements}
|
||||
done
|
||||
snippet (
|
||||
( ${1:#statements} )
|
||||
snippet {
|
||||
{ ${1:#statements} }
|
||||
snippet [
|
||||
[[ ${1:test} ]]
|
||||
snippet always
|
||||
{ ${1:try} } always { ${2:always} }
|
||||
snippet fun
|
||||
function ${1:name} (${2:args}) {
|
||||
${3:# body}
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
" Vim syntax file
|
||||
" Language: Jade
|
||||
" Maintainer: Joshua Borton
|
||||
" Credits: Tim Pope
|
||||
" Filenames: *.jade
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
if !exists("main_syntax")
|
||||
let main_syntax = 'jade'
|
||||
endif
|
||||
|
||||
runtime! syntax/html.vim
|
||||
unlet! b:current_syntax
|
||||
|
||||
syn case match
|
||||
|
||||
syn cluster jadeTop contains=jadeBegin,jadeComment
|
||||
syn match jadeBegin "^\s*\%([<>]\|&[^=~ ]\)\@!" nextgroup=jadeTag,jadeClassChar,jadeIdChar,jadePlainChar
|
||||
syn match jadeTag "\w\+\%(:\w\+\)\=" contained contains=htmlTagName,htmlSpecialTagName nextgroup=@jadeComponent
|
||||
syn cluster jadeComponent contains=jadeAttributes,jadeIdChar,jadeClassChar,jadePlainChar
|
||||
syn match jadeComment ' *\/\/.*$'
|
||||
syn region jadeAttributes matchgroup=jadeAttributesDelimiter start="(" skip=+\%(\\\\\)*\\'+ end=")" contained contains=htmlArg,jadeAttributeString,htmlEvent,htmlCssDefinition nextgroup=@jadeComponent
|
||||
syn match jadeClassChar "\." contained nextgroup=jadeClass
|
||||
syn match jadeIdChar "#{\@!" contained nextgroup=jadeId
|
||||
syn match jadeClass "\%(\w\|-\)\+" contained nextgroup=@jadeComponent
|
||||
syn match jadeId "\%(\w\|-\)\+" contained nextgroup=@jadeComponent
|
||||
syn region jadeDocType start="^\s*!!!" end="$"
|
||||
|
||||
syn match jadePlainChar "\\" contained
|
||||
syn region jadeInterpolation matchgroup=jadeInterpolationDelimiter start="#{" end="}" contains=@htmlJavaScript
|
||||
syn match jadeInterpolationEscape "\\\@<!\%(\\\\\)*\\\%(\\\ze#{\|#\ze{\)"
|
||||
|
||||
syn region jadeAttributeString start=+\%(=\s*\)\@<='+ skip=+\%(\\\\\)*\\'+ end=+'+ contains=jadeInterpolation
|
||||
syn region jadeAttributeString start=+\%(:\s*\)\@<='+ skip=+\%(\\\\\)*\\'+ end=+'+ contains=jadeInterpolation
|
||||
syn region jadeAttributeString start=+\%(=\s*\)\@<="+ skip=+\%(\\\\\)*\\'+ end=+"+ contains=jadeInterpolation
|
||||
syn region jadeAttributeString start=+\%(:\s*\)\@<="+ skip=+\%(\\\\\)*\\'+ end=+"+ contains=jadeInterpolation
|
||||
|
||||
syn region jadeJavascriptFilter matchgroup=jadeFilter start="^\z(\s*\):javascript\s*$" end="^\%(\z1 \| *$\)\@!" contains=@htmlJavaScript
|
||||
syn region jadeMarkdownFilter matchgroup=jadeFilter start="^\z(\s*\):markdown\s*$" end="^\%(\z1 \| *$\)\@!"
|
||||
|
||||
syn region jadeJavascriptBlock start="^\z(\s*\)script" nextgroup=@jadeComponent,jadeError end="^\%(\z1 \| *$\)\@!" contains=@jadeTop,@htmlJavascript keepend
|
||||
syn region jadeCssBlock start="^\z(\s*\)style" nextgroup=@jadeComponent,jadeError end="^\%(\z1 \| *$\)\@!" contains=@jadeTop,@htmlCss keepend
|
||||
|
||||
syn match jadeError "\$" contained
|
||||
|
||||
hi def link jadeTag Special
|
||||
hi def link jadeAttributeString String
|
||||
hi def link jadeAttributesDelimiter Identifier
|
||||
hi def link jadeIdChar Special
|
||||
hi def link jadeClassChar Special
|
||||
hi def link jadeId Identifier
|
||||
hi def link jadeClass Type
|
||||
hi def link jadeInterpolationDelimiter Delimiter
|
||||
hi def link jadeFilter PreProc
|
||||
hi def link jadeDocType PreProc
|
||||
hi def link jadeComment Comment
|
||||
|
||||
let b:current_syntax = "jade"
|
||||
|
||||
if main_syntax == "jade"
|
||||
unlet main_syntax
|
||||
endif
|
@ -0,0 +1,246 @@
|
||||
" Vim syntax file
|
||||
" Language: JavaScript
|
||||
" Maintainer: Yi Zhao (ZHAOYI) <zzlinux AT hotmail DOT com>
|
||||
" Last Change: June 4, 2009
|
||||
" Version: 0.7.7
|
||||
" Changes: Add "undefined" as a type keyword
|
||||
"
|
||||
" TODO:
|
||||
" - Add the HTML syntax inside the JSDoc
|
||||
|
||||
if !exists("main_syntax")
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
let main_syntax = 'javascript'
|
||||
endif
|
||||
|
||||
"" Drop fold if it set but VIM doesn't support it.
|
||||
let b:javascript_fold='true'
|
||||
if version < 600 " Don't support the old version
|
||||
unlet! b:javascript_fold
|
||||
endif
|
||||
|
||||
"" dollar sigh is permittd anywhere in an identifier
|
||||
setlocal iskeyword+=$
|
||||
|
||||
syntax sync fromstart
|
||||
|
||||
"" JavaScript comments
|
||||
syntax keyword javaScriptCommentTodo TODO FIXME XXX TBD contained
|
||||
syntax region javaScriptLineComment start=+\/\/+ end=+$+ keepend contains=javaScriptCommentTodo,@Spell
|
||||
syntax region javaScriptLineComment start=+^\s*\/\/+ skip=+\n\s*\/\/+ end=+$+ keepend contains=javaScriptCommentTodo,@Spell fold
|
||||
syntax region javaScriptCvsTag start="\$\cid:" end="\$" oneline contained
|
||||
syntax region javaScriptComment start="/\*" end="\*/" contains=javaScriptCommentTodo,javaScriptCvsTag,@Spell fold
|
||||
|
||||
"" JSDoc support start
|
||||
if !exists("javascript_ignore_javaScriptdoc")
|
||||
syntax case ignore
|
||||
|
||||
"" syntax coloring for javadoc comments (HTML)
|
||||
"syntax include @javaHtml <sfile>:p:h/html.vim
|
||||
"unlet b:current_syntax
|
||||
|
||||
syntax region javaScriptDocComment matchgroup=javaScriptComment start="/\*\*\s*$" end="\*/" contains=javaScriptDocTags,javaScriptCommentTodo,javaScriptCvsTag,@javaScriptHtml,@Spell fold
|
||||
syntax match javaScriptDocTags contained "@\(param\|argument\|requires\|exception\|throws\|type\|class\|extends\|see\|link\|member\|module\|method\|title\|namespace\|optional\|default\|base\|file\)\>" nextgroup=javaScriptDocParam,javaScriptDocSeeTag skipwhite
|
||||
syntax match javaScriptDocTags contained "@\(beta\|deprecated\|description\|fileoverview\|author\|license\|version\|returns\=\|constructor\|private\|protected\|final\|ignore\|addon\|exec\)\>"
|
||||
syntax match javaScriptDocParam contained "\%(#\|\w\|\.\|:\|\/\)\+"
|
||||
syntax region javaScriptDocSeeTag contained matchgroup=javaScriptDocSeeTag start="{" end="}" contains=javaScriptDocTags
|
||||
|
||||
syntax case match
|
||||
endif "" JSDoc end
|
||||
|
||||
syntax case match
|
||||
|
||||
"" Syntax in the JavaScript code
|
||||
syntax match javaScriptSpecial "\\\d\d\d\|\\x\x\{2\}\|\\u\x\{4\}\|\\."
|
||||
syntax region javaScriptStringD start=+"+ skip=+\\\\\|\\$"+ end=+"+ contains=javaScriptSpecial,@htmlPreproc
|
||||
syntax region javaScriptStringS start=+'+ skip=+\\\\\|\\$'+ end=+'+ contains=javaScriptSpecial,@htmlPreproc
|
||||
syntax region javaScriptRegexpString start=+/\(\*\|/\)\@!+ skip=+\\\\\|\\/+ end=+/[gim]\{,3}+ contains=javaScriptSpecial,@htmlPreproc oneline
|
||||
syntax match javaScriptNumber /\<-\=\d\+L\=\>\|\<0[xX]\x\+\>/
|
||||
syntax match javaScriptFloat /\<-\=\%(\d\+\.\d\+\|\d\+\.\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>/
|
||||
syntax match javaScriptLabel /\(?\s*\)\@<!\<\w\+\(\s*:\)\@=/
|
||||
|
||||
"" JavaScript Prototype
|
||||
syntax keyword javaScriptPrototype prototype
|
||||
|
||||
"" Programm Keywords
|
||||
syntax keyword javaScriptSource import export
|
||||
syntax keyword javaScriptType const this undefined var void yield
|
||||
syntax keyword javaScriptOperator delete new in instanceof let typeof
|
||||
syntax keyword javaScriptBoolean true false
|
||||
syntax keyword javaScriptNull null
|
||||
|
||||
"" Statement Keywords
|
||||
syntax keyword javaScriptConditional if else
|
||||
syntax keyword javaScriptRepeat do while for
|
||||
syntax keyword javaScriptBranch break continue switch case default return
|
||||
syntax keyword javaScriptStatement try catch throw with finally
|
||||
|
||||
syntax keyword javaScriptGlobalObjects Array Boolean Date Function Infinity JavaArray JavaClass JavaObject JavaPackage Math Number NaN Object Packages RegExp String Undefined java netscape sun
|
||||
|
||||
syntax keyword javaScriptExceptions Error EvalError RangeError ReferenceError SyntaxError TypeError URIError
|
||||
|
||||
syntax keyword javaScriptFutureKeys abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public
|
||||
|
||||
"" DOM/HTML/CSS specified things
|
||||
|
||||
" DOM2 Objects
|
||||
syntax keyword javaScriptGlobalObjects DOMImplementation DocumentFragment Document Node NodeList NamedNodeMap CharacterData Attr Element Text Comment CDATASection DocumentType Notation Entity EntityReference ProcessingInstruction
|
||||
syntax keyword javaScriptExceptions DOMException
|
||||
|
||||
" DOM2 CONSTANT
|
||||
syntax keyword javaScriptDomErrNo INDEX_SIZE_ERR DOMSTRING_SIZE_ERR HIERARCHY_REQUEST_ERR WRONG_DOCUMENT_ERR INVALID_CHARACTER_ERR NO_DATA_ALLOWED_ERR NO_MODIFICATION_ALLOWED_ERR NOT_FOUND_ERR NOT_SUPPORTED_ERR INUSE_ATTRIBUTE_ERR INVALID_STATE_ERR SYNTAX_ERR INVALID_MODIFICATION_ERR NAMESPACE_ERR INVALID_ACCESS_ERR
|
||||
syntax keyword javaScriptDomNodeConsts ELEMENT_NODE ATTRIBUTE_NODE TEXT_NODE CDATA_SECTION_NODE ENTITY_REFERENCE_NODE ENTITY_NODE PROCESSING_INSTRUCTION_NODE COMMENT_NODE DOCUMENT_NODE DOCUMENT_TYPE_NODE DOCUMENT_FRAGMENT_NODE NOTATION_NODE
|
||||
|
||||
" HTML events and internal variables
|
||||
syntax case ignore
|
||||
syntax keyword javaScriptHtmlEvents onblur onclick oncontextmenu ondblclick onfocus onkeydown onkeypress onkeyup onmousedown onmousemove onmouseout onmouseover onmouseup onresize
|
||||
syntax case match
|
||||
|
||||
" Follow stuff should be highligh within a special context
|
||||
" While it can't be handled with context depended with Regex based highlight
|
||||
" So, turn it off by default
|
||||
if exists("javascript_enable_domhtmlcss")
|
||||
|
||||
" DOM2 things
|
||||
syntax match javaScriptDomElemAttrs contained /\%(nodeName\|nodeValue\|nodeType\|parentNode\|childNodes\|firstChild\|lastChild\|previousSibling\|nextSibling\|attributes\|ownerDocument\|namespaceURI\|prefix\|localName\|tagName\)\>/
|
||||
syntax match javaScriptDomElemFuncs contained /\%(insertBefore\|replaceChild\|removeChild\|appendChild\|hasChildNodes\|cloneNode\|normalize\|isSupported\|hasAttributes\|getAttribute\|setAttribute\|removeAttribute\|getAttributeNode\|setAttributeNode\|removeAttributeNode\|getElementsByTagName\|getAttributeNS\|setAttributeNS\|removeAttributeNS\|getAttributeNodeNS\|setAttributeNodeNS\|getElementsByTagNameNS\|hasAttribute\|hasAttributeNS\)\>/ nextgroup=javaScriptParen skipwhite
|
||||
" HTML things
|
||||
syntax match javaScriptHtmlElemAttrs contained /\%(className\|clientHeight\|clientLeft\|clientTop\|clientWidth\|dir\|id\|innerHTML\|lang\|length\|offsetHeight\|offsetLeft\|offsetParent\|offsetTop\|offsetWidth\|scrollHeight\|scrollLeft\|scrollTop\|scrollWidth\|style\|tabIndex\|title\)\>/
|
||||
syntax match javaScriptHtmlElemFuncs contained /\%(blur\|click\|focus\|scrollIntoView\|addEventListener\|dispatchEvent\|removeEventListener\|item\)\>/ nextgroup=javaScriptParen skipwhite
|
||||
|
||||
" CSS Styles in JavaScript
|
||||
syntax keyword javaScriptCssStyles contained color font fontFamily fontSize fontSizeAdjust fontStretch fontStyle fontVariant fontWeight letterSpacing lineBreak lineHeight quotes rubyAlign rubyOverhang rubyPosition
|
||||
syntax keyword javaScriptCssStyles contained textAlign textAlignLast textAutospace textDecoration textIndent textJustify textJustifyTrim textKashidaSpace textOverflowW6 textShadow textTransform textUnderlinePosition
|
||||
syntax keyword javaScriptCssStyles contained unicodeBidi whiteSpace wordBreak wordSpacing wordWrap writingMode
|
||||
syntax keyword javaScriptCssStyles contained bottom height left position right top width zIndex
|
||||
syntax keyword javaScriptCssStyles contained border borderBottom borderLeft borderRight borderTop borderBottomColor borderLeftColor borderTopColor borderBottomStyle borderLeftStyle borderRightStyle borderTopStyle borderBottomWidth borderLeftWidth borderRightWidth borderTopWidth borderColor borderStyle borderWidth borderCollapse borderSpacing captionSide emptyCells tableLayout
|
||||
syntax keyword javaScriptCssStyles contained margin marginBottom marginLeft marginRight marginTop outline outlineColor outlineStyle outlineWidth padding paddingBottom paddingLeft paddingRight paddingTop
|
||||
syntax keyword javaScriptCssStyles contained listStyle listStyleImage listStylePosition listStyleType
|
||||
syntax keyword javaScriptCssStyles contained background backgroundAttachment backgroundColor backgroundImage gackgroundPosition backgroundPositionX backgroundPositionY backgroundRepeat
|
||||
syntax keyword javaScriptCssStyles contained clear clip clipBottom clipLeft clipRight clipTop content counterIncrement counterReset cssFloat cursor direction display filter layoutGrid layoutGridChar layoutGridLine layoutGridMode layoutGridType
|
||||
syntax keyword javaScriptCssStyles contained marks maxHeight maxWidth minHeight minWidth opacity MozOpacity overflow overflowX overflowY verticalAlign visibility zoom cssText
|
||||
syntax keyword javaScriptCssStyles contained scrollbar3dLightColor scrollbarArrowColor scrollbarBaseColor scrollbarDarkShadowColor scrollbarFaceColor scrollbarHighlightColor scrollbarShadowColor scrollbarTrackColor
|
||||
|
||||
" Highlight ways
|
||||
syntax match javaScriptDotNotation "\." nextgroup=javaScriptPrototype,javaScriptDomElemAttrs,javaScriptDomElemFuncs,javaScriptHtmlElemAttrs,javaScriptHtmlElemFuncs
|
||||
syntax match javaScriptDotNotation "\.style\." nextgroup=javaScriptCssStyles
|
||||
|
||||
endif "DOM/HTML/CSS
|
||||
|
||||
"" end DOM/HTML/CSS specified things
|
||||
|
||||
|
||||
"" Code blocks
|
||||
syntax cluster javaScriptAll contains=javaScriptComment,javaScriptLineComment,javaScriptDocComment,javaScriptStringD,javaScriptStringS,javaScriptRegexpString,javaScriptNumber,javaScriptFloat,javaScriptLabel,javaScriptSource,javaScriptType,javaScriptOperator,javaScriptBoolean,javaScriptNull,javaScriptFunction,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptStatement,javaScriptGlobalObjects,javaScriptExceptions,javaScriptFutureKeys,javaScriptDomErrNo,javaScriptDomNodeConsts,javaScriptHtmlEvents,javaScriptDotNotation
|
||||
syntax region javaScriptBracket matchgroup=javaScriptBracket transparent start="\[" end="\]" contains=@javaScriptAll,javaScriptParensErrB,javaScriptParensErrC,javaScriptBracket,javaScriptParen,javaScriptBlock,@htmlPreproc
|
||||
syntax region javaScriptParen matchgroup=javaScriptParen transparent start="(" end=")" contains=@javaScriptAll,javaScriptParensErrA,javaScriptParensErrC,javaScriptParen,javaScriptBracket,javaScriptBlock,@htmlPreproc
|
||||
syntax region javaScriptBlock matchgroup=javaScriptBlock transparent start="{" end="}" contains=@javaScriptAll,javaScriptParensErrA,javaScriptParensErrB,javaScriptParen,javaScriptBracket,javaScriptBlock,@htmlPreproc
|
||||
|
||||
"" catch errors caused by wrong parenthesis
|
||||
syntax match javaScriptParensError ")\|}\|\]"
|
||||
syntax match javaScriptParensErrA contained "\]"
|
||||
syntax match javaScriptParensErrB contained ")"
|
||||
syntax match javaScriptParensErrC contained "}"
|
||||
|
||||
if main_syntax == "javascript"
|
||||
syntax sync clear
|
||||
syntax sync ccomment javaScriptComment minlines=200
|
||||
syntax sync match javaScriptHighlight grouphere javaScriptBlock /{/
|
||||
endif
|
||||
|
||||
"" Fold control
|
||||
if exists("b:javascript_fold")
|
||||
syntax match javaScriptFunction /\<function\>/ nextgroup=javaScriptFuncName skipwhite
|
||||
syntax match javaScriptOpAssign /=\@<!=/ nextgroup=javaScriptFuncBlock skipwhite skipempty
|
||||
syntax region javaScriptFuncName contained matchgroup=javaScriptFuncName start=/\%(\$\|\w\)*\s*(/ end=/)/ contains=javaScriptLineComment,javaScriptComment nextgroup=javaScriptFuncBlock skipwhite skipempty
|
||||
syntax region javaScriptFuncBlock contained matchgroup=javaScriptFuncBlock start="{" end="}" contains=@javaScriptAll,javaScriptParensErrA,javaScriptParensErrB,javaScriptParen,javaScriptBracket,javaScriptBlock fold
|
||||
|
||||
if &l:filetype=='javascript' && !&diff
|
||||
" Fold setting
|
||||
" Redefine the foldtext (to show a JS function outline) and foldlevel
|
||||
" only if the entire buffer is JavaScript, but not if JavaScript syntax
|
||||
" is embedded in another syntax (e.g. HTML).
|
||||
setlocal foldmethod=syntax
|
||||
setlocal foldlevel=4
|
||||
endif
|
||||
else
|
||||
syntax keyword javaScriptFunction function
|
||||
setlocal foldmethod<
|
||||
setlocal foldlevel<
|
||||
endif
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
if version >= 508 || !exists("did_javascript_syn_inits")
|
||||
if version < 508
|
||||
let did_javascript_syn_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
HiLink javaScriptComment Comment
|
||||
HiLink javaScriptLineComment Comment
|
||||
HiLink javaScriptDocComment Comment
|
||||
HiLink javaScriptCommentTodo Todo
|
||||
HiLink javaScriptCvsTag Function
|
||||
HiLink javaScriptDocTags Special
|
||||
HiLink javaScriptDocSeeTag Function
|
||||
HiLink javaScriptDocParam Function
|
||||
HiLink javaScriptStringS String
|
||||
HiLink javaScriptStringD String
|
||||
HiLink javaScriptRegexpString String
|
||||
HiLink javaScriptCharacter Character
|
||||
HiLink javaScriptPrototype Type
|
||||
HiLink javaScriptConditional Conditional
|
||||
HiLink javaScriptBranch Conditional
|
||||
HiLink javaScriptRepeat Repeat
|
||||
HiLink javaScriptStatement Statement
|
||||
HiLink javaScriptFunction Function
|
||||
HiLink javaScriptError Error
|
||||
HiLink javaScriptParensError Error
|
||||
HiLink javaScriptParensErrA Error
|
||||
HiLink javaScriptParensErrB Error
|
||||
HiLink javaScriptParensErrC Error
|
||||
HiLink javaScriptOperator Operator
|
||||
HiLink javaScriptType Type
|
||||
HiLink javaScriptNull Type
|
||||
HiLink javaScriptNumber Number
|
||||
HiLink javaScriptFloat Number
|
||||
HiLink javaScriptBoolean Boolean
|
||||
HiLink javaScriptLabel Label
|
||||
HiLink javaScriptSpecial Special
|
||||
HiLink javaScriptSource Special
|
||||
HiLink javaScriptGlobalObjects Special
|
||||
HiLink javaScriptExceptions Special
|
||||
|
||||
HiLink javaScriptDomErrNo Constant
|
||||
HiLink javaScriptDomNodeConsts Constant
|
||||
HiLink javaScriptDomElemAttrs Label
|
||||
HiLink javaScriptDomElemFuncs PreProc
|
||||
|
||||
HiLink javaScriptHtmlEvents Special
|
||||
HiLink javaScriptHtmlElemAttrs Label
|
||||
HiLink javaScriptHtmlElemFuncs PreProc
|
||||
|
||||
HiLink javaScriptCssStyles Label
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
" Define the htmlJavaScript for HTML syntax html.vim
|
||||
"syntax clear htmlJavaScript
|
||||
"syntax clear javaScriptExpression
|
||||
syntax cluster htmlJavaScript contains=@javaScriptAll,javaScriptBracket,javaScriptParen,javaScriptBlock,javaScriptParenError
|
||||
syntax cluster javaScriptExpression contains=@javaScriptAll,javaScriptBracket,javaScriptParen,javaScriptBlock,javaScriptParenError,@htmlPreproc
|
||||
|
||||
let b:current_syntax = "javascript"
|
||||
if main_syntax == 'javascript'
|
||||
unlet main_syntax
|
||||
endif
|
||||
|
||||
" vim: ts=4
|
@ -0,0 +1,305 @@
|
||||
" Vim syntax file
|
||||
" Language: LESS Cascading Style Sheets
|
||||
" Maintainer: Leaf Corcoran <leafot@gmail.com>
|
||||
" Modifier: Bryan J Swift <bryan@bryanjswift.com>
|
||||
" URL: http://leafo.net/lessphp/vim/less.vim
|
||||
" URL: http://gist.github.com/161047
|
||||
" Last Change: 2009 August 4
|
||||
" LESS by Leaf Corcoran
|
||||
" CSS2 by Nikolai Weibull
|
||||
" Full CSS2, HTML4 support by Yeti
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if !exists("main_syntax")
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
let main_syntax = 'less'
|
||||
endif
|
||||
|
||||
syn case ignore
|
||||
|
||||
|
||||
|
||||
syn keyword cssTagName abbr acronym address applet area a b base
|
||||
syn keyword cssTagName basefont bdo big blockquote body br button
|
||||
syn keyword cssTagName caption center cite code col colgroup dd del
|
||||
syn keyword cssTagName dfn dir div dl dt em fieldset font form frame
|
||||
syn keyword cssTagName frameset h1 h2 h3 h4 h5 h6 head hr html img i
|
||||
syn keyword cssTagName iframe img input ins isindex kbd label legend li
|
||||
syn keyword cssTagName link map menu meta noframes noscript ol optgroup
|
||||
syn keyword cssTagName option p param pre q s samp script select small
|
||||
syn keyword cssTagName span strike strong style sub sup tbody td
|
||||
syn keyword cssTagName textarea tfoot th thead title tr tt ul u var
|
||||
syn match cssTagName "\<table\>"
|
||||
syn match cssTagName "\*"
|
||||
|
||||
syn match cssTagName "@page\>" nextgroup=cssDefinition
|
||||
|
||||
syn match cssSelectorOp "[+>.]"
|
||||
syn match cssSelectorOp2 "[~|]\?=" contained
|
||||
syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
|
||||
|
||||
try
|
||||
syn match cssIdentifier "#[A-Za-zÀ-ÿ_@][A-Za-zÀ-ÿ0-9_@-]*"
|
||||
catch /^.*/
|
||||
syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
|
||||
endtry
|
||||
|
||||
syn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl
|
||||
syn keyword cssMediaType contained screen print aural braile embosed handheld projection ty tv all nextgroup=cssMediaComma,cssMediaBlock skipwhite skipnl
|
||||
syn match cssMediaComma "," nextgroup=cssMediaType skipwhite skipnl
|
||||
syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssError,cssComment,cssDefinition,cssURL,cssUnicodeEscape,cssIdentifier
|
||||
|
||||
syn match cssValueInteger "[-+]\=\d\+"
|
||||
syn match cssValueNumber "[-+]\=\d\+\(\.\d*\)\="
|
||||
syn match cssValueLength "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\)"
|
||||
|
||||
syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)"
|
||||
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)"
|
||||
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)"
|
||||
|
||||
syn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl
|
||||
syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr
|
||||
syn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>"
|
||||
syn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline
|
||||
syn keyword cssFontDescriptorAttr contained all
|
||||
syn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend
|
||||
syn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+"
|
||||
syn match cssUnicodeRange contained "U+\x\+-\x\+"
|
||||
|
||||
syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow
|
||||
" FIXME: These are actually case-insentivie too, but (a) specs recommend using
|
||||
" mixed-case (b) it's hard to highlight the word `Background' correctly in
|
||||
" all situations
|
||||
syn case match
|
||||
syn keyword cssColor contained ActiveBorder ActiveCaption AppWorkspace ButtonFace ButtonHighlight ButtonShadow ButtonText CaptionText GrayText Highlight HighlightText InactiveBorder InactiveCaption InactiveCaptionText InfoBackground InfoText Menu MenuText Scrollbar ThreeDDarkShadow ThreeDFace ThreeDHighlight ThreeDLightShadow ThreeDShadow Window WindowFrame WindowText Background
|
||||
syn case ignore
|
||||
syn match cssColor contained "\<transparent\>"
|
||||
syn match cssColor contained "\<white\>"
|
||||
syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>"
|
||||
syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>"
|
||||
"syn match cssColor contained "\<rgb\s*(\s*\d\+\(\.\d*\)\=%\=\s*,\s*\d\+\(\.\d*\)\=%\=\s*,\s*\d\+\(\.\d*\)\=%\=\s*)"
|
||||
syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline keepend
|
||||
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\)\s*(" end=")" oneline keepend
|
||||
|
||||
syn match cssImportant contained "!\s*important\>"
|
||||
|
||||
syn keyword cssCommonAttr contained auto none inherit
|
||||
syn keyword cssCommonAttr contained top bottom
|
||||
syn keyword cssCommonAttr contained medium normal
|
||||
|
||||
syn match cssFontProp contained "\<font\>\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\>\)\="
|
||||
syn match cssFontAttr contained "\<\(sans-\)\=\<serif\>"
|
||||
syn match cssFontAttr contained "\<small\>\(-\(caps\|caption\)\>\)\="
|
||||
syn match cssFontAttr contained "\<x\{1,2\}-\(large\|small\)\>"
|
||||
syn match cssFontAttr contained "\<message-box\>"
|
||||
syn match cssFontAttr contained "\<status-bar\>"
|
||||
syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>"
|
||||
syn keyword cssFontAttr contained cursive fantasy monospace italic oblique
|
||||
syn keyword cssFontAttr contained bold bolder lighter larger smaller
|
||||
syn keyword cssFontAttr contained icon menu
|
||||
syn match cssFontAttr contained "\<caption\>"
|
||||
syn keyword cssFontAttr contained large smaller larger
|
||||
syn keyword cssFontAttr contained narrower wider
|
||||
|
||||
syn keyword cssColorProp contained color
|
||||
syn match cssColorProp contained "\<background\(-\(color\|image\|attachment\|position\)\)\="
|
||||
syn keyword cssColorAttr contained center scroll fixed
|
||||
syn match cssColorAttr contained "\<repeat\(-[xy]\)\=\>"
|
||||
syn match cssColorAttr contained "\<no-repeat\>"
|
||||
|
||||
syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
|
||||
syn match cssTextAttr contained "\<line-through\>"
|
||||
syn match cssTextAttr contained "\<text-indent\>"
|
||||
syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
|
||||
syn keyword cssTextAttr contained underline overline blink sub super middle
|
||||
syn keyword cssTextAttr contained capitalize uppercase lowercase center justify baseline sub super
|
||||
|
||||
syn match cssBoxProp contained "\<\(margin\|padding\|border\)\(-\(top\|right\|bottom\|left\)\)\=\>"
|
||||
syn match cssBoxProp contained "\<border-\(\(\(top\|right\|bottom\|left\)-\)\=\(width\|color\|style\)\)\=\>"
|
||||
syn match cssBoxProp contained "\<\(width\|z-index\)\>"
|
||||
syn match cssBoxProp contained "\<\(min\|max\)-\(width\|height\)\>"
|
||||
syn keyword cssBoxProp contained width height float clear overflow clip visibility
|
||||
syn keyword cssBoxAttr contained thin thick both
|
||||
syn keyword cssBoxAttr contained dotted dashed solid double groove ridge inset outset
|
||||
syn keyword cssBoxAttr contained hidden visible scroll collapse
|
||||
|
||||
syn keyword cssGeneratedContentProp contained content quotes
|
||||
syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
|
||||
syn match cssGeneratedContentProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>"
|
||||
syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
|
||||
syn match cssAuralAttr contained "\<lower\>"
|
||||
syn match cssGeneratedContentAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>"
|
||||
syn match cssGeneratedContentAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>"
|
||||
syn match cssGeneratedContentAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>"
|
||||
syn keyword cssGeneratedContentAttr contained disc circle square hebrew armenian georgian
|
||||
syn keyword cssGeneratedContentAttr contained inside outside
|
||||
|
||||
syn match cssPagingProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
|
||||
syn keyword cssPagingProp contained size marks inside orphans widows
|
||||
syn keyword cssPagingAttr contained landscape portrait crop cross always avoid
|
||||
|
||||
syn keyword cssUIProp contained cursor
|
||||
syn match cssUIProp contained "\<outline\(-\(width\|style\|color\)\)\=\>"
|
||||
syn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>"
|
||||
syn keyword cssUIAttr contained default crosshair pointer move wait help
|
||||
syn keyword cssUIAttr contained thin thick
|
||||
syn keyword cssUIAttr contained dotted dashed solid double groove ridge inset outset
|
||||
syn keyword cssUIAttr contained invert
|
||||
|
||||
syn match cssRenderAttr contained "\<marker\>"
|
||||
syn match cssRenderProp contained "\<\(display\|marker-offset\|unicode-bidi\|white-space\|list-item\|run-in\|inline-table\)\>"
|
||||
syn keyword cssRenderProp contained position top bottom direction
|
||||
syn match cssRenderProp contained "\<\(left\|right\)\>"
|
||||
syn keyword cssRenderAttr contained block inline compact
|
||||
syn match cssRenderAttr contained "\<table\(-\(row-gorup\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
|
||||
syn keyword cssRenderAttr contained static relative absolute fixed
|
||||
syn keyword cssRenderAttr contained ltr rtl embed bidi-override pre nowrap
|
||||
syn match cssRenderAttr contained "\<bidi-override\>"
|
||||
|
||||
syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
|
||||
syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numerals\)\)\=\)\>"
|
||||
syn keyword cssAuralProp contained volume during azimuth elevation stress richness
|
||||
syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
|
||||
syn keyword cssAuralAttr contained silent
|
||||
syn match cssAuralAttr contained "\<spell-out\>"
|
||||
syn keyword cssAuralAttr contained non mix
|
||||
syn match cssAuralAttr contained "\<\(left\|right\)-side\>"
|
||||
syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
|
||||
syn keyword cssAuralAttr contained leftwards rightwards behind
|
||||
syn keyword cssAuralAttr contained below level above higher
|
||||
syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>"
|
||||
syn keyword cssAuralAttr contained faster slower
|
||||
syn keyword cssAuralAttr contained male female child code digits continuous
|
||||
|
||||
syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\|speak-header\)\>"
|
||||
syn keyword cssTableAttr contained fixed collapse separate show hide once always
|
||||
|
||||
|
||||
|
||||
syn match lessComment "//.*$" contains=@Spell
|
||||
syn match lessVariable "@[A-Za-z_-][A-Za-z0-9_-]*" contained
|
||||
syn region lessVariableDefinition start="^@" end=";" contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssDefinition,cssClassName,cssTagName,cssIdentifier,lessComment,lessVariable,lessFunction
|
||||
|
||||
" captures both the definition and the call
|
||||
syn region lessFunction matchgroup=lessFuncDef start="@[A-Za-z_-][A-Za-z0-9_-]*(" end=")" contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssDefinition,cssClassName,cssTagName,cssIdentifier,lessComment,lessVariable,lessFunction
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
" FIXME: This allows cssMediaBlock before the semicolon, which is wrong.
|
||||
syn region cssInclude start="@import" end=";" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType
|
||||
syn match cssBraces contained "[{}]"
|
||||
syn match cssError contained "{@<>"
|
||||
syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssDefinition,cssClassName,cssTagName,cssIdentifier,lessComment,lessVariable,lessFunction
|
||||
" syn match cssBraceError "}"
|
||||
|
||||
syn match cssPseudoClass ":\S*" contains=cssPseudoClassId,cssUnicodeEscape
|
||||
syn keyword cssPseudoClassId contained link visited active hover focus before after left right
|
||||
syn match cssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>"
|
||||
syn region cssPseudoClassLang matchgroup=cssPseudoClassId start=":lang(" end=")" oneline
|
||||
|
||||
syn region cssComment start="/\*" end="\*/" contains=@Spell
|
||||
|
||||
syn match cssUnicodeEscape "\\\x\{1,6}\s\?"
|
||||
syn match cssSpecialCharQQ +\\"+ contained
|
||||
syn match cssSpecialCharQ +\\'+ contained
|
||||
syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
|
||||
syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
|
||||
syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
|
||||
|
||||
|
||||
|
||||
|
||||
if main_syntax == "css"
|
||||
syn sync minlines=10
|
||||
endif
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
if version >= 508 || !exists("did_less_syn_inits")
|
||||
if version < 508
|
||||
let did_less_syn_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink lessComment Comment
|
||||
HiLink lessVariable Special
|
||||
HiLink lessFuncDef Function
|
||||
HiLink cssComment Comment
|
||||
HiLink cssTagName Statement
|
||||
HiLink cssSelectorOp Special
|
||||
HiLink cssSelectorOp2 Special
|
||||
HiLink cssFontProp StorageClass
|
||||
HiLink cssColorProp storageClass
|
||||
HiLink cssTextProp StorageClass
|
||||
HiLink cssBoxProp StorageClass
|
||||
HiLink cssRenderProp StorageClass
|
||||
HiLink cssAuralProp StorageClass
|
||||
HiLink cssRenderProp StorageClass
|
||||
HiLink cssGeneratedContentProp StorageClass
|
||||
HiLink cssPagingProp StorageClass
|
||||
HiLink cssTableProp StorageClass
|
||||
HiLink cssUIProp StorageClass
|
||||
HiLink cssFontAttr Type
|
||||
HiLink cssColorAttr Type
|
||||
HiLink cssTextAttr Type
|
||||
HiLink cssBoxAttr Type
|
||||
HiLink cssRenderAttr Type
|
||||
HiLink cssAuralAttr Type
|
||||
HiLink cssGeneratedContentAttr Type
|
||||
HiLink cssPagingAttr Type
|
||||
HiLink cssTableAttr Type
|
||||
HiLink cssUIAttr Type
|
||||
HiLink cssCommonAttr Type
|
||||
HiLink cssPseudoClassId PreProc
|
||||
HiLink cssPseudoClassLang Constant
|
||||
HiLink cssValueLength Number
|
||||
HiLink cssValueInteger Number
|
||||
HiLink cssValueNumber Number
|
||||
HiLink cssValueAngle Number
|
||||
HiLink cssValueTime Number
|
||||
HiLink cssValueFrequency Number
|
||||
HiLink cssFunction Constant
|
||||
HiLink cssURL String
|
||||
HiLink cssFunctionName Function
|
||||
HiLink cssColor Constant
|
||||
HiLink cssIdentifier Function
|
||||
HiLink cssInclude Include
|
||||
HiLink cssImportant Special
|
||||
HiLink cssBraces SpecialChar
|
||||
HiLink cssBraceError Error
|
||||
HiLink cssError Error
|
||||
HiLink cssInclude Include
|
||||
HiLink cssUnicodeEscape Special
|
||||
HiLink cssStringQQ String
|
||||
HiLink cssStringQ String
|
||||
HiLink cssMedia Special
|
||||
HiLink cssMediaType Special
|
||||
HiLink cssMediaComma Normal
|
||||
HiLink cssFontDescriptor Special
|
||||
HiLink cssFontDescriptorFunction Constant
|
||||
HiLink cssFontDescriptorProp StorageClass
|
||||
HiLink cssFontDescriptorAttr Type
|
||||
HiLink cssUnicodeRange Constant
|
||||
HiLink cssClassName Function
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "less"
|
||||
|
||||
if main_syntax == 'less'
|
||||
unlet main_syntax
|
||||
endif
|
||||
|
||||
|
||||
" vim: ts=8
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,19 @@
|
||||
" Syntax highlighting for snippet files (used for snipMate.vim)
|
||||
" Hopefully this should make snippets a bit nicer to write!
|
||||
syn match snipComment '^#.*'
|
||||
syn match placeHolder '\${\d\+\(:.\{-}\)\=}' contains=snipCommand
|
||||
syn match tabStop '\$\d\+'
|
||||
syn match snipCommand '`.\{-}`'
|
||||
syn match snippet '^snippet.*' transparent contains=multiSnipText,snipKeyword
|
||||
syn match multiSnipText '\S\+ \zs.*' contained
|
||||
syn match snipKeyword '^snippet'me=s+8 contained
|
||||
syn match snipError "^[^#s\t].*$"
|
||||
|
||||
hi link snipComment Comment
|
||||
hi link multiSnipText String
|
||||
hi link snipKeyword Keyword
|
||||
hi link snipComment Comment
|
||||
hi link placeHolder Special
|
||||
hi link tabStop Special
|
||||
hi link snipCommand String
|
||||
hi link snipError Error
|
@ -0,0 +1,21 @@
|
||||
filetype plugin on
|
||||
filetype indent on
|
||||
|
||||
syntax enable
|
||||
|
||||
set autoindent
|
||||
set smartindent
|
||||
|
||||
set expandtab
|
||||
set smarttab
|
||||
set tabstop=4
|
||||
set shiftwidth=4
|
||||
|
||||
set autoread
|
||||
set showmatch
|
||||
set mat=2
|
||||
set ruler
|
||||
set nohls
|
||||
set incsearch
|
||||
|
||||
au BufNewFile,BufRead *.less set filetype=less
|
Loading…
Reference in New Issue