def ToggleLogs( self, *filenames ): logfiles = self.GetLogfiles() if not filenames: sorted_logfiles = sorted( list( logfiles ) ) try: logfile_index = vimsupport.SelectFromList( 'Which logfile do you wish to open (or close if already open)?', sorted_logfiles ) except RuntimeError as e: vimsupport.PostVimMessage( str( e ) ) return logfile = logfiles[ sorted_logfiles[ logfile_index ] ] if not vimsupport.BufferIsVisibleForFilename( logfile ): self._OpenLogfile( logfile ) else: self._CloseLogfile( logfile ) return for filename in set( filenames ): if filename not in logfiles: continue logfile = logfiles[ filename ] if not vimsupport.BufferIsVisibleForFilename( logfile ): self._OpenLogfile( logfile ) continue self._CloseLogfile( logfile )
def BufferIsVisibleForFilename_test(): buffers = [{ 'number': 1, 'filename': os.path.realpath('visible_filename'), 'window': 1 }, { 'number': 2, 'filename': os.path.realpath('hidden_filename'), }] with patch('vim.buffers', buffers): eq_(vimsupport.BufferIsVisibleForFilename('visible_filename'), True) eq_(vimsupport.BufferIsVisibleForFilename('hidden_filename'), False) eq_(vimsupport.BufferIsVisibleForFilename('another_filename'), False)
def ToggleLogs( self, stdout = True, stderr = True ): if ( stdout and vimsupport.BufferIsVisibleForFilename( self._server_stdout ) or stderr and vimsupport.BufferIsVisibleForFilename( self._server_stderr ) ): return self._CloseLogs( stdout = stdout, stderr = stderr ) # Close hidden logfile buffers if any to keep a clean state self._CloseLogs( stdout = stdout, stderr = stderr ) try: self._OpenLogs( stdout = stdout, stderr = stderr ) except RuntimeError as error: vimsupport.PostVimMessage( 'YouCompleteMe encountered an error when ' 'opening logs: {0}.'.format( error ) )
def ToggleLogs(self, *filenames): logfiles = self.GetLogfiles() if not filenames: vimsupport.PostVimMessage('Available logfiles are:\n' '{0}'.format('\n'.join( sorted(list(logfiles))))) return for filename in set(filenames): if filename not in logfiles: continue logfile = logfiles[filename] if not vimsupport.BufferIsVisibleForFilename(logfile): self._OpenLogfile(logfile) continue self._CloseLogfile(logfile)