Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-scripting-dev] scripting via record/play


Ed Burnette 12/09/2004 12:33 PM
>> I propose reviving the effort to bring scripting (including macros,
>> keydefs, automation, etc.) to the Eclipse Platform. This is one of
>> the four "grand challenges" I've identified for Eclipse (see

http://www.eclipsepowered.org/archives/2004/11/30/eclipse-grand-challenges/
> Add pervasive Emacs-like scripting.

> This will enable a whole raft of new functionality and customization
> including keyboard macros, better shell integration, and automation
> of common tasks. By Emacs-like I don't mean elisp, I just mean that
> scripting Eclipse should be as approachable, quick, and powerful as
> scripting Emacs.

This would be great! and certainly is desirable as a goal. The
question is, how to get there?

One way to get scripting started might be through platform automation
and gesture record/play (and record/play would be useful in itself,
e.g. for

>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=57105
>> Macro Recorder like in Microsoft Office

>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=8519
>> Keystroke macros recording and playing capability

) Suppose one had

* human-{read, write, edit}able artifacts (call them "scripts") that
  one could "play" headlessly: i.e. invocation would cause events to
  occur in the UI just as if a user were gesturing

* a way to "record" gestures to scripts

* UI for record, play, and edit

Then one could could progress by

0 initially provide scripting via those scripts

1 make scripts for "foundational" or frequently-performed tasks
  available via a shell-like interface, e.g.

> https://bugs.eclipse.org/bugs/show_bug.cgi?id=44156
> [Commands] parameters: provide M-x-like command interface

  or better yet

http://dev.eclipse.org/mhonarc/lists/platform-core-dev/msg00638.html

2 enhancing through

* increasing abstraction and semantic sugar

* by performing actions headlessly (i.e. not by driving UI)

Is this doable? Currently, Abbot

http://sourceforge.net/projects/abbot

has a {plugin, CVS project}=abbot.swt that can find and drive
virtually all SWT widgets (all after

https://bugs.eclipse.org/bugs/show_bug.cgi?id=38436

is fixed, or if you use win32 and one of our patched swt.jars). The
most popular feature of Abbot (in this case, CVS project=abbot) has
long been its record/play/edit component, Costello. Costello has a
UI from which one can record gestures to XML. One can then edit the
XML as desired, and play it back (either programatically, e.g. from
Ant, or from the UI) via a transparent invocation of JUnit.

Unfortunately Costello currently only supports AWT/Swing: my group has
substantial code in CVS project=costello.swt, but it is not finished.
(We do this work purely on the side, as we want to increase our test
automation, but lately we have been very busy with Rational
Developer.)

If anyone is interested in working on this, please lemme know: I'll
provide all the guidance I can now, and I hope to have more time to
work on this in Jan 05 (or after RD v6.0.0.1 gets out the door,
whichever comes first). Note that Abbot (which includes Costello)
is available under CPL.

HTH, Tom Roche, IBM Rational Developer Model2 Tooling, abbot admin

Back to the top