Live-Vorlagen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Einführung in RAD Studio


Live-Vorlagen sind wiederverwendbare Skeleton-Codeanweisungen. Im Quelltext-Editor stehen eine Reihe von Live-Vorlagen für Delphi und C++ zur Verfügung.

Durch Doppelklicken auf den Vorlagennamen im Vorlagenfenster können Sie eine dieser vordefinierten Code-Skeletons in Ihren Code einfügen. Sie können auch den Vorlagennamen eingeben und zum Einfügen der Vorlage die Tab-Taste drücken. Die XML-Dateien für die Live-Vorlagen von RAD Studio befinden sich im Verzeichnis {Path|C:\Program Files (x86)\Embarcadero\Studio\21.0\ObjRepos\de\Code_Templates}}.

Im Vorlagenfenster können Sie auch eigene Codevorlagen hinzufügen. Die Namen der Live-Vorlagen können entweder den Code in der Vorlage (wie z.B. class) oder das erste Wort im Code (wie z.B. try) repräsentieren, und einige Vorlagennamen sind ähnliche (aber nicht genaue) Versionen von Wörtern, die Sie eingeben könnten (z.B. forr). Eigene Vorlagen (und von Add-ins von Fremdherstellern bereitgestellte Vorlagen) werden standardmäßig im Verzeichnis C:\Users\<Benutzer>\Documents\Embarcadero\Studio\code_templates gespeichert.

Sprungpunkte

Sprungpunkte sind Platzhalter für Eingabefelder, die die Navigation zwischen Elementen in einer Vorlage mit den Tasten Tab und Umschalt+Tab ermöglichen.

Wenn in einer Vorlage ein oder mehrere bearbeitbare Sprungpunkte vorhanden sind, wechselt die Vorlage automatisch nach Einfügen in den Code in den Modus SyncEdit. Durch Drücken von Esc, Eingabe oder Tab im letzten Sprungpunkt wird der Modus SyncEdit beendet und der Quelltext-Editor wieder im regulären Bearbeitungsmodus ausgeführt.

In der Vorlage arrayd (Delphi-Array) befinden sich beispielsweise vier Sprungpunkte mit den Namen name (TMyArray), min (0), max (10) und type (Integer). Der erste Sprungpunkt ist markiert und aktiv:

ArrayD.png

Öffnen Sie zum Vergleichen des XML-Codes von arrayd mit der arrayd-Live-Vorlage das Fenster Vorlagen, wählen Sie die Vorlage arrayd aus, und klicken Sie auf EditCodeTemplate.jpg Quelltextvorlage bearbeiten.

Beispiele: Die try -Vorlagen für Delphi und C++

In diesem Abschnitt werden die try-Vorlagen für Delphi und für C++ vorgestellt:

Sprache Vorlagenname Vorlagenbeschreibung

Delphi

try

try finally (mit Create/Free)

C++

try

try catch

Delphi-Vorlage try

Die folgende Abbildung zeigt das Fenster Vorlagen und die Popup-Kurzfassung des Codes, die angezeigt wird, wenn Sie die Maus über die Delphi-Vorlage try führen. Die vertikalen Linien ("|") sind Sonderzeichen, mit denen die Sprungpunkte in der Vorlage abgeschlossen werden (dazu kann auch das Zeichen $ verwendet werden):

DelphiTryPopup.jpg

Die folgende Abbildung zeigt die Vorlage, die im Quelltext-Editor eingefügt wird, wenn Sie die Vorlage try für Delphi aktivieren. Die hervorgehobenen oder umrahmten Sprungpunkte sind im Sync-Bearbeitungsmodus aktiv, damit Sie alle Vorkommen eines Sprungpunktes auf einmal bearbeiten können:

TryFinallyDelphi.jpg

Im Folgenden finden Sie die XML-Datei für die Delphi-Quelltextvorlage try.xml mit der Beschreibung try finally (mit Create/Free). Diese Vorlage enthält:

  • Die Definitionen für drei Sprungpunkte ("variable", "control" und "createparms")
  • Den Befehl script, der dem Sprungpunkt control die Programmierhilfe zuordnet
 <?xml version="1.0" encoding="utf-8" ?>
  
  <codetemplate	xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
  				version="1.0.0">
  	<template name="'''try'''" surround="'''true'''" invoke="'''auto'''">
  		<point name="'''variable'''">
  			<text>
  				'''MyClass'''
  			</text>
  			<hint>
  				'''Variable name'''
  			</hint>
  		</point>
  		<point name="control">
  			<script language="'''Delphi'''">
  				'''InvokeCodeCompletion;'''
  			</script>
  			<text>
  				'''Component'''
  			</text>
  			<hint>
  				'''Class name'''
  			</hint>
  		</point>
  		<point name="createparms">
  			<hint>
  				'''constructor parameters'''
  			</hint>
  						<text>
  							'''(Self)'''
  						</text>
  		</point>
  		<description>
  			'''try finally (with Create/Free)'''
  		</description>
  		<author>
  			'''Embarcadero'''
  		</author>
  		<script language="'''Delphi'''" onenter="'''false'''" onleave="'''true'''">
  			'''DeclareVariable(|variable|);'''
  		</script>
  		<code language="'''Delphi'''" context="'''methodbody'''" delimiter="|"><![CDATA['''|variable| := T|control|.Create|createparms|;
  '''try
  '''|selected||*||end|
  '''finally
  '''|*||variable|.Free;
  '''end;'''
  ''']]>
  		</code>
  	</template>
  </codetemplate>

