Support file exclusion in link generation

This commit is contained in:
Steven Stallion 2019-03-30 21:10:14 -05:00
parent 047947cbbe
commit 3b9aa6b162
3 changed files with 23 additions and 1 deletions

View File

@ -452,7 +452,17 @@ function! vimwiki#base#find_files(wiki_nr, directories_only)
else else
let pattern = '**/*'.ext let pattern = '**/*'.ext
endif endif
return split(globpath(root_directory, pattern), '\n') let files = globpath(root_directory, pattern, 0, 1)
" filter excluded files before returning
function! ExcludeFiles(idx, val) closure
for pattern in vimwiki#vars#get_wikilocal('exclude_files')
if index(globpath(root_directory, pattern, 0, 1), a:val) != -1
return 0
endif
endfor
return 1
endfunction
return filter(files, funcref('ExcludeFiles'))
endfunction endfunction

View File

@ -266,6 +266,7 @@ function! s:populate_wikilocal_options()
\ 'diary_rel_path': {'type': type(''), 'default': 'diary/', 'min_length': 1}, \ 'diary_rel_path': {'type': type(''), 'default': 'diary/', 'min_length': 1},
\ 'diary_caption_level': {'type': type(0), 'default': 0, 'min': -1, 'max': 6}, \ 'diary_caption_level': {'type': type(0), 'default': 0, 'min': -1, 'max': 6},
\ 'diary_sort': {'type': type(''), 'default': 'desc', 'possible_values': ['asc', 'desc']}, \ 'diary_sort': {'type': type(''), 'default': 'desc', 'possible_values': ['asc', 'desc']},
\ 'exclude_files': {'type': type([]), 'default': []},
\ 'ext': {'type': type(''), 'default': '.wiki', 'min_length': 1}, \ 'ext': {'type': type(''), 'default': '.wiki', 'min_length': 1},
\ 'index': {'type': type(''), 'default': 'index', 'min_length': 1}, \ 'index': {'type': type(''), 'default': 'index', 'min_length': 1},
\ 'list_margin': {'type': type(0), 'default': -1, 'min': -1}, \ 'list_margin': {'type': type(0), 'default': -1, 'min': -1},

View File

@ -2390,6 +2390,17 @@ current wiki page is saved: >
let g:vimwiki_list = [{'path': '~/my_site/', 'auto_generate_tags': 1}] let g:vimwiki_list = [{'path': '~/my_site/', 'auto_generate_tags': 1}]
*vimwiki-option-exclude_files*
------------------------------------------------------------------------------
Key Default value Values~
exclude_files [] list of file patterns to exclude
Description~
Set this option to a list of file patterns to exclude when checking or
generating links: >
let g:vimwiki_list = [{'path': '~/my_site/', 'exclude_files': ['**/README.md']}]
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
12.4 Global Options *vimwiki-global-options* 12.4 Global Options *vimwiki-global-options*