Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
E4/Scripting/summit08
Notes from Scripting breakout session at e4 summit, 23-May-2008
Scripting What?
- Workbench?
- Cheat sheets?
Use cases
- Quick macro editor?
- Short scripts to manipulate the IDE
- Scripting builds -- Implementing the workspace build
- Replace Core Expressions
- As a part of the language-independence story
- Simplify the process of writing new refactorings
- Lower the barrier to entry for plugin writers
- Avoiding class loading
- People get to work in their favorite language
- Throwaway programming
- Enabling Notes developers to script the environment
- Being able to bring in developers from other communities
- Checkout HEAD, run perf tests, Checkout HEAD-1, run perf tests, etc. until I found the perf regressions
Questions/comments
- Scripting =?= easy
- Eclipse Monkey runs today against the workspace state
- Scala is already a first class citizen in the JVM runtime. We should exploit that.
- We also shouldn't let this capability make it impossible to use Rhino, etc...
- Is scripting the way we call across language boundaries where the language isn't a native JVM lanaguage?
- Important to extend Eclipse community around scripting languages
- Why do I need scripts? Why not just inject real Java into the running workspace?
- How do we handle threading?
- What if the macro loops forever? Does it block the UI thread forever? What is the answer?
- Having a DOM model representing/aggregating all model roots is useful for Java, not just for scripting.
Macros
- Today we can write a plugin that catches commands as they go by
- But you can't see model state
- Workspace context might be an issue here
- Do we record macros by screen scraping SWT events? At the level of Commands?
- Use case: Command recording lets you find out what the commands are for writing cheat sheets
- Challenge: Screen scraping SWT events has a hard time knowing if background jobs completed.