Autovervollständigung
Autovervollständigen beim Editieren einer PHP-Datei unter Dreamweaver

Autovervollständigen ist eine Funktion, die eine Benutzereingabe sinnvoll ergänzt. Grundlage für die Vervollständigung ist in jedem Fall ein begrenzter Pool an Möglichkeiten, der sich äquivalent zum Fortschritt und ggf. Semantik der Benutzereingabe verkleinert. Sie wird von vielen Editoren und IDEs zur Verfügung gestellt. Es gibt verschiedene Möglichkeiten der Realisierung:

  • Durch eine Dropdown-Liste,
  • durch das Anzeigen eines möglichen Textes,
  • durch das sofortige Einsetzen eines Vorlagen-Textes

Beispiele dafür sind Verfahren wie Text on 9 keys (T9) beim Schreiben von SMS-Nachrichten oder Input Method Editoren, Schnellwahlen im Adressbuch, Ergänzungen von früheren Eingaben (etwa in Suchleisten), Autovervollständigen in Office-Produkten, wo es je nach Programm u. a. Datumsangaben oder Wörter vervollständigt, oder Befehlsergänzung über ein Command Line Interface, wie es bei einigen Betriebssystemen der Fall ist.

In IDEs unterstützt eine syntaktische und semantische Überprüfung des schon eingegebenen Quelltexte den Programmierer mit einer Liste von Vorschlägen zur Autovervollständigung. Diese Liste an Quelltextvorschlägen umfasst zum Beispiel zuvor deklarierte Variablen, in dem Programmkontext erreichbare Methoden, Funktionen und Objekte bis zu umfangreichen Vorlagen von häufig verwendeten Codestücken (Templates).

Inhaltsverzeichnis

Autovervollständigen von Vorlagen

Insbesondere das Einfügen von Templates wird in aktuellen IDEs immer ausgefeilter.

NetBeans

Zum Beispiel bietet NetBeans eine kleine Template-Makro-Sprache, um komfortable Eingabemöglichkeiten zu bieten:

 for (Iterator ${it} = ${collection instanceof="java.util.Collection"}.iterator(); ${it}.hasNext();) {
   ${Object} ${elem} = (${Object}) ${it}.next();
   ${cursor}
 }

Das obige Beispiel mit dem Kürzel forc verknüpft, erzeugt bei Eingabe von f, o, r, c und Leertaste folgende Ausgabe in den Quelltext:

 for (Iterator it = collection.iterator (); it.hasNext ();) {
   Object elem = (Object) it.next ();
   
 }

Dabei wird der Variablenname it markiert und alle weitere Vorkommen von it blau hervorgehoben. Nun kann der Name it durch einen passenden Variablennamen (durch einfaches eintippen) ersetzt werden. Automatisch werden alle Vorkommen von it im Template mit demselben eingetippten Namen ersetzt. Mit der Tabulatortaste springt die Markierung zu collection. Der Programmierer kann den Namen des Objektes ändern und springt dann wiederum per Tabulator-Taste zu dem mit ${Object} gekennzeichneten Abschnitt. Bei der Änderung dieses Klassennames ändern sich natürlich wieder alle blau markierten ${Object} Platzhalter. Mit dem nächsten Tab-Sprung kann man den Platzhalter ${elem} ändern. Die letzte Eingabe mittels der Tabulator-Taste springt dann endgültig zu dem Platzhalter ${Cursor}.

NetBeans unterstützt den Programmierer sogar so weit, dass das nächst passende Collection-Objekt als Variablenname übernommen wird. Wurde also zuvor eine Liste deklariert:

 List testListe = new ArrayList();

dann übernimmt die Vorlage forc auch den Variablennamen testListe für den Platzhalter ${collection instanceof="java.util.Collection"}, weil testListe vom Typ List ist und List vom Typ java.util.Collection. Solche Rückblicke auf Programmiersprachenebene ermöglicht der integrierte Lexer der IDE.

Eclipse

Ähnlich komfortable Template-Eingaben, die den Kontext und die Semantik der zu bearbeitenden Programmiersprache berücksichtigen, findet man zum Beispiel in Eclipse. Der Aufbau der Makrosprache entspricht der von NetBeans. Allerdings gibt es noch zusätzliche Platzhalter, die automatisch gefüllt werden. Zum Beispiel ${date} für das aktuelle Datum sowie ${time} für die aktuelle Uhrzeit. ${enclosing_method} für den Methodenname, in der das Template eingefügt wird oder ${user} für den aktuell angemeldeten Programmierer.

Microsoft Visual Studio .NET

Auch die aktuellen Versionen von Visual Studio .NET bieten Autovervollständigen mit Vorlagen an. Deren Definition erfolgt mittels XML.


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • D (Programmiersprache) — D Paradigmen: imperativ, objektorientiert, funktional, parallel, generisch, modular Erscheinungsjahr: 2007 Entwickler: Walter Bright Aktuelle  …   Deutsch Wikipedia

  • Programmiersprache D — D Paradigmen: imperativ, objekt orientiert, generisch, modular Erscheinungsjahr: 2007 Entwickler: Walter Bright Aktuelle  …   Deutsch Wikipedia

  • KOMA-Script — LaTeX Entwickler: Leslie Lamport Aktuelle Version: 2ε Betriebssystem …   Deutsch Wikipedia

  • LATEX — Entwickler: Leslie Lamport Aktuelle Version: 2ε Betriebssystem …   Deutsch Wikipedia

  • LEd — Entwickler: Sebastian Deorowicz, Adam Skórczyński Aktuelle Version: 0.52 beta (Build 6300) (29. Mai 2008) Betriebssystem: Windows Kategorie …   Deutsch Wikipedia

  • LaTeX2e — LaTeX Entwickler: Leslie Lamport Aktuelle Version: 2ε Betriebssystem …   Deutsch Wikipedia

  • LaTeXEditor — LEd Entwickler: Sebastian Deorowicz, Adam Skórczyński Aktuelle Version: 0.52 beta (Build 6300) (29. Mai 2008) Betriebssystem: Windows Kategorie …   Deutsch Wikipedia

  • OperaMini — Dieser Artikel oder Abschnitt ist nicht hinreichend mit Belegen (Literatur, Webseiten oder Einzelnachweisen) versehen. Die fraglichen Angaben werden daher möglicherweise demnächst gelöscht. Hilf Wikipedia, indem du die Angaben recherchierst und… …   Deutsch Wikipedia

  • Opera (Browser) — Dieser Artikel oder Abschnitt ist nicht hinreichend mit Belegen (Literatur, Webseiten oder Einzelnachweisen) versehen. Die fraglichen Angaben werden daher möglicherweise demnächst gelöscht. Hilf Wikipedia, indem du die Angaben recherchierst und… …   Deutsch Wikipedia

  • Opera Browser — Dieser Artikel oder Abschnitt ist nicht hinreichend mit Belegen (Literatur, Webseiten oder Einzelnachweisen) versehen. Die fraglichen Angaben werden daher möglicherweise demnächst gelöscht. Hilf Wikipedia, indem du die Angaben recherchierst und… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”