Skip to content
Browse files

Added autocomplete popup and updated bundles

  • Loading branch information...
1 parent 7777e7b commit ff8bf23f27288839584b1b9ffe414db11c7724ed Tammer Saleh committed Dec 12, 2011
Showing with 1,888 additions and 209 deletions.
  1. +101 −0 vim/bundle/AutoComplPop/README
  2. +431 −0 vim/bundle/AutoComplPop/autoload/acp.vim
  3. +298 −0 vim/bundle/AutoComplPop/doc/acp.jax
  4. +512 −0 vim/bundle/AutoComplPop/doc/acp.txt
  5. +44 −0 vim/bundle/AutoComplPop/doc/tags-ja
  6. +170 −0 vim/bundle/AutoComplPop/plugin/acp.vim
  7. +235 −64 vim/bundle/Gist.vim/autoload/gist.vim
  8. +0 −37 vim/bundle/snipmate.vim/doc/tags
  9. +9 −0 vim/bundle/supertab/doc/supertab.txt
  10. +19 −0 vim/bundle/supertab/plugin/supertab.vim
  11. +0 −6 vim/bundle/textile.vim/doc/tags
  12. +4 −4 vim/bundle/vim-cucumber/ftplugin/cucumber.vim
  13. +1 −1 vim/bundle/vim-endwise/README.markdown
  14. +5 −2 vim/bundle/vim-fugitive/plugin/fugitive.vim
  15. +0 −1 vim/bundle/vim-git/doc/tags
  16. +2 −2 vim/bundle/vim-git/syntax/gitcommit.vim
  17. +3 −0 vim/bundle/vim-git/syntax/gitrebase.vim
  18. +1 −0 vim/bundle/vim-javascript/ftdetect/javascript.vim
  19. +2 −2 vim/bundle/vim-markdown/syntax/markdown.vim
  20. +0 −50 vim/bundle/vim-matchit/doc/tags
  21. +20 −2 vim/bundle/vim-rails/autoload/rails.vim
  22. +5 −0 vim/bundle/vim-rails/doc/rails.txt
  23. +1 −1 vim/bundle/vim-rails/plugin/rails.vim
  24. +0 −3 vim/bundle/vim-ruby/doc/tags
  25. +6 −0 vim/bundle/vim-ruby/etc/examples/indent/continuation_blocks.rb
  26. +9 −9 vim/bundle/vim-ruby/etc/examples/indent/nested_hashes.rb
  27. +1 −1 vim/bundle/vim-ruby/ftplugin/ruby.vim
  28. +2 −2 vim/bundle/vim-ruby/indent/ruby.vim
  29. +5 −5 vim/bundle/vim-surround/doc/surround.txt
  30. +0 −17 vim/bundle/vim-surround/doc/tags
  31. +1 −0 vim/bundle/vim-vividchalk/colors/vividchalk.vim
  32. +1 −0 vim/update_bundles
