Eclipse neon là gì

On June 22/2016, the Eclipse community released Eclipse Neon, the eleventh named release of Eclipse software. Combining the efforts of almost 800 software developers organized into more than one hundred individual development teams, the release is a massive undertaking that involved months of collaboration, communication, and hard work.

To insiders, the Eclipse Neon release is actually the thirteenth simultaneous release. Eclipse development teams are organized into open source projects that each focus on different functional areas. Individual teams set their own goals and priorities, but work directly with other teams to manage interdependencies between projects to ensure that the end result is a single coherent offering. The primary means of coordination between teams is the production of regular milestone builds during the release cycle: a total of seven milestones and four release candidates are built from the combined efforts of all the teams before the final bits are assembled and shipped.

As usual, this release brings many new features and enhancements, but Neon is the first release that can benefit from the Automated Error Reporting Initiative added to the last year release, a.k.a. Eclipse Mars. The numbers as compiled by Marcel Bruch (the project lead of the error reporting system) are quite impressive, and demonstrate that the community took great care in fixing users issues.

For the Eclipse Mars (2015) release, 350,000 users sent 3,000,000 error reports. Don’t rush on Twitter to say that last year Eclipse release contained 3 millions issues :) These reports has been grouped (via automated and manual analysis) into 25,000 issues. What is impressive is the amount of issues have been fixed: around 30% of them were fixed before the second service release (Mars.2) released in March 2016. It'll be interested to see how many issues have been fixed since then for the Neon release!

Here are some of my top ten favourite things in the Eclipse Neon release.

1. Word Wrap

If you follow the trail of duplicate issues reported, support for soft word wrap in Eclipse Platform editors has been on our wishlist since 2002. The issue was closed in December 2015, just in time for inclusion in the fourth milestone build of Eclipse Neon. It’s turned off by default, but you can easily enable it via a toolbar item, or via the Alt+Shift+Y keyboard binding.

Eclipse neon là gì


2. Editor Font Size Zoom

As a regular presenter at conferences with a love of doing live demos, making it possible for everybody in the presentation room to actually see my Eclipse Workbench has been a challenge. In earlier versions, it is possible to modify the fonts via the preferences, but with the Eclipse Neon release, you can now use Zoom In (Ctrl++ or Ctrl+=) and Zoom Out (Ctrl+-) commands to dynamically increase and decrease the font size in text editors. This doesn't apply to views, so presentations to a large group may still require some preferences tweaking.

Like a change in the General → Appearance → Colors and Fonts preference page, the zoom commands persist the change for 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. To temporarily zoom the editor font in the current editor only (changes are neither propagated to other editors nor persisted), use a "pinch" gesture on a touchpad (OSX and Windows only).

3. UI/UX Improvements

A number of other helpful user interface improvements that will both make day-to-day development easier, but are also helpful when you need to do a live demo. You can, for example, toggle the Eclipse Workbench into and out of fullscreen mode via the Alt+F11 key binding. To give yourself even more available screen space, you can turn off the main toolbar, all window toolbars and the status bar.

There’s a handy menu entry to turn off the main tool bar under Window → Appearance; to toggle the state of the window toolbars, you’ll need to use the Ctrl+3 Quick Access feature. Type Ctrl+3 and “toolbar” to access commands, views, etc. related to toolbars.

Eclipse neon là gì

The Neon release features HiDPI support on Windows and Linux, so the toolbar icons will be usable on your monstrously large monitor.

Eclipse neon là gì

Finally, if you don’t care about things like the dark theme in particular or CSS theming of your workbench in general, you can turn off theming in the preferences. This should result in some performance improvements, most notably on startup.

Eclipse neon là gì


4. Smart Import

The new Smart Import wizard will help you get up and running quickly by configuring one or more Eclipse projects based on the contents of a directory. The wizard automatically detects different programming languages used and installs the necessary natures and builders into the newly-minted Eclipse projects. Open the new wizard via the File → Open Projects... menu.

Smart import currently detects and constructs Java, PHP, and JavaScript projects, and automatically configures Git integration if Git metadata is present. Note that you must actually have the necessary features installed for the smart import to work. That is, to be successful in importing a Java project, you must have the Java development tools installed; to import a PHP project, you must have the PHP development tools installed; and so on.

Eclipse neon là gì

Click on the installed project configurators to get a list of the configurations supported. The wizard is extensible, so support for other types of content will grow over time.

5. File Editors

One of my pet peeves with the Eclipse Workbench is the default behaviour when I click on a file type that’s not directly supported: it opens a system editor outside of the IDE. You can now decide for yourself how your IDE will behave.

There are currently four options:

  1. Search Marketplace (default) will use the Eclipse Marketplace Client to search the Eclipse Marketplace for plug-ins that support the file type;
  2. System Editor; if none: Text Editor 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;
  3. Text Editor will always open Eclipse’s Text Editor on unassociated file types; and
  4. Ask via pop-up will open the same dialog as using Open With → Other... on a file and let you choose which editor to use (inside or outside the IDE).

