nerdtree

A tree explorer plugin for vim.
Index Commits Files Refs
commit 4c409a1640ab17a0fdcae98a7d82b7e1d5396106
parent e27cd86a9b34bf9e055a8da35bd797fef2944eb6
Author: Jason Franklin <j_fra@fastmail.us>
Date:   Sat, 11 Nov 2017 13:23:51 -0500

Add a note/warning to "TreeDirNode.activate()"

This warning makes developers aware of the possibility of
overwriting the NERDTree text in a new window when activate is used.

Diffstat:
Mlib/nerdtree/tree_dir_node.vim | 17++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/lib/nerdtree/tree_dir_node.vim b/lib/nerdtree/tree_dir_node.vim
@@ -21,12 +21,19 @@ function! s:TreeDirNode.AbsoluteTreeRoot()
 endfunction
 
 " FUNCTION: TreeDirNode.activate([options]) {{{1
-unlet s:TreeDirNode.activate
 function! s:TreeDirNode.activate(...)
-    let opts = a:0 ? a:1 : {}
-    call self.toggleOpen(opts)
-    call self.getNerdtree().render()
-    call self.putCursorHere(0, 0)
+    let l:options = (a:0 > 0) ? a:1 : {}
+
+    call self.toggleOpen(l:options)
+
+    " Note that we only re-render the NERDTree for this node if we did NOT
+    " create a new node and render it in a new window or tab.  In the latter
+    " case, rendering the NERDTree for this node could overwrite the text of
+    " the new NERDTree!
+    if !has_key(l:options, 'where') || empty(l:options['where'])
+        call self.getNerdtree().render()
+        call self.putCursorHere(0, 0)
+    endif
 endfunction
 
 " FUNCTION: TreeDirNode.addChild(treenode, inOrder) {{{1