Jump to: navigation, search

Difference between revisions of "E4/Scripting"

< E4
(Documentation)
(24 intermediate revisions by 7 users not shown)
Line 1: Line 1:
== Abstract ==
+
= EASE - Eclipse Advanced Scripting Environment =
Scripting is about easy customization, and automation of common workflows.
+
  
While most editors, IDE's and office tools support some sort of scripting, there is no common approach at Eclipse. Some projects exist but it's very fragmented. This effort is about getting together and unifying the efforts, such that we all get to a better solution.
+
== What is EASE? ==
  
'''Success Statement:''' Provide an installable scripting framework from Eclipse.org which satisfies most needs, such that fragmented efforts are united again.
+
EASE integrates script language interpreters directly into your Eclipse application. It allows to automate common tasks, extend the IDE and to create dedicated dialects of a script language. You can write, execute, debug and integrate scripts in a single Eclipse instance.
  
=== Mailing List ===
+
== Features ==
  
Please direct all discussions around scripting to our archived mailing list. This page will collect our current understanding of things.
+
* JavaScript support
 +
* Jython support
 +
* UI integration
 +
* interactive / scripted mode
 +
* customizable DOMs
  
* [https://dev.eclipse.org/mailman/listinfo/eclipse-scripting-dev eclipse-scripting-dev]
+
== Try it ==
  
=== Meetings ===
+
'''Script developers:''' If you want to write scripts in either JavaScript or Jython without writing your own DOMs then the nightly update site is the first place to go:
 +
[http://download.eclipse.org/e4/updates/ease/eclipse-e4-ease-nightly/ http://download.eclipse.org/e4/updates/ease/eclipse-e4-ease-nightly/]
  
* [[E4/Scripting/bofecon12]] - interested parties, list of tools, and some hands-on thoughts
+
'''EASE developers / early adopters:''' Get the sources from our git repository, see [http://git.eclipse.org/c/e4/org.eclipse.e4.scripting.git/ http://git.eclipse.org/c/e4/org.eclipse.e4.scripting.git/]
* [[E4/Scripting/summit08]] - hilevel list of use-cases and thoughts
+
  
== Use Cases ==
+
== Documentation ==
  
List of use-cases for scripting, most relevant ones first
+
[[E4/Scripting/Tutorials|Tutorials]]
  
* '''UI Automation:''' add a button to perform common task, and deploy that in a team easily.
+
[[E4/Scripting/Metadata|Metadata]]
** open multiple Views
+
** simple integrations with external tools (like "External Tools..." but better integrated eg context menu)
+
** eg find-replace certain things in certain files
+
** eg force-load a couple Preferences
+
* '''Data Processing:''' Create a Project with certain properties, add some files / folders. Should work non-UI on commandline too.
+
* '''Editor Macros'''
+
* Recording of steps (as a help to find ID's and edit the script afterwards)
+
* Drive operation inside running Eclipse from the outside
+
  
=== Non-functional requirements ===
+
== Status / News ==
  
Most important requirements first.
+
== Get in touch ==
  
* '''View-Source''': make it easy to read existing scripts, and modify for my own purpose
+
The [https://dev.eclipse.org/mailman/listinfo/eclipse-scripting-dev eclipse-scripting-dev] mailing list is our primary communication channel.
* '''Easy Sharing''': Send a script around that I like and make it super easy to deploy
+
* '''Simple API for common things (DOM)''': Eclipse API is too complex for simple things. Make simple things simple, allow break-out to full Eclipse API for complex things.
+
* '''Extendable''' for new commands / DOM's
+
* Support '''recording of UI interaction''' in order to discover ID's and create a minimal basic frame for a script
+
* Can '''drive from the outside'''
+
* Works '''in non-UI mode'''
+
* Multiple languages supported (everyone has their favorite ... though if there is ONE common good solution that's maybe better than yet more fragmentation)
+
  
=== Success Criteria ===
+
== [[E4/Scripting/ESR_Requirements|Requirements]] ==
  
Looks like Eclipse Monkey supported the first four requirements (above) already, why didn't it succeed ? What can be done to make a new approach succeed ?
+
Focused requirements for the Eclipse Scripting revival project
  
== Existing Tools ==
+
== [[E4/Scripting/Use_cases|Use Cases]] ==
  
Known software that brings scripting to Eclipse, most interesting ones first. May want to create sub-sections per tool as we collect more information about each.
+
Very broad collection of scripting cases from the Community
  
* [https://github.com/xored/ecl Eclipse Command Language (ECL)]. Core is Open Source. Commercial [https://github.com/xored/q7.extensions.ecl extensions] used by Xored in Q7 for [http://www.xored.com/products/q7/q7-discover/eclipse-command-language/ test automation].
+
== Meetings ==
** Every command created manually as an EMF object, data passed as EMF. Pipes and functional programming.
+
* [[E4/Scripting/telcon20131002]] - Eclipse Scripting revival - Progress meeting
** Supports recording of UI interaction into the scripts in Q7.
+
* [[E4/Scripting/telcon20130925]] - Eclipse Scripting revival - Progress meeting
* [[Eclipse_Monkey_Overview|Eclipse Monkey (archived)]] - the original approach contributing menus through metadata in scripts residing in the workspace. Javascript only.
+
* [[E4/Scripting/telcon20130916]] - Eclipse Scripting revival - Progress meeting
** [http://groovy.codehaus.org/Groovy+Monkey Groovy Monkey] - The successor of Eclipse Monkey, supporting Groovy, Beanshell, Ruby or Python.
+
* [[E4/Scripting/telcon20130911]] - Eclipse Scripting revival - Technical meeting
** [http://www.topcased.org/ TOPCASED] supports scripting, from what it seems another Eclipse Monkey clone. ''Details TBD.''
+
* [[E4/Scripting/telcon20130904]] - Eclipse Scripting revival - Technical meeting
** [http://www.viplugin.com/scripteclipse/ ScriptEclipse] - Another sequel of Eclipse Monkey it seems. ''Details TBD''.
+
* [[E4/Scripting/telcon20130820]] - Eclipse Scripting revival - Kickoff
* [http://www.eclipsecon.org/2012/sessions/modular-and-extensible-osgi-shell OSGi Shell] in Equinox 3.8 Juno and newer
+
* [[E4/Scripting/bofecon12]] - interested parties, list of tools, and some hands-on thoughts
** Builtin commands for OSGi interactions and basic manipulation. Telnet and SSH connectivity. Contribute commands as OSGi Services.
+
* [[E4/Scripting/summit08]] - hilevel list of use-cases and thoughts
** Too hard to add new commands which are scripts themselves. No UI integration.
+
* [http://www.jython.org/ Jython] - Drive Java from Python. Used in commercial test tool [http://www.qfs.de/ QF-Test].
+
* [https://wiki.appcelerator.org/display/tis/Creating+a+new+Ruble Aptana: Rubles] - Ruby bundles to extend the IDE. Modeled after the [http://macromates.com/ TextMate] editor.
+
* [http://www.mulgasoft.com/ Emacs+] - Editor scripting through Emacs emulation.
+
* GroovyEclipse (Editor scripting)
+
* DLTK - Console for running scripts
+
* Javascript / Rhino engine
+
* Java 6 and later - scripting interface (being used in several approaches above)
+
* BeanScripting foundation for WebSphere
+
** Scala etc in plugins
+
** Mohammed's old extension point infrastructure
+
 
+
=== Automated Recording ===
+
* Not perfect, but may help finding ID's etc.
+
** SWTBot
+
** [http://eclipse.org/jubula/ Jubula] - does not record into scripts
+
** WindowTester
+
** Xored Q7 / Eclipse Command Language (ECL) - see above
+
 
+
== Next Steps ==
+
 
+
* Get in touch with more interested parties
+
* Collect very concrete use-cases
+
* Find candidate tools to look at in more detail
+
  
  
 
[[Category:E4|Scripting]]
 
[[Category:E4|Scripting]]

Revision as of 09:32, 13 November 2013

EASE - Eclipse Advanced Scripting Environment

What is EASE?

EASE integrates script language interpreters directly into your Eclipse application. It allows to automate common tasks, extend the IDE and to create dedicated dialects of a script language. You can write, execute, debug and integrate scripts in a single Eclipse instance.

Features

  • JavaScript support
  • Jython support
  • UI integration
  • interactive / scripted mode
  • customizable DOMs

Try it

Script developers: If you want to write scripts in either JavaScript or Jython without writing your own DOMs then the nightly update site is the first place to go: http://download.eclipse.org/e4/updates/ease/eclipse-e4-ease-nightly/

EASE developers / early adopters: Get the sources from our git repository, see http://git.eclipse.org/c/e4/org.eclipse.e4.scripting.git/

Documentation

Tutorials

Metadata

Status / News

Get in touch

The eclipse-scripting-dev mailing list is our primary communication channel.

Requirements

Focused requirements for the Eclipse Scripting revival project

Use Cases

Very broad collection of scripting cases from the Community

Meetings