nerdtree

A tree explorer plugin for vim.
Index Commits Files Refs
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:
Mautoload/nerdtree.vim | 12++++++++++--
Mdoc/NERD_tree.txt | 5+++--
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
 <