View
101 vim/bundle/AutoComplPop/README
@@ -0,0 +1,101 @@
+This is a mirror of http://www.vim.org/scripts/script.php?script_id=1879
+
+Repository:
+ https://bitbucket.org/ns9tks/vim-autocomplpop/
+
+Issues:
+ http://bitbucket.org/ns9tks/vim-autocomplpop/issues/
+
+Download latest(development) version
+ https://bitbucket.org/ns9tks/vim-autocomplpop/get/tip.zip
+
+==============================================================================
+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.
+
+
+==============================================================================
+
View
431 vim/bundle/AutoComplPop/autoload/acp.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:
View
298 vim/bundle/AutoComplPop/doc/acp.jax
@@ -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:
+
View
512 vim/bundle/AutoComplPop/doc/acp.txt
@@ -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:
+
View
44 vim/bundle/AutoComplPop/doc/tags-ja
@@ -0,0 +1,44 @@
+!_TAG_FILE_ENCODING utf-8 //
+:AcpDisable acp.jax /*:AcpDisable*
+:AcpEnable acp.jax /*:AcpEnable*
+:AcpLock acp.jax /*:AcpLock*
+:AcpUnlock acp.jax /*:AcpUnlock*
+acp acp.jax /*acp*
+acp-about acp.jax /*acp-about*
+acp-author acp.jax /*acp-author*
+acp-commands acp.jax /*acp-commands*
+acp-contact acp.jax /*acp-contact*
+acp-installation acp.jax /*acp-installation*
+acp-introduction acp.jax /*acp-introduction*
+acp-options acp.jax /*acp-options*
+acp-perl-omni acp.jax /*acp-perl-omni*
+acp-snipMate acp.jax /*acp-snipMate*
+acp-usage acp.jax /*acp-usage*
+acp.txt acp.jax /*acp.txt*
+autocomplpop acp.jax /*autocomplpop*
+g:acp_behavior acp.jax /*g:acp_behavior*
+g:acp_behavior-command acp.jax /*g:acp_behavior-command*
+g:acp_behavior-completefunc acp.jax /*g:acp_behavior-completefunc*
+g:acp_behavior-meets acp.jax /*g:acp_behavior-meets*
+g:acp_behavior-onPopupClose acp.jax /*g:acp_behavior-onPopupClose*
+g:acp_behavior-repeat acp.jax /*g:acp_behavior-repeat*
+g:acp_behaviorCssOmniPropertyLength acp.jax /*g:acp_behaviorCssOmniPropertyLength*
+g:acp_behaviorCssOmniValueLength acp.jax /*g:acp_behaviorCssOmniValueLength*
+g:acp_behaviorFileLength acp.jax /*g:acp_behaviorFileLength*
+g:acp_behaviorHtmlOmniLength acp.jax /*g:acp_behaviorHtmlOmniLength*
+g:acp_behaviorKeywordCommand acp.jax /*g:acp_behaviorKeywordCommand*
+g:acp_behaviorKeywordIgnores acp.jax /*g:acp_behaviorKeywordIgnores*
+g:acp_behaviorKeywordLength acp.jax /*g:acp_behaviorKeywordLength*
+g:acp_behaviorPerlOmniLength acp.jax /*g:acp_behaviorPerlOmniLength*
+g:acp_behaviorPythonOmniLength acp.jax /*g:acp_behaviorPythonOmniLength*
+g:acp_behaviorRubyOmniMethodLength acp.jax /*g:acp_behaviorRubyOmniMethodLength*
+g:acp_behaviorRubyOmniSymbolLength acp.jax /*g:acp_behaviorRubyOmniSymbolLength*
+g:acp_behaviorSnipmateLength acp.jax /*g:acp_behaviorSnipmateLength*
+g:acp_behaviorUserDefinedFunction acp.jax /*g:acp_behaviorUserDefinedFunction*
+g:acp_behaviorUserDefinedMeets acp.jax /*g:acp_behaviorUserDefinedMeets*
+g:acp_behaviorXmlOmniLength acp.jax /*g:acp_behaviorXmlOmniLength*
+g:acp_completeOption acp.jax /*g:acp_completeOption*
+g:acp_completeoptPreview acp.jax /*g:acp_completeoptPreview*
+g:acp_enableAtStartup acp.jax /*g:acp_enableAtStartup*
+g:acp_ignorecaseOption acp.jax /*g:acp_ignorecaseOption*
+g:acp_mappingDriven acp.jax /*g:acp_mappingDriven*
View
170 vim/bundle/AutoComplPop/plugin/acp.vim
@@ -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:
View
299 vim/bundle/Gist.vim/autoload/gist.vim
@@ -1,8 +1,8 @@
"=============================================================================
" File: gist.vim
" Author: Yasuhiro Matsumoto <mattn.jp@gmail.com>
-" Last Change: 18-Oct-2011.
-" Version: 5.5
+" Last Change: 22-Nov-2011.
+" Version: 5.7
" WebPage: http://github.com/mattn/gist-vim
" License: BSD
" Usage:
@@ -209,15 +209,26 @@ function! s:GistList(user, token, gistls, page)
endif
setlocal foldmethod=manual
+ let old_undolevels = &undolevels
+ set undolevels=-1
let oldlines = []
if g:gist_show_privates
+ redraw
echon 'Login to gist... '
silent %d _
let res = s:GistGetPage(url, a:user, '', '-L')
silent put =res.content
else
silent %d _
- exec 'silent r! curl -s' g:gist_curl_options url
+ exec 'silent r! curl -f -s' g:gist_curl_options url
+ endif
+
+ if v:shell_error != 0
+ let &undolevels = old_undolevels
+ bw!
+ redraw
+ echohl ErrorMsg | echomsg 'User not found' | echohl None
+ return
endif
let oldgdefault = &gdefault
@@ -245,6 +256,7 @@ function! s:GistList(user, token, gistls, page)
call append(0, oldlines)
$put='more...'
+ let &undolevels = old_undolevels
let b:user = a:user
let b:token = a:token
@@ -259,12 +271,15 @@ function! s:GistList(user, token, gistls, page)
setlocal foldmethod=expr
setlocal foldexpr=getline(v:lnum)=~'^\\(gist:\\\|more\\)'?'>1':'='
setlocal foldtext=getline(v:foldstart)
+ redraw
+ noh
+ echo ""
endfunction
function! s:GistGetFileName(gistid)
let url = 'https://gist.github.com/'.a:gistid
let res = system('curl -s '.g:gist_curl_options.' '.url)
- let res = substitute(res, '^.*<a href="/raw/[^"]\+/\([^"]\+\)".*$', '\1', '')
+ let res = matchstr(res, '^.*<a href="/raw/[^"]\+/\zs\([^"]\+\)\ze".*$')
if res =~ '/'
return ''
else
@@ -274,19 +289,16 @@ endfunction
function! s:GistDetectFiletype(gistid)
let url = 'https://gist.github.com/'.a:gistid
- let mx = '^.*<div class=".\{-}type-\([^"]\+\)">.*$'
+ let mx = '^.*<div class=".\{-}type-\zs\([^"]\+\)\ze">.*$'
let res = system('curl -s '.g:gist_curl_options.' '.url)
- let res = substitute(matchstr(res, mx), mx, '\1', '')
- let res = substitute(res, '.*\(\.[^\.]\+\)$', '\1', '')
+ let res = matchstr(res, mx)
+ let res = matchstr(res, '.*\zs\(\.[^\.]\+\)\ze$')
let res = substitute(res, '-', '', 'g')
- " TODO: more filetype detection that is specified in html.
- if res == 'bat' | let res = 'dosbatch' | endif
- if res == 'as' | let res = 'actionscript' | endif
- if res == 'bash' | let res = 'sh' | endif
- if res == 'cl' | let res = 'lisp' | endif
- if res == 'rb' | let res = 'ruby' | endif
- if res == 'viml' | let res = 'vim' | endif
- if res == 'plain' || res == 'text' | let res = '' | endif
+ if has_key(s:extmap, res)
+ let res = s:extmap[res]
+ else
+ let res = ''
+ endif
if res =~ '^\.'
silent! exec "doau BufRead *".res
@@ -316,10 +328,20 @@ function! s:GistGet(user, token, gistid, clipboard)
else
exec 'silent noautocmd split' s:bufprefix.a:gistid
endif
+ let old_undolevels = &undolevels
+ set undolevels=-1
filetype detect
silent %d _
- exec 'silent 0r! curl -s' g:gist_curl_options url
+ exec 'silent 0r! curl -f -s' g:gist_curl_options url
+ if v:shell_error != 0
+ let &undolevels = old_undolevels
+ bw!
+ redraw
+ echohl ErrorMsg | echomsg 'Gist not found' | echohl None
+ return
+ endif
$delete _
+ let &undolevels = old_undolevels
setlocal buftype=acwrite bufhidden=delete noswapfile
setlocal nomodified
doau StdinReadPost <buffer>
@@ -339,9 +361,9 @@ endfunction
function! s:GistListAction()
let line = getline('.')
- let mx = '^gist:\(\w\+\).*'
+ let mx = '^gist:\zs\(\w\+\)\ze.*'
if line =~# mx
- let gistid = substitute(line, mx, '\1', '')
+ let gistid = matchstr(line, mx)
call s:GistGet(g:github_user, g:github_token, gistid, 0)
return
endif
@@ -358,10 +380,10 @@ function! s:GistUpdate(user, token, content, gistid, gistnm)
else
let name = a:gistnm
endif
- let namemx = '^[^.]\+\(.\+\)$'
+ let namemx = '^[^.]\+\zs\(.\+\)\ze$'
let ext = ''
if name =~ namemx
- let ext = substitute(name, namemx, '\1', '')
+ let ext = matchstr(name, namemx)
endif
let query = [
\ '_method=put',
@@ -381,40 +403,42 @@ function! s:GistUpdate(user, token, content, gistid, gistnm)
let action = a:gistid
if a:gistid !~ '^\d\+$'
+ redraw
echon 'Login to gist... '
let res = s:GistGetPage('https://gist.github.com/'.a:gistid, a:user, '', '')
if (!len(res))
echohl ErrorMsg | echomsg 'Wrong password? no response received from github trying to update ' . a:gistid | echohl None
return
endif
- let mx = '^.*<form action="/gists/\([^"]\+\)".*$'
- let action = substitute(matchstr(res.content, mx), mx, '\1', '')
- let mx = '^.* name="authenticity_token" type="hidden" value="\([^"]\+\)".*$'
- let token = substitute(matchstr(res.content, mx), mx, '\1', '')
+ let mx = '^.*<form action="/gists/\zs\([^"]\+\)\ze".*$'
+ let action = matchstr(res.content, mx)
+ let mx = '^.* name="authenticity_token" type="hidden" value="\zs\([^"]\+\)\ze".*$'
+ let token = matchstr(res.content, mx)
unlet res
let squery .= '&authenticity_token='.token
endif
let file = tempname()
call writefile([squery], file)
+ redraw
echon 'Updating it to gist... '
let quote = &shellxquote == '"' ? "'" : '"'
let url = 'https://gist.github.com/gists/'.action
let res = system('curl -i '.g:gist_curl_options.' -d @'.quote.file.quote.' '.url)
call delete(file)
let headers = split(res, '\(\r\?\n\|\r\n\?\)')
- let location = matchstr(headers, '^Location: ')
- let location = substitute(location, '^[^:]\+: ', '', '')
- if len(location) > 0 && location =~ '^\(http\|https\):\/\/gist\.github\.com\/'
+ let loc = matchstr(headers, '^Location:')
+ let loc = matchstr(loc, '^[^:]\+: \zs.*')
+ if len(loc) > 0 && loc =~ '^\(http\|https\):\/\/gist\.github\.com\/'
setlocal nomodified
redraw
- echo 'Done: '.location
+ echo 'Done: '.loc
else
- let message = matchstr(headers, '^Status: ')
- let message = substitute(message, '^[^:]\+: [0-9]\+ ', '', '')
+ let message = matchstr(headers, '^Status:')
+ let message = matchstr(message, '^[^:]\+:\s*[0-9]\+\s*\zs\(.*\)')
echohl ErrorMsg | echomsg 'Edit failed: '.message | echohl None
endif
- return location
+ return loc
endfunction
function! s:GistGetPage(url, user, param, opt)
@@ -436,8 +460,8 @@ function! s:GistGetPage(url, user, param, opt)
return
endif
let url = 'https://gist.github.com/login?return_to=gist'
- let res = system('curl -L -s '.g:gist_curl_options.' -c '.quote.cookie_file.quote.' '.quote.url.quote)
- let token = substitute(res, '^.* name="authenticity_token" type="hidden" value="\([^"]\+\)".*$', '\1', '')
+ let res = system('curl -f -L -s '.g:gist_curl_options.' -c '.quote.cookie_file.quote.' '.quote.url.quote)
+ let token = matchstr(res, '^.* name="authenticity_token" type="hidden" value="\zs\([^"]\+\)\ze".*$')
let query = [
\ 'authenticity_token=%s',
@@ -453,22 +477,23 @@ function! s:GistGetPage(url, user, param, opt)
unlet query
let file = tempname()
- let command = 'curl -s '.g:gist_curl_options.' -i'
+ let command = 'curl -f -s '.g:gist_curl_options.' -i'
let command .= ' -b '.quote.cookie_file.quote
let command .= ' -c '.quote.cookie_file.quote
let command .= ' '.quote.'https://gist.github.com/session'.quote
let command .= ' -d @' . quote.file.quote
call writefile([squery], file)
let res = system(command)
call delete(file)
- let res = matchstr(split(res, '\(\r\?\n\|\r\n\?\)'), '^Location: ')
- let res = substitute(res, '^[^:]\+: ', '', '')
- if len(res) == 0
+ let headers = split(res, '\(\r\?\n\|\r\n\?\)')
+ let loc = matchstr(headers, '^Location:')
+ let loc = matchstr(loc, '^[^:]\+: \zs.*')
+ if len(loc) == 0
call delete(cookie_file)
return ''
endif
endif
- let command = 'curl -s '.g:gist_curl_options.' -i '.a:opt
+ let command = 'curl -f -s '.g:gist_curl_options.' -i '.a:opt
if len(a:param)
let command .= ' -d '.quote.a:param.quote
endif
@@ -489,22 +514,23 @@ function! s:GistGetPage(url, user, param, opt)
endfunction
function! s:GistDelete(user, token, gistid)
+ redraw
echon 'Deleting gist... '
let res = s:GistGetPage('https://gist.github.com/'.a:gistid, a:user, '', '')
if (!len(res))
echohl ErrorMsg | echomsg 'Wrong password? no response received from github trying to delete ' . a:gistid | echohl None
return
endif
- let mx = '^.* name="authenticity_token" type="hidden" value="\([^"]\+\)".*$'
- let token = substitute(matchstr(res.content, mx), mx, '\1', '')
+ let mx = '^.* name="authenticity_token" type="hidden" value="\zs\([^"]\+\)\ze".*$'
+ let token = matchstr(res.content, mx)
if len(token) > 0
let res = s:GistGetPage('https://gist.github.com/delete/'.a:gistid, a:user, '_method=delete&authenticity_token='.token, '')
if len(res.content) > 0
redraw
echo 'Done: '
else
- let message = matchstr(res.header, '^Status: ')
- let message = substitute(message, '^[^:]\+: [0-9]\+ ', '', '')
+ let message = matchstr(res.headers, '^Status:')
+ let message = matchstr(message, '^[^:]\+:\s*[0-9]\+\s*\zs\(.*\)')
echohl ErrorMsg | echomsg 'Delete failed: '.message | echohl None
endif
else
@@ -558,7 +584,16 @@ function! s:GistPost(user, token, content, private)
endfor
let ext = expand('%:e')
- let ext = len(ext) ? '.'.ext : ''
+ if ext == ''
+ for k in keys(s:extmap)
+ if s:extmap[k] == &ft
+ let ext = k
+ break
+ endif
+ endfor
+ else
+ let ext = '.'.ext
+ endif
let name = expand('%:t')
let query = [
@@ -587,23 +622,24 @@ function! s:GistPost(user, token, content, private)
let file = tempname()
call writefile([squery], file)
+ redraw
echon 'Posting it to gist... '
let quote = &shellxquote == '"' ? "'" : '"'
let url = 'https://gist.github.com/gists'
- let res = system('curl -i '.g:gist_curl_options.' -d @'.quote.file.quote.' '.url)
+ let res = system('curl -f -i '.g:gist_curl_options.' -d @'.quote.file.quote.' '.url)
call delete(file)
let headers = split(res, '\(\r\?\n\|\r\n\?\)')
- let location = matchstr(headers, '^Location: ')
- let location = substitute(location, '^[^:]\+: ', '', '')
- if len(location) > 0 && location =~ '^\(http\|https\):\/\/gist\.github\.com\/'
+ let loc = matchstr(headers, '^Location:')
+ let loc = matchstr(loc, '^[^:]\+: \zs.*')
+ if len(loc) > 0 && loc =~ '^\(http\|https\):\/\/gist\.github\.com\/'
redraw
- echo 'Done: '.location
+ echo 'Done: '.loc
else
- let message = matchstr(headers, '^Status: ')
- let message = substitute(message, '^[^:]\+: [0-9]\+ ', '', '')
+ let message = matchstr(headers, '^Status:')
+ let message = matchstr(message, '^[^:]\+:\s*[0-9]\+\s*\zs\(.*\)')
echohl ErrorMsg | echomsg 'Post failed: '.message | echohl None
endif
- return location
+ return loc
endfunction
function! s:GistPostBuffers(user, token, private)
@@ -656,9 +692,10 @@ function! s:GistPostBuffers(user, token, private)
let url = 'https://gist.github.com/gists'
let res = system('curl -i '.g:gist_curl_options.' -d @'.quote.file.quote.' '.url)
call delete(file)
- let res = matchstr(split(res, '\(\r\?\n\|\r\n\?\)'), '^Location: ')
- let res = substitute(res, '^.*: ', '', '')
- if len(res) > 0 && res =~ '^\(http\|https\):\/\/gist\.github\.com\/'
+ let headers = split(res, '\(\r\?\n\|\r\n\?\)')
+ let loc = matchstr(headers, '^Location:')
+ let loc = matchstr(loc, '^[^:]\+: \zs.*')
+ if len(loc) > 0 && loc =~ '^\(http\|https\):\/\/gist\.github\.com\/'
redraw
echo 'Done: '.res
else
@@ -668,6 +705,7 @@ function! s:GistPostBuffers(user, token, private)
endfunction
function! gist#Gist(count, line1, line2, ...)
+ redraw
if !exists('g:github_user')
let g:github_user = substitute(system('git config --global github.user'), "\n", '', '')
if strlen(g:github_user) == 0
@@ -703,8 +741,8 @@ function! gist#Gist(count, line1, line2, ...)
let clipboard = 0
let deletepost = 0
let editpost = 0
- let listmx = '^\(-l\|--list\)\s*\([^\s]\+\)\?$'
- let bufnamemx = '^' . s:bufprefix .'\([0-9a-f]\+\)$'
+ let listmx = '^\%(-l\|--list\)\s*\([^\s]\+\)\?$'
+ let bufnamemx = '^' . s:bufprefix .'\zs\([0-9a-f]\+\)\ze$'
let args = (a:0 > 0) ? split(a:1, ' ') : []
for arg in args
@@ -716,7 +754,7 @@ function! gist#Gist(count, line1, line2, ...)
else
let gistls = g:github_user
endif
- elseif arg == '--abandon\C'
+ elseif arg == '--abandon'
call s:GistGetPage('', '', '', '')
return
elseif arg =~ '^\(-m\|--multibuffer\)$\C'
@@ -732,18 +770,18 @@ function! gist#Gist(count, line1, line2, ...)
let clipboard = 1
elseif arg =~ '^\(-d\|--delete\)$\C' && bufname =~ bufnamemx
let deletepost = 1
- let gistid = substitute(bufname, bufnamemx, '\1', '')
+ let gistid = matchstr(bufname, bufnamemx)
elseif arg =~ '^\(-e\|--edit\)$\C' && bufname =~ bufnamemx
let editpost = 1
- let gistid = substitute(bufname, bufnamemx, '\1', '')
+ let gistid = matchstr(bufname, bufnamemx)
elseif arg =~ '^\(-f\|--fork\)$\C' && bufname =~ bufnamemx
- let gistid = substitute(bufname, bufnamemx, '\1', '')
+ let gistid = matchstr(bufname, bufnamemx)
let res = s:GistGetPage("https://gist.github.com/fork/".gistid, g:github_user, '', '')
- let loc = filter(res.header, 'v:val =~ "^Location:"')[0]
- let loc = substitute(loc, '^[^:]\+: ', '', '')
- let mx = '^https://gist.github.com/\([0-9a-z]\+\)$'
+ let loc = matchstr(res.header, '^Location:')
+ let loc = matchstr(loc, '^[^:]\+: \zs.*')
+ let mx = '^https://gist.github.com/\zs\([0-9a-z]\+\)$'
if loc =~ mx
- let gistid = substitute(loc, mx, '\1', '')
+ let gistid = matchstr(loc, mx)
else
echohl ErrorMsg | echomsg 'Fork failed' | echohl None
return
@@ -829,6 +867,139 @@ function! gist#Gist(count, line1, line2, ...)
return 1
endfunction
+let s:extmap = {
+\".adb": "ada",
+\".ahk": "ahk",
+\".arc": "arc",
+\".as": "actionscript",
+\".asm": "asm",
+\".asp": "asp",
+\".aw": "php",
+\".b": "b",
+\".bat": "bat",
+\".befunge": "befunge",
+\".bmx": "bmx",
+\".boo": "boo",
+\".c-objdump": "c-objdump",
+\".c": "c",
+\".cfg": "cfg",
+\".cfm": "cfm",
+\".ck": "ck",
+\".cl": "cl",
+\".clj": "clj",
+\".cmake": "cmake",
+\".coffee": "coffee",
+\".cpp": "cpp",
+\".cppobjdump": "cppobjdump",
+\".cs": "csharp",
+\".css": "css",
+\".cw": "cw",
+\".d-objdump": "d-objdump",
+\".d": "d",
+\".darcspatch": "darcspatch",
+\".diff": "diff",
+\".duby": "duby",
+\".dylan": "dylan",
+\".e": "e",
+\".ebuild": "ebuild",
+\".eclass": "eclass",
+\".el": "lisp",
+\".erb": "erb",
+\".erl": "erlang",
+\".f90": "f90",
+\".factor": "factor",
+\".feature": "feature",
+\".fs": "fs",
+\".fy": "fy",
+\".go": "go",
+\".groovy": "groovy",
+\".gs": "gs",
+\".gsp": "gsp",
+\".haml": "haml",
+\".hs": "haskell",
+\".html": "html",
+\".hx": "hx",
+\".ik": "ik",
+\".ino": "ino",
+\".io": "io",
+\".j": "j",
+\".java": "java",
+\".js": "javascript",
+\".json": "json",
+\".jsp": "jsp",
+\".kid": "kid",
+\".lhs": "lhs",
+\".lisp": "lisp",
+\".ll": "ll",
+\".lua": "lua",
+\".ly": "ly",
+\".m": "objc",
+\".mak": "mak",
+\".man": "man",
+\".mao": "mao",
+\".matlab": "matlab",
+\".md": "md",
+\".minid": "minid",
+\".ml": "ml",
+\".moo": "moo",
+\".mu": "mu",
+\".mustache": "mustache",
+\".mxt": "mxt",
+\".myt": "myt",
+\".n": "n",
+\".nim": "nim",
+\".nu": "nu",
+\".numpy": "numpy",
+\".objdump": "objdump",
+\".ooc": "ooc",
+\".parrot": "parrot",
+\".pas": "pas",
+\".pasm": "pasm",
+\".pd": "pd",
+\".phtml": "phtml",
+\".pir": "pir",
+\".pl": "perl",
+\".po": "po",
+\".py": "python",
+\".pytb": "pytb",
+\".pyx": "pyx",
+\".r": "r",
+\".raw": "raw",
+\".rb": "ruby",
+\".rhtml": "rhtml",
+\".rkt": "rkt",
+\".rs": "rs",
+\".rst": "rst",
+\".s": "s",
+\".sass": "sass",
+\".sc": "sc",
+\".scala": "scala",
+\".scm": "scheme",
+\".scpt": "scpt",
+\".scss": "scss",
+\".self": "self",
+\".sh": "sh",
+\".sml": "sml",
+\".sql": "sql",
+\".st": "smalltalk",
+\".tcl": "tcl",
+\".tcsh": "tcsh",
+\".tex": "tex",
+\".textile": "textile",
+\".tpl": "smarty",
+\".twig": "twig",
+\".txt" : "text",
+\".v": "verilog",
+\".vala": "vala",
+\".vb": "vbnet",
+\".vhd": "vhdl",
+\".vim": "vim",
+\".weechatlog": "weechatlog",
+\".xml": "xml",
+\".xq": "xquery",
+\".xs": "xs",
+\".yml": "yaml",
+\}
let &cpo = s:save_cpo
unlet s:save_cpo
View
37 vim/bundle/snipmate.vim/doc/tags
@@ -1,37 +0,0 @@
-'snippets' snipMate.txt /*'snippets'*
-.snippet snipMate.txt /*.snippet*
-.snippets snipMate.txt /*.snippets*
-ExtractSnips() snipMate.txt /*ExtractSnips()*
-ExtractSnipsFile() snipMate.txt /*ExtractSnipsFile()*
-Filename() snipMate.txt /*Filename()*
-ReloadAllSnippets() snipMate.txt /*ReloadAllSnippets()*
-ReloadSnippets() snipMate.txt /*ReloadSnippets()*
-ResetAllSnippets() snipMate.txt /*ResetAllSnippets()*
-ResetSnippets() snipMate.txt /*ResetSnippets()*
-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-license snipMate.txt /*snipMate-license*
-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*
View
9 vim/bundle/supertab/doc/supertab.txt
@@ -304,4 +304,13 @@ g:SuperTabCrMapping (default value: 1)
When enabled, <cr> will cancel completion mode preserving the current text.
+
+Close the preview window on <cr> *supertab-crclosepreview*
+ *g:SuperTabCrClosePreview*
+
+g:SuperTabCrClosePreview (default value: 0)
+
+When enabled, <cr> will close the completion preview window if open. Note,
+|g:SuperTabCrMapping| must also be enabled.
+
vim:tw=78:ts=8:ft=help:norl:
View
19 vim/bundle/supertab/plugin/supertab.vim
@@ -123,6 +123,10 @@ set cpo&vim
let g:SuperTabCrMapping = 1
endif
+ if !exists("g:SuperTabCrClosePreview")
+ let g:SuperTabCrClosePreview = 0
+ endif
+
" }}}
" Script Variables {{{
@@ -709,6 +713,21 @@ endfunction " }}}
" ugly hack to let other <cr> mappings for other plugins cooperate
" with supertab
let b:supertab_pumwasvisible = 1
+
+ " close the preview window if configured to do so
+ if &completeopt =~ 'preview' && g:SuperTabCrClosePreview
+ let preview = 0
+ for bufnum in tabpagebuflist()
+ if getwinvar(bufwinnr(bufnum), '&previewwindow')
+ let preview = 1
+ break
+ endif
+ endfor
+ if preview
+ pclose
+ endif
+ endif
+
return "\<c-y>"
endif
View
6 vim/bundle/textile.vim/doc/tags
@@ -1,6 +0,0 @@
-textile-changelog textile.txt /*textile-changelog*
-textile-commands textile.txt /*textile-commands*
-textile-config textile.txt /*textile-config*
-textile-credits textile.txt /*textile-credits*
-textile-requirements textile.txt /*textile-requirements*
-textile.txt textile.txt /*textile.txt*
View
8 vim/bundle/vim-cucumber/ftplugin/cucumber.vim
@@ -18,10 +18,10 @@ let b:undo_ftplugin = "setl fo< com< cms< ofu<"
let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??')
if !exists("g:no_plugin_maps") && !exists("g:no_cucumber_maps")
- nmap <silent><buffer> <C-]> :<C-U>exe <SID>jump('edit',v:count)<CR>
- nmap <silent><buffer> <C-W>] :<C-U>exe <SID>jump('split',v:count)<CR>
- nmap <silent><buffer> <C-W><C-]> :<C-U>exe <SID>jump('split',v:count)<CR>
- nmap <silent><buffer> <C-W>} :<C-U>exe <SID>jump('pedit',v:count)<CR>
+ nnoremap <silent><buffer> <C-]> :<C-U>exe <SID>jump('edit',v:count)<CR>
+ nnoremap <silent><buffer> <C-W>] :<C-U>exe <SID>jump('split',v:count)<CR>
+ nnoremap <silent><buffer> <C-W><C-]> :<C-U>exe <SID>jump('split',v:count)<CR>
+ nnoremap <silent><buffer> <C-W>} :<C-U>exe <SID>jump('pedit',v:count)<CR>
let b:undo_ftplugin .= "| sil! nunmap <buffer> <C-]>| sil! nunmap <buffer> <C-W>]| sil! nunmap <buffer> <C-W><C-]>| sil! nunmap <buffer> <C-W>}"
endif
View
2 vim/bundle/vim-endwise/README.markdown
@@ -40,7 +40,7 @@ Self-Promotion
Like endwise.vim? Follow the repository on
[GitHub](https://github.com/tpope/vim-endwise) and vote for it on
-[vim.org](http://www.vim.org/scripts/script.php?script_id=2136). And if
+[vim.org](http://www.vim.org/scripts/script.php?script_id=2386). And if
you're feeling especially charitable, follow [tpope](http://tpo.pe/) on
[Twitter](http://twitter.com/tpope) and
[GitHub](https://github.com/tpope).
View
7 vim/bundle/vim-fugitive/plugin/fugitive.vim
@@ -116,7 +116,7 @@ function! s:ExtractGitDir(path) abort
let ofn = ""
let nfn = fn
while fn != ofn
- if filereadable(fn . '/.git/HEAD')
+ if isdirectory(fn) && filereadable(fn . '/.git/HEAD')
return s:sub(simplify(fnamemodify(fn . '/.git',':p')),'\W$','')
elseif fn =~ '\.git$' && filereadable(fn . '/HEAD')
return s:sub(simplify(fnamemodify(fn,':p')),'\W$','')
@@ -1228,6 +1228,9 @@ function! s:diffthis()
let w:fugitive_diff_restore .= &l:wrap ? ' wrap' : ' nowrap'
let w:fugitive_diff_restore .= ' foldmethod=' . &l:foldmethod
let w:fugitive_diff_restore .= ' foldcolumn=' . &l:foldcolumn
+ if has('cursorbind')
+ let w:fugitive_diff_restore .= (&l:cursorbind ? ' ' : ' no') . 'cursorbind'
+ endif
diffthis
endif
endfunction
@@ -1873,7 +1876,7 @@ function! s:BufReadIndex()
endtry
set ft=gitcommit
endif
- setlocal ro noma nomod nomodeline bufhidden=wipe
+ setlocal ro noma nomod nomodeline noswapfile bufhidden=wipe
call s:JumpInit()
nunmap <buffer> P
nunmap <buffer> ~
View
1 vim/bundle/vim-git/doc/tags
@@ -1 +0,0 @@
-ft-gitcommit-plugin ft-gitcommit-plugin.txt /*ft-gitcommit-plugin*
View
4 vim/bundle/vim-git/syntax/gitcommit.vim
@@ -15,7 +15,7 @@ if has("spell")
endif
syn include @gitcommitDiff syntax/diff.vim
-syn region gitcommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^$\|^#\@=/ contains=@gitcommitDiff
+syn region gitcommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^\%(diff --\|$\|#\)\@=/ fold contains=@gitcommitDiff
syn match gitcommitFirstLine "\%^[^#].*" nextgroup=gitcommitBlank skipnl
syn match gitcommitSummary "^.\{0,50\}" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
@@ -34,7 +34,7 @@ syn match gitcommitNoChanges "\%(^# \)\@<=No changes$" contained containedin=g
syn region gitcommitUntracked start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold
syn match gitcommitUntrackedFile "\t\@<=.*" contained
-syn region gitcommitDiscarded start=/^# Changed but not updated:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold
+syn region gitcommitDiscarded start=/^# Change\%(s not staged for commit\|d but not updated\):/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold
syn region gitcommitSelected start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold
syn region gitcommitUnmerged start=/^# Unmerged paths:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUnmergedType fold
View
3 vim/bundle/vim-git/syntax/gitrebase.vim
@@ -16,7 +16,9 @@ syn match gitrebaseReword "\v^r%(eword)=>" nextgroup=gitrebaseCommit skipwhite
syn match gitrebaseEdit "\v^e%(dit)=>" nextgroup=gitrebaseCommit skipwhite
syn match gitrebaseSquash "\v^s%(quash)=>" nextgroup=gitrebaseCommit skipwhite
syn match gitrebaseFixup "\v^f%(ixup)=>" nextgroup=gitrebaseCommit skipwhite
+syn match gitrebaseExec "\v^%(x|exec)>" nextgroup=gitrebaseCommand skipwhite
syn match gitrebaseSummary ".*" contains=gitrebaseHash contained
+syn match gitrebaseCommand ".*" contained
syn match gitrebaseComment