blob: dc61957bb7070894b6ae4d8d5b62921fed4ab8d8 [file] [log] [blame]
EASE
====
First Blood
-----------
You need to get your hands dirty: execute a print command either in the Script Shell or by executing a file using a Run Configuration.
Goal:
scriptListener.script.contains("print(.*)")
-> consoleListener.getOutput().contains(".+")
Reward:
scripting: 10xp
Create and execute a script file
--------------------------------
Create a script file in your workspace and execute it via a launch configuration.
Goal:
resourceListener.creation().type(File).name(".*.js")
|| resourceListener.creation().type(File).name(".*.py")
-> launchListener.type(org.elcipse.ease.launch).launchType(debug)
Reward:
scripting: 30xp
requires:
First Blood
Create a project via Scripting
------------------------------
Scripting modules provide simple accessors for complex functionality. The Resources module allows to create workspace resources with simple commands.
Goal:
scriptListener.script.contains("createProject(.*)")
-> resourceListener.getCreatedElements().contains(IProject.class)
Reward:
scripting: 40xp
requires:
First Blood
Split scripts to multiple files
-------------------------------
Scripts may include other scripts. This allows to create script libraries and to segment your code for improved readability and maintainability.
Goal:
scriptListener.script.contains("include(.*)")
Reward:
scripting: 20xp
requires:
First Blood
Access Java classes
-------------------
Scripts may directly access Java classes and its methods. You may mix this code with your scripts code. To complete this task, create a new java.io.File object and query its exists() method.
Goal:
scriptListener.script.contains("java.io.File(.*)")
-> scriptListener.script.contains("exists()")
Reward:
scripting: 40xp
requires:
First Blood
Load external java classes
--------------------------
Scripts allow to access external java archives. Load a jar file of your choice into your script interpreter to be able to access its classes.
Goal:
scriptListener.script.contains("loadJar(.*)")
Reward:
scripting: 60xp
requires:
Access Java classes
Split scripts to multiple files
Debug a script
--------------
Run a debug session on a script. Use the step over functionality to execute line by line.
Goal:
launchListener.type(org.elcipse.ease.launch).launchType(debug)
-> commandListener.command("stepOver")
|| commandListener.command("stepResume")
|| commandListener.command("stepInto")
Reward:
Scripting: 40xp
Debugging: 40xp
requires:
Create and execute a script file
Create a workspace script
-------------------------
Create some scripts in your workspace and register their root folder as script location. Then execute one of your scripts from the script shell view.
Gaol:
scriptingService.addScript().name(".*")
-> scriptService.execution().location("scripts://.*")
Reward:
Scripting 100xp
Productivity: 40xp
requires:
Create and execute a script file
Bind a script to a toolbar
--------------------------
Registered scripts do support keywords, allowing to dynamically attach toolbar and menu items to views. To accomplish this task, attach a script of your choice to the Project Explorer view.
Goal:
scriptingService.keyword("toolbar").content("Project Explorer")
Reward:
Scripting: 100xp
Productivity: 80xp
requires:
Create a workspace script