|
@@ -397,7 +397,20 @@ function! s:reorg_rtp()
|
|
|
endfunction
|
|
endfunction
|
|
|
|
|
|
|
|
function! s:doautocmd(...)
|
|
function! s:doautocmd(...)
|
|
|
- execute 'doautocmd' ((v:version > 703 || has('patch442')) ? '<nomodeline>' : '') join(a:000)
|
|
|
|
|
|
|
+ if exists('#'.join(a:000, '#'))
|
|
|
|
|
+ execute 'doautocmd' ((v:version > 703 || has('patch442')) ? '<nomodeline>' : '') 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
|
|
endfunction
|
|
|
|
|
|
|
|
function! plug#load(...)
|
|
function! plug#load(...)
|
|
@@ -415,9 +428,7 @@ function! plug#load(...)
|
|
|
for name in a:000
|
|
for name in a:000
|
|
|
call s:lod([name], ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin'])
|
|
call s:lod([name], ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin'])
|
|
|
endfor
|
|
endfor
|
|
|
- if exists('#BufRead')
|
|
|
|
|
- doautocmd BufRead
|
|
|
|
|
- endif
|
|
|
|
|
|
|
+ call s:dobufread(a:000)
|
|
|
return 1
|
|
return 1
|
|
|
endfunction
|
|
endfunction
|
|
|
|
|
|
|
@@ -453,9 +464,7 @@ function! s:lod(names, types, ...)
|
|
|
endif
|
|
endif
|
|
|
call s:source(rtp, a:2)
|
|
call s:source(rtp, a:2)
|
|
|
endif
|
|
endif
|
|
|
- if exists('#User#'.name)
|
|
|
|
|
- call s:doautocmd('User', name)
|
|
|
|
|
- endif
|
|
|
|
|
|
|
+ call s:doautocmd('User', name)
|
|
|
endfor
|
|
endfor
|
|
|
endfunction
|
|
endfunction
|
|
|
|
|
|
|
@@ -463,21 +472,19 @@ function! s:lod_ft(pat, names)
|
|
|
let syn = 'syntax/'.a:pat.'.vim'
|
|
let syn = 'syntax/'.a:pat.'.vim'
|
|
|
call s:lod(a:names, ['plugin', 'after/plugin'], syn, 'after/'.syn)
|
|
call s:lod(a:names, ['plugin', 'after/plugin'], syn, 'after/'.syn)
|
|
|
execute 'autocmd! PlugLOD FileType' a:pat
|
|
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
|
|
endfunction
|
|
|
|
|
|
|
|
function! s:lod_cmd(cmd, bang, l1, l2, args, names)
|
|
function! s:lod_cmd(cmd, bang, l1, l2, args, names)
|
|
|
call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin'])
|
|
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)
|
|
execute printf('%s%s%s %s', (a:l1 == a:l2 ? '' : (a:l1.','.a:l2)), a:cmd, a:bang, a:args)
|
|
|
endfunction
|
|
endfunction
|
|
|
|
|
|
|
|
function! s:lod_map(map, names, prefix)
|
|
function! s:lod_map(map, names, prefix)
|
|
|
call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin'])
|
|
call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin'])
|
|
|
|
|
+ call s:dobufread(a:names)
|
|
|
let extra = ''
|
|
let extra = ''
|
|
|
while 1
|
|
while 1
|
|
|
let c = getchar(0)
|
|
let c = getchar(0)
|
|
@@ -846,13 +853,14 @@ function! s:names(...)
|
|
|
endfunction
|
|
endfunction
|
|
|
|
|
|
|
|
function! s:check_ruby()
|
|
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
|
|
|
|
|
- endif
|
|
|
|
|
- redraw!
|
|
|
|
|
- return s:warn('echom', 'Warning: Ruby interface is broken')
|
|
|
|
|
|
|
+ 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
|
|
|
|
|
+ let ruby_version = split(g:plug_ruby, '\.')
|
|
|
|
|
+ unlet g:plug_ruby
|
|
|
|
|
+ return s:version_requirement(ruby_version, [1, 8, 7])
|
|
|
endfunction
|
|
endfunction
|
|
|
|
|
|
|
|
function! s:update_impl(pull, force, args) abort
|
|
function! s:update_impl(pull, force, args) abort
|