Complete function documentation
- Complete the code documentation effort started by @lucc - Remove some judgemental comments ✨ - Remove comments pertaining to things that should be opened as issues - Boxed ❗
This commit is contained in:
		
							parent
							
								
									b3b5f529b3
								
							
						
					
					
						commit
						87e5a19520
					
				| @ -1,8 +1,10 @@ | ||||
| " --------------------------------------------------------------------------- | ||||
| " Add a plugin to the runtimepath. | ||||
| " | ||||
| " arg    -- a string specifying the plugin | ||||
| " ...    -- a dictionary of options for the plugin | ||||
| " return -- the return value from vundle#config#init_bundle() | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#config#bundle(arg, ...) | ||||
|   let bundle = vundle#config#init_bundle(a:arg, a:000) | ||||
|   if exists('g:vundle_lazy_load') && g:vundle_lazy_load | ||||
| @ -16,24 +18,36 @@ func! vundle#config#bundle(arg, ...) | ||||
|   return bundle | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| "  When lazy bundle load is used (begin/end functions), add all configured | ||||
| "  bundles to runtimepath and reorder appropriately. | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#config#activate_bundles() | ||||
|   call s:rtp_add_a() | ||||
|   call s:rtp_add_defaults() | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Initialize Vundle. | ||||
| " | ||||
| " return -- 0 (unconditionally) | ||||
| " Start a new bundles list and make sure the runtimepath does not contain | ||||
| " directories from a previous call. In theory, this should only be called | ||||
| " once. | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#config#init() | ||||
|   if !exists('g:bundles') | let g:bundles = [] | endif | ||||
|   call s:rtp_rm_a() | ||||
|   let g:bundles = [] | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Add a list of bundles to the runtimepath and source them. | ||||
| " | ||||
| " bundles -- a list of bundle objects | ||||
| " return  -- 0 (unconditionally) | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#config#require(bundles) abort | ||||
|   for b in a:bundles | ||||
|     call s:rtp_add(b.rtpath) | ||||
| @ -46,11 +60,14 @@ func! vundle#config#require(bundles) abort | ||||
|   call s:rtp_add_defaults() | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Create a bundle object from a bundle specification. | ||||
| " | ||||
| " name   -- the bundle specification as a string | ||||
| " opts   -- the options dictionary from then bundle definition | ||||
| " return -- an initialized bundle object | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#config#init_bundle(name, opts) | ||||
|   if a:name != substitute(a:name, '^\s*\(.\{-}\)\s*$', '\1', '') | ||||
|     echo "Spurious leading and/or trailing whitespace found in plugin spec '" . a:name . "'" | ||||
| @ -61,12 +78,15 @@ func! vundle#config#init_bundle(name, opts) | ||||
|   return b | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Parse the options which can be supplied with the bundle specification. | ||||
| " Corresponding documentation: vundle-plugins-configure | ||||
| " | ||||
| " opts   -- a dictionary with the user supplied options for the bundle | ||||
| " return -- a dictionary with the user supplied options for the bundle, this | ||||
| "           will be merged with a s:bundle object into one dictionary. | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:parse_options(opts) | ||||
|   " TODO: improve this | ||||
|   if len(a:opts) != 1 | return {} | endif | ||||
| @ -78,6 +98,8 @@ func! s:parse_options(opts) | ||||
|   endif | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Parse the plugin specification.  Corresponding documentation: | ||||
| " vundle-plugins-uris | ||||
| " | ||||
| @ -85,6 +107,7 @@ endf | ||||
| " return -- a dictionary with the folder name (key 'name') and the uri (key | ||||
| "           'uri') for cloning the plugin  and the original argument (key | ||||
| "           'name_spec') | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:parse_name(arg) | ||||
|   let arg = a:arg | ||||
|   let git_proto = exists('g:vundle_default_git_proto') ? g:vundle_default_git_proto : 'https' | ||||
| @ -108,6 +131,12 @@ func! s:parse_name(arg) | ||||
|   return {'name': name, 'uri': uri, 'name_spec': arg } | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| "  Modify the runtimepath, after all bundles have been added, so that the | ||||
| "  directories that were in the default runtimepath appear first in the list | ||||
| "  (with their 'after' directories last). | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:rtp_add_defaults() | ||||
|   let current = &rtp | ||||
|   set rtp&vim | ||||
| @ -124,10 +153,10 @@ func! s:rtp_add_defaults() | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Remove all paths for the plugins which are managed by Vundle from the | ||||
| " runtimepath. | ||||
| " | ||||
| " return -- 0 (unconditionally) | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:rtp_rm_a() | ||||
|   let paths = map(copy(g:bundles), 'v:val.rtpath') | ||||
|   let prepends = join(paths, ',') | ||||
| @ -136,10 +165,11 @@ func! s:rtp_rm_a() | ||||
|   exec 'set rtp-='.fnameescape(appends) | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Add all paths for the plugins which are managed by Vundle to the | ||||
| " runtimepath. | ||||
| " | ||||
| " return -- 0 (unconditionally) | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:rtp_add_a() | ||||
|   let paths = map(copy(g:bundles), 'v:val.rtpath') | ||||
|   let prepends = join(paths, ',') | ||||
| @ -148,58 +178,77 @@ func! s:rtp_add_a() | ||||
|   exec 'set rtp+='.fnameescape(appends) | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Remove a directory and the corresponding 'after' directory from runtimepath. | ||||
| " | ||||
| " dir    -- the directory name to be removed as a string.  The corresponding | ||||
| "           'after' directory will also be removed. | ||||
| " return -- 0 (unconditionally) | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:rtp_rm(dir) abort | ||||
|   exec 'set rtp-='.fnameescape(expand(a:dir, 1)) | ||||
|   exec 'set rtp-='.fnameescape(expand(a:dir.'/after', 1)) | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Add a directory and the corresponding 'after' directory to runtimepath. | ||||
| " | ||||
| " dir    -- the directory name to be added as a string.  The corresponding | ||||
| "           'after' directory will also be added. | ||||
| " return -- 0 (unconditionally) | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:rtp_add(dir) abort | ||||
|   exec 'set rtp^='.fnameescape(expand(a:dir, 1)) | ||||
|   exec 'set rtp+='.fnameescape(expand(a:dir.'/after', 1)) | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Expand and simplify a path. | ||||
| " | ||||
| " path   -- the path to expand as a string | ||||
| " return -- the expanded and simplified path | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:expand_path(path) abort | ||||
|   return simplify(expand(a:path, 1)) | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Find the actual path inside a bundle directory to be added to the | ||||
| " runtimepath.  It might be provided by the user with the 'rtp' option. | ||||
| " Corresponding documentation: vundle-plugins-configure | ||||
| " | ||||
| " opts   -- a bundle dict | ||||
| " return -- expanded path to the corresponding plugin directory | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:rtpath(opts) | ||||
|   return has_key(a:opts, 'rtp') ? s:expand_path(a:opts.path().'/'.a:opts.rtp) : a:opts.path() | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " a bundle 'object' | ||||
| " --------------------------------------------------------------------------- | ||||
| let s:bundle = {} | ||||
| 
 | ||||
