commit 9eda9ce6a11307f5441ff12b9fa0a99bae53da21
parent 2e0b101d571a170c9919f180eae20100bcd6b62e
Author: Phil Runninger <PhilRunninger@users.noreply.github.com>
Date: Thu, 21 Feb 2019 07:47:15 -0500
Add new value to NERDTreeQuitOnOpen to close bookmark table (#955)
* Update documentation for new NERDTreeQuitOnOpen values.
* Modify use of NERDTreeQuitOnOpen, keeping current behavior.
* If applicable, close the bookmarks table before opening the target.
Diffstat:
4 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/doc/NERDTree.txt b/doc/NERDTree.txt
@@ -682,7 +682,8 @@ the NERD tree. These settings should be set in your vimrc, using `:let`.
|NERDTreeMouseMode| Manage the interpretation of mouse clicks.
-|NERDTreeQuitOnOpen| Closes the tree window after opening a file.
+|NERDTreeQuitOnOpen| Closes the tree window or bookmark table after
+ opening a file.
|NERDTreeShowBookmarks| Tells the NERD tree whether to display the
bookmarks table on startup.
@@ -959,11 +960,19 @@ then (to single click activate it) you must click somewhere in
------------------------------------------------------------------------------
*NERDTreeQuitOnOpen*
-Values: 0 or 1.
+Values: 0,1,2 or 3.
Default: 0
-If set to 1, the NERD tree window will close after opening a file with the
-|NERDTree-o|, |NERDTree-i|, |NERDTree-t| and |NERDTree-T| mappings.
+This setting governs whether the NERDTree window or the bookmarks table closes
+after opening a file with the |NERDTree-o|, |NERDTree-i|, |NERDTree-t| and
+|NERDTree-T| mappings.
+
+ Value | NERDTree Window Behavior
+ -------+-------------------------------------------------------
+ 0 | No change
+ 1 | Closes after opening a file
+ 2 | Closes the bookmark table after opening a bookmark
+ 3(1+2) | Same as both 1 and 2
------------------------------------------------------------------------------
*NERDTreeShowBookmarks*
diff --git a/lib/nerdtree/bookmark.vim b/lib/nerdtree/bookmark.vim
@@ -256,6 +256,10 @@ endfunction
function! s:Bookmark.open(nerdtree, ...)
let opts = a:0 ? a:1 : {}
+ if and(g:NERDTreeQuitOnOpen,2)
+ call a:nerdtree.ui.toggleShowBookmarks()
+ endif
+
if self.path.isDirectory && !has_key(opts, 'where')
call self.toRoot(a:nerdtree)
else
diff --git a/lib/nerdtree/nerdtree.vim b/lib/nerdtree/nerdtree.vim
@@ -66,7 +66,7 @@ endfunction
"FUNCTION: s:NERDTree.CloseIfQuitOnOpen() {{{1
"Closes the NERD tree window if the close on open option is set
function! s:NERDTree.CloseIfQuitOnOpen()
- if g:NERDTreeQuitOnOpen && s:NERDTree.IsOpen()
+ if and(g:NERDTreeQuitOnOpen,1) && s:NERDTree.IsOpen()
call s:NERDTree.Close()
endif
endfunction
diff --git a/lib/nerdtree/opener.vim b/lib/nerdtree/opener.vim
@@ -243,7 +243,7 @@ endfunction
" FUNCTION: Opener._openFile() {{{1
function! s:Opener._openFile()
- if !self._stay && !g:NERDTreeQuitOnOpen && exists("b:NERDTreeZoomed") && b:NERDTreeZoomed
+ if !self._stay && !and(g:NERDTreeQuitOnOpen,1) && exists("b:NERDTreeZoomed") && b:NERDTreeZoomed
call b:NERDTree.ui.toggleZoom()
endif