Project Lead at MEKOS, Germany • Java Champion • Organization Team JUG Bremen, JCrete, JAlba 24.10.2018 EclipseCon Europe / EASEy Extensions (@rgransberger) By Karte: NordNordWest, Lizenz: Creative Commons by-sa-3.0 de, CC BY-SA 3.0 de, https://commons.wikimedia.org/w/index.php?curid=35392837
own Actions with little scripts, no Plugins needed • Launch Scripts from Menus, Toolbars, Shortcut or on Events • Supported languages: Python, Groovy, Javascript and more 24.10.2018 EclipseCon Europe / EASEy Extensions (@rgransberger) EASE Groovy …. RCP Application (Eclipse) Python Javascript
2015 (prior as eScript from 2013 on) • Won the Community Award for Most Innovative Project 2016 24.10.2018 EclipseCon Europe / EASEy Extensions (@rgransberger)
• For Python: http://eclipse.py4j.org/ • For Groovy: https://github.com/groovy/groovy-eclipse/wiki 24.10.2018 EclipseCon Europe / EASEy Extensions (@rgransberger)
• Directly launch/debug your scripts • Modules (write once, available for all supported languages) • Add your own libraries (JARs by loadJar) • Wrap/Instantiate existing Java classes • Write Unit Tests and Test Suites • Integrate directly in UI/Events with special Headers • Share Scripts on network share 24.10.2018 EclipseCon Europe / EASEy Extensions (@rgransberger)
view toolbar • menu Bind to view menu • popup Bind to popup menu • keyboard Binds to shortcut • image Add a dedicated toolbar/menu image • onStartup Run on startup • onShutdown Run on shutdown • onSave Run on editor save action • onResourceChange Run on res. change • onEventBus Run scripts when a specific event is posted on the OSGI message bus 24.10.2018 EclipseCon Europe / EASEy Extensions (@rgransberger) https://wiki.eclipse.org/EASE/Scripts
Python is easy to learn • Python and Javascript (Rhino engine) provide debugging support • Groovy is close to Java and typesafe • Groovy is slow to start • Maybe JAVA REPL will be available in the future? 24.10.2018 EclipseCon Europe / EASEy Extensions (@rgransberger)
Adding a E4 View to a plugin contributing to an application • Create plugin.xml if not exists • Create fragment.e4xmi if not exists and register in plugin.xml • Create a POJO View class with E4 methods • Create a Part in fragment.e4xmi registered with Stack in App and bound to the POJO • Removing the view again 24.10.2018 EclipseCon Europe / EASEy Extensions (@rgransberger)
if not exists • Create a Database contribution and register in plugin.xml • Create an Entity and register with Database • Create a RightProvider for managing user permissions • Create a View register in plugin.xml and with RightProvider • View contains an autogenerated Table from the Entity 24.10.2018 EclipseCon Europe / EASEy Extensions (@rgransberger)
Check if files start with the correct header, else add warning marker • Write changelog each time a file changes • Show all Mylyn task due for today on startup • Add a task to a local list and remind when exiting • Create a chart • Write Unit Tests in Javascript an Python • Use other libraries 24.10.2018 EclipseCon Europe / EASEy Extensions (@rgransberger)
Sooo many possibilities • If your products are based on RCP provide EASE to let users extend it 24.10.2018 EclipseCon Europe / EASEy Extensions (@rgransberger)
12:30 • EASE-ily make the most of Eclipse with Python (watch on youtube) • Elevate your IDE with scripts (watch on youtube) • EclipseCon Europe 2015 • I love scripting (watch on youtube) • EclipseCon Europe 2013 • Scripting, baby! (watch on youtube) 24.10.2018 EclipseCon Europe / EASEy Extensions (@rgransberger)