Community
Participate
Working Groups
When creating an external tool, it typically takes me several iterations to get it right. For each revision of the tool, I need to go to the toolbar, hit the external tools icon, avoid the existing tool names to select Configure, select my tool from the list, and hit Edit, before I can change the arguments that I send to my tool. This is too many steps, especially if I have my hands on the keyboard. Consider making External Tool configuration into a view. That way I could have a simple way to refine the tool that I am working on. I should be able to select my tool from a list of all tools, and hit Alt+Enter (Properties) to edit the arguments that get sent to the tool. It should also be easy to run an External tool from this view. Some thought should be given as to how this view would interact with External Tool builders. I know that there is a feature request for making it easier to define the same external tool builder on several projects. If this gets implemented, the global external tool builders should also be available through this view.
We have some unreleased changes from Chris which includes a Run button on the config dialog. I agree that a view might be better for people frequently running different scripts though.
What is the way that we expect External Tools to be used? When I'm creating shell scripts on Linux, I have to set the appropriate executable bits before External Tools can run them. AFAIK, this cannot be done through the Eclipse UI. It is possible to create a tool called chmod, (file: /bin/chmod args: a+x ${resource_loc}) that will do this for me on the selected resource. Here I am using External Tools to define a platform-specific shortcut for something outside of Eclipse. The natural generalization of this usage has many small tools that the developer uses together to speed up repetative tasks. The developer needs to be able to invoke these tools quickly without losing context. For actually running the tool, the menu is pretty good for running one-at-a-time, but not necessarily for running one tool 5 times in a row, or 5 different tools in sequence. Then again, if External Tools are meant to correspond to large Ant scripts in preperation for a build, running a tool several times in a row is not really necessary.
Adam, you've raised some good points. The original intent was to allow users to run ant build files and other tools outside of Eclipse. I guess in a way we were thinking "larger" tools running once in a while by the user. Yet, your point for small tools run multiple times is also valid and probably something developers will do often (most developers end up having little scripts/tools to automate some little work function they do over and over). Your idea of a view is quite interesting. It had not crossed my mind yet. There are many improvements to the UI we can do. This is worth considering.
Apparently other products use a view for Ant scripts (I think both IDEA and NetBeans do. VS does not.) We should do a feature comparison. But Adam's point about figuring out which use cases we want to support is well taken.
I think a External Tools view would be useful. Over the last few days I have been thinking about the External Tools UI, and this is one of the potential changes that came to mind. Depending on how people will be using External Tools, a few other ideas are worth considering. An external tools editor (something along the lines of the Plug-in manifest editor) might be useful. As things are now, the UI for external tools is much too modal. Personally, I hate using wizards and modal dialogs if it is avoidable, so an external tools view and/or editor would be nice. Also, I think it would be nice if external tools weren't part of the workspace state. If external tools were stored in their own XML files, they could be shared and passed between workspaces. This would be nice for users who start a new workspace when they get a new build (so they don't have to redefine tools), and would allow developers to share small helper tools like the one Adam described.
We should also allow plugins to contribute external tools entries via XML.
Nick - yes, look at bug 20803 for extension point for contributing tools. All - please come up with a list of "updates" you would like to see in external tools. You can then drop by and share it with me (easier to do this over a whiteboard).
Now uses a view. Note: new external tool work is not yet released to the head stream and won't for a while yet.