Experimental features EP + completion.stats optional dependency
Fixed tests for Spring
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
<idea-plugin>
|
||||
<extensions defaultExtensionNs="org.jetbrains.kotlin">
|
||||
<experimentalFeature implementation="org.jetbrains.kotlin.idea.configuration.MLCompletionForKotlinFeature"/>
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
@@ -70,6 +70,9 @@
|
||||
|
||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.additionalExtractableAnalyser"
|
||||
interface="org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.AdditionalExtractableAnalyser"/>
|
||||
|
||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.experimentalFeature"
|
||||
interface="org.jetbrains.kotlin.idea.configuration.ExperimentalFeature"/>
|
||||
</extensionPoints>
|
||||
|
||||
<extensions defaultExtensionNs="org.jetbrains.kotlin">
|
||||
|
||||
@@ -29,8 +29,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
||||
<depends optional="true" config-file="decompiler.xml">org.jetbrains.java.decompiler</depends>
|
||||
<depends optional="true" config-file="git4idea.xml">Git4Idea</depends>
|
||||
<depends optional="true" config-file="stream-debugger.xml">org.jetbrains.debugger.streams</depends>
|
||||
|
||||
<depends>com.intellij.stats.completion</depends>
|
||||
<depends optional="true" config-file="completion-stats.xml">com.intellij.stats.completion</depends>
|
||||
|
||||
<!-- ULTIMATE-PLUGIN-PLACEHOLDER -->
|
||||
|
||||
|
||||
@@ -29,8 +29,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
||||
<depends optional="true" config-file="decompiler.xml">org.jetbrains.java.decompiler</depends>
|
||||
<depends optional="true" config-file="git4idea.xml">Git4Idea</depends>
|
||||
<depends optional="true" config-file="stream-debugger.xml">org.jetbrains.debugger.streams</depends>
|
||||
|
||||
<depends>com.intellij.stats.completion</depends>
|
||||
<depends optional="true" config-file="completion-stats.xml">com.intellij.stats.completion</depends>
|
||||
|
||||
<!-- ULTIMATE-PLUGIN-PLACEHOLDER -->
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.configuration
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName
|
||||
import com.intellij.openapi.util.registry.Registry
|
||||
import com.intellij.ui.components.JBCheckBox
|
||||
import org.jdesktop.swingx.VerticalLayout
|
||||
@@ -40,38 +41,28 @@ object ExperimentalFeatures {
|
||||
}
|
||||
}
|
||||
|
||||
object MLCompletionForKotlinFeature : ExperimentalFeature {
|
||||
override val title: String
|
||||
get() = KotlinBundle.message("experimental.ml.completion")
|
||||
|
||||
override fun shouldBeShown(): Boolean = MLCompletionForKotlin.isAvailable
|
||||
|
||||
override var isEnabled: Boolean
|
||||
get() = MLCompletionForKotlin.isEnabled
|
||||
set(value) {
|
||||
MLCompletionForKotlin.isEnabled = value
|
||||
}
|
||||
}
|
||||
|
||||
val allFeatures: List<ExperimentalFeature> = listOf(
|
||||
NewJ2k,
|
||||
NewWizard,
|
||||
MLCompletionForKotlinFeature
|
||||
)
|
||||
NewWizard
|
||||
) + ExperimentalFeature.EP_NAME.extensionList
|
||||
}
|
||||
|
||||
interface ExperimentalFeature {
|
||||
val title: String
|
||||
var isEnabled: Boolean
|
||||
fun shouldBeShown(): Boolean = true
|
||||
fun onFeatureStatusChanged(enabled: Boolean) {}
|
||||
abstract class ExperimentalFeature {
|
||||
abstract val title: String
|
||||
abstract var isEnabled: Boolean
|
||||
open fun shouldBeShown(): Boolean = true
|
||||
open fun onFeatureStatusChanged(enabled: Boolean) {}
|
||||
|
||||
companion object {
|
||||
internal var EP_NAME = ExtensionPointName<ExperimentalFeature>("org.jetbrains.kotlin.experimentalFeature")
|
||||
}
|
||||
}
|
||||
|
||||
open class RegistryExperimentalFeature(
|
||||
override val title: String,
|
||||
private val registryKey: String,
|
||||
private val enabledByDefault: Boolean
|
||||
) : ExperimentalFeature {
|
||||
) : ExperimentalFeature() {
|
||||
final override var isEnabled
|
||||
get() = Registry.`is`(registryKey, enabledByDefault)
|
||||
set(value) {
|
||||
|
||||
@@ -6,8 +6,22 @@
|
||||
package org.jetbrains.kotlin.idea.configuration
|
||||
|
||||
import com.intellij.completion.settings.CompletionMLRankingSettings
|
||||
import org.jetbrains.kotlin.idea.KotlinBundle
|
||||
import kotlin.reflect.jvm.isAccessible
|
||||
|
||||
object MLCompletionForKotlinFeature : ExperimentalFeature() {
|
||||
override val title: String
|
||||
get() = KotlinBundle.message("experimental.ml.completion")
|
||||
|
||||
override fun shouldBeShown(): Boolean = MLCompletionForKotlin.isAvailable
|
||||
|
||||
override var isEnabled: Boolean
|
||||
get() = MLCompletionForKotlin.isEnabled
|
||||
set(value) {
|
||||
MLCompletionForKotlin.isEnabled = value
|
||||
}
|
||||
}
|
||||
|
||||
internal object MLCompletionForKotlin {
|
||||
const val isAvailable: Boolean = true
|
||||
|
||||
|
||||
Reference in New Issue
Block a user