Skip to content

Commit 7c080a0

Browse files
authored
Telemetry(AmazonQ): Adding different algorithm to calculate the numberOfCodeBlocks (aws#4340)
* Parsing string to HTMl and finding out the codeBlockCount * Change in Regex to count number of code blocks * Addressing comments
1 parent 617523e commit 7c080a0

File tree

1 file changed

+4
-4
lines changed
  • plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/messenger

1 file changed

+4
-4
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/messenger/ChatPromptHandler.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import software.aws.toolkits.jetbrains.services.cwc.messages.FollowUp
2121
import software.aws.toolkits.jetbrains.services.cwc.messages.RecommendationContentSpan
2222
import software.aws.toolkits.jetbrains.services.cwc.messages.Suggestion
2323
import software.aws.toolkits.jetbrains.services.cwc.storage.ChatSessionInfo
24+
import software.aws.toolkits.jetbrains.utils.convertMarkdownToHTML
2425

2526
class ChatPromptHandler(private val telemetryHelper: TelemetryHelper) {
2627

@@ -33,16 +34,15 @@ class ChatPromptHandler(private val telemetryHelper: TelemetryHelper) {
3334
private var statusCode: Int = 0
3435

3536
companion object {
36-
val CODE_BLOCK_REGEX: Regex = Regex("^```", RegexOption.MULTILINE)
37+
private val CODE_BLOCK_PATTERN = Regex("<pre>\\s*<code")
3738
}
3839

3940
private fun countTotalNumberOfCodeBlocks(message: StringBuilder): Int {
4041
if (message.isEmpty()) {
4142
return 0
4243
}
43-
val countOfCodeBlocks = CODE_BLOCK_REGEX.findAll(message)
44-
val numberOfTripleBackTicksInMarkdown = countOfCodeBlocks.count()
45-
return numberOfTripleBackTicksInMarkdown / 2
44+
val htmlInString = convertMarkdownToHTML(message.toString())
45+
return CODE_BLOCK_PATTERN.findAll(htmlInString).count()
4646
}
4747

4848
fun handle(

0 commit comments

Comments
 (0)