EScript - Scripting power for Eclipse




"The EScript project brings scripting power to the Eclipse IDE."



EScript is a project that integrates several script languages into Eclipse. Thus allowing users to extemd and use Eclipse (and RCP) functionality without writing their own plugins.

Script languages are hosted by script engines that reside in your application. You may run multiple engines in parallel, hosting different interpreters. Check out the implementation status of script engines.

The impatient may directly jump to the getting started section.



"Interact with you java environment dynamically."



All interpreters integrated in the framework run directly on the current JRE and provide means to interact with existing java classes. Therefore they have full access to the whole universe of eclipse plugins and their functionality. eg. you may access your workspace root programmatically and interact with it without providing and installing a dedicated plugin for that purpose.

A Shell View allows to immediately play with script engines:




"Provide script libraries for common tasks."



While accessing java from a script language is quite useful, its syntax might be more complicated than writing your own eclipse plugin directly. Therefore EScript provides means to encapsulate common functionality within modules, that may be loaded into the script runtime.

 
Modules are libraries providing script functions. While pure script libraries may be provided by the user directly, modules are backed by java classes. When loading such a class, wrapper functions are injected into the running script engine that provide an easy way to access the java code. Learn how to implement your own module.
 This way you may create your own scripting language and use the underlying engine purely for the program flow (loops, conditionals). Still you may inject native java code when your modules lack some functionality.

See a script example in action.


"Automate common tasks with macros."



While you may run your scripts interactively or from files, you may also choose to record macros and run them on a double click. Recording will capture all input directed to a dedicated script engine and store it permanently for later usage.




"Rapidly test java code without test rigs."



Have you ever debugged a plugin or class where you had to provide some test rig to access your code under test? Did you provide some toolbar buttons, startup extensions or similar things to simply access your class? (You know there should be unit tests for this...).

Or maybe you experience some strange behavior at runtime and want to investigate further?

Fire up a script shell and interact with your framework at runtime!





Did I catch your interest? Visit the getting started page to try it out for yourself.

EScript is hosted on GitHub and available under the terms of the Eclipse public license v1.0.

Remember that this project is rather young and while I intend to keep the API stable it may undergo some changes within the next months.

Want to join the project? Just drop me a note - every helping hand is welcome!

2 comments:

  1. whats the difference to http://groovy.codehaus.org/Groovy+Monkey? cause groovyMonkey was nice but its dead (though it still works with kepler)

    ReplyDelete
    Replies
    1. not sure as I did not give it a try. There are several scripting projects available out there. Some quite active, others dead. My personal interest is not to create a script language for eclipse. I just needed an extensible script language to script my custom plugins.

      Still it is so easy to script eclipse with that engine and I guess that might be interesting for some of us.

      Actually this project is looking for a comfortable home, maybe an incubator where it could hatch and evolve. Lets see...

      Delete