| " FIXME: This function is only called once and in most cases the return value | ||||
| " is stored in the bundle object as obj.rtpath unmodfied.  Is this necessary? | ||||
| " | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Return the absolute path to the directory inside the bundle directory | ||||
| " (prefix) where thr bundle will be cloned. | ||||
| " | ||||
| " return -- the target location to clone this bundle to | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:bundle.path() | ||||
|   return s:expand_path(g:bundle_dir.'/'.self.name) | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| "  Determine if the bundle has the pinned attribute set in the config | ||||
| " | ||||
| "  return -- 1 if the bundle is pinned, 0 otherwise | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:bundle.is_pinned() | ||||
|   return get(self, 'pinned') | ||||
| endf | ||||
|  | ||||
| @ -1,9 +1,10 @@ | ||||
| " --------------------------------------------------------------------------- | ||||
| " Try to clone all new bundles given (or all bundles in g:bundles by default) | ||||
| " to g:bundle_dir.  If a:bang is 1 it will also update all plugins (git pull). | ||||
| " | ||||
| " bang   -- 1 or 0 | ||||
| " ...    -- any number of bundle specifications (seperate arguments) | ||||
| " return -- 0 (unconditionally) | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#installer#new(bang, ...) abort | ||||
|   let bundles = (a:1 == '') ? | ||||
|         \ g:bundles : | ||||
| @ -12,22 +13,23 @@ func! vundle#installer#new(bang, ...) abort | ||||
|   let names = vundle#scripts#bundle_names(map(copy(bundles), 'v:val.name_spec')) | ||||
|   call vundle#scripts#view('Installer',['" Installing plugins to '.expand(g:bundle_dir, 1)], names +  ['Helptags']) | ||||
| 
 | ||||
