Mercurial > dotfiles
annotate vim/autoload/ludo.vim @ 426:67f14a8c2304
Improve Vim configuration.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 28 Mar 2018 20:07:30 -0700 |
parents | d8086f81b9c8 |
children | 71a080d4d83c |
rev | line source |
---|---|
426
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
1 let g:ludo_trace = 0 |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
2 |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
3 " Debug logging. |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
4 function! ludo#trace(msg) abort |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
5 if g:ludo_trace |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
6 echom a:msg |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
7 endif |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
8 endfunction |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
9 |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
10 " Warning message. |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
11 function! ludo#warn(msg) abort |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
12 echohl WarningMsg |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
13 echomsg "ludo: Warning: ".a:msg |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
14 echohl None |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
15 endfunction |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
16 |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
17 " Error message. |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
18 function! ludo#error(msg) abort |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
19 echohl ErrorMsg |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
20 echomsg "ludo: Error: ".a:msg |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
21 echohl None |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
22 endfunction |
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
23 |
424 | 24 |
25 " Loads `pathogenrc` files in each bundle directory and, if found, | |
26 " builds an exclude list based on the glob patterns found in them. | |
27 " | |
28 function! ludo#setup_pathogen(bundle_dirs) abort | |
29 for bundle_dir in a:bundle_dirs | |
426
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
30 let l:rcfile = bundle_dir.'.pathogenrc' |
424 | 31 if !filereadable(l:rcfile) |
426
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
32 call ludo#trace("No bundle configuration file: ".l:rcfile) |
424 | 33 continue |
34 endif | |
35 | |
36 let l:included = [] | |
37 let l:excluded = [] | |
426
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
38 call ludo#trace("Reading bundle configuration file: ".l:rcfile) |
424 | 39 let l:rclines = readfile(l:rcfile) |
40 for line in l:rclines | |
41 if line[0] == '#' | |
42 continue | |
43 endif | |
44 | |
45 if line[0] == '-' | |
46 let l:excls = glob(bundle_dir.'/'.line[1:], 1, 1) | |
47 for excl in l:excls | |
48 let l:idx = index(l:included, excl) | |
49 if l:idx >= 0 | |
50 call remove(l:included, l:idx) | |
51 endif | |
52 call add(l:excluded, excl) | |
53 endfor | |
54 else | |
55 let l:incls = glob(bundle_dir.'/'.line, 1, 1) | |
56 for incl in l:incls | |
57 let l:idx = index(l:excluded, incl) | |
58 if l:idx >= 0 | |
59 call remove(l:excluded, l:idx) | |
60 endif | |
61 call add(l:included, incl) | |
62 endfor | |
63 endif | |
64 endfor | |
65 | |
66 for excl in l:excluded | |
67 if isdirectory(excl) | |
68 let l:excl_name = fnamemodify(excl, ':t') | |
69 call add(g:pathogen_disabled, l:excl_name) | |
70 endif | |
71 endfor | |
72 endfor | |
426
67f14a8c2304
Improve Vim configuration.
Ludovic Chabant <ludovic@chabant.com>
parents:
424
diff
changeset
|
73 call ludo#trace("Exclude list: ".join(g:pathogen_disabled, ', ')) |
424 | 74 endfunction |
75 |