diff --git a/doc/NERD_tree.txt b/doc/NERD_tree.txt index 1ad8e18..0cd3234 100644 --- a/doc/NERD_tree.txt +++ b/doc/NERD_tree.txt @@ -668,14 +668,18 @@ NERD tree. These options should be set in your vimrc. |'NERDTreeWinSize'| Sets the window size when the NERD tree is opened. -|'NERDTreeMinimalUI'| Disables display of the 'Bookmarks' label and +|'NERDTreeMinimalUI'| Disables display of the 'Bookmarks' label and 'Press ? for help' text. +|'NERDTreeCascadeSingleChildDir'| + Collapses on the same line directories that + have only one child directory. + |'NERDTreeCascadeOpenSingleChildDir'| Cascade open while selected directory has only one child that also is a directory. -|'NERDTreeAutoDeleteBuffer'| Tells the NERD tree to automatically remove +|'NERDTreeAutoDeleteBuffer'| Tells the NERD tree to automatically remove a buffer when a file is being deleted or renamed via a context menu command. @@ -984,7 +988,18 @@ of the following lines to set this option: > < ------------------------------------------------------------------------------ - *'NERDTreeCascadeOpenSingleChildDir'* + *'NERDTreeCascadeSingleChildDir'* +Values: 0 or 1 +Default: 1. + +When displaying dir nodes, this option tells NERDTree to collapse dirs that +have only one child. Use one of the follow lines to set this option: > + let NERDTreeCascadeSingleChildDir=0 + let NERDTreeCascadeSingleChildDir=1 +< + +------------------------------------------------------------------------------ + *'NERDTreeCascadeOpenSingleChildDir'* Values: 0 or 1 Default: 1. @@ -998,7 +1013,7 @@ useful for Java projects. Use one of the follow lines to set this option: > < ------------------------------------------------------------------------------ - *'NERDTreeAutoDeleteBuffer'* + *'NERDTreeAutoDeleteBuffer'* Values: 0 or 1 Default: 0. diff --git a/lib/nerdtree/tree_dir_node.vim b/lib/nerdtree/tree_dir_node.vim index 6bac917..c41077d 100644 --- a/lib/nerdtree/tree_dir_node.vim +++ b/lib/nerdtree/tree_dir_node.vim @@ -250,6 +250,10 @@ endfunction "FUNCTION: TreeDirNode.isCascadable() {{{1 "true if this dir has only one visible child - which is also a dir function! s:TreeDirNode.isCascadable() + if g:NERDTreeCascadeSingleChildDir == 0 + return 0 + endif + let c = self.getVisibleChildren() return len(c) == 1 && c[0].path.isDirectory endfunction diff --git a/plugin/NERD_tree.vim b/plugin/NERD_tree.vim index bbcc55f..fdaa5b2 100644 --- a/plugin/NERD_tree.vim +++ b/plugin/NERD_tree.vim @@ -74,6 +74,7 @@ else call s:initVariable("g:NERDTreeDirArrowCollapsible", "~") endif call s:initVariable("g:NERDTreeCascadeOpenSingleChildDir", 1) +call s:initVariable("g:NERDTreeCascadeSingleChildDir", 1) if !exists("g:NERDTreeSortOrder") let g:NERDTreeSortOrder = ['\/$', '*', '\.swp$', '\.bak$', '\~$']