def _BuildGoToResponse(self, definition_list): if len(definition_list) == 1: definition = definition_list[0] if definition['in_builtin_module']: if definition['is_keyword']: raise RuntimeError( 'Cannot get the definition of Python keywords.') else: raise RuntimeError('Builtin modules cannot be displayed.') else: return responses.BuildGoToResponse(definition['module_path'], definition['line'], definition['column'] + 1) else: # multiple definitions defs = [] for definition in definition_list: if definition['in_builtin_module']: defs.append( responses.BuildDescriptionOnlyGoToResponse( 'Builtin ' + definition['description'])) else: defs.append( responses.BuildGoToResponse(definition['module_path'], definition['line'], definition['column'] + 1, definition['description'])) return defs
def _BuildGoToResponse( self, definitions ): if len( definitions ) == 1: definition = definitions[ 0 ] if definition.in_builtin_module(): raise RuntimeError( 'Can\'t jump to builtin module.' ) return responses.BuildGoToResponse( definition.module_path, definition.line, definition.column + 1 ) gotos = [] for definition in definitions: if definition.in_builtin_module(): gotos.append( responses.BuildDescriptionOnlyGoToResponse( 'Builtin {}'.format( definition.description ) ) ) else: gotos.append( responses.BuildGoToResponse( definition.module_path, definition.line, definition.column + 1, definition.description ) ) return gotos