commit 0928b5b0269257245553a92199679d98d7f08b97
parent 8189597c0bf736f469ddab02104dd89610d28cc5
Author: Martin Grenfell <martin.grenfell@gmail.com>
Date: Fri, 27 Jun 2014 19:25:48 +0100
Merge pull request #251 from pendulm/master
fix typo and smart close single child directory
Diffstat:
4 files changed, 20 insertions(+), 11 deletions(-)
diff --git a/autoload/nerdtree.vim b/autoload/nerdtree.vim
@@ -1068,9 +1068,17 @@ function! s:closeCurrentDir(node)
if parent ==# {} || parent.isRoot()
call nerdtree#echo("cannot close tree root")
else
- call a:node.parent.close()
+ 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 nerdtree#renderView()
- call a:node.parent.putCursorHere(0, 0)
+ call parent.putCursorHere(0, 0)
endif
endfunction
diff --git a/doc/NERD_tree.txt b/doc/NERD_tree.txt
@@ -676,8 +676,8 @@ NERD tree. These options should be set in your vimrc.
|'NERDTreeDirArrows'| Tells the NERD tree to use arrows instead of
+ ~ chars when displaying directories.
-|'NERDTreeCasadeOpenSingleChildDir'|
- Casade open while selected directory has only
+|'NERDTreeCascadeOpenSingleChildDir'|
+ Cascade open while selected directory has only
one child that also is a directory.
|'NERDTreeAutoDeleteBuffer'| Tells the NERD tree to automatically remove
@@ -1011,16 +1011,17 @@ option: >
<
------------------------------------------------------------------------------
- *'NERDTreeCasadeOpenSingleChildDir'*
+ *'NERDTreeCascadeOpenSingleChildDir'*
Values: 0 or 1
Default: 1.
When opening dir nodes, this option tells NERDTree to recursively open dirs
that have only one child which is also a dir. NERDTree will stop when it finds
-a dir that contains anything but another single dir. This option may be useful
-for Java projects. Use one of the follow lines to set this option: >
- let NERDTreeCasadeOpenSingleChildDir=0
- let NERDTreeCasadeOpenSingleChildDir=1
+a dir that contains anything but another single dir. Set this option on also
+cause NERDTree close parent dir intelligent. This option may be useful for Java
+projects. Use one of the follow lines to set this option: >
+ let NERDTreeCascadeOpenSingleChildDir=0
+ let NERDTreeCascadeOpenSingleChildDir=1
<
------------------------------------------------------------------------------
diff --git a/lib/nerdtree/tree_dir_node.vim b/lib/nerdtree/tree_dir_node.vim
@@ -500,7 +500,7 @@ function! s:TreeDirNode.toggleOpen(...)
if self.isOpen ==# 1
call self.close()
else
- if g:NERDTreeCasadeOpenSingleChildDir == 0
+ if g:NERDTreeCascadeOpenSingleChildDir == 0
call self.open(opts)
else
call self.openAlong(opts)
diff --git a/plugin/NERD_tree.vim b/plugin/NERD_tree.vim
@@ -69,7 +69,7 @@ call s:initVariable("g:NERDTreeShowHidden", 0)
call s:initVariable("g:NERDTreeShowLineNumbers", 0)
call s:initVariable("g:NERDTreeSortDirs", 1)
call s:initVariable("g:NERDTreeDirArrows", !nerdtree#runningWindows())
-call s:initVariable("g:NERDTreeCasadeOpenSingleChildDir", 1)
+call s:initVariable("g:NERDTreeCascadeOpenSingleChildDir", 1)
if !exists("g:NERDTreeSortOrder")
let g:NERDTreeSortOrder = ['\/$', '*', '\.swp$', '\.bak$', '\~$']