Domanda

Qualche idea su come implementare il completamento con tab per un'applicazione console .NET (C#)?E intendo all'interno di un'applicazione che viene eseguita e quindi esegue il loop per l'input dell'utente (come se esegui ftp.exe senza argomenti), in questo modo:

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

So che probabilmente non potrei effettivamente utilizzare readline, ma mi piacerebbe essere in grado di eseguire il completamento con tab nello stesso punto in cui recuperi l'input dall'utente.

È stato utile?

Soluzione

Dai un'occhiata a questo codice dal progetto Monohttp://tirania.org/blog/archive/2008/Aug-26.htmlCi ho giocato un po' l'altro giorno.Esegue molte operazioni di modifica della riga di comando, ma non penso che esegua il completamento della riga.

Altri suggerimenti

Esegui un Console.ReadKey().

Se ottieni una scheda, guarda cosa hai nel buffer dei comandi e scorri i comandi disponibili.Se someCommand.Name.BeginsWith(currentinput), hai un vincitore e puoi scrivere sullo schermo un elenco di possibili comandi.

Se ce n'è solo uno (TM) puoi sostituirlo con ciò che l'utente ha digitato :)

Ho creato una piccola libreria per aggiungere questa funzionalità a un'app che ho creato:

https://github.com/fjunqueira/hinter

Potrebbe non soddisfare le tue esigenze, ma puoi sentirti libero di modificarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top