From 60683f1ccef35b18124bae50d89817b81ef30d8d Mon Sep 17 00:00:00 2001 From: pendulm Date: Mon, 22 Apr 2013 23:35:15 +0800 Subject: [PATCH 1/2] Fix typo Casade to Cascade --- doc/NERD_tree.txt | 10 +++++----- lib/nerdtree/tree_dir_node.vim | 2 +- plugin/NERD_tree.vim | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/NERD_tree.txt b/doc/NERD_tree.txt index 47f3472..dda2b75 100644 --- a/doc/NERD_tree.txt +++ b/doc/NERD_tree.txt @@ -667,8 +667,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 @@ -987,7 +987,7 @@ option: > < ------------------------------------------------------------------------------ - *'NERDTreeCasadeOpenSingleChildDir'* + *'NERDTreeCascadeOpenSingleChildDir'* Values: 0 or 1 Default: 1. @@ -995,8 +995,8 @@ 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 + let NERDTreeCascadeOpenSingleChildDir=0 + let NERDTreeCascadeOpenSingleChildDir=1 < ------------------------------------------------------------------------------ diff --git a/lib/nerdtree/tree_dir_node.vim b/lib/nerdtree/tree_dir_node.vim index e3a068e..b9a905a 100644 --- 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 index 5bee03a..e42533a 100644 --- a/plugin/NERD_tree.vim +++ b/plugin/NERD_tree.vim @@ -66,7 +66,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$', '\~$'] From 6ef67a2d8eb0322bda10e767519242f403b6c597 Mon Sep 17 00:00:00 2001 From: pendulm Date: Mon, 22 Apr 2013 23:39:26 +0800 Subject: [PATCH 2/2] Add correspoding close action to cascade open single child dir --- autoload/nerdtree.vim | 12 ++++++++++-- doc/NERD_tree.txt | 5 +++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/autoload/nerdtree.vim b/autoload/nerdtree.vim index 3a2d71a..c440bf8 100644 --- 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 index dda2b75..b262131 100644 --- a/doc/NERD_tree.txt +++ b/doc/NERD_tree.txt @@ -993,8 +993,9 @@ 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: > +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 <