Существует ли библиотека .Net, аналогичная GNU readline? - PullRequest
6 голосов
/ 08 января 2010

Я подумываю о написании консольного приложения на C # и хочу включить функции редактирования истории, завершения и командной строки, например GNU readline (но не обязательно настолько обширный, как этот!)

Существует ли существующая библиотека для .net, которая обеспечивает этот тип функциональности? Я предполагаю, что одним из вариантов будет использование сервисов взаимодействия для вызова GNU readline. А есть нативный вариант?

Ответы [ 3 ]

9 голосов
/ 03 мая 2010

Вы можете оформить заказ getline.cs Мигеля де Иказы (ссылка в сообщении блога не работает, код теперь можно найти здесь ) В зависимости от того, какие функции readline вам действительно нужны, этого может быть достаточно для ваших целей.

Приятно то, что все это содержится в одном файле (следовательно, getline.cs) и имеет лицензию MIT X11.

Использовать его довольно просто.

Если вы хотите попробовать, просто скачайте файл и скомпилируйте его:

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

Часть #ifdef DEMO также показывает базовый REPL:

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

while ((s = le.Edit("my prompt> ", "")) != null)
{
    // User input from command line / prompt now in "s".
}
2 голосов
/ 01 мая 2010

проект, который нацелен на эмуляцию большинства функций RedLine, - это Deveel ReadLine , но я должен сказать, что он не поддерживается. В прошлый раз, когда я использовал его, он очень хорошо работал как на .NET, так и на Mono, хотя при отмене строки, которая была автоматически свернута, есть небольшая ошибка.

2 голосов
/ 08 января 2010

Единственное, что я знаю, это Mono-Readline .

Он предоставляет интерфейс .NET для библиотеки GNU Readline - хотя он немного сырой, только версия 0.0.1, и я только когда-либо видел, чтобы он работал во время выполнения Mono.

Вы также должны быть осторожны с лицензированием ... AFAIK все, что связывает библиотеки GNU Readline, должно быть выпущено под лицензией GPL.

...