<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="copyright" content="Copyright (c) Eclipse contributors and others 2016. This page is made available under license. For full details, see the LEGAL section in the documentation that contains this page."/>
<meta http-equiv="Content-Language" content="en-us"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="STYLESHEET" href="news.css" type="text/css"/>
<style type="text/css">
body {max-width: 900px;}
table.news col.title {width: 30%;}
/*img {max-width: 520px;}*/
table.news {table-layout: fixed; border-collapse: collapse; width: 100%;}
table.news td {border-top: solid thin black; padding: 10px; overflow: visible;}
table.news tr {vertical-align: top;}
table.news tr td.section {font-size: 20px; font-weight: bold;}
table.news tr td.title {vertical-align: top; font-weight: bold;}
table.news tr td.content {vertical-align: top;}
ul {padding-left: 13px;}
</style>
<title>Eclipse Project Neon - New and Noteworthy</title>
</head>

<body>
<h2>Platform and Equinox</h2>

<table class="news">
<colgroup>
  <col class="title" />
  <col />
</colgroup>
<tbody>

  <tr id="swt-autoscale">
    <td class="title">SWT provides resolution-based auto-scaling</td>
    <td class="content">
      SWT now automatically scales images on high-DPI monitors on Windows and Linux, similar to the Mac's Retina support on OS X. 
      In the absence of high-resolution images, SWT will auto-scale the available images to ensure that SWT-based applications like Eclipse
      are scaled proportionately to the resolution of the monitor.
      <p>
      <img width="520" src="images/hidpi-neon.png" alt="Screenshot of Neon at 200%" />
      </p>
      <p>
      For comparison, here's how it looked in Mars without high-DPI support:
      </p>
      <p>
      <img width="520" src="images/hidpi-mars.png" alt="Screenshot of Mars at 200%" />
      </p>
      <p>
      To tweak the default settings, see <a href="#swt-autoscale-tweaks">Tweaking SWT's auto-scaling</a>.<br/>
      SWT programmers, see <a href="platform_isv.php#high-dpi-api">APIs for high-DPI monitor support</a>.<br/>
      Icon designers and product owners, see <a href="platform_isv.php#high-dpi-icons">High-DPI icons using "@2x" convention</a>.
      </p>
    </td>
  </tr>

  <tr id="word-wrap">
    <td class="title">Word wrap in text editors</td>
    <td class="content">
      A <b>Toggle Word Wrap</b> button has been added to the workbench toolbar. Shortcut: <b>Alt+Shift+Y</b>.
      <p>
      <img src="images/word-wrap.png" alt="" />
      </p>
      <p>
        By default, text editors are opened with word wrap disabled.
      </p>
    </td>
  </tr>

  <tr id="text-zoom-commands">
  	<td class="title">Commands and shortcuts to zoom in text editors</td>
  	<td class="content">
    In text editors, you can now use <b>Zoom In</b> (<b>Ctrl++</b> or <b>Ctrl+=</b>) and <b>Zoom Out</b> (<b>Ctrl+-</b>) commands
    to increase and decrease the font size.
    <p>
      Like a change in the <b>General &gt; Appearance &gt; Colors and Fonts</b> preference page, the commands persistently
      change the font size in all editors of the same type. If the editor type's font is configured to use a default font,
      then that default font will be zoomed.
    </p>
    </td>
  </tr>

  <tr id="pinch-to-zoom">
    <td class="title">Pinch to zoom in text editors</td>
    <td class="content">
      To temporarily zoom the editor font in text editors, use a "<b>pinch</b>" gesture on a touchpad.
      Put two fingers on the touchpad and move them apart or together.
      <p>
        To reset the original font size, rotate two fingers by at least 45°, or close and reopen the editor (<b>Navigate &gt; Back</b>).
      </p>
      <p>
        Those gestures only affect the current editor. Changes are neither propagated to other editors nor persisted.
      </p>
      <p>
        Note: SWT currently only supports these gestures on OS X and on Windows systems that use the native
        multi-touch support. Touchpads that emulate mouse move/scroll events don't support gestures.
        Gesture support on GTK is not implemented yet.
      </p>
    </td>
  </tr>

  <tr id="autosave-dirty-editors">
    <td class="title">Automatic Save of dirty editors</td>
    <td class="content">
      Auto-save of dirty editors is now available in Eclipse. The autosave option is <b>disabled by default</b>.
      A new autosave preference page (<b>Preferences &gt; General &gt; Editors &gt; Autosave</b>) is available  and allows to enable/disable the autosave and change the interval of autosave.
      The countdown is reset on keyboard activity, mouse click, or when a popup is displayed (e.g. content assist, preference page, ...).
      <p><img src="images/autosave-preference-page.png" alt="" /></p>
    </td>
  </tr>

  <tr id="search-binary-files">
    <td class="title">Search in binary files</td>
    <td class="content">
      The <b>Search &gt; File...</b> dialog has a new option to search in binary files as well.
      <p>
        <img src="images/search-binary-files.png" alt=""/>
      </p>
      By default, the option is disabled, and matches are only reported in files that have the <i>Text</i>
      content type, or in files that have no content type and don't contain the null character (\u0000).
	</td>
  </tr>

  <tr id="terminate-relaunch-history">
    <td class="title">Terminate and Relaunch from history</td>
    <td class="content">
      A <b>Terminate and Relaunch</b> option is now available while launching from history.
      The default setting is to launch without terminating previous launches. To enable automatic termination,
      select the option "Terminate and Relaunch while launching from history" on
      <b>Preferences &gt; Run/Debug &gt; Launching</b>.
      
      <p>
        The behavior not selected on the preference page can also be activated on-demand by holding
        the <b>Shift</b> key while launching the configuration from history.
      </p>
	  <p><img src="images/launch-preference-history-relaunch.png" alt="" /></p>
      <p>
        Hint: You can still open the dialog to <b>edit a launch configuration</b> by holding
        the <b>Ctrl</b> key while selecting the configuration from history.
      </p>
    </td>
  </tr>

  <tr id="workspace-launcher-platform">
    <td class="title">Directly start previously selected workspaces in the launcher</td>
    <td class="content">
      The workspace selection dialog now allows you to start a previously selected 
      workspace directly via a link. The path to 
      the workspace is shortened. The full path is available if you hover over the link.
      <p>
      You can remove existing entries via the context menu.
     </p>
     <p>
      <img src="images/recent-workspace-launcher.png" alt="" />
    </p>
    </td>
  </tr>

  <tr id="workspace-name-in-window-title">
    <td class="title">Workspace name shown in window title by default</td>
    <td class="content">
    The workspace name is now shown at the beginning of the window title by default.
    The initial name is the name of the workspace directory.
    <p>
    The name can be changed or cleared in <b>Preferences &gt; General &gt; Workspace</b>.
    </p>
    </td>
  </tr>

  <tr id="quick-access-improvements">
    <td class="title">Quick Access improvements</td>
    <td class="content">
      <b>Quick Access</b> (<b>Ctrl+3</b>) is a small text field in the toolbar. You can use it to trigger any command in the Eclipse IDE.
      <p><img src="images/eclipse-quick-access-improved-search.png" alt="" /></p>
      <p>You can now restrict the search to Views, Commands, etc. by typing the category name followed by a colon. 
      For example, to filter the list of all the views, start typing <code>"Views: "</code> in the search-box.</p>
      <p>
      A few usability bugs have been fixed: The tooltip shows the keyboard shortcut,
      the number of search results per category is independent of the size of the proposals window,
      and the list with previous choices already opens when you click the field with the mouse.
      </p>
    </td>
  </tr>

  <tr id="hide-toolbars">
    <td class="title">Hide the window toolbars</td>
    <td class="content">
     	You can use the <b>Toggle visibility of the window toolbars</b> command (via Quick Access: <b>Ctrl+3</b>) to hide
     	all currently visible toolbars of the current window. Executing the command again reveals these toolbars again. 
     	This allows you to maximize the space 
     	available for editors and views. If you minimize a stack after you selected this command, 
     	the minimized stack will be visible until you trigger the command to hide the toolbars again. This allows
     	you to decide which minimized stacks are currently useful for you.
    </td>
  </tr>

  <tr id="perspective-switcher-default-display">
    <td class="title">Perspective names hidden by default</td>
    <td class="content">
      To save space in the toolbar, the perspective switcher has been changed to show only the icons of perspectives by default.
      You can show the text again via the context menu.
      <p>New default:</p>
      <p>
        <img src="images/perspective-switcher-notext.png" alt=""/>
      </p>
      <p>Old default:</p>
      <p>
        <img src="images/perspective-switcher-withtext.png" alt=""/>
      </p>
      
    </td>
  </tr>

  <tr id="full-screen">
    <td class="title">Full Screen</td>
    <td class="content">
      The <b>Full Screen</b> feature is now also available on Windows and Linux. You can toggle the mode via shortcut (<b>Alt+F11</b>) or menu (<b>Window &gt; Appearance &gt; Toggle Full Screen</b>).
      <p>
      When Full Screen is activated, you'll see a dialog which tells you how to turn it off again.
      </p>
      <p>
      On the Mac, <b>Window &gt; Toggle Full Screen</b> (<b>Control+Command+F</b>) still works as before.
      </p>
    </td>
  </tr>

  <tr id="theming-enablement">
    <td class="title">Preference setting to disable the Eclipse styling (CSS based theming)</td>
    <td class="content">
    	You can disable the CSS-based styling of the Eclipse IDE via
    	<b>Preferences &gt; General &gt; Appearance &gt; Enable theming</b>.
    	This will prevent Eclipse from rendering custom colors, shades, and borders, and may result in better performance.
    	<p>
      		<img src="images/enable-disable-theming.png" alt=""/>
      	</p>
	</td>
  </tr>

  <tr id="text-editor-selection-strategy">
    <td class="title">Selecting the text editor for unassociated file types</td>
    <td class="content">
      On the <b>Preferences &gt; General &gt; Editors &gt; File Association</b> page, you can now define an editor selection
      strategy for unassociated file types. Three strategies are proposed out-of-the-box:
      <ul>
        <li><b>System Editor; if none: Text Editor</b> (default) will open the system editor associated with the file, if available. If no system editor
          is associated with the given file, fall back to the Eclipse Text Editor</li>
        <li><b>Text Editor</b> will always open Eclipse's Text Editor on unassociated file types</li>
        <li><b>Ask via pop-up</b> will open the same dialog as using <b>Open With &gt; Other...</b> on a file and let you choose which
          editor to use (inside or outside the IDE)</li> 
      </ul>
     <p>
      Keep in mind that in any case, it's possible to assign an editor for an unassociated file type either via this same preference page,
      or via the <b>Open With &gt; Other...</b> context-menu on the file.
     </p>
     <p>
      The implementation comes with a new extension-point <code>org.eclipse.ui.ide.unknownEditorStrategy</code>
      that allows external contributions of additional strategies.
     </p>
    </td>
  </tr>
  
  <tr id="date-variable-format">
    <td class="title">'date' template variable with custom format</td>
    <td class="content">
     The 'date' variable, supported in editor and code templates, now allows you to specify which format to use when inserting the current date (or time).
     <p>
       <img src="images/date-variable-format.png" alt="Example: ${d:date('EEEE dd MM yyyy HH:mm:ss', 'fr_CH')}"/>
     </p>
    </td>
  </tr>

  <tr id="word-selection-default-value">
    <td class="title">'word_selection' and 'line_selection' template variable with default values</td>
    <td class="content">
     The 'word_selection' and 'line_selection' variables, supported in editor and code templates, now allow you to specify a default value to use if the current text selection is empty.
    </td>
  </tr>

  <tr id="import-projects">
    <td class="title">Import projects</td>
    <td class="content">
    A new <b>Import Projects</b> wizard is available via the <b>File &gt; Open Projects...</b> menu and via the general
    <b>Import...</b> command under <b>General &gt; Projects from Folder or Archive</b>.
    <p>
      Compared to other ways to import or create projects, this wizard aims at being a universal wizard that,
      from a source directory or archive, can detect and configure various kinds of projects.
    </p>
    <p>
       <img src="images/import-projects.png" alt="" />
    </p>
    <p>
      This wizard relies on an extensible set of strategies that look at the content of the import source
      to detect file types, project layout patterns, or even look into some files in order to deduct which folders should be
      turned into projects and how those should be configured. Configuration usually involves setting up project natures and
      preferences.
    </p>
    <p>
      The import strategies are contributed via the new extension point <code>org.eclipse.ui.ide.projectConfigurator</code>, so that other IDE components
      can contribute detection and configuration specific to the technology they're supporting.
    </p>
    </td>
  </tr>

  <tr id="new-button-workingset">
    <td class="title">"New..." button for creating Working Sets</td>
    <td class="content">
        A <b>New...</b> button has been added to the <code>WorkingSetConfigurationBlock</code>:
      <p>
        <img src="images/new-button-workingsetconfigurationblock.png" alt="" />
      </p>
      <p>
        This saves quite a few clicks when creating new Working Sets.
      </p>
    </td>
  </tr>

  <tr id="solstice-welcome-theme">
    <td class="title">New Welcome theme 'Solstice'</td>
    <td class="content">
        The Welcome/Intro introduces a new <em>Solstice</em> theme
        providing a new modern appearance.  The Welcome also
        introduces a new quadrant-based root page, <tt>qroot</tt>,
        which supports a new command-driven section defined through
        the <tt>org.eclipse.ui.intro.quicklinks</tt> extension point.
        These <em>quicklinks</em> are intended to be populated by
	product owners.
      <p>
        <img src="images/eclipse-welcome-solstice.png" alt="" />
      </p>
    </td>
  </tr>

  <tr id="welcome-launchbar">
    <td class="title">Welcome Launchbar restored</td>
    <td class="content">
        In Eclipse 3.x, the <b>Go to Workbench</b> button
        on the Welcome page would minimize the Welcome page to the window
        status bar.  This behavior has been restored for Eclipse 4.6.
      <p>
        <img src="images/eclipse-welcome-launchbar.png" alt="" />
      </p>
    </td>
  </tr>

  <tr id="mac-default-theme-enhancement">
    <td class="title">Improvements in the Mac default theme</td>
    <td class="content">
      The look of the toolbar in the Mac default theme was adjusted to align with other Mac applications.
     <p>
      Old styling:
     </p> 
     <p>
      <img src="images/mac-theme-old-toolbar.png" alt="" />
    </p>
     <p>
      New toolbar styling:
     </p> 
      <p>
      <img src="images/mac-theme-new-toolbar.png" alt="" />
    </p>
    </td>
  </tr>

  <tr id="dark-theme-styled-links">
    <td class="title">Link widget background color can be styled via CSS</td>
    <td class="content">
    You can now style the background color of the SWT Link widget. This is used in
    the default dark theme provided by Eclipse.
    <p>
    <img src="images/themed-links.png" alt="" />
    </p>
    </td>
  </tr>

  <tr id="dark-theme-styled-text-scrollbar">
    <td class="title">Themed scroll bar enabled for editors in dark theme</td>
    <td class="content">
    It's now possible to replace the native scroll bar of a StyledText by a styled overlay. This is enabled
    by default in the dark theme on Windows.
    <p>
    <img src="images/themed-scroll-bar.png" alt="" />
    </p>
    <p>
    This feature can be disabled in the Windows dark theme by setting the <code>swt.enable.themedScrollBar</code> 
    VM argument to <code>false</code> (or enabled on the dark theme for other platforms by setting it to true)
    in eclipse.ini or on the command line after <code>-vmargs</code>:
    </p>
    <p>
    <b>-Dswt.enable.themedScrollBar=false</b>
    </p>
    <p>
    Note that it may be added through css to any theme (see 
    <a href="http://git.eclipse.org/c/platform/eclipse.platform.ui.git/diff/bundles/org.eclipse.e4.ui.css.swt/plugin.xml?id=742d2e990765d5bbf9be61ff3f047105f8102bd3">
    properties available for customization</a> and a <a href="http://git.eclipse.org/c/platform/eclipse.platform.ui.git/diff/bundles/org.eclipse.ui.themes/css/e4-dark_win.css?id=742d2e990765d5bbf9be61ff3f047105f8102bd3">css example</a>) 
    -- the user may always override the theme setting by using the <code>swt.enable.themedScrollBar</code> VM argument.
    </p>
    <p>
    <b>Caveats</b>: We're aware that the themed scroll bar is not currently available for all
    elements (such as trees and tables), and some places where the scroll bar was
    invisible (such as compare editors) may now show a scroll bar. These will only
    be fixed for Eclipse 4.7.
    </p>
    </td>
  </tr>

  <tr id="gtk3-menus">
    <td class="title">Improved menu support on GTK3</td>
    <td class="content">
      The SWT GTK3 port has received an update to its menus as part of the push to update SWT
      to GTK3. Here are some of the notable changes.
      <p>Padding: By default, SWT menus now look similar to those in OS X: Text is not strictly aligned.
         This is due to a new way in which menus are constructed in GTK3 (see <a href="https://wiki.gnome.org/HowDoI/GMenu#Icons">
         https://wiki.gnome.org/HowDoI/GMenu#Icons</a> for more details). In order to align all text entries in a menu, simply launch
         the SWT application with the environment variable <b>SWT_PADDED_MENU_ITEMS=1</b>.</p>
      <p>Checkboxes and images: On GTK2.x, a menu entry was limited to either a checkbox <i>or</i> an image.
         On GTK3, SWT now supports menu entries that contain both an image and a checkbox.</p>
      <p>The image below shows a screenshot of the default GTK3 menu on the left,
         compared to an aligned GTK3 menu on the right.</p>
          <img src="images/gtk3-menu-comparison.png" alt=""/>
    </td>
  </tr>

  <tr id="swt-autoscale-tweaks">
    <td class="title">Tweaking SWT's auto-scaling</td>
    <td class="content">
        If you don't like SWT's default appearance on HiDPI monitors, here are a few hints to
        tweak the scaling:
        <p>
        On <b>GTK</b>, the standard way to configure scaling for a single application is to set the
        <code>GDK_DPI_SCALE</code> environment variable before launching an application.
        E.g. to set the scale factor to 150% on the command line when launching Eclipse:
        </p>
        <pre><b>$ GDK_DPI_SCALE=1.5 ./eclipse</b></pre>
        <p>
        On <b>Windows</b> and <b>GTK</b>, SWT's auto-scaling can be configured using the <code>swt.autoScale</code>
        Java property. E.g. to disable auto-scaling and make the application behave like on Mars (4.5),
        add this VM argument in eclipse.ini or on the command line after <b><code>-vmargs</code></b>:
        </p>
        <pre><b>-Dswt.autoScale=false</b></pre>
        <p>
        And here are all the <code>swt.autoScale</code> arguments that are currently implemented:
        </p>
        <ul>
        <li><code>false</code>: scale factor is set to 100% (no scaling)</li>
        <li><code>integer</code>: scale factor depends on the current display resolution,
            but only uses integer multiples of 100%. The detected native zoom is
            generally rounded down (e.g. at 150%, will use 100%), unless close to
            the next integer multiple (currently at 175%, will use 200%).</li>
        <li><code>quarter</code>: scale factor depends on the current display resolution,
            but only uses integer multiples of 25%. The detected native zoom is
            rounded to the closest permissible value. (This used to be the default in
            the last two pre-release milestones.)</li>
        <li><code>exact</code>: scale factor is set to the native zoom (with 1% as minimal
            step).</li>
        <li><i>&lt;value&gt;</i>: scale factor uses the given integer value in
            percent as zoom level.</li>
        </ul>
        <p>
        The current default is "integer". Note that non-integer scale factors
        exhibit various problems like jagged borders or even completely missing images.
        </p>
        <p>
        The scaling method can be configured by setting the <b><code>swt.autoScale.method</code></b> system property to:
        </p>
        <ul>
        <li><code>nearest</code>: nearest-neighbor interpolation, may look jagged</li>
        <li><code>smooth</code>: smooth edges, may look blurry</li>
        </ul>
        <p>
        The current default is to use "nearest", except on
        GTK when the deviceZoom is not an integer multiple of 100%.
        The smooth strategy currently doesn't work on Windows and Mac OS X.
        </p>
        <p>
        Auto-scaling cannot be disabled on the Mac as it is provided by the OS.
        </p>
    </td>
  </tr>

  <tr id="simplified-capabilities-preference-page">
    <td class="title">Advanced capabilities preferences are now displayed in place (no extra dialog) </td>
    <td class="content">
        Previously, the entries in the <b>Capabilities</b> preference page were displayed in a list. If you wanted to edit them, you had to open an extra dialog.
        Now you can directly enable or disable the capabilities from the preference page, as depicted in the following screenshot.
      <p>
        <img src="images/simplified-capabilities-page.png" alt="" />
      </p>
      <p>
        Since this dialog has API to prevent advanced editing, if the property ALLOW_ADVANCED is set to false, the original list
        is maintained and will be shown, which allows you to enable/disable only the main categories (not individual capabilities).
      </p>
    </td>
  </tr>

  <tr id="wayland-launching">
    <td class="title">Eclipse workspace launcher now fully functional on Wayland</td>
    <td class="content">
      Eclipse has been updated to include improved support for the Wayland display manager.
      <p>Previously, launching Eclipse on Wayland was possible only if not using the native launcher due to a bug that would
         cause the workspace launcher to hang and eventually crash. This has now been fixed, allowing
         Eclipse to launch on Wayland just as it would on X11.</p>
    </td>
  </tr>

  <tr id="solaris-64-bit-builds">
    <td class="title">Solaris builds are now 64-bit only</td>
    <td class="content">
        In Neon, the 32-bit builds of Solaris (both x86 and SPARC) have been discontinued as there is no 32-bit Java 8 JRE available on Solaris.
        <p>These builds have been replaced by the 64-bit builds for Solaris x86 and SPARC.</p>
    </td>
  </tr>

  <tr id="ant-version-upgrade">
    <td class="title">Ant 1.9.6</td>
    <td class="content">
      Eclipse has adopted Ant version 1.9.6.
    </td>
  </tr>

  <tr id="java-9">
    <td class="title">Java 9 previews</td>
    <td class="content">
      Launching Eclipse with recent Java 9 previews fails with <code>NoClassDefFoundError</code>s
      for <code>javax/annotation/PostConstruct</code> and similar types.
      <p>
      The workaround is to add the VM argument
      </p>
      <pre><b>--add-modules=java.se.ee</b></pre>
      <p>
      either on the command line <b>after <code>-vmargs</code></b>, or at the end of the
      <b>eclipse.ini</b> file.
      </p>
      <p>
      At least on Windows, this workaround only seems to work when the <code>-vm</code>
      argument points to a <code>java.exe</code> or <code>javaw.exe</code> (but not when just passing the "bin" folder).
      </p>
      <p>
      (Older Java 9 previews required using the two arguments <code>-addmods java.se.ee</code> , which had to be on two separate lines in eclipse.ini).
      </p>
    </td>
  </tr>

</tbody>
</table>
<script type="text/javascript" src="scripts.js"></script>

  <p style="text-align:center">
    <span style="color:#808080">Previous</span> <a style="margin:1em" href=".">Up</a> <a href="jdt.php">Next</a>
  </p>

</body>
</html>
