From bc173c67c7c2fdeb520b2402be7ba835f8c2cf76 Mon Sep 17 00:00:00 2001 From: Felix Van der Jeugt Date: Sun, 12 Jun 2016 12:02:06 +0200 Subject: [PATCH] update plug --- config/nvim/autoload/plug.vim | 53 ++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/config/nvim/autoload/plug.vim b/config/nvim/autoload/plug.vim index b3bc1a6..616bd7b 100644 --- a/config/nvim/autoload/plug.vim +++ b/config/nvim/autoload/plug.vim @@ -397,7 +397,20 @@ function! s:reorg_rtp() endfunction function! s:doautocmd(...) - execute 'doautocmd' ((v:version > 703 || has('patch442')) ? '' : '') join(a:000) + if exists('#'.join(a:000, '#')) + execute 'doautocmd' ((v:version > 703 || has('patch442')) ? '' : '') join(a:000) + endif +endfunction + +function! s:dobufread(names) + for name in a:names + let path = s:rtp(g:plugs[name]).'/**' + for dir in ['ftdetect', 'ftplugin'] + if len(finddir(dir, path)) + return s:doautocmd('BufRead') + endif + endfor + endfor endfunction function! plug#load(...) @@ -415,9 +428,7 @@ function! plug#load(...) for name in a:000 call s:lod([name], ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) endfor - if exists('#BufRead') - doautocmd BufRead - endif + call s:dobufread(a:000) return 1 endfunction @@ -453,9 +464,7 @@ function! s:lod(names, types, ...) endif call s:source(rtp, a:2) endif - if exists('#User#'.name) - call s:doautocmd('User', name) - endif + call s:doautocmd('User', name) endfor endfunction @@ -463,21 +472,19 @@ function! s:lod_ft(pat, names) let syn = 'syntax/'.a:pat.'.vim' call s:lod(a:names, ['plugin', 'after/plugin'], syn, 'after/'.syn) execute 'autocmd! PlugLOD FileType' a:pat - if exists('#filetypeplugin#FileType') - doautocmd filetypeplugin FileType - endif - if exists('#filetypeindent#FileType') - doautocmd filetypeindent FileType - endif + call s:doautocmd('filetypeplugin', 'FileType') + call s:doautocmd('filetypeindent', 'FileType') endfunction function! s:lod_cmd(cmd, bang, l1, l2, args, names) call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) + call s:dobufread(a:names) execute printf('%s%s%s %s', (a:l1 == a:l2 ? '' : (a:l1.','.a:l2)), a:cmd, a:bang, a:args) endfunction function! s:lod_map(map, names, prefix) call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) + call s:dobufread(a:names) let extra = '' while 1 let c = getchar(0) @@ -486,6 +493,13 @@ function! s:lod_map(map, names, prefix) endif let extra .= nr2char(c) endwhile + if v:count + call feedkeys(v:count, 'n') + endif + call feedkeys('"'.v:register, 'n') + if mode(1) == 'no' + call feedkeys(v:operator) + endif call feedkeys(a:prefix . substitute(a:map, '^', "\", '') . extra) endfunction @@ -846,13 +860,14 @@ function! s:names(...) endfunction function! s:check_ruby() - silent! ruby require 'thread'; VIM::command('let g:plug_ruby = 1') - if get(g:, 'plug_ruby', 0) - unlet g:plug_ruby - return 1 + silent! ruby require 'thread'; VIM::command("let g:plug_ruby = '#{RUBY_VERSION}'") + if !exists('g:plug_ruby') + redraw! + return s:warn('echom', 'Warning: Ruby interface is broken') endif - redraw! - return s:warn('echom', 'Warning: Ruby interface is broken') + let ruby_version = split(g:plug_ruby, '\.') + unlet g:plug_ruby + return s:version_requirement(ruby_version, [1, 8, 7]) endfunction function! s:update_impl(pull, force, args) abort