|   " FIXME this tries to call 'add' as a normal mode command.  This is a buffer | ||||
|   " local mapping defined in vundle#scripts#view().  The mapping will call a | ||||
|   " buffer local command InstallPlugin which in turn will call | ||||
|   " vundle#installer#run() with vundle#installer#install().  This is very | ||||
|   " confusing and unclear. | ||||
|   " This calls 'add' as a normal mode command. This is a buffer local mapping | ||||
|   " defined in vundle#scripts#view(). The mapping will call a buffer local | ||||
|   " command InstallPlugin which in turn will call vundle#installer#run() with | ||||
|   " vundle#installer#install(). | ||||
|   call s:process(a:bang, (a:bang ? 'add!' : 'add')) | ||||
| 
 | ||||
|   call vundle#config#require(bundles) | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Iterate over all lines in a Vundle window and execute the given command for | ||||
| " every line.  Used by the installation and cleaning functions. | ||||
| " | ||||
| " bang   -- not used (FIXME) | ||||
| " cmd    -- the (normal mode) command to execute for every line as a string | ||||
| " return -- 0 (unconditionally) | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:process(bang, cmd) | ||||
|   let msg = '' | ||||
| 
 | ||||
| @ -59,6 +61,8 @@ func! s:process(bang, cmd) | ||||
|   echo 'Done! '.msg | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Call another function in the different Vundle windows. | ||||
| " | ||||
| " func_name -- the function to call | ||||
| @ -66,6 +70,7 @@ endf | ||||
| " ...       -- the argument to be used when calling func_name (only the first | ||||
| "              optional argument will be used) | ||||
| " return    -- the status returned by the call to func_name | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#installer#run(func_name, name, ...) abort | ||||
|   let n = a:name | ||||
| 
 | ||||
| @ -106,11 +111,13 @@ func! vundle#installer#run(func_name, name, ...) abort | ||||
|   return status | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Put a sign on the current line, indicating the status of the installation | ||||
| " step. | ||||
| " | ||||
| " status -- string describing the status | ||||
| " return -- 0 (unconditionally) | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:sign(status) | ||||
|   if (!has('signs')) | ||||
|     return | ||||
| @ -119,11 +126,14 @@ func! s:sign(status) | ||||
|   exe ":sign place ".line('.')." line=".line('.')." name=Vu_". a:status ." buffer=" . bufnr("%") | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Install a plugin, then add it to the runtimepath and source it. | ||||
| " | ||||
| " bang   -- 1 or 0, passed directly to vundle#installer#install() | ||||
| " name   -- the name of a bundle (string) | ||||
| " return -- the return value from vundle#installer#install() | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#installer#install_and_require(bang, name) abort | ||||
|   let result = vundle#installer#install(a:bang, a:name) | ||||
|   let b = vundle#config#bundle(a:name, {}) | ||||
| @ -132,11 +142,14 @@ func! vundle#installer#install_and_require(bang, name) abort | ||||
|   return result | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Install or update a bundle given by its name. | ||||
| " | ||||
| " bang   -- 1 or 0, passed directly to s:sync() | ||||
| " name   -- the name of a bundle (string) | ||||
| " return -- the return value from s:sync() | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#installer#install(bang, name) abort | ||||
|   if !isdirectory(g:bundle_dir) | call mkdir(g:bundle_dir, 'p') | endif | ||||
| 
 | ||||
