Console: Allow "-delimited strings

This commit is contained in:
Yair Morgenstern
2023-12-31 15:26:59 +02:00
parent 662ba037c8
commit 7b43f90dd0
2 changed files with 12 additions and 7 deletions

View File

@ -271,12 +271,13 @@ class ConsoleCivCommands : ConsoleCommandNode {
)
override fun autocomplete(params: List<String>): String? {
when (params[0]){
"addstat" -> if (params.size == 2)
return Stat.names()
.firstOrNull { it.lowercase().startsWith(params[1]) }
?.drop(params[1].length)
}
if (params.isNotEmpty())
when (params[0]){
"addstat" -> if (params.size == 2)
return Stat.names()
.firstOrNull { it.lowercase().startsWith(params[1]) }
?.drop(params[1].length)
}
return super.autocomplete(params)
}
}

View File

@ -72,7 +72,11 @@ class DevConsolePopup(val screen: WorldScreen) : Popup(screen) {
responseLabel.style.fontColor = handleCommandResponse.color
}
private fun getParams(text: String) = text.split(" ").filter { it.isNotEmpty() }.map { it.lowercase() }
val splitStringRegex = Regex("\"([^\"]+)\"|\\S+") // Read: "(phrase)" OR non-whitespace
private fun getParams(text: String): List<String> {
return splitStringRegex.findAll(text).map { it.value.removeSurrounding("\"") }.filter { it.isNotEmpty() }.toList()
}
private fun handleCommand(): DevConsoleResponse {
val params = getParams(textField.text)