Make bundle options visible to installer

Bundle configuration options that are inferred from the bundle specs
overwrite user provided ones. This used to prevent users from changing
the name of directory where the cloned bundle should go, for instance.

Keep the user provided options with a preference over inferred ones.
This commit is contained in:
Jacobo de Vera 2014-03-20 09:11:22 +01:00
parent 938cd59785
commit a30bedf26c
3 changed files with 29 additions and 5 deletions

View File

@ -27,7 +27,7 @@ func! vundle#config#init_bundle(name, opts)
if a:name != substitute(a:name, '^\s*\(.\{-}\)\s*$', '\1', '') if a:name != substitute(a:name, '^\s*\(.\{-}\)\s*$', '\1', '')
echo "Spurious leading and/or trailing whitespace found in bundle spec '" . a:name . "'" echo "Spurious leading and/or trailing whitespace found in bundle spec '" . a:name . "'"
endif endif
let opts = extend(s:parse_options(a:opts), s:parse_name(substitute(a:name,"['".'"]\+','','g'))) let opts = extend(s:parse_options(a:opts), s:parse_name(substitute(a:name,"['".'"]\+','','g')), 'keep')
let b = extend(opts, copy(s:bundle)) let b = extend(opts, copy(s:bundle))
let b.rtpath = s:rtpath(opts) let b.rtpath = s:rtpath(opts)
return b return b

View File

@ -128,16 +128,39 @@ follow on the same line as the command. Example:
> >
Bundle 'git_URI' Bundle 'git_URI'
There can also be a second argument after URI. It has to be a dictionary with The `Bundle` command can optionally take a second argument after the URI. It
a key called 'rtp'. The value for that key is a directory inside the has to be a dictionary, separated from the URI by a comma. Each key-value pair
repository (relative path from the root of the repository) where the vim in the dictionary is a configuration option.
plugin resides. For example:
The following per-script configuration options are available.
The 'rtp' option
----------------
Specifies a directory inside the repository (relative path from the root of
the repository) where the vim plugin resides. It determines the path that will
be added to the |runtimepath|.
For example:
> >
Bundle 'git_URI', {'rtp': 'some/subdir/'} Bundle 'git_URI', {'rtp': 'some/subdir/'}
This can be used with git repositories that put the vim plugin inside a This can be used with git repositories that put the vim plugin inside a
subdirectory. subdirectory.
The 'name' option
-----------------
The name of the directory that will hold the local clone of the configured
script.
For example:
>
Bundle 'git_URI', {'name': 'newPluginName'}
This can be used to prevent name collisions between plugins that Vundle would
otherwise try to clone into the same directory. It also provides an additional
level of customisation.
3.2 SUPPORTED URIS ~ 3.2 SUPPORTED URIS ~
*vundle-uris* *vundle-uris*

View File

@ -50,6 +50,7 @@ Bundle '~/Dropbox/.gitrepos/utilz.vim.git'
" with options " with options
Bundle 'rstacruz/sparkup.git', {'rtp': 'vim/'} Bundle 'rstacruz/sparkup.git', {'rtp': 'vim/'}
Bundle 'matchit.zip', {'name': 'matchit'}
" Camel case " Camel case
Bundle 'vim-scripts/RubySinatra' Bundle 'vim-scripts/RubySinatra'