Просмотр исходного кода

When loading a deleted buffer, make the buffer listed again

Yegappan Lakshmanan 4 лет назад
Родитель
Сommit
cf9b8ba694
2 измененных файлов с 36 добавлено и 0 удалено
  1. 5 0
      plugin/mru.vim
  2. 31 0
      test/unit_tests.vim

+ 5 - 0
plugin/mru.vim

@@ -309,6 +309,8 @@ func! s:MRU_Edit_File(filename, sanitized) abort
 	exe 'edit ' . esc_fname
       endif
     endif
+    " Make the buffer a listed buffer (in case it was deleted before)
+    set buflisted
   endif
 endfunc
 
@@ -480,6 +482,9 @@ func! s:MRU_Window_Edit_File(fname, multi, edit_type, open_type) abort
       endif
     endif
   endif
+
+  " Make the buffer a listed buffer (in case it was deleted before)
+  set buflisted
 endfunc
 
 " MRU_Select_File_Cmd                   {{{1

+ 31 - 0
test/unit_tests.vim

@@ -1465,6 +1465,37 @@ func Test_51()
   endif
 endfunc
 
+" ==========================================================================
+" Test52
+" Test for the re-opening a deleted buffer from the MRU list
+" ==========================================================================
+func Test_52()
+  let test_name = 'test52'
+  edit file1.txt
+  edit file2.txt
+  bd
+  " select the file from the MRU window
+  MRU
+  call search('file2.txt')
+  exe "normal \<Enter>"
+  if &buflisted && fnamemodify(@%, ':p:t') ==# 'file2.txt'
+    call LogResult(test_name, 'pass')
+  else
+    call LogResult(test_name, 'FAIL 1')
+  endif
+  " open the file directly using the command
+  %bw!
+  edit file2.txt
+  edit file1.txt
+  bd
+  MRU file1.txt
+  if &buflisted && fnamemodify(@%, ':p:t') ==# 'file1.txt'
+    call LogResult(test_name, 'pass')
+  else
+    call LogResult(test_name, 'FAIL 2')
+  endif
+endfunc
+
 " ==========================================================================
 
 " Create the files used by the tests