switch to neobundle
This commit is contained in:
parent
6cef5c101f
commit
5a1c95140f
57 changed files with 9901 additions and 1958 deletions
300
.vim/bundle/neobundle.vim/autoload/neobundle/init.vim
Normal file
300
.vim/bundle/neobundle.vim/autoload/neobundle/init.vim
Normal file
|
|
@ -0,0 +1,300 @@
|
|||
"=============================================================================
|
||||
" FILE: init.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu at gmail.com>
|
||||
" Copyright (C) 2010 http://github.com/gmarik
|
||||
" License: MIT license {{{
|
||||
" Permission is hereby granted, free of charge, to any person obtaining
|
||||
" a copy of this software and associated documentation files (the
|
||||
" "Software"), to deal in the Software without restriction, including
|
||||
" without limitation the rights to use, copy, modify, merge, publish,
|
||||
" distribute, sublicense, and/or sell copies of the Software, and to
|
||||
" permit persons to whom the Software is furnished to do so, subject to
|
||||
" the following conditions:
|
||||
"
|
||||
" The above copyright notice and this permission notice shall be included
|
||||
" in all copies or substantial portions of the Software.
|
||||
"
|
||||
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
" }}}
|
||||
"=============================================================================
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
function! neobundle#init#_rc(path) abort "{{{
|
||||
let path =
|
||||
\ neobundle#util#substitute_path_separator(
|
||||
\ neobundle#util#expand(a:path))
|
||||
if path =~ '/$'
|
||||
let path = path[: -2]
|
||||
endif
|
||||
|
||||
if path == ''
|
||||
call neobundle#util#print_error(
|
||||
\ 'neobundle#rc() argument is empty.')
|
||||
return
|
||||
endif
|
||||
|
||||
call neobundle#set_neobundle_dir(path)
|
||||
|
||||
" Join to the tail in runtimepath.
|
||||
let rtp = neobundle#get_rtp_dir()
|
||||
execute 'set rtp-='.fnameescape(rtp)
|
||||
let rtps = neobundle#util#split_rtp(&runtimepath)
|
||||
let n = index(rtps, $VIMRUNTIME)
|
||||
if n < 0
|
||||
call neobundle#util#print_error(
|
||||
\ 'Invalid runtimepath is detected.')
|
||||
call neobundle#util#print_error(
|
||||
\ 'Please check your .vimrc.')
|
||||
return
|
||||
endif
|
||||
let &runtimepath = neobundle#util#join_rtp(
|
||||
\ insert(rtps, rtp, n-1), &runtimepath, rtp)
|
||||
|
||||
augroup neobundle
|
||||
autocmd!
|
||||
augroup END
|
||||
|
||||
call neobundle#config#init()
|
||||
call neobundle#autoload#init()
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#init#_bundle(bundle) abort "{{{
|
||||
if (!has_key(a:bundle, 'type') && get(a:bundle, 'local', 0))
|
||||
\ || get(a:bundle, 'type', '') ==# 'nosync'
|
||||
" Default type.
|
||||
let a:bundle.type = 'none'
|
||||
endif
|
||||
if !has_key(a:bundle, 'type')
|
||||
call neobundle#installer#error(
|
||||
\ printf('Failed parse name "%s" and args %s',
|
||||
\ a:bundle.orig_name, string(a:bundle.orig_opts)))
|
||||
return {}
|
||||
endif
|
||||
|
||||
let bundle = {
|
||||
\ 'uri' : '',
|
||||
\ 'script_type' : '',
|
||||
\ 'rev' : '',
|
||||
\ 'rtp' : '',
|
||||
\ 'depends' : [],
|
||||
\ 'fetch' : 0,
|
||||
\ 'force' : 0,
|
||||
\ 'gui' : 0,
|
||||
\ 'terminal' : 0,
|
||||
\ 'autoload' : {},
|
||||
\ 'hooks' : {},
|
||||
\ 'external_commands' : {},
|
||||
\ 'build_commands': {},
|
||||
\ 'description' : '',
|
||||
\ 'dummy_commands' : [],
|
||||
\ 'dummy_mappings' : [],
|
||||
\ 'sourced' : 0,
|
||||
\ 'disabled' : 0,
|
||||
\ 'local' : 0,
|
||||
\ 'focus' : 0,
|
||||
\ 'verbose' : 0,
|
||||
\ 'orig_name' : '',
|
||||
\ 'vim_version' : '',
|
||||
\ 'orig_opts' : {},
|
||||
\ 'base' : neobundle#get_neobundle_dir(),
|
||||
\ 'install_rev' : '',
|
||||
\ 'install_process_timeout'
|
||||
\ : g:neobundle#install_process_timeout,
|
||||
\ 'refcnt' : 1,
|
||||
\ 'frozen' : 0,
|
||||
\ 'on_i' : 0,
|
||||
\ 'on_ft' : [],
|
||||
\ 'on_cmd' : [],
|
||||
\ 'on_func' : [],
|
||||
\ 'on_map' : [],
|
||||
\ 'on_path' : [],
|
||||
\ 'on_source' : [],
|
||||
\ 'pre_cmd' : [],
|
||||
\ 'pre_func' : [],
|
||||
\ }
|
||||
call extend(bundle, a:bundle)
|
||||
|
||||
if !has_key(bundle, 'name')
|
||||
let bundle.name = neobundle#util#name_conversion(bundle.orig_name)
|
||||
endif
|
||||
|
||||
if !has_key(bundle, 'normalized_name')
|
||||
let bundle.normalized_name = substitute(
|
||||
\ fnamemodify(bundle.name, ':r'),
|
||||
\ '\c^vim[_-]\|[_-]vim$', '', 'g')
|
||||
endif
|
||||
if !has_key(bundle.orig_opts, 'name') &&
|
||||
\ g:neobundle#enable_name_conversion
|
||||
" Use normalized name.
|
||||
let bundle.name = bundle.normalized_name
|
||||
endif
|
||||
|
||||
if !has_key(bundle, 'directory')
|
||||
let bundle.directory = bundle.name
|
||||
|
||||
if bundle.rev != ''
|
||||
let bundle.directory .= '_' . substitute(bundle.rev,
|
||||
\ '[^[:alnum:]_-]', '_', 'g')
|
||||
endif
|
||||
endif
|
||||
|
||||
if bundle.base[0] == '~'
|
||||
let bundle.base = neobundle#util#expand(bundle.base)
|
||||
endif
|
||||
if bundle.base[-1] == '/' || bundle.base[-1] == '\'
|
||||
" Chomp.
|
||||
let bundle.base = bundle.base[: -2]
|
||||
endif
|
||||
|
||||
let bundle.path = isdirectory(bundle.uri) ?
|
||||
\ bundle.uri : bundle.base.'/'.bundle.directory
|
||||
|
||||
" Check relative path.
|
||||
if bundle.rtp !~ '^\%([~/]\|\a\+:\)'
|
||||
let bundle.rtp = bundle.path.'/'.bundle.rtp
|
||||
endif
|
||||
if bundle.rtp[0] == '~'
|
||||
let bundle.rtp = neobundle#util#expand(bundle.rtp)
|
||||
endif
|
||||
if bundle.rtp[-1] == '/' || bundle.rtp[-1] == '\'
|
||||
" Chomp.
|
||||
let bundle.rtp = bundle.rtp[: -2]
|
||||
endif
|
||||
if bundle.normalized_name ==# 'neobundle' || bundle.fetch
|
||||
" Do not add runtimepath.
|
||||
let bundle.rtp = ''
|
||||
endif
|
||||
|
||||
if bundle.script_type != ''
|
||||
" Add script_type.
|
||||
" Note: To check by neobundle#config#is_installed().
|
||||
let bundle.path .= '/' . bundle.script_type
|
||||
endif
|
||||
|
||||
if !has_key(bundle, 'augroup')
|
||||
let bundle.augroup = bundle.normalized_name
|
||||
endif
|
||||
|
||||
" Convert old name
|
||||
if has_key(bundle, 'stay_same')
|
||||
let bundle.frozen = bundle.stay_same
|
||||
endif
|
||||
call s:init_lazy(bundle)
|
||||
|
||||
" Parse depends.
|
||||
if !empty(bundle.depends)
|
||||
call s:init_depends(bundle)
|
||||
endif
|
||||
|
||||
if type(bundle.disabled) == type('')
|
||||
let bundle.disabled = eval(bundle.disabled)
|
||||
endif
|
||||
|
||||
let bundle.disabled = bundle.disabled
|
||||
\ || (bundle.gui && !has('gui_running'))
|
||||
\ || (bundle.terminal && has('gui_running'))
|
||||
\ || (bundle.vim_version != ''
|
||||
\ && s:check_version(bundle.vim_version))
|
||||
\ || (!empty(bundle.external_commands)
|
||||
\ && neobundle#config#check_commands(bundle.external_commands))
|
||||
|
||||
return bundle
|
||||
endfunction"}}}
|
||||
|
||||
function! s:init_lazy(bundle) abort "{{{
|
||||
let bundle = a:bundle
|
||||
|
||||
" Auto set autoload keys.
|
||||
for key in filter([
|
||||
\ 'filetypes', 'filename_patterns',
|
||||
\ 'commands', 'functions', 'mappings',
|
||||
\ 'insert', 'explorer',
|
||||
\ 'command_prefix', 'function_prefixes',
|
||||
\ ], 'has_key(bundle, v:val)')
|
||||
let bundle.autoload[key] = bundle[key]
|
||||
call remove(bundle, key)
|
||||
endfor
|
||||
|
||||
" Auto set on keys.
|
||||
for [key, value] in items(filter({
|
||||
\ 'filetypes' : 'on_ft',
|
||||
\ 'filename_patterns' : 'on_path',
|
||||
\ 'commands' : 'on_cmd',
|
||||
\ 'functions' : 'on_func',
|
||||
\ 'mappings' : 'on_map',
|
||||
\ 'insert' : 'on_i',
|
||||
\ 'explorer' : 'on_path',
|
||||
\ 'on_source' : 'on_source',
|
||||
\ 'command_prefix' : 'pre_cmd',
|
||||
\ 'function_prefixes' : 'pre_func',
|
||||
\ }, 'has_key(bundle.autoload, v:key)'))
|
||||
|
||||
let bundle[value] = (key ==# 'explorer'
|
||||
\ && type(bundle.autoload[key]) == type(0)
|
||||
\ && bundle.autoload[key] == 1) ? '.*' : bundle.autoload[key]
|
||||
endfor
|
||||
|
||||
if empty(bundle.pre_cmd)
|
||||
let bundle.pre_cmd = substitute(bundle.normalized_name, '[_-]', '', 'g')
|
||||
endif
|
||||
|
||||
" Auto convert2list.
|
||||
for key in filter([
|
||||
\ 'on_ft', 'on_path', 'on_cmd',
|
||||
\ 'on_func', 'on_map',
|
||||
\ 'on_source', 'pre_cmd', 'pre_func',
|
||||
\ ], "type(bundle[v:val]) != type([])
|
||||
\")
|
||||
let bundle[key] = [bundle[key]]
|
||||
endfor
|
||||
|
||||
if !has_key(bundle, 'lazy')
|
||||
" Set lazy flag automatically
|
||||
let bundle.lazy = bundle.on_i
|
||||
\ || !empty(filter(['on_ft', 'on_path', 'on_cmd',
|
||||
\ 'on_func', 'on_map', 'on_source'],
|
||||
\ '!empty(bundle[v:val])'))
|
||||
endif
|
||||
endfunction"}}}
|
||||
|
||||
function! s:init_depends(bundle) abort "{{{
|
||||
let bundle = a:bundle
|
||||
let _ = []
|
||||
|
||||
for depend in neobundle#util#convert2list(bundle.depends)
|
||||
if type(depend) == type('')
|
||||
let depend = string(depend)
|
||||
endif
|
||||
|
||||
let depend_bundle = type(depend) == type({}) ?
|
||||
\ depend : neobundle#parser#bundle(depend, 1)
|
||||
let depend_bundle.lazy = bundle.lazy
|
||||
call add(_, depend_bundle)
|
||||
|
||||
unlet depend
|
||||
endfor
|
||||
|
||||
let bundle.depends = _
|
||||
endfunction"}}}
|
||||
|
||||
function! s:check_version(min_version) abort "{{{
|
||||
let versions = split(a:min_version, '\.')
|
||||
let major = get(versions, 0, 0)
|
||||
let minor = get(versions, 1, 0)
|
||||
let patch = get(versions, 2, 0)
|
||||
let min_version = major * 100 + minor
|
||||
return v:version < min_version ||
|
||||
\ (patch != 0 && v:version == min_version && !has('patch'.patch))
|
||||
endfunction"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue