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.
- Siehe: (Blog)
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" />+
(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
+<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.
