[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[platform-ant-dev] External tools and Ant UI
|
Attached is a document (in HTML and plain text) I'm working on that explains
where I'd like to go with Eclipse's external tools and Ant integration. I'd
appreciate any and all feedback.
Thanks,
- Jared
October 28, 2002
This document explains our plan for the future of Eclipse's external tools support. It explains how external tools are configured and executed, how external tools are used as project builders, and what our plans are for integrating the external tools support with the debugger.
For the purposes of this document, Ant scripts are considered a kind of external tool.
Debug Integration
Launch configurations
External tools will be created, run, and edited via the launch configuration framework.
We may add support to the launch configuration framework to open the launch configuration on an individual config or an arbitrary group of configs. Alternatively, this support would be added in the external tools UI.
We may add the notion of "workspace variables" to the launch configuration framework. This code currently exists in the external tools framework, but we believe it would make sense in the launch config framework and thus plan to push it down. This feature should improve our shared launch configuration story.
Debug view
When an external tool is run, it will appear in the debug view. We may provide the ability to terminate running tools from this view.
If we add the ability to debug Ant scripts (probably not for 2.1), that would also be done in this view.
Console view
When an external tool is run, its output will appear in the debug console view. The output displayed in the console will follow the users selection in the debug view as it does today for Java applications.
The debugger console will add new APIs to allow clients to append data from arbitrary streams and to allow clients to provide their own document provider to color output from those streams. More detail on this proposal can be found in Darin Wright's post to the platform-ant-dev mailing list.
We also plan to support navigation from Ant output in the console to the relevant editor location.
Managing External Tools
Creating external tools
External tools are created via the launch configuration dialog. They will thus inherit all launch configuration features including duplication, launch history, and sharing.
Running external tools
External tools can be run via the launch configuration dialog or via the external tools history.
In addition to the external tool running support, there will be an action on XML files that allows the user to run the file as an Ant script ("Run Ant...").
If a launch config already exists for the script, it will be run in its currently configured state. If no config exists for the script, the launch configuration dialog will appear, primed to create a new Ant configuration on the selected file.
Additionally, we will provide an Ant view (based on Roscoe Rush's Ant View) that will allow the user to execute entire scripts or targets.
External tools history
The external tools history will appear on its own menu, as it does today.
If we add support for debugging external tools (Ant scripts in particular), tools launched in debug mode will appear in the debug history.
This separation is intended to keep the notions of using external tools and developing external tools distinct.
Editing Ant scripts
Editing build.xml files
We will provide a lightweight XML editor for build.xml Ant scripts (based on Alf Schiefelbein's Planty) that provides syntax highlighting and code assist.
We will provide an outline page associated with the editor for navigating to targets, tasks, etc.
Project Builders
Creating builders
External tool project builders are added to projects by either creating a new launch configuration or copying an existing configuration.
Editing builders
External tool project builders are edited with a modified version of the launch configuration dialog which shows the tabs for exactly one configuration.
Storing builders
External tool project builders are stored by translating a launch configuration into an ICommand.
Running builders
External tool project builders are run by translating ICommands into launch configurations and running them.
Title: External Tools UI
|
October 28, 2002 |
|
This document explains our plan for the future of Eclipse's
external tools support. It explains how external tools are configured
and executed, how external tools are used as project builders, and what
our plans are for integrating the external tools support with the
debugger.
For the purposes of this document, Ant scripts are considered a kind of
external tool. |
Debug Integration |
|
Launch configurations |
|
- External tools will be created, run, and edited via the launch configuration
framework.
- We may add support to the launch configuration framework to open the launch
configuration on an individual config or an arbitrary group of configs.
Alternatively, this support would be added in the external tools UI.
- We may add the notion of "workspace variables" to the launch configuration
framework. This code currently exists in the external tools framework, but
we believe it would make sense in the launch config framework and thus plan
to push it down. This feature should improve our shared launch configuration
story.
|
|
Debug view |
|
- When an external tool is run, it will appear in the debug view. We may
provide the ability to terminate running tools from this view.
- If we add the ability to debug Ant scripts (probably not for 2.1), that
would also be done in this view.
|
|
Console view |
|
- When an external tool is run, its output will appear in the debug console
view. The output displayed in the console will follow the users selection
in the debug view as it does today for Java applications.
- The debugger console will add new APIs to allow clients to append
data from arbitrary streams and to allow clients to provide their own
document provider to color output from those streams.
More detail on this proposal can be found in Darin Wright's
post
to the platform-ant-dev mailing list.
- We also plan to support navigation from Ant output in the console to the
relevant editor location.
|
Managing External Tools |
|
Creating external tools |
|
- External tools are created via the launch configuration dialog.
They will thus inherit all launch configuration features including
duplication, launch history, and sharing.
|
|
Running external tools |
|
- External tools can be run via the launch configuration dialog or
via the external tools history.
- In addition to the external tool running support, there will be
an action on XML files that allows the user to run the file as an
Ant script ("Run Ant...").
- If a launch config already exists for the script, it will be run
in its currently configured state. If no config exists for the
script, the launch configuration dialog will appear, primed to
create a new Ant configuration on the selected file.
- Additionally, we will provide an Ant view (based on Roscoe Rush's
Ant View)
that will allow the user to execute entire scripts or targets.
|
|
External tools history |
|
- The external tools history will appear on its own menu, as it does
today.
- If we add support for debugging external tools (Ant scripts in
particular), tools launched in debug mode will appear in the debug
history.
- This separation is intended to keep the notions of using external
tools and developing external tools distinct.
|
Editing Ant scripts |
|
Editing build.xml files |
|
- We will provide a lightweight XML editor for build.xml Ant scripts
(based on Alf Schiefelbein's
Planty)
that provides syntax highlighting and code assist.
- We will provide an outline page associated with the editor for navigating
to targets, tasks, etc.
|
Project Builders |
|
Creating builders |
|
- External tool project builders are added to projects by either
creating a new launch configuration or copying an existing
configuration.
|
|
Editing builders |
|
- External tool project builders are edited with a modified version
of the launch configuration dialog which shows the tabs for exactly
one configuration.
|
|
Storing builders |
|
- External tool project builders are stored by translating a launch
configuration into an ICommand.
|
|
Running builders |
|
- External tool project builders are run by translating ICommands
into launch configurations and running them.
|