mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
CPP-35553 Features Trainer: Add Run / Debug workflow lesson
* add run Configuration lesson GitOrigin-RevId: 3a28c5bb686c5d12db378b46d3c095783aa8e48f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
355c67a399
commit
f9690088ad
@@ -1,17 +1,13 @@
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.java.ift.lesson.run
|
||||
|
||||
import com.intellij.codeInsight.daemon.LineMarkerInfo
|
||||
import com.intellij.execution.ExecutionBundle
|
||||
import com.intellij.execution.application.ApplicationConfiguration
|
||||
import com.intellij.icons.AllIcons
|
||||
import com.intellij.java.ift.JavaLessonsBundle
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys
|
||||
import com.intellij.openapi.actionSystem.DataProvider
|
||||
import com.intellij.openapi.editor.ex.EditorGutterComponentEx
|
||||
import training.dsl.*
|
||||
import training.dsl.LessonUtil.highlightRunGutter
|
||||
import training.learn.lesson.general.run.CommonRunConfigurationLesson
|
||||
import java.awt.Rectangle
|
||||
|
||||
class JavaRunConfigurationLesson : CommonRunConfigurationLesson("java.run.configuration") {
|
||||
private val demoClassName = "Sample"
|
||||
@@ -32,7 +28,7 @@ class JavaRunConfigurationLesson : CommonRunConfigurationLesson("java.run.config
|
||||
override fun LessonContext.runTask() {
|
||||
task {
|
||||
caret(1, 1)
|
||||
highlightRunGutters()
|
||||
highlightRunGutter()
|
||||
}
|
||||
|
||||
task("RunClass") {
|
||||
@@ -60,21 +56,3 @@ class JavaRunConfigurationLesson : CommonRunConfigurationLesson("java.run.config
|
||||
|
||||
override val sampleFilePath: String = "src/${demoClassName}.java"
|
||||
}
|
||||
|
||||
internal fun TaskContext.highlightRunGutters(highlightInside: Boolean = false, usePulsation: Boolean = false) {
|
||||
triggerAndBorderHighlight {
|
||||
this.highlightInside = highlightInside
|
||||
this.usePulsation = usePulsation
|
||||
}.componentPart l@{ ui: EditorGutterComponentEx ->
|
||||
if (CommonDataKeys.EDITOR.getData(ui as DataProvider) != editor) return@l null
|
||||
val runGutterLines = (0 until editor.document.lineCount).mapNotNull { lineInd ->
|
||||
if (ui.getGutterRenderers(lineInd).any { (it as? LineMarkerInfo.LineMarkerGutterIconRenderer<*>)?.featureId == "run" })
|
||||
lineInd
|
||||
else null
|
||||
}
|
||||
if (runGutterLines.size < 2) return@l null
|
||||
val startLineY = editor.visualLineToY(runGutterLines.first())
|
||||
val endLineY = editor.visualLineToY(runGutterLines.last())
|
||||
Rectangle(25, startLineY, ui.width - 40, endLineY - startLineY + editor.lineHeight)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user