Friday, May 11, 2007

Context Launching....Friend Or Foe

In 3.3M6 some of you might have noticed that launching has changed...just a little bit.

In an on-going effort to make the world of launching in Eclipse just that little bit easier for novice users, we have introduced the concept termed 'context launching'. The premise of context launching is that we do everything in our power to try and run whatever the 'thing' you have selected is; failing that we give you the option to try and run the project it is contained in (if there is one). Furthermore, during the context launching process we abstract the hassle of having to create launch configurations or activate shortcut menus by creating the configurations for you, and presenting 'ways' of launching for users to select (if there is more than one way to launch the 'thing' selected).

Lets stop here for a second so I can tell you that YOU CAN TURN CONTEXT LAUNCHING OFF on the launching preferences page if you don't want to be cool and use the newest coolest launching stuff (but thats fine, I am not in charge of your coolness, I only provide the tools to increase it, a-la your_coolness++).

Ok back to context launching and why you can't do without it.

To provide context launching (so far) we have taken all of the familiar launching artifects, like launch shortcuts, etc, and rolled them all into one, leveraging it such a way that you can simply press the run or debug button (when context launching is on that is) and have a configuration pertaining to what you are doing be launched. Right now context launching is limited to things that have an associated IResource (using adapters), but this will likely be extended in the future to include non-resource based stuff (see see this bug).

The upshot of this is that no matter if you are a plugin, java, etc developer there is no 'new' stuff to learn, all you have to do is press the button (or use the menu shortcut). Even if you spend days creating the best launch configuration in the world it will be used in context launching, as we also make use of your launch history and favorites to help make decisions about what to launch and when. The downside is that it does not cover 100% of the edge cases in launching (
see this bug).

There is more specific information about context launching and how we implemented it (see this document) if you are interested.

So for now, we'll leave it at that and I hope everyone enjoys context launching and provides feedback if they don't, but like I mentioned I cannot be responsible for any depreciation in your coolness if you don't like it.

This feature has officially been labelled Axesome.


  1. I've been arguing about this for a while. Good to see that someone's finally sorted it out. I think this will make a big difference for novice users.

    Now, all you need to do is combine the 'Run' and 'Debug' launch dialogs into one (which has three buttons Run Debug Cancel instead of just Run Cancel or Debug Cancel depending on which one you have) and merge the Ant launch configuration into the same one, and it will all be complete.

  2. This is absolutely the worst feature in the world. Yet another thing I need to turn off.

    What happened to the "launch the last thing I ran" idea? You could leave it on and the last thing most people ran would be the right thing, no?

  3. Steve;

    You've obviously never had to teach a class of people how to use Java with Eclipse. Pretty much all other IDEs have the concept of 'run' being 'the thing I'm looking at', much like the menu option 'Run As -> Java Application' would work. It's a major stumbling block.

    Once you're used to the idea, then launch configurations are more powerful. But hey, if you want to be a power user, you'll also know the place where you can turn it off. A first-time user doesn't have that luxury.

  4. The thing I'm looking at is usually some class way down deep, far away from the test code. I change the class and since the class is not executable and SWT is a plugin, it runs Eclipse which is not my test code.

    I imagine that it runs the right thing for most people.

  5. Steve; You read the disclaimer I trust....


  6. I like it. I like it a lot. However, I can imagine finding myself in Steve's situation on occassion. Maybe ctrl-click could be "launch the last thing I ran" when context launching is turned on?