From 7fb66abff0ce8283a75e3d99a5b16f2330fb6519 Mon Sep 17 00:00:00 2001 From: Konstantin Hudyakov Date: Thu, 26 Feb 2026 09:27:40 +0200 Subject: [PATCH] [IFT] IJPL-221468 Adapt Onboarding Tour lesson for new SE (cherry picked from commit 21d2779c3c1f49196c922acf51924308abcef1c9) IJ-CR-193450 GitOrigin-RevId: 0e187a8f3a08573fa0b9001023b6898156d25a98 --- .../lesson/essential/CommonLogicForOnboardingTours.kt | 10 ++++------ .../src/training/dsl/LessonUtil.kt | 4 ++-- .../training/learn/lesson/general/GotoActionLesson.kt | 3 +-- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/java/java-features-trainer/src/com/intellij/java/ift/lesson/essential/CommonLogicForOnboardingTours.kt b/java/java-features-trainer/src/com/intellij/java/ift/lesson/essential/CommonLogicForOnboardingTours.kt index f31375ec6040..631320b61628 100644 --- a/java/java-features-trainer/src/com/intellij/java/ift/lesson/essential/CommonLogicForOnboardingTours.kt +++ b/java/java-features-trainer/src/com/intellij/java/ift/lesson/essential/CommonLogicForOnboardingTours.kt @@ -4,10 +4,8 @@ package com.intellij.java.ift.lesson.essential import com.intellij.execution.ui.UIExperiment import com.intellij.icons.AllIcons import com.intellij.ide.actions.searcheverywhere.SearchEverywhereManagerImpl -import com.intellij.ide.actions.searcheverywhere.SearchEverywhereUI import com.intellij.ide.ui.UISettings import com.intellij.ide.util.PropertiesComponent -import com.intellij.ide.util.gotoByName.GotoActionModel import com.intellij.idea.ActionsBundle import com.intellij.java.ift.JavaLessonsBundle import com.intellij.java.ift.JavaProjectUtil @@ -15,7 +13,6 @@ import com.intellij.openapi.actionSystem.ActionManager import com.intellij.openapi.actionSystem.impl.ActionButton import com.intellij.openapi.diagnostic.thisLogger import com.intellij.openapi.editor.LogicalPosition -import com.intellij.openapi.editor.actions.ToggleCaseAction import com.intellij.openapi.module.LanguageLevelUtil import com.intellij.openapi.module.ModuleManager import com.intellij.openapi.progress.runBackgroundableTask @@ -47,6 +44,7 @@ import training.dsl.LessonSample import training.dsl.LessonUtil import training.dsl.LessonUtil.adjustSearchEverywherePosition import training.dsl.LessonUtil.checkEditorModification +import training.dsl.LessonUtil.checkInsideSearchEverywhere import training.dsl.LessonUtil.restoreIfModified import training.dsl.LessonUtil.restoreIfModifiedOrMoved import training.dsl.LessonUtil.restorePopupPosition @@ -311,7 +309,7 @@ abstract class CommonLogicForOnboardingTours(id: String, @Nls lessonName: String text(JavaLessonsBundle.message("java.onboarding.invoke.search.everywhere.2", LessonUtil.rawKeyStroke(KeyEvent.VK_SHIFT), LessonUtil.actionName(it))) triggerAndBorderHighlight().component { ui: ExtendableTextField -> - UIUtil.getParentOfType(SearchEverywhereUI::class.java, ui) != null + checkInsideSearchEverywhere(ui) } restoreIfModifiedOrMoved() } @@ -329,9 +327,9 @@ abstract class CommonLogicForOnboardingTours(id: String, @Nls lessonName: String } text(JavaLessonsBundle.message("java.onboarding.search.everywhere.description", code("AVERAGE"), code(JavaLessonsBundle.message("toggle.case.part")))) + val actionText = ActionManager.getInstance().getAction("EditorToggleCase").toString() triggerAndBorderHighlight().listItem { item -> - val value = (item as? GotoActionModel.MatchedValue)?.value - (value as? GotoActionModel.ActionWrapper)?.action is ToggleCaseAction + item.isToStringContains(actionText) } restoreByUi() restoreIfModifiedOrMoved() diff --git a/plugins/ide-features-trainer/src/training/dsl/LessonUtil.kt b/plugins/ide-features-trainer/src/training/dsl/LessonUtil.kt index 387b7776c3ac..20f6283f06e6 100644 --- a/plugins/ide-features-trainer/src/training/dsl/LessonUtil.kt +++ b/plugins/ide-features-trainer/src/training/dsl/LessonUtil.kt @@ -257,8 +257,8 @@ object LessonUtil { * Have to use `QuickSearchComponent` for matching here, * because can't reference `SePopupContentPane` directly (it requires adding a dependency on SE frontend). */ - fun TaskRuntimeContext.checkInsideSearchEverywhere(): Boolean { - return UIUtil.getParentOfType(QuickSearchComponent::class.java, focusOwner) != null + fun TaskRuntimeContext.checkInsideSearchEverywhere(component: Component? = focusOwner): Boolean { + return UIUtil.getParentOfType(QuickSearchComponent::class.java, component) != null } fun isMainEditorComponent(component: Component?): Boolean { diff --git a/plugins/ide-features-trainer/src/training/learn/lesson/general/GotoActionLesson.kt b/plugins/ide-features-trainer/src/training/learn/lesson/general/GotoActionLesson.kt index cce13c3dad8d..d36ac58a1200 100644 --- a/plugins/ide-features-trainer/src/training/learn/lesson/general/GotoActionLesson.kt +++ b/plugins/ide-features-trainer/src/training/learn/lesson/general/GotoActionLesson.kt @@ -81,8 +81,7 @@ class GotoActionLesson(private val sample: LessonSample, task { val prefix = LearnBundle.message("show.line.number.prefix.to.show.first") text(LessonsBundle.message("goto.action.show.line.numbers.request", strong(prefix), strong(showLineNumbersName))) - val actionPresentation = ActionManager.getInstance().getAction("EditorGutterToggleGlobalLineNumbers").templatePresentation - val actionText = "${actionPresentation.text} (${actionPresentation.description})" + val actionText = ActionManager.getInstance().getAction("EditorGutterToggleGlobalLineNumbers").toString() triggerAndBorderHighlight().listItem { item -> item.isToStringContains(actionText) }