From 342115e3ba1475cefafa0edbae2627d77d3334cd Mon Sep 17 00:00:00 2001 From: kiryph Date: Thu, 23 Jun 2016 09:44:48 +0200 Subject: [PATCH] Update g:netrw_list_hide from 'wildignore' (1) s:setup_vinegar() is called two times; second time &wig is empty, use netrw save w:netrw_wigkeep (2) Fixed index bug in existing code and in its copy of it: from [-strlen(s:dotfiles)-1:-1] to [-strlen(s:dotfiles):-1] see also https://github.com/tpope/vim-vinegar/issues/69 --- plugin/vinegar.vim | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/plugin/vinegar.vim b/plugin/vinegar.vim index 3ac6eda..504591e 100644 --- a/plugin/vinegar.vim +++ b/plugin/vinegar.vim @@ -20,7 +20,7 @@ let g:netrw_sort_sequence = '[\/]$,*,\%(' . join(map(split(&suffixes, ','), 'esc let s:escape = 'substitute(escape(v:val, ".$~"), "*", ".*", "g")' let g:netrw_list_hide = \ join(map(split(&wildignore, ','), '"^".' . s:escape . '. "$"'), ',') . ',^\.\.\=/\=$' . - \ (get(g:, 'netrw_list_hide', '')[-strlen(s:dotfiles)-1:-1] ==# s:dotfiles ? ','.s:dotfiles : '') + \ (get(g:, 'netrw_list_hide', '')[-strlen(s:dotfiles):-1] ==# s:dotfiles ? ','.s:dotfiles : '') if !exists("g:netrw_banner") let g:netrw_banner = 0 endif @@ -75,10 +75,11 @@ function! s:escaped(first, last) abort endfunction function! s:setup_vinegar() abort - unsilent echo "Updating g:netrw_list_hide within s:setup_vinegar()" - let g:netrw_list_hide = - \ join(map(split(&wildignore, ','), '"^".' . s:escape . '. "$"'), ',') . ',^\.\.\=/\=$' . - \ (get(g:, 'netrw_list_hide', '')[-strlen(s:dotfiles)-1:-1] ==# s:dotfiles ? ','.s:dotfiles : '') + if exists("w:netrw_wigkeep") + let g:netrw_list_hide = + \ join(map(split(w:netrw_wigkeep, ','), '"^".' . s:escape . '. "$"'), ',') . ',^\.\.\=/\=$' . + \ (get(g:, 'netrw_list_hide', '')[-strlen(s:dotfiles):-1] ==# s:dotfiles ? ','.s:dotfiles : '') + endif if empty(s:netrw_up) " save netrw mapping let s:netrw_up = substitute(maparg('-', 'n'), '\c^:\%(\)\=', '', '')