def HandleServerException(exception): serialized_exception = str(exception) # We ignore the exception about the file already being parsed since it comes # up often and isn't something that's actionable by the user. if 'already being parsed' in serialized_exception: return vimsupport.PostMultiLineNotice(serialized_exception)
def _HandleFixitResponse(self): if not len(self._response['fixits']): vimsupport.EchoText("No fixits found for current line") else: chunks = self._response['fixits'][0]['chunks'] try: vimsupport.ReplaceChunks(chunks) except RuntimeError as e: vimsupport.PostMultiLineNotice(e.message)
def _NotifyUserIfServerCrashed(self): if self._IsServerAlive(): return if self._server_stderr: with open(self._server_stderr, 'r') as server_stderr_file: vimsupport.PostMultiLineNotice( SERVER_CRASH_MESSAGE_STDERR_FILE + server_stderr_file.read()) else: vimsupport.PostVimMessage(SERVER_CRASH_MESSAGE_SAME_STDERR)
def Start(self): request_data = BuildRequestData() request_data.update({ 'completer_target': self._completer_target, 'command_arguments': self._arguments }) try: self._response = self.PostDataToHandler(request_data, 'run_completer_command') except ServerError as e: vimsupport.PostMultiLineNotice(e)
def _NotifyUserIfServerCrashed(self): if self._IsServerAlive(): return if self._server_stderr: with open(self._server_stderr, 'r') as server_stderr_file: error_output = ''.join(server_stderr_file.readlines() [:-NUM_YCMD_STDERR_LINES_ON_CRASH]) vimsupport.PostMultiLineNotice( SERVER_CRASH_MESSAGE_STDERR_FILE + error_output) else: vimsupport.PostVimMessage(SERVER_CRASH_MESSAGE_SAME_STDERR)
def _NotifyUserIfServerCrashed( self ): if self._user_notified_about_crash or self._IsServerAlive(): return self._user_notified_about_crash = True if self._server_stderr: try: with open( self._server_stderr, 'r' ) as server_stderr_file: error_output = ''.join( server_stderr_file.readlines()[ : - NUM_YCMD_STDERR_LINES_ON_CRASH ] ) vimsupport.PostMultiLineNotice( SERVER_CRASH_MESSAGE_STDERR_FILE + error_output ) except IOError: vimsupport.PostVimMessage( SERVER_CRASH_MESSAGE_STDERR_FILE_DELETED ) else: vimsupport.PostVimMessage( SERVER_CRASH_MESSAGE_SAME_STDERR )
def _HandleFixitResponse(self): if not len(self._response['fixits']): vimsupport.EchoText("No fixits found for current line") else: try: fixit_index = 0 # When there are multiple fixit suggestions, present them as a list to # the user hand have her choose which one to apply. if len(self._response['fixits']) > 1: fixit_index = vimsupport.SelectFromList( "Multiple FixIt suggestions are available at this location. " "Which one would you like to apply?", [fixit['text'] for fixit in self._response['fixits']]) vimsupport.ReplaceChunks( self._response['fixits'][fixit_index]['chunks']) except RuntimeError as e: vimsupport.PostMultiLineNotice(str(e))