Création/Importation d'un index hors ligne

Les puissantes fonctions d'édition et de visualisation C/C++ fournies par IBM® Rational® Developer for AIX and Linux sont basées sur un index qui est essentiellement un fichier de base de données dans lequel sont stockées des informations sur la structure du code de projet. Généralement, vos fichiers de projet sont analysés afin d'alimenter cette base de données d'index, puis, lorsque vous utilisez l'une des fonctions détectant la source C/C++ de l'environnement de développement, cette base de données est utilisée en partie pour rechercher des informations sur votre code. Le temps nécessaire à l'analyse du code source et à la génération d'un index à partir de ce code varie en fonction de la taille du projet. De la même manière que votre code est examiné et analysé lorsque vous le compilez, un petit projet peut être analysé et indexé en quelques secondes, alors qu'un projet volumineux peut nécessiter plusieurs heures. Afin de réduire le temps nécessaire à l'utilisation des fonctions détectant la source d'IBM® Rational® Developer for AIX and Linux, l'environnement de développement intégré prend en charge la création de fichiers index en ligne de commande sur un système distant, lesquels peuvent être importés ultérieurement par l'environnement de développement intégré afin de pré-alimenter l'index avec du contenu sans avoir à attendre la fin d'une analyse. De cette manière, l'utilisateur d'une équipe peut créer manuellement un fichier index en ligne de commande, puis le partager avec ses collègues ou encore, l'index peut être généré par un processus de génération en ligne de commande automatisé (dans le cadre d'une génération de nuit ou d'un système d'intégration continue), puis importé ultérieurement par les développeurs.


Création d'un index en mode hors ligne

L'indexeur en mode hors ligne peut être exécuté par un script de shell appelé offlineIndexer.sh, situé sous le répertoire serveur IBM® Rational® Developer for AIX and Linux sur un système distant pris en charge. Le format de la commande est le suivant :

offlineIndexer.sh $SOURCE_DIRECTORY_INFULLPATH $OFFLINE_INDEXER_CONFIGFILE_INFULLPATH

où $SOURCE_DIRECTORY_INFULLPATH est le chemin d'accès absolu du répertoire de code source et $OFFLINE_INDEXER_CONFIGFILE_INFULLPATH est le chemin d'accès absolu du fichier de propriétés de configuration de l'indexeur hors ligne (le format de ce fichier est décrit ci-dessous).

Une fois l'indexation terminée, un fichier zip d'index hors ligne est créé dans le répertoire .standalone_index, sous le répertoire de code source.

Configuration de l'indexeur hors ligne


L'indexeur hors ligne est configuré par un fichier de propriétés conforme au format de propriétés Java (généralement, chaque ligne est au format PROPERTY=VALUE). La liste des propriétés autorisées est affichée dans le tableau suivant. Les propriétés pour lesquelles des valeurs par défaut sont répertoriées reçoivent la valeur spécifiés si aucune valeur n'est indiquée.

Un fichier de propriétés de configuration du modèle est fourni ici offlineIndex_config.properties.

Propriété Valeur par défaut Description
offlineIndexer_log_filename N/A Chemin d'accès absolu vers un fichier dans lequel sont consignées la progression et les informations. Par défaut, la sortie du journal est stdout
trace_level 0 Niveau de trace de consignation : 0 - Consigner les messages d'erreur, 1 - Consigner les erreurs et les informations
build_log_filename N/A Chemin d'accès absolu vers un fichier journal de génération que l'indexeur hors ligne peut analyser pour y rechercher des chemins d'inclusion et des macros spécifiés par le processus de génération. Ces macros et ces chemins d'inclusion permettent de configurer l'analyseur lorsque le code source est indexé.
build_directory N/A Chemin d'accès absolu vers le répertoire de travail utilisé lorsque le journal de génération a été généré.
projectScope_language_nature C/C++ Type de langage du projet, C/C++ ou C
projectScope_complier_name XL Compilateur utilisé pour générer le code source. Il influence le mode d'analyse du code car différents compilateurs prennent en charge différents dialectes de langage. Les valeurs acceptables sont XL ou GNU
compiler_executable_directory /usr/vacpp/bin/ pour XL
et /usr/bin/ pour GNU
Répertoire exécutable du compilateur. Utilisé pour appeler le compilateur afin de déterminer les macros intégrées et les chemins d'inclusion du compilateur.
projectScope_includePathes N/A Chemins d'inclusion supplémentaires devant être utilisés lors de l'analyse du code source.
projectScope_macros   Macros supplémentaires devant être utilisées lors de l'analyse du code source.
projectScope_encoding Cp1252 Page de codes Unicode des fichiers source. Ce paramètre est utilisé par défaut pour tous les fichiers source pour lesquels aucun paramètre spécifique de fichier n'a été défini.
$filename_encoding   Spécifie un mappage de page de codes Unicode particulier pour un fichier individuel. Le nom de fichier dans la clé de propriété doit être relatif au répertoire source en cours d'indexation.
indexAllFiles true Booléen indiquant si tous les fichiers doivent être analysés, qu'ils aient été générés ou non. Les valeurs admises sont true et false.
skipReferences false Booléen indiquant si l'indexeur doit ignorer toutes les références d'identificateur. Les valeurs admises sont true et false.
skipTypeReferences false Booléen indiquant si l'indexeur doit ignorer les références de type. Les valeurs admises sont true et false.
skipMacroReferences false Booléen indiquant si l'indexeur doit ignorer les références de macro. Les valeurs admises sont true et false.
SUPPORT_VECTOR_TYPES true Booléen indiquant si l'extension de langage du compilateur XL pour les types de vecteur est activée.
SUPPORT_DECIMAL_FLOATING_POINT_TYPES true Booléen indiquant si l'extension de langage du compilateur XL pour les types de virgule flottante décimale est activée.
SUPPORT_COMPLEX_IN_CPP true Booléen indiquant si l'extension de langage du compilateur XL pour le type "complexe" est activée.
SUPPORT_RESTRICT_IN_CPP true Booléen indiquant si l'extension de langage du compilateur XL pour le mot clé "restrict" est activée pour les fichiers C++.
SUPPORT_STATIC_ASSERT true Booléen indiquant si l'extension de langage du compilateur XL pour les assertions statiques est activée.

Importation d'un index


Un fichier index peut être importé dans un projet C/C++ distant pendant la création du projet ou dans un projet C/C++ distant existant.

  1. Pendant la création d'un projet :

  2. Importer un index

  3. Importation d'un index dans un projet C/C++ distant existant :

  4. Importer un index

  5. Une fois l'importation terminée, une boîte de dialogue message apparaît pour confirmer que l'importation de l'index est terminée.

  6. Importation terminée

  7. Remarque : L'index que vous importez peut avoir été créé à l'aide de paramètres différents de ceux du projet C/C++ distant. Si tel est le cas, une autre page de dialogue apparaît pour fournir deux options supplémentaires : pour continuer à importer l'index ou pour réindexer le projet.

  8. Paramètres différents

  9. Si l'importation échoue, une boîte de dialogue vous demande si vous souhaitez régénérer l'index.

  10. Echec de l'importation