Offline-Index erstellen/importieren

Die leistungsfähigen C/C++-Visualisierungs- und Editierfunktionen, die von IBM® Rational® Developer for AIX and Linux bereitgestellt werden, basieren auf einem so genannten Index, der im Grunde genommen eine Datenbankdatei ist, in der Informationen zur Struktur Ihres Projektcodes gespeichert werden. Normalerweise werden Ihre Projektdateien geparst, um diese Indexdatenbank zu füllen, und später, wenn Sie eine der quellensensitiven C/C++-Funktionen der Entwicklungsumgebung verwenden, wird diese Datenbank teilweise verwendet, um nach Informationen zu Ihrem Code zu suchen. Die Zeit, die erforderlich ist, um Ihren Quellcode zu parsen und daraus einen Index zu erstellen, hängt von der Größe des Projekts ab. Ähnlich wie beim Parsen und Analysieren des Codes, wenn er kompiliert wird, kann ein kleines Projekt in nur wenigen Sekunden geparst und indexiert werden, während bei einem großen Projekt möglicherweise Stunden benötigt werden. Um die Zeit zu minimieren, die für die Verwendung der quellensensitiven Funktionen von IBM® Rational® Developer for AIX and Linux benötigt wird, unterstützt die IDE die Erstellung von Indexdateien in der Befehlszeile auf einem unterstützten fernen System, die später von der IDE importiert werden können, um den Index im Voraus mit Inhalt zu füllen, ohne auf die Durchführung eines Parsing warten zu müssen. Auf diese Weise kann ein Benutzer in einem Team manuell eine Indexdatei in der Befehlszeile erstellen, die dann von seinen Mitarbeitern gemeinsam genutzt werden kann, oder der Index kann von einem automatisierten Befehlszeilenerstellungsprozess (z. B. im Rahmen einer nächtlichen Erstellung oder als Teil eines fortlaufenden Integrationssystems) generiert und dann später von den Entwicklern importiert werden.


Index im Offlinemodus erstellen

Die Offline-Indexierungskomponente kann von einem Shell-Script mit dem Namen offlineIndexer.sh ausgeführt werden, das sich unter dem IBM® Rational® Developer for AIX and Linux-Serververzeichnis auf einem unterstützten fernen System befindet. Das Befehlsformat ist wie folgt:

offlineIndexer.sh $SOURCE_DIRECTORY_INFULLPATH $OFFLINE_INDEXER_CONFIGFILE_INFULLPATH

Dabei ist $SOURCE_DIRECTORY_INFULLPATH der absolute Pfad zu dem Quellcodeverzeichnis und $OFFLINE_INDEXER_CONFIGFILE_INFULLPATH der absolute Pfad zur Konfigurationsmerkmaldatei der Offline-Indexierungskomponente (das Format dieser Datei wird unten beschrieben).

Nach Beendigung der Indexierung wird eine komprimierte Offline-Indexdatei in dem Verzeichnis .standalone_index unter dem Quellcodeverzeichnis erstellt.

Offline-Indexierungskomponente konfigurieren


Die Offline-Indexierungskomponente wird mit einer Merkmaldatei konfiguriert, die dem Java-Merkmalformat entspricht (normalerweise hat jede Zeile das Format MERKMAL=WERT). Die zulässigen Merkmale sind in der folgenden Tabelle aufgelistet. Merkmale, für die Standardwerte aufgelistet sind, nehmen den angegebenen Wert an, wenn kein Wert angegeben wird.

Eine Schablone für die Konfigurationsmerkmaldatei wird hier bereitgestellt: offlineIndex_config.properties.

