Pregunta

Estoy pensando en escribir una aplicación de consola en C # y quiero incorporar la historia, la realización y edición de línea de comandos cuenta con algo como GNU readline (pero no necesariamente tan amplia como!)

¿Hay una biblioteca existente de .NET que proporciona este tipo de funcionalidad? Creo que una opción sería utilizar servicios de interoperabilidad para llamar readline de GNU. Pero, ¿existe una opción nativa?

¿Fue útil?

Solución

Es posible que desee a la comprobación de getline.cs ( el enlace en la entrada del blog se rompe, el código se puede encontrar ahora aquí ). Dependiendo de qué características de readline que realmente necesita, podría ser suficiente para sus propósitos.

Lo bueno es, que todo está contenido en un único archivo (de ahí getline.cs) y el MIT X11 licencia.

Su uso es bastante fácil.

Si desea darle tratar, sólo tiene que descargar el archivo y compilarlo:

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

La parte #ifdef DEMO también muestra el REPL básico:

var le = new LineEditor("whatever");
string s;

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

Otros consejos

Lo único que conozco es Mono-Readline .

Proporciona una interfaz .NET para la biblioteca GNU Readline - que es un poco cruda, sin embargo, sólo la versión 0.0.1, y sólo he visto que se ejecute en el tiempo de ejecución Mono.

Se debe tener cuidado con la concesión de licencias también ... que yo sepa nada que vincula las bibliotecas GNU Readline se requiere para ser liberado bajo la GPL.

un proyecto que pretende emular la mayoría de las funciones de Redline es Deveel ReadLine , pero tengo que decir que no se mantiene. La última vez que lo usé funcionó muy bien tanto en .NET y Mono, aunque hay un pequeño error al cancelar una línea que se pliega automáticamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top