Auto-Vervollständigen

Auto-Vervollständigen
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:

  • Nimrod-Expedition — Ernest Shackleton (1907, fotografiert von G.C. Beresford) …   Deutsch Wikipedia

  • Third-Person Shooter — Third Person Shooter, kurz TPS genannt, sind Computerspiele, bei denen der Spieler die Welt aus einer Perspektive beobachtet, die im Normalfall hinter der Hauptfigur positioniert ist (Drittpersonansicht) und in denen Fernkampf ein wesentliches… …   Deutsch Wikipedia

  • Dekalog (Film) — Dekalog ist ein zehnteiliger Filmzyklus, der im Zeitraum von 1988 bis 1989 für das polnische Fernsehen produziert wurde. Er gilt als Meisterwerk des polnischen Regisseurs Krzysztof Kieślowski und erregte international viel Aufsehen. Obwohl… …   Deutsch Wikipedia

  • Dernburg-Wagen — Das „erste Personenfahrzeug mit Allradantrieb für den Alltagsbetrieb“ (Mercedes Benz Zitat) konstruierte die Daimler Motoren Gesellschaft (DMG) im Jahre 1907, nachdem die niederländische Firma Spyker bereits 1903 ihren Zweisitzer Rennwagen Spyker …   Deutsch Wikipedia

  • Messe Luzern — AG Rechtsform Aktiengesellschaft Sitz Luzern Mitarbeiter …   Deutsch Wikipedia

  • ausbauen — ergänzen; erweitern; nachrüsten; zulegen (umgangssprachlich); ausdehnen; vergrößern * * * aus|bau|en [ au̮sbau̮ən], baute aus, ausgebaut <tr.; hat: 1. a) durch Bauen vergrößern …   Universal-Lexikon

  • Bahnhof Woergl — Wörgl Hauptbahnhof …   Deutsch Wikipedia

  • Bahnhof Wörgl — Wörgl Hauptbahnhof …   Deutsch Wikipedia

  • Bio-Diesel — Biodiesel Biodieselprobe Andere Namen Fettsäuremethylester (FAME), „Fettsäuren, C16–18 und C18 ungesättigt, Methylester“[1] …   Deutsch Wikipedia

  • CO2-Steuer — Die deutsche Kraftfahrzeugsteuer (Abkürzung: KraftSt) muss ein Fahrzeughalter bezahlen für: das Halten von inländischen Fahrzeugen; das Halten von ausländischen Fahrzeugen, solange diese sich im Inland befinden; die widerrechtliche Benutzung von… …   Deutsch Wikipedia

Share the article and excerpts

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