Skip to content

Commit 258c47f

Browse files
Mathias Gumztpope
authored andcommitted
Exclude bundles in g:pathogen_disabled
1 parent f4f79bc commit 258c47f

1 file changed

Lines changed: 15 additions & 5 deletions

File tree

autoload/pathogen.vim

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,22 @@ function! pathogen#glob_directories(pattern) abort " {{{1
8181
return filter(pathogen#glob(a:pattern),'isdirectory(v:val)')
8282
endfunction "}}}1
8383

84-
" Prepend all subdirectories of path to the rtp, and append all after
84+
" Checks if a bundle is 'disabled'. A bundle is considered 'disabled' if
85+
" its 'basename()' is included in g:pathogen_disabled[]'.
86+
function! pathogen#is_disabled(path) " {{{1
87+
if !exists("g:pathogen_disabled")
88+
return 0
89+
endif
90+
let sep = pathogen#separator()
91+
return index(g:pathogen_disabled, strpart(a:path, strridx(a:path, sep)+1)) != -1
92+
endfunction "}}}1
93+
94+
" Prepend all subdirectories of path to the rtp, and append all 'after'
8595
" directories in those subdirectories.
8696
function! pathogen#runtime_prepend_subdirectories(path) " {{{1
8797
let sep = pathogen#separator()
88-
let before = pathogen#glob_directories(a:path.sep."*[^~]")
89-
let after = pathogen#glob_directories(a:path.sep."*[^~]".sep."after")
98+
let before = filter(pathogen#glob_directories(a:path.sep."*[^~]"), '!pathogen#is_disabled(v:val)')
99+
let after = filter(pathogen#glob_directories(a:path.sep."*[^~]".sep."after"), '!pathogen#is_disabled(v:val)')
90100
let rtp = pathogen#split(&rtp)
91101
let path = expand(a:path)
92102
call filter(rtp,'v:val[0:strlen(path)-1] !=# path')
@@ -108,9 +118,9 @@ function! pathogen#runtime_append_all_bundles(...) " {{{1
108118
let list = []
109119
for dir in pathogen#split(&rtp)
110120
if dir =~# '\<after$'
111-
let list += pathogen#glob_directories(substitute(dir,'after$',name,'').sep.'*[^~]'.sep.'after') + [dir]
121+
let list += filter(pathogen#glob_directories(substitute(dir,'after$',name,'').sep.'*[^~]'.sep.'after'), '!pathogen#is_bundle_disabled(v:val)') + [dir]
112122
else
113-
let list += [dir] + pathogen#glob_directories(dir.sep.name.sep.'*[^~]')
123+
let list += [dir] + filter(pathogen#glob_directories(dir.sep.name.sep.'*[^~]'), '!pathogen#is_disabled(v:val)')
114124
endif
115125
endfor
116126
let &rtp = pathogen#join(pathogen#uniq(list))

0 commit comments

Comments
 (0)