commit 48df6bfd6eec34ccf00ad7e01af26864ad75f62f
parent 513bf6455568a1a1e8182ab877df809d125e6421
Author: Martin Grenfell <martin.grenfell@gmail.com>
Date: Fri, 21 Oct 2016 14:40:18 +0100
Revert "remove NERDTree.previousBuf() and related code"
This reverts commit 2027ae03dbaff8fd31832915ae216c0b0d6c24d6.
Diffstat:
3 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/autoload/nerdtree/ui_glue.vim b/autoload/nerdtree/ui_glue.vim
@@ -207,15 +207,14 @@ endfunction
" FUNCTION: s:closeTreeWindow() {{{1
" close the tree window
function! s:closeTreeWindow()
- if b:NERDTree.isWinTree()
- bp
- return
- endif
-
- if winnr("$") > 1
- call g:NERDTree.Close()
+ if b:NERDTree.isWinTree() && b:NERDTree.previousBuf() != -1
+ exec "buffer " . b:NERDTree.previousBuf()
else
- call nerdtree#echo("Cannot close last window")
+ if winnr("$") > 1
+ call g:NERDTree.Close()
+ else
+ call nerdtree#echo("Cannot close last window")
+ endif
endif
endfunction
diff --git a/lib/nerdtree/creator.vim b/lib/nerdtree/creator.vim
@@ -92,11 +92,14 @@ function! s:Creator.createWindowTree(dir)
"we want the directory buffer to disappear when we do the :edit below
setlocal bufhidden=wipe
+ let previousBuf = expand("#")
+
"we need a unique name for each window tree buffer to ensure they are
"all independent
exec g:NERDTreeCreatePrefix . " edit " . self._nextBufferName()
call self._createNERDTree(path, "window")
+ let b:NERDTree._previousBuf = bufnr(previousBuf)
call self._setCommonBufOptions()
call b:NERDTree.render()
diff --git a/lib/nerdtree/nerdtree.vim b/lib/nerdtree/nerdtree.vim
@@ -181,6 +181,11 @@ function! s:NERDTree.PathFilters()
return s:NERDTree._PathFilters
endfunction
+"FUNCTION: s:NERDTree.previousBuf() {{{1
+function! s:NERDTree.previousBuf()
+ return self._previousBuf
+endfunction
+
"FUNCTION: s:NERDTree.render() {{{1
"A convenience function - since this is called often
function! s:NERDTree.render()