| @ -152,9 +165,12 @@ func! vundle#installer#install(bang, name) abort | ||||
|   return s:sync(a:bang, b) | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Call :helptags for all bundles in g:bundles. | ||||
| " | ||||
| " return -- 'error' if an error occurred, else return 'helptags' | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#installer#docs() abort | ||||
|   let error_count = vundle#installer#helptags(g:bundles) | ||||
|   if error_count > 0 | ||||
| @ -163,11 +179,14 @@ func! vundle#installer#docs() abort | ||||
|   return 'helptags' | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Call :helptags for a list of bundles. | ||||
| " | ||||
| " bundles -- a list of bundle dictionaries for which :helptags should be | ||||
| "            called. | ||||
| " return  -- the number of directories where :helptags failed | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#installer#helptags(bundles) abort | ||||
|   let bundle_dirs = map(copy(a:bundles),'v:val.rtpath') | ||||
|   let help_dirs = filter(bundle_dirs, 's:has_doc(v:val)') | ||||
| @ -183,11 +202,13 @@ func! vundle#installer#helptags(bundles) abort | ||||
|   return len(errors) | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " List all installed plugins. | ||||
| " Corresponding documentation: vundle-plugins-list | ||||
| " | ||||
| " bang   -- not used | ||||
| " return -- 0 (unconditionally) | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#installer#list(bang) abort | ||||
|   let bundles = vundle#scripts#bundle_names(map(copy(g:bundles), 'v:val.name_spec')) | ||||
|   call vundle#scripts#view('list', ['" My Plugins'], bundles) | ||||
| @ -195,12 +216,14 @@ func! vundle#installer#list(bang) abort | ||||
|   echo len(g:bundles).' plugins configured' | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " List and remove all directories in the bundle directory which are not | ||||
| " activated (added to the bundle list). | ||||
| " | ||||
| " bang   -- 0 if the user should be asked to confirm every deletion, 1 if they | ||||
| "           should be removed unconditionally | ||||
| " return -- 0 (unconditionally) | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#installer#clean(bang) abort | ||||
|   let bundle_dirs = map(copy(g:bundles), 'v:val.path()') | ||||
|   let all_dirs = (v:version > 702 || (v:version == 702 && has("patch51"))) | ||||
| @ -231,12 +254,15 @@ func! vundle#installer#clean(bang) abort | ||||
|   endif | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Delete to directory for a plugin. | ||||
| " | ||||
| " bang     -- not used | ||||
| " dir_name -- the bundle directory to be deleted (as a string) | ||||
| " return   -- 'error' if an error occurred, 'deleted' if the plugin folder was | ||||
| "             successfully deleted | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#installer#delete(bang, dir_name) abort | ||||
| 
 | ||||
