nerdtree

A tree explorer plugin for vim.
Index Commits Files Refs
commit 2e2b649232d6ae4d02d74793e5da0ee08480ad8d
parent d280b15ba9388ab93f3401b26877a13fdb8ed816
Author: Martin Grenfell <martin.grenfell@gmail.com>
Date:   Thu, 23 Jun 2016 13:37:52 +0100

Merge pull request #591 from czak/cascade-close-fix

Fix upward traversal when closing a cascade
Diffstat:
Mautoload/nerdtree/ui_glue.vim | 16++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/autoload/nerdtree/ui_glue.vim b/autoload/nerdtree/ui_glue.vim
@@ -187,17 +187,17 @@ endfunction
 " closes the parent dir of the current node
 function! s:closeCurrentDir(node)
     let parent = a:node.parent
+    while g:NERDTreeCascadeOpenSingleChildDir && !parent.isRoot()
+        let childNodes = parent.getVisibleChildren()
+        if len(childNodes) == 1 && childNodes[0].path.isDirectory
+            let parent = parent.parent
+        else
+            break
+        endif
+    endwhile
     if parent ==# {} || parent.isRoot()
         call nerdtree#echo("cannot close tree root")
     else
-        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 b:NERDTree.render()
         call parent.putCursorHere(0, 0)