IFT-455 Show GotIt tooltips during editor steps in onboarding lessons

GitOrigin-RevId: 7d7b2c7a32f1e7c1c01b28cd8b6401a38e7b08ca
This commit is contained in:
Konstantin Hudyakov
2023-03-21 18:32:25 +02:00
committed by intellij-monorepo-bot
parent 56f3f86a1f
commit bc56e3da3b
5 changed files with 72 additions and 5 deletions

View File

@@ -41,15 +41,18 @@ java.onboarding.stop.debugging=Let''s stop debugging. Click the {0} icon.
java.onboarding.type.division=Once you have discovered the problem in the code, let''s fix it. Divide the resulting sum by the length of the values. \
The lesson script inserts {0} already.
java.onboarding.invoke.completion=Now let''s type a period {0} to show all available completion options.
java.onboarding.invoke.completion.balloon=Type a period {0} to show all available completion options
java.onboarding.choose.values.item=Now you can start typing {0} to reduce the completion list or select this item and press {1}.
java.onboarding.invoke.completion.tip=<strong>Tip</strong>: <ide/> shows completion options automatically as you type. \
Also, you can press {0} to show completion items in any place of the code.
java.onboarding.invoke.intention.for.warning.1=You have just fixed a bug, but you can make this code look even better. \
IDEA highlights and adds a yellow bulb to the code lines that can be improved.
java.onboarding.invoke.intention.for.warning.2=Press {0} to preview the warnings and apply a quick-fix.
java.onboarding.invoke.intention.for.warning.balloon=Press {0} to show available quick-fixes
java.onboarding.select.fix=Apply the first item: {0}. In this case, the <strong>for-each</strong> loop will make code easier to understand.
java.onboarding.invoke.intention.for.code=Intentions also save your time and make coding easier. Let''s use an intention to reformat string concatenation. \
Press {0} to show possible options.
java.onboarding.invoke.intention.for.code.balloon=Press {0} to show available intentions
java.onboarding.apply.intention=Select {0} and press {1}.
java.onboarding.invoke.search.everywhere.1=While working in <ide/>, you might want to search for files in your project, symbols, classes, or even IDE actions. In this lesson, let''s search for the {0} action to make the {1} string low-case.
java.onboarding.invoke.search.everywhere.2=Press {0} two times to open the {1} dialog.

View File

@@ -553,10 +553,17 @@ class JavaOnboardingTourLesson : KLesson("java.onboarding", JavaLessonsBundle.me
FocusManagerImpl.getInstance(project).requestFocusInProject(editor.contentComponent, project)
}
task {
val textToFind = "result / values"
triggerOnEditorText(textToFind, centerOffset = textToFind.length)
}
task {
text(JavaLessonsBundle.message("java.onboarding.type.division",
code(" / values")))
text(JavaLessonsBundle.message("java.onboarding.invoke.completion", code(".")))
text(JavaLessonsBundle.message("java.onboarding.invoke.completion.balloon", code(".")),
LearningBalloonConfig(Balloon.Position.below, width = 0))
triggerAndBorderHighlight().listItem { // no highlighting
it.isToStringContains("length")
}
@@ -576,9 +583,16 @@ class JavaOnboardingTourLesson : KLesson("java.onboarding", JavaLessonsBundle.me
private fun LessonContext.contextActions() {
val quickFixMessage = InspectionGadgetsBundle.message("foreach.replace.quickfix")
caret(sample.getPosition(3))
task {
triggerOnEditorText("for", highlightBorder = true)
}
task("ShowIntentionActions") {
text(JavaLessonsBundle.message("java.onboarding.invoke.intention.for.warning.1"))
text(JavaLessonsBundle.message("java.onboarding.invoke.intention.for.warning.2", action(it)))
text(JavaLessonsBundle.message("java.onboarding.invoke.intention.for.warning.balloon", action(it)),
LearningBalloonConfig(Balloon.Position.above, width = 0, cornerToPointerDistance = 80))
triggerAndBorderHighlight().listItem { item ->
item.isToStringContains(quickFixMessage)
}
@@ -604,8 +618,15 @@ class JavaOnboardingTourLesson : KLesson("java.onboarding", JavaLessonsBundle.me
}
caret("RAGE")
task {
triggerOnEditorText("AVERAGE")
}
task("ShowIntentionActions") {
text(JavaLessonsBundle.message("java.onboarding.invoke.intention.for.code", action(it)))
text(JavaLessonsBundle.message("java.onboarding.invoke.intention.for.code.balloon", action(it)),
LearningBalloonConfig(Balloon.Position.below, width = 0))
val intentionMessage = getIntentionMessage(project)
triggerAndBorderHighlight().listItem { item ->
item.isToStringContains(intentionMessage)