|   let cmd = ((has('win32') || has('win64')) && empty(matchstr(&shell, 'sh'))) ? | ||||
| @ -260,10 +286,13 @@ func! vundle#installer#delete(bang, dir_name) abort | ||||
|   endif | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Check if a bundled plugin has any documentation. | ||||
| " | ||||
| " rtp    -- a path (string) where the plugin is installed | ||||
| " return -- 1 if some documentation was found, 0 otherwise | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:has_doc(rtp) abort | ||||
|   return isdirectory(a:rtp.'/doc') | ||||
|   \   && (!filereadable(a:rtp.'/doc/tags') || filewritable(a:rtp.'/doc/tags')) | ||||
| @ -272,10 +301,13 @@ func! s:has_doc(rtp) abort | ||||
|   \     : !(empty(glob(a:rtp.'/doc/*.txt')) && empty(glob(a:rtp.'/doc/*.??x'))) | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Update the helptags for a plugin. | ||||
| " | ||||
| " rtp    -- the path to the plugin's root directory (string) | ||||
| " return -- 1 if :helptags succeeded, 0 otherwise | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:helptags(rtp) abort | ||||
|   " it is important to keep trailing slash here | ||||
|   let doc_path = resolve(a:rtp . '/doc/') | ||||
| @ -289,6 +321,8 @@ func! s:helptags(rtp) abort | ||||
|   return 1 | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Install or update a given bundle object with git. | ||||
| " | ||||
| " bang   -- 0 if only new plugins should be installed, 1 if existing plugins | ||||
| @ -298,6 +332,7 @@ endf | ||||
| "           'new' when the plugin was newly installed, 'updated' if some | ||||
| "           changes where pulled via git, 'error' if an error occurred in the | ||||
| "           shell command | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:sync(bang, bundle) abort | ||||
|   " Do not sync if this bundle is pinned | ||||
|   if a:bundle.is_pinned() | ||||
| @ -343,11 +378,14 @@ func! s:sync(bang, bundle) abort | ||||
|   return 'updated' | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Escape special characters in a string to be able to use it as a shell | ||||
| " command with system(). | ||||
| " | ||||
| " cmd    -- the string holding the shell command | ||||
| " return -- a string with the relevant characters escaped | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#installer#shellesc(cmd) abort | ||||
|   if ((has('win32') || has('win64')) && empty(matchstr(&shell, 'sh'))) | ||||
|     return '"' . substitute(a:cmd, '"', '\\"', 'g') . '"' | ||||
| @ -355,10 +393,13 @@ func! vundle#installer#shellesc(cmd) abort | ||||
|   return shellescape(a:cmd) | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Fix a cd shell command to be used on Windows. | ||||
| " | ||||
| " cmd    -- the command to be fixed (string) | ||||
| " return -- the fixed command (string) | ||||
| " --------------------------------------------------------------------------- | ||||
| func! g:shellesc_cd(cmd) abort | ||||
|   if ((has('win32') || has('win64')) && empty(matchstr(&shell, 'sh'))) | ||||
|     let cmd = substitute(a:cmd, '^cd ','cd /d ','')  " add /d switch to change drives | ||||
| @ -368,21 +409,27 @@ func! g:shellesc_cd(cmd) abort | ||||
|   endif | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Make a system call.  This can be used to change the way system calls | ||||
| " are made during developing, without searching the whole code base for | ||||
| " actual system() calls. | ||||
| " | ||||
| " cmd    -- the command passed to system() (string) | ||||
| " return -- the return value from system() | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:system(cmd) abort | ||||
|   return system(a:cmd) | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Add a log message to Vundle's internal logging variable. | ||||
| " | ||||
| " str    -- the log message (string) | ||||
| " prefix -- optional prefix for multiline entries (string) | ||||
| " return -- a:str | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:log(str, ...) abort | ||||
|   let prefix = a:0 > 0 ? a:1 : '' | ||||
|   let fmt = '%Y-%m-%d %H:%M:%S' | ||||
|  | ||||
| @ -1,10 +1,11 @@ | ||||
| " Searches the database from vim-script.org for a matching plugin.  If no | ||||
| " argument is given all plugins are listed.  This function is used by the | ||||
| " :Plugins and :PluginSearch commands. | ||||
| " --------------------------------------------------------------------------- | ||||
| " Search the database from vim-script.org for a matching plugin.  If no | ||||
| " argument is given, list all plugins. This function is used by the :Plugins | ||||
| " and :PluginSearch commands. | ||||
| " | ||||
| " bang -- if 1 refresh the script name cache, if 0 don't | ||||
| " ...  -- a plugin name to search for (FIXME what about multible arguments, it | ||||
| "         doesn't seem to work.) | ||||
| " ...  -- a plugin name to search for | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#scripts#all(bang, ...) | ||||
|   let b:match = '' | ||||
|   let info = ['"Keymap: i - Install plugin; c - Cleanup; s - Search; R - Reload list'] | ||||
| @ -20,22 +21,31 @@ func! vundle#scripts#all(bang, ...) | ||||
|   echo len(matches).' plugins found' | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Repeat the search for bundles. | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#scripts#reload() abort | ||||
|   silent exec ':PluginSearch! '.(exists('b:match') ? b:match : '') | ||||
|   redraw | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Complete names for bundles in the command line. | ||||
| " | ||||
| " a, c, d -- see :h command-completion-custom | ||||
| " return  -- all valid plugin names from vim-scripts.org as completion | ||||
| "            candidates, see also :h command-completion-custom | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#scripts#complete(a,c,d) | ||||
|   return join(s:load_scripts(0),"\n") | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " View the logfile after an update or installation. | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:view_log() | ||||
|   if !exists('g:vundle_log_file') | ||||
|     let g:vundle_log_file = tempname() | ||||
| @ -47,10 +57,11 @@ func! s:view_log() | ||||
|   wincmd P | wincmd H | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Parse the output from git log after an update to create a change log for the | ||||
| " tuser. | ||||
| " | ||||
| " return -- 0 (unconditionally) | ||||
| " user. | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:create_changelog() abort | ||||
|   for bundle_data in g:updated_bundles | ||||
|     let initial_sha = bundle_data[0] | ||||
| @ -79,7 +90,10 @@ func! s:create_changelog() abort | ||||
|   endfor | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " View the change log after an update or installation. | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:view_changelog() | ||||
|   call s:create_changelog() | ||||
| 
 | ||||
