diff runtime/autoload/netrw_gitignore.vim @ 18594:e9a47bcf7b94

Update runtime files Commit: https://github.com/vim/vim/commit/5ef1c6a4838a9629b793f3ae676f72a764171b00 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Nov 10 22:09:11 2019 +0100 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Sun, 10 Nov 2019 22:15:04 +0100
parents 11d78e58a487
children
line wrap: on
line diff
--- a/runtime/autoload/netrw_gitignore.vim
+++ b/runtime/autoload/netrw_gitignore.vim
@@ -18,61 +18,5 @@
 "               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 = substitute(escaped, '\$', '\\$', 'g')
-    let escaped = substitute(escaped, '*', '.*', 'g')
-    " correction: dot, dollar and asterisks chars shouldn't be escaped when
-    " within regex matching groups.
-    let escaped = substitute(escaped, '\(\[[^]]*\)\zs\\\.', '\.', 'g')
-    let escaped = substitute(escaped, '\(\[[^]]*\)\zs\\\$', '\$', 'g')
-    let escaped = substitute(escaped, '\(\[[^]]*\)\zs\.\*', '*', 'g')
-    let escaped_lines = add(escaped_lines, escaped)
-  endfor
-
-  return join(escaped_lines, ',')
+  return substitute(substitute(system('git ls-files --other --ignored --exclude-standard --directory'), '\n', ',', 'g'), ',$', '', '')
 endfunction