Crear/Importar un índice fuera de línea

Las potentes características de visualización y edición de C/C++ proporcionadas por IBM® Rational® Developer for AIX and Linux están basadas en lo que se llama un índice, que básicamente es un archivo de base de datos que almacena información sobre la estructura de su código de proyecto. Normalmente, se analizan los archivos de proyecto para llenar esta base de datos de índices y posteriormente, cuando utiliza cualquiera de las características de código fuente C/C++ del entorno de desarrollo, esta base de datos se utiliza para buscar información sobre el código. El tiempo necesario para analizar el código fuente y construir un índice a partir de él, varía según el tamaño del proyecto. Al igual que ocurre cuando el código se analiza durante la compilación, un proyecto pequeño se puede analizar e indexar en cuestión de segundos, mientras que un proyecto grande puede durar horas. Para ayudar a minimizar el tiempo necesario para utilizar las características de código fuente de IBM® Rational® Developer for AIX and Linux, el IDE soporta la creación de archivos de índice en la línea de mandatos, en un sistema remoto soportado, que el IDE puede importar después para llenar el índice de contenido sin tener que esperar a la ejecución de un análisis. De esta forma, un usuario de un equipo puede crear manualmente un archivo de índice en la línea de mandatos y después compartirlo con sus colegas o se puede generar el índice mediante un proceso de construcción de línea de mandatos automatizado (p. ej. como parte de una construcción nocturna o un sistema de integración continua) para que después lo importen los desarrolladores.


Crear un índice mientras se está fuera de línea

El indexador fuera de línea se puede ejecutar mediante un script shell llamado offlineIndexer.sh que está ubicado en el directorio del servidor IBM® Rational® Developer for AIX and Linux, en un sistema remoto soportado. El formato del mandato es el siguiente:

offlineIndexer.sh $VÍA_ABSOLUTA_AL_DIRECTORIO_ORIGEN $VÍA_ABSOLUTA_A_ARCHIVO_CONFIG_DE_INDEXADOR

donde $VÍA_ABSOLUTA_AL_DIRECTORIO_ORIGEN es la vía de acceso absoluta al directorio del código fuente y $VÍA_ABSOLUTA_A_ARCHIVO_CONFIG_DE_INDEXADOR es la vía de acceso absoluta a un archivo de propiedades de configuración de indexador fuera de línea (el formato de este archivo se describe a continuación).

Una vez finalizada la indexación, se crea un archivo zip de índice fuera de línea en un directorio .standalone_index, bajo el directorio de código fuente.

Configuración del indexador fuera de línea


El indexador fuera de línea lo configura un archivo de propiedades que se ajusta al formato de propiedades Java (normalmente cada línea tiene la forma PROPIEDAD=VALOR). La lista de propiedades permitidas se proporciona en la tabla siguiente. Las propiedades con valores predeterminados reciben el valor especificado si no se especifica ningún valor.

Aquí offlineIndex_config.properties encontrará un archivo de propiedades de configuración de plantilla.

Propiedad Valor predeterminado Descripción
offlineIndexer_log_filename N/D La vía de acceso absoluta a un archivo en el que registrar el progreso y la información. De forma predeterminada, el registro se pondrá en la salida estándar
trace_level 0 Nivel de rastreo de registro: 0 - Registrar mensajes de error, 1 - Registrar errores e información
build_log_filename N/D La vía de acceso absoluta a un archivo de registro de construcción que el indexador fuera de línea puede analizar para buscar vías de acceso de inclusión y macros especificadas por el proceso de construcción. Estas macros y vías de acceso de inclusión se utilizan para configurar el analizador cuando se indexa el código fuente.
build_directory N/D Vía de acceso absoluta al directorio de trabajo utilizado cuando se generó el registro de construcción.
projectScope_language_nature C/C++ El tipo de lenguaje del proyecto, C/C++ o C
projectScope_complier_name XL El compilador utilizado para construir el código fuente. Esta influencia muestra cómo se analiza el código ya que los diferentes compiladores soportan diferentes dialectos de lenguaje. Los valores aceptables son XL o GNU
compiler_executable_directory /usr/vacpp/bin/ para XL
y /usr/bin/ para GNU
El directorio ejecutable del compilador. Esto se utiliza para invocar el compilador y determinar las vías de inclusión y las macros incorporadas del compilador.
projectScope_includePathes N/D Vías de acceso de inclusión adicionales a utilizar cuando se analiza el código fuente.
projectScope_macros   Macros adicionales a utilizar cuando se analiza el código fuente.
projectScope_encoding Cp1252 La página de códigos Unicode de los archivos fuente. Este valor es el valor predeterminado utilizado para todos los archivos fuente para los que no se ha establecido un valor específico.
$filename_encoding   Especifica una correlación de página de códigos Unicode determinada para un archivo individual. El nombre del archivo en la clave de propiedades debe ser relativo al directorio origen que se está indexando.
indexAllFiles true Valor booleano que indica si se deben analizar todos los archivos, independientemente de si se han construido o no. Los valores aceptables son true y false.
skipReferences false Valor booleano que indica si el indexador debe saltarse todas las referencias del identificador. Los valores aceptables son true y false.
skipTypeReferences false Valor booleano que indica si el indexador debe saltarse las referencias de tipo. Los valores aceptables son true y false.
skipMacroReferences false Valor booleano que indica si el indexador debe saltarse las referencias de macro. Los valores aceptables son true y false.
SUPPORT_VECTOR_TYPES true Valor booleano que indica si la extensión de lenguaje de compilador XL para los tipos de vector está habilitada.
SUPPORT_DECIMAL_FLOATING_POINT_TYPES true Valor booleano que indica si la extensión de lenguaje de compilador XL para los tipos de coma flotante decimal está habilitada.
SUPPORT_COMPLEX_IN_CPP true Valor booleano que indica si la extensión de lenguaje de compilador XL para el tipo "complex" está habilitada.
SUPPORT_RESTRICT_IN_CPP true Valor booleano que indica si la extensión de lenguaje de compilador XL para la palabra clave "restrict" está habilitada para los archivos C++.
SUPPORT_STATIC_ASSERT true Valor booleano que indica si la extensión de lenguaje de compilador XL para las aserciones estáticas está habilitada.

Importar un índice


Un archivo de índice se puede importar en un proyecto C/C++ remoto durante la creación del proyecto o en un proyecto C/C++ remoto.

  1. Durante la creación del proyecto:

  2. Importar un índice

  3. Importar un índice en un proyecto C/C++ remoto existente:

  4. Importar índice

  5. Una vez realizada la importación, se abrirá un diálogo de mensaje para confirmar que el índice ha terminado de importarse.

  6. Importación realizada

  7. Nota: el índice que importe puede haberse creado con valores diferentes a los del proyecto C/C++ remoto. Si éste es el caso, aparecerá otro diálogo con dos opciones más; continuar importando el índice o reindexar el proyecto.

  8. Valores diferentes

  9. Si la importación falla, aparecerá un diálogo preguntando si desea reconstruir el índice en su lugar.

  10. Importación fallida