Esiste una libreria .Net simile alla GNU readline?

Sto pensando di scrivere un’applicazione per console in C # e voglio incorporare funzionalità di modifica della cronologia, del completamento e della riga di comando come GNU readline (ma non necessariamente così esteso!)

Esiste una libreria esistente per .net che fornisce questo tipo di funzionalità? Immagino che un’opzione potrebbe essere utilizzare i servizi di interoperabilità per chiamare GNU readline. Ma esiste un’opzione nativa?

    Potresti voler controllare getline.cs di Miguel de Icaza (il link nel post del blog è rotto, ora il codice può essere trovato qui ). A seconda delle funzioni di readline di cui hai effettivamente bisogno, potrebbe essere sufficiente per i tuoi scopi.

    La cosa bella è che è tutto contenuto in un singolo file (quindi getline.cs) e MIT X11 concesso in licenza.

    Usarlo è abbastanza facile.

    Se vuoi provarlo, basta scaricare il file e compilarlo:

    C:\> csc.exe /d:DEMO getline.cs C:\> getline.exe shell> 

    La parte #ifdef DEMO mostra anche il REPL di base:

     var le = new LineEditor("whatever"); string s; while ((s = le.Edit("my prompt> ", "")) != null) { // User input from command line / prompt now in "s". } 

    L’unica cosa che so è Mono-Readline .

    Fornisce un’interfaccia .NET alla libreria GNU Readline – è un po ‘grezza però, solo la versione 0.0.1, e l’ho sempre visto girare sul runtime Mono.

    Si dovrebbe fare attenzione anche con le licenze … AFAIK qualsiasi cosa che colleghi le librerie GNU Readline è necessario per essere rilasciato sotto licenza GPL.

    un progetto che mira a emulare la maggior parte delle funzioni di RedLine è Deveel ReadLine , ma devo dire che non è mantenuto. L’ultima volta che l’ho usato ha funzionato molto bene su entrambi .NET e Mono, anche se c’è un piccolo bug quando si annulla una linea che è stata automaticamente piegata.