## What's New in 3.4

Here are descriptions of some of the more interesting or significant changes made to the Eclipse Platform for the 3.4 release of Eclipse. They are grouped into:

- Platform Changes
- Search Changes
- Editor Changes
- Team/CVS Changes
- Debug Changes

Plug-in developers will also be interested in the corresponding What's new document in the plug-in developer's guide.

Platform Changes
New update UI | The UI for performing installation and updates is completely new in 3.4. The new UI is accessed using Help > Software Updates. Unlike previous versions, you no longer have to find and select all prerequisites of the software you are trying to install. You can just select the single piece of software you want to install, and all prerequisites will be computed and installed automatically. The Installed Software tab only shows you the exact software items that you chose to install, rather than listing everything that is installed on your system. When you update software, all prerequisites of the software being updated will also be updated as needed. The new update dialog allows you to add update sites using drag and drop gestures in addition to using the dialogs. To make an update site available in Eclipse, you can drag and drop a site URL link from supported browsers (such as Firefox) into the Help > Software Updates > Available Software page.
Viewing available software | You can now view the software that's available for install or update in multiple ways. The Available Software tab in the Help > Software Updates dialog provides a view menu button that lets you view the software by site, category, or name. You can also use the filter box in the dialog to filter the available software by name. Checkboxes at the bottom allow you to further control what is shown in the view.
Markers view | A new Markers view has been added for users who prefer to have their problems, bookmarks and tasks in the same view (i.e., as it was back in the days before Eclipse 3.0). It can be found by selecting Window > Show View > Other > Markers.
New look for Problems, Bookmarks and Tasks views | The Problems, Bookmarks and Tasks views now have a new look, implementing many long-standing feature requests. Highlights include: Predefined filters for all errors and warnings on selection. Union or intersection of problems showing. A forms based configuration dialog. Use of the commands defined in the workbench rather than custom actions. This means consistency with key bindings and the main window menu. Working sets as first class selection sources. For instance, if the Package Explorer view is showing working sets and the Problems view is filtering on selection, you will only see the problems in that working set. Show multiple content sets. The Problems view allows you to see all markers, or just the problems.
System proxy settings | The General > Network Connections preference page allows you to specify the proxy settings to be used when connecting to the network. The new System proxy configuration option lets you reuse OS proxy settings in Eclipse. Eclipse supports: Proxy manual settings and automatic configuration on Windows Proxy environment variables and Gnome settings on Linux
Eclipse for 64-bit Windows | Windows x86_64/AMD64 and IA64 have joined the lineup of Eclipse platforms and SWT downloads. To use them you must be running on a 64-bit edition of Windows with a 64-bit JRE. (Note that the 32-bit versions of SWT and Eclipse can still be used on these configurations with a 32-bit JRE).
Eclipse on HP-UX IA64 | Eclipse will now run (in 32-bit mode) on HP-UX Itanium machines.
Resource refactorings | The move, delete and rename resource actions now support refactoring in the same manner as the Java refactoring actions do. These new actions are available in the Project Explorer. Here is an example of the resulting dialog when moving a resource in the Project Explorer:
Accessibility for Mac OS X | Eclipse is now accessible on Mac OS X Carbon. The Mac screen reader, VoiceOver, can be turned on and off with Command+F5. The snapshot below shows the VoiceOver cursor highlighting a tool item in Eclipse.
New dropins folder | There is a new "dropins" folder at the root of the Eclipse platform install that can be used to "drop in" additional plug-ins separate from the base application. This folder supports various layouts of plug-ins, features, and link files. On each startup, this directory is scanned, and any newly added content is automatically installed, and removed contents are uninstalled from the running application.
Eclipse installer | The Eclipse SDK now has a simple installer that can be used to install the SDK from eclipse.org or its mirrors. This leverages the transport capabilities of p2 to provide a faster, authenticated download. The installer also supports shared install so that multiple Eclipse applications on your system share the same data. The installer is available from the Equinox Download Page.
Checking software trust | When you install or upgrade using Help > Software Updates, the install process will now examine the signatures of the code being installed, and verify that you trust the provider of the software. This verification only occurs once in the install process, after all the new software has been downloaded. The dialog allows you to view the certificate trust chain, and examine the details of each certificate.
Content type-specific file icons | In the past, icons for files were chosen based on the file's name and extension only. Workbench views now show more specific file icons based on the file's content type. The IDE will initially show a generic icon like it always has: After determining content types in the background, icons will be replaced with more specific ones if available: This behavior can be turned off from the General > Appearance > Label Decorations preference page.
Remote Help content enhancements | Eclipse 3.4 now allows multiple remote infocenters to contribute content to the Help system. This can be specified using the Preferences > Help > Content preference page.
Resize Table and Tree columns using the keyboard | The column widths of certain Tables and Trees can now be changed in a keyboard-accessible way. This shows up in the list of plug-ins or features available from the About dialog, and as a new view menu item in all views displaying markers (Problems, Tasks, Bookmarks, and Markers).
Print button in Help view | The Help view now has a print button.
New projects can now be added to working set | New projects can now be added to working sets during their creation. Currently all major wizards make use of this feature and there is API available for plug-in developers to do so as well.
Close tabs with middle click | You can now close view and editor tabs by clicking anywhere on the tab using the middle mouse button. If your mouse doesn't have a middle button, try clicking on the mouse wheel if it has one of those.
Search Changes
Improved text search | The regular expressions support for text search has been extended: In the Containing text field, the new pattern \R matches any line delimiter (Windows \r\n, Unix \n, and Mac \r). Note that \R cannot be used in character groups ([]), since the Windows delimiter \r\n consists of two characters. Several new constructs are available when replacing text in files, including: \R inserts the document line delimiter (same as Enter key) \r and \n insert carriage return and newline characters, respectively. Note that mixing line delimiters inside a document is not recommended and may lead to problems with external editors. \R is usually a better choice. \t inserts a Tab \xhh and \uhhhh insert the specified character Content assist and the F1 help tell all the gory details.
Line matches in result view | The file search result now shows line matches. When in the tree layout, line matches are shown below files:
Improved text search replace dialog | Replacing text matches (Replace All or Replace Selected in the context menu of the text search result view) now uses the same dialog as refactorings do - including preview and undo:
Editor Changes These changes apply to all textual editors in the SDK.
Direct interaction with text hovers | Are you tired of pressing F2 to see the full contents of a hover and to scroll down? Now, you can just move your mouse into hovers that support this functionality and start scrolling. The Javadoc hovers in the Java editor now support links to other elements and have a toolbar at the bottom for navigating, moving to the Javadoc view and opening the corresponding declaration: The behavior of hovers when the mouse is moved can be configured on the General > Editors > Text Editors preference page:
Presenting multiple hyperlinks | If a location resolves to multiple hyperlinks, text editors can now present all available hyperlinks in a drop down: The behavior for hyperlinks can be configured on the General > Editors > Text Editors > Hyperlinking preference page.
Improved regular expressions in Find/Replace dialog | The regular expressions support in the Find/Replace dialog (Ctrl+F) has been extended. In the Find field, the new pattern \R matches any line delimiter (Windows \r\n, Unix \n, and Mac \r). Note that \R cannot be used in character groups ([]), since the Windows delimiter \r\n consists of two characters. In the Replace With field, several new constructs have been added, for example: \R inserts the document line delimiter (same as Enter key) \r and \n insert carriage return and newline characters, respectively. Note that mixing line delimiters inside a document is not recommended and may lead to problems with external editors. \R is usually a better choice. \t inserts a tab \xhh and \uhhhh insert the specified characters Content assist and Help tell all the gory details.
Retain case of match when replacing | There's a new regular expression that allows the case of each match to be retained when using Find/Replace: For example, replacing "test" with "\CFoo" in "Test test= TEST" results in "Foo foo= FOO". The same patterns can be used when replacing from the Search view:
Various printing improvements | The printing support for editors has been improved: line numbers are now printed if enabled in the editor background color is no longer printed annotations (e.g. error squiggles) are now printed each page shows the file name in the header each page shows the current page number in the footer the print job gets a meaningful name
Line support in overview ruler | Until now, the overview ruler was only helpful when it showed annotations. Henceforth, you can click on the ruler to go to the corresponding line and you can hover anywhere on the ruler to see the line number at that ruler location:
Configure annotation preferences via overview ruler | The overview ruler now has its own context menu that allows you to open the preferences. If the context menu is opened on an annotation, then it takes you directly to its annotation type on the 'Annotations' preference page:
Select text via Shift+Click into line number ruler | Text in the editor can now also be selected by shift-clicking in the line number ruler.
New annotation text styles | You can now choose from all available styles for drawing an annotation inside the editor:
Team/CVS Changes
Share multiple projects simultaneously | The Team > Share Project action now supports multi-select so multiple projects can be shared in a single operation.
Correct spelling in CVS Commit wizard | The comment area of the CVS Commit Wizard now presents you with suggested corrections for misspelled words. The options are available using quick assist (Ctrl+1) and are also shown in the context menu.
File changes can be viewed in CVS Commit wizard | File changes can now be viewed in the CVS Commit Wizard. You can view the changes for a file by double-clicking on the file in the Changes pane.
Ignore resources by path | The Team > Ignored Resources preference page now allows you to specify ignore path patterns as well as file name patterns.
Apply Patch improvements | Improvements have been made to the Apply Patch Wizard. The handling of unmatched patch segments has been modified to be more consistent with how the standard patch application works. Segments (or hunks) that do not match at the location indicated in the patch will be automatically tested at previous and later locations in the file to see if an exact match for the patch appears elsewhere. Also, the fuzz factor (i.e. the number of context lines to ignore when searching for a match) can be automatically calculated and applied, if an exact match cannot be found. The user will still have the ability to adjust the fuzz factor.
Import Team Project Set improvements | Improvements have been made to how the import of CVS projects using a Team Project Set is handled. In the past, a repository location was automatically created with the given connection method and without a user name when CVS projects were imported from a project set. Now, the import process allows the user to fully configure the repository location, enabling them to specify a user name and change the connection method if require. So, for instance, a project set file containing extssh connections could now be used by a non-comitter since they could reconfigure the repository location connection method on import to be pserver.
Improved Apply Patch wizard | The CVS Apply Patch wizard now lets you see and inspect the hunks that matched. Previously, only conflicting hunks were visible.
Improved Share Project dialog | There's a new option in the CVS Share Project dialog that lets you choose to use the project name as the module name and place it under the selected module.
Line counter in Apply Patch wizard | The Apply Patch wizard counts lines added and removed in the patch. The default mechanism simply sums all lines starting with '+' and '-'. To define custom patterns which can be used to exclude empty lines or comments, go to the General > Compare/Patch preference page.
Debug Changes
Import/Export launch configurations | You can now import and export launch configurations in the local file system. Select Launch Configurations from the Run/Debug category of the Export wizard. The following page allows you to select configurations to export to a location in the local file system. Similarly, you can import launch configurations from a directory in the local file system.
Default console and file encoding | The console encoding used when running or debugging a program automatically matches the encoding of the program being run or debugged. For example, your Java program's (or Java project's) encoding will be used by the console and a corresponding VM argument will be added to the command line (for example, "`-Dfile.encoding=UTF-8`"). This makes it simpler to run and debug code displaying console output.
Drag and drop watch expressions | You can now drag text into the Expressions view to create expressions and you can reorder entries in the Expressions view with drag and drop.
Remove launch history entries | You can now remove items from the launch history menus. Use Control+Shift+Click to remove an item from a launch history (that is, select the menu item while pressing Control+Shift). The launch will be removed from your history but the configuration is not deleted.