Fai vincere l'applicazione console C # per mostrare il comando posibile quando l'utente preme TAB

StackOverflow https://stackoverflow.com/questions/1821042

  •  10-07-2019
  •  | 
  •  

Domanda

Sto sviluppando un'applicazione console in C # con molti parametri e qualche volta come sviluppatore non ricordo la combinazione di parametri per chiamare l'applicazione nel modo giusto, non riesco nemmeno a pensare a come gli utenti lo faranno. Quindi ti chiedo che è lì e quale sarà il modo corretto (scolastico) per far funzionare la mia applicazione come quei sistemi operativi UNIX. Sai che cosa sto cercando di realizzare è che quando l'utente chiama l'applicazione e successivamente quando preme un TAB allora ottiene l'elenco dei comandi possibili, dopo la scelta uno dei comandi premi di nuovo una scheda e ottieni un elenco referente di parametri e altri comandi.

È stato utile?

Soluzione

Sviluppa la tua applicazione come CmdLet di PowerShell . Powershell ha già un'infrastruttura di completamento delle schede integrata. Ad esempio, se si esegue la seguente operazione per dir CmdLet:

dir - Tab

quindi premendo ripetutamente Tab verranno visualizzate ciclicamente le possibili opzioni per il comando dir :

  • dir -Path
  • dir -LiteralPath
  • dir -Filter
  • dir -Include

Etcetera.

Altri suggerimenti

Penso che il modo più semplice per farlo sia usare Metodo Console.ReadKey . Ciò ti consentirà di ottenere il tasto tab non appena viene premuto dall'utente. È quindi possibile gestire la sequenza di tasti e, se si tratta di una scheda, determinare il contesto corrente e stampare i comandi nel modo appropriato.

Se sto capendo correttamente, vuoi imitare il completamento programmabile della riga di comando in zsh (shell Z).

Sfortunatamente, questa funzionalità è integrata nella shell, sebbene sia anche programmabile; il completamento che accade in realtà sta accadendo prima che il programma fosse avviato.

Se avessi eseguito zsh su Windows, il che dovrebbe essere possibile con Cygwin, potresti programmarlo per facilitare il completamento della riga di comando.

Altrimenti penso che la tua unica opzione sia quella di avviare una sorta di sessione interattiva una volta avviato il programma; ad esempio, stampare tutte le opzioni all'avvio del programma e attendere che l'utente inserisca uno dei parametri, quindi mostrare tutte le seguenti possibili combinazioni di parametri.

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