mirror of
https://github.com/neovim/neovim.git
synced 2024-12-23 20:55:18 -07:00
a98a6996c2
Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7 Excluding: Amiga icons (*.info, icons/) doc/hangulin.txt tutor/ spell/ lang/ (only used for menu translations) macros/maze/, macros/hanoi/, macros/life/, macros/urm/ These were used to test vi compatibility. termcap "Demonstration of a termcap file (for the Amiga and Archimedes)" Helped-by: Rich Wareham <rjw57@cam.ac.uk> Helped-by: John <john.schmidt.h@gmail.com> Helped-by: Yann <yann@yann-salaun.com> Helped-by: Christophe Badoit <c.badoit@lesiteimmo.com> Helped-by: drasill <github@tof2k.com> Helped-by: Tae Sandoval Murgan <taecilla@gmail.com> Helped-by: Lowe Thiderman <lowe.thiderman@gmail.com>
72 lines
2.6 KiB
VimL
72 lines
2.6 KiB
VimL
" netrw_gitignore#Hide: gitignore-based hiding
|
|
" Function returns a string of comma separated patterns convenient for
|
|
" assignment to `g:netrw_list_hide` option.
|
|
" Function can take additional filenames as arguments, example:
|
|
" netrw_gitignore#Hide('custom_gitignore1', 'custom_gitignore2')
|
|
"
|
|
" Usage examples:
|
|
" let g:netrw_list_hide = netrw_gitignore#Hide()
|
|
" let g:netrw_list_hide = netrw_gitignore#Hide() . 'more,hide,patterns'
|
|
"
|
|
" Copyright: Copyright (C) 2013 Bruno Sutic {{{1
|
|
" Permission is hereby granted to use and distribute this code,
|
|
" with or without modifications, provided that this copyright
|
|
" notice is copied with it. Like anything else that's free,
|
|
" netrw_gitignore.vim is provided *as is* and comes with no
|
|
" warranty of any kind, either expressed or implied. By using
|
|
" this plugin, you agree that in no event will the copyright
|
|
" holder be liable for any damages resulting from the use
|
|
" of this software.
|
|
function! netrw_gitignore#Hide(...)
|
|
let additional_files = a:000
|
|
|
|
let default_files = ['.gitignore', '.git/info/exclude']
|
|
|
|
" get existing global/system gitignore files
|
|
let global_gitignore = expand(substitute(system("git config --global core.excludesfile"), '\n', '', 'g'))
|
|
if global_gitignore !=# ''
|
|
let default_files = add(default_files, global_gitignore)
|
|
endif
|
|
let system_gitignore = expand(substitute(system("git config --system core.excludesfile"), '\n', '', 'g'))
|
|
if system_gitignore !=# ''
|
|
let default_files = add(default_files, system_gitignore)
|
|
endif
|
|
|
|
" append additional files if given as function arguments
|
|
if additional_files !=# []
|
|
let files = extend(default_files, additional_files)
|
|
else
|
|
let files = default_files
|
|
endif
|
|
|
|
" keep only existing/readable files
|
|
let gitignore_files = []
|
|
for file in files
|
|
if filereadable(file)
|
|
let gitignore_files = add(gitignore_files, file)
|
|
endif
|
|
endfor
|
|
|
|
" get contents of gitignore patterns from those files
|
|
let gitignore_lines = []
|
|
for file in gitignore_files
|
|
for line in readfile(file)
|
|
" filter empty lines and comments
|
|
if line !~# '^#' && line !~# '^$'
|
|
let gitignore_lines = add(gitignore_lines, line)
|
|
endif
|
|
endfor
|
|
endfor
|
|
|
|
" convert gitignore patterns to Netrw/Vim regex patterns
|
|
let escaped_lines = []
|
|
for line in gitignore_lines
|
|
let escaped = line
|
|
let escaped = substitute(escaped, '\.', '\\.', 'g')
|
|
let escaped = substitute(escaped, '*', '.*', 'g')
|
|
let escaped_lines = add(escaped_lines, escaped)
|
|
endfor
|
|
|
|
return join(escaped_lines, ',')
|
|
endfunction
|