in backend/src/main/kotlin/org/jetbrains/plugins/template/BackendChatRepositoryModel.kt [49:70]
suspend fun sendMessage(messageContent: String) {
withContext(Dispatchers.IO) {
try {
// Emits the user message to a chat list
_messages.value += chatMessageFactory.createUserMessage(messageContent)
// Simulate AI responding
simulateAIResponse(messageContent)
} catch (e: Exception) {
if (e is CancellationException) {
// In case the message sending is canceled before a response is generated,
// we remove a loading placeholder message
_messages.value = _messages.value.filter { !it.isAIThinkingMessage() }
throw e
}
e.printStackTrace()
}
}
}