tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
698
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Nov 2001
    Ort
    Gießen
    Beiträge
    4.091
    Hiho,

    ich wollte eigentlich schon seit längerem mal wissen, wie man es am besten angeht, in einem Texteditor eine Funktion zur Codevervollständigung zu implementieren.
    Meine Idee war, jedes eingegebene Zeichen zu überprüfen und sobald ein Trenner (z.B. ein Punkt wie in Java, oder vielen anderen Sprachen) gefunden wurde, den Objekttyp vor dem Punkt zu ermitteln und dann ein modales Fenster mit einer Liste anzuzeigen.
    Ist das gängige Praxis oder gibt es da noch andere Vorgehensweisen, die besser geeignet sind?

    Gruß, Dario
     

  2. #2
    Registriert seit
    Jan 2002
    Ort
    Bayern
    Beiträge
    1.390
    Also ich denke das kann man noch weiter treiben. Kennst du z.B. das Plugin Visual Assist für Visual C++.
    Ich finde das sehr gut, manchmal auch nervig, aber trotzdem lässt sich damit schnell Code schreiben.
    Wichtig bei der ganzen Sache ist allerdings, daß das lesen des Codes vom Editor sehr schnell gehen muss, sonst ist ein Schreiben bei sehr viel Code fast nicht mehr möglich.
    Man kann auch Funktionen kompletieren (mach Visual Assist)
    Du hast z.B. eine Funktion als Prototyp deklariert:
    void MyFunc(int a, int b, int c);

    Wenn du nun die Implementation schreibst:
    void MyFunc( <----- jetzt kommt ein Tooltip, der dir die Parameterliste vervollständigen lässt.
    Das mal so als Beispiel.

    Gruß Homer
     
    we would change the world if god gave us the source code...
    and remember, science is nothing more than reverse engineering nature...

    Current projects:
    - LdrawConverter

  3. #3
    Registriert seit
    Apr 2002
    Ort
    Ingolstadt
    Beiträge
    2.940
    PHP.net hatte eine Javascript basierende Codevervollständigung für die Suchfunktion implementiert. Schau mal auf http://www.php.net/search.php (als Suchraum musst du "Function List" angeben). Tipp dann einfach mal eine PHP Funktion ein (zb. mysql_) und schau dir die Liste an. Der Code (in PHP / Javascript) ist im CVS vorhanden. Vielleicht kannst du dir da die ein oder andere Idee rausziehen .

    bye
     

  4. #4
    ADA&QS ADA&QS ist offline Mitglied
    Registriert seit
    Apr 2004
    Beiträge
    18
    In der Regel wird die gleiche Technologie verwendet wie im Compiler. Du bildest die Sprachelemete auf Zustande eines endlichen Automaten ab. Dies ist die schnellste implementierungen, wobei es zu beachten das man keine Rekursion verwenden sollte.
     

  5. #5
    Avatar von squeaker
    squeaker squeaker ist offline Mitglied Platin
    Registriert seit
    Jun 2004
    Ort
    Würzburg
    Beiträge
    577
    Mein erster Gedanke wäre ein Baum ähnlich dem T9 in Handys. Die möglichen Vervollständigungen sind die Blätter des Teilbaumes an deren Wurzel man sich gerade befindet.
    Bei den Blättern kann man dann zusätzliche Informationen speichern um was für Objekte es sich handelt (Methoden->Assistent für Parametereingabe, Klassennamen, Variablen usw.) und diese zusätzlichen Informationen dann weiter verwenden.

    Tobias
     

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 13.10.10, 12:07
  2. Ansatz
    Von sight011 im Forum Typografie
    Antworten: 4
    Letzter Beitrag: 16.03.10, 23:10
  3. Fragen zu MDD Ansatz
    Von Thomas Darimont im Forum Java
    Antworten: 5
    Letzter Beitrag: 11.05.06, 13:55
  4. Objektorientierter Ansatz
    Von soa im Forum Java
    Antworten: 3
    Letzter Beitrag: 17.10.04, 20:36
  5. {MX} JPG Viewer - Ansatz
    Von BenFish im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 02.01.03, 22:03