Wednesday, April 1, 2009

EclipseCon last week was quite rewarding. The talks were great and finally being able to meet face to face with the people I've been collaborating with for the last year is priceless.

Here's a video I made of the talk I gave on Tuesday about the e4 project file structure improvements:

Note that the format isn't ideal, since it contains screenshots that are hard to read in the youtube format.

The slides (without audio) are available below (best seen in full screen mode):

Monday, February 2, 2009

Hello to Planet Eclipse

Hello all Planet Eclipse readers :)

My blog has just been included today, so I'd like to say two words to introduce myself.

I've been working for Metrowerks/Motorola now Freescale since the old days of CodeWarrior on the C/C++ IDE, and with Eclipse since we switched to Eclipse in 2005-2006.

I'm interested in a lot of different components in Eclipse that helps it be a great C/C++ IDE for our customers, and have been especially involved lately in the e4 project (where I am a committer) to bring improvements to the Core Resources plugin so that it can now brag to be more powerful and feature complete than the old CW IDE or Visual Studio - at least in terms of project file structure :)

You can see more of my recents posts in the following links:

I will give a short talk at EclipseCon 2009, so I hope to see a lot of you there, thanks! :)

Friday, January 30, 2009

Latest e4 resource changes

Here is an overview of the changes in the e4 resources available in the latest e4 build:

  1. Editable linked resource locations.

    The user can now conveniently change the location of a linked resource by clicking the "Edit..." button in the resource property page.

  2. Project Linked Resource Variables

    Linked resources that are variable relative can now use a variable list that is defined in the project itself, instead of only relying on the workspace variables. The linked resources can also be specified as relative to the project directory itself, making projects referencing other files outside of the project directory portable across workspace and computers.

  3. Groups
    Groups are virtual folders that the user can use to create an arbitrarily complex logical project independent of the file system hierarchy.

    Groups, as opposed to regular folders, do not exist on the file system and therefor a) do not pickup any additional resources underneath them when a refreshLocal() is performed, and b) can only contain other groups or linked resources as children.

    Groups are fully compatible with the existing 3.4 Core Resource API, and all plugins work just as expected. Groups are seen internally by clients as an linked resource folder with an invalid location (that returns null from getLocation()).

  4. Resource Filters
    Resource filters can be added on any project, folder, linked resource folder or group to automatically build the project structure by limiting what files and folders are visible to the resource workspace layer when a refreshLocal() is performed.

    Resource filters is a powerful feature that allows an Eclipse project to include folders that contains thousands of elements, but only including a fraction of them in the project. As opposed to UI view filters, resource filters are applied at the lowest level, and do not cause resources to be wasted for elements excluded from the directory.

  5. Drag and Drop auto-generation of linked resources

    (A somewhat better version of the video is available here)

    When files are dragged and dropped from Windows Explorer on a projet in the Navigator, the user can choose either to
    1. Copy the files under the target directory (the previous operation)
    2. Create a hierarchy of groups and linked resources replicating the file system file and folder hierarchy<
    3. Create only linked resources

     Linked resources can also be creating when dragging resources from one project to another, transparently transfering the path variables the linked resource might be referring to.  

    Note that this linked-resource drag and drop awareness is currently only available to the Navigator view. 

  6. Linked Resource Editor

    Under the new Linked Resource project property page, a new Linked Resources tab is available. This tab shows a list of all resources in the project, and group them by their location path, being either invalid (for broken paths), absolute paths (which makes them non-portable) and correct paths.

    The user can then easily see which linked resource requires modification, and change it directly in the dialog by choosing the "Edit..." button.

    The user can also automatically convert one or many linked resources to absolute or relatives paths by clicking on the Convert Relative/Absolute button. This command will automatically generate linked resources if needed and try to make the path as portable as possible.

Thursday, January 22, 2009

Flexible Project Improvements in e4

Several improvements to the Core Resources have been made for e4.

Installing the new build

In order to try them out, go to the following web site:

Select a recent build, and use the link under the "update" column to use in an Eclipse 3.5M4 installation in the UI available from the menu "Help | Install New Software ...".

Once the "Install" dialog comes up, click on "Add Site..." and enter the update site you selected from the download page ( for example).

The list will refresh, and you can them select the item "org.eclipse.e4.resources.feature" and click "Next, "Finish", etc...

This will enable all the current e4 Core Resources in the current 3.5M4 layout.

more to come...