From 1c4fb5cd4a82d02c28ac82930d5d986b0f8a8969 Mon Sep 17 00:00:00 2001 From: Adam Malek Date: Tue, 26 Apr 2022 13:02:34 +0200 Subject: [PATCH] ML in SE: Make isCamelCase feature be true for any case change Previously, it wouldn't work for cases when the last character would be upper case, e.g fooB. Now, any case change is detected. GitOrigin-RevId: ca4a7c3d225a0aa78f797097af051a06fbde6766 --- .../ml/features/SearchEverywhereStateFeaturesProvider.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/search-everywhere-ml/src/com/intellij/ide/actions/searcheverywhere/ml/features/SearchEverywhereStateFeaturesProvider.kt b/plugins/search-everywhere-ml/src/com/intellij/ide/actions/searcheverywhere/ml/features/SearchEverywhereStateFeaturesProvider.kt index fa83f5b3c638..c8aa57aa6dcc 100644 --- a/plugins/search-everywhere-ml/src/com/intellij/ide/actions/searcheverywhere/ml/features/SearchEverywhereStateFeaturesProvider.kt +++ b/plugins/search-everywhere-ml/src/com/intellij/ide/actions/searcheverywhere/ml/features/SearchEverywhereStateFeaturesProvider.kt @@ -44,9 +44,10 @@ class SearchEverywhereStateFeaturesProvider { private fun CharSequence.isCamelCase(): Boolean { this.forEachIndexed { index, c -> - if (index > 0 && c.isLowerCase() && this[index - 1].isUpperCase()) { - return true - } + if (index == 0) return@forEachIndexed + + // Check if there's a case change between this character and the previous one + if (c.isUpperCase() != this[index - 1].isUpperCase()) return true } return false