commit 6ef67a2d8eb0322bda10e767519242f403b6c597
parent 60683f1ccef35b18124bae50d89817b81ef30d8d
Author: pendulm <lonependulm@gmail.com>
Date: Mon, 22 Apr 2013 23:39:26 +0800
Add correspoding close action to cascade open single child dir
Diffstat:
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/autoload/nerdtree.vim b/autoload/nerdtree.vim
@@ -1068,9 +1068,17 @@ function! s:closeCurrentDir(node)
if parent ==# {} || parent.isRoot()
call nerdtree#echo("cannot close tree root")
else
- call a:node.parent.close()
+ while g:NERDTreeCascadeOpenSingleChildDir && !parent.parent.isRoot()
+ if parent.parent.getVisibleChildCount() == 1
+ call parent.close()
+ let parent = parent.parent
+ else
+ break
+ endif
+ endwhile
+ call parent.close()
call nerdtree#renderView()
- call a:node.parent.putCursorHere(0, 0)
+ call parent.putCursorHere(0, 0)
endif
endfunction
diff --git a/doc/NERD_tree.txt b/doc/NERD_tree.txt
@@ -993,8 +993,9 @@ Default: 1.
When opening dir nodes, this option tells NERDTree to recursively open dirs
that have only one child which is also a dir. NERDTree will stop when it finds
-a dir that contains anything but another single dir. This option may be useful
-for Java projects. Use one of the follow lines to set this option: >
+a dir that contains anything but another single dir. Set this option on also
+cause NERDTree close parent dir intelligent. This option may be useful for Java
+projects. Use one of the follow lines to set this option: >
let NERDTreeCascadeOpenSingleChildDir=0
let NERDTreeCascadeOpenSingleChildDir=1
<