commit 88946e9832dcb35e13c811f3026f47112b79951c parent 7f6c608a35bea5443db0ef9c82517f363b0ae5da Author: Juan Ibiapina <juanibiapina@gmail.com> Date: Sat, 5 Mar 2016 13:59:27 -0300 Rewrite getCascade recursively Diffstat:
| M | 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 @@ -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
