Show experimental features panel only for non-stable plugin versions
Also, use registry as backend for features settings
This commit is contained in:
+2
-2
@@ -12,9 +12,9 @@ import com.intellij.openapi.project.Project
|
|||||||
import com.intellij.openapi.roots.ui.configuration.ModulesProvider
|
import com.intellij.openapi.roots.ui.configuration.ModulesProvider
|
||||||
import com.intellij.openapi.ui.Messages
|
import com.intellij.openapi.ui.Messages
|
||||||
import com.intellij.util.SystemProperties
|
import com.intellij.util.SystemProperties
|
||||||
|
import org.jetbrains.kotlin.idea.configuration.ExperimentalFeatures
|
||||||
import org.jetbrains.kotlin.idea.framework.KotlinModuleSettingStep
|
import org.jetbrains.kotlin.idea.framework.KotlinModuleSettingStep
|
||||||
import org.jetbrains.kotlin.idea.framework.KotlinTemplatesFactory
|
import org.jetbrains.kotlin.idea.framework.KotlinTemplatesFactory
|
||||||
import org.jetbrains.kotlin.idea.projectWizard.NewProjectWizardService
|
|
||||||
import org.jetbrains.kotlin.idea.projectWizard.ProjectCreationStats
|
import org.jetbrains.kotlin.idea.projectWizard.ProjectCreationStats
|
||||||
import org.jetbrains.kotlin.idea.projectWizard.UiEditorUsageStats
|
import org.jetbrains.kotlin.idea.projectWizard.UiEditorUsageStats
|
||||||
import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService
|
import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService
|
||||||
@@ -61,7 +61,7 @@ class NewProjectWizardModuleBuilder : EmptyModuleBuilder() {
|
|||||||
private const val INVALID_PROJECT_NAME_MESSAGE = "Invalid project name"
|
private const val INVALID_PROJECT_NAME_MESSAGE = "Invalid project name"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun isAvailable(): Boolean = NewProjectWizardService.isEnabled
|
override fun isAvailable(): Boolean = ExperimentalFeatures.NewWizard.isEnabled
|
||||||
|
|
||||||
private var wizardContext: WizardContext? = null
|
private var wizardContext: WizardContext? = null
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -11,11 +11,11 @@ import com.intellij.openapi.application.runWriteAction
|
|||||||
import com.intellij.psi.PsiDocumentManager
|
import com.intellij.psi.PsiDocumentManager
|
||||||
import com.intellij.util.ui.UIUtil
|
import com.intellij.util.ui.UIUtil
|
||||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||||
|
import org.jetbrains.kotlin.idea.configuration.ExperimentalFeatures
|
||||||
import org.jetbrains.kotlin.idea.conversion.copy.AbstractJavaToKotlinCopyPasteConversionTest
|
import org.jetbrains.kotlin.idea.conversion.copy.AbstractJavaToKotlinCopyPasteConversionTest
|
||||||
import org.jetbrains.kotlin.idea.conversion.copy.ConvertJavaCopyPasteProcessor
|
import org.jetbrains.kotlin.idea.conversion.copy.ConvertJavaCopyPasteProcessor
|
||||||
import org.jetbrains.kotlin.idea.perf.Stats.Companion.WARM_UP
|
import org.jetbrains.kotlin.idea.perf.Stats.Companion.WARM_UP
|
||||||
import org.jetbrains.kotlin.idea.testFramework.commitAllDocuments
|
import org.jetbrains.kotlin.idea.testFramework.commitAllDocuments
|
||||||
import org.jetbrains.kotlin.j2k.J2kConverterExtension
|
|
||||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -38,7 +38,7 @@ abstract class AbstractPerformanceJavaToKotlinCopyPasteConversionTest(private va
|
|||||||
override fun setUp() {
|
override fun setUp() {
|
||||||
super.setUp()
|
super.setUp()
|
||||||
|
|
||||||
J2kConverterExtension.isNewJ2k = newJ2K
|
ExperimentalFeatures.NewJ2k.isEnabled = newJ2K
|
||||||
val index = j2kIndex()
|
val index = j2kIndex()
|
||||||
|
|
||||||
if (!warmedUp[index]) {
|
if (!warmedUp[index]) {
|
||||||
|
|||||||
@@ -131,6 +131,16 @@
|
|||||||
description="Allow a trailing comma on call-site"
|
description="Allow a trailing comma on call-site"
|
||||||
defaultValue="false"
|
defaultValue="false"
|
||||||
restartRequired="false"/>
|
restartRequired="false"/>
|
||||||
|
|
||||||
|
<registryKey key="kotlin.experimental.new.j2k"
|
||||||
|
description="New Java to Kotlin Converter"
|
||||||
|
defaultValue="true"
|
||||||
|
restartRequired="false"/>
|
||||||
|
<registryKey key="kotlin.experimental.project.wizard"
|
||||||
|
description="New Experimental Project Wizard"
|
||||||
|
defaultValue="false"
|
||||||
|
restartRequired="false"/>
|
||||||
|
|
||||||
<fileEditorProvider implementation="org.jetbrains.kotlin.idea.scratch.ui.KtScratchFileEditorProvider"/>
|
<fileEditorProvider implementation="org.jetbrains.kotlin.idea.scratch.ui.KtScratchFileEditorProvider"/>
|
||||||
|
|
||||||
<moduleBuilder builderClass="org.jetbrains.kotlin.tools.projectWizard.wizard.NewProjectWizardModuleBuilder"/>
|
<moduleBuilder builderClass="org.jetbrains.kotlin.tools.projectWizard.wizard.NewProjectWizardModuleBuilder"/>
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ import com.intellij.psi.PsiJavaFile
|
|||||||
import com.intellij.psi.PsiManager
|
import com.intellij.psi.PsiManager
|
||||||
import com.intellij.psi.util.PsiTreeUtil
|
import com.intellij.psi.util.PsiTreeUtil
|
||||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||||
|
import org.jetbrains.kotlin.idea.configuration.ExperimentalFeatures
|
||||||
import org.jetbrains.kotlin.idea.core.util.toPsiFile
|
import org.jetbrains.kotlin.idea.core.util.toPsiFile
|
||||||
import org.jetbrains.kotlin.idea.formatter.commitAndUnblockDocument
|
import org.jetbrains.kotlin.idea.formatter.commitAndUnblockDocument
|
||||||
import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices
|
import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices
|
||||||
@@ -129,7 +130,7 @@ class JavaToKotlinAction : AnAction() {
|
|||||||
project,
|
project,
|
||||||
ConverterSettings.defaultSettings,
|
ConverterSettings.defaultSettings,
|
||||||
IdeaJavaToKotlinServices
|
IdeaJavaToKotlinServices
|
||||||
) else J2kConverterExtension.extension().createJavaToKotlinConverter(
|
) else J2kConverterExtension.extension(useNewJ2k = ExperimentalFeatures.NewJ2k.isEnabled).createJavaToKotlinConverter(
|
||||||
project,
|
project,
|
||||||
module,
|
module,
|
||||||
ConverterSettings.defaultSettings,
|
ConverterSettings.defaultSettings,
|
||||||
@@ -138,7 +139,7 @@ class JavaToKotlinAction : AnAction() {
|
|||||||
converterResult = converter.filesToKotlin(
|
converterResult = converter.filesToKotlin(
|
||||||
javaFiles,
|
javaFiles,
|
||||||
if (forceUsingOldJ2k) J2kPostProcessor(formatCode = true)
|
if (forceUsingOldJ2k) J2kPostProcessor(formatCode = true)
|
||||||
else J2kConverterExtension.extension().createPostProcessor(formatCode = true),
|
else J2kConverterExtension.extension(useNewJ2k = ExperimentalFeatures.NewJ2k.isEnabled).createPostProcessor(formatCode = true),
|
||||||
progress = ProgressManager.getInstance().progressIndicator!!
|
progress = ProgressManager.getInstance().progressIndicator!!
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -153,7 +154,7 @@ class JavaToKotlinAction : AnAction() {
|
|||||||
|
|
||||||
logJ2kConversionStatistics(
|
logJ2kConversionStatistics(
|
||||||
ConversionType.FILES,
|
ConversionType.FILES,
|
||||||
J2kConverterExtension.isNewJ2k,
|
ExperimentalFeatures.NewJ2k.isEnabled,
|
||||||
conversionTime,
|
conversionTime,
|
||||||
linesCount,
|
linesCount,
|
||||||
javaFiles.size
|
javaFiles.size
|
||||||
@@ -232,7 +233,7 @@ class JavaToKotlinAction : AnAction() {
|
|||||||
.showInCenterOf(statusBar.component)
|
.showInCenterOf(statusBar.component)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!J2kConverterExtension.extension().doCheckBeforeConversion(project, module)) return
|
if (!J2kConverterExtension.extension(useNewJ2k = ExperimentalFeatures.NewJ2k.isEnabled).doCheckBeforeConversion(project, module)) return
|
||||||
|
|
||||||
val firstSyntaxError = javaFiles.asSequence().map { PsiTreeUtil.findChildOfType(it, PsiErrorElement::class.java) }.firstOrNull()
|
val firstSyntaxError = javaFiles.asSequence().map { PsiTreeUtil.findChildOfType(it, PsiErrorElement::class.java) }.firstOrNull()
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,100 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.configuration
|
||||||
|
|
||||||
|
import com.intellij.openapi.util.registry.Registry
|
||||||
|
import com.intellij.ui.components.JBCheckBox
|
||||||
|
import org.jdesktop.swingx.VerticalLayout
|
||||||
|
import org.jetbrains.kotlin.config.KotlinCompilerVersion
|
||||||
|
import org.jetbrains.kotlin.idea.PlatformVersion
|
||||||
|
import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService
|
||||||
|
import org.jetbrains.kotlin.idea.util.isDev
|
||||||
|
import org.jetbrains.kotlin.idea.util.isEap
|
||||||
|
import org.jetbrains.kotlin.idea.util.isSnapshot
|
||||||
|
import javax.swing.JCheckBox
|
||||||
|
import javax.swing.JPanel
|
||||||
|
|
||||||
|
object ExperimentalFeatures {
|
||||||
|
val NewJ2k = ExperimentalFeature(
|
||||||
|
title = "New Java to Kotlin Converter",
|
||||||
|
registryKey = "kotlin.experimental.new.j2k",
|
||||||
|
enabledByDefault = true
|
||||||
|
)
|
||||||
|
|
||||||
|
val NewWizard = ExperimentalFeature(
|
||||||
|
title = "New Experimental Project Wizard",
|
||||||
|
registryKey = "kotlin.experimental.project.wizard",
|
||||||
|
enabledByDefault = false,
|
||||||
|
shouldBeShown = {
|
||||||
|
val platformVersion = PlatformVersion.getCurrent() ?: return@ExperimentalFeature true
|
||||||
|
platformVersion.platform != PlatformVersion.Platform.ANDROID_STUDIO
|
||||||
|
},
|
||||||
|
onFeatureStatusChanged = { enabled ->
|
||||||
|
WizardStatsService.logWizardStatusChanged(isEnabled = enabled)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
val allFeatures: List<ExperimentalFeature> = listOf(
|
||||||
|
NewJ2k,
|
||||||
|
NewWizard
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
class ExperimentalFeature(
|
||||||
|
val title: String,
|
||||||
|
private val registryKey: String,
|
||||||
|
private val enabledByDefault: Boolean,
|
||||||
|
val shouldBeShown: () -> Boolean = { true },
|
||||||
|
val onFeatureStatusChanged: (enabled: Boolean) -> Unit = {}
|
||||||
|
) {
|
||||||
|
var isEnabled
|
||||||
|
get() = Registry.`is`(registryKey, enabledByDefault)
|
||||||
|
set(value) {
|
||||||
|
Registry.get(registryKey).setValue(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class ExperimentalFeaturesPanel : JPanel(VerticalLayout(5)) {
|
||||||
|
private val featuresWithCheckboxes = ExperimentalFeatures.allFeatures.map { feature ->
|
||||||
|
FeatureWithCheckbox(
|
||||||
|
feature,
|
||||||
|
JBCheckBox(feature.title, feature.isEnabled)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
init {
|
||||||
|
featuresWithCheckboxes.forEach { (feature, checkBox) ->
|
||||||
|
if (feature.shouldBeShown()) {
|
||||||
|
add(checkBox)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private data class FeatureWithCheckbox(
|
||||||
|
val feature: ExperimentalFeature,
|
||||||
|
val checkbox: JCheckBox
|
||||||
|
)
|
||||||
|
|
||||||
|
fun isModified() = featuresWithCheckboxes.any { (feature, checkBox) ->
|
||||||
|
feature.isEnabled != checkBox.isSelected
|
||||||
|
}
|
||||||
|
|
||||||
|
fun applySelectedChanges() {
|
||||||
|
featuresWithCheckboxes.forEach { (feature, checkBox) ->
|
||||||
|
if (feature.isEnabled != checkBox.isSelected) {
|
||||||
|
feature.isEnabled = checkBox.isSelected
|
||||||
|
feature.onFeatureStatusChanged(checkBox.isSelected)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
fun shouldBeShown(): Boolean {
|
||||||
|
val version = KotlinCompilerVersion.VERSION
|
||||||
|
return isEap(version) || isDev(version) || isSnapshot(version)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -13,8 +13,6 @@ import org.jetbrains.kotlin.idea.KotlinPluginUpdater
|
|||||||
import org.jetbrains.kotlin.idea.KotlinPluginUtil
|
import org.jetbrains.kotlin.idea.KotlinPluginUtil
|
||||||
import org.jetbrains.kotlin.idea.PluginUpdateStatus
|
import org.jetbrains.kotlin.idea.PluginUpdateStatus
|
||||||
import org.jetbrains.kotlin.idea.configuration.ui.KotlinLanguageConfigurationForm
|
import org.jetbrains.kotlin.idea.configuration.ui.KotlinLanguageConfigurationForm
|
||||||
import org.jetbrains.kotlin.idea.projectWizard.NewProjectWizardService
|
|
||||||
import org.jetbrains.kotlin.j2k.J2kConverterExtension
|
|
||||||
import javax.swing.JComponent
|
import javax.swing.JComponent
|
||||||
|
|
||||||
class KotlinLanguageConfiguration : SearchableConfigurable, Configurable.NoScroll {
|
class KotlinLanguageConfiguration : SearchableConfigurable, Configurable.NoScroll {
|
||||||
@@ -65,14 +63,12 @@ class KotlinLanguageConfiguration : SearchableConfigurable, Configurable.NoScrol
|
|||||||
override fun getDisplayName(): String = "Kotlin"
|
override fun getDisplayName(): String = "Kotlin"
|
||||||
|
|
||||||
override fun isModified() =
|
override fun isModified() =
|
||||||
form.useNewJ2kCheckBox.isSelected != J2kConverterExtension.isNewJ2k
|
form.experimentalFeaturesPanel.isModified()
|
||||||
|| form.useNewProjectWizardCheckBox.isSelected != NewProjectWizardService.isEnabled
|
|
||||||
|
|
||||||
override fun apply() {
|
override fun apply() {
|
||||||
// Selected channel is now saved automatically
|
// Selected channel is now saved automatically
|
||||||
|
|
||||||
J2kConverterExtension.isNewJ2k = form.useNewJ2kCheckBox.isSelected
|
form.experimentalFeaturesPanel.applySelectedChanges()
|
||||||
NewProjectWizardService.isEnabled = form.useNewProjectWizardCheckBox.isSelected
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setInstalledVersion(installedVersion: String?, installingStatus: String?) {
|
private fun setInstalledVersion(installedVersion: String?, installingStatus: String?) {
|
||||||
@@ -81,8 +77,6 @@ class KotlinLanguageConfiguration : SearchableConfigurable, Configurable.NoScrol
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun createComponent(): JComponent? {
|
override fun createComponent(): JComponent? {
|
||||||
form.useNewJ2kCheckBox.isSelected = J2kConverterExtension.isNewJ2k
|
|
||||||
form.useNewProjectWizardCheckBox.isSelected = NewProjectWizardService.isEnabled
|
|
||||||
form.updateCheckProgressIcon.suspend()
|
form.updateCheckProgressIcon.suspend()
|
||||||
form.updateCheckProgressIcon.setPaintPassiveIcon(false)
|
form.updateCheckProgressIcon.setPaintPassiveIcon(false)
|
||||||
|
|
||||||
|
|||||||
+7
-12
@@ -150,7 +150,7 @@
|
|||||||
</component>
|
</component>
|
||||||
</children>
|
</children>
|
||||||
</grid>
|
</grid>
|
||||||
<grid id="15a75" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
<grid id="15a75" binding="experimentalFeaturesPanelContainer" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||||
<margin top="0" left="0" bottom="0" right="0"/>
|
<margin top="0" left="0" bottom="0" right="0"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="6" column="0" row-span="1" col-span="2" vsize-policy="3" hsize-policy="3" anchor="1" fill="1" indent="0" use-parent-layout="false"/>
|
<grid row="6" column="0" row-span="1" col-span="2" vsize-policy="3" hsize-policy="3" anchor="1" fill="1" indent="0" use-parent-layout="false"/>
|
||||||
@@ -161,22 +161,17 @@
|
|||||||
</clientProperties>
|
</clientProperties>
|
||||||
<border type="etched" title="Experimental Features"/>
|
<border type="etched" title="Experimental Features"/>
|
||||||
<children>
|
<children>
|
||||||
<component id="d2573" class="javax.swing.JCheckBox" binding="useNewJ2kCheckBox" default-binding="true">
|
<component id="31057" class="org.jetbrains.kotlin.idea.configuration.ExperimentalFeaturesPanel" binding="experimentalFeaturesPanel">
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="1" use-parent-layout="false"/>
|
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<properties>
|
<properties/>
|
||||||
<text value="Use New Java to Kotlin Converter"/>
|
|
||||||
</properties>
|
|
||||||
</component>
|
</component>
|
||||||
<component id="8a05f" class="javax.swing.JCheckBox" binding="useNewProjectWizardCheckBox">
|
<hspacer id="4e58d">
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="1" use-parent-layout="false"/>
|
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<properties>
|
</hspacer>
|
||||||
<text value="Use New Project Wizard"/>
|
|
||||||
</properties>
|
|
||||||
</component>
|
|
||||||
</children>
|
</children>
|
||||||
</grid>
|
</grid>
|
||||||
<vspacer id="73440">
|
<vspacer id="73440">
|
||||||
|
|||||||
+4
-5
@@ -10,6 +10,7 @@ import com.intellij.openapi.util.registry.Registry;
|
|||||||
import com.intellij.util.ui.AsyncProcessIcon;
|
import com.intellij.util.ui.AsyncProcessIcon;
|
||||||
import org.jetbrains.kotlin.idea.KotlinPluginUtil;
|
import org.jetbrains.kotlin.idea.KotlinPluginUtil;
|
||||||
import org.jetbrains.kotlin.idea.PlatformVersion;
|
import org.jetbrains.kotlin.idea.PlatformVersion;
|
||||||
|
import org.jetbrains.kotlin.idea.configuration.ExperimentalFeaturesPanel;
|
||||||
import org.jetbrains.kotlin.idea.util.VersioningKt;
|
import org.jetbrains.kotlin.idea.util.VersioningKt;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
@@ -28,14 +29,12 @@ public class KotlinLanguageConfigurationForm {
|
|||||||
private JTextPane currentVersion;
|
private JTextPane currentVersion;
|
||||||
private JPanel bundledCompilerVersionPanel;
|
private JPanel bundledCompilerVersionPanel;
|
||||||
private JTextPane compilerVersion;
|
private JTextPane compilerVersion;
|
||||||
public JCheckBox useNewJ2kCheckBox;
|
public ExperimentalFeaturesPanel experimentalFeaturesPanel;
|
||||||
public JCheckBox useNewProjectWizardCheckBox;
|
private JPanel experimentalFeaturesPanelContainer;
|
||||||
|
|
||||||
public KotlinLanguageConfigurationForm() {
|
public KotlinLanguageConfigurationForm() {
|
||||||
showVerifierDisabledStatus();
|
showVerifierDisabledStatus();
|
||||||
|
experimentalFeaturesPanelContainer.setVisible(ExperimentalFeaturesPanel.Companion.shouldBeShown());
|
||||||
useNewProjectWizardCheckBox.setVisible(!isAndroidStudio());
|
|
||||||
|
|
||||||
String pluginVersion = KotlinPluginUtil.getPluginVersion();
|
String pluginVersion = KotlinPluginUtil.getPluginVersion();
|
||||||
|
|
||||||
if (KotlinPluginUtil.isPatched()) {
|
if (KotlinPluginUtil.isPatched()) {
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import org.jetbrains.kotlin.idea.actions.JavaToKotlinAction
|
|||||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference
|
import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference
|
||||||
import org.jetbrains.kotlin.idea.codeInsight.KotlinCopyPasteReferenceProcessor
|
import org.jetbrains.kotlin.idea.codeInsight.KotlinCopyPasteReferenceProcessor
|
||||||
import org.jetbrains.kotlin.idea.codeInsight.KotlinReferenceData
|
import org.jetbrains.kotlin.idea.codeInsight.KotlinReferenceData
|
||||||
|
import org.jetbrains.kotlin.idea.configuration.ExperimentalFeatures
|
||||||
import org.jetbrains.kotlin.idea.core.util.range
|
import org.jetbrains.kotlin.idea.core.util.range
|
||||||
import org.jetbrains.kotlin.idea.core.util.start
|
import org.jetbrains.kotlin.idea.core.util.start
|
||||||
import org.jetbrains.kotlin.idea.editor.KotlinEditorOptions
|
import org.jetbrains.kotlin.idea.editor.KotlinEditorOptions
|
||||||
@@ -190,7 +191,7 @@ class ConvertJavaCopyPasteProcessor : CopyPastePostProcessor<TextBlockTransferab
|
|||||||
}
|
}
|
||||||
logJ2kConversionStatistics(
|
logJ2kConversionStatistics(
|
||||||
ConversionType.PSI_EXPRESSION,
|
ConversionType.PSI_EXPRESSION,
|
||||||
J2kConverterExtension.isNewJ2k,
|
ExperimentalFeatures.NewJ2k.isEnabled,
|
||||||
conversionTime,
|
conversionTime,
|
||||||
dataForConversion.elementsAndTexts.linesCount(),
|
dataForConversion.elementsAndTexts.linesCount(),
|
||||||
filesCount = 1
|
filesCount = 1
|
||||||
@@ -347,7 +348,7 @@ fun ElementAndTextList.linesCount() =
|
|||||||
|
|
||||||
fun checkUseNewJ2k(targetFile: KtFile): Boolean {
|
fun checkUseNewJ2k(targetFile: KtFile): Boolean {
|
||||||
if (targetFile is KtCodeFragment) return false
|
if (targetFile is KtCodeFragment) return false
|
||||||
return J2kConverterExtension.isNewJ2k
|
return ExperimentalFeatures.NewJ2k.isEnabled
|
||||||
}
|
}
|
||||||
|
|
||||||
fun runPostProcessing(
|
fun runPostProcessing(
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.projectWizard
|
|
||||||
|
|
||||||
import com.intellij.ide.util.PropertiesComponent
|
|
||||||
|
|
||||||
object NewProjectWizardService {
|
|
||||||
private const val optionName = "kotlin.experimental.project.wizard"
|
|
||||||
private const val enabledByDefault = false
|
|
||||||
|
|
||||||
var isEnabled
|
|
||||||
get() = PropertiesComponent.getInstance().getBoolean(optionName, enabledByDefault)
|
|
||||||
set(value) {
|
|
||||||
if (value != isEnabled) {
|
|
||||||
WizardStatsService.logWizardStatusChanged(isEnabled = value)
|
|
||||||
}
|
|
||||||
PropertiesComponent.getInstance().setValue(optionName, value, enabledByDefault)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -5,15 +5,14 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.conversion.copy
|
package org.jetbrains.kotlin.idea.conversion.copy
|
||||||
|
|
||||||
import com.intellij.openapi.util.registry.Registry
|
|
||||||
import org.jetbrains.kotlin.idea.AbstractCopyPasteTest
|
import org.jetbrains.kotlin.idea.AbstractCopyPasteTest
|
||||||
import org.jetbrains.kotlin.j2k.J2kConverterExtension
|
import org.jetbrains.kotlin.idea.configuration.ExperimentalFeatures
|
||||||
|
|
||||||
abstract class AbstractJ2kCopyPasteTest : AbstractCopyPasteTest() {
|
abstract class AbstractJ2kCopyPasteTest : AbstractCopyPasteTest() {
|
||||||
protected open fun isNewJ2K(): Boolean = false
|
protected open fun isNewJ2K(): Boolean = false
|
||||||
|
|
||||||
override fun setUp() {
|
override fun setUp() {
|
||||||
super.setUp()
|
super.setUp()
|
||||||
J2kConverterExtension.isNewJ2k = isNewJ2K()
|
ExperimentalFeatures.NewJ2k.isEnabled = isNewJ2K()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -30,18 +30,9 @@ abstract class J2kConverterExtension : AbstractExtensionPointBean() {
|
|||||||
): WithProgressProcessor
|
): WithProgressProcessor
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val newJ2kByDefault = true
|
|
||||||
private const val optionName = "kotlin.use.new.j2k"
|
|
||||||
|
|
||||||
var isNewJ2k
|
|
||||||
get() = PropertiesComponent.getInstance().getBoolean(optionName, newJ2kByDefault)
|
|
||||||
set(value) {
|
|
||||||
PropertiesComponent.getInstance().setValue(optionName, value, newJ2kByDefault)
|
|
||||||
}
|
|
||||||
|
|
||||||
val EP_NAME = ExtensionPointName.create<J2kConverterExtension>("org.jetbrains.kotlin.j2kConverterExtension")
|
val EP_NAME = ExtensionPointName.create<J2kConverterExtension>("org.jetbrains.kotlin.j2kConverterExtension")
|
||||||
|
|
||||||
fun extension(useNewJ2k: Boolean = isNewJ2k): J2kConverterExtension =
|
fun extension(useNewJ2k: Boolean): J2kConverterExtension =
|
||||||
EP_NAME.extensions.first { it.isNewJ2k == useNewJ2k }
|
EP_NAME.extensions.first { it.isNewJ2k == useNewJ2k }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user