diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityLibraryLicenses.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityLibraryLicenses.groovy
index 0b3258009e9e..30abc3e95097 100644
--- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityLibraryLicenses.groovy
+++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityLibraryLicenses.groovy
@@ -643,6 +643,7 @@ class CommunityLibraryLicenses {
jetbrainsLibrary("change-reminder-prediction-model"),
jetbrainsLibrary("completion-log-events"),
+ jetbrainsLibrary("completion-ranking-cpp-exp"),
jetbrainsLibrary("completion-ranking-dart-exp"),
jetbrainsLibrary("completion-ranking-go-exp"),
jetbrainsLibrary("completion-ranking-java"),
diff --git a/plugins/completion-ml-ranking-models/intellij.completionMlRankingModels.iml b/plugins/completion-ml-ranking-models/intellij.completionMlRankingModels.iml
index 33eca258a89a..b73fd2d73c83 100644
--- a/plugins/completion-ml-ranking-models/intellij.completionMlRankingModels.iml
+++ b/plugins/completion-ml-ranking-models/intellij.completionMlRankingModels.iml
@@ -141,5 +141,15 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/completion-ml-ranking-models/resources/META-INF/plugin.xml b/plugins/completion-ml-ranking-models/resources/META-INF/plugin.xml
index 7ca7e320bc83..8b04d6bddbf0 100644
--- a/plugins/completion-ml-ranking-models/resources/META-INF/plugin.xml
+++ b/plugins/completion-ml-ranking-models/resources/META-INF/plugin.xml
@@ -27,5 +27,6 @@
+
\ No newline at end of file
diff --git a/plugins/completion-ml-ranking-models/resources/messages/CompletionRankingModelsBundle.properties b/plugins/completion-ml-ranking-models/resources/messages/CompletionRankingModelsBundle.properties
index 542710881a8d..0c962bfd557b 100644
--- a/plugins/completion-ml-ranking-models/resources/messages/CompletionRankingModelsBundle.properties
+++ b/plugins/completion-ml-ranking-models/resources/messages/CompletionRankingModelsBundle.properties
@@ -10,3 +10,4 @@ ml.completion.experiment.model.js=JavaScript
ml.completion.experiment.model.ts=TypeScript
ml.completion.experiment.model.dart=Dart
ml.completion.experiment.model.swift=Swift
+ml.completion.experiment.model.cidr=C/C++
diff --git a/plugins/completion-ml-ranking-models/src/com/jetbrains/completion/ml/ranker/ExperimentCidrMLRankingProvider.kt b/plugins/completion-ml-ranking-models/src/com/jetbrains/completion/ml/ranker/ExperimentCidrMLRankingProvider.kt
new file mode 100644
index 000000000000..77f4e00415e4
--- /dev/null
+++ b/plugins/completion-ml-ranking-models/src/com/jetbrains/completion/ml/ranker/ExperimentCidrMLRankingProvider.kt
@@ -0,0 +1,14 @@
+// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+package com.jetbrains.completion.ml.ranker
+
+import com.intellij.completion.ml.ranker.ExperimentModelProvider
+import com.intellij.internal.ml.catboost.CatBoostJarCompletionModelProvider
+import com.intellij.lang.Language
+
+class ExperimentCidrMLRankingProvider : CatBoostJarCompletionModelProvider(
+ CompletionRankingModelsBundle.message("ml.completion.experiment.model.cidr"), "cpp_features_exp", "cpp_model_exp"), ExperimentModelProvider {
+
+ override fun isLanguageSupported(language: Language): Boolean = language.id.compareTo("ObjectiveC", ignoreCase = true) == 0
+
+ override fun experimentGroupNumber(): Int = 13
+}
diff --git a/plugins/completion-ml-ranking-models/test/com/jetbrains/completion/ml/ranker/MetadataConsistencyTest.kt b/plugins/completion-ml-ranking-models/test/com/jetbrains/completion/ml/ranker/MetadataConsistencyTest.kt
index 7562fac2334e..823902827bd8 100644
--- a/plugins/completion-ml-ranking-models/test/com/jetbrains/completion/ml/ranker/MetadataConsistencyTest.kt
+++ b/plugins/completion-ml-ranking-models/test/com/jetbrains/completion/ml/ranker/MetadataConsistencyTest.kt
@@ -42,4 +42,7 @@ class MetadataConsistencyTest {
@Test
fun testSwiftMetadata() = ExperimentSwiftMLRankingProvider().assertModelMetadataConsistent()
+
+ @Test
+ fun testCidrMetadata() = ExperimentCidrMLRankingProvider().assertModelMetadataConsistent()
}
diff --git a/plugins/completion-ml-ranking/resources/experiment.json b/plugins/completion-ml-ranking/resources/experiment.json
index 26561372b4b0..ba33ebaa882b 100644
--- a/plugins/completion-ml-ranking/resources/experiment.json
+++ b/plugins/completion-ml-ranking/resources/experiment.json
@@ -104,6 +104,11 @@
"id": "C#",
"experimentBucketsCount": 8,
"includeGroups": [ 7, 8, 12]
+ },
+ {
+ "id": "objectivec",
+ "experimentBucketsCount": 4,
+ "includeGroups": [ 7, 12, 13]
}
]
}
\ No newline at end of file