Beispiel #1
0
def GetCompletions():
    request_data = RequestWrap(request.json)
    do_filetype_completion = _server_state.ShouldUseFiletypeCompleter(
        request_data)
    LOGGER.debug('Using filetype completion: %s', do_filetype_completion)

    errors = None
    completions = None

    if do_filetype_completion:
        try:
            filetype_completer = _server_state.GetFiletypeCompleter(
                request_data['filetypes'])
            completions = filetype_completer.ComputeCandidates(request_data)
        except Exception as exception:
            if request_data['force_semantic']:
                # user explicitly asked for semantic completion, so just pass the error
                # back
                raise

            # store the error to be returned with results from the identifier
            # completer
            LOGGER.exception(
                'Exception from semantic completer (using general)')
            stack = traceback.format_exc()
            errors = [BuildExceptionResponse(exception, stack)]

    if not completions and not request_data['force_semantic']:
        completions = _server_state.GetGeneralCompleter().ComputeCandidates(
            request_data)

    return _JsonResponse(
        BuildCompletionResponse(completions if completions else [],
                                request_data['start_column'],
                                errors=errors))
Beispiel #2
0
def GetCompletions():
  LOGGER.info( 'Received completion request' )
  request_data = RequestWrap( request.json )
  do_filetype_completion = SERVER_STATE.ShouldUseFiletypeCompleter(
    request_data )
  filetypes = request_data[ 'filetypes' ]
  completer = ( SERVER_STATE.GetFiletypeCompleter( filetypes ) if
                do_filetype_completion else
                SERVER_STATE.GetGeneralCompleter() )

  return _JsonResponse( BuildCompletionResponse(
      completer.ComputeCandidates( request_data ),
      request_data.CompletionStartColumn() ) )
Beispiel #3
0
def GetCompletions():
    _logger.info('Received completion request')
    request_data = RequestWrap(request.json)
    do_filetype_completion = _server_state.ShouldUseFiletypeCompleter(
        request_data)
    _logger.debug('Using filetype completion: %s', do_filetype_completion)
    filetypes = request_data['filetypes']
    completer = (_server_state.GetFiletypeCompleter(filetypes)
                 if do_filetype_completion else
                 _server_state.GetGeneralCompleter())

    return _JsonResponse(
        BuildCompletionResponse(completer.ComputeCandidates(request_data),
                                request_data.CompletionStartColumn()))
Beispiel #4
0
def GetCompletions():
  _logger.info( 'Received completion request' )
  request_data = RequestWrap( request.json )
  ( do_filetype_completion, forced_filetype_completion ) = (
                    _server_state.ShouldUseFiletypeCompleter(request_data ) )
  _logger.debug( 'Using filetype completion: %s', do_filetype_completion )

  errors = None
  completions = None

  if do_filetype_completion:
    try:
      completions = ( _server_state.GetFiletypeCompleter(
                                  request_data[ 'filetypes' ] )
                                 .ComputeCandidates( request_data ) )

    except Exception as exception:
      if forced_filetype_completion:
        # user explicitly asked for semantic completion, so just pass the error
        # back
        raise
      else:
        # store the error to be returned with results from the identifier
        # completer
        stack = traceback.format_exc()
        _logger.error( 'Exception from semantic completer (using general): ' +
                        "".join( stack ) )
        errors = [ BuildExceptionResponse( exception, stack ) ]

  if not completions and not forced_filetype_completion:
    completions = ( _server_state.GetGeneralCompleter()
                                 .ComputeCandidates( request_data ) )

  return _JsonResponse(
      BuildCompletionResponse( completions if completions else [],
                               request_data.CompletionStartColumn(),
                               errors = errors ) )