Frage

Irgendwelche Ideen, wie man die Tab-Vervollständigung für eine .NET (C#)-Konsolenanwendung implementiert?Und ich meine innerhalb einer Anwendung, die ausgeführt wird und dann eine Schleife für Benutzereingaben durchführt (z. B. wenn Sie ftp.exe ohne Argumente ausführen), wie folgt:

        string line = string.Empty;
        while (line != "exit")
        {
            //do something here
            Console.ReadLine();
        }

Ich weiß, dass ich readline wahrscheinlich nicht wirklich verwenden könnte, aber ich möchte die Tab-Vervollständigung an derselben Stelle durchführen können, an der Sie Eingaben vom Benutzer abrufen.

War es hilfreich?

Lösung

Schauen Sie sich diesen Code aus dem Mono-Projekt anhttp://tirania.org/blog/archive/2008/Aug-26.htmlIch habe neulich mal damit gespielt.Es erledigt viele Befehlszeilenbearbeitungen, aber ich glaube nicht, dass es eine Zeilenvervollständigung ermöglicht.

Andere Tipps

Führen Sie einen Console.ReadKey() aus.

Wenn Sie einen Tab erhalten, sehen Sie sich an, was sich im Befehlspuffer befindet, und durchlaufen Sie Ihre verfügbaren Befehle.Wenn someCommand.Name.BeginsWith(currentinput), Sie haben einen Gewinner und können eine Liste möglicher Befehle auf den Bildschirm schreiben.

Wenn Es gibt nur einen(TM) Sie können es durch das ersetzen, was der Benutzer eingegeben hat :)

Ich habe eine kleine Bibliothek erstellt, um diese Funktionalität zu einer von mir erstellten App hinzuzufügen:

https://github.com/fjunqueira/hinter

Es entspricht möglicherweise nicht Ihren Anforderungen, Sie können es jedoch jederzeit bearbeiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top