nerdtree

A tree explorer plugin for vim.
Index Commits Files Refs
commit cd55e2d5224019e889e4bf4cca2376566a36526b
parent 3d2bf2d9acd8d3db24f3b60c125161961171a2c2
Author: Martin Grenfell <martin_grenfell@msn.com>
Date:   Fri,  9 Jan 2009 15:56:43 +1300

ensure all secondary nerd tree buf names are unique

Diffstat:
Mplugin/NERD_tree.vim | 17++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/plugin/NERD_tree.vim b/plugin/NERD_tree.vim
@@ -1982,8 +1982,7 @@ endfunction " >>>
 "FUNCTION: s:checkForBrowse(dir) {{{2
 "inits a secondary nerd tree in the current buffer if appropriate
 function! s:checkForBrowse(dir)
-    if !exists("b:NERDTreeProcessed") && a:dir != '' && isdirectory(a:dir)
-        let b:NERDTreeProcessed = 1
+    if a:dir != '' && isdirectory(a:dir)
         call s:initNerdTreeInPlace(a:dir)
     endif
 endfunction
@@ -2066,7 +2065,7 @@ function! s:initNerdTree(name)
     call b:NERDTreeRoot.putCursorHere(0, 0)
 endfunction
 
-"FUNCTION: s:initNerdTreeInPlace(name) {{{2
+"FUNCTION: s:initNerdTreeInPlace(dir) {{{2
 function! s:initNerdTreeInPlace(dir)
     try
         let path = s:Path.New(a:dir)
@@ -2074,6 +2073,11 @@ function! s:initNerdTreeInPlace(dir)
         call s:echo("Invalid directory name:" . a:name)
         return
     endtry
+
+    "we need a unique name for each secondary tree buffer to ensure they are
+    "all independent
+    exec "silent edit " . s:nextBufferName()
+
     let b:NERDTreeRoot = s:TreeDirNode.New(path)
     call b:NERDTreeRoot.open()
 
@@ -2167,6 +2171,13 @@ function! s:initNerdTreeMirror()
         call s:renderView()
     endif
 endfunction
+" FUNCTION: s:nextBufferName() {{{2
+" returns the buffer name for the next nerd tree
+function! s:nextBufferName()
+    let name = s:NERDTreeBufName . s:next_buffer_number
+    let s:next_buffer_number += 1
+    return name
+endfunction
 " FUNCTION: s:tabpagevar(tabnr, var) {{{2
 function! s:tabpagevar(tabnr, var)
     let currentTab = tabpagenr()