diff --git a/.idea/modules.xml b/.idea/modules.xml
index c7519db2a4ee..047c43399672 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -838,6 +838,7 @@
+
diff --git a/java/java-impl/intellij.java.impl.iml b/java/java-impl/intellij.java.impl.iml
index 2a447907cebe..4376e49bee04 100644
--- a/java/java-impl/intellij.java.impl.iml
+++ b/java/java-impl/intellij.java.impl.iml
@@ -72,6 +72,7 @@
+
diff --git a/java/java-tests/intellij.java.tests.iml b/java/java-tests/intellij.java.tests.iml
index 7a85f316fb05..9a7cf061eddb 100644
--- a/java/java-tests/intellij.java.tests.iml
+++ b/java/java-tests/intellij.java.tests.iml
@@ -85,5 +85,6 @@
+
\ No newline at end of file
diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/PlatformModules.kt b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/PlatformModules.kt
index 83a4e471b9f5..e8319ba6797d 100644
--- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/PlatformModules.kt
+++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/PlatformModules.kt
@@ -29,6 +29,7 @@ private val PLATFORM_API_MODULES: List = java.util.List.of(
"intellij.platform.lang.core",
"intellij.platform.lang",
"intellij.platform.lvcs",
+ "intellij.platform.ml",
"intellij.platform.ide",
"intellij.platform.ide.core",
"intellij.platform.projectModel",
diff --git a/platform/lang-api/intellij.platform.lang.iml b/platform/lang-api/intellij.platform.lang.iml
index 09fbf4b62ef2..354103e250f0 100644
--- a/platform/lang-api/intellij.platform.lang.iml
+++ b/platform/lang-api/intellij.platform.lang.iml
@@ -29,5 +29,6 @@
+
\ No newline at end of file
diff --git a/platform/lang-api/src/com/intellij/codeInsight/completion/ml/MLFeature.kt b/platform/lang-api/src/com/intellij/codeInsight/completion/ml/MLFeature.kt
deleted file mode 100644
index db54fb7a095b..000000000000
--- a/platform/lang-api/src/com/intellij/codeInsight/completion/ml/MLFeature.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.codeInsight.completion.ml
-
-interface MLFeature {
- val name: String
- fun compute(): MLFeatureValue
-}
-
-data class SimpleMLFeature(override val name: String, private val value: MLFeatureValue) : MLFeature {
- override fun compute(): MLFeatureValue = value
-}
diff --git a/platform/lang-api/src/com/intellij/codeInsight/completion/ml/MLFeatureValue.kt b/platform/lang-api/src/com/intellij/codeInsight/completion/ml/MLFeatureValue.kt
index f50f7ac6d186..a1c3ef3f6b54 100644
--- a/platform/lang-api/src/com/intellij/codeInsight/completion/ml/MLFeatureValue.kt
+++ b/platform/lang-api/src/com/intellij/codeInsight/completion/ml/MLFeatureValue.kt
@@ -1,6 +1,7 @@
// Copyright 2000-2022 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.intellij.codeInsight.completion.ml
+import com.intellij.internal.ml.MLFeatureValueBase
import org.jetbrains.annotations.ApiStatus
/*
@@ -29,7 +30,7 @@ import org.jetbrains.annotations.ApiStatus
* values to the clipboard.
*/
@ApiStatus.Internal
-sealed class MLFeatureValue {
+sealed class MLFeatureValue : MLFeatureValueBase {
companion object {
private val TRUE = BinaryValue(true)
private val FALSE = BinaryValue(false)
@@ -57,32 +58,13 @@ sealed class MLFeatureValue {
@JvmStatic
fun > className(value: T, useSimpleName: Boolean = true): MLFeatureValue = ClassNameValue(value, useSimpleName)
- @JvmStatic
- fun string(value: String): MLFeatureValue = StringValue(value)
-
- @JvmStatic
- fun list(value: List<*>): MLFeatureValue = ListValue(value)
-
@JvmStatic
fun version(value: String): MLFeatureValue = VersionValue(value)
}
- abstract val value: Any
- abstract val isSafe: Boolean
-
- abstract class SafeValue : MLFeatureValue() {
- override val isSafe: Boolean = true
- }
-
- abstract class UnSafeValue : MLFeatureValue() {
- override val isSafe: Boolean = false
- }
-
- data class BinaryValue internal constructor(override val value: Boolean) : SafeValue()
- data class FloatValue internal constructor(override val value: Double) : SafeValue()
- data class CategoricalValue internal constructor(override val value: String) : SafeValue()
- data class ClassNameValue internal constructor(override val value: Class<*>, val useSimpleName: Boolean) : UnSafeValue()
- data class VersionValue internal constructor(override val value: String) : UnSafeValue()
- data class StringValue internal constructor(override val value: String) : UnSafeValue()
- data class ListValue internal constructor(override val value: List<*>) : UnSafeValue()
+ data class BinaryValue internal constructor(override val value: Boolean) : MLFeatureValue()
+ data class FloatValue internal constructor(override val value: Double) : MLFeatureValue()
+ data class CategoricalValue internal constructor(override val value: String) : MLFeatureValue()
+ data class ClassNameValue internal constructor(override val value: Class<*>, val useSimpleName: Boolean) : MLFeatureValue()
+ data class VersionValue internal constructor(override val value: String) : MLFeatureValue()
}
diff --git a/platform/ml-api/intellij.platform.ml.iml b/platform/ml-api/intellij.platform.ml.iml
new file mode 100644
index 000000000000..62c9f579f941
--- /dev/null
+++ b/platform/ml-api/intellij.platform.ml.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/platform/lang-api/src/com/intellij/codeInsight/completion/ml/MLContext.kt b/platform/ml-api/src/com/intellij/internal/ml/MLContext.kt
similarity index 85%
rename from platform/lang-api/src/com/intellij/codeInsight/completion/ml/MLContext.kt
rename to platform/ml-api/src/com/intellij/internal/ml/MLContext.kt
index 67c0e00c6cd7..867a0525af94 100644
--- a/platform/lang-api/src/com/intellij/codeInsight/completion/ml/MLContext.kt
+++ b/platform/ml-api/src/com/intellij/internal/ml/MLContext.kt
@@ -1,5 +1,5 @@
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.codeInsight.completion.ml
+package com.intellij.internal.ml
import com.intellij.psi.PsiElement
import org.jetbrains.annotations.ApiStatus
diff --git a/platform/ml-api/src/com/intellij/internal/ml/MLFeature.kt b/platform/ml-api/src/com/intellij/internal/ml/MLFeature.kt
new file mode 100644
index 000000000000..f5a5475e5510
--- /dev/null
+++ b/platform/ml-api/src/com/intellij/internal/ml/MLFeature.kt
@@ -0,0 +1,17 @@
+// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.internal.ml
+
+import org.jetbrains.annotations.ApiStatus
+
+@ApiStatus.Internal
+interface MLFeature {
+ val name: String
+ fun compute(): MLFeatureValueBase
+
+ companion object {
+ fun simple(name: String, value: MLFeatureValueBase): MLFeature = object : MLFeature {
+ override val name: String = name
+ override fun compute(): MLFeatureValueBase = value
+ }
+ }
+}
diff --git a/platform/lang-api/src/com/intellij/codeInsight/completion/ml/MLFeatureProvider.kt b/platform/ml-api/src/com/intellij/internal/ml/MLFeatureProvider.kt
similarity index 88%
rename from platform/lang-api/src/com/intellij/codeInsight/completion/ml/MLFeatureProvider.kt
rename to platform/ml-api/src/com/intellij/internal/ml/MLFeatureProvider.kt
index 911a4a73a98d..54f081e89bb3 100644
--- a/platform/lang-api/src/com/intellij/codeInsight/completion/ml/MLFeatureProvider.kt
+++ b/platform/ml-api/src/com/intellij/internal/ml/MLFeatureProvider.kt
@@ -1,5 +1,5 @@
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.codeInsight.completion.ml
+package com.intellij.internal.ml
import com.intellij.lang.LanguageExtension
import org.jetbrains.annotations.ApiStatus
@@ -12,7 +12,7 @@ interface MLFeatureProvider {
fun isApplicable(context: MLContext): Boolean
companion object {
- private val EP_NAME = LanguageExtension("com.intellij.completion.ml.features")
+ private val EP_NAME = LanguageExtension("com.intellij.internal.ml.featureProvider")
fun applicableProviders(context: MLContext): List =
EP_NAME.allForLanguageOrAny(context.position.language).filter { it.isApplicable(context) }
diff --git a/platform/ml-api/src/com/intellij/internal/ml/MLFeatureValueBase.kt b/platform/ml-api/src/com/intellij/internal/ml/MLFeatureValueBase.kt
new file mode 100644
index 000000000000..3fef3dc3d16a
--- /dev/null
+++ b/platform/ml-api/src/com/intellij/internal/ml/MLFeatureValueBase.kt
@@ -0,0 +1,9 @@
+// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.internal.ml
+
+import org.jetbrains.annotations.ApiStatus
+
+@ApiStatus.Internal
+interface MLFeatureValueBase {
+ val value: Any
+}
diff --git a/platform/platform-resources/src/META-INF/CompletionExtensionPoints.xml b/platform/platform-resources/src/META-INF/CompletionExtensionPoints.xml
index 3d94100a844c..b72d024291ae 100644
--- a/platform/platform-resources/src/META-INF/CompletionExtensionPoints.xml
+++ b/platform/platform-resources/src/META-INF/CompletionExtensionPoints.xml
@@ -15,10 +15,6 @@
-
-
-
-
diff --git a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml
index 2d576eb155d3..c51c8e97a934 100644
--- a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml
+++ b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml
@@ -487,5 +487,9 @@
+
+
+
+
diff --git a/plugins/completion-ml-ranking/intellij.completionMlRanking.iml b/plugins/completion-ml-ranking/intellij.completionMlRanking.iml
index 4ee4452d5327..39935a355d21 100644
--- a/plugins/completion-ml-ranking/intellij.completionMlRanking.iml
+++ b/plugins/completion-ml-ranking/intellij.completionMlRanking.iml
@@ -46,5 +46,6 @@
+
\ No newline at end of file
diff --git a/plugins/completion-ml-ranking/intellij.completionMlRanking.tests.iml b/plugins/completion-ml-ranking/intellij.completionMlRanking.tests.iml
index 93044ec66719..7e723130c3f3 100644
--- a/plugins/completion-ml-ranking/intellij.completionMlRanking.tests.iml
+++ b/plugins/completion-ml-ranking/intellij.completionMlRanking.tests.iml
@@ -13,5 +13,6 @@
+
\ No newline at end of file
diff --git a/plugins/completion-ml-ranking/src/com/intellij/completion/ml/features/MLFeaturesUtil.kt b/plugins/completion-ml-ranking/src/com/intellij/completion/ml/features/MLFeaturesUtil.kt
index 42af051dfbd1..0fe2e1f5f0ff 100644
--- a/plugins/completion-ml-ranking/src/com/intellij/completion/ml/features/MLFeaturesUtil.kt
+++ b/plugins/completion-ml-ranking/src/com/intellij/completion/ml/features/MLFeaturesUtil.kt
@@ -14,7 +14,6 @@ internal object MLFeaturesUtil {
is MLFeatureValue.CategoricalValue -> featureValue.value
is MLFeatureValue.ClassNameValue -> getClassNameSafe(featureValue)
is MLFeatureValue.VersionValue -> getVersionSafe(featureValue)
- else -> if (featureValue.isSafe) featureValue.value else throw IllegalArgumentException("Feature value $featureValue is unsafe")
}
}
diff --git a/plugins/evaluation-plugin/intellij.evaluationPlugin.iml b/plugins/evaluation-plugin/intellij.evaluationPlugin.iml
index e4634fdc8389..040c3c3e119e 100644
--- a/plugins/evaluation-plugin/intellij.evaluationPlugin.iml
+++ b/plugins/evaluation-plugin/intellij.evaluationPlugin.iml
@@ -30,5 +30,6 @@
+
\ No newline at end of file
diff --git a/python/intellij.python.community.impl.iml b/python/intellij.python.community.impl.iml
index f728a528bf21..be14917ec435 100644
--- a/python/intellij.python.community.impl.iml
+++ b/python/intellij.python.community.impl.iml
@@ -109,5 +109,6 @@
+
\ No newline at end of file
diff --git a/python/testSrc/intellij.python.community.tests.iml b/python/testSrc/intellij.python.community.tests.iml
index ea1d619fb859..40d96c4cb6de 100644
--- a/python/testSrc/intellij.python.community.tests.iml
+++ b/python/testSrc/intellij.python.community.tests.iml
@@ -45,5 +45,6 @@
+
\ No newline at end of file