From 74951adcc756b5de111397086cdf1832d4522101 Mon Sep 17 00:00:00 2001 From: Nader Akoury Date: Fri, 11 Nov 2016 07:53:01 -0800 Subject: [PATCH] Address #1366 by reusing a single preview buffer * Additionally set the preview buffer to be unlisted so it does not interfere with commands like :bnext --- python/ycm/vimsupport.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/python/ycm/vimsupport.py b/python/ycm/vimsupport.py index 876a0e3a..5ca2c46c 100644 --- a/python/ycm/vimsupport.py +++ b/python/ycm/vimsupport.py @@ -895,6 +895,15 @@ def OpenFileInPreviewWindow( filename ): vim.command( 'silent! pedit! ' + filename ) +def GetPreviewBuffer(): + """ Get the preview buffer. Create it if it does not exist. """ + variable_name = 'g:ycm_preview_buffer_name' + if not VariableExists( variable_name ): + SetVariableValue( variable_name, vim.eval( 'tempname()' ) ) + + return GetVariableValue( variable_name ) + + def WriteToPreviewWindow( message ): """ Display the supplied message in the preview window """ @@ -907,7 +916,7 @@ def WriteToPreviewWindow( message ): ClosePreviewWindow() - OpenFileInPreviewWindow( vim.eval( 'tempname()' ) ) + OpenFileInPreviewWindow( GetPreviewBuffer() ) if JumpToPreviewWindow(): # We actually got to the preview window. By default the preview window can't @@ -922,6 +931,7 @@ def WriteToPreviewWindow( message ): vim.current.buffer.options[ 'swapfile' ] = False vim.current.buffer.options[ 'modifiable' ] = False vim.current.buffer.options[ 'readonly' ] = True + vim.current.buffer.options[ 'buflisted' ] = False # We need to prevent closing the window causing a warning about unsaved # file, so we pretend to Vim that the buffer has not been changed.