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? { override fun autocomplete(params: List<String>): String? {
when (params[0]){ if (params.isNotEmpty())
"addstat" -> if (params.size == 2) when (params[0]){
return Stat.names() "addstat" -> if (params.size == 2)
.firstOrNull { it.lowercase().startsWith(params[1]) } return Stat.names()
?.drop(params[1].length) .firstOrNull { it.lowercase().startsWith(params[1]) }
} ?.drop(params[1].length)
}
return super.autocomplete(params) return super.autocomplete(params)
} }
} }

View File

@ -72,7 +72,11 @@ class DevConsolePopup(val screen: WorldScreen) : Popup(screen) {
responseLabel.style.fontColor = handleCommandResponse.color 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 { private fun handleCommand(): DevConsoleResponse {
val params = getParams(textField.text) val params = getParams(textField.text)