diff --git a/java/idea-ui/src/com/intellij/ide/projectWizard/generators/AssetsJavaNewProjectWizardStep.kt b/java/idea-ui/src/com/intellij/ide/projectWizard/generators/AssetsJavaNewProjectWizardStep.kt index b655f07537c2..62df9766f7fd 100644 --- a/java/idea-ui/src/com/intellij/ide/projectWizard/generators/AssetsJavaNewProjectWizardStep.kt +++ b/java/idea-ui/src/com/intellij/ide/projectWizard/generators/AssetsJavaNewProjectWizardStep.kt @@ -15,7 +15,6 @@ import java.util.* @ApiStatus.Experimental abstract class AssetsJavaNewProjectWizardStep(parent: NewProjectWizardStep) : AssetsOnboardingTipsProjectWizardStep(parent) { - fun withJavaSampleCodeAsset(sourceRootPath: String, aPackage: String, generateOnboardingTips: Boolean) { val renderedOnboardingTips = shouldRenderOnboardingTips() val templateName = when { @@ -24,7 +23,7 @@ abstract class AssetsJavaNewProjectWizardStep(parent: NewProjectWizardStep) : As else -> "SampleCodeWithOnboardingTips.java" } - val sourcePath = createJavaSourcePath(sourceRootPath, aPackage, "Main.java") + val sourcePath = createJavaSourcePath(sourceRootPath, aPackage, generatedFileName) addTemplateAsset(sourcePath, templateName, buildMap { put("PACKAGE_NAME", aPackage) if (generateOnboardingTips) { @@ -67,12 +66,13 @@ abstract class AssetsJavaNewProjectWizardStep(parent: NewProjectWizardStep) : As fun prepareTipsInEditor(project: Project) { } fun prepareOnboardingTips(project: Project) { - prepareOnboardingTips(project, "SampleCode") { charSequence -> + prepareOnboardingTips(project, "SampleCode", generatedFileName) { charSequence -> charSequence.indexOf("System.out.println").takeIf { it >= 0 } } } companion object { + private const val generatedFileName = "Main.java" fun createJavaSourcePath(sourceRootPath: String, aPackage: String, fileName: String): String { val packageDirectory = aPackage.replace('.', '/') diff --git a/java/idea-ui/src/com/intellij/ide/projectWizard/generators/AssetsOnboardingTipsProjectWizardStep.kt b/java/idea-ui/src/com/intellij/ide/projectWizard/generators/AssetsOnboardingTipsProjectWizardStep.kt index 35107e8e4013..fbf477a00e21 100644 --- a/java/idea-ui/src/com/intellij/ide/projectWizard/generators/AssetsOnboardingTipsProjectWizardStep.kt +++ b/java/idea-ui/src/com/intellij/ide/projectWizard/generators/AssetsOnboardingTipsProjectWizardStep.kt @@ -17,13 +17,13 @@ abstract class AssetsOnboardingTipsProjectWizardStep(parent: NewProjectWizardSte protected fun shouldRenderOnboardingTips(): Boolean = Registry.`is`("doc.onboarding.tips.render") - protected fun prepareOnboardingTips(project: Project, templateWithoutTips: String, breakpointSelector: (CharSequence) -> Int?) { + protected fun prepareOnboardingTips(project: Project, templateWithoutTips: String, fileName: String, breakpointSelector: (CharSequence) -> Int?) { val templateManager = FileTemplateManager.getDefaultInstance() val properties = getTemplateProperties() val defaultProperties = templateManager.defaultProperties val template = templateManager.getInternalTemplate(templateWithoutTips) val simpleSampleText = template.getText(defaultProperties + properties) - val onboardingInfo = OnboardingTipsInstallationInfo(simpleSampleText, breakpointSelector) + val onboardingInfo = OnboardingTipsInstallationInfo(simpleSampleText, fileName, breakpointSelector) for (extension in NewProjectOnboardingTips.EP_NAME.extensions) { extension.installTips(project, onboardingInfo) } diff --git a/platform/platform-impl/src/com/intellij/ide/wizard/OnboardingTipsInstallationInfo.kt b/platform/platform-impl/src/com/intellij/ide/wizard/OnboardingTipsInstallationInfo.kt index 11c963f442d3..217c3ae278e1 100644 --- a/platform/platform-impl/src/com/intellij/ide/wizard/OnboardingTipsInstallationInfo.kt +++ b/platform/platform-impl/src/com/intellij/ide/wizard/OnboardingTipsInstallationInfo.kt @@ -4,4 +4,4 @@ package com.intellij.ide.wizard import org.jetbrains.annotations.ApiStatus @ApiStatus.Internal -data class OnboardingTipsInstallationInfo(val simpleSampleText: String, val offsetForBreakpoint: (CharSequence) -> Int?) +data class OnboardingTipsInstallationInfo(val simpleSampleText: String, val fileName: String, val offsetForBreakpoint: (CharSequence) -> Int?) diff --git a/plugins/ide-features-trainer/src/training/onboarding/NewProjectOnboardingTipsImpl.kt b/plugins/ide-features-trainer/src/training/onboarding/NewProjectOnboardingTipsImpl.kt index c4a08a79d475..f8a5bdc2f777 100644 --- a/plugins/ide-features-trainer/src/training/onboarding/NewProjectOnboardingTipsImpl.kt +++ b/plugins/ide-features-trainer/src/training/onboarding/NewProjectOnboardingTipsImpl.kt @@ -127,6 +127,7 @@ private class InstallOnboardingTipsEditorListener : EditorFactoryListener { val info = onboardingTipsInstallationInfoKey.get(project) if (info != null) { + if (editor.virtualFile?.name != info.fileName) return project.putUserData(onboardingTipsInstallationInfoKey, null) installTipsInFirstEditor(editor, project, info) } else { diff --git a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/wizard/AssetsKotlinNewProjectWizardStep.kt b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/wizard/AssetsKotlinNewProjectWizardStep.kt index ec5c0bd0b3b3..528734da14c9 100644 --- a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/wizard/AssetsKotlinNewProjectWizardStep.kt +++ b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/wizard/AssetsKotlinNewProjectWizardStep.kt @@ -9,6 +9,8 @@ import com.intellij.openapi.keymap.KeymapTextContext import com.intellij.openapi.project.Project import org.jetbrains.kotlin.tools.projectWizard.KotlinNewProjectWizardBundle +private const val generatedFileName = "Main.kt" + abstract class AssetsKotlinNewProjectWizardStep(parent: NewProjectWizardStep) : AssetsOnboardingTipsProjectWizardStep(parent) { fun withKotlinSampleCode(sourceRootPath: String, packageName: String?, generateOnboardingTips: Boolean) { val renderedOnboardingTips = shouldRenderOnboardingTips() @@ -18,7 +20,7 @@ abstract class AssetsKotlinNewProjectWizardStep(parent: NewProjectWizardStep) : else -> "KotlinSampleCodeWithOnboardingTips" } - val sourcePath = "$sourceRootPath/Main.kt" + val sourcePath = "$sourceRootPath/$generatedFileName" addTemplateAsset(sourcePath, templateName, buildMap { packageName?.let { put("PACKAGE_NAME", it) @@ -60,7 +62,7 @@ abstract class AssetsKotlinNewProjectWizardStep(parent: NewProjectWizardStep) : } fun prepareOnboardingTips(project: Project) { - prepareOnboardingTips(project, "KotlinSampleCode") { charsSequence -> + prepareOnboardingTips(project, "KotlinSampleCode", generatedFileName) { charsSequence -> charsSequence.indexOf("println(\"i").takeIf { it >= 0 } } }