From 88946e9832dcb35e13c811f3026f47112b79951c Mon Sep 17 00:00:00 2001 From: Juan Ibiapina Date: Sat, 5 Mar 2016 13:59:27 -0300 Subject: [PATCH] Rewrite getCascade recursively --- lib/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 index 96e7257..6bac917 100644 --- 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 + let vc = self.getVisibleChildren() + let visChild = vc[0] - 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 - - return rv + return [self] + visChild.getCascade() endfunction "FUNCTION: TreeDirNode.getChildCount() {{{1