Der Quelltext für die Vorlage befindet sich im <code>-Element in <![CDATA[ ... ]]>. In der oben gezeigten Vorlage ist das erste Element ein Sprungpunkt mit dem Namen variable:

|variable|

Die Vorlage enthält auch die Sonderzeichen für den Einzug von Zeilen im Quelltext:

|*|

Verwenden Sie für einen doppelten Einzug:

|*||*|

C++-Vorlage try

Die folgende Abbildung zeigt das Fenster Vorlagen und die Popup-Kurzfassung des Codes, die angezeigt wird, wenn Sie die Maus über die C++-Vorlage try führen. Das Dollarzeichen ($) ist ein Sonderzeichen, mit dem definierte und integrierte Sprungpunkte abgeschlossen werden (| kann auch verwendet werden):

TryPopupCPP2.jpg

Die folgende Abbildung zeigt die Live-Vorlage, die im Quelltext-Editor eingefügt wird, wenn Sie die C++-Vorlage try (mit Beschreibung = "try catch") aktivieren:

TryCppAgain.jpg

Dies ist der eigentliche XML-Code für die C++-Vorlage try:

 <?xml version="1.0" encoding="utf-8" ?>
  
  <codetemplate	xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
  				version="1.0.0">
  	<template name="'''try'''" surround="'''true'''" invoke="'''auto'''">
  		<point name="'''except'''">
  			<text>
  				...
  			</text>
  			<hint>
  				'''exception class to catch'''
  			</hint>
  		</point>
  		<description>
  			'''try catch'''
  		</description>
  		<author>
  			'''Embarcadero'''
  		</author>
  		<code language="'''C'''" context="'''methodbody'''"><![CDATA['''try {
  '''$selected$$*$$end$
  '''} catch ($except$) {
  '''}'''
  ]]>
  		</code>
  	</template>
  </codetemplate>

Der Quelltext für die Vorlage befindet sich im <code>-Element in <![CDATA[ ... ]]>.

In dieser Vorlage wird als Trennzeichen das Dollarzeichen ($) verwendet. In der Delphi-Vorlage try wurde dafür die vertikale Linie (|) verwendet. Mit den folgenden Sonderzeichen werden Zeilen im Quelltext eingezogen:

$*$

Verwenden Sie für einen doppelten Einzug:

$*$$*$

XML-Beschreibung für Live-Vorlagen

Live-Vorlagen sind XML-Dateien, die das folgende übergeordnete Element enthalten können:

 <codetemplate xmlns="http: ... //schemas.borland.com/Delphi/2005/codetemplates" version="1.0.0"> ...
  </codetemplate>

Das Element <codetemplate> enthält die folgenden untergeordneten Elemente:

  • <template> </template> hat vier Attribute ("name", "invoke", "inplace", "surround"):
    <template name="class" invoke="manual/auto">
    • "name" (Name der Vorlage, erforderlich)
    • "invoke" (Aufrufart der Vorlage). Mögliche Werte sind {auto|manual|none}:
      • auto = drücken Sie die Taste LEER oder TAB
      • manual = drücken Sie die Taste TAB
      • none = drücken Sie STRG+J, STRG+Leer oder verwenden Sie das Vorlagenfenster
    • inplace – (Boolean) gibt eine Erweiterungsvorlage an
    • surround – (Boolean) die Vorlage umgibt den ausgewählten Text
  • <description>Text </description> – ein Element der Vorlage – enthält Text, der mit dem Vorlagennamen im Vorlagenfenster angezeigt wird
  • <author>Autor-Name</author> – ein Element der Vorlage
  • <point> </point> – ein Element der Vorlage (wie "description" und "author"), beschreibt einen Platzhalter für ein Eingabefeld, hat einen Namen (erforderlich) und enthält drei Attribute (text|hint|script):
    • text – Attribut von "point", enthält den Text, der in einem Sprungpunkt erscheint
    • hint – Attribut von "point", enthält einen Popup-Hinweis
  • script – Attribut von "point" oder "template", enthält meistens invoke_code_completion(), hat ein Sprachattribut:
    • language='Delphi' oder language='C'
  • <code> </code> – ein Element der Vorlage; hat drei Attribute:
    • language – kann 'C' oder 'Delphi' sein (erforderlich)
    • context – legt fest, wann die Vorlage verfügbar ist; z.B. typedecl - type | oder methodbody - begin | end
    • delimiter='|' oder '$' (weist einen Sprungpunkt im Quelltext aus)
    • Enthält:
 <![CDATA[
        The actual code goes here.
        ]]>


Script-Funktionsaufrufe

Eine Vielzahl von Funktionsaufrufen kann in einem script-Element verwendet werden, das entweder einem "point" oder der Vorlage selbst zugeordnet ist.

Die folgende Liste enthält vorhandene Vorlagen, die jeweils einen script-Aufruf enthalten:

  • language="Delphi":
    • InvokeClassCompletion
    • InvokeCodeCompletion (siehe delphi\trycf.xml)
    • PopulateCase(|expression|) (siehe delphi\case.xml)
    • DeclareVariable(|variable|) (siehe delphi\trycf.xml)
    • RemoveTemplate (siehe delphi\inlinevar.xml)
    • ValidateForTemplate (siehe delphi\fors.xml)
  • language="C":
    • invoke_code_completion (siehe c\whiles.xml)
    • populate_case($expr$); (siehe c\switch.xml)

Siehe auch