Merkmal Standardwert Beschreibung
offlineIndexer_log_filename Nicht zutreffend Der absolute Pfad zu einer Datei zum Protokollieren des Fortschritts und von Informationen. Standardmäßig wird das Protokoll in 'stdout' ausgegeben.
trace_level 0 Tracestufe für Protokollierung: 0 - Fehlernachrichten protokollieren, 1 - Fehler und Informationen protokollieren
build_log_filename Nicht zutreffend Der absolute Pfad zu einer Erstellungsprotokolldatei, die die Offline-Indexierungskomponente parsen kann, um Include-Pfade und Makros zu suchen, die vom Erstellungsprozess angegeben werden. Diese Makros und Include-Pfade werden verwendet, um den Parser zu konfigurieren, wenn Ihr Quellcode indexiert wird.
build_directory Nicht zutreffend Der absolute Pfad zum Arbeitsverzeichnis, das verwendet wurde, als das Erstellungsprotokoll generiert wurde.
projectScope_language_nature C/C++ Der Sprachtyp des Projekts, C/C++ oder C.
projectScope_complier_name XL Der Compiler, der zum Erstellen des Quellcodes verwendet wurde. Dieses Merkmal hat Einfluss darauf, wie der Code geparst wird, da verschiedene Compiler unterschiedliche Sprachdialekte unterstützen. Zulässige Werte sind XL oder GNU.
compiler_executable_directory /usr/vacpp/bin/ für XL
und /usr/bin/ für GNU
Das ausführbare Verzeichnis des Compilers. Dieses Verzeichnis wird zum Aufrufen des Compilers verwendet, um die integrierten Makros und Include-Pfade des Compilers zu bestimmen.
projectScope_includePathes Nicht zutreffend Zusätzliche Include-Pfade, die beim Parsing des Quellcodes verwendet werden sollen.
projectScope_macros   Zusätzliche Makros, die beim Parsing des Quellcodes verwendet werden sollen.
projectScope_encoding Cp1252 Die Unicode-Codepage der Quellendateien. Diese Einstellung ist der Standardwert, der für alle Quellendateien verwendet wird, für die keine dateispezifische Einstellung definiert wurde.
$filename_encoding   Gibt eine bestimmte Unicode-Codepagezuordnung für eine einzelne Datei an. Der Dateiname im Merkmalschlüssel muss relativ zum Quellenverzeichnis sein, das indexiert wird.
indexAllFiles true Boolesche Bedingung, die angibt, ob alle Dateien geparst werden sollen, unabhängig davon, ob sie erstellt wurden. Zulässige Werte sind true und false.
skipReferences false Boolesche Bedingung, die angibt, ob die Indexierungskomponente alle ID-Referenzen überspringen soll. Zulässige Werte sind true und false.
skipTypeReferences false Boolesche Bedingung, die angibt, ob die Indexierungskomponente Typenreferenzen überspringen soll. Zulässige Werte sind true und false.
skipMacroReferences false Boolesche Bedingung, die angibt, ob die Indexierungskomponente Makroreferenzen überspringen soll. Zulässige Werte sind true und false.
SUPPORT_VECTOR_TYPES true Boolesche Bedingung, die angibt, ob die Spracherweiterung des XL-Compilers für Vektortypen aktiviert ist.
SUPPORT_DECIMAL_FLOATING_POINT_TYPES true Boolesche Bedingung, die angibt, ob die Spracherweiterung des XL-Compilers für Decimal Floating Point-Typen aktiviert ist.
SUPPORT_COMPLEX_IN_CPP true Boolesche Bedingung, die angibt, ob die Spracherweiterung des XL-Compilers für den Typ "complex" aktiviert ist.
SUPPORT_RESTRICT_IN_CPP true Boolesche Bedingung, die angibt, ob die Spracherweiterung des XL-Compilers für das Schlüsselwort "restrict" für C++-Dateien aktiviert ist.
SUPPORT_STATIC_ASSERT true Boolesche Bedingung, die angibt, ob die Spracherweiterung des XL-Compilers für statische Zusicherungen aktiviert ist.

Index importieren


Eine Indexdatei kann während der Projekterstellung in ein fernes C/C++-Projekt oder in ein bestehendes fernes C/C++-Projekt importiert werden.

  1. Während der Projekterstellung:

  2. Index importieren

  3. Index in ein bestehendes fernes C/C++-Projekt importieren:

  4. Index importieren

  5. Nach Beendigung des Imports wird ein Nachrichtendialog angezeigt, in dem bestätigt wird, dass der Index importiert wurde.

  6. Import abgeschlossen

  7. Anmerkung: Der Index, den Sie importieren, wurde möglicherweise mit anderen Einstellungen als Ihr fernes C/C++-Projekt erstellt. In diesem Fall kann eine andere Dialogseite angezeigt werden, die zwei weitere Optionen bereitstellt: eine Option, um den Import des Index fortzusetzen, und eine Option, um das Projekt neu zu indexieren.

  8. Andere Einstellungen

  9. Schlägt der Import fehl, wird ein Dialog angezeigt, in dem Sie gefragt werden, ob der Index stattdessen erneut erstellt werden soll.

  10. Import fehlgeschlagen