The default behaviour is to search the Eclipse Marketplace for a solution to install.

Eclipse neon là gì

The Eclipse Marketplace contains a wealth of plug-ins, extensions, and solutions that greatly enhance the Eclipse IDE experience.

6. JavaScript and JSON

Significant new work has been invested in the JavaScript development tools, starting with a new parser with EcmaScript 2015 (ES6) support. With this, the Eclipse IDE recognizes and support ES6 language constructs and provides better validation accuracy compared to the earlier parser.

Eclipse neon là gì

Both Bower and npm are supported with creation wizards and launch shortcuts for executing update and install commands. Grunt and gulp build systems are accessible from within the Project Explorer view and can be executed via launch shortcuts.

Node.js runtimes are now directly supported (Eclipse Preferences → JavaScript → Runtimes) including a new launch configuration type can be used to run and debug Node.js applications. Node.js applications can be debugged directly from the editor via the Chromium V8 debugger, with full support for breakpoints and inspecting JavaScript variable values in the Variables view (and when you hover over an in-scope variable).

Eclipse neon là gì

The new JSON editor provides support to edit some well-known JSON file types including (Ctrl++ or Ctrl+=)0 This support includes the following features:

  • Syntax Coloring which can be customized with preferences;
  • An Outline Tree view;
  • Text hover on JSON Objects/Array keys and values;
  • Text folding on JSON Objects and Arrays; and
  • Editor extensions for custom hyperlinks, json schema validation, and hover help

Eclipse neon là gì


Read more about JavaScript and JSON features in the previous issue of the Eclipse Newsletter JavaScript Development Tools Rebooted.

7. Java Language

A lot of work has gone into improving and stabilizing the support for Java 8 language features, including more than 35 separate fixes for lambda expression support (including numerous compiler and type inference fixes along with user interface improvements).

Some new options have been added to the code formatter: you can control the wrapping policy of (Ctrl++ or Ctrl+=)1 loop headers, the Align fields in columns feature in the Indentation section can now be configured to recognize groups separated by empty lines and align them independently, and you can control if new lines should be added after annotations on enum constants.

(Ctrl++ or Ctrl+=)2 analysis with generics has been improved, and includes more configuration options. A new Info problem type and decorator for “information” severity problems detected by the Eclipse Compiler for Java has been added along with a new Quick Fix to configure how the compiler reports problem severity.

Java content assist provides substring completion. It even helps you identify which part matched what you typed by highlighting matched characters.

Eclipse neon là gì

Though not strictly part of the Eclipse Neon release, a technology preview of Java 9 support is available via the Eclipse Marketplace. In order to run this functionality, you must download and install a Java 9 Java Development Kit (JDK) and launch your Eclipse IDE. The Eclipse IDE itself requires a Java Runtime Environment (JRE) to run. With the new modular delivery of the base Java libraries, command-line switches are required to make required to ensure that required functionality is available to the Eclipse runtime. There is more information in the documentation. Once you have your Eclipse IDE running, you can add the Java 9 support by dragging the “Install” button from the Eclipse Marketplace onto your running Eclipse instance.

The technology preview supports the new image and module layouts, editing module info files, and more. Note that this is an implementation of an early-draft specification developed under the Java Community Process (JCP) and is made available for testing and evaluation purposes only. The code is not compatible with any specification of the JCP.

8. Welcome

The Eclipse Foundation's website theme has been extended into the Eclipse IDE in the form of a revamped Welcome page.

Eclipse neon là gì

The Welcome page has become more useful as well, with valuable functionality that has previously been buried brought to the top.

The IDE configuration settings, for example, has been a part of the Eclipse IDE since the Mars release, but was difficult to find. By placing this front-and-center on the Welcome screen, you can now readily leverage it to configure some of the most common options like whether or not to show line numbers in editors, whether or not to run the spell checker, preferred character encoding, and more.

Eclipse neon là gì

If you’re new to the Eclipse IDE and want to learn more about building Java applications, run the “Hello World” tutorial. Again, the tutorial itself isn’t new, but it sure is easier to find.

9. User Storage Service

The new Eclipse User Storage Service (USS) provides a means for you to store metadata regarding the configuration of your Eclipse workspace(s) on an Eclipse Foundation server. The intent is to make it easier to create a common configuration for your environment that you can share across workspaces on one or more workstations.

The storage service is implemented as a generic service that can be leveraged by plug-ins. With the Neon release, the preferences recorder that was introduced with last year’s Mars release has been extended to use the storage service to record common workspace preferences. The Eclipse Marketplace also leverages the storage service to record your favourites, making it easy to add your favourite plug-ins to all of your Eclipse IDE installations.

Note that the USS is intended to be used for data that may be exposed publicly. Take care when using the USS to avoid saving preferences that may contain personally identifiable information.

