view vim/autoload/ludo.vim @ 424:d8086f81b9c8

Pathogen config files.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 27 Mar 2018 21:34:25 -0700
parents
children 67f14a8c2304
line wrap: on
line source


" Loads `pathogenrc` files in each bundle directory and, if found,
" builds an exclude list based on the glob patterns found in them.
"
function! ludo#setup_pathogen(bundle_dirs) abort
    for bundle_dir in a:bundle_dirs
        let l:rcfile = bundle_dir.'/pathogenrc'
        if !filereadable(l:rcfile)
            continue
        endif

        let l:included = []
        let l:excluded = []
        let l:rclines = readfile(l:rcfile)
        for line in l:rclines
            if line[0] == '#'
                continue
            endif
            
            if line[0] == '-'
                let l:excls = glob(bundle_dir.'/'.line[1:], 1, 1)
                for excl in l:excls
                    let l:idx = index(l:included, excl)
                    if l:idx >= 0
                        call remove(l:included, l:idx)
                    endif
                    call add(l:excluded, excl)
                endfor
            else
                let l:incls = glob(bundle_dir.'/'.line, 1, 1)
                for incl in l:incls
                    let l:idx = index(l:excluded, incl)
                    if l:idx >= 0
                        call remove(l:excluded, l:idx)
                    endif
                    call add(l:included, incl)
                endfor
            endif
        endfor

        for excl in l:excluded
            if isdirectory(excl)
                let l:excl_name = fnamemodify(excl, ':t')
                call add(g:pathogen_disabled, l:excl_name)
            endif
        endfor
    endfor
endfunction