import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.LessonSample
-class CollapseLesson(module: Module, lang: String, private val sample: LessonSample) :
- KLesson("Collapse", module, lang) {
+class CollapseLesson(module: Module, lang: String, private val sample: LessonSample)
+ : KLesson("Collapse", "Collapse", module, lang) {
override val lessonContent: LessonContext.() -> Unit
get() = {
prepareSample(sample)
import training.learn.lesson.kimpl.LessonSample
abstract class CompletionWithTabLesson(module: Module, lang: String, private val proposal: String) :
- KLesson("Completion with tab", module, lang) {
+ KLesson("Completion with tab", "Completion with tab", module, lang) {
abstract val sample: LessonSample
import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.LessonSample
-class MoveLesson(module: Module, lang: String, private val sample: LessonSample) :
- KLesson("Move", module, lang) {
+class MoveLesson(module: Module, lang: String, private val sample: LessonSample)
+ : KLesson("Move", "Move", module, lang) {
override val lessonContent: LessonContext.() -> Unit
get() = {
prepareSample(sample)
import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.parseLessonSample
-class MultipleSelectionHtmlLesson(module: Module) : KLesson("Multiple selections", module, "HTML") {
+class MultipleSelectionHtmlLesson(module: Module)
+ : KLesson("Multiple selections", "Multiple selections", module, "HTML") {
private val sample = parseLessonSample("""<!doctype html>
<html lang="en">
<head>
import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.LessonSample
-class SingleLineCommentLesson(module: Module, lang: String, private val sample: LessonSample) :
- KLesson("Comment line", module, lang) {
+class SingleLineCommentLesson(module: Module, lang: String, private val sample: LessonSample)
+ : KLesson("Comment line", "Comment line", module, lang) {
override val lessonContent: LessonContext.() -> Unit
get() = {
import training.learn.lesson.kimpl.LessonSample
import training.learn.lesson.kimpl.LessonUtil.checkExpectedStateOfEditor
-abstract class SurroundAndUnwrapLesson(module: Module, lang: String) :
- KLesson("Surround and unwrap", module, lang) {
+abstract class SurroundAndUnwrapLesson(module: Module, lang: String)
+ : KLesson("Surround and unwrap", "Surround and unwrap", module, lang) {
protected abstract val sample: LessonSample
import training.learn.lesson.kimpl.LessonUtil.checkExpectedStateOfEditor
import javax.swing.JList
-abstract class BasicCompletionLessonBase(module: Module, lang: String) : KLesson("Basic completion", module, lang) {
+abstract class BasicCompletionLessonBase(module: Module, lang: String)
+ : KLesson("Basic completion", "Basic completion", module, lang) {
protected abstract val sample1: LessonSample
protected abstract val sample2: LessonSample
import training.learn.lesson.kimpl.KLesson
import training.learn.lesson.kimpl.LessonContext
-abstract class DeclarationAndUsagesLesson(module: Module, lang: String) : KLesson("Declaration and usages", module, lang) {
+abstract class DeclarationAndUsagesLesson(module: Module, lang: String)
+ : KLesson("Declaration and usages", "Declaration and usages", module, lang) {
abstract fun LessonContext.setInitialPosition()
abstract val typeOfEntity: String
abstract override val existedFile: String
import training.learn.lesson.kimpl.KLesson
import training.learn.lesson.kimpl.LessonContext
-abstract class FileStructureLesson(module: Module, lang: String) : KLesson("File structure", module, lang) {
+abstract class FileStructureLesson(module: Module, lang: String)
+ : KLesson("File structure", "File structure", module, lang) {
abstract override val existedFile: String
abstract val searchSubstring : String
abstract val firstWord : String
import training.learn.lesson.kimpl.LessonSample
import javax.swing.JDialog
-class ExtractMethodCocktailSortLesson(module: Module, lang: String, private val sample: LessonSample) : KLesson("Extract method", module, lang) {
+class ExtractMethodCocktailSortLesson(module: Module, lang: String, private val sample: LessonSample)
+ : KLesson("Extract method", "Extract method", module, lang) {
override val lessonContent: LessonContext.() -> Unit
get() = {
prepareSample(sample)
import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.LessonSample
-class ExtractVariableFromBubbleLesson(module: Module, lang: String, private val sample: LessonSample) : KLesson("Extract variable", module, lang) {
+class ExtractVariableFromBubbleLesson(module: Module, lang: String, private val sample: LessonSample)
+ : KLesson("Extract variable", "Extract variable", module, lang) {
override val lessonContent: LessonContext.() -> Unit
get() = {
prepareSample(sample)
import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.parseLessonSample
-class BasicCompletionLesson(module: Module) : KLesson("Basic completion", module, JavaLangSupport.lang) {
+class BasicCompletionLesson(module: Module) : KLesson("Basic completion", "Basic completion", module, JavaLangSupport.lang) {
val sample = parseLessonSample("""import java.lang.*;
import java.util.*;
import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.parseLessonSample
-class PostfixCompletionLesson(module: Module) : KLesson("Postfix completion", module, JavaLangSupport.lang) {
+class PostfixCompletionLesson(module: Module)
+ : KLesson("Postfix completion", "Postfix completion", module, JavaLangSupport.lang) {
val sample = parseLessonSample("""class PostfixCompletionDemo{
import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.parseLessonSample
-class SmartTypeCompletionLesson(module: Module) : KLesson("Smart type completion", module, JavaLangSupport.lang) {
+class SmartTypeCompletionLesson(module: Module)
+ : KLesson("Smart type completion", "Smart type completion", module, JavaLangSupport.lang) {
val sample = parseLessonSample("""import java.lang.String;
import java.util.HashSet;
import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.parseLessonSample
-class StatementCompletionLesson(module: Module) : KLesson("Statement completion", module, JavaLangSupport.lang) {
+class StatementCompletionLesson(module: Module)
+ : KLesson("Statement completion", "Statement completion", module, JavaLangSupport.lang) {
val sample = parseLessonSample("""class PrimeNumbers {
public static void main(String[] args) {
import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.parseLessonSample
-class BasicCompletionLesson(module: Module) : KLesson("The Nuts and Bolts of Code Completion", module, JavaScriptLangSupport.lang) {
+class BasicCompletionLesson(module: Module)
+ : KLesson("The Nuts and Bolts of Code Completion", "The Nuts and Bolts of Code Completion", module, JavaScriptLangSupport.lang) {
val sample = parseLessonSample("""
let favoriteAnimals = ['dog', 'cat', 'unicorn'];
import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.parseLessonSample
-class CodeEditingLesson(module: Module) : KLesson("Code Editing Tips and Tricks", module, "HTML") {
+class CodeEditingLesson(module: Module)
+ : KLesson("Code Editing Tips and Tricks", "Code Editing Tips and Tricks", module, "HTML") {
val sample = parseLessonSample("""
<!doctype html><html lang="en">
import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.parseLessonSample
-class CodeInspectionLesson(module: Module) : KLesson("The Power of Code Inspections", module, JavaScriptLangSupport.lang) {
+class CodeInspectionLesson(module: Module)
+ : KLesson("The Power of Code Inspections", "The Power of Code Inspections", module, JavaScriptLangSupport.lang) {
val sample = parseLessonSample("""
function listBookAuthors(books) {
import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.parseLessonSample
-class NavigationLesson(module: Module) : KLesson("Secrets of Efficient Navigation", module, JavaScriptLangSupport.lang) {
+class NavigationLesson(module: Module)
+ : KLesson("Secrets of Efficient Navigation", "Secrets of Efficient Navigation", module, JavaScriptLangSupport.lang) {
private val thisOwnerName = "$" + "{this.ownerName}"
private val thisName = "$" + "{this.name}"
import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.parseLessonSample
-class RefactoringLesson(module: Module) : KLesson("Refactorings in a Nutshell", module, JavaScriptLangSupport.lang) {
+class RefactoringLesson(module: Module)
+ : KLesson("Refactorings in a Nutshell", "Refactorings in a Nutshell", module, JavaScriptLangSupport.lang) {
val sample = parseLessonSample("""
function listBookAuthors(<caret>books) {
import training.learn.lesson.kimpl.parseLessonSample
import javax.swing.tree.DefaultMutableTreeNode
-class BeforeDebugging(module: Module) : KLesson("Before Debugging: Run/Debug Configurations", module, JavaScriptLangSupport.lang) {
+class BeforeDebugging(module: Module)
+ : KLesson("Before Debugging: Run/Debug Configurations", "Before Debugging: Run/Debug Configurations", module, JavaScriptLangSupport.lang) {
companion object {
val jsDebuggerSample = parseLessonSample("""
import training.learn.lesson.kimpl.KLesson
import training.learn.lesson.kimpl.LessonContext
-class DebuggingFirstPart(module: Module) : KLesson("Debugging Code. Part I", module, JavaScriptLangSupport.lang) {
-
+class DebuggingFirstPart(module: Module)
+ : KLesson("Debugging Code. Part I", "Debugging Code. Part I", module, JavaScriptLangSupport.lang) {
override val lessonContent: LessonContext.() -> Unit
get() {
import training.learn.lesson.kimpl.KLesson
import training.learn.lesson.kimpl.LessonContext
-class DebuggingSecondPart(module: Module) : KLesson("Debugging Code. Part II", module, JavaScriptLangSupport.lang) {
+class DebuggingSecondPart(module: Module)
+ : KLesson("Debugging Code. Part II", "Debugging Code. Part II", module, JavaScriptLangSupport.lang) {
override val lessonContent: LessonContext.() -> Unit
get() {
import javax.swing.SwingConstants
import javax.swing.tree.DefaultMutableTreeNode
-class Jest(module: Module) : KLesson("Fundamentals of Testing in WebStorm", module, JavaScriptLangSupport.lang){
+class Jest(module: Module)
+ : KLesson("Fundamentals of Testing in WebStorm", "Fundamentals of Testing in WebStorm", module, JavaScriptLangSupport.lang){
override val lessonContent: LessonContext.() -> Unit
get() {
return {
override var module: Module,
override val lang: String) : Lesson {
+ @Deprecated("Use full form with explicit ID: it is necessary for i18n")
constructor(name: String, module: Module, lang: String) : this(name, name, module, lang)
abstract val lessonContent: LessonContext.() -> Unit
private const val completionSuffix = ".ifnn"
-class PythonPostfixCompletionLesson(module: Module) : KLesson("Postfix completion", module, "Python") {
+class PythonPostfixCompletionLesson(module: Module)
+ : KLesson("Postfix completion", "Postfix completion", module, "Python") {
private val sample = parseLessonSample("""
movies_dict = {
'title': 'Aviator',
import training.learn.lesson.kimpl.LessonUtil.checkExpectedStateOfEditor
import training.learn.lesson.kimpl.parseLessonSample
-class PythonSmartCompletionLesson(module: Module) : KLesson("Smart completion", module, "Python") {
+class PythonSmartCompletionLesson(module: Module)
+ : KLesson("Smart completion", "Smart completion", module, "Python") {
private val sample = parseLessonSample("""
def f(x, file):
x.append(file)
import training.learn.lesson.kimpl.LessonUtil.checkExpectedStateOfEditor
import javax.swing.JList
-class PythonTabCompletionLesson(module: Module) : KLesson("Tab completion", module, "Python") {
+class PythonTabCompletionLesson(module: Module)
+ : KLesson("Tab completion", "Tab completion", module, "Python") {
private val template = parseLessonSample("""
class Calculator:
def __init__(self):
import java.awt.event.InputEvent
import java.awt.event.KeyEvent
-class PythonSearchEverywhereLesson(module: Module) : KLesson("Search everywhere", module, "Python") {
+class PythonSearchEverywhereLesson(module: Module)
+ : KLesson("Search everywhere", "Search everywhere", module, "Python") {
override val lessonContent: LessonContext.() -> Unit = {
caret(0)
import training.learn.lesson.kimpl.parseLessonSample
import javax.swing.JList
-class PythonRefactorMenuLesson(module: Module) : KLesson("Refactoring menu", module, "Python") {
+class PythonRefactorMenuLesson(module: Module)
+ : KLesson("Refactoring menu", "Refactoring menu", module, "Python") {
private val sample = parseLessonSample("""
# Need to think about better sample!
import random
import javax.swing.JTree
import javax.swing.tree.TreePath
-class PythonRenameLesson(module: Module) : KLesson("Rename", module, "Python") {
+class PythonRenameLesson(module: Module)
+ : KLesson("Rename", "Rename", module, "Python") {
private val template = """
class Championship:
def __init__(self):
import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.parseLessonSample
-class RubyHippieCompletionLesson(module: Module) : KLesson("Hippie Completion", module, "ruby") {
+class RubyHippieCompletionLesson(module: Module)
+ : KLesson("Hippie Completion", "Hippie Completion", module, "ruby") {
+
private val sample = parseLessonSample("""class SomeExampleClass
attr_reader :callbacks
import training.learn.lesson.kimpl.LessonUtil.checkExpectedStateOfEditor
import training.learn.lesson.kimpl.parseLessonSample
-class RubyPostfixCompletionLesson(module: Module) : KLesson("Postfix completion", module, "ruby") {
+class RubyPostfixCompletionLesson(module: Module)
+ : KLesson("Postfix completion", "Postfix completion", module, "ruby") {
+
private val sample = parseLessonSample("""class SomeExampleClass
# @param string_array [Array<String>]
def second_value(string_array)
import training.learn.lesson.kimpl.KLesson
import training.learn.lesson.kimpl.LessonContext
-class RubyClassSearchLesson(module: Module) : KLesson("Class Search", module, "ruby") {
+class RubyClassSearchLesson(module: Module)
+ : KLesson("Class Search", "Class Search", module, "ruby") {
override val lessonContent: LessonContext.() -> Unit
get() = {
caret(0)
import training.learn.lesson.kimpl.LessonContext
import training.learn.lesson.kimpl.parseLessonSample
-class RubyRefactorMenuLesson(module: Module) : KLesson("Refactoring menu", module, "ruby") {
+class RubyRefactorMenuLesson(module: Module)
+ : KLesson("Refactoring menu", "Refactoring menu", module, "ruby") {
+
private val sample = parseLessonSample("""
class Animal
def legs_number
import java.util.concurrent.TimeUnit
import java.util.regex.Pattern
-class RubyRenameLesson(module: Module) : KLesson("Rename", module, "ruby") {
+class RubyRenameLesson(module: Module)
+ : KLesson("Rename", "Rename", module, "ruby") {
+
private val template = """
class Championship
attr_accessor :<name>