Meikel  Brandmeyer avatar Meikel Brandmeyer committed f9c8bcd

Demote the ResultWindow when its buffer is removed

Comments (0)

Files changed (1)

vim/autoload/vimclojure.vim

 	let b:vimclojure_result_buffer = 1
 	let t:vimclojure_result_window = instance
 
+	augroup VimClojure
+		autocmd BufDelete <buffer> call g:vimclojure#ResultWindow.Demote(
+					\ getbufvar(eval(expand("<abuf>")), "vimclojure_buffer"))
+	augroup END
+
 	return instance
 endfunction
 
+" Remove the buffer object from the window. The buffer is removed
+" automatically be Vim, when it is removed from the window.
+function! vimclojure#ResultWindow.Demote(buffer) dict
+	if exists("t:vimclojure_result_window")
+		if t:vimclojure_result_window._buffer is a:buffer
+			let t:vimclojure_result_window._buffer =
+						\ g:vimclojure#NullBuffer.New()
+		endif
+	endif
+endfunction
+
 function! vimclojure#ResultWindow.close() dict
 	unlet t:vimclojure_result_window
 	call self.__superWindowClose()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.