Пример #1
0
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)
Пример #2
0
 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)
Пример #3
0
 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)
Пример #4
0
 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)
Пример #5
0
 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)
Пример #6
0
 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 )
Пример #7
0
    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))