From 0a16b24268cb0b597fd8ac815d0baf05d54ff560 Mon Sep 17 00:00:00 2001
From: ZeusTheTrueGod <l-2732@yandex.ru>
Date: Sun, 26 Aug 2012 08:51:26 +0000
Subject: [PATCH] Better flow for renaming and deleting files

Previously when you delete or moved a file via
md or mm commands the NERDTree was asking you about what to do
with the remaining buffer of the just deleted or moved file. I
always press 'y' in this cases so I've decided to add a new parameter,
NERDTreeAutoDeleteBuffer which you can set to 1 in order to skip
this confirmation.
---
 doc/NERD_tree.txt           | 18 ++++++++++++++++++
 nerdtree_plugin/fs_menu.vim |  8 ++++++--
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/doc/NERD_tree.txt b/doc/NERD_tree.txt
index adcf5a5..e48bd38 100644
--- a/doc/NERD_tree.txt
+++ b/doc/NERD_tree.txt
@@ -658,6 +658,10 @@ NERD tree. These options should be set in your vimrc.
                                 Casade open while selected directory has only
                                 one child that also is a directory.
 
+|'NERDTreeAutoDeleteBuffer'|    Tells the NERD tree to automatically remove 
+                                a buffer when a file is being deleted or renamed
+                                via a context menu command.
+
 ------------------------------------------------------------------------------
 3.2. Customisation details                             *NERDTreeOptionDetails*
 
@@ -982,6 +986,20 @@ for Java projects.  Use one of the follow lines to set this option: >
     let NERDTreeCasadeOpenSingleChildDir=1
 <
 
+------------------------------------------------------------------------------
+                                          *'NERDTreeAutoDeleteBuffer'*
+Values: 0 or 1
+Default: 0.
+
+When using a context menu to delete or rename a file you may also want to delete
+the buffer which is no more valid. If the option is not set you will see a
+confirmation if you really want to delete an old buffer. If you always press 'y'
+then it worths to set this option to 1. Use one of the follow lines to set this
+option: >
+    let NERDTreeAutoDeleteBuffer=0
+    let NERDTreeAutoDeleteBuffer=1
+<
+
 ==============================================================================
 4. The NERD tree API                                             *NERDTreeAPI*
 
diff --git a/nerdtree_plugin/fs_menu.vim b/nerdtree_plugin/fs_menu.vim
index 0e2f728..2fd3868 100644
--- a/nerdtree_plugin/fs_menu.vim
+++ b/nerdtree_plugin/fs_menu.vim
@@ -15,6 +15,11 @@ if exists("g:loaded_nerdtree_fs_menu")
 endif
 let g:loaded_nerdtree_fs_menu = 1
 
+"Automatically delete the buffer after deleting or renaming a file
+if !exists("g:NERDTreeAutoDeleteBuffer")
+    let g:NERDTreeAutoDeleteBuffer = 0
+endif
+
 call NERDTreeAddMenuItem({'text': '(a)dd a childnode', 'shortcut': 'a', 'callback': 'NERDTreeAddNode'})
 call NERDTreeAddMenuItem({'text': '(m)ove the current node', 'shortcut': 'm', 'callback': 'NERDTreeMoveNode'})
 call NERDTreeAddMenuItem({'text': '(d)elete the current node', 'shortcut': 'd', 'callback': 'NERDTreeDeleteNode'})
@@ -52,11 +57,10 @@ endfunction
 "     del the buffer
 function! s:promptToDelBuffer(bufnum, msg)
     echo a:msg
-    if nr2char(getchar()) ==# 'y'
+    if g:NERDTreeAutoDeleteBuffer || nr2char(getchar()) ==# 'y'
         exec "silent bdelete! " . a:bufnum
     endif
 endfunction
-
 "FUNCTION: NERDTreeAddNode(){{{1
 function! NERDTreeAddNode()
     let curDirNode = g:NERDTreeDirNode.GetSelected()