From b5b20e9d2996fff48462abb779ae596902a56638 Mon Sep 17 00:00:00 2001 From: Alexey Kalina Date: Tue, 23 Mar 2021 09:53:40 +0300 Subject: [PATCH] [ml-completion] C++: initial experimental model v0.1.1 (cherry picked from commit 22e57bd2fa0c48d60b6a8e3510d45780c8dfd2b6) IJ-MR-7489 GitOrigin-RevId: 2db1ba41ed6d3fa4ba7578f86412d4627e6c29e3 --- .../intellij/build/CommunityLibraryLicenses.groovy | 1 + .../intellij.completionMlRankingModels.iml | 10 ++++++++++ .../resources/META-INF/plugin.xml | 1 + .../CompletionRankingModelsBundle.properties | 1 + .../ml/ranker/ExperimentCidrMLRankingProvider.kt | 14 ++++++++++++++ .../ml/ranker/MetadataConsistencyTest.kt | 3 +++ .../resources/experiment.json | 5 +++++ 7 files changed, 35 insertions(+) create mode 100644 plugins/completion-ml-ranking-models/src/com/jetbrains/completion/ml/ranker/ExperimentCidrMLRankingProvider.kt 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