| @ -93,14 +107,19 @@ func! s:view_changelog() | ||||
|   wincmd P | wincmd H | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Create a list of 'Plugin ...' lines from a list of bundle names. | ||||
| " | ||||
| " names  -- a list of names (strings) of plugins | ||||
| " return -- a list of 'Plugin ...' lines suitable to be written to a buffer | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#scripts#bundle_names(names) | ||||
|   return map(copy(a:names), ' printf("Plugin ' ."'%s'".'", v:val) ') | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Open a buffer to display information to the user.  Several special commands | ||||
| " are defined in the new buffer. | ||||
| " | ||||
| @ -108,6 +127,7 @@ endf | ||||
| " headers -- a list of header lines to be displayed at the top of the buffer | ||||
| " results -- the main information to be displayed in the buffer (list of | ||||
| "            strings) | ||||
| " --------------------------------------------------------------------------- | ||||
| func! vundle#scripts#view(title, headers, results) | ||||
|   if exists('g:vundle_view') && bufloaded(g:vundle_view) | ||||
|     exec g:vundle_view.'bd!' | ||||
| @ -178,10 +198,13 @@ func! vundle#scripts#view(title, headers, results) | ||||
|   exec ':'.(len(a:headers) + 1) | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Load the plugin database from vim-scripts.org . | ||||
| " | ||||
| " to     -- the filename (string) to save the database to | ||||
| " return -- 0 on success, 1 if an error occurred | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:fetch_scripts(to) | ||||
|   let scripts_dir = fnamemodify(expand(a:to, 1), ":h") | ||||
|   if !isdirectory(scripts_dir) | ||||
| @ -212,12 +235,15 @@ func! s:fetch_scripts(to) | ||||
|   return 0 | ||||
| endf | ||||
| 
 | ||||
| 
 | ||||
| " --------------------------------------------------------------------------- | ||||
| " Load the plugin database and return a list of all plugins. | ||||
| " | ||||
| " bang   -- if 1 download the redatabase, else only download if it is not | ||||
| "           readable on disk (i.e. does not exist) | ||||
| " return -- a list of strings, these are the names (valid bundle | ||||
| "           specifications) of all plugins from vim-scripts.org | ||||
| " --------------------------------------------------------------------------- | ||||
| func! s:load_scripts(bang) | ||||
|   let f = expand(g:bundle_dir.'/.vundle/script-names.vim-scripts.org.json', 1) | ||||
|   if a:bang || !filereadable(f) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user