Scala -jline 文件完成器导致找不到文件 (linux)
Scala -jline file completer causes file not found (linux)
我在这段代码中发现了一些非常奇怪的东西。
command match {
case "q" | "quit" => done=true
case "f" | "file" =>
{
// console_reader.addCompleter(fn_completer)
val f:String=console_reader.readLine("input filename >")
val filename=
if(java.nio.file.Paths.get(f).isAbsolute())
f
else
System.getProperty("user.dir")+"/"+f
val ft=Paths.get(filename).toString()
console_reader.println(ft)
if(Files.exists(Paths.get(filename)))
process_file(filename)
else
console_reader.println(filename+" does not exist")
// console_reader.removeCompleter(fn_completer)
}
case _ => console_reader.println(command+" not a command")
}
当我 运行 并键入 build.sbt 时,一切都会被调用 fine--process_file。
当我取消注释文件完成行时,同一文件被报告为不存在。怎么了?
阅读该行后,放置console_reader.println(":"+f+":")
并且很明显,使用完成器和使用制表符完成,space 附加到文件名。
我将行更改为 val f=console_reader.readLine("input filename >").stripLineEnd.trim()
并修复了问题。
我在这段代码中发现了一些非常奇怪的东西。
command match {
case "q" | "quit" => done=true
case "f" | "file" =>
{
// console_reader.addCompleter(fn_completer)
val f:String=console_reader.readLine("input filename >")
val filename=
if(java.nio.file.Paths.get(f).isAbsolute())
f
else
System.getProperty("user.dir")+"/"+f
val ft=Paths.get(filename).toString()
console_reader.println(ft)
if(Files.exists(Paths.get(filename)))
process_file(filename)
else
console_reader.println(filename+" does not exist")
// console_reader.removeCompleter(fn_completer)
}
case _ => console_reader.println(command+" not a command")
}
当我 运行 并键入 build.sbt 时,一切都会被调用 fine--process_file。 当我取消注释文件完成行时,同一文件被报告为不存在。怎么了?
阅读该行后,放置console_reader.println(":"+f+":")
并且很明显,使用完成器和使用制表符完成,space 附加到文件名。
我将行更改为 val f=console_reader.readLine("input filename >").stripLineEnd.trim()
并修复了问题。