Zum Hauptinhalt springen

Code-Intelligence

Code-Intelligence Die Code-Intelligence unterstützt den Entwickler beim Programmieren. Das Modul bietet eine zusätzliche Hilfestellung beim Entwickeln von Code. Sie analysiert und indiziert im Hintergrund die Prozeduren, Dialoge und andere Oberflächenobjekte. Sie besteht aus den drei Bereichen: die Code-Vervollständigung, die Symbol-Referenzen und die Code-Analyse.

Installation
Die Installation ist als separate Komponente im Setup aufgelistet. Durch Auswahl der Komponente wird während der Installation der Dienst Index.Core installiert, der die für Code-Intelligence relevanten Informationen sammelt. Dieser Prozess läuft im Hintergrund.

Nach der Installation kann die Code-Intelligence über die Menüauswahl Extras des conzept 16 Designers aktiviert werden. Der Menüeintrag Extras / Code-Intelligence ist vorhanden, wenn das Modul bei der Installation von conzept 16 ausgewählt wurde. Anhand des Menüeintrags kann sie aktiviert und deaktiviert werden.

Aktivierung
Durch Auswahl des Menü-Eintrags wird das Indizieren der Datenbanksymbole im Hintergrund gestartet. Voraussetzung hierfür ist, dass die Code-Intelligence über das Setup installiert wurde.
Für die Aktivierung ist die Anmeldung eines Benutzers mit Passwort erforderlich. Im Login Dialog sind bereits Server und verbundene Datenbank eingetragen. Zu beachten ist, dass für die Code Intelligence ein Benutzer angegeben werden muss, bei dem "externer Zugriff" erlaubt ist. Nach der Anmeldung startet die Textindizierung für alle für den Benutzer freigegebene Prozeduren.

Deaktivierung
Ist die Code Intelligence schon aktiviert, dann wird vor dem Menü-Eintrag ein Häkchen angezeigt und kann dazu benutzt werden, um die Code Intelligence wieder zu deaktivieren.

Indizierung
Die Indizierung kann je nach Datenbankgröße unterschiedlich lange dauern, läuft jedoch im Hintergrund als Windows-Dienst. Bis sie abgeschlossen ist, kann nicht garantiert werden, dass alle Symbole erfasst wurden, aber die Funktionalitäten der Code Intelligence sind trotzdem aktiv.

<img src="/_assets/Code-Intelligence%20Menueintrag.png" usemap="#map" />

Die einzelnen Bestandteile von Code-Intelligence bestehen aus den Bereichen:

Die Code-Vervollständigung

Symbol-Referenzen

Die Code-Analyse

Die Code-Vervollständigung

Durch das Drücken von <img src="/_assets/KeyCtrl.png" title="Strg" class="key" alt="Strg" />+Leertaste (Strg + Leerzeichen) kann wie bisher eine Liste von Vorschlägen angezeigt werden. Wenn die Code-Intelligence aktiviert ist, wird diese Liste jedoch auch mit Symbolen aus Prozeduren und Objekten der Datenbank gefüllt.

Die Liste beinhaltet zusätzlich zu den conzept 16 eigenen Konstantennamen folgende Elemente:

  • Lokale Variablen

Prozedurlokale als auch funktionslokale Variablen werden angezeigt. Dabei spielt es jedoch eine Rolle, wo sich der Eingabezeiger befindet. Funktionslokale Variablen werden zum Beispiel auch nur in dieser Funktion angezeigt.

  • Globale Variablen

Globale Variablen aus der aktuellen Prozedur, oder aus Prozeduren, die mit der Compileranweisung @I importiert wurden, werden ebenfalls als Vorschläge angezeigt. Diese werden auch rekursiv erfasst, sodass alle relevanten globalen Variablen angezeigt werden.

  • Defines

Zeichenfolgen, die mit dem define Stichwort definiert wurden, werden ebenfalls vorgeschlagen. Diese hängen, wie die globalen Variablen auch, von @I Imports ab.

  • C16 Konstanten und Funktionen

In Conzept 16 eingebaute Konstanten und Funktionen.

  • Datenstrukturen

Alle Datenstrukturnamen, die in der Datenbank definiert wurden, tauchen ebenfalls in der Liste auf.

  • Funktionen

Funktionen aus den aktuellen und importierten Prozeduren werden angezeigt. Funktionen aus anderen Prozeduren werden auch angezeigt, wenn vor dem Zeiger die Prozedur mit einem Doppelpunkt angegeben wurde.

  • Objekte

Oberflächenobjekte werden in der Liste angezeigt, wenn $ verwendet wird. Wenn im Quelltext das with-Konstrukt und $: verwendet wird, dann werden diese auch anhand des with-Konstruktes gefiltert.

  • Objekteigenschaften

Auch die Objekteigenschaften sind verfügbar. Diese werden abhängig vom Typ des Objekts angezeigt. Kommen mehrere Objekttypen infrage, zum Beispiel durch eine Doppelung der Namen in verschiedenen Oberflächenobjekten, dann werden alle Objekteigenschaften von beiden Objekttypen angezeigt.

Wenn die Vervollständigung innerhalb eines Funktionsaufrufs stattfindet, wird auch nach Variablentyp gefiltert. Es werden z. B. nur Variablen von Typ alpha aufgelistet, wenn bei dem aktuellen Parameter nur alpha Variablen in Betracht kommen.

Referenzsuche

Durch einen neuen Menüpunkt im Quelltexteditor oder durch das Drücken von Umschalt+<img src="/_assets/KeyCtrl.png" title="Strg" class="key" alt="Strg" />+<img src="/_assets/KeyR.png" title="R" class="key" alt="R" /> (Shift + Strg + r) kann im Assistent eine Referenzsuche durchgeführt werden. Bei der Referenzsuche werden alle Vorkommnisse von einem Symbol in Prozeduren gesucht und aufgelistet. Bei den Symbolen handelt es sich um alle Funktionen, Variablen, Datenstrukturelemente und Oberflächenobjekte innerhalb eines With-Konstruktes, die es in conzept 16 gibt. Es werden sowohl benutzerdefinierte Funktionen als auch conzept 16 eigene Prozedurbefehle gefunden. Alle Symbole, die in der Code-Vervollständigung angezeigt werden, können auch über die Referenzsuche gefunden werden. Das erleichtert beim Refactoring von Code, ihn besser zu verstehen. Muss eine Funktion angepasst werden, hilft die Referenzsuche zu erkennen, wo sie überall bereits verwendet wird. Es werden nur A+ Prozeduren in Betracht gezogen werden.

Code-Analyse

Die Code-Analyse als Bestandteil von Code-Intelligence in conzept 16 hilft dem Entwickler bei der Untersuchung vom Prozedurcode. Die Code-Qualität wird dadurch verbessert. Eine erste Umsetzung der Code-Analyse stellt das Auffinden von deklarierten Varibalen, die im Code nicht verwendet werden. Nicht verwendete Variablen werden dadurch gekennzeichnet, dass sie mit einem Rot gewellten Unterschtrich dargestellt werden.