nerdtree

A tree explorer plugin for vim.
Index Commits Files Refs
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:
Mautoload/nerdtree/ui_glue.vim | 15+++++++--------
Mlib/nerdtree/creator.vim | 3+++
Mlib/nerdtree/nerdtree.vim | 5+++++
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()