switch to dein
This commit is contained in:
parent
624b11997b
commit
f439474339
48 changed files with 163 additions and 9950 deletions
89
.vim/bundle/installer.sh
Normal file
89
.vim/bundle/installer.sh
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
#!/bin/sh
|
||||
# Standalone installer for Unixs
|
||||
# Original version is created by shoma2da
|
||||
# https://github.com/shoma2da/neobundle_installer
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "You must specify the installation directory!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Convert the installation directory to absolute path
|
||||
case $1 in
|
||||
/*) PLUGIN_DIR=$1;;
|
||||
*) PLUGIN_DIR=$PWD/$1;;
|
||||
esac
|
||||
INSTALL_DIR="${PLUGIN_DIR}/repos/github.com/Shougo/dein.vim"
|
||||
echo "Install to \"$INSTALL_DIR\"..."
|
||||
if [ -e "$INSTALL_DIR" ]; then
|
||||
echo "\"$INSTALL_DIR\" already exists!"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# check git command
|
||||
type git || {
|
||||
echo 'Please install git or update your path to include the git executable!'
|
||||
exit 1
|
||||
}
|
||||
echo ""
|
||||
|
||||
# make plugin dir and fetch dein
|
||||
if ! [ -e "$INSTALL_DIR" ]; then
|
||||
echo "Begin fetching dein..."
|
||||
mkdir -p "$PLUGIN_DIR"
|
||||
git clone https://github.com/Shougo/dein.vim "$INSTALL_DIR"
|
||||
echo "Done."
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# write initial setting for .vimrc
|
||||
echo "Please add the following settings for dein to the top of your vimrc (Vim) or init.vim (NeoVim) file:"
|
||||
{
|
||||
echo ""
|
||||
echo ""
|
||||
echo "\"dein Scripts-----------------------------"
|
||||
echo "if &compatible"
|
||||
echo " set nocompatible \" Be iMproved"
|
||||
echo "endif"
|
||||
echo ""
|
||||
echo "\" Required:"
|
||||
echo "set runtimepath+=$INSTALL_DIR"
|
||||
echo ""
|
||||
echo "\" Required:"
|
||||
echo "if dein#load_state('$PLUGIN_DIR')"
|
||||
echo " call dein#begin('$PLUGIN_DIR')"
|
||||
echo ""
|
||||
echo " \" Let dein manage dein"
|
||||
echo " \" Required:"
|
||||
echo " call dein#add('$INSTALL_DIR')"
|
||||
echo ""
|
||||
echo " \" Add or remove your plugins here:"
|
||||
echo " call dein#add('Shougo/neosnippet.vim')"
|
||||
echo " call dein#add('Shougo/neosnippet-snippets')"
|
||||
echo ""
|
||||
echo " \" You can specify revision/branch/tag."
|
||||
echo " call dein#add('Shougo/vimshell', { 'rev': '3787e5' })"
|
||||
echo ""
|
||||
echo " \" Required:"
|
||||
echo " call dein#end()"
|
||||
echo " call dein#save_state()"
|
||||
echo "endif"
|
||||
echo ""
|
||||
echo "\" Required:"
|
||||
echo "filetype plugin indent on"
|
||||
echo "syntax enable"
|
||||
echo ""
|
||||
echo "\" If you want to install not installed plugins on startup."
|
||||
echo "\"if dein#check_install()"
|
||||
echo "\" call dein#install()"
|
||||
echo "\"endif"
|
||||
echo ""
|
||||
echo "\"End dein Scripts-------------------------"
|
||||
echo ""
|
||||
echo ""
|
||||
}
|
||||
|
||||
echo "Done."
|
||||
|
||||
echo "Complete setup dein!"
|
||||
1
.vim/bundle/neobundle.vim/.gitignore
vendored
1
.vim/bundle/neobundle.vim/.gitignore
vendored
|
|
@ -1 +0,0 @@
|
|||
doc/tags
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
language: viml
|
||||
|
||||
sudo: false
|
||||
|
||||
before_script:
|
||||
- vim --version
|
||||
- git clone https://github.com/syngan/vim-vimlint /tmp/vim-vimlint
|
||||
- git clone https://github.com/ynkdir/vim-vimlparser /tmp/vim-vimlparser
|
||||
- git clone https://github.com/thinca/vim-themis
|
||||
|
||||
script:
|
||||
- sh /tmp/vim-vimlint/bin/vimlint.sh -l /tmp/vim-vimlint -p /tmp/vim-vimlparser -e EVL103=1 -e EVL102.l:_=1 autoload
|
||||
- make test
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
Copyright (C) 2010 http://github.com/gmarik
|
||||
|
||||
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.
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
test: vim-themis
|
||||
vim-themis/bin/themis --reporter spec test/commands.vim test/parse.vim test/sample.vim test/tsort.vim test/toml.vim
|
||||
vim-themis/bin/themis --reporter spec test/source.vim
|
||||
vim-themis/bin/themis --reporter spec test/lock.vim
|
||||
|
||||
# Use existing vim-themis install from ~/.vim, or clone it.
|
||||
vim-themis:
|
||||
existing=$(firstword $(wildcard ~/.vim/*bundle*/*themis*/plugin/themis.vim)); \
|
||||
if [ -n "$$existing" ]; then \
|
||||
( cd test && ln -s $$(dirname $$(dirname $$existing)) vim-themis ); \
|
||||
else \
|
||||
git clone https://github.com/thinca/vim-themis vim-themis; \
|
||||
fi
|
||||
|
||||
.PHONY: test
|
||||
|
|
@ -1,148 +0,0 @@
|
|||
[](https://waffle.io/Shougo/neobundle.vim)
|
||||
|
||||
**Note**: Active developement on NeoBundle has stopped. The only future changes will be bug fixes.
|
||||
|
||||
Please see [Dein.vim](https://github.com/Shougo/dein.vim) -- A faster, well-tested plugin manager for Vim and Neovim. It can do everything NeoBundle does, including asynchronous installs.
|
||||
|
||||
## About
|
||||
|
||||
NeoBundle is a next generation Vim plugin manager. This plugin is based on
|
||||
[Vundle](https://github.com/gmarik/vundle), but I renamed and added tons of
|
||||
features, while Vundle tends to stay simple.
|
||||
|
||||
Requirements:
|
||||
* Vim 7.2.051 or above.
|
||||
* "git" command in $PATH (if you want to install github or vim.org plugins)
|
||||
|
||||
Recommends:
|
||||
* [vimproc](https://github.com/Shougo/vimproc.vim) if you want to
|
||||
install/update asynchronously in Unite interface.
|
||||
|
||||
Note: In :NeoBundleUpdate/:NeoBundleInstall commands, you can parallel update by
|
||||
vimproc, but you cannot do other work unlike Unite interface.
|
||||
|
||||
Note: Neobundle is not a stable plugin manager. If you want a stable plugin
|
||||
manager, you should use Vundle plugin. It well works widely and it is more
|
||||
tested. If you want to use extended features, you can use neobundle.
|
||||
|
||||
Vundle features: Stable, simple, good for beginners
|
||||
|
||||
Neobundle features: Early development (may break compatibility), very complex,
|
||||
good for plugin power users (for example, 50+ plugins and over 1000 lines
|
||||
.vimrc, ...)
|
||||
|
||||
Note: Neobunle only accepts "https" or "ssh".
|
||||
https://glyph.twistedmatrix.com/2015/11/editor-malware.html
|
||||
|
||||
## How it works
|
||||
|
||||
Plugins are defined in NeoBundle by calling `NeoBundle '<plugin repository
|
||||
location>'`. NeoBundle assumes Github as the default location for plugins, so
|
||||
for most plugins you can simply use `NeoBundle 'username/plugin'` rather than
|
||||
using the absolute URL of the plugin. These calls should be made in your
|
||||
.vimrc file. Once you have defined these, you must call `NeoBundleInstall`,
|
||||
and NeoBundle will clone all of the repos into the desired folder (generally
|
||||
`~/.vim/bundle`) and load them into Vim. If you want to update these
|
||||
repositories, simply call `NeoBundleUpdate`.
|
||||
|
||||
A few other useful commands:
|
||||
- `:NeoBundleList` - list configured bundles
|
||||
- `:NeoBundleInstall(!)` - install (update) bundles
|
||||
|
||||
Refer to `:help neobundle` for more examples and for a full list of commands.
|
||||
|
||||
## Quick start
|
||||
|
||||
### 1. Install NeoBundle
|
||||
|
||||
#### If you are using Unix/Linux or Mac OS X.
|
||||
|
||||
1. Run below script.
|
||||
|
||||
```
|
||||
$ curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh > install.sh
|
||||
$ sh ./install.sh
|
||||
```
|
||||
Complete.
|
||||
|
||||
#### If you want to install manually or you are using Windows.
|
||||
|
||||
1. Setup NeoBundle:
|
||||
|
||||
```
|
||||
$ mkdir ~/.vim/bundle
|
||||
$ git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim
|
||||
```
|
||||
|
||||
2. Configure bundles:
|
||||
|
||||
Sample `.vimrc`:
|
||||
|
||||
```vim
|
||||
" Note: Skip initialization for vim-tiny or vim-small.
|
||||
if 0 | endif
|
||||
|
||||
if &compatible
|
||||
set nocompatible " Be iMproved
|
||||
endif
|
||||
|
||||
" Required:
|
||||
set runtimepath+=~/.vim/bundle/neobundle.vim/
|
||||
|
||||
" Required:
|
||||
call neobundle#begin(expand('~/.vim/bundle/'))
|
||||
|
||||
" Let NeoBundle manage NeoBundle
|
||||
" Required:
|
||||
NeoBundleFetch 'Shougo/neobundle.vim'
|
||||
|
||||
" My Bundles here:
|
||||
" Refer to |:NeoBundle-examples|.
|
||||
" Note: You don't set neobundle setting in .gvimrc!
|
||||
|
||||
call neobundle#end()
|
||||
|
||||
" Required:
|
||||
filetype plugin indent on
|
||||
|
||||
" If there are uninstalled bundles found on startup,
|
||||
" this will conveniently prompt you to install them.
|
||||
NeoBundleCheck
|
||||
```
|
||||
|
||||
### 2. Install configured bundles
|
||||
|
||||
Launch `vim`, run `:NeoBundleInstall` or `:Unite neobundle/install` (required
|
||||
unite.vim) Or Command run `bin/neoinstall` or `vim +NeoBundleInstall +qall`
|
||||
|
||||
|
||||
## How to test
|
||||
|
||||
Run `make test` command in command line(required vim-themis).
|
||||
|
||||
https://github.com/thinca/vim-themis
|
||||
|
||||
|
||||
## Advantages over Vundle
|
||||
|
||||
1. Plugin prefixed command name (:Bundle vs :NeoBundle).
|
||||
2. Support for vimproc (asynchronous update/install).
|
||||
3. Support for unite.vim interface (update/install/search).
|
||||
4. Support for revision locking.
|
||||
5. Support for multiple version control systems (Subversion/Git).
|
||||
6. Support for lazy initialization for optimizing startup time.
|
||||
7. and so on...
|
||||
|
||||
## Tips
|
||||
|
||||
If you use a single .vimrc across systems where build programs are
|
||||
named differently (e.g. GNU Make is often `gmake` on non-GNU
|
||||
systems), the following pattern is useful:
|
||||
|
||||
```vim
|
||||
let g:make = 'gmake'
|
||||
if system('uname -o') =~ '^GNU/'
|
||||
let g:make = 'make'
|
||||
endif
|
||||
NeoBundle 'Shougo/vimproc.vim', {'build': {'unix': g:make}}
|
||||
```
|
||||
|
|
@ -1,448 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: neobundle.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu at gmail.com>
|
||||
" 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
|
||||
|
||||
" Check 'term' option value.
|
||||
if exists('g:loaded_neobundle') && &term ==# 'builtin_gui'
|
||||
echoerr 'neobundle is initialized in .gvimrc!'
|
||||
\' neobundle must be initialized in .vimrc.'
|
||||
endif
|
||||
|
||||
if v:version < 702
|
||||
echoerr 'neobundle does not work this version of Vim (' . v:version . ').'
|
||||
finish
|
||||
endif
|
||||
|
||||
" Global options definition." "{{{
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#log_filename', '', 'g:neobundle_log_filename')
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#default_site', 'github', 'g:neobundle_default_site')
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#enable_name_conversion', 0)
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#default_options', {})
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#install_max_processes', 8,
|
||||
\ 'g:unite_source_neobundle_install_max_processes')
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#install_process_timeout', 120)
|
||||
"}}}
|
||||
|
||||
let g:neobundle#tapped = {}
|
||||
let g:neobundle#hooks = {}
|
||||
let s:neobundle_dir = ''
|
||||
let s:neobundle_runtime_dir = neobundle#util#substitute_path_separator(
|
||||
\ fnamemodify(expand('<sfile>'), ':p:h:h'))
|
||||
|
||||
command! -nargs=+
|
||||
\ NeoBundle
|
||||
\ call neobundle#parser#bundle(
|
||||
\ substitute(<q-args>, '\s"[^"]\+$', '', ''))
|
||||
|
||||
command! -bar
|
||||
\ NeoBundleCheck
|
||||
\ call neobundle#commands#check()
|
||||
|
||||
command! -nargs=? -bar
|
||||
\ -complete=customlist,neobundle#commands#complete_bundles
|
||||
\ NeoBundleCheckUpdate
|
||||
\ call neobundle#commands#check_update(<q-args>)
|
||||
|
||||
command! -nargs=+
|
||||
\ NeoBundleLazy
|
||||
\ call neobundle#parser#lazy(
|
||||
\ substitute(<q-args>, '\s"[^"]\+$', '', ''))
|
||||
|
||||
command! -nargs=+
|
||||
\ NeoBundleFetch
|
||||
\ call neobundle#parser#fetch(
|
||||
\ substitute(<q-args>, '\s"[^"]\+$', '', ''))
|
||||
|
||||
command! -nargs=1 -complete=dir -bar
|
||||
\ NeoBundleLocal
|
||||
\ call neobundle#local(<q-args>, {})
|
||||
|
||||
command! -nargs=+ -bar
|
||||
\ NeoBundleDirectInstall
|
||||
\ call neobundle#parser#direct(
|
||||
\ substitute(<q-args>, '\s"[^"]\+$', '', ''))
|
||||
|
||||
command! -nargs=* -bar
|
||||
\ -complete=customlist,neobundle#commands#complete_lazy_bundles
|
||||
\ NeoBundleSource
|
||||
\ call neobundle#commands#source([<f-args>])
|
||||
|
||||
command! -nargs=+ -bar
|
||||
\ -complete=customlist,neobundle#commands#complete_bundles
|
||||
\ NeoBundleDisable
|
||||
\ call neobundle#config#disable(<f-args>)
|
||||
|
||||
command! -nargs=? -bang -bar
|
||||
\ -complete=customlist,neobundle#commands#complete_bundles
|
||||
\ NeoBundleInstall
|
||||
\ call neobundle#commands#install(
|
||||
\ '!' == '<bang>', <q-args>)
|
||||
command! -nargs=? -bang -bar
|
||||
\ -complete=customlist,neobundle#commands#complete_bundles
|
||||
\ NeoBundleUpdate
|
||||
\ call neobundle#commands#install(
|
||||
\ ('!' == '<bang>' ? 2 : 1), <q-args>)
|
||||
|
||||
command! -nargs=+ -bang -bar
|
||||
\ -complete=customlist,neobundle#commands#complete_bundles
|
||||
\ NeoBundleReinstall
|
||||
\ call neobundle#commands#reinstall(<q-args>)
|
||||
|
||||
command! -nargs=? -bar
|
||||
\ -complete=customlist,neobundle#commands#complete_bundles
|
||||
\ NeoBundleGC
|
||||
\ call neobundle#commands#gc(<q-args>)
|
||||
|
||||
command! -nargs=? -bang -bar
|
||||
\ NeoBundleList
|
||||
\ call neobundle#commands#list()
|
||||
|
||||
command! -bar
|
||||
\ NeoBundleDocs
|
||||
\ call neobundle#commands#helptags(
|
||||
\ neobundle#config#get_enabled_bundles())
|
||||
|
||||
command! -bar
|
||||
\ NeoBundleLog
|
||||
\ echo join(neobundle#installer#get_log(), "\n")
|
||||
|
||||
command! -bar
|
||||
\ NeoBundleUpdatesLog
|
||||
\ echo join(neobundle#installer#get_updates_log(), "\n")
|
||||
|
||||
command! -bar
|
||||
\ NeoBundleExtraEdit
|
||||
\ execute 'edit' fnameescape(
|
||||
\ neobundle#get_neobundle_dir()).'/extra_bundles.vim'
|
||||
|
||||
command! -bar
|
||||
\ NeoBundleCount
|
||||
\ echo len(neobundle#config#get_neobundles())
|
||||
|
||||
command! -bar
|
||||
\ NeoBundleSaveCache
|
||||
\ call neobundle#commands#save_cache()
|
||||
command! -bar
|
||||
\ NeoBundleLoadCache
|
||||
\ call neobundle#util#print_error(
|
||||
\ 'NeoBundleLoadCache is deprecated command.') |
|
||||
\ call neobundle#util#print_error(
|
||||
\ 'It will be removed in the next version.') |
|
||||
\ call neobundle#util#print_error(
|
||||
\ 'Please use neobundle#load_cache() instead.') |
|
||||
\ call neobundle#commands#load_cache([$MYVIMRC])
|
||||
command! -bar
|
||||
\ NeoBundleClearCache
|
||||
\ call neobundle#commands#clear_cache()
|
||||
|
||||
command! -nargs=1 -bar
|
||||
\ -complete=customlist,neobundle#commands#complete_bundles
|
||||
\ NeoBundleRollback
|
||||
\ call neobundle#commands#rollback(<f-args>)
|
||||
|
||||
command! -nargs=+ -bar
|
||||
\ NeoBundleLock
|
||||
\ call neobundle#commands#lock(<f-args>)
|
||||
|
||||
command! -bar
|
||||
\ NeoBundleRemotePlugins
|
||||
\ call neobundle#commands#remote_plugins()
|
||||
|
||||
function! neobundle#rc(...) abort "{{{
|
||||
call neobundle#util#print_error(
|
||||
\ 'neobundle#rc() is removed function.')
|
||||
call neobundle#util#print_error(
|
||||
\ 'Please use neobundle#begin()/neobundle#end() instead.')
|
||||
return 1
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#begin(...) abort "{{{
|
||||
if a:0 > 0
|
||||
let path = a:1
|
||||
else
|
||||
" Use default path
|
||||
let paths = filter(split(globpath(&runtimepath,
|
||||
\ 'bundle', 1), '\n'), 'isdirectory(v:val)')
|
||||
if empty(paths)
|
||||
let rtps = neobundle#util#split_rtp(&runtimepath)
|
||||
if empty(rtps)
|
||||
call neobundle#util#print_error(
|
||||
\ 'Invalid runtimepath is detected.')
|
||||
call neobundle#util#print_error(
|
||||
\ 'Please check your .vimrc.')
|
||||
return 1
|
||||
endif
|
||||
|
||||
let paths = [rtps[0].'/bundle']
|
||||
endif
|
||||
|
||||
let path = paths[0]
|
||||
endif
|
||||
|
||||
return neobundle#init#_rc(path)
|
||||
endfunction"}}}
|
||||
function! neobundle#append() abort "{{{
|
||||
call neobundle#config#append()
|
||||
endfunction"}}}
|
||||
function! neobundle#end() abort "{{{
|
||||
call neobundle#config#final()
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#add(repository, ...) abort "{{{
|
||||
let options = get(a:000, 0, {})
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ a:repository, [options])
|
||||
if empty(bundle)
|
||||
return {}
|
||||
endif
|
||||
|
||||
let bundle.orig_arg = [a:repository, options]
|
||||
call neobundle#config#add(bundle)
|
||||
|
||||
return bundle
|
||||
endfunction"}}}
|
||||
function! neobundle#add_meta(name, ...) abort "{{{
|
||||
let metadata = neobundle#metadata#get(a:name)
|
||||
if empty(metadata)
|
||||
call neobundle#util#print_error(
|
||||
\ 'Plugin name "' . a:name . '" is not found.')
|
||||
return {}
|
||||
endif
|
||||
|
||||
let repository = substitute(metadata.url, '^git://', 'https://', '')
|
||||
let options = { 'name' : a:name }
|
||||
if has_key(metadata, 'addon-info')
|
||||
\ && has_key(metadata['addon-info'], 'dependencies')
|
||||
let options.depends = map(keys(metadata['addon-info'].dependencies),
|
||||
\ "substitute(neobundle#metadata#get(v:val).url,
|
||||
\ '^git://', 'https://', '')")
|
||||
endif
|
||||
call extend(options, get(a:000, 0, {}))
|
||||
|
||||
return neobundle#add(repository, options)
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#set_neobundle_dir(path) abort "{{{
|
||||
let s:neobundle_dir = a:path
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#get_neobundle_dir() abort "{{{
|
||||
if s:neobundle_dir == ''
|
||||
call neobundle#util#print_error(
|
||||
\ 'neobundle directory is empty.')
|
||||
return ''
|
||||
endif
|
||||
|
||||
let dir = s:neobundle_dir
|
||||
if !isdirectory(dir)
|
||||
call mkdir(dir, 'p')
|
||||
endif
|
||||
return dir
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#get_runtime_dir() abort "{{{
|
||||
return s:neobundle_runtime_dir
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#get_tags_dir() abort "{{{
|
||||
if s:neobundle_dir == ''
|
||||
return ''
|
||||
endif
|
||||
|
||||
let dir = s:neobundle_dir . '/.neobundle/doc'
|
||||
if !isdirectory(dir)
|
||||
call mkdir(dir, 'p')
|
||||
endif
|
||||
return dir
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#get_rtp_dir() abort "{{{
|
||||
if s:neobundle_dir == ''
|
||||
return ''
|
||||
endif
|
||||
|
||||
let dir = s:neobundle_dir . '/.neobundle'
|
||||
if !isdirectory(dir)
|
||||
call mkdir(dir, 'p')
|
||||
endif
|
||||
return dir
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#source(bundle_names) abort "{{{
|
||||
return neobundle#config#source(a:bundle_names)
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#local(localdir, ...) abort "{{{
|
||||
return neobundle#parser#local(
|
||||
\ a:localdir, get(a:000, 0, {}), get(a:000, 1, ['*']))
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#exists_not_installed_bundles() abort "{{{
|
||||
return !empty(neobundle#get_not_installed_bundles([]))
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#is_installed(...) abort "{{{
|
||||
return type(get(a:000, 0, [])) == type([]) ?
|
||||
\ !empty(neobundle#_get_installed_bundles(get(a:000, 0, []))) :
|
||||
\ neobundle#config#is_installed(a:1)
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#is_sourced(name) abort "{{{
|
||||
return neobundle#config#is_sourced(a:name)
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#has_cache() abort "{{{
|
||||
call neobundle#util#print_error(
|
||||
\ 'neobundle#has_cache() is deprecated function.')
|
||||
call neobundle#util#print_error(
|
||||
\ 'It will be removed in the next version.')
|
||||
call neobundle#util#print_error(
|
||||
\ 'Please use neobundle#load_cache() instead.')
|
||||
|
||||
return filereadable(neobundle#commands#get_cache_file())
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#load_cache(...) abort "{{{
|
||||
let vimrcs = len(a:000) == 0 ? [$MYVIMRC] : a:000
|
||||
return neobundle#commands#load_cache(vimrcs)
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#get_not_installed_bundle_names() abort "{{{
|
||||
return map(neobundle#get_not_installed_bundles([]), 'v:val.name')
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#get_not_installed_bundles(bundle_names) abort "{{{
|
||||
let bundles = empty(a:bundle_names) ?
|
||||
\ neobundle#config#get_neobundles() :
|
||||
\ neobundle#config#fuzzy_search(a:bundle_names)
|
||||
|
||||
call neobundle#installer#_load_install_info(bundles)
|
||||
|
||||
return filter(copy(bundles), "
|
||||
\ !v:val.disabled && v:val.path != '' && !v:val.local
|
||||
\ && !isdirectory(neobundle#util#expand(v:val.path))
|
||||
\")
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#get_force_not_installed_bundles(bundle_names) abort "{{{
|
||||
let bundles = empty(a:bundle_names) ?
|
||||
\ neobundle#config#get_neobundles() :
|
||||
\ neobundle#config#fuzzy_search(a:bundle_names)
|
||||
|
||||
call neobundle#installer#_load_install_info(bundles)
|
||||
|
||||
return filter(copy(bundles), "
|
||||
\ !v:val.disabled && v:val.path != '' && !v:val.local
|
||||
\ && (!isdirectory(neobundle#util#expand(v:val.path))
|
||||
\ || v:val.install_rev !=#
|
||||
\ neobundle#installer#get_revision_number(v:val))
|
||||
\")
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#get(name) abort "{{{
|
||||
return neobundle#config#get(a:name)
|
||||
endfunction"}}}
|
||||
function! neobundle#get_hooks(name) abort "{{{
|
||||
return get(neobundle#config#get(a:name), 'hooks', {})
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#tap(name) abort "{{{
|
||||
let g:neobundle#tapped = neobundle#get(a:name)
|
||||
let g:neobundle#hooks = get(neobundle#get(a:name), 'hooks', {})
|
||||
return !empty(g:neobundle#tapped) && !g:neobundle#tapped.disabled
|
||||
endfunction"}}}
|
||||
function! neobundle#untap() abort "{{{
|
||||
let g:neobundle#tapped = {}
|
||||
let g:neobundle#hooks = {}
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#bundle(arg, ...) abort "{{{
|
||||
let opts = get(a:000, 0, {})
|
||||
call map(neobundle#util#convert2list(a:arg),
|
||||
\ "neobundle#config#add(neobundle#parser#_init_bundle(
|
||||
\ v:val, [deepcopy(opts)]))")
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#config(arg, ...) abort "{{{
|
||||
" Use neobundle#tapped or name.
|
||||
return type(a:arg) == type({}) ?
|
||||
\ neobundle#config#set(g:neobundle#tapped.name, a:arg) :
|
||||
\ type(a:arg) == type('') ?
|
||||
\ neobundle#config#set(a:arg, a:1) :
|
||||
\ map(copy(a:arg), "neobundle#config#set(v:val, deepcopy(a:1))")
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#call_hook(hook_name, ...) abort "{{{
|
||||
let bundles = neobundle#util#convert2list(
|
||||
\ (empty(a:000) ? neobundle#config#get_neobundles() : a:1))
|
||||
let bundles = filter(copy(bundles),
|
||||
\ 'has_key(v:val.hooks, a:hook_name)')
|
||||
|
||||
if a:hook_name ==# 'on_source' || a:hook_name ==# 'on_post_source'
|
||||
let bundles = filter(neobundle#config#tsort(filter(bundles,
|
||||
\ 'neobundle#config#is_sourced(v:val.name) &&
|
||||
\ neobundle#config#is_installed(v:val.name)')),
|
||||
\ 'has_key(v:val.hooks, a:hook_name)')
|
||||
endif
|
||||
|
||||
for bundle in bundles
|
||||
if type(bundle.hooks[a:hook_name]) == type('')
|
||||
execute 'source' fnameescape(bundle.hooks[a:hook_name])
|
||||
else
|
||||
call call(bundle.hooks[a:hook_name], [bundle], bundle)
|
||||
endif
|
||||
endfor
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#_get_installed_bundles(bundle_names) abort "{{{
|
||||
let bundles = empty(a:bundle_names) ?
|
||||
\ neobundle#config#get_neobundles() :
|
||||
\ neobundle#config#search(a:bundle_names)
|
||||
|
||||
return filter(copy(bundles),
|
||||
\ 'neobundle#config#is_installed(v:val.name)')
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#load_toml(filename, ...) abort "{{{
|
||||
let opts = get(a:000, 0, {})
|
||||
return neobundle#parser#load_toml(a:filename, opts)
|
||||
endfunction"}}}
|
||||
|
||||
let s:init_vim_path = fnamemodify(expand('<sfile>'), ':h')
|
||||
\ . '/neobundle/init.vim'
|
||||
function! neobundle#get_cache_version() abort "{{{
|
||||
return getftime(s:init_vim_path)
|
||||
endfunction "}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
|
@ -1,332 +0,0 @@
|
|||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
"
|
||||
" public api
|
||||
"
|
||||
function! neobundle#TOML#parse(text) abort
|
||||
let input = {
|
||||
\ 'text': a:text,
|
||||
\ 'p': 0,
|
||||
\ 'length': strlen(a:text),
|
||||
\}
|
||||
return s:_parse(input)
|
||||
endfunction
|
||||
|
||||
function! neobundle#TOML#parse_file(filename) abort
|
||||
if !filereadable(a:filename)
|
||||
throw printf("vital: Text.TOML: No such file `%s'.", a:filename)
|
||||
endif
|
||||
|
||||
let text = join(readfile(a:filename), "\n")
|
||||
" fileencoding is always utf8
|
||||
return neobundle#TOML#parse(iconv(text, 'utf8', &encoding))
|
||||
endfunction
|
||||
|
||||
"
|
||||
" private api
|
||||
"
|
||||
" work around: '[^\r\n]*' doesn't work well in old-vim, but "[^\r\n]*" works well
|
||||
let s:skip_pattern = '\C^\%(\_s\+\|' . "#[^\r\n]*" . '\)'
|
||||
let s:table_name_pattern = '\%([^ [:tab:]#.[\]=]\+\)'
|
||||
let s:table_key_pattern = s:table_name_pattern
|
||||
|
||||
function! s:_skip(input) abort
|
||||
while s:_match(a:input, '\%(\_s\|#\)')
|
||||
let a:input.p = matchend(a:input.text, s:skip_pattern, a:input.p)
|
||||
endwhile
|
||||
endfunction
|
||||
|
||||
function! s:_consume(input, pattern) abort
|
||||
call s:_skip(a:input)
|
||||
let end = matchend(a:input.text, '\C^' . a:pattern, a:input.p)
|
||||
|
||||
if end == -1
|
||||
call s:_error(a:input)
|
||||
elseif end == a:input.p
|
||||
return ''
|
||||
endif
|
||||
|
||||
let matched = strpart(a:input.text, a:input.p, end - a:input.p)
|
||||
let a:input.p = end
|
||||
return matched
|
||||
endfunction
|
||||
|
||||
function! s:_match(input, pattern) abort
|
||||
return match(a:input.text, '\C^' . a:pattern, a:input.p) != -1
|
||||
endfunction
|
||||
|
||||
function! s:_eof(input) abort
|
||||
return a:input.p >= a:input.length
|
||||
endfunction
|
||||
|
||||
function! s:_error(input) abort
|
||||
let buf = []
|
||||
let offset = 0
|
||||
while (a:input.p + offset) < a:input.length && a:input.text[a:input.p + offset] !~# "[\r\n]"
|
||||
let buf += [a:input.text[a:input.p + offset]]
|
||||
let offset += 1
|
||||
endwhile
|
||||
|
||||
throw printf("vital: Text.TOML: Illegal toml format at `%s'.", join(buf, ''))
|
||||
endfunction
|
||||
|
||||
function! s:_parse(input) abort
|
||||
let data = {}
|
||||
|
||||
call s:_skip(a:input)
|
||||
while !s:_eof(a:input)
|
||||
if s:_match(a:input, '[^ [:tab:]#.[\]]')
|
||||
let key = s:_key(a:input)
|
||||
call s:_equals(a:input)
|
||||
let value = s:_value(a:input)
|
||||
|
||||
call s:_put_dict(data, key, value)
|
||||
|
||||
unlet value
|
||||
elseif s:_match(a:input, '\[\[')
|
||||
let [key, value] = s:_array_of_tables(a:input)
|
||||
|
||||
call s:_put_array(data, key, value)
|
||||
|
||||
unlet value
|
||||
elseif s:_match(a:input, '\[')
|
||||
let [key, value] = s:_table(a:input)
|
||||
|
||||
call s:_put_dict(data, key, value)
|
||||
|
||||
unlet value
|
||||
else
|
||||
call s:_error(a:input)
|
||||
endif
|
||||
call s:_skip(a:input)
|
||||
endwhile
|
||||
|
||||
return data
|
||||
endfunction
|
||||
|
||||
function! s:_key(input) abort
|
||||
let s = s:_consume(a:input, s:table_key_pattern)
|
||||
return s
|
||||
endfunction
|
||||
|
||||
function! s:_equals(input) abort
|
||||
call s:_consume(a:input, '=')
|
||||
return '='
|
||||
endfunction
|
||||
|
||||
function! s:_value(input) abort
|
||||
call s:_skip(a:input)
|
||||
|
||||
if s:_match(a:input, '"\{3}')
|
||||
return s:_multiline_basic_string(a:input)
|
||||
elseif s:_match(a:input, '"\{1}')
|
||||
return s:_basic_string(a:input)
|
||||
elseif s:_match(a:input, "'\\{3}")
|
||||
return s:_multiline_literal(a:input)
|
||||
elseif s:_match(a:input, "'\\{1}")
|
||||
return s:_literal(a:input)
|
||||
elseif s:_match(a:input, '\[')
|
||||
return s:_array(a:input)
|
||||
elseif s:_match(a:input, '\%(true\|false\)')
|
||||
return s:_boolean(a:input)
|
||||
elseif s:_match(a:input, '\d\{4}-')
|
||||
return s:_datetime(a:input)
|
||||
elseif s:_match(a:input, '[+-]\?\%(\d\+\.\d\|\d\+\%(\.\d\+\)\?[eE]\)')
|
||||
return s:_float(a:input)
|
||||
else
|
||||
return s:_integer(a:input)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
"
|
||||
" String
|
||||
"
|
||||
function! s:_basic_string(input) abort
|
||||
let s = s:_consume(a:input, '"\%(\\"\|[^"]\)*"')
|
||||
let s = s[1 : -2]
|
||||
return s:_unescape(s)
|
||||
endfunction
|
||||
|
||||
function! s:_multiline_basic_string(input) abort
|
||||
let s = s:_consume(a:input, '"\{3}\_.\{-}"\{3}')
|
||||
let s = s[3 : -4]
|
||||
let s = substitute(s, "^\n", '', '')
|
||||
let s = substitute(s, '\\' . "\n" . '\_s*', '', 'g')
|
||||
return s:_unescape(s)
|
||||
endfunction
|
||||
|
||||
function! s:_literal(input) abort
|
||||
let s = s:_consume(a:input, "'[^']*'")
|
||||
return s[1 : -2]
|
||||
endfunction
|
||||
|
||||
function! s:_multiline_literal(input) abort
|
||||
let s = s:_consume(a:input, "'\\{3}.\\{-}'\\{3}")
|
||||
let s = s[3 : -4]
|
||||
let s = substitute(s, "^\n", '', '')
|
||||
return s
|
||||
endfunction
|
||||
|
||||
"
|
||||
" Integer
|
||||
"
|
||||
function! s:_integer(input) abort
|
||||
let s = s:_consume(a:input, '[+-]\?\d\+')
|
||||
return str2nr(s)
|
||||
endfunction
|
||||
|
||||
"
|
||||
" Float
|
||||
"
|
||||
function! s:_float(input) abort
|
||||
if s:_match(a:input, '[+-]\?[0-9.]\+[eE][+-]\?\d\+')
|
||||
return s:_exponent(a:input)
|
||||
else
|
||||
return s:_fractional(a:input)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:_fractional(input) abort
|
||||
let s = s:_consume(a:input, '[+-]\?[0-9.]\+')
|
||||
return str2float(s)
|
||||
endfunction
|
||||
|
||||
function! s:_exponent(input) abort
|
||||
let s = s:_consume(a:input, '[+-]\?[0-9.]\+[eE][+-]\?\d\+')
|
||||
return str2float(s)
|
||||
endfunction
|
||||
|
||||
"
|
||||
" Boolean
|
||||
"
|
||||
function! s:_boolean(input) abort
|
||||
let s = s:_consume(a:input, '\%(true\|false\)')
|
||||
return (s ==# 'true') ? 1 : 0
|
||||
endfunction
|
||||
|
||||
"
|
||||
" Datetime
|
||||
"
|
||||
function! s:_datetime(input) abort
|
||||
let s = s:_consume(a:input, '\d\{4}-\d\{2}-\d\{2}T\d\{2}:\d\{2}:\d\{2}\%(Z\|-\?\d\{2}:\d\{2}\|\.\d\+-\d\{2}:\d\{2}\)')
|
||||
return s
|
||||
endfunction
|
||||
|
||||
"
|
||||
" Array
|
||||
"
|
||||
function! s:_array(input) abort
|
||||
let ary = []
|
||||
let _ = s:_consume(a:input, '\[')
|
||||
call s:_skip(a:input)
|
||||
while !s:_eof(a:input) && !s:_match(a:input, '\]')
|
||||
let ary += [s:_value(a:input)]
|
||||
call s:_consume(a:input, ',\?')
|
||||
call s:_skip(a:input)
|
||||
endwhile
|
||||
let _ = s:_consume(a:input, '\]')
|
||||
return ary
|
||||
endfunction
|
||||
|
||||
"
|
||||
" Table
|
||||
"
|
||||
function! s:_table(input) abort
|
||||
let tbl = {}
|
||||
let name = s:_consume(a:input, '\[\s*' . s:table_name_pattern . '\%(\s*\.\s*' . s:table_name_pattern . '\)*\s*\]')
|
||||
let name = name[1 : -2]
|
||||
call s:_skip(a:input)
|
||||
" while !s:_eof(a:input) && !s:_match(a:input, '\[\{1,2}[a-zA-Z0-9.]\+\]\{1,2}')
|
||||
while !s:_eof(a:input) && !s:_match(a:input, '\[')
|
||||
let key = s:_key(a:input)
|
||||
call s:_equals(a:input)
|
||||
let value = s:_value(a:input)
|
||||
|
||||
let tbl[key] = value
|
||||
|
||||
unlet value
|
||||
call s:_skip(a:input)
|
||||
endwhile
|
||||
return [name, tbl]
|
||||
endfunction
|
||||
|
||||
"
|
||||
" Array of tables
|
||||
"
|
||||
function! s:_array_of_tables(input) abort
|
||||
let tbl = {}
|
||||
let name = s:_consume(a:input, '\[\[\s*' . s:table_name_pattern . '\%(\s*\.\s*' . s:table_name_pattern . '\)*\s*\]\]')
|
||||
let name = name[2 : -3]
|
||||
call s:_skip(a:input)
|
||||
" while !s:_eof(a:input) && !s:_match(a:input, '\[\{1,2}[a-zA-Z0-9.]\+\]\{1,2}')
|
||||
while !s:_eof(a:input) && !s:_match(a:input, '\[')
|
||||
let key = s:_key(a:input)
|
||||
call s:_equals(a:input)
|
||||
let value = s:_value(a:input)
|
||||
|
||||
let tbl[key] = value
|
||||
|
||||
unlet value
|
||||
call s:_skip(a:input)
|
||||
endwhile
|
||||
return [name, [tbl]]
|
||||
endfunction
|
||||
|
||||
function! s:_unescape(text) abort
|
||||
let text = a:text
|
||||
let text = substitute(text, '\\"', '"', 'g')
|
||||
let text = substitute(text, '\\b', "\b", 'g')
|
||||
let text = substitute(text, '\\t', "\t", 'g')
|
||||
let text = substitute(text, '\\n', "\n", 'g')
|
||||
let text = substitute(text, '\\f', "\f", 'g')
|
||||
let text = substitute(text, '\\r', "\r", 'g')
|
||||
let text = substitute(text, '\\/', "/", 'g')
|
||||
let text = substitute(text, '\\\\', '\', 'g')
|
||||
let text = substitute(text, '\C\\u\(\x\{4}\)', '\=s:_nr2char("0x" . submatch(1))', 'g')
|
||||
let text = substitute(text, '\C\\U\(\x\{8}\)', '\=s:_nr2char("0x" . submatch(1))', 'g')
|
||||
return text
|
||||
endfunction
|
||||
|
||||
function! s:_nr2char(nr) abort
|
||||
return iconv(nr2char(a:nr), &encoding, 'utf8')
|
||||
endfunction
|
||||
|
||||
function! s:_put_dict(dict, key, value) abort
|
||||
let keys = split(a:key, '\.')
|
||||
|
||||
let ref = a:dict
|
||||
for key in keys[ : -2]
|
||||
if has_key(ref, key) && type(ref[key]) == type({})
|
||||
let ref = ref[key]
|
||||
elseif has_key(ref, key) && type(ref[key]) == type([])
|
||||
let ref = ref[key][-1]
|
||||
else
|
||||
let ref[key] = {}
|
||||
let ref = ref[key]
|
||||
endif
|
||||
endfor
|
||||
|
||||
let ref[keys[-1]] = a:value
|
||||
endfunction
|
||||
|
||||
function! s:_put_array(dict, key, value) abort
|
||||
let keys = split(a:key, '\.')
|
||||
|
||||
let ref = a:dict
|
||||
for key in keys[ : -2]
|
||||
let ref[key] = get(ref, key, {})
|
||||
|
||||
if type(ref[key]) == type([])
|
||||
let ref = ref[key][-1]
|
||||
else
|
||||
let ref = ref[key]
|
||||
endif
|
||||
endfor
|
||||
|
||||
let ref[keys[-1]] = get(ref, keys[-1], []) + a:value
|
||||
endfunction
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
" vim:set et ts=2 sts=2 sw=2 tw=0:
|
||||
|
|
@ -1,275 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: autoload.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu at gmail.com>
|
||||
" 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#autoload#init() abort "{{{
|
||||
let s:active_auto_source = 0
|
||||
let s:loaded_path = 0
|
||||
|
||||
augroup neobundle
|
||||
autocmd FileType *
|
||||
\ call s:on_filetype()
|
||||
autocmd FuncUndefined *
|
||||
\ call s:on_function()
|
||||
autocmd InsertEnter *
|
||||
\ call s:on_insert()
|
||||
augroup END
|
||||
|
||||
if has('patch-7.4.414')
|
||||
autocmd neobundle CmdUndefined *
|
||||
\ call s:on_command_prefix()
|
||||
endif
|
||||
|
||||
augroup neobundle-path
|
||||
autocmd!
|
||||
augroup END
|
||||
for event in [
|
||||
\ 'BufRead', 'BufCreate', 'BufEnter',
|
||||
\ 'BufWinEnter', 'BufNew', 'VimEnter', 'BufNewFile'
|
||||
\ ]
|
||||
execute 'autocmd neobundle-path' event
|
||||
\ "* call s:on_path(expand('<afile>'), ".string(event) . ")"
|
||||
endfor
|
||||
|
||||
augroup neobundle-focus
|
||||
autocmd!
|
||||
autocmd CursorHold * if s:active_auto_source
|
||||
\ | call s:source_focus()
|
||||
\ | endif
|
||||
autocmd FocusLost * let s:active_auto_source = 1 | call s:source_focus()
|
||||
autocmd FocusGained * let s:active_auto_source = 0
|
||||
augroup END
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#autoload#_command(command, name, args, bang, line1, line2) abort "{{{
|
||||
call neobundle#config#source(a:name)
|
||||
|
||||
if !exists(':' . a:command)
|
||||
call neobundle#util#print_error(
|
||||
\ printf('command %s is not found.', a:command))
|
||||
return
|
||||
endif
|
||||
|
||||
let range = (a:line1 == a:line2) ? '' :
|
||||
\ (a:line1==line("'<") && a:line2==line("'>")) ?
|
||||
\ "'<,'>" : a:line1.",".a:line2
|
||||
|
||||
try
|
||||
execute range.a:command.a:bang a:args
|
||||
catch /^Vim\%((\a\+)\)\=:E481/
|
||||
" E481: No range allowed
|
||||
execute a:command.a:bang a:args
|
||||
endtry
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#autoload#_command_dummy_complete(arglead, cmdline, cursorpos) abort "{{{
|
||||
" Load plugins
|
||||
let command = tolower(matchstr(a:cmdline, '\a\S*'))
|
||||
|
||||
let bundles = filter(neobundle#config#get_autoload_bundles(),
|
||||
\ "!empty(filter(map(copy(v:val.pre_cmd), 'tolower(v:val)'),
|
||||
\ 'stridx(command, v:val) == 0'))")
|
||||
call neobundle#config#source_bundles(bundles)
|
||||
|
||||
" Print the candidates
|
||||
call feedkeys("\<C-d>", 'n')
|
||||
return ['']
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#autoload#_mapping(mapping, name, mode) abort "{{{
|
||||
let cnt = v:count > 0 ? v:count : ''
|
||||
|
||||
let input = s:get_input()
|
||||
|
||||
call neobundle#config#source(a:name)
|
||||
|
||||
if a:mode ==# 'v' || a:mode ==# 'x'
|
||||
call feedkeys('gv', 'n')
|
||||
elseif a:mode ==# 'o'
|
||||
" TODO: omap
|
||||
" v:prevcount?
|
||||
" Cancel waiting operator mode.
|
||||
call feedkeys(v:operator, 'm')
|
||||
endif
|
||||
|
||||
call feedkeys(cnt, 'n')
|
||||
|
||||
let mapping = a:mapping
|
||||
while mapping =~ '<[[:alnum:]-]\+>'
|
||||
let mapping = substitute(mapping, '\c<Leader>',
|
||||
\ get(g:, 'mapleader', '\'), 'g')
|
||||
let mapping = substitute(mapping, '\c<LocalLeader>',
|
||||
\ get(g:, 'maplocalleader', '\'), 'g')
|
||||
let ctrl = matchstr(mapping, '<\zs[[:alnum:]-]\+\ze>')
|
||||
execute 'let mapping = substitute(
|
||||
\ mapping, "<' . ctrl . '>", "\<' . ctrl . '>", "")'
|
||||
endwhile
|
||||
call feedkeys(mapping . input, 'm')
|
||||
|
||||
return ''
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#autoload#_source(bundle_name) abort "{{{
|
||||
let bundles = filter(neobundle#config#get_autoload_bundles(),
|
||||
\ "index(v:val.on_source, a:bundle_name) >= 0")
|
||||
if !empty(bundles)
|
||||
call neobundle#config#source_bundles(bundles)
|
||||
endif
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#autoload#_set_function_prefixes(bundles) abort "{{{
|
||||
for bundle in filter(copy(a:bundles), "empty(v:val.pre_func)")
|
||||
let bundle.pre_func =
|
||||
\ neobundle#util#uniq(map(split(globpath(
|
||||
\ bundle.path, 'autoload/**/*.vim', 1), "\n"),
|
||||
\ "substitute(matchstr(
|
||||
\ neobundle#util#substitute_path_separator(
|
||||
\ fnamemodify(v:val, ':r')),
|
||||
\ '/autoload/\\zs.*$'), '/', '#', 'g').'#'"))
|
||||
endfor
|
||||
endfunction"}}}
|
||||
|
||||
function! s:on_filetype() abort "{{{
|
||||
let bundles = filter(neobundle#config#get_autoload_bundles(),
|
||||
\ "!empty(v:val.on_ft)")
|
||||
for filetype in add(neobundle#util#get_filetypes(), 'all')
|
||||
call neobundle#config#source_bundles(filter(copy(bundles),"
|
||||
\ index(v:val.on_ft, filetype) >= 0"))
|
||||
endfor
|
||||
endfunction"}}}
|
||||
|
||||
function! s:on_insert() abort "{{{
|
||||
let bundles = filter(neobundle#config#get_autoload_bundles(),
|
||||
\ "v:val.on_i")
|
||||
if !empty(bundles)
|
||||
call neobundle#config#source_bundles(bundles)
|
||||
doautocmd InsertEnter
|
||||
endif
|
||||
endfunction"}}}
|
||||
|
||||
function! s:on_function() abort "{{{
|
||||
let function = expand('<amatch>')
|
||||
let function_prefix = substitute(function, '[^#]*$', '', '')
|
||||
if function_prefix =~# '^neobundle#'
|
||||
\ || function_prefix ==# 'vital#'
|
||||
\ || has('vim_starting')
|
||||
return
|
||||
endif
|
||||
|
||||
let bundles = neobundle#config#get_autoload_bundles()
|
||||
call neobundle#autoload#_set_function_prefixes(bundles)
|
||||
|
||||
let bundles = filter(bundles,
|
||||
\ "index(v:val.pre_func, function_prefix) >= 0
|
||||
\ || (index(v:val.on_func, function) >= 0)")
|
||||
call neobundle#config#source_bundles(bundles)
|
||||
endfunction"}}}
|
||||
|
||||
function! s:on_command_prefix() abort "{{{
|
||||
let command = tolower(expand('<afile>'))
|
||||
|
||||
let bundles = filter(neobundle#config#get_autoload_bundles(),
|
||||
\ "!empty(filter(map(copy(v:val.pre_cmd), 'tolower(v:val)'),
|
||||
\ 'stridx(command, v:val) == 0'))")
|
||||
call neobundle#config#source_bundles(bundles)
|
||||
endfunction"}}}
|
||||
|
||||
function! s:on_path(path, event) abort "{{{
|
||||
if a:path == ''
|
||||
return
|
||||
endif
|
||||
|
||||
let path = a:path
|
||||
" For ":edit ~".
|
||||
if fnamemodify(path, ':t') ==# '~'
|
||||
let path = '~'
|
||||
endif
|
||||
|
||||
let path = neobundle#util#expand(path)
|
||||
let bundles = filter(neobundle#config#get_autoload_bundles(),
|
||||
\ "len(filter(copy(v:val.on_path),
|
||||
\ 'path =~? v:val')) > 0")")
|
||||
if !empty(bundles)
|
||||
call neobundle#config#source_bundles(bundles)
|
||||
execute 'doautocmd' a:event
|
||||
|
||||
if !s:loaded_path && has('vim_starting')
|
||||
\ && neobundle#util#redir('filetype') =~# 'detection:ON'
|
||||
" Force enable auto detection if path bundles are loaded
|
||||
autocmd neobundle VimEnter * filetype detect
|
||||
endif
|
||||
let s:loaded_path = 1
|
||||
endif
|
||||
endfunction"}}}
|
||||
|
||||
function! s:source_focus() abort "{{{
|
||||
let bundles = neobundle#util#sort_by(filter(
|
||||
\ neobundle#config#get_autoload_bundles(),
|
||||
\ "v:val.focus > 0"), 'v:val.focus')
|
||||
if empty(bundles)
|
||||
augroup neobundle-focus
|
||||
autocmd!
|
||||
augroup END
|
||||
return
|
||||
endif
|
||||
|
||||
call neobundle#config#source_bundles([bundles[0]])
|
||||
call feedkeys("g\<ESC>", 'n')
|
||||
endfunction"}}}
|
||||
|
||||
function! s:get_input() abort "{{{
|
||||
let input = ''
|
||||
let termstr = "<M-_>"
|
||||
|
||||
call feedkeys(termstr, 'n')
|
||||
|
||||
let type_num = type(0)
|
||||
while 1
|
||||
let char = getchar()
|
||||
let input .= (type(char) == type_num) ? nr2char(char) : char
|
||||
|
||||
let idx = stridx(input, termstr)
|
||||
if idx >= 1
|
||||
let input = input[: idx - 1]
|
||||
break
|
||||
elseif idx == 0
|
||||
let input = ''
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
|
||||
return input
|
||||
endfunction"}}}
|
||||
|
||||
function! s:get_lazy_bundles() abort "{{{
|
||||
return filter(neobundle#config#get_neobundles(),
|
||||
\ "!v:val.sourced && v:val.rtp != '' && v:val.lazy")
|
||||
endfunction"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
" Utilities for output cache.
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
function! neobundle#cache#getfilename(cache_dir, filename) abort
|
||||
return s:_encode_name(a:cache_dir, a:filename)
|
||||
endfunction
|
||||
|
||||
function! neobundle#cache#filereadable(cache_dir, filename) abort
|
||||
let cache_name = s:_encode_name(a:cache_dir, a:filename)
|
||||
return filereadable(cache_name)
|
||||
endfunction
|
||||
|
||||
function! neobundle#cache#readfile(cache_dir, filename) abort
|
||||
let cache_name = s:_encode_name(a:cache_dir, a:filename)
|
||||
return filereadable(cache_name) ? readfile(cache_name) : []
|
||||
endfunction
|
||||
|
||||
function! neobundle#cache#writefile(cache_dir, filename, list) abort
|
||||
let cache_name = s:_encode_name(a:cache_dir, a:filename)
|
||||
|
||||
call writefile(a:list, cache_name)
|
||||
endfunction
|
||||
|
||||
function! neobundle#cache#deletefile(cache_dir, filename) abort
|
||||
let cache_name = s:_encode_name(a:cache_dir, a:filename)
|
||||
return delete(cache_name)
|
||||
endfunction
|
||||
|
||||
function! s:_encode_name(cache_dir, filename) abort
|
||||
" Check cache directory.
|
||||
if !isdirectory(a:cache_dir)
|
||||
call mkdir(a:cache_dir, 'p')
|
||||
endif
|
||||
let cache_dir = a:cache_dir
|
||||
if cache_dir !~ '/$'
|
||||
let cache_dir .= '/'
|
||||
endif
|
||||
|
||||
return cache_dir . s:_create_hash(cache_dir, a:filename)
|
||||
endfunction
|
||||
|
||||
function! neobundle#cache#check_old_cache(cache_dir, filename) abort
|
||||
" Check old cache file.
|
||||
let cache_name = s:_encode_name(a:cache_dir, a:filename)
|
||||
let ret = getftime(cache_name) == -1
|
||||
\ || getftime(cache_name) <= getftime(a:filename)
|
||||
if ret && filereadable(cache_name)
|
||||
" Delete old cache.
|
||||
call delete(cache_name)
|
||||
endif
|
||||
|
||||
return ret
|
||||
endfunction
|
||||
|
||||
function! s:_create_hash(dir, str) abort
|
||||
if len(a:dir) + len(a:str) < 150
|
||||
let hash = substitute(substitute(
|
||||
\ a:str, ':', '=-', 'g'), '[/\\]', '=+', 'g')
|
||||
elseif exists('*sha256')
|
||||
let hash = sha256(a:str)
|
||||
else
|
||||
" Use simple hash.
|
||||
let sum = 0
|
||||
for i in range(len(a:str))
|
||||
let sum += char2nr(a:str[i]) * (i + 1)
|
||||
endfor
|
||||
|
||||
let hash = printf('%x', sum)
|
||||
endif
|
||||
|
||||
return hash
|
||||
endfunction
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim:set et ts=2 sts=2 sw=2 tw=0:
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,300 +0,0 @@
|
|||
"=============================================================================
|
||||
" 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
|
||||
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,84 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: metadata.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu at gmail.com>
|
||||
" 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
|
||||
|
||||
let s:metadata = {}
|
||||
let s:repository =
|
||||
\ 'https://gist.githubusercontent.com/Shougo/'
|
||||
\ . '028d6ae320cc8f354f88/raw/'
|
||||
\ . '3b62ad42d39a4d3d4f236a45e00eb6b03ca23352/vim-pi.json'
|
||||
|
||||
function! neobundle#metadata#get(...) abort "{{{
|
||||
if empty(s:metadata)
|
||||
call s:load()
|
||||
endif
|
||||
return (a:0 == 0) ? copy(s:metadata) : get(s:metadata, a:1, {})
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#metadata#update() abort "{{{
|
||||
" Reload cache.
|
||||
let cache_path = neobundle#get_neobundle_dir() . '/.neobundle/metadata.json'
|
||||
|
||||
if filereadable(cache_path)
|
||||
call delete(cache_path)
|
||||
endif
|
||||
|
||||
let cmd = neobundle#util#wget(s:repository, cache_path)
|
||||
if cmd =~# '^E:'
|
||||
call neobundle#util#print_error(
|
||||
\ 'curl or wget command is not available!')
|
||||
return
|
||||
endif
|
||||
|
||||
let result = neobundle#util#system(cmd)
|
||||
|
||||
if neobundle#util#get_last_status()
|
||||
call neobundle#util#print_error('Error occurred!')
|
||||
call neobundle#util#print_error(cmd)
|
||||
call neobundle#util#print_error(result)
|
||||
elseif !filereadable(cache_path)
|
||||
call neobundle#util#print_error('Temporary file was not created!')
|
||||
endif
|
||||
endfunction"}}}
|
||||
|
||||
function! s:load() abort "{{{
|
||||
" Reload cache.
|
||||
let cache_path = neobundle#get_neobundle_dir() . '/.neobundle/metadata.json'
|
||||
|
||||
if !filereadable(cache_path)
|
||||
call neobundle#metadata#update()
|
||||
endif
|
||||
|
||||
sandbox let s:metadata = eval(get(readfile(cache_path), 0, '{}'))
|
||||
|
||||
return s:metadata
|
||||
endfunction"}}}
|
||||
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
|
|
@ -1,314 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: parser.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#parser#bundle(arg, ...) abort "{{{
|
||||
let bundle = s:parse_arg(a:arg)
|
||||
let is_parse_only = get(a:000, 0, 0)
|
||||
if !is_parse_only
|
||||
call neobundle#config#add(bundle)
|
||||
|
||||
if !neobundle#config#within_block()
|
||||
\ && !bundle.lazy && has('vim_starting')
|
||||
call neobundle#util#print_error(
|
||||
\ '`NeoBundle` commands must be executed within' .
|
||||
\ ' a neobundle#begin/end block. Please check your usage.')
|
||||
endif
|
||||
endif
|
||||
|
||||
return bundle
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#parser#lazy(arg) abort "{{{
|
||||
let bundle = s:parse_arg(a:arg)
|
||||
if empty(bundle)
|
||||
return {}
|
||||
endif
|
||||
|
||||
" Update lazy flag.
|
||||
let bundle.lazy = 1
|
||||
let bundle.orig_opts.lazy = 1
|
||||
for depend in bundle.depends
|
||||
let depend.lazy = bundle.lazy
|
||||
endfor
|
||||
|
||||
call neobundle#config#add(bundle)
|
||||
|
||||
return bundle
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#parser#fetch(arg) abort "{{{
|
||||
let bundle = s:parse_arg(a:arg)
|
||||
if empty(bundle)
|
||||
return {}
|
||||
endif
|
||||
|
||||
" Clear runtimepath.
|
||||
let bundle.fetch = 1
|
||||
let bundle.rtp = ''
|
||||
|
||||
call neobundle#config#add(bundle)
|
||||
|
||||
return bundle
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#parser#direct(arg) abort "{{{
|
||||
let bundle = neobundle#parser#bundle(a:arg, 1)
|
||||
|
||||
if empty(bundle)
|
||||
return {}
|
||||
endif
|
||||
|
||||
if !empty(neobundle#get(bundle.name))
|
||||
call neobundle#util#print_error(
|
||||
\ bundle.name . ' is already installed.')
|
||||
return {}
|
||||
endif
|
||||
|
||||
call neobundle#config#add(bundle)
|
||||
|
||||
call neobundle#config#save_direct(a:arg)
|
||||
|
||||
" Direct install.
|
||||
call neobundle#commands#install(0, bundle.name)
|
||||
|
||||
return bundle
|
||||
endfunction"}}}
|
||||
|
||||
function! s:parse_arg(arg) abort "{{{
|
||||
let arg = type(a:arg) == type([]) ?
|
||||
\ string(a:arg) : '[' . a:arg . ']'
|
||||
let args = eval(arg)
|
||||
if empty(args)
|
||||
return {}
|
||||
endif
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ args[0], args[1:])
|
||||
if empty(bundle)
|
||||
return {}
|
||||
endif
|
||||
|
||||
let bundle.orig_arg = copy(a:arg)
|
||||
|
||||
return bundle
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#parser#_init_bundle(name, opts) abort "{{{
|
||||
let path = substitute(a:name, "['".'"]\+', '', 'g')
|
||||
if path[0] == '~'
|
||||
let path = neobundle#util#expand(path)
|
||||
endif
|
||||
let opts = s:parse_options(a:opts)
|
||||
let bundle = extend(neobundle#parser#path(
|
||||
\ path, opts), opts)
|
||||
|
||||
let bundle.orig_name = a:name
|
||||
let bundle.orig_path = path
|
||||
let bundle.orig_opts = opts
|
||||
let bundle.orig_arg = string(a:name).', '.string(opts)
|
||||
|
||||
let bundle = neobundle#init#_bundle(bundle)
|
||||
|
||||
return bundle
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#parser#local(localdir, options, includes) abort "{{{
|
||||
let base = fnamemodify(neobundle#util#expand(a:localdir), ':p')
|
||||
let directories = []
|
||||
for glob in a:includes
|
||||
let directories += map(filter(split(glob(base . glob), '\n'),
|
||||
\ "isdirectory(v:val)"), "
|
||||
\ substitute(neobundle#util#substitute_path_separator(
|
||||
\ fnamemodify(v:val, ':p')), '/$', '', '')")
|
||||
endfor
|
||||
|
||||
for dir in neobundle#util#uniq(directories)
|
||||
let options = extend({ 'local' : 1, 'base' : base }, a:options)
|
||||
let name = fnamemodify(dir, ':t')
|
||||
let bundle = neobundle#get(name)
|
||||
if !empty(bundle) && !bundle.sourced
|
||||
call extend(options, copy(bundle.orig_opts))
|
||||
if bundle.lazy
|
||||
let options.lazy = 1
|
||||
endif
|
||||
|
||||
call neobundle#config#rm(bundle)
|
||||
endif
|
||||
|
||||
call neobundle#parser#bundle([dir, options])
|
||||
endfor
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#parser#load_toml(filename, default) abort "{{{
|
||||
try
|
||||
let toml = neobundle#TOML#parse_file(neobundle#util#expand(a:filename))
|
||||
catch /vital: Text.TOML:/
|
||||
call neobundle#util#print_error(
|
||||
\ 'Invalid toml format: ' . a:filename)
|
||||
call neobundle#util#print_error(v:exception)
|
||||
return 1
|
||||
endtry
|
||||
if type(toml) != type({}) || !has_key(toml, 'plugins')
|
||||
call neobundle#util#print_error(
|
||||
\ 'Invalid toml file: ' . a:filename)
|
||||
return 1
|
||||
endif
|
||||
|
||||
" Parse.
|
||||
for plugin in toml.plugins
|
||||
if has_key(plugin, 'repository')
|
||||
let plugin.repo = plugin.repository
|
||||
endif
|
||||
if !has_key(plugin, 'repo')
|
||||
call neobundle#util#print_error(
|
||||
\ 'No repository plugin data: ' . a:filename)
|
||||
return 1
|
||||
endif
|
||||
|
||||
if has_key(plugin, 'depends')
|
||||
let _ = []
|
||||
for depend in neobundle#util#convert2list(plugin.depends)
|
||||
if type(depend) == type('') || type(depend) == type([])
|
||||
call add(_, depend)
|
||||
elseif type(depend) == type({})
|
||||
if has_key(depend, 'repository')
|
||||
let plugin.repo = plugin.repository
|
||||
endif
|
||||
if !has_key(depend, 'repo')
|
||||
call neobundle#util#print_error(
|
||||
\ 'No repository plugin data: ' . a:filename)
|
||||
return 1
|
||||
endif
|
||||
|
||||
call add(_, [depend.repo, depend])
|
||||
endif
|
||||
|
||||
unlet depend
|
||||
endfor
|
||||
|
||||
let plugin.depends = _
|
||||
endif
|
||||
|
||||
let options = extend(plugin, a:default, 'keep')
|
||||
" echomsg string(options)
|
||||
call neobundle#parser#bundle([plugin.repo, options])
|
||||
endfor
|
||||
endfunction"}}}
|
||||
|
||||
function! neobundle#parser#path(path, ...) abort "{{{
|
||||
let opts = get(a:000, 0, {})
|
||||
let site = get(opts, 'site', g:neobundle#default_site)
|
||||
let path = substitute(a:path, '/$', '', '')
|
||||
|
||||
if path !~ '^/\|^\a:' && path !~ ':'
|
||||
" Add default site.
|
||||
let path = site . ':' . path
|
||||
endif
|
||||
|
||||
if has_key(opts, 'type')
|
||||
let type = neobundle#config#get_types(opts.type)
|
||||
let types = empty(type) ? [] : [type]
|
||||
else
|
||||
let detect = neobundle#config#get_types('git').detect(path, opts)
|
||||
if !empty(detect)
|
||||
let detect.name = neobundle#util#name_conversion(path)
|
||||
return detect
|
||||
endif
|
||||
|
||||
let types = neobundle#config#get_types()
|
||||
endif
|
||||
|
||||
let detect = {}
|
||||
for type in types
|
||||
let detect = type.detect(path, opts)
|
||||
if !empty(detect)
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
|
||||
if empty(detect) && isdirectory(path)
|
||||
" Detect none type.
|
||||
return { 'uri' : path, 'type' : 'none' }
|
||||
endif
|
||||
|
||||
if !empty(detect) && !has_key(detect, 'name')
|
||||
let detect.name = neobundle#util#name_conversion(path)
|
||||
endif
|
||||
|
||||
return detect
|
||||
endfunction"}}}
|
||||
|
||||
function! s:parse_options(opts) abort "{{{
|
||||
if empty(a:opts)
|
||||
return has_key(g:neobundle#default_options, '_') ?
|
||||
\ copy(g:neobundle#default_options['_']) : {}
|
||||
endif
|
||||
|
||||
if len(a:opts) == 3
|
||||
" rev, default, options
|
||||
let [rev, default, options] = a:opts
|
||||
elseif len(a:opts) == 2 && type(a:opts[-1]) == type('')
|
||||
" rev, default
|
||||
let [rev, default, options] = a:opts + [{}]
|
||||
elseif len(a:opts) == 2 && type(a:opts[-1]) == type({})
|
||||
" rev, options
|
||||
let [rev, default, options] = [a:opts[0], '', a:opts[1]]
|
||||
elseif len(a:opts) == 1 && type(a:opts[-1]) == type('')
|
||||
" rev
|
||||
let [rev, default, options] = [a:opts[0], '', {}]
|
||||
elseif len(a:opts) == 1 && type(a:opts[-1]) == type({})
|
||||
" options
|
||||
let [rev, default, options] = ['', '', a:opts[0]]
|
||||
else
|
||||
call neobundle#installer#error(
|
||||
\ printf('Invalid option : "%s".', string(a:opts)))
|
||||
return {}
|
||||
endif
|
||||
|
||||
if rev != ''
|
||||
let options.rev = rev
|
||||
endif
|
||||
|
||||
if !has_key(options, 'default')
|
||||
let options.default = (default == '') ? '_' : default
|
||||
endif
|
||||
|
||||
" Set default options.
|
||||
if has_key(g:neobundle#default_options, options.default)
|
||||
call extend(options,
|
||||
\ g:neobundle#default_options[options.default], 'keep')
|
||||
endif
|
||||
|
||||
return options
|
||||
endfunction"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,119 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: github.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com>
|
||||
" 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#sources#github#define() abort "{{{
|
||||
return s:source
|
||||
endfunction"}}}
|
||||
|
||||
let s:source = {
|
||||
\ 'name' : 'github',
|
||||
\ 'short_name' : 'github',
|
||||
\ }
|
||||
|
||||
" sorter
|
||||
let s:filter = {
|
||||
\ "name" : "sorter_stars",
|
||||
\}
|
||||
|
||||
function! s:filter.filter(candidates, context) abort
|
||||
return unite#util#sort_by(a:candidates, 'v:val.source__stars')
|
||||
endfunction
|
||||
|
||||
call unite#define_filter(s:filter)
|
||||
unlet s:filter
|
||||
|
||||
function! s:source.gather_candidates(args, context) abort "{{{
|
||||
let plugins = s:get_github_searches(a:context.source__input)
|
||||
|
||||
|
||||
return map(copy(plugins), "{
|
||||
\ 'word' : v:val.full_name. ' ' . v:val.description,
|
||||
\ 'source__name' : (v:val.fork ? '| ' : '') .
|
||||
\ v:val.full_name,
|
||||
\ 'source__path' : v:val.full_name,
|
||||
\ 'source__description' : v:val.description,
|
||||
\ 'source__stars' : v:val.stargazers_count,
|
||||
\ 'source__options' : [],
|
||||
\ 'action__uri' : v:val.html_url,
|
||||
\ }")
|
||||
endfunction"}}}
|
||||
|
||||
" Misc.
|
||||
" @vimlint(EVL102, 1, l:true)
|
||||
" @vimlint(EVL102, 1, l:false)
|
||||
" @vimlint(EVL102, 1, l:null)
|
||||
function! s:get_github_searches(string) abort "{{{
|
||||
let uri = 'https://api.github.com/search/repositories?q='
|
||||
\ . a:string . '+language:VimL'.'\&sort=stars'.'\&order=desc'
|
||||
let temp = neobundle#util#substitute_path_separator(tempname())
|
||||
|
||||
let cmd = neobundle#util#wget(uri, temp)
|
||||
|
||||
call unite#print_message(
|
||||
\ '[neobundle/search:github] Searching plugins from github...')
|
||||
redraw
|
||||
|
||||
let result = unite#util#system(cmd)
|
||||
|
||||
if cmd =~# '^E:'
|
||||
call unite#print_error(
|
||||
\ '[neobundle/search:github] '.
|
||||
\ 'wget or curl command is not available!')
|
||||
return []
|
||||
elseif unite#util#get_last_status()
|
||||
call unite#print_message('[neobundle/search:github] ' . cmd)
|
||||
call unite#print_error('[neobundle/search:github] Error occurred!')
|
||||
call unite#print_error(result)
|
||||
return []
|
||||
elseif !filereadable(temp)
|
||||
call unite#print_error('[neobundle/search:github] '.
|
||||
\ 'Temporary file was not created!')
|
||||
return []
|
||||
else
|
||||
call unite#print_message('[neobundle/search:github] Done!')
|
||||
endif
|
||||
|
||||
let [true, false, null] = [1,0,"''"]
|
||||
sandbox let data = eval(join(readfile(temp)))
|
||||
call filter(data.items,
|
||||
\ "stridx(v:val.full_name, a:string) >= 0")
|
||||
|
||||
call delete(temp)
|
||||
|
||||
return data.items
|
||||
endfunction"}}}
|
||||
" @vimlint(EVL102, 0, l:true)
|
||||
" @vimlint(EVL102, 0, l:false)
|
||||
" @vimlint(EVL102, 0, l:null)
|
||||
|
||||
call unite#custom_source('neobundle/search', 'sorters', 'sorters_stars')
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,104 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: metadata.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com>
|
||||
" 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
|
||||
|
||||
let s:repository_cache = []
|
||||
|
||||
function! neobundle#sources#metadata#define() abort "{{{
|
||||
return s:source
|
||||
endfunction"}}}
|
||||
|
||||
let s:source = {
|
||||
\ 'name' : 'metadata',
|
||||
\ 'short_name' : 'meta',
|
||||
\ }
|
||||
|
||||
function! s:source.gather_candidates(args, context) abort "{{{
|
||||
let plugins = s:get_repository_plugins(a:context)
|
||||
|
||||
try
|
||||
return map(copy(plugins), "{
|
||||
\ 'word' : v:val.name . ' ' . v:val.description,
|
||||
\ 'source__name' : v:val.name,
|
||||
\ 'source__path' : v:val.repository,
|
||||
\ 'source__script_type' : s:convert2script_type(v:val.raw_type),
|
||||
\ 'source__description' : v:val.description,
|
||||
\ 'source__options' : [],
|
||||
\ 'action__uri' : v:val.uri,
|
||||
\ }")
|
||||
catch
|
||||
call unite#print_error(
|
||||
\ '[neobundle/search:metadata] '
|
||||
\ .'Error occurred in loading cache.')
|
||||
call unite#print_error(
|
||||
\ '[neobundle/search:metadata] '
|
||||
\ .'Please re-make cache by <Plug>(unite_redraw) mapping.')
|
||||
call neobundle#installer#error(v:exception . ' ' . v:throwpoint)
|
||||
|
||||
return []
|
||||
endtry
|
||||
endfunction"}}}
|
||||
|
||||
" Misc.
|
||||
function! s:get_repository_plugins(context) abort "{{{
|
||||
if a:context.is_redraw
|
||||
" Reload cache.
|
||||
call unite#print_message(
|
||||
\ '[neobundle/search:metadata] '
|
||||
\ .'Reloading cache from metadata repository')
|
||||
redraw
|
||||
|
||||
call neobundle#metadata#update()
|
||||
endif
|
||||
|
||||
return s:convert_metadata(neobundle#metadata#get())
|
||||
endfunction"}}}
|
||||
|
||||
function! s:convert_metadata(data) abort "{{{
|
||||
return values(map(copy(a:data), "{
|
||||
\ 'name' : v:key,
|
||||
\ 'raw_type' : get(v:val, 'script-type', ''),
|
||||
\ 'repository' : substitute(v:val.url, '^git://', 'https://', ''),
|
||||
\ 'description' : '',
|
||||
\ 'uri' : get(v:val, 'homepage', ''),
|
||||
\ }"))
|
||||
endfunction"}}}
|
||||
|
||||
function! s:convert2script_type(type) abort "{{{
|
||||
if a:type ==# 'utility'
|
||||
return 'plugin'
|
||||
elseif a:type ==# 'color scheme'
|
||||
return 'colors'
|
||||
else
|
||||
return a:type
|
||||
endif
|
||||
endfunction"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,160 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: vim_scripts_org.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com>
|
||||
" 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
|
||||
|
||||
let s:Cache = unite#util#get_vital_cache()
|
||||
|
||||
let s:repository_cache = []
|
||||
|
||||
function! neobundle#sources#vim_scripts_org#define() abort "{{{
|
||||
return s:source
|
||||
endfunction"}}}
|
||||
|
||||
let s:source = {
|
||||
\ 'name' : 'vim-scripts.org',
|
||||
\ 'short_name' : 'vim.org',
|
||||
\ }
|
||||
|
||||
function! s:source.gather_candidates(args, context) abort "{{{
|
||||
let repository =
|
||||
\ 'https://raw.githubusercontent.com/vim-scraper/'
|
||||
\ .'vim-scraper.github.com/master/api/scripts_recent.json'
|
||||
|
||||
call unite#print_message(
|
||||
\ '[neobundle/search:vim-scripts.org] repository: ' . repository)
|
||||
|
||||
let plugins = s:get_repository_plugins(a:context, repository)
|
||||
|
||||
try
|
||||
return map(copy(plugins), "{
|
||||
\ 'word' : v:val.name . ' ' . v:val.description,
|
||||
\ 'source__name' : v:val.name,
|
||||
\ 'source__path' : v:val.name,
|
||||
\ 'source__script_type' : s:convert2script_type(v:val.raw_type),
|
||||
\ 'source__description' : v:val.description,
|
||||
\ 'source__options' : [],
|
||||
\ 'action__uri' : v:val.uri,
|
||||
\ }")
|
||||
catch
|
||||
call unite#print_error(
|
||||
\ '[neobundle/search:vim-scripts.org] '
|
||||
\ .'Error occurred in loading cache.')
|
||||
call unite#print_error(
|
||||
\ '[neobundle/search:vim-scripts.org] '
|
||||
\ .'Please re-make cache by <Plug>(unite_redraw) mapping.')
|
||||
call neobundle#installer#error(v:exception . ' ' . v:throwpoint)
|
||||
|
||||
return []
|
||||
endtry
|
||||
endfunction"}}}
|
||||
|
||||
" Misc.
|
||||
function! s:get_repository_plugins(context, path) abort "{{{
|
||||
let cache_dir = neobundle#get_neobundle_dir() . '/.neobundle'
|
||||
|
||||
if a:context.is_redraw || !s:Cache.filereadable(cache_dir, a:path)
|
||||
" Reload cache.
|
||||
let cache_path = s:Cache.getfilename(cache_dir, a:path)
|
||||
|
||||
call unite#print_message(
|
||||
\ '[neobundle/search:vim-scripts.org] '
|
||||
\ .'Reloading cache from ' . a:path)
|
||||
redraw
|
||||
|
||||
if s:Cache.filereadable(cache_dir, a:path)
|
||||
call delete(cache_path)
|
||||
endif
|
||||
|
||||
let temp = unite#util#substitute_path_separator(tempname())
|
||||
|
||||
let cmd = neobundle#util#wget(a:path, temp)
|
||||
if cmd =~# '^E:'
|
||||
call unite#print_error(
|
||||
\ '[neobundle/search:vim-scripts.org] '.
|
||||
\ 'curl or wget command is not available!')
|
||||
return []
|
||||
endif
|
||||
|
||||
let result = unite#util#system(cmd)
|
||||
|
||||
if unite#util#get_last_status()
|
||||
call unite#print_message(
|
||||
\ '[neobundle/search:vim-scripts.org] ' . cmd)
|
||||
call unite#print_message(
|
||||
\ '[neobundle/search:vim-scripts.org] ' . result)
|
||||
call unite#print_error(
|
||||
\ '[neobundle/search:vim-scripts.org] Error occurred!')
|
||||
return []
|
||||
elseif !filereadable(temp)
|
||||
call unite#print_error('[neobundle/search:vim-scripts.org] '.
|
||||
\ 'Temporary file was not created!')
|
||||
return []
|
||||
else
|
||||
call unite#print_message('[neobundle/search:vim-scripts.org] Done!')
|
||||
endif
|
||||
|
||||
sandbox let data = eval(get(readfile(temp), 0, '[]'))
|
||||
|
||||
" Convert cache data.
|
||||
call s:Cache.writefile(cache_dir, a:path,
|
||||
\ [string(s:convert_vim_scripts_data(data))])
|
||||
|
||||
call delete(temp)
|
||||
endif
|
||||
|
||||
if empty(s:repository_cache)
|
||||
sandbox let s:repository_cache =
|
||||
\ eval(get(s:Cache.readfile(cache_dir, a:path), 0, '[]'))
|
||||
endif
|
||||
|
||||
return s:repository_cache
|
||||
endfunction"}}}
|
||||
|
||||
function! s:convert_vim_scripts_data(data) abort "{{{
|
||||
return map(copy(a:data), "{
|
||||
\ 'name' : v:val.n,
|
||||
\ 'raw_type' : v:val.t,
|
||||
\ 'repository' : v:val.rv,
|
||||
\ 'description' : printf('%-5s %s', v:val.rv, v:val.s),
|
||||
\ 'uri' : 'https://github.com/vim-scripts/' . v:val.n,
|
||||
\ }")
|
||||
endfunction"}}}
|
||||
|
||||
function! s:convert2script_type(type) abort "{{{
|
||||
if a:type ==# 'utility'
|
||||
return 'plugin'
|
||||
elseif a:type ==# 'color scheme'
|
||||
return 'colors'
|
||||
else
|
||||
return a:type
|
||||
endif
|
||||
endfunction"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,312 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: git.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com>
|
||||
" Robert Nelson <robert@rnelson.ca>
|
||||
" 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
|
||||
|
||||
" Global options definition. "{{{
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#types#git#command_path', 'git')
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#types#git#default_protocol', 'https',
|
||||
\ 'g:neobundle_default_git_protocol')
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#types#git#enable_submodule', 1)
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#types#git#clone_depth', 0,
|
||||
\ 'g:neobundle_git_clone_depth')
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#types#git#pull_command', 'pull --ff --ff-only')
|
||||
"}}}
|
||||
|
||||
function! neobundle#types#git#define() abort "{{{
|
||||
return s:type
|
||||
endfunction"}}}
|
||||
|
||||
let s:type = {
|
||||
\ 'name' : 'git',
|
||||
\ }
|
||||
|
||||
function! s:type.detect(path, opts) abort "{{{
|
||||
if a:path =~ '^/\|^\a:/' && s:is_git_dir(a:path.'/.git')
|
||||
" Local repository.
|
||||
return { 'uri' : a:path, 'type' : 'git' }
|
||||
elseif isdirectory(a:path)
|
||||
return {}
|
||||
endif
|
||||
|
||||
let protocol = matchstr(a:path, '^.\{-}\ze://')
|
||||
if protocol == '' || a:path =~#
|
||||
\'\<\%(gh\|github\|bb\|bitbucket\):\S\+'
|
||||
\ || has_key(a:opts, 'type__protocol')
|
||||
let protocol = get(a:opts, 'type__protocol',
|
||||
\ g:neobundle#types#git#default_protocol)
|
||||
endif
|
||||
|
||||
if protocol !=# 'https' && protocol !=# 'ssh'
|
||||
call neobundle#util#print_error(
|
||||
\ 'Path: ' . a:path . ' The protocol "' . protocol .
|
||||
\ '" is unsecure and invalid.')
|
||||
return {}
|
||||
endif
|
||||
|
||||
if a:path !~ '/'
|
||||
" www.vim.org Vim scripts.
|
||||
let name = split(a:path, ':')[-1]
|
||||
let uri = (protocol ==# 'ssh') ?
|
||||
\ 'git@github.com:vim-scripts/' :
|
||||
\ protocol . '://github.com/vim-scripts/'
|
||||
let uri .= name
|
||||
else
|
||||
let name = substitute(split(a:path, ':')[-1],
|
||||
\ '^//github.com/', '', '')
|
||||
let uri = (protocol ==# 'ssh') ?
|
||||
\ 'git@github.com:' . name :
|
||||
\ protocol . '://github.com/'. name
|
||||
endif
|
||||
|
||||
if a:path !~# '\<\%(gh\|github\):\S\+\|://github.com/'
|
||||
let uri = s:parse_other_pattern(protocol, a:path, a:opts)
|
||||
if uri == ''
|
||||
" Parse failure.
|
||||
return {}
|
||||
endif
|
||||
endif
|
||||
|
||||
if uri !~ '\.git\s*$'
|
||||
" Add .git suffix.
|
||||
let uri .= '.git'
|
||||
endif
|
||||
|
||||
return { 'uri': uri, 'type' : 'git' }
|
||||
endfunction"}}}
|
||||
function! s:type.get_sync_command(bundle) abort "{{{
|
||||
if !executable(g:neobundle#types#git#command_path)
|
||||
return 'E: "git" command is not installed.'
|
||||
endif
|
||||
|
||||
if !isdirectory(a:bundle.path)
|
||||
let cmd = 'clone'
|
||||
if g:neobundle#types#git#enable_submodule
|
||||
let cmd .= ' --recursive'
|
||||
endif
|
||||
|
||||
let depth = get(a:bundle, 'type__depth',
|
||||
\ g:neobundle#types#git#clone_depth)
|
||||
if depth > 0 && a:bundle.rev == '' && a:bundle.uri !~ '^git@'
|
||||
let cmd .= ' --depth=' . depth
|
||||
endif
|
||||
|
||||
let cmd .= printf(' %s "%s"', a:bundle.uri, a:bundle.path)
|
||||
else
|
||||
let cmd = g:neobundle#types#git#pull_command
|
||||
if g:neobundle#types#git#enable_submodule
|
||||
let shell = fnamemodify(split(&shell)[0], ':t')
|
||||
let and = (!neobundle#util#has_vimproc() && shell ==# 'fish') ?
|
||||
\ '; and ' : ' && '
|
||||
|
||||
let cmd .= and . g:neobundle#types#git#command_path
|
||||
\ . ' submodule update --init --recursive'
|
||||
endif
|
||||
endif
|
||||
|
||||
return g:neobundle#types#git#command_path . ' ' . cmd
|
||||
endfunction"}}}
|
||||
function! s:type.get_revision_number_command(bundle) abort "{{{
|
||||
if !executable(g:neobundle#types#git#command_path)
|
||||
return ''
|
||||
endif
|
||||
|
||||
return g:neobundle#types#git#command_path .' rev-parse HEAD'
|
||||
endfunction"}}}
|
||||
function! s:type.get_revision_pretty_command(bundle) abort "{{{
|
||||
if !executable(g:neobundle#types#git#command_path)
|
||||
return ''
|
||||
endif
|
||||
|
||||
return g:neobundle#types#git#command_path .
|
||||
\ ' log -1 --pretty=format:"%h [%cr] %s"'
|
||||
endfunction"}}}
|
||||
function! s:type.get_commit_date_command(bundle) abort "{{{
|
||||
if !executable(g:neobundle#types#git#command_path)
|
||||
return ''
|
||||
endif
|
||||
|
||||
return g:neobundle#types#git#command_path .
|
||||
\ ' log -1 --pretty=format:"%ct"'
|
||||
endfunction"}}}
|
||||
function! s:type.get_log_command(bundle, new_rev, old_rev) abort "{{{
|
||||
if !executable(g:neobundle#types#git#command_path)
|
||||
\ || a:new_rev == '' || a:old_rev == ''
|
||||
return ''
|
||||
endif
|
||||
|
||||
" Note: If the a:old_rev is not the ancestor of two branchs. Then do not use
|
||||
" %s^. use %s^ will show one commit message which already shown last time.
|
||||
let is_not_ancestor = neobundle#util#system(
|
||||
\ g:neobundle#types#git#command_path . ' merge-base '
|
||||
\ . a:old_rev . ' ' . a:new_rev) ==# a:old_rev
|
||||
return printf(g:neobundle#types#git#command_path .
|
||||
\ ' log %s%s..%s --graph --pretty=format:"%%h [%%cr] %%s"',
|
||||
\ a:old_rev, (is_not_ancestor ? '' : '^'), a:new_rev)
|
||||
|
||||
" Test.
|
||||
" return g:neobundle#types#git#command_path .
|
||||
" \ ' log HEAD^^^^..HEAD --graph --pretty=format:"%h [%cr] %s"'
|
||||
endfunction"}}}
|
||||
function! s:type.get_revision_lock_command(bundle) abort "{{{
|
||||
if !executable(g:neobundle#types#git#command_path)
|
||||
return ''
|
||||
endif
|
||||
|
||||
let rev = a:bundle.rev
|
||||
if rev ==# 'release'
|
||||
" Use latest released tag
|
||||
let rev = neobundle#installer#get_release_revision(a:bundle,
|
||||
\ g:neobundle#types#git#command_path . ' tag')
|
||||
endif
|
||||
if rev == ''
|
||||
" Fix detach HEAD.
|
||||
let rev = 'master'
|
||||
endif
|
||||
|
||||
return g:neobundle#types#git#command_path . ' checkout ' . rev
|
||||
endfunction"}}}
|
||||
function! s:type.get_gc_command(bundle) abort "{{{
|
||||
if !executable(g:neobundle#types#git#command_path)
|
||||
return ''
|
||||
endif
|
||||
|
||||
return g:neobundle#types#git#command_path .' gc'
|
||||
endfunction"}}}
|
||||
function! s:type.get_revision_remote_command(bundle) abort "{{{
|
||||
if !executable(g:neobundle#types#git#command_path)
|
||||
return ''
|
||||
endif
|
||||
|
||||
let rev = a:bundle.rev
|
||||
if rev == ''
|
||||
let rev = 'HEAD'
|
||||
endif
|
||||
|
||||
return g:neobundle#types#git#command_path
|
||||
\ .' ls-remote origin ' . rev
|
||||
endfunction"}}}
|
||||
function! s:type.get_fetch_remote_command(bundle) abort "{{{
|
||||
if !executable(g:neobundle#types#git#command_path)
|
||||
return ''
|
||||
endif
|
||||
|
||||
return g:neobundle#types#git#command_path
|
||||
\ .' fetch origin '
|
||||
endfunction"}}}
|
||||
|
||||
function! s:parse_other_pattern(protocol, path, opts) abort "{{{
|
||||
let uri = ''
|
||||
|
||||
if a:path =~# '\<gist:\S\+\|://gist.github.com/'
|
||||
let name = split(a:path, ':')[-1]
|
||||
let uri = (a:protocol ==# 'ssh') ?
|
||||
\ 'git@gist.github.com:' . split(name, '/')[-1] :
|
||||
\ a:protocol . '://gist.github.com/'. split(name, '/')[-1]
|
||||
elseif a:path =~# '\<git@\S\+'
|
||||
\ || a:path =~# '\.git\s*$'
|
||||
\ || get(a:opts, 'type', '') ==# 'git'
|
||||
if a:path =~# '\<\%(bb\|bitbucket\):\S\+'
|
||||
let name = substitute(split(a:path, ':')[-1],
|
||||
\ '^//bitbucket.org/', '', '')
|
||||
let uri = (a:protocol ==# 'ssh') ?
|
||||
\ 'git@bitbucket.org:' . name :
|
||||
\ a:protocol . '://bitbucket.org/' . name
|
||||
else
|
||||
let uri = a:path
|
||||
endif
|
||||
endif
|
||||
|
||||
return uri
|
||||
endfunction"}}}
|
||||
|
||||
function! s:is_git_dir(path) abort "{{{
|
||||
if isdirectory(a:path)
|
||||
let git_dir = a:path
|
||||
elseif filereadable(a:path)
|
||||
" check if this is a gitdir file
|
||||
" File starts with "gitdir: " and all text after this string is treated
|
||||
" as the path. Any CR or NLs are stripped off the end of the file.
|
||||
let buf = join(readfile(a:path, 'b'), "\n")
|
||||
let matches = matchlist(buf, '\C^gitdir: \(\_.*[^\r\n]\)[\r\n]*$')
|
||||
if empty(matches)
|
||||
return 0
|
||||
endif
|
||||
let path = fnamemodify(a:path, ':h')
|
||||
if fnamemodify(a:path, ':t') == ''
|
||||
" if there's no tail, the path probably ends in a directory separator
|
||||
let path = fnamemodify(path, ':h')
|
||||
endif
|
||||
let git_dir = neobundle#util#join_paths(path, matches[1])
|
||||
if !isdirectory(git_dir)
|
||||
return 0
|
||||
endif
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
|
||||
" Git only considers it to be a git dir if a few required files/dirs exist
|
||||
" and are accessible inside the directory.
|
||||
" Note: we can't actually test file permissions the way we'd like to, since
|
||||
" getfperm() gives the mode string but doesn't tell us whether the user or
|
||||
" group flags apply to us. Instead, just check if dirname/. is a directory.
|
||||
" This should also check if we have search permissions.
|
||||
" I'm assuming here that dirname/. works on windows, since I can't test.
|
||||
" Note: Git also accepts having the GIT_OBJECT_DIRECTORY env var set instead
|
||||
" of using .git/objects, but we don't care about that.
|
||||
for name in ['objects', 'refs']
|
||||
if !isdirectory(neobundle#util#join_paths(git_dir, name))
|
||||
return 0
|
||||
endif
|
||||
endfor
|
||||
|
||||
" Git also checks if HEAD is a symlink or a properly-formatted file.
|
||||
" We don't really care to actually validate this, so let's just make
|
||||
" sure the file exists and is readable.
|
||||
" Note: it may also be a symlink, which can point to a path that doesn't
|
||||
" necessarily exist yet.
|
||||
let head = neobundle#util#join_paths(git_dir, 'HEAD')
|
||||
if !filereadable(head) && getftype(head) != 'link'
|
||||
return 0
|
||||
endif
|
||||
|
||||
" Sure looks like a git directory. There's a few subtleties where we'll
|
||||
" accept a directory that git itself won't, but I think we can safely ignore
|
||||
" those edge cases.
|
||||
return 1
|
||||
endfunction "}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,119 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: hg.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com>
|
||||
" 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
|
||||
|
||||
" Global options definition. "{{{
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#types#hg#command_path', 'hg')
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#types#hg#default_protocol', 'https',
|
||||
\ 'g:neobundle_default_hg_protocol')
|
||||
"}}}
|
||||
|
||||
function! neobundle#types#hg#define() abort "{{{
|
||||
return s:type
|
||||
endfunction"}}}
|
||||
|
||||
let s:type = {
|
||||
\ 'name' : 'hg',
|
||||
\ }
|
||||
|
||||
function! s:type.detect(path, opts) abort "{{{
|
||||
if isdirectory(a:path.'/.hg')
|
||||
" Local repository.
|
||||
return { 'uri' : a:path, 'type' : 'hg' }
|
||||
elseif isdirectory(a:path)
|
||||
return {}
|
||||
endif
|
||||
|
||||
let protocol = matchstr(a:path, '^.\{-}\ze://')
|
||||
if protocol == '' || a:path =~#
|
||||
\'\<\%(bb\|bitbucket\):\S\+'
|
||||
\ || has_key(a:opts, 'type__protocol')
|
||||
let protocol = get(a:opts, 'type__protocol',
|
||||
\ g:neobundle#types#hg#default_protocol)
|
||||
endif
|
||||
|
||||
if protocol !=# 'https' && protocol !=# 'ssh'
|
||||
call neobundle#util#print_error(
|
||||
\ 'Path: ' . a:path . ' The protocol "' . protocol .
|
||||
\ '" is unsecure and invalid.')
|
||||
return {}
|
||||
endif
|
||||
|
||||
if a:path =~# '\<\%(bb\|bitbucket\):'
|
||||
let name = substitute(split(a:path, ':')[-1],
|
||||
\ '^//bitbucket.org/', '', '')
|
||||
let uri = (protocol ==# 'ssh') ?
|
||||
\ 'ssh://hg@bitbucket.org/' . name :
|
||||
\ protocol . '://bitbucket.org/' . name
|
||||
elseif a:path =~? '[/.]hg[/.@]'
|
||||
\ || (a:path =~# '\<https://bitbucket\.org/'
|
||||
\ || get(a:opts, 'type', '') ==# 'hg')
|
||||
let uri = a:path
|
||||
else
|
||||
return {}
|
||||
endif
|
||||
|
||||
return { 'uri' : uri, 'type' : 'hg' }
|
||||
endfunction"}}}
|
||||
function! s:type.get_sync_command(bundle) abort "{{{
|
||||
if !executable(g:neobundle#types#hg#command_path)
|
||||
return 'E: "hg" command is not installed.'
|
||||
endif
|
||||
|
||||
if !isdirectory(a:bundle.path)
|
||||
let cmd = 'clone'
|
||||
let cmd .= printf(' %s "%s"', a:bundle.uri, a:bundle.path)
|
||||
else
|
||||
let cmd = 'pull -u'
|
||||
endif
|
||||
|
||||
return g:neobundle#types#hg#command_path . ' ' . cmd
|
||||
endfunction"}}}
|
||||
function! s:type.get_revision_number_command(bundle) abort "{{{
|
||||
if !executable(g:neobundle#types#hg#command_path)
|
||||
return ''
|
||||
endif
|
||||
|
||||
return g:neobundle#types#hg#command_path
|
||||
\ . ' heads --quiet --rev default'
|
||||
endfunction"}}}
|
||||
function! s:type.get_revision_lock_command(bundle) abort "{{{
|
||||
if !executable(g:neobundle#types#hg#command_path)
|
||||
\ || a:bundle.rev == ''
|
||||
return ''
|
||||
endif
|
||||
|
||||
return g:neobundle#types#hg#command_path
|
||||
\ . ' up ' . a:bundle.rev
|
||||
endfunction"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: none.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com>
|
||||
" 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#types#none#define() abort "{{{
|
||||
return s:type
|
||||
endfunction"}}}
|
||||
|
||||
let s:type = {
|
||||
\ 'name' : 'none',
|
||||
\ }
|
||||
|
||||
function! s:type.detect(path, opts) abort "{{{
|
||||
" No Auto detect.
|
||||
return {}
|
||||
endfunction"}}}
|
||||
function! s:type.get_sync_command(bundle) abort "{{{
|
||||
if isdirectory(a:bundle.path)
|
||||
return ''
|
||||
endif
|
||||
|
||||
" Try auto install.
|
||||
let path = a:bundle.orig_path
|
||||
let site = get(a:bundle, 'site', g:neobundle#default_site)
|
||||
if path !~ '^/\|^\a:' && path !~ ':'
|
||||
" Add default site.
|
||||
let path = site . ':' . path
|
||||
endif
|
||||
|
||||
for type in neobundle#config#get_types()
|
||||
let detect = type.detect(path, a:bundle.orig_opts)
|
||||
|
||||
if !empty(detect)
|
||||
return type.get_sync_command(
|
||||
\ extend(copy(a:bundle), detect))
|
||||
endif
|
||||
endfor
|
||||
|
||||
return 'E: Failed to auto installation.'
|
||||
endfunction"}}}
|
||||
function! s:type.get_revision_number_command(bundle) abort "{{{
|
||||
return ''
|
||||
endfunction"}}}
|
||||
function! s:type.get_revision_lock_command(bundle) abort "{{{
|
||||
return ''
|
||||
endfunction"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,116 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: raw.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com>
|
||||
" 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
|
||||
|
||||
" Global options definition. "{{{
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#types#raw#calc_hash_command',
|
||||
\ executable('sha1sum') ? 'sha1sum' :
|
||||
\ executable('md5sum') ? 'md5sum' : '')
|
||||
"}}}
|
||||
|
||||
function! neobundle#types#raw#define() abort "{{{
|
||||
return s:type
|
||||
endfunction"}}}
|
||||
|
||||
let s:type = {
|
||||
\ 'name' : 'raw',
|
||||
\ }
|
||||
|
||||
function! s:type.detect(path, opts) abort "{{{
|
||||
" No auto detect.
|
||||
let type = ''
|
||||
let name = ''
|
||||
|
||||
if a:path =~# '^https:.*\.vim$'
|
||||
" HTTPS
|
||||
|
||||
let name = neobundle#util#name_conversion(a:path)
|
||||
|
||||
let type = 'raw'
|
||||
elseif a:path =~#
|
||||
\ '^https://www\.vim\.org/scripts/download_script.php?src_id=\d\+$'
|
||||
" For www.vim.org
|
||||
let name = 'vim-scripts-' . matchstr(a:path, '\d\+$')
|
||||
let type = 'raw'
|
||||
endif
|
||||
|
||||
return type == '' ? {} :
|
||||
\ { 'name': name, 'uri' : a:path, 'type' : type }
|
||||
endfunction"}}}
|
||||
function! s:type.get_sync_command(bundle) abort "{{{
|
||||
if a:bundle.script_type == ''
|
||||
return 'E: script_type is not found.'
|
||||
endif
|
||||
|
||||
let path = a:bundle.path
|
||||
|
||||
if !isdirectory(path)
|
||||
" Create script type directory.
|
||||
call mkdir(path, 'p')
|
||||
endif
|
||||
|
||||
let filename = path . '/' . get(a:bundle,
|
||||
\ 'type__filename', fnamemodify(a:bundle.uri, ':t'))
|
||||
let a:bundle.type__filepath = filename
|
||||
|
||||
let cmd = neobundle#util#wget(a:bundle.uri, filename)
|
||||
|
||||
return cmd
|
||||
endfunction"}}}
|
||||
function! s:type.get_revision_number_command(bundle) abort "{{{
|
||||
if g:neobundle#types#raw#calc_hash_command == ''
|
||||
return ''
|
||||
endif
|
||||
|
||||
if !filereadable(a:bundle.type__filepath)
|
||||
" Not Installed.
|
||||
return ''
|
||||
endif
|
||||
|
||||
" Calc hash.
|
||||
return printf('%s %s',
|
||||
\ g:neobundle#types#raw#calc_hash_command,
|
||||
\ a:bundle.type__filepath)
|
||||
endfunction"}}}
|
||||
function! s:type.get_revision_lock_command(bundle) abort "{{{
|
||||
let new_rev = matchstr(a:bundle.new_rev, '^\S\+')
|
||||
if a:bundle.rev != '' && new_rev != '' &&
|
||||
\ new_rev !=# a:bundle.rev
|
||||
" Revision check.
|
||||
return printf('E: revision digest is not matched : "%s"(got) and "%s"(rev).',
|
||||
\ new_rev, a:bundle.rev)
|
||||
endif
|
||||
|
||||
" Not supported.
|
||||
return ''
|
||||
endfunction"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,93 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: svn.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com>
|
||||
" 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
|
||||
|
||||
" Global options definition. "{{{
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#types#svn#command_path', 'svn')
|
||||
"}}}
|
||||
|
||||
function! neobundle#types#svn#define() abort "{{{
|
||||
return s:type
|
||||
endfunction"}}}
|
||||
|
||||
let s:type = {
|
||||
\ 'name' : 'svn',
|
||||
\ }
|
||||
|
||||
function! s:type.detect(path, opts) abort "{{{
|
||||
if isdirectory(a:path)
|
||||
return {}
|
||||
endif
|
||||
|
||||
let type = ''
|
||||
let uri = ''
|
||||
|
||||
if (a:path =~# '\<\%(file\|https\)://'
|
||||
\ && a:path =~? '[/.]svn[/.]')
|
||||
\ || a:path =~# '\<svn+ssh://'
|
||||
let uri = a:path
|
||||
let type = 'svn'
|
||||
endif
|
||||
|
||||
return type == '' ? {} : { 'uri': uri, 'type' : type }
|
||||
endfunction"}}}
|
||||
function! s:type.get_sync_command(bundle) abort "{{{
|
||||
if !executable(g:neobundle#types#svn#command_path)
|
||||
return 'E: svn command is not installed.'
|
||||
endif
|
||||
|
||||
if !isdirectory(a:bundle.path)
|
||||
let cmd = 'checkout'
|
||||
let cmd .= printf(' %s "%s"', a:bundle.uri, a:bundle.path)
|
||||
else
|
||||
let cmd = 'up'
|
||||
endif
|
||||
|
||||
return g:neobundle#types#svn#command_path . ' ' . cmd
|
||||
endfunction"}}}
|
||||
function! s:type.get_revision_number_command(bundle) abort "{{{
|
||||
if !executable(g:neobundle#types#svn#command_path)
|
||||
return ''
|
||||
endif
|
||||
|
||||
return g:neobundle#types#svn#command_path . ' info'
|
||||
endfunction"}}}
|
||||
function! s:type.get_revision_lock_command(bundle) abort "{{{
|
||||
if !executable(g:neobundle#types#svn#command_path)
|
||||
\ || a:bundle.rev == ''
|
||||
return ''
|
||||
endif
|
||||
|
||||
return g:neobundle#types#svn#command_path
|
||||
\ . ' up -r ' . a:bundle.rev
|
||||
endfunction"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,146 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: vba.vim
|
||||
" AUTHOR: Yu Huang <paulhybryant@gmail.com>
|
||||
" 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
|
||||
|
||||
" Global options definition. "{{{
|
||||
call neobundle#util#set_default(
|
||||
\ 'g:neobundle#types#vba#calc_hash_command',
|
||||
\ executable('sha1sum') ? 'sha1sum' :
|
||||
\ executable('md5sum') ? 'md5sum' : '')
|
||||
"}}}
|
||||
|
||||
function! neobundle#types#vba#define() abort "{{{
|
||||
return s:type
|
||||
endfunction"}}}
|
||||
|
||||
let s:type = {
|
||||
\ 'name' : 'vba',
|
||||
\ }
|
||||
|
||||
function! s:type.detect(path, opts) abort "{{{
|
||||
" No auto detect.
|
||||
let type = ''
|
||||
let name = ''
|
||||
|
||||
if a:path =~# '^https:.*\.vba\(\.gz\)\?$'
|
||||
" HTTPS
|
||||
" .*.vba / .*.vba.gz
|
||||
let name = fnamemodify(split(a:path, ':')[-1],
|
||||
\ ':s?/$??:t:s?\c\.vba\(\.gz\)*\s*$??')
|
||||
let type = 'vba'
|
||||
elseif a:path =~# '\.vba\(\.gz\)\?$' && filereadable(a:path)
|
||||
" local
|
||||
" .*.vba
|
||||
let name = fnamemodify(a:path, ':t:s?\c\.vba\(\.gz\)*\s*$??')
|
||||
let type = 'vba'
|
||||
endif
|
||||
|
||||
if a:path =~# '^https:.*\.vmb$'
|
||||
" HTTPS
|
||||
" .*.vmb
|
||||
let name = fnamemodify(split(a:path, ':')[-1],
|
||||
\ ':s?/$??:t:s?\c\.vba\s*$??')
|
||||
let type = 'vba'
|
||||
elseif a:path =~# '\.vmb$' && filereadable(a:path)
|
||||
" local
|
||||
" .*.vmb
|
||||
let name = fnamemodify(a:path, ':t:s?\c\.vba\s*$??')
|
||||
let type = 'vba'
|
||||
endif
|
||||
|
||||
return type == '' ? {} :
|
||||
\ { 'name': name, 'uri' : a:path, 'type' : type }
|
||||
endfunction"}}}
|
||||
function! s:type.get_sync_command(bundle) abort "{{{
|
||||
let path = a:bundle.path
|
||||
|
||||
if !isdirectory(path)
|
||||
" Create script type directory.
|
||||
call mkdir(path, 'p')
|
||||
endif
|
||||
|
||||
let filename = path . '/' . get(a:bundle,
|
||||
\ 'type__filename', fnamemodify(a:bundle.uri, ':t'))
|
||||
let a:bundle.type__filepath = filename
|
||||
|
||||
let cmd = ''
|
||||
if filereadable(a:bundle.uri)
|
||||
call writefile(readfile(a:bundle.uri, 'b'), filename, 'b')
|
||||
else
|
||||
let cmd = neobundle#util#wget(a:bundle.uri, filename)
|
||||
if cmd =~# '^E:'
|
||||
return cmd
|
||||
endif
|
||||
let cmd .= ' && '
|
||||
endif
|
||||
|
||||
let cmd .= printf('%s -u NONE' .
|
||||
\ ' -c "set nocompatible"' .
|
||||
\ ' -c "filetype plugin on"' .
|
||||
\ ' -c "runtime plugin/gzip.vim"' .
|
||||
\ ' -c "runtime plugin/vimballPlugin.vim"' .
|
||||
\ ' -c "edit %s"' .
|
||||
\ ' -c "UseVimball %s"' .
|
||||
\ ' -c "q"', v:progpath, filename, path)
|
||||
" let cmd .= printf(' rm %s &&', filename)
|
||||
" let cmd .= printf(' rm %s/.VimballRecord', path)
|
||||
|
||||
return cmd
|
||||
endfunction"}}}
|
||||
function! s:type.get_revision_number_command(bundle) abort "{{{
|
||||
if g:neobundle#types#vba#calc_hash_command == ''
|
||||
return ''
|
||||
endif
|
||||
|
||||
if !has_key(a:bundle, 'type__filepath')
|
||||
\ || !filereadable(a:bundle.type__filepath)
|
||||
" Not Installed.
|
||||
return ''
|
||||
endif
|
||||
|
||||
" Calc hash.
|
||||
return printf('%s %s',
|
||||
\ g:neobundle#types#vba#calc_hash_command,
|
||||
\ a:bundle.type__filepath)
|
||||
endfunction"}}}
|
||||
function! s:type.get_revision_lock_command(bundle) abort "{{{
|
||||
let new_rev = matchstr(a:bundle.new_rev, '^\S\+')
|
||||
if a:bundle.rev != '' && new_rev != '' &&
|
||||
\ new_rev !=# a:bundle.rev
|
||||
" Revision check.
|
||||
return printf('E: revision digest is not matched : "%s"(got) and "%s"(rev).',
|
||||
\ new_rev, a:bundle.rev)
|
||||
endif
|
||||
|
||||
" Not supported.
|
||||
return ''
|
||||
endfunction"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,106 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: neobundle.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com>
|
||||
" 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! unite#kinds#neobundle#define() abort "{{{
|
||||
return s:kind
|
||||
endfunction"}}}
|
||||
|
||||
let s:kind = {
|
||||
\ 'name' : 'neobundle',
|
||||
\ 'action_table': {},
|
||||
\ 'parents' : ['uri', 'directory'],
|
||||
\ 'default_action' : 'update',
|
||||
\}
|
||||
|
||||
" Actions "{{{
|
||||
let s:kind.action_table.update = {
|
||||
\ 'description' : 'update bundles',
|
||||
\ 'is_selectable' : 1,
|
||||
\ 'is_start' : 1,
|
||||
\ }
|
||||
function! s:kind.action_table.update.func(candidates) abort "{{{
|
||||
call unite#start_script([['neobundle/update', '!']
|
||||
\ + map(copy(a:candidates), 'v:val.action__bundle_name')],
|
||||
\ { 'log' : 1 })
|
||||
endfunction"}}}
|
||||
let s:kind.action_table.delete = {
|
||||
\ 'description' : 'delete bundles',
|
||||
\ 'is_invalidate_cache' : 1,
|
||||
\ 'is_quit' : 0,
|
||||
\ 'is_selectable' : 1,
|
||||
\ }
|
||||
function! s:kind.action_table.delete.func(candidates) abort "{{{
|
||||
call call('neobundle#commands#clean', insert(map(copy(a:candidates),
|
||||
\ 'v:val.action__bundle_name'), 0))
|
||||
endfunction"}}}
|
||||
let s:kind.action_table.reinstall = {
|
||||
\ 'description' : 'reinstall bundles',
|
||||
\ 'is_selectable' : 1,
|
||||
\ }
|
||||
function! s:kind.action_table.reinstall.func(candidates) abort "{{{
|
||||
call neobundle#installer#reinstall(
|
||||
\ map(copy(a:candidates), 'v:val.action__bundle'))
|
||||
endfunction"}}}
|
||||
let s:kind.action_table.preview = {
|
||||
\ 'description' : 'view the plugin documentation',
|
||||
\ 'is_quit' : 0,
|
||||
\ }
|
||||
function! s:kind.action_table.preview.func(candidate) abort "{{{
|
||||
" Search help files.
|
||||
let readme = get(split(globpath(
|
||||
\ a:candidate.action__path, 'doc/*.?*', 1), '\n'), 0, '')
|
||||
|
||||
if readme == ''
|
||||
" Search README files.
|
||||
let readme = get(split(globpath(
|
||||
\ a:candidate.action__path, 'README*', 1), '\n'), 0, '')
|
||||
if readme == ''
|
||||
return
|
||||
endif
|
||||
endif
|
||||
|
||||
let buflisted = buflisted(
|
||||
\ unite#util#escape_file_searching(readme))
|
||||
|
||||
execute 'pedit' fnameescape(readme)
|
||||
|
||||
" Open folds.
|
||||
normal! zv
|
||||
normal! zt
|
||||
|
||||
if !buflisted
|
||||
call unite#add_previewed_buffer_list(
|
||||
\ bufnr(unite#util#escape_file_searching(readme)))
|
||||
endif
|
||||
endfunction"}}}
|
||||
"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,143 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: neobundle.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com>
|
||||
" 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! unite#sources#neobundle#define() abort "{{{
|
||||
return s:source
|
||||
endfunction"}}}
|
||||
|
||||
let s:source = {
|
||||
\ 'name' : 'neobundle',
|
||||
\ 'description' : 'candidates from bundles',
|
||||
\ 'hooks' : {},
|
||||
\ }
|
||||
|
||||
function! s:source.hooks.on_init(args, context) abort "{{{
|
||||
let bundle_names = filter(copy(a:args), 'v:val != "!"')
|
||||
let a:context.source__bang =
|
||||
\ index(a:args, '!') >= 0
|
||||
let a:context.source__bundles = neobundle#util#sort_by(
|
||||
\ (empty(bundle_names) ?
|
||||
\ neobundle#config#get_neobundles() :
|
||||
\ neobundle#config#search(bundle_names)),
|
||||
\ 'tolower(v:val.orig_name)')
|
||||
endfunction"}}}
|
||||
|
||||
" Filters "{{{
|
||||
function! s:source.source__converter(candidates, context) abort "{{{
|
||||
for candidate in a:candidates
|
||||
if candidate.source__uri =~
|
||||
\ '^\%(https\?\|git\)://github.com/'
|
||||
let candidate.action__uri = candidate.source__uri
|
||||
let candidate.action__uri =
|
||||
\ substitute(candidate.action__uri, '^git://', 'https://', '')
|
||||
let candidate.action__uri =
|
||||
\ substitute(candidate.action__uri, '.git$', '', '')
|
||||
endif
|
||||
endfor
|
||||
|
||||
return a:candidates
|
||||
endfunction"}}}
|
||||
|
||||
let s:source.converters = s:source.source__converter
|
||||
"}}}
|
||||
|
||||
function! s:source.gather_candidates(args, context) abort "{{{
|
||||
let _ = map(copy(a:context.source__bundles), "{
|
||||
\ 'word' : substitute(v:val.orig_name,
|
||||
\ '^\%(https\?\|git\)://\%(github.com/\)\?', '', ''),
|
||||
\ 'kind' : 'neobundle',
|
||||
\ 'action__path' : v:val.path,
|
||||
\ 'action__directory' : v:val.path,
|
||||
\ 'action__bundle' : v:val,
|
||||
\ 'action__bundle_name' : v:val.name,
|
||||
\ 'source__uri' : v:val.uri,
|
||||
\ 'source__description' : v:val.description,
|
||||
\ 'is_multiline' : 1,
|
||||
\ }
|
||||
\")
|
||||
|
||||
let max = max(map(copy(_), 'len(v:val.word)'))
|
||||
|
||||
call unite#print_source_message(
|
||||
\ '#: not sourced, X: not installed', self.name)
|
||||
|
||||
for candidate in _
|
||||
let candidate.abbr =
|
||||
\ neobundle#is_sourced(candidate.action__bundle_name) ? ' ' :
|
||||
\ neobundle#is_installed(candidate.action__bundle_name) ? '#' : 'X'
|
||||
let candidate.abbr .= ' ' . unite#util#truncate(candidate.word, max)
|
||||
if candidate.source__description != ''
|
||||
let candidate.abbr .= ' : ' . candidate.source__description
|
||||
endif
|
||||
|
||||
if a:context.source__bang
|
||||
let status = s:get_commit_status(candidate.action__bundle)
|
||||
if status != ''
|
||||
let candidate.abbr .= "\n " . status
|
||||
endif
|
||||
endif
|
||||
|
||||
let candidate.word .= candidate.source__description
|
||||
endfor
|
||||
|
||||
return _
|
||||
endfunction"}}}
|
||||
|
||||
function! s:get_commit_status(bundle) abort "{{{
|
||||
if !isdirectory(a:bundle.path)
|
||||
return 'Not installed'
|
||||
endif
|
||||
|
||||
let type = neobundle#config#get_types(a:bundle.type)
|
||||
let cmd = has_key(type, 'get_revision_pretty_command') ?
|
||||
\ type.get_revision_pretty_command(a:bundle) :
|
||||
\ type.get_revision_number_command(a:bundle)
|
||||
if cmd == ''
|
||||
return ''
|
||||
endif
|
||||
|
||||
let cwd = getcwd()
|
||||
try
|
||||
call neobundle#util#cd(a:bundle.path)
|
||||
let output = neobundle#util#system(cmd)
|
||||
finally
|
||||
call neobundle#util#cd(cwd)
|
||||
endtry
|
||||
|
||||
if neobundle#util#get_last_status()
|
||||
return printf('Error(%d) occurred when executing "%s"',
|
||||
\ neobundle#util#get_last_status(), cmd)
|
||||
endif
|
||||
|
||||
return output
|
||||
endfunction"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,190 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: neobundle/install.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com>
|
||||
" 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! unite#sources#neobundle_install#define() abort "{{{
|
||||
return [s:source_install, s:source_update]
|
||||
endfunction"}}}
|
||||
|
||||
let s:source_install = {
|
||||
\ 'name' : 'neobundle/install',
|
||||
\ 'description' : 'install bundles',
|
||||
\ 'hooks' : {},
|
||||
\ 'default_kind' : 'word',
|
||||
\ 'syntax' : 'uniteSource__NeoBundleInstall',
|
||||
\ }
|
||||
|
||||
function! s:source_install.hooks.on_init(args, context) abort "{{{
|
||||
let bundle_names = filter(copy(a:args), "v:val != '!'")
|
||||
let a:context.source__bang =
|
||||
\ index(a:args, '!') >= 0 || !empty(bundle_names)
|
||||
let a:context.source__not_fuzzy = 0
|
||||
call s:init(a:context, bundle_names)
|
||||
endfunction"}}}
|
||||
|
||||
function! s:source_install.hooks.on_syntax(args, context) abort "{{{
|
||||
syntax match uniteSource__NeoBundleInstall_Progress /(.\{-}):\s*.*/
|
||||
\ contained containedin=uniteSource__NeoBundleInstall
|
||||
highlight default link uniteSource__NeoBundleInstall_Progress String
|
||||
syntax match uniteSource__NeoBundleInstall_Source /|.\{-}|/
|
||||
\ contained containedin=uniteSource__NeoBundleInstall_Progress
|
||||
highlight default link uniteSource__NeoBundleInstall_Source Type
|
||||
syntax match uniteSource__NeoBundleInstall_URI /-> diff URI/
|
||||
\ contained containedin=uniteSource__NeoBundleInstall
|
||||
highlight default link uniteSource__NeoBundleInstall_URI Underlined
|
||||
endfunction"}}}
|
||||
|
||||
function! s:source_install.hooks.on_close(args, context) abort "{{{
|
||||
if !empty(a:context.source__processes)
|
||||
for process in a:context.source__processes
|
||||
if has('nvim')
|
||||
call jobstop(process.proc)
|
||||
else
|
||||
call process.proc.waitpid()
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
endfunction"}}}
|
||||
|
||||
function! s:source_install.async_gather_candidates(args, context) abort "{{{
|
||||
if !a:context.sync && empty(filter(range(1, winnr('$')),
|
||||
\ "getwinvar(v:val, '&l:filetype') ==# 'unite'"))
|
||||
return []
|
||||
endif
|
||||
|
||||
let old_msgs = copy(neobundle#installer#get_updates_log())
|
||||
|
||||
if a:context.source__number < a:context.source__max_bundles
|
||||
while a:context.source__number < a:context.source__max_bundles
|
||||
\ && len(a:context.source__processes) <
|
||||
\ g:neobundle#install_max_processes
|
||||
let bundle = a:context.source__bundles[a:context.source__number]
|
||||
call neobundle#installer#sync(bundle, a:context, 1)
|
||||
|
||||
call unite#clear_message()
|
||||
call unite#print_source_message(
|
||||
\ neobundle#installer#get_progress_message(bundle,
|
||||
\ a:context.source__number,
|
||||
\ a:context.source__max_bundles), self.name)
|
||||
redrawstatus
|
||||
endwhile
|
||||
endif
|
||||
|
||||
if !empty(a:context.source__processes)
|
||||
for process in a:context.source__processes
|
||||
call neobundle#installer#check_output(a:context, process, 1)
|
||||
endfor
|
||||
|
||||
" Filter eof processes.
|
||||
call filter(a:context.source__processes, '!v:val.eof')
|
||||
else
|
||||
call neobundle#installer#update_log(
|
||||
\ neobundle#installer#get_updated_bundles_message(
|
||||
\ a:context.source__synced_bundles), 1)
|
||||
call neobundle#installer#update_log(
|
||||
\ neobundle#installer#get_errored_bundles_message(
|
||||
\ a:context.source__errored_bundles), 1)
|
||||
call neobundle#installer#update(
|
||||
\ a:context.source__synced_bundles)
|
||||
|
||||
" Finish.
|
||||
call neobundle#installer#update_log('Completed.', 1)
|
||||
|
||||
let a:context.is_async = 0
|
||||
endif
|
||||
|
||||
return map(neobundle#installer#get_updates_log()[len(old_msgs) :], "{
|
||||
\ 'word' : (v:val =~ '^\\s*\\h\\w*://' ? ' -> diff URI' : v:val),
|
||||
\ 'is_multiline' : 1,
|
||||
\ 'kind' : (v:val =~ '^\\s*\\h\\w*://' ? 'uri' : 'word'),
|
||||
\ 'action__uri' : substitute(v:val, '^\\s\\+', '', ''),
|
||||
\}")
|
||||
endfunction"}}}
|
||||
|
||||
function! s:source_install.complete(args, context, arglead, cmdline, cursorpos) abort "{{{
|
||||
return ['!'] +
|
||||
\ neobundle#commands#complete_bundles(a:arglead, a:cmdline, a:cursorpos)
|
||||
endfunction"}}}
|
||||
|
||||
let s:source_update = deepcopy(s:source_install)
|
||||
let s:source_update.name = 'neobundle/update'
|
||||
let s:source_update.description = 'update bundles'
|
||||
|
||||
function! s:source_update.hooks.on_init(args, context) abort "{{{
|
||||
let a:context.source__bang =
|
||||
\ index(a:args, 'all') >= 0 ? 2 : 1
|
||||
let a:context.source__not_fuzzy = index(a:args, '!') >= 0
|
||||
let bundle_names = filter(copy(a:args),
|
||||
\ "v:val !=# 'all' && v:val !=# '!'")
|
||||
call s:init(a:context, bundle_names)
|
||||
endfunction"}}}
|
||||
|
||||
function! s:init(context, bundle_names) abort "{{{
|
||||
let a:context.source__synced_bundles = []
|
||||
let a:context.source__errored_bundles = []
|
||||
|
||||
let a:context.source__processes = []
|
||||
|
||||
let a:context.source__number = 0
|
||||
|
||||
let a:context.source__bundles = !a:context.source__bang ?
|
||||
\ neobundle#get_force_not_installed_bundles(a:bundle_names) :
|
||||
\ empty(a:bundle_names) ?
|
||||
\ neobundle#config#get_enabled_bundles() :
|
||||
\ a:context.source__not_fuzzy ?
|
||||
\ neobundle#config#search(a:bundle_names) :
|
||||
\ neobundle#config#fuzzy_search(a:bundle_names)
|
||||
|
||||
call neobundle#installer#_load_install_info(
|
||||
\ a:context.source__bundles)
|
||||
|
||||
let reinstall_bundles =
|
||||
\ neobundle#installer#get_reinstall_bundles(
|
||||
\ a:context.source__bundles)
|
||||
if !empty(reinstall_bundles)
|
||||
call neobundle#installer#reinstall(reinstall_bundles)
|
||||
endif
|
||||
|
||||
let a:context.source__max_bundles =
|
||||
\ len(a:context.source__bundles)
|
||||
|
||||
call neobundle#installer#clear_log()
|
||||
|
||||
if empty(a:context.source__bundles)
|
||||
let a:context.is_async = 0
|
||||
call neobundle#installer#error(
|
||||
\ 'Target bundles not found. You may use wrong bundle name.')
|
||||
else
|
||||
call neobundle#installer#update_log(
|
||||
\ 'Update started: ' . strftime('(%Y/%m/%d %H:%M:%S)'))
|
||||
endif
|
||||
endfunction"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: neobundle_lazy.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com>
|
||||
" 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! unite#sources#neobundle_lazy#define() abort "{{{
|
||||
return s:source
|
||||
endfunction"}}}
|
||||
|
||||
let s:source = {
|
||||
\ 'name' : 'neobundle/lazy',
|
||||
\ 'description' : 'candidates from lazy bundles',
|
||||
\ 'action_table' : {},
|
||||
\ 'default_action' : 'source',
|
||||
\ }
|
||||
|
||||
function! s:source.gather_candidates(args, context) abort "{{{
|
||||
let _ = []
|
||||
for bundle in filter(copy(neobundle#config#get_neobundles()),
|
||||
\ '!v:val.sourced')
|
||||
let name = substitute(bundle.orig_name,
|
||||
\ '^\%(https\?\|git\)://\%(github.com/\)\?', '', '')
|
||||
let dict = {
|
||||
\ 'word' : name,
|
||||
\ 'kind' : 'neobundle',
|
||||
\ 'action__path' : bundle.path,
|
||||
\ 'action__directory' : bundle.path,
|
||||
\ 'action__bundle' : bundle,
|
||||
\ 'action__bundle_name' : bundle.name,
|
||||
\ 'source__uri' : bundle.uri,
|
||||
\ }
|
||||
call add(_, dict)
|
||||
endfor
|
||||
|
||||
return _
|
||||
endfunction"}}}
|
||||
|
||||
" Actions "{{{
|
||||
let s:source.action_table.source = {
|
||||
\ 'description' : 'source bundles',
|
||||
\ 'is_selectable' : 1,
|
||||
\ 'is_invalidate_cache' : 1,
|
||||
\ }
|
||||
function! s:source.action_table.source.func(candidates) abort "{{{
|
||||
call call('neobundle#config#source',
|
||||
\ map(copy(a:candidates), 'v:val.action__bundle_name'))
|
||||
endfunction"}}}
|
||||
"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: neobundle/log.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com>
|
||||
" 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! unite#sources#neobundle_log#define() abort "{{{
|
||||
return s:source
|
||||
endfunction"}}}
|
||||
|
||||
let s:source = {
|
||||
\ 'name' : 'neobundle/log',
|
||||
\ 'description' : 'print previous neobundle install logs',
|
||||
\ 'syntax' : 'uniteSource__NeoBundleLog',
|
||||
\ 'hooks' : {},
|
||||
\ }
|
||||
|
||||
function! s:source.hooks.on_syntax(args, context) abort "{{{
|
||||
syntax match uniteSource__NeoBundleLog_Message /.*/
|
||||
\ contained containedin=uniteSource__NeoBundleLog
|
||||
highlight default link uniteSource__NeoBundleLog_Message Comment
|
||||
syntax match uniteSource__NeoBundleLog_Progress /(.\{-}):\s*.*/
|
||||
\ contained containedin=uniteSource__NeoBundleLog
|
||||
highlight default link uniteSource__NeoBundleLog_Progress String
|
||||
syntax match uniteSource__NeoBundleLog_Source /|.\{-}|/
|
||||
\ contained containedin=uniteSource__NeoBundleLog_Progress
|
||||
highlight default link uniteSource__NeoBundleLog_Source Type
|
||||
syntax match uniteSource__NeoBundleLog_URI /-> diff URI/
|
||||
\ contained containedin=uniteSource__NeoBundleLog
|
||||
highlight default link uniteSource__NeoBundleLog_URI Underlined
|
||||
endfunction"}}}
|
||||
|
||||
function! s:source.gather_candidates(args, context) abort "{{{
|
||||
return map(copy(neobundle#installer#get_log()), "{
|
||||
\ 'word' : (v:val =~ '^\\s*\\h\\w*://' ? ' -> diff URI' : v:val),
|
||||
\ 'kind' : (v:val =~ '^\\s*\\h\\w*://' ? 'uri' : 'word'),
|
||||
\ 'action__uri' : substitute(v:val, '^\\s\\+', '', ''),
|
||||
\ }")
|
||||
endfunction"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,265 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: neobundle_search.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com>
|
||||
" 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
|
||||
|
||||
let s:Cache = unite#util#get_vital_cache()
|
||||
|
||||
function! unite#sources#neobundle_search#define() abort "{{{
|
||||
" Init sources.
|
||||
if !exists('s:neobundle_sources')
|
||||
let s:neobundle_sources = {}
|
||||
for define in map(split(globpath(&runtimepath,
|
||||
\ 'autoload/neobundle/sources/*.vim', 1), '\n'),
|
||||
\ "neobundle#sources#{fnamemodify(v:val, ':t:r')}#define()")
|
||||
for dict in (type(define) == type([]) ? define : [define])
|
||||
if !empty(dict) && !has_key(s:neobundle_sources, dict.name)
|
||||
let s:neobundle_sources[dict.name] = dict
|
||||
endif
|
||||
endfor
|
||||
unlet define
|
||||
endfor
|
||||
endif
|
||||
|
||||
return s:source
|
||||
endfunction"}}}
|
||||
|
||||
let s:plugin_names = []
|
||||
|
||||
" Source rec.
|
||||
let s:source = {
|
||||
\ 'name' : 'neobundle/search',
|
||||
\ 'description' : 'search plugins for neobundle',
|
||||
\ 'hooks' : {},
|
||||
\ 'action_table' : {},
|
||||
\ 'default_action' : 'yank',
|
||||
\ 'max_candidates' : 200,
|
||||
\ 'syntax' : 'uniteSource__NeoBundleSearch',
|
||||
\ 'parents' : ['uri'],
|
||||
\ }
|
||||
|
||||
function! s:source.hooks.on_init(args, context) abort "{{{
|
||||
let a:context.source__sources = copy(s:neobundle_sources)
|
||||
if !empty(a:args)
|
||||
let a:context.source__sources = filter(
|
||||
\ a:context.source__sources,
|
||||
\ 'index(a:args, v:key) >= 0')
|
||||
endif
|
||||
|
||||
let a:context.source__input = a:context.input
|
||||
if a:context.source__input == ''
|
||||
let a:context.source__input =
|
||||
\ unite#util#input('Please input search word: ', '',
|
||||
\ 'customlist,unite#sources#neobundle_search#complete_plugin_names')
|
||||
endif
|
||||
endfunction"}}}
|
||||
function! s:source.gather_candidates(args, context) abort "{{{
|
||||
if neobundle#util#is_sudo()
|
||||
call neobundle#util#print_error(
|
||||
\ '"sudo vim" is detected. This feature is disabled.')
|
||||
return []
|
||||
endif
|
||||
|
||||
call unite#print_source_message('Search word: '
|
||||
\ . a:context.source__input, s:source.name)
|
||||
|
||||
let candidates = []
|
||||
let a:context.source__source_names = []
|
||||
|
||||
let s:plugin_names = []
|
||||
|
||||
for source in values(a:context.source__sources)
|
||||
let source_candidates = source.gather_candidates(a:args, a:context)
|
||||
let source_name = get(source, 'short_name', source.name)
|
||||
for candidate in source_candidates
|
||||
let candidate.source__source = source_name
|
||||
if !has_key(candidate, 'source__script_type')
|
||||
let candidate.source__script_type = ''
|
||||
endif
|
||||
if !has_key(candidate, 'source__description')
|
||||
let candidate.source__description = ''
|
||||
endif
|
||||
endfor
|
||||
|
||||
let candidates += source_candidates
|
||||
call add(a:context.source__source_names, source_name)
|
||||
|
||||
let s:plugin_names += map(copy(source_candidates), 'v:val.source__name')
|
||||
endfor
|
||||
|
||||
call s:initialize_plugin_names(a:context)
|
||||
|
||||
return filter(candidates,
|
||||
\ 'stridx(v:val.word, a:context.source__input) >= 0')
|
||||
endfunction"}}}
|
||||
|
||||
function! s:source.complete(args, context, arglead, cmdline, cursorpos) abort "{{{
|
||||
let arglead = get(a:args, -1, '')
|
||||
return filter(keys(s:neobundle_sources),
|
||||
\ "stridx(v:val, arglead) == 0")
|
||||
endfunction"}}}
|
||||
|
||||
function! s:source.hooks.on_syntax(args, context) abort "{{{
|
||||
syntax match uniteSource__NeoBundleSearch_DescriptionLine
|
||||
\ / -- .*$/
|
||||
\ contained containedin=uniteSource__NeoBundleSearch
|
||||
syntax match uniteSource__NeoBundleSearch_Description
|
||||
\ /.*$/
|
||||
\ contained containedin=uniteSource__NeoBundleSearch_DescriptionLine
|
||||
syntax match uniteSource__NeoBundleSearch_Marker
|
||||
\ / -- /
|
||||
\ contained containedin=uniteSource__NeoBundleSearch_DescriptionLine
|
||||
syntax match uniteSource__NeoBundleSearch_Install
|
||||
\ / Installed /
|
||||
\ contained containedin=uniteSource__NeoBundleSearch
|
||||
highlight default link uniteSource__NeoBundleSearch_Install Statement
|
||||
highlight default link uniteSource__NeoBundleSearch_Marker Special
|
||||
highlight default link uniteSource__NeoBundleSearch_Description Comment
|
||||
endfunction"}}}
|
||||
|
||||
" Actions "{{{
|
||||
let s:source.action_table.yank = {
|
||||
\ 'description' : 'yank plugin settings',
|
||||
\ 'is_selectable' : 1,
|
||||
\ }
|
||||
function! s:source.action_table.yank.func(candidates) abort "{{{
|
||||
let @" = join(map(a:candidates,
|
||||
\ "'NeoBundle ' . s:get_neobundle_args(v:val)"), "\n")
|
||||
if has('clipboard')
|
||||
call setreg(v:register, @")
|
||||
endif
|
||||
|
||||
echo 'Yanked plugin settings!'
|
||||
endfunction"}}}
|
||||
|
||||
let s:source.action_table.install = {
|
||||
\ 'description' : 'direct install plugins',
|
||||
\ 'is_selectable' : 1,
|
||||
\ 'is_quit' : 0,
|
||||
\ }
|
||||
function! s:source.action_table.install.func(candidates) abort "{{{
|
||||
for candidate in a:candidates
|
||||
execute 'NeoBundleDirectInstall' s:get_neobundle_args(candidate)
|
||||
endfor
|
||||
endfunction"}}}
|
||||
"}}}
|
||||
|
||||
" Filters "{{{
|
||||
function! s:source.source__sorter(candidates, context) abort "{{{
|
||||
return s:sort_by(a:candidates, 'v:val.source__name')
|
||||
endfunction"}}}
|
||||
function! s:source.source__converter(candidates, context) abort "{{{
|
||||
let max_plugin_name = max(map(copy(a:candidates),
|
||||
\ 'len(v:val.source__name)'))
|
||||
let max_script_type = max(map(copy(a:candidates),
|
||||
\ 'len(v:val.source__script_type)'))
|
||||
let max_source_name = max(map(copy(a:context.source__source_names),
|
||||
\ 'len(v:val)'))
|
||||
let format = '%-'. max_plugin_name .'s %-'.
|
||||
\ max_source_name .'s %-'. max_script_type .'s -- %s'
|
||||
|
||||
for candidate in a:candidates
|
||||
let candidate.abbr = printf(format,
|
||||
\ candidate.source__name, candidate.source__source,
|
||||
\ candidate.source__script_type,
|
||||
\ (neobundle#is_installed(candidate.source__name) ?
|
||||
\ 'Installed' : candidate.source__description))
|
||||
let candidate.is_multiline = 1
|
||||
let candidate.kind =
|
||||
\ get(candidate, 'action__path', '') != '' ?
|
||||
\ 'file' : 'common'
|
||||
endfor
|
||||
|
||||
return a:candidates
|
||||
endfunction"}}}
|
||||
|
||||
let s:source.sorters = s:source.source__sorter
|
||||
let s:source.converters = s:source.source__converter
|
||||
"}}}
|
||||
|
||||
" Misc. "{{{
|
||||
function! s:sort_by(list, expr) abort
|
||||
let pairs = map(a:list, printf('[v:val, %s]', a:expr))
|
||||
return map(s:sort(pairs,
|
||||
\ 'a:a[1] == a:b[1] ? 0 : a:a[1] > a:b[1] ? 1 : -1'), 'v:val[0]')
|
||||
endfunction
|
||||
|
||||
" Sorts a list with expression to compare each two values.
|
||||
" a:a and a:b can be used in {expr}.
|
||||
function! s:sort(list, expr) abort
|
||||
if type(a:expr) == type(function('function'))
|
||||
return sort(a:list, a:expr)
|
||||
endif
|
||||
let s:expr = a:expr
|
||||
return sort(a:list, 's:_compare')
|
||||
endfunction
|
||||
|
||||
function! s:_compare(a, b) abort
|
||||
return eval(s:expr)
|
||||
endfunction
|
||||
|
||||
function! s:get_neobundle_args(candidate) abort
|
||||
return string(substitute(a:candidate.source__path,
|
||||
\ '^https://github.com/', '', ''))
|
||||
\ . (empty(a:candidate.source__options) ?
|
||||
\ '' : ', ' . string(a:candidate.source__options))
|
||||
\ . (a:candidate.source__description == '' ? '' :
|
||||
\ ' " ' . a:candidate.source__description)
|
||||
endfunction
|
||||
|
||||
function! unite#sources#neobundle_search#complete_plugin_names(arglead, cmdline, cursorpos) abort "{{{
|
||||
return filter(s:get_plugin_names(), "stridx(v:val, a:arglead) == 0")
|
||||
endfunction"}}}
|
||||
|
||||
function! s:initialize_plugin_names(context) abort "{{{
|
||||
let cache_dir = neobundle#get_neobundle_dir() . '/.neobundle'
|
||||
let path = 'plugin_names'
|
||||
|
||||
if a:context.is_redraw || !s:Cache.filereadable(cache_dir, path)
|
||||
" Convert cache data.
|
||||
call s:Cache.writefile(cache_dir, path, [string(s:plugin_names)])
|
||||
endif
|
||||
|
||||
return s:get_plugin_names()
|
||||
endfunction"}}}
|
||||
|
||||
function! s:get_plugin_names() abort "{{{
|
||||
let cache_dir = neobundle#get_neobundle_dir() . '/.neobundle'
|
||||
let path = 'plugin_names'
|
||||
|
||||
if empty(s:plugin_names) && s:Cache.filereadable(cache_dir, path)
|
||||
sandbox let s:plugin_names =
|
||||
\ eval(get(s:Cache.readfile(cache_dir, path), 0, '[]'))
|
||||
endif
|
||||
|
||||
return neobundle#util#uniq(s:plugin_names)
|
||||
endfunction"}}}
|
||||
"}}}
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,137 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Standalone installer for Unixs
|
||||
# Original version is created by shoma2da
|
||||
# https://github.com/shoma2da/neobundle_installer
|
||||
|
||||
# Installation directory
|
||||
BUNDLE_DIR=~/.vim/bundle
|
||||
INSTALL_DIR="$BUNDLE_DIR/neobundle.vim"
|
||||
echo "$INSTALL_DIR"
|
||||
if [ -e "$INSTALL_DIR" ]; then
|
||||
echo "$INSTALL_DIR already exists!"
|
||||
fi
|
||||
|
||||
NVIM_DIR=~/.config/nvim
|
||||
NVIM_BUNDLE_DIR="$NVIM_DIR/bundle"
|
||||
NVIM_INSTALL_DIR="$NVIM_BUNDLE_DIR/neobundle.vim"
|
||||
echo "$NVIM_INSTALL_DIR"
|
||||
if [ -e "$NVIM_INSTALL_DIR" ]; then
|
||||
echo "$NVIM_INSTALL_DIR already exists!"
|
||||
fi
|
||||
|
||||
if [ -e "$INSTALL_DIR" ] && [ -e "$NVIM_INSTALL_DIR" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# check git command
|
||||
if type git; then
|
||||
: # You have git command. No Problem.
|
||||
else
|
||||
echo 'Please install git or update your path to include the git executable!'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# make bundle dir and fetch neobundle
|
||||
echo "Begin fetching NeoBundle..."
|
||||
if ! [ -e "$INSTALL_DIR" ]; then
|
||||
mkdir -p "$BUNDLE_DIR"
|
||||
git clone https://github.com/Shougo/neobundle.vim "$INSTALL_DIR"
|
||||
fi
|
||||
|
||||
if type nvim > /dev/null 2>&1 && ! [ -e "$NVIM_INSTALL_DIR" ]; then
|
||||
mkdir -p "$NVIM_BUNDLE_DIR"
|
||||
git clone https://github.com/Shougo/neobundle.vim "$NVIM_INSTALL_DIR"
|
||||
fi
|
||||
|
||||
echo "Done."
|
||||
|
||||
# write initial setting for .vimrc
|
||||
echo "Please add the following settings for NeoBundle to the top of your .vimrc file:"
|
||||
{
|
||||
echo ""
|
||||
echo ""
|
||||
echo "\"NeoBundle Scripts-----------------------------"
|
||||
echo "if &compatible"
|
||||
echo " set nocompatible \" Be iMproved"
|
||||
echo "endif"
|
||||
echo ""
|
||||
echo "\" Required:"
|
||||
echo "set runtimepath+=$BUNDLE_DIR/neobundle.vim/"
|
||||
echo ""
|
||||
echo "\" Required:"
|
||||
echo "call neobundle#begin(expand('$BUNDLE_DIR'))"
|
||||
echo ""
|
||||
echo "\" Let NeoBundle manage NeoBundle"
|
||||
echo "\" Required:"
|
||||
echo "NeoBundleFetch 'Shougo/neobundle.vim'"
|
||||
echo ""
|
||||
echo "\" Add or remove your Bundles here:"
|
||||
echo "NeoBundle 'Shougo/neosnippet.vim'"
|
||||
echo "NeoBundle 'Shougo/neosnippet-snippets'"
|
||||
echo "NeoBundle 'tpope/vim-fugitive'"
|
||||
echo "NeoBundle 'ctrlpvim/ctrlp.vim'"
|
||||
echo "NeoBundle 'flazz/vim-colorschemes'"
|
||||
echo ""
|
||||
echo "\" You can specify revision/branch/tag."
|
||||
echo "NeoBundle 'Shougo/vimshell', { 'rev' : '3787e5' }"
|
||||
echo ""
|
||||
echo "\" Required:"
|
||||
echo "call neobundle#end()"
|
||||
echo ""
|
||||
echo "\" Required:"
|
||||
echo "filetype plugin indent on"
|
||||
echo ""
|
||||
echo "\" If there are uninstalled bundles found on startup,"
|
||||
echo "\" this will conveniently prompt you to install them."
|
||||
echo "NeoBundleCheck"
|
||||
echo "\"End NeoBundle Scripts-------------------------"
|
||||
echo ""
|
||||
echo ""
|
||||
}
|
||||
|
||||
# write initial setting for ~/.config/nvim/init.vim
|
||||
if type nvim > /dev/null 2>&1; then
|
||||
echo "Please add the following settings for NeoBundle to the top of your init.vim file:"
|
||||
{
|
||||
echo ""
|
||||
echo ""
|
||||
echo "\"NeoBundle Scripts-----------------------------"
|
||||
echo "if has('vim_starting')"
|
||||
echo " \" Required:"
|
||||
echo " set runtimepath+=$NVIM_BUNDLE_DIR/neobundle.vim/"
|
||||
echo "endif"
|
||||
echo ""
|
||||
echo "\" Required:"
|
||||
echo "call neobundle#begin(expand('$NVIM_BUNDLE_DIR'))"
|
||||
echo ""
|
||||
echo "\" Let NeoBundle manage NeoBundle"
|
||||
echo "\" Required:"
|
||||
echo "NeoBundleFetch 'Shougo/neobundle.vim'"
|
||||
echo ""
|
||||
echo "\" Add or remove your Bundles here:"
|
||||
echo "NeoBundle 'Shougo/neosnippet.vim'"
|
||||
echo "NeoBundle 'Shougo/neosnippet-snippets'"
|
||||
echo "NeoBundle 'tpope/vim-fugitive'"
|
||||
echo "NeoBundle 'ctrlpvim/ctrlp.vim'"
|
||||
echo "NeoBundle 'flazz/vim-colorschemes'"
|
||||
echo ""
|
||||
echo "\" You can specify revision/branch/tag."
|
||||
echo "NeoBundle 'Shougo/vimshell', { 'rev' : '3787e5' }"
|
||||
echo ""
|
||||
echo "\" Required:"
|
||||
echo "call neobundle#end()"
|
||||
echo ""
|
||||
echo "\" Required:"
|
||||
echo "filetype plugin indent on"
|
||||
echo ""
|
||||
echo "\" If there are uninstalled bundles found on startup,"
|
||||
echo "\" this will conveniently prompt you to install them."
|
||||
echo "NeoBundleCheck"
|
||||
echo "\"End NeoBundle Scripts-------------------------"
|
||||
echo ""
|
||||
echo ""
|
||||
}
|
||||
fi
|
||||
echo "Done."
|
||||
|
||||
echo "Complete setup NeoBundle!"
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Detect .vimrc path.
|
||||
VIMRC=$HOME/.vimrc
|
||||
|
||||
if [ ! -e $VIMRC ]; then
|
||||
VIMRC=$HOME/.vim/vimrc
|
||||
fi
|
||||
|
||||
vim -N -u $VIMRC -c "try | NeoBundleUpdate! $* | finally | qall! | endtry" \
|
||||
-U NONE -i NONE -V1 -e -s
|
||||
echo ''
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
@echo off
|
||||
for /F "usebackq" %%t in (`where vim`) do SET _VIM=%%t
|
||||
set VIM=%_VIM:\vim.exe=%
|
||||
if "%HOME%"=="" set HOME=%USERPROFILE%
|
||||
set _VIMRC=%HOME%\_vimrc
|
||||
if exist %_VIMRC% goto EXEC_NEOBUNDLE_INSTALL
|
||||
if not exist %_VIMRC% goto DOTVIMRC
|
||||
|
||||
:DOTVIMRC
|
||||
set VIMRC=%HOME%\.vimrc
|
||||
if exist %VIMRC% goto EXEC_NEOBUNDLE_INSTALL
|
||||
if not exist %VIMRC% goto VIMFILES
|
||||
|
||||
:VIMFILES
|
||||
set VIMRC=%HOME%\vimfiles\vimrc
|
||||
if exist %VIMRC% goto EXEC_NEOBUNDLE_INSTALL
|
||||
if not exist %VIMRC% goto ORIGIN_VIM
|
||||
|
||||
:ORIGIN_VIM
|
||||
set VIMRC=%VIM%\_vimrc
|
||||
if exist %VIMRC% goto EXEC_NEOBUNDLE_INSTALL
|
||||
if not exist %VIMRC% goto NO_EXEC_NEOBUNDLE_INSTALL
|
||||
|
||||
@echo on
|
||||
:EXEC_NEOBUNDLE_INSTALL
|
||||
vim -N -u %VIMRC% -c "try | NeoBundleUpdate! %* | finally | qall! | endtry" -U NONE -i NONE -V1 -e -s
|
||||
|
||||
|
||||
:NO_EXEC_NEOBUNDLE_INSTALL
|
||||
echo 'vimrc is NotFound.'
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
@echo off
|
||||
for /F "usebackq" %%t in (`where vim`) do SET _VIM=%%t
|
||||
set VIM=%_VIM:\vim.exe=%
|
||||
if "%HOME%"=="" set HOME=%USERPROFILE%
|
||||
set _VIMRC=%HOME%\_vimrc
|
||||
if exist %_VIMRC% goto EXEC_NEOBUNDLE_INSTALL
|
||||
if not exist %_VIMRC% goto DOTVIMRC
|
||||
|
||||
:DOTVIMRC
|
||||
set VIMRC=%HOME%\.vimrc
|
||||
if exist %VIMRC% goto EXEC_NEOBUNDLE_INSTALL
|
||||
if not exist %VIMRC% goto VIMFILES
|
||||
|
||||
:VIMFILES
|
||||
set VIMRC=%HOME%\vimfiles\vimrc
|
||||
if exist %VIMRC% goto EXEC_NEOBUNDLE_INSTALL
|
||||
if not exist %VIMRC% goto ORIGIN_VIM
|
||||
|
||||
:ORIGIN_VIM
|
||||
set VIMRC=%VIM%\_vimrc
|
||||
if exist %VIMRC% goto EXEC_NEOBUNDLE_INSTALL
|
||||
if not exist %VIMRC% goto NO_EXEC_NEOBUNDLE_INSTALL
|
||||
|
||||
@echo on
|
||||
:EXEC_NEOBUNDLE_INSTALL
|
||||
vim -N -u %VIMRC% --cmd "let g:vimproc#disable = 1" -c "try | NeoBundleUpdate! %* | finally | qall! | endtry" -U NONE -i NONE -V1 -e -s
|
||||
|
||||
|
||||
:NO_EXEC_NEOBUNDLE_INSTALL
|
||||
echo 'vimrc is NotFound.'
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,60 +0,0 @@
|
|||
"=============================================================================
|
||||
" FILE: neobundle.vim
|
||||
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com>
|
||||
" 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
|
||||
|
||||
if exists('g:loaded_neobundle')
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
finish
|
||||
elseif v:version < 702 || (v:version == 702 && !has('patch51'))
|
||||
" Neobundle uses glob()/globpath() another parameter.
|
||||
" It is implemented in Vim 7.2.051.
|
||||
echoerr 'neobundle does not work this version of Vim "' . v:version . '".'
|
||||
\ .' You must use Vim 7.2.051 or later.'
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
finish
|
||||
elseif fnamemodify(&shell, ':t') ==# 'fish' && !has('patch-7.4.276')
|
||||
echoerr 'Vim does not support "' . &shell . '".'
|
||||
\ .' You must use Vim 7.4.276 or later.'
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_neobundle = 1
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" __END__
|
||||
" vim: foldmethod=marker
|
||||
|
|
@ -1,117 +0,0 @@
|
|||
" Basic commands test.
|
||||
set verbose=1
|
||||
|
||||
let path = expand('~/test-bundle/'.fnamemodify(expand('<sfile>'), ':t:r'))
|
||||
|
||||
if isdirectory(path)
|
||||
let rm_command = neobundle#util#is_windows() ? 'rmdir /S /Q' : 'rm -rf'
|
||||
call system(printf('%s "%s"', rm_command, path))
|
||||
endif
|
||||
|
||||
call mkdir(path, 'p')
|
||||
|
||||
call neobundle#begin(path)
|
||||
|
||||
let g:neobundle#types#git#default_protocol = 'https'
|
||||
|
||||
" My Bundles here:
|
||||
"
|
||||
|
||||
" Original repositories in github.
|
||||
NeoBundle 'Shougo/neocomplcache-clang.git'
|
||||
|
||||
" Vim-script repositories.
|
||||
NeoBundle 'rails.vim'
|
||||
|
||||
" Username with dashes.
|
||||
NeoBundle 'vim-scripts/ragtag.vim'
|
||||
|
||||
" Original repo.
|
||||
NeoBundle 'altercation/vim-colors-solarized'
|
||||
|
||||
" With extension.
|
||||
" Comment is allowed.
|
||||
NeoBundle 'nelstrom/vim-mac-classic-theme.git' " Foo, Bar
|
||||
|
||||
" Invalid uri.
|
||||
NeoBundle 'nonexistinguser/hogehoge.git'
|
||||
|
||||
" Full uri.
|
||||
NeoBundle 'https://github.com/vim-scripts/vim-game-of-life'
|
||||
NeoBundle 'git@github.com:gmarik/ingretu.git'
|
||||
|
||||
" Short uri.
|
||||
NeoBundle 'gh:gmarik/snipmate.vim.git'
|
||||
NeoBundle 'github:mattn/gist-vim.git'
|
||||
|
||||
" Camel case.
|
||||
NeoBundle 'vim-scripts/RubySinatra'
|
||||
|
||||
" With options.
|
||||
NeoBundle 'Shougo/vimshell', '3787e5'
|
||||
|
||||
" None repos.
|
||||
NeoBundle 'muttator', {'type' : 'none', 'base' : '~/.vim/bundle'}
|
||||
|
||||
" Raw repos.
|
||||
NeoBundle 'https://raw.github.com/m2ym/rsense/master/etc/rsense.vim',
|
||||
\ {'script_type' : 'plugin'}
|
||||
|
||||
" NeoBundleLocal test.
|
||||
NeoBundleLocal ~/.vim/bundle/
|
||||
|
||||
" Depends repos.
|
||||
NeoBundle 'Shougo/neocomplcache',
|
||||
\ {'depends' : [
|
||||
\ 'Shougo/neocomplcache-snippets-complete.git',
|
||||
\ ['rstacruz/sparkup', {'rtp': 'vim'}],
|
||||
\ ]}
|
||||
NeoBundle 'Shougo/vimfiler',
|
||||
\ { 'depends' : 'Shougo/unite.vim' }
|
||||
|
||||
" Build repos.
|
||||
NeoBundle 'Shougo/vimproc', {
|
||||
\ 'build' : {
|
||||
\ 'windows' : 'echo "Sorry, cannot update vimproc binary file in Windows."',
|
||||
\ 'cygwin' : 'make -f make_cygwin.mak',
|
||||
\ 'mac' : 'make -f make_mac.mak',
|
||||
\ 'unix' : 'make -f make_unix.mak',
|
||||
\ },
|
||||
\ }
|
||||
|
||||
" Lazy load.
|
||||
NeoBundleLazy 'c9s/perlomni.vim.git'
|
||||
NeoBundleSource perlomni.vim
|
||||
call neobundle#source(['CSApprox'])
|
||||
|
||||
NeoBundleLazy 'The-NERD-tree', {'augroup' : 'NERDTree'}
|
||||
call neobundle#source(['The-NERD-tree'])
|
||||
|
||||
NeoBundleLazy 'masudaK/vim-python'
|
||||
NeoBundleLazy 'klen/python-mode'
|
||||
|
||||
NeoBundleLazy 'Rip-Rip/clang_complete', {
|
||||
\ 'autoload' : {
|
||||
\ 'filetypes' : ['c', 'cpp'],
|
||||
\ },
|
||||
\ }
|
||||
|
||||
" script_type support.
|
||||
NeoBundle 'https://raw.github.com/m2ym/rsense/master/etc/rsense.vim',
|
||||
\ {'script_type' : 'plugin'}
|
||||
|
||||
" Fetch only.
|
||||
NeoBundleFetch 'Shougo/neobundle.vim'
|
||||
|
||||
call neobundle#end()
|
||||
|
||||
filetype plugin indent on " required!
|
||||
|
||||
" Should not break helptags.
|
||||
set wildignore+=doc
|
||||
|
||||
" Should not break clone.
|
||||
set wildignore+=.git
|
||||
set wildignore+=.git/*
|
||||
set wildignore+=*/.git/*
|
||||
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
" Lock file test.
|
||||
set verbose=1
|
||||
|
||||
let path = expand('~/test-bundle/'.fnamemodify(expand('<sfile>'), ':t:r'))
|
||||
|
||||
if isdirectory(path)
|
||||
let rm_command = neobundle#util#is_windows() ? 'rmdir /S /Q' : 'rm -rf'
|
||||
call system(printf('%s "%s"', rm_command, path))
|
||||
endif
|
||||
|
||||
call mkdir(path, 'p')
|
||||
|
||||
call neobundle#begin(path)
|
||||
|
||||
NeoBundleFetch 'Shougo/neocomplete.vim'
|
||||
|
||||
call neobundle#end()
|
||||
|
||||
filetype plugin indent on " Required!
|
||||
|
||||
" Create lock file
|
||||
call writefile([
|
||||
\ 'NeoBundleLock neocomplete.vim 8200dfd83ba829f77f028ea26e81eebbe95e6a89',
|
||||
\ ], path . '/NeoBundle.lock')
|
||||
|
||||
NeoBundleInstall
|
||||
|
||||
let s:suite = themis#suite('lock')
|
||||
let s:assert = themis#helper('assert')
|
||||
|
||||
function! s:suite.revision_check() abort
|
||||
let bundle = neobundle#get('neocomplete.vim')
|
||||
call s:assert.equals(neobundle#installer#get_revision_number(bundle),
|
||||
\ '8200dfd83ba829f77f028ea26e81eebbe95e6a89')
|
||||
endfunction
|
||||
|
|
@ -1,333 +0,0 @@
|
|||
let s:suite = themis#suite('parser')
|
||||
let s:assert = themis#helper('assert')
|
||||
|
||||
let g:neobundle#types#git#default_protocol = 'https'
|
||||
let g:neobundle#types#hg#default_protocol = 'https'
|
||||
let g:neobundle#enable_name_conversion = 0
|
||||
|
||||
function! s:suite.github_git_repos() abort
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'Shougo/neocomplcache-clang.git'),
|
||||
\ {'type' : 'git', 'uri' :
|
||||
\ g:neobundle#types#git#default_protocol .
|
||||
\ '://github.com/Shougo/neocomplcache-clang.git',
|
||||
\ 'name' : 'neocomplcache-clang'})
|
||||
call s:assert.equals(neobundle#parser#path('Shougo/vimshell'),
|
||||
\ {'type' : 'git', 'uri' :
|
||||
\ g:neobundle#types#git#default_protocol .
|
||||
\ '://github.com/Shougo/vimshell.git',
|
||||
\ 'name' : 'vimshell'})
|
||||
call s:assert.equals(neobundle#parser#path('rails.vim'),
|
||||
\ {'type' : 'git', 'uri' :
|
||||
\ g:neobundle#types#git#default_protocol .
|
||||
\ '://github.com/vim-scripts/rails.vim.git',
|
||||
\ 'name' : 'rails.vim'})
|
||||
call s:assert.equals(neobundle#parser#path('vim-scripts/ragtag.vim'),
|
||||
\ {'type' : 'git', 'uri' :
|
||||
\ g:neobundle#types#git#default_protocol .
|
||||
\ '://github.com/vim-scripts/ragtag.vim.git',
|
||||
\ 'name' : 'ragtag.vim'})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'https://github.com/vim-scripts/vim-game-of-life'),
|
||||
\ {'type' : 'git', 'uri' :
|
||||
\ 'https://github.com/vim-scripts/vim-game-of-life.git',
|
||||
\ 'name' : 'vim-game-of-life'})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'git@github.com:gmarik/ingretu.git'),
|
||||
\ {'type' : 'git', 'uri' :
|
||||
\ 'git@github.com:gmarik/ingretu.git',
|
||||
\ 'name' : 'ingretu'})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'gh:gmarik/snipmate.vim.git'),
|
||||
\ {'type' : 'git', 'uri' :
|
||||
\ g:neobundle#types#git#default_protocol .
|
||||
\ '://github.com/gmarik/snipmate.vim.git',
|
||||
\ 'name' : 'snipmate.vim'})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'github:mattn/gist-vim.git'),
|
||||
\ {'type' : 'git', 'uri' :
|
||||
\ g:neobundle#types#git#default_protocol .
|
||||
\ '://github.com/mattn/gist-vim.git',
|
||||
\ 'name' : 'gist-vim'})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'git@github.com:Shougo/neocomplcache.git'),
|
||||
\ {'type' : 'git', 'uri' :
|
||||
\ 'git@github.com:Shougo/neocomplcache.git',
|
||||
\ 'name' : 'neocomplcache'})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'https://github.com/Shougo/neocomplcache/'),
|
||||
\ {'type' : 'git', 'uri' :
|
||||
\ 'https://github.com/Shougo/neocomplcache.git',
|
||||
\ 'name' : 'neocomplcache'})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'git://git.wincent.com/command-t.git'),
|
||||
\ {})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'http://github.com/Shougo/neocomplcache/'),
|
||||
\ {})
|
||||
endfunction
|
||||
|
||||
function! s:suite.svn_repos() abort
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'http://svn.macports.org/repository/macports/contrib/mpvim/'),
|
||||
\ {})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'svn://user@host/repos/bar'),
|
||||
\ {})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'https://svn.macports.org/repository/macports/contrib/mpvim/'),
|
||||
\ {'type' : 'svn', 'uri' :
|
||||
\ 'https://svn.macports.org/repository/macports/contrib/mpvim',
|
||||
\ 'name' : 'mpvim'})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'svn+ssh://user@host/repos/bar'),
|
||||
\ {'type' : 'svn', 'uri' :
|
||||
\ 'svn+ssh://user@host/repos/bar',
|
||||
\ 'name' : 'bar'})
|
||||
endfunction
|
||||
|
||||
function! s:suite.hg_repos() abort
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'https://bitbucket.org/ns9tks/vim-fuzzyfinder'),
|
||||
\ {'type' : 'hg', 'uri' :
|
||||
\ 'https://bitbucket.org/ns9tks/vim-fuzzyfinder',
|
||||
\ 'name' : 'vim-fuzzyfinder'})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'bitbucket://bitbucket.org/ns9tks/vim-fuzzyfinder'),
|
||||
\ {'type' : 'hg', 'uri' :
|
||||
\ g:neobundle#types#hg#default_protocol.
|
||||
\ '://bitbucket.org/ns9tks/vim-fuzzyfinder',
|
||||
\ 'name' : 'vim-fuzzyfinder'})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'bitbucket:ns9tks/vim-fuzzyfinder'),
|
||||
\ {'type' : 'hg', 'uri' :
|
||||
\ g:neobundle#types#hg#default_protocol.
|
||||
\ '://bitbucket.org/ns9tks/vim-fuzzyfinder',
|
||||
\ 'name' : 'vim-fuzzyfinder'})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'ns9tks/vim-fuzzyfinder', {'site': 'bitbucket'}),
|
||||
\ {'type' : 'hg', 'uri' :
|
||||
\ g:neobundle#types#hg#default_protocol.
|
||||
\ '://bitbucket.org/ns9tks/vim-fuzzyfinder',
|
||||
\ 'name' : 'vim-fuzzyfinder'})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'ssh://hg@bitbucket.org/ns9tks/vim-fuzzyfinder'),
|
||||
\ {'type' : 'hg', 'uri' :
|
||||
\ 'ssh://hg@bitbucket.org/ns9tks/vim-fuzzyfinder',
|
||||
\ 'name' : 'vim-fuzzyfinder'})
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://github.com/Shougo/neobundle.vim.git',
|
||||
\ [{ 'type' : 'hg'}])
|
||||
call s:assert.equals(bundle.name, 'neobundle.vim')
|
||||
call s:assert.equals(bundle.type, 'hg')
|
||||
call s:assert.equals(bundle.uri,
|
||||
\ 'https://github.com/Shougo/neobundle.vim.git')
|
||||
endfunction
|
||||
|
||||
function! s:suite.gitbucket_git_repos() abort
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'https://bitbucket.org/kh3phr3n/vim-qt-syntax.git'),
|
||||
\ {'type' : 'git', 'uri' :
|
||||
\ 'https://bitbucket.org/kh3phr3n/vim-qt-syntax.git',
|
||||
\ 'name' : 'vim-qt-syntax'})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'bitbucket:kh3phr3n/vim-qt-syntax.git'),
|
||||
\ {'type' : 'git', 'uri' :
|
||||
\ g:neobundle#types#git#default_protocol.
|
||||
\ '://bitbucket.org/kh3phr3n/vim-qt-syntax.git',
|
||||
\ 'name' : 'vim-qt-syntax'})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'git@bitbucket.com:accountname/reponame.git'),
|
||||
\ {'type' : 'git', 'uri' :
|
||||
\ 'git@bitbucket.com:accountname/reponame.git',
|
||||
\ 'name' : 'reponame'})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'ssh://git@bitbucket.com:foo/bar.git'),
|
||||
\ {'type' : 'git', 'uri' :
|
||||
\ 'ssh://git@bitbucket.com:foo/bar.git',
|
||||
\ 'name' : 'bar'})
|
||||
endfunction
|
||||
|
||||
function! s:suite.raw_repos() abort
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'http://raw.github.com/m2ym/rsense/master/etc/rsense.vim'),
|
||||
\ {})
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'http://www.vim.org/scripts/download_script.php?src_id=19237'),
|
||||
\ {})
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://raw.github.com/m2ym/rsense/master/etc/rsense.vim',
|
||||
\ [{ 'script_type' : 'plugin'}])
|
||||
call s:assert.equals(bundle.name, 'rsense.vim')
|
||||
call s:assert.equals(bundle.type, 'raw')
|
||||
call s:assert.equals(bundle.uri,
|
||||
\ 'https://raw.github.com/m2ym/rsense/master/etc/rsense.vim')
|
||||
endfunction
|
||||
|
||||
function! s:suite.vba_repos() abort
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'https://foo/bar.vba'),
|
||||
\ { 'name' : 'bar', 'uri' : 'https://foo/bar.vba', 'type' : 'vba' })
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'https://foo/bar.vba.gz'),
|
||||
\ { 'name' : 'bar', 'uri' : 'https://foo/bar.vba.gz', 'type' : 'vba' })
|
||||
call s:assert.equals(neobundle#parser#path(
|
||||
\ 'http://foo/bar.vba.gz'),
|
||||
\ {})
|
||||
endfunction
|
||||
|
||||
function! s:suite.default_options() abort
|
||||
let g:default_options_save = g:neobundle#default_options
|
||||
let g:neobundle#default_options =
|
||||
\ { 'rev' : {'type__update_style' : 'current'},
|
||||
\ '_' : {'type' : 'hg'} }
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'Shougo/neocomplcache', ['', 'rev', {}])
|
||||
call s:assert.equals(bundle.type__update_style, 'current')
|
||||
|
||||
let bundle2 = neobundle#parser#_init_bundle(
|
||||
\ 'Shougo/neocomplcache', [])
|
||||
call s:assert.equals(bundle2.type, 'hg')
|
||||
|
||||
let g:neobundle#default_options = g:default_options_save
|
||||
endfunction
|
||||
|
||||
function! s:suite.ssh_protocol() abort
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'accountname/reponame', [{
|
||||
\ 'site' : 'github', 'type' : 'git', 'type__protocol' : 'ssh' }])
|
||||
call s:assert.equals(bundle.uri,
|
||||
\ 'git@github.com:accountname/reponame.git')
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'accountname/reponame', [{
|
||||
\ 'site' : 'bitbucket', 'type' : 'hg', 'type__protocol' : 'ssh' }])
|
||||
call s:assert.equals(bundle.uri,
|
||||
\ 'ssh://hg@bitbucket.org/accountname/reponame')
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'accountname/reponame.git', [{
|
||||
\ 'site' : 'bitbucket', 'type' : 'git', 'type__protocol' : 'ssh' }])
|
||||
call s:assert.equals(bundle.uri,
|
||||
\ 'git@bitbucket.org:accountname/reponame.git')
|
||||
endfunction
|
||||
|
||||
function! s:suite.fetch_plugins() abort
|
||||
let bundle = neobundle#parser#fetch(
|
||||
\ string('accountname/reponame.git'))
|
||||
call s:assert.equals(bundle.rtp, '')
|
||||
endfunction
|
||||
|
||||
function! s:suite.parse_directory() abort
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'Shougo/neocomplcache', [])
|
||||
call s:assert.equals(bundle.directory, 'neocomplcache')
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'Shougo/neocomplcache', ['ver.3'])
|
||||
call s:assert.equals(bundle.directory, 'neocomplcache_ver_3')
|
||||
endfunction
|
||||
|
||||
function! s:suite.name_conversion() abort
|
||||
let g:neobundle#enable_name_conversion = 1
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://github.com/Shougo/neobundle.vim.git',
|
||||
\ [{ 'type' : 'hg'}])
|
||||
call s:assert.equals(bundle.name, 'neobundle')
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://bitbucket.org/kh3phr3n/vim-qt-syntax.git',
|
||||
\ [{ 'type' : 'hg'}])
|
||||
call s:assert.equals(bundle.name, 'qt-syntax')
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://bitbucket.org/kh3phr3n/qt-syntax-vim.git',
|
||||
\ [{ 'type' : 'hg'}])
|
||||
call s:assert.equals(bundle.name, 'qt-syntax')
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://bitbucket.org/kh3phr3n/vim-qt-syntax.git',
|
||||
\ [{ 'name' : 'vim-qt-syntax'}])
|
||||
call s:assert.equals(bundle.name, 'vim-qt-syntax')
|
||||
|
||||
let g:neobundle#enable_name_conversion = 0
|
||||
endfunction
|
||||
|
||||
function! s:suite.autoload() abort
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://github.com/Shougo/neobundle.vim.git',
|
||||
\ [{ 'filetypes' : 'foo_ft' }])
|
||||
call s:assert.equals(bundle.on_ft, ['foo_ft'])
|
||||
call s:assert.equals(bundle.lazy, 1)
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://github.com/Shougo/neobundle.vim.git',
|
||||
\ [{ 'filename_patterns' : 'foo_filename' }])
|
||||
call s:assert.equals(bundle.on_path, ['foo_filename'])
|
||||
call s:assert.equals(bundle.lazy, 1)
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://github.com/Shougo/neobundle.vim.git',
|
||||
\ [{ 'explorer' : 1 }])
|
||||
call s:assert.equals(bundle.on_path, ['.*'])
|
||||
call s:assert.equals(bundle.lazy, 1)
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://github.com/Shougo/neobundle.vim.git',
|
||||
\ [{ 'commands' : 'Foo' }])
|
||||
call s:assert.equals(bundle.on_cmd, ['Foo'])
|
||||
call s:assert.equals(bundle.lazy, 1)
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://github.com/Shougo/neobundle.vim.git',
|
||||
\ [{ 'functions' : 'foo#bar' }])
|
||||
call s:assert.equals(bundle.on_func, ['foo#bar'])
|
||||
call s:assert.equals(bundle.lazy, 1)
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://github.com/Shougo/neobundle.vim.git',
|
||||
\ [{ 'mappings' : '<Plug>' }])
|
||||
call s:assert.equals(bundle.on_map, ['<Plug>'])
|
||||
call s:assert.equals(bundle.lazy, 1)
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://github.com/Shougo/neobundle.vim.git',
|
||||
\ [{ 'insert' : 1 }])
|
||||
call s:assert.equals(bundle.on_i, 1)
|
||||
call s:assert.equals(bundle.lazy, 1)
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://github.com/Shougo/neobundle.vim.git',
|
||||
\ [{ 'on_source' : 'plug_foo' }])
|
||||
call s:assert.equals(bundle.on_source, ['plug_foo'])
|
||||
call s:assert.equals(bundle.lazy, 1)
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://github.com/Shougo/neobundle.vim.git',
|
||||
\ [{ 'command_prefix' : 'PreFoo' }])
|
||||
call s:assert.equals(bundle.pre_cmd, ['PreFoo'])
|
||||
call s:assert.equals(bundle.lazy, 0)
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://github.com/Shougo/neobundle.vim.git',
|
||||
\ [{ 'function_prefixes' : 'foo#' }])
|
||||
call s:assert.equals(bundle.pre_func, ['foo#'])
|
||||
call s:assert.equals(bundle.lazy, 0)
|
||||
endfunction
|
||||
|
||||
function! s:suite.deprecated() abort
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://github.com/Shougo/neobundle.vim.git',
|
||||
\ [{ 'stay_same' : '1' }])
|
||||
call s:assert.equals(bundle.frozen, 1)
|
||||
|
||||
let bundle = neobundle#parser#_init_bundle(
|
||||
\ 'https://github.com/Shougo/neobundle.vim.git',
|
||||
\ [{ 'type' : 'nosync' }])
|
||||
call s:assert.equals(bundle.type, 'none')
|
||||
endfunction
|
||||
|
||||
" vim:foldmethod=marker:fen:
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
" Sample configurations test.
|
||||
set verbose=1
|
||||
|
||||
let path = expand('~/test-bundle/'.fnamemodify(expand('<sfile>'), ':t:r'))
|
||||
|
||||
if isdirectory(path)
|
||||
let rm_command = neobundle#util#is_windows() ? 'rmdir /S /Q' : 'rm -rf'
|
||||
call system(printf('%s "%s"', rm_command, path))
|
||||
endif
|
||||
|
||||
let neobundle#types#git#default_protocol = 'git'
|
||||
|
||||
call neobundle#begin(path)
|
||||
|
||||
" Let NeoBundle manage NeoBundle
|
||||
NeoBundleFetch 'Shougo/neobundle.vim'
|
||||
|
||||
" Recommended to install
|
||||
" After install, turn shell ~/.vim/bundle/vimproc, (n,g)make -f your_machines_makefile
|
||||
NeoBundle 'Shougo/vimproc'
|
||||
|
||||
" My Bundles here:
|
||||
"
|
||||
" Note: You don't set neobundle setting in .gvimrc!
|
||||
" Original repos on github
|
||||
NeoBundle 'tpope/vim-fugitive'
|
||||
NeoBundle 'Lokaltog/vim-easymotion'
|
||||
NeoBundle 'rstacruz/sparkup', {'rtp': 'vim/'}
|
||||
" vim-scripts repos
|
||||
NeoBundle 'L9'
|
||||
NeoBundle 'FuzzyFinder'
|
||||
NeoBundle 'rails.vim'
|
||||
" Non git repos
|
||||
NeoBundle 'https://bitbucket.org/ns9tks/vim-fuzzyfinder'
|
||||
|
||||
call neobundle#end()
|
||||
|
||||
filetype plugin indent on " Required!
|
||||
|
||||
|
|
@ -1,95 +0,0 @@
|
|||
" Source test.
|
||||
set verbose=1
|
||||
|
||||
let path = expand('~/test-bundle/'.fnamemodify(expand('<sfile>'), ':t:r'))
|
||||
|
||||
if isdirectory(path)
|
||||
let rm_command = neobundle#util#is_windows() ? 'rmdir /S /Q' : 'rm -rf'
|
||||
call system(printf('%s "%s"', rm_command, path))
|
||||
endif
|
||||
|
||||
let neobundle#types#git#default_protocol = 'https'
|
||||
|
||||
call neobundle#begin(path)
|
||||
|
||||
" Test dependencies.
|
||||
|
||||
let s:suite = themis#suite('source')
|
||||
let s:assert = themis#helper('assert')
|
||||
|
||||
NeoBundleLazy 'Shougo/echodoc'
|
||||
NeoBundle 'Shougo/unite-build', { 'depends' : 'Shougo/echodoc' }
|
||||
|
||||
NeoBundle 'Shougo/unite-ssh', { 'depends' : 'Shougo/unite-sudo' }
|
||||
NeoBundleLazy 'Shougo/unite-sudo'
|
||||
|
||||
NeoBundleLazy 'Shougo/neomru.vim', { 'depends': 'Shougo/neocomplcache' }
|
||||
NeoBundle 'Shougo/neocomplcache.vim', 'ver.8'
|
||||
|
||||
NeoBundleLazy 'Shougo/vimshell', { 'depends': 'Shougo/vinarise' }
|
||||
NeoBundleLazy 'Shougo/vinarise'
|
||||
|
||||
NeoBundle 'Shougo/vimfiler', { 'depends' : 'foo/var' }
|
||||
|
||||
NeoBundleLazy 'Shougo/unite.vim', {
|
||||
\ 'depends' : ['Shougo/unite-outline', 'basyura/TweetVim'],
|
||||
\ 'autoload' : { 'commands' : 'Unite' } }
|
||||
NeoBundleLazy 'Shougo/unite-outline', {
|
||||
\ 'depends' : 'Shougo/unite.vim' }
|
||||
|
||||
" Dependencies test.
|
||||
NeoBundleLazy 'basyura/twibill.vim'
|
||||
NeoBundleLazy 'yomi322/neco-tweetvim'
|
||||
NeoBundleLazy 'rhysd/tweetvim-advanced-filter'
|
||||
NeoBundleLazy 'rhysd/TweetVim', {
|
||||
\ 'depends' :
|
||||
\ ['basyura/twibill.vim',
|
||||
\ 'tyru/open-browser.vim',
|
||||
\ 'yomi322/neco-tweetvim',
|
||||
\ 'rhysd/tweetvim-advanced-filter'],
|
||||
\ 'autoload' : {
|
||||
\ 'commands' :
|
||||
\ ['TweetVimHomeTimeline',
|
||||
\ 'TweetVimMentions',
|
||||
\ 'TweetVimSay',
|
||||
\ 'TweetVimUserTimeline']
|
||||
\ }
|
||||
\ }
|
||||
|
||||
" Law.
|
||||
NeoBundle 'https://raw.github.com/m2ym/rsense/master/etc/rsense.vim',
|
||||
\ {'script_type' : 'plugin', 'rev' : '0'}
|
||||
" NeoBundleReinstall rsense.vim
|
||||
|
||||
call neobundle#end()
|
||||
|
||||
filetype plugin indent on " required!
|
||||
|
||||
" Should not break helptags.
|
||||
set wildignore+=doc
|
||||
|
||||
" Should not break clone.
|
||||
set wildignore+=.git
|
||||
set wildignore+=.git/*
|
||||
set wildignore+=*/.git/*
|
||||
|
||||
function! s:suite.pattern_a() abort
|
||||
call s:assert.equals(neobundle#is_sourced('echodoc'), 1)
|
||||
call s:assert.equals(neobundle#is_sourced('unite-build'), 1)
|
||||
endfunction
|
||||
|
||||
function! s:suite.pattern_b() abort
|
||||
call s:assert.equals(neobundle#is_sourced('unite-ssh'), 1)
|
||||
call s:assert.equals(neobundle#is_sourced('unite-sudo'), 1)
|
||||
endfunction
|
||||
|
||||
function! s:suite.pattern_c() abort
|
||||
call s:assert.equals(neobundle#is_sourced('neomru.vim'), 0)
|
||||
call s:assert.equals(neobundle#is_sourced('neocomplcache.vim'), 1)
|
||||
endfunction
|
||||
|
||||
function! s:suite.pattern_d() abort
|
||||
call s:assert.equals(neobundle#is_sourced('vimshell'), 0)
|
||||
call s:assert.equals(neobundle#is_sourced('vinarise'), 0)
|
||||
endfunction
|
||||
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
let s:suite = themis#suite('toml')
|
||||
let s:assert = themis#helper('assert')
|
||||
|
||||
let g:path = expand('~/test-bundle/'.fnamemodify(expand('<sfile>'), ':t:r'))
|
||||
|
||||
function! s:suite.before_each() abort
|
||||
let g:temp = tempname()
|
||||
call neobundle#begin(g:path)
|
||||
endfunction
|
||||
|
||||
function! s:suite.after_each() abort
|
||||
call neobundle#end()
|
||||
call delete(g:temp)
|
||||
endfunction
|
||||
|
||||
function! s:suite.no_toml() abort
|
||||
call writefile([
|
||||
\ 'foobar'
|
||||
\ ], g:temp)
|
||||
call s:assert.equals(neobundle#parser#load_toml(g:temp, {}), 1)
|
||||
endfunction
|
||||
|
||||
function! s:suite.no_plugins() abort
|
||||
call writefile([], g:temp)
|
||||
call s:assert.equals(neobundle#parser#load_toml(g:temp, {}), 1)
|
||||
endfunction
|
||||
|
||||
function! s:suite.no_repository() abort
|
||||
call writefile([
|
||||
\ "[[plugins]]",
|
||||
\ "filetypes = 'all'",
|
||||
\ "[[plugins]]",
|
||||
\ "filetypes = 'all'"
|
||||
\ ], g:temp)
|
||||
call s:assert.equals(neobundle#parser#load_toml(g:temp, {}), 1)
|
||||
endfunction
|
||||
|
||||
function! s:suite.normal() abort
|
||||
call writefile([
|
||||
\ "[[plugins]]",
|
||||
\ "repository = 'Shougo/tabpagebuffer.vim'",
|
||||
\ "filetypes = 'all'",
|
||||
\ "[[plugins]]",
|
||||
\ "repository = 'Shougo/tabpagebuffer.vim'",
|
||||
\ "filetypes = 'all'"
|
||||
\ ], g:temp)
|
||||
call s:assert.equals(neobundle#parser#load_toml(g:temp, {}), 0)
|
||||
endfunction
|
||||
|
||||
|
|
@ -1,182 +0,0 @@
|
|||
let s:suite = themis#suite('tsort')
|
||||
let s:assert = themis#helper('assert')
|
||||
|
||||
let g:path = expand('~/test-bundle/'.fnamemodify(expand('<sfile>'), ':t:r'))
|
||||
|
||||
function! s:comp_bundle(bundle1, bundle2) abort
|
||||
return a:bundle1.name > a:bundle2.name
|
||||
endfunction
|
||||
|
||||
function! s:rotate_bundle(bundles) abort
|
||||
return a:bundles[1:-1]+a:bundles[0:0]
|
||||
endfunction
|
||||
|
||||
function! s:suite.before_each() abort
|
||||
endfunction
|
||||
|
||||
function! s:suite.after_each() abort
|
||||
endfunction
|
||||
|
||||
function! s:suite.no_depends() abort
|
||||
" [a, b, c] => [a, b, c]
|
||||
let neobundle_test_data = [{'name' : 'a'}, {'name' : 'b'}, {'name' : 'c'},]
|
||||
call s:assert.equals(neobundle#config#tsort(neobundle_test_data),
|
||||
\ neobundle_test_data)
|
||||
endfunction
|
||||
|
||||
function! s:suite.normal() abort
|
||||
" a -> b -> c
|
||||
" b -> d
|
||||
" c
|
||||
" [a, b, c] => [c, b, a]
|
||||
let neobundle_test_data = [
|
||||
\ {'name' : 'a', 'depends' : [
|
||||
\ {'name' : 'b', 'depends' : [
|
||||
\ {'name' : 'c'},
|
||||
\ ]},
|
||||
\ ]},
|
||||
\ {'name' : 'b', 'skip' : 1, 'depends' : [
|
||||
\ {'name' : 'd', 'skipped' : 1, },
|
||||
\ ]},
|
||||
\ {'name' : 'c', 'skip' : 1},
|
||||
\ ]
|
||||
call s:assert.equals(neobundle#config#tsort(neobundle_test_data), [
|
||||
\ neobundle_test_data[0].depends[0].depends[0],
|
||||
\ neobundle_test_data[0].depends[0],
|
||||
\ neobundle_test_data[0],
|
||||
\ ])
|
||||
|
||||
" a -> c -> b
|
||||
" a -> d
|
||||
" b
|
||||
" c
|
||||
" [a, b, c] => [b, c, d, a]
|
||||
let neobundle_test_data = [
|
||||
\ {'name' : 'a', 'depends' : [
|
||||
\ {'name' : 'c', 'depends' : [
|
||||
\ {'name' : 'b'},
|
||||
\ ]},
|
||||
\ {'name' : 'd'},
|
||||
\ ]},
|
||||
\ {'name' : 'b', 'skip' : 1},
|
||||
\ {'name' : 'c', 'skip' : 1},
|
||||
\ ]
|
||||
call s:assert.equals(neobundle#config#tsort(neobundle_test_data),
|
||||
\ [
|
||||
\ neobundle_test_data[0].depends[0].depends[0],
|
||||
\ neobundle_test_data[0].depends[0],
|
||||
\ neobundle_test_data[0].depends[1],
|
||||
\ neobundle_test_data[0],
|
||||
\ ])
|
||||
endfunction
|
||||
|
||||
function! s:suite.tsort_circular_reference() abort
|
||||
" a -> b -> c -> a
|
||||
" b
|
||||
" c
|
||||
" [a, b, c] => [c, b, a]
|
||||
let neobundle_test_data = [
|
||||
\ {'name' : 'a', 'depends' : [
|
||||
\ {'name' : 'b', 'depends' : [
|
||||
\ {'name' : 'c', 'depends' : [
|
||||
\ {'name' : 'a', 'skip' : 1},
|
||||
\ ]},
|
||||
\ ]},
|
||||
\ ]},
|
||||
\ {'name' : 'b', 'skip' : 1},
|
||||
\ {'name' : 'c', 'skip' : 1},
|
||||
\ ]
|
||||
call s:assert.equals(neobundle#config#tsort(neobundle_test_data),
|
||||
\ [
|
||||
\ neobundle_test_data[0].depends[0].depends[0],
|
||||
\ neobundle_test_data[0].depends[0],
|
||||
\ neobundle_test_data[0],
|
||||
\ ])
|
||||
endfunction
|
||||
|
||||
function! s:suite.bundled_no_depends() abort
|
||||
call neobundle#begin(g:path)
|
||||
NeoBundleLazy 'a/a'
|
||||
NeoBundleLazy 'b/b'
|
||||
NeoBundleLazy 'c/c'
|
||||
call neobundle#end()
|
||||
|
||||
let neobundle_test_data = sort(filter(neobundle#config#get_neobundles(),
|
||||
\ "v:val.name =~# '^[abc]$'"), "s:comp_bundle")
|
||||
|
||||
" [a, b, c] => [a, b, c]
|
||||
call s:assert.equals(s:map(neobundle#config#tsort(neobundle_test_data)),
|
||||
\ s:map(neobundle_test_data))
|
||||
|
||||
" [c, b, a] => [c, b, a]
|
||||
call reverse(neobundle_test_data)
|
||||
call s:assert.equals(s:map(neobundle#config#tsort(neobundle_test_data)),
|
||||
\ s:map(neobundle_test_data))
|
||||
endfunction
|
||||
|
||||
function! s:suite.bundled_normal() abort
|
||||
call neobundle#begin(g:path)
|
||||
NeoBundleLazy 'a/a'
|
||||
NeoBundleLazy 'b/b', {'depends' : 'a/a'}
|
||||
NeoBundleLazy 'c/c', {'depends' : 'b/b'}
|
||||
call neobundle#end()
|
||||
|
||||
let neobundle_test_data = sort(filter(neobundle#config#get_neobundles(),
|
||||
\ "v:val.name =~# '^[abc]$'"), "s:comp_bundle")
|
||||
|
||||
" [a, b, c] => [a, b, c]
|
||||
call s:assert.equals(s:map(neobundle#config#tsort(neobundle_test_data)),
|
||||
\ s:map(neobundle_test_data))
|
||||
|
||||
" [c, b, a] => [a, b, c]
|
||||
call s:assert.equals(s:map(neobundle#config#tsort(
|
||||
\ reverse(copy(neobundle_test_data)))), s:map(neobundle_test_data))
|
||||
endfunction
|
||||
|
||||
function! s:suite.bundled_normal2() abort
|
||||
call neobundle#begin(g:path)
|
||||
NeoBundleLazy 'a/a', {'depends' : ['c/c', 'b/b']}
|
||||
NeoBundleLazy 'b/b'
|
||||
NeoBundleLazy 'c/c', {'depends' : 'b/b'}
|
||||
call neobundle#end()
|
||||
|
||||
let neobundle_test_data = sort(filter(neobundle#config#get_neobundles(),
|
||||
\ "v:val.name =~# '^[abc]$'"), "s:comp_bundle")
|
||||
let neobundle_test_rotated = s:map(s:rotate_bundle(neobundle_test_data))
|
||||
|
||||
" [a, b, c] => [b, c, a]
|
||||
call s:assert.equals(s:map(neobundle#config#tsort(
|
||||
\ neobundle_test_data)),
|
||||
\ neobundle_test_rotated)
|
||||
|
||||
" [c, b, a] => [b, c, a]
|
||||
call s:assert.equals(s:map(neobundle#config#tsort(
|
||||
\ reverse(copy(neobundle_test_data)))),
|
||||
\ neobundle_test_rotated)
|
||||
endfunction
|
||||
|
||||
function! s:suite.bundled_circular_reference() abort
|
||||
call neobundle#begin(g:path)
|
||||
NeoBundleLazy 'a/a', {'depends' : 'b/b'}
|
||||
NeoBundleLazy 'b/b', {'depends' : 'c/c'}
|
||||
NeoBundleLazy 'c/c', {'depends' : 'a/a'}
|
||||
call neobundle#end()
|
||||
|
||||
let neobundle_test_data = sort(filter(neobundle#config#get_neobundles(),
|
||||
\ "v:val.name =~# '^[abc]$'"), "s:comp_bundle")
|
||||
|
||||
" [a, b, c] => [c, b, a]
|
||||
call s:assert.equals(s:map(neobundle#config#tsort(neobundle_test_data)),
|
||||
\ s:map(reverse(copy(neobundle_test_data))))
|
||||
|
||||
" [c, b, a] => [b, a, c]
|
||||
call reverse(neobundle_test_data)
|
||||
let neobundle_test_rotated = s:rotate_bundle(neobundle_test_data)
|
||||
call s:assert.equals(s:map(neobundle#config#tsort(neobundle_test_data)),
|
||||
\ s:map(neobundle_test_rotated))
|
||||
endfunction
|
||||
|
||||
function! s:map(list) abort
|
||||
return map(copy(a:list), 'v:val.name')
|
||||
endfunction
|
||||
|
||||
123
.vimrc
123
.vimrc
|
|
@ -79,58 +79,79 @@ filetype off
|
|||
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif
|
||||
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
|
||||
|
||||
set rtp+=~/.vim/bundle/neobundle.vim/
|
||||
call neobundle#begin(expand('~/.vim/bundle'))
|
||||
NeoBundle 'Shougo/neobundle.vim'
|
||||
NeoBundle 'eclim'
|
||||
NeoBundle 'vim-scripts/DrawIt'
|
||||
NeoBundle 'tpope/vim-speeddating'
|
||||
NeoBundle 'vim-scripts/EasyGrep'
|
||||
NeoBundle 'chrisbra/NrrwRgn'
|
||||
NeoBundle 'hsitz/VimOrganizer'
|
||||
NeoBundle 'mileszs/ack.vim'
|
||||
NeoBundle 'mattn/calendar-vim'
|
||||
NeoBundle 'vim-scripts/fish-syntax'
|
||||
NeoBundle 'sjbach/lusty'
|
||||
NeoBundle 'scrooloose/nerdcommenter'
|
||||
NeoBundle 'scrooloose/nerdtree'
|
||||
NeoBundle 'rstacruz/sparkup'
|
||||
NeoBundle 'scrooloose/syntastic'
|
||||
NeoBundle 'kchmck/vim-coffee-script'
|
||||
NeoBundle 'tpope/vim-fugitive'
|
||||
NeoBundle 'airblade/vim-gitgutter'
|
||||
NeoBundle 'lunaru/vim-less'
|
||||
NeoBundle 'terryma/vim-multiple-cursors'
|
||||
NeoBundle 'rodjek/vim-puppet'
|
||||
NeoBundle 'tpope/vim-unimpaired'
|
||||
"NeoBundle 'Valloric/YouCompleteMe'
|
||||
NeoBundle 'Shougo/deoplete.nvim'
|
||||
NeoBundle 'zchee/deoplete-go', {'build': {'unix': 'make'}}
|
||||
NeoBundle 'zchee/deoplete-jedi'
|
||||
NeoBundle 'b4winckler/vim-angry'
|
||||
NeoBundle 'tristen/vim-sparkup'
|
||||
NeoBundle 'vim-airline/vim-airline'
|
||||
NeoBundle 'vim-airline/vim-airline-themes'
|
||||
NeoBundle 'kien/ctrlp.vim'
|
||||
NeoBundle 'bling/vim-bufferline'
|
||||
NeoBundle 'majutsushi/tagbar'
|
||||
NeoBundle 'eagletmt/neco-ghc'
|
||||
NeoBundle 'eagletmt/ghcmod-vim'
|
||||
NeoBundle 'Shougo/vimproc.vim'
|
||||
NeoBundle 'SirVer/ultisnips'
|
||||
NeoBundle 'honza/vim-snippets'
|
||||
NeoBundle 'JuliaLang/julia-vim'
|
||||
NeoBundle 'tpope/vim-surround'
|
||||
NeoBundle 'farseer90718/vim-taskwarrior'
|
||||
NeoBundle 'fatih/vim-go'
|
||||
NeoBundle 't-yuki/vim-go-coverlay'
|
||||
NeoBundle 'tpope/vim-abolish'
|
||||
NeoBundle 'hylang/vim-hy'
|
||||
NeoBundle 'jiangmiao/auto-pairs'
|
||||
NeoBundle 'rust-lang/rust.vim'
|
||||
NeoBundle 'racer-rust/vim-racer'
|
||||
|
||||
" Required:
|
||||
set runtimepath+=/home/barak/.vim/bundle/repos/github.com/Shougo/dein.vim
|
||||
|
||||
" Required:
|
||||
if dein#load_state('/home/barak/.vim/bundle')
|
||||
call dein#begin('/home/barak/.vim/bundle')
|
||||
|
||||
" Let dein manage dein
|
||||
" Required:
|
||||
call dein#add('/home/barak/.vim/bundle/repos/github.com/Shougo/dein.vim')
|
||||
|
||||
" Add or remove your plugins here:
|
||||
"call dein#add('Shougo/neosnippet.vim')
|
||||
"call dein#add('Shougo/neosnippet-snippets')
|
||||
|
||||
" You can specify revision/branch/tag.
|
||||
"call dein#add('Shougo/vimshell', { 'rev': '3787e5' })
|
||||
call dein#add('vim-scripts/DrawIt')
|
||||
call dein#add('tpope/vim-speeddating')
|
||||
call dein#add('vim-scripts/EasyGrep')
|
||||
call dein#add('chrisbra/NrrwRgn')
|
||||
call dein#add('hsitz/VimOrganizer')
|
||||
call dein#add('mileszs/ack.vim')
|
||||
call dein#add('mattn/calendar-vim')
|
||||
"call dein#add('vim-scripts/fish-syntax')
|
||||
call dein#add('sjbach/lusty')
|
||||
call dein#add('scrooloose/nerdcommenter')
|
||||
call dein#add('scrooloose/nerdtree')
|
||||
call dein#add('rstacruz/sparkup')
|
||||
call dein#add('scrooloose/syntastic')
|
||||
call dein#add('kchmck/vim-coffee-script')
|
||||
call dein#add('tpope/vim-fugitive')
|
||||
call dein#add('airblade/vim-gitgutter')
|
||||
call dein#add('lunaru/vim-less')
|
||||
"call dein#add('terryma/vim-multiple-cursors')
|
||||
"call dein#add('rodjek/vim-puppet')
|
||||
call dein#add('tpope/vim-unimpaired')
|
||||
"call dein#add('Valloric/YouCompleteMe')
|
||||
call dein#add('Shougo/deoplete.nvim')
|
||||
call dein#add('zchee/deoplete-go', {'build': {'unix': 'make'}})
|
||||
call dein#add('zchee/deoplete-jedi')
|
||||
call dein#add('b4winckler/vim-angry')
|
||||
call dein#add('tristen/vim-sparkup')
|
||||
call dein#add('vim-airline/vim-airline')
|
||||
call dein#add('vim-airline/vim-airline-themes')
|
||||
call dein#add('kien/ctrlp.vim')
|
||||
call dein#add('bling/vim-bufferline')
|
||||
call dein#add('majutsushi/tagbar')
|
||||
call dein#add('eagletmt/neco-ghc')
|
||||
call dein#add('eagletmt/ghcmod-vim')
|
||||
call dein#add('Shougo/vimproc.vim')
|
||||
call dein#add('SirVer/ultisnips')
|
||||
call dein#add('honza/vim-snippets')
|
||||
"call dein#add('JuliaLang/julia-vim')
|
||||
call dein#add('tpope/vim-surround')
|
||||
"call dein#add('farseer90718/vim-taskwarrior')
|
||||
call dein#add('fatih/vim-go')
|
||||
"call dein#add('t-yuki/vim-go-coverlay')
|
||||
call dein#add('tpope/vim-abolish')
|
||||
call dein#add('hylang/vim-hy')
|
||||
call dein#add('jiangmiao/auto-pairs')
|
||||
call dein#add('rust-lang/rust.vim')
|
||||
call dein#add('racer-rust/vim-racer')
|
||||
|
||||
" Required:
|
||||
call dein#end()
|
||||
call dein#save_state()
|
||||
endif
|
||||
|
||||
|
||||
"NeoBundle 'eclim'
|
||||
"https://git.wincent.com/command-t.git
|
||||
call neobundle#end()
|
||||
filetype plugin indent on " required
|
||||
" Sources
|
||||
"source ~/.vim/supertab.vim
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
#
|
||||
|
||||
# remove /usr/games and /usr/X11R6/bin if you want
|
||||
PATH=$HOME/bin:/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/games:/usr/X11R6/bin:/$HOME/.gem/ruby/1.9.1/bin:$HOME/.go/bin:$HOME/.cargo/bin:$HOME/.cabal/bin:/usr/lib/go/bin:$PATH; export PATH
|
||||
PATH=$HOME/bin:/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/games:/usr/X11R6/bin:/$HOME/.gem/ruby/2.4.0/bin:$HOME/.go/bin:$HOME/.cargo/bin:$HOME/.cabal/bin:/usr/lib/go/bin:$PATH; export PATH
|
||||
case `uname` in
|
||||
SunOS)
|
||||
UCB_PATH=/usr/sww/lang/acl:/usr/sww/lang/jdk-1.5.0/bin:/usr/openwin/bin:/usr/dt/bin:/usr/sww/opt/java/bin:/usr/sww/bin:/share/b/grading/bin:/share/b/grading/sbin:/share/b/runas/sun4u:/share/b/bin:/home/aa/projects/scheme/bin:/usr/ucb:/usr/ccs/bin:/usr/sfw/bin; export UCB_PATH
|
||||
|
|
|
|||
1
.zshenv
1
.zshenv
|
|
@ -1,6 +1,7 @@
|
|||
export NOBEEP="YES" # Stop that infernal beeping
|
||||
export CLICOLOR="YES" # Show colors
|
||||
export LSCOLORS="ExGxFxdxCxDxDxhbadExEx" # Look like bash
|
||||
export HELM_HOME=$HOME/kube/helm
|
||||
bindkey '\e[1~' beginning-of-line # Home key
|
||||
bindkey '\e[4~' end-of-line # End key
|
||||
bindkey '\e[H' beginning-of-line # Home key (alternate)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue