9.3 Regeln-Bereich
In diesem Bereich werden die Regeln der im Dialog Manager integrierten Regelsprache geändert. Dieser Bereich wird bei Selektion einer Regel im Objekte-Browser geändert, d.h. die nun selektierte Regel wird eingestellt.
9.3.1 Autocomplete-Feature
Als Besonderheit wird hier auch ein, über die Editorkonfiguration abschaltbares, Autocomplete-Feature angeboten.
Es dient dazu dem Programmierer bei der Eingabe von Attributen und Methoden zu helfen und funktioniert folgendermaßen:
- Wird die Taste . oder : getippt klappt, wenn links davon ein identifizierbares Objekt steht, eine Auswahl in der Nähe des Cursors hoch.
- Was links vom Cursor steht wird als Pfad auf ein Objekt behandelt und es wird versucht dieses Objekt zu identifizieren.
- Die Auswahl zeigt mögliche Attribute oder Kind-Objekte (bei einem zuletzt getippten .) oder die am Objekt vorhandenen Methoden (bei einem :) an. Es werden vordefinierte und benutzerdefinierte Attribute / Methoden angezeigt.
- Man kann ganz wie gewohnt weiter tippen. In der Auswahl wird dann das entsprechend Passende markiert. Man kann auch durch die Cursortasten Aufwärts und Abwärts in der Auswahl navigieren.
- Mittels Return-Taste oder mit der Maus wird die markierte Auswahl in den Quelltext übernommen.
- Die Auswahl kann mittels Esc abgebrochen werden. Sie verschwinden auch wenn der Cursor mit der Maus oder den Cursortasten Links und Rechts in einen anderen Bereich verschoben wird.
Einschränkungen
Als Objekt wird vor dem .
bzw. :
ein Pfad-Ausdruck erkannt der keine dynamischen Anteile (z.B. Variablen, Attributwerte, Ausdrücke) besitzt. Auch Schlüsselwörter wie this, thisevent, setup werden erkannt. Die Vervollständigung kann nur innerhalb von Regeln geschehen deren Zugehörigkeiten zu einem Objekt bekannt sind und kein Parsing benötigt; man sollte also sinnvollerweise im Modus Object Rules
(Regeln zum Objekt) arbeiten.
Beispiel
dialog Dialog
window Wi
{
object ObjAttr := Pb;
pushbutton Pb {}
pushbutton {}
pushbutton {
record Rec {}
}
}
record Rec2 {
object Attr;
}
on dialog start {
variable object LocalVar := Dialog;
variable integer Count := 2;
}
In der start-Regel folgende Pfade vervollständigen lassen:
OK |
Nicht OK |
---|---|
this. |
LocalVar. |
Dialog.Wi.Pb: |
Wi.ObjAttr: |
Dialog.Wi.PUSHBUTTON[2].Rec. |
this.parent. |
|
Dialog.lastrecord.Attr. |
|
Wi.PUSHBUTTON[Count-1]: |