mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-14 18:05:27 +07:00
IDEA-335458 Fix onboarding tips generation for Gradle projects
Generated Gradle project firstly opens the Gradle script and opens the Main file after that GitOrigin-RevId: 9da0aae7194e0a90fcf52e6d4676dd2571fc152b
This commit is contained in:
committed by
intellij-monorepo-bot
parent
c8af750f76
commit
3a436c20c6
@@ -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('.', '/')
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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?)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user