J'ai une application dans laquelle j'aimerais recevoir une invite. Si cela aide, il s'agit d'une implémentation de base de données graphique et j'ai besoin d'un invite comme tout autre client de base de données (MySQL, Postgresql, etc.).Existe-t-il une bonne bibliothèque pour intégrer une invite de commande dans une application scala (ou java)?
Jusqu'à présent, j'ai mon propre REPL comme ceci:
object App extends Application {
REPL ! Read
}
object REPL extends Actor {
def act() {
loop {
react {
case Read => {
print("prompt> ")
var message = Console.readLine
this ! Eval(message)
}
case More(sofar) => {
//Eval didn't see a semicolon
print(" --> ")
var message = Console.readLine
this ! Eval(sofar + " " + message)
}
case Eval(message) => {
Evaluator ! Eval(message)
}
case Print(message) => {
println(message)
//And here's the loop
this ! Read
}
case Exit => {
exit()
}
case _ => {
println("App: How did we get here")
}
}
}
}
this.start
}
Il fonctionne, mais je voudrais vraiment quelque chose avec l'histoire. L'achèvement de l'onglet n'est pas nécessaire.
Des suggestions sur une bonne bibliothèque? Scala ou Java fonctionne. Pour être clair, je n'ai pas besoin d'un REPL pour évaluer mon code (je reçois ça avec scala!), Ni d'appeler ou d'utiliser quelque chose depuis la ligne de commande. Je suis à la recherche d'une invite correspondant à mon expérience utilisateur lorsque mon application cliente démarre.
Oui une bibliothèque comme readline est exactement ce que je cherchais. J'ai également trouvé un jni wrap de readline GNU appelé java-readline, mais je pense que je vais utiliser JLine. Merci! – bdaniels