Read more about USS here.

10. GTK3

As a long time Fedora user, I couldn’t be more excited about the improvements made to the GTK3 support in the Eclipse Neon release. There is certainly more work to do, but the latest versions of Eclipse IDE all run very well on the platform.

Note that if you’re using Ubuntu 16.04, you may have to , as there are still outstanding issues with this distribution. It seems that some specific changes Ubuntu made in GTK3 for the 16.04 release it breaking normal consumer of GTK3. If you face the issue, I highly recommend you ask to Ubuntu to revert to standard GTK3. Join the forum discussion here.

More...

11. PHP 7 Support

Neon brings complete support for PHP 7 in the PHP Development Tools. You can now enjoy typing the return type of your function! Read more about it in this Eclipse Newsletter article "What's New in Eclipse PHP Development Tools".

Eclipse neon là gì


12. Gerrit Integration

Eclipse neon là gì

EGerrit, a new project joining the simultaneous release this year, provides an awesome Gerrit integration into the Eclipse IDE. It minimizes the context switch from the IDE to the web and leverages IDE specific features such as syntax coloring, navigation, etc. Eclipse Gerrit integration allows to perform most operations on reviews such as voting, submitting, abandoning, etc. Finally, it also gives the user the ability to directly comment in the file when reviewing the changes.

Eclipse neon là gì


13. Autosave

You can activate the auto saving for all opened editors and say goodbye to the (Ctrl++ or Ctrl+=)3 ((Ctrl++ or Ctrl+=)4 on macOS) habit! Note that this feature has been implemented thanks to the Friends of Eclipse Enhancement Program (FEEP). Read the Mikaël Barbero's blog post about this program to know more about what has been done and what is the current plan for next release. Also, don’t forget to continue to donate to the program to see more features and bug fixes coming (or to get a limited edition Neon t-shirt).

Eclipse neon là gì


14. Packaged Distributions Updates

At last, features included in Eclipse Packaged distributions can now be updated (or removed) individually. In the past, when you were using an Eclipse Packages (e.g. Eclipse IDE for Java EE Developers, Eclipse IDE for C/C++ Developers, Eclipse for PHP Developers…), it was not possible to remove or update any of it's feature independently. You had to wait for a new version of the full Package. Now, if you download the Eclipse IDE for Java EE Developers, but don’t want Eclipse Mylyn, you can remove it. Or, if you're annoyed with a bug in the Eclipse Git integration, you can now update it to a snapshot build that fixes your bug or to a newer release that is not yet integrated in a new version of your Package.

15. And Even More...

We tend to focus on IDE (and especially Java development tools) improvements when we talk assemble a top ten list. But there are a lot of other projects that participate in the release that contribute great functionality that often plays more of a supporting role. The Eclipse community has a rich modeling tradition, for example, and with the Eclipse Neon release, we’ve stepped up our game to make modeling even more appealing. In addition to a great many fixes that improve the stability and performance of the modeling tools, and visual improvements (e.g. high quality rendering of SVG images) in generated editors and views, there is some very cool experimental new tools for visualizing models.

The Eclipse Neon release brings experimental support for comparing model diagrams visually.

Eclipse neon là gì

You can easily merge all non-conflicting differences that are contained in a selected model element or resource with one click. This works in both directions when comparing local models, or one-way when comparing against a static source (e.g. when comparing against a previous version in Git).

Also experimental with this release, you can now define rich property views alongside the diagram definition without having to write a line of code. This capability will be extended in the next months based on the user community feedback.

Eclipse neon là gì


Conclusion

The Eclipse Foundation maintains a database that indexes every Git commit in our repositories. According to this index, more than 2,300 distinct individuals have contributed at least one commit to at least one of the open source projects that are part of the Eclipse Neon release since the beginning of time (the first commit is dated May 2001). This does not include any contributors to our SVN support (the Eclipse Foundation has mercifully granted an exception to let the Subversive project team use SVN for their work), nor does, the number include all authors from the time that our project teams used CVS (these commits were migrated to Git, but since CVS tracks committer, but not author information, some commits are not properly attributed; this attribution is tracked elsewhere). So the actual number of contributors to Eclipse Neon is considerably higher than 2,300.

The Eclipse Neon release is a marvel of software engineering. But, it is perhaps equally interesting that Eclipse Neon is the result of years of practiced communication and coordination between project teams that separately work out their own priorities without coordinated direction from above: it is a marvel of coopetition with forces pulling project teams in different directions chasing different priorities, but still coming together to produce a great set of products.

If you’ve made it this far, you’ve no-doubt already noticed that my top ten list actually contains fifteen items. It’s actually more than that if you consider that I’ve mashed together some features that could easily be kept apart. There’s a lot of cool stuff in the the Eclipse Neon release: download it today and take a look.

Credits

Some of the content (especially screenshots) and most of the inspiration for this document comes from new and noteworthy documents provided by the project teams, including: