nerdtree

A tree explorer plugin for vim.
Index Commits Files Refs
commit 88946e9832dcb35e13c811f3026f47112b79951c
parent 7f6c608a35bea5443db0ef9c82517f363b0ae5da
Author: Juan Ibiapina <juanibiapina@gmail.com>
Date:   Sat,  5 Mar 2016 13:59:27 -0300

Rewrite getCascade recursively

Diffstat:
Mlib/nerdtree/tree_dir_node.vim | 26++++++--------------------
1 file changed, 6 insertions(+), 20 deletions(-)
diff --git a/lib/nerdtree/tree_dir_node.vim b/lib/nerdtree/tree_dir_node.vim
@@ -117,28 +117,14 @@ endfunction
 "FUNCTION: TreeDirNode.getCascade() {{{1
 "Return an array of dir nodes (starting from self) that can be cascade opened.
 function! s:TreeDirNode.getCascade()
+    if !self.isCascadable()
+        return [self]
+    endif
 
-    let rv = [self]
-    let node = self
-
-    while 1
-        let vc = node.getVisibleChildren()
-        if len(vc) != 1
-            break
-        endif
-
-        let visChild = vc[0]
-
-        "TODO: optimize
-        if !visChild.path.isDirectory
-            break
-        endif
-
-        call add(rv, visChild)
-        let node = visChild
-    endwhile
+    let vc = self.getVisibleChildren()
+    let visChild = vc[0]
 
-    return rv
+    return [self] + visChild.getCascade()
 endfunction
 
 "FUNCTION: TreeDirNode.getChildCount() {{{1