New Editors
The core of an IDE is its editors, and this release has updates, as well as brand new editors for a whole slew of web dev file types. We’re talking about core editors like HTML, JavaScript, JSON, TypeScript, and their React counterparts, JSX and TSX. For stylesheets, CSS , SCSS, SASS, and LESS. Editors for the XML family, and YAML and RAML too. Yup, that’s a lot of editors.
Language Server Tech
The editors are based on Language Server technology, and will provide the most capable, up to date, efficient and standardized coding experience going forward. Capabilities like validation, content assist, hover info, outlines, refactoring, navigation and even code analysis are all serviced by the language server protocol, so we’re talking about rich support for each of the types mentioned above.
These editors have been added to MyEclipse through the continued development and refinement of the preliminary integration of Eclipse’s WWD project in the MyEclipse 2020.9 release last year. We’ve been paying attention to performance as well, and have ensured that our integration doesn’t come at the cost of IDE performance, with changes in how the language servers are initialized as you work on different files types across your workspace.
Accessing the New Editors
We’ve set up IDE defaults so that your files will automatically open in the correct editors, no additional steps required. Some editors like the MyEclipse visual HTML / JSP designers are now no longer the default for their corresponding file types, but they can be accessed through the Open With context menu. Conversely, while newer editors are available for file types like XML, XSD, XSL, etc., we’ve retained the older MyEclipse editors as default in these cases for now.
JavaScript
The new JavaScript editor is based on the language server tech we mentioned above, replacing our dated Tern based support. The editor now supports ECMAScript 2020 out of the box, and the support extends to JavaScript in JSP files too. This is a huge jump from ECMAScript 2015 that we natively supported in MyEclipse until now. So everything from async and yield, to the new nullish operators and optional chaining, are now fair game for the JavaScript editor. ESLint support is integrated as well.
TypeScript
The new TypeScript editor supports TypeScript 4.1, again, a huge jump from version 2.5 natively supported in MyEclipse. As always, TSLint continues to be well supported.
Differences of Note
Do we still need CodeMix?
As some of you might be aware, CodeMix could be installed into MyEclipse to add up-to-date support for all the languages we discussed and frameworks like Angular and React. CodeMix has now been EOLed, but the great news for MyEclipse users is that the support now inbuilt in MyEclipse replaces what CodeMix would provide. Frameworks like Vue that we don’t yet support natively in MyEclipse will be picked up in subsequent releases. Going forward, we will continue to provide and improve on modern web support in MyEclipse itself.
CodeMix is no longer compatible with MyEclipse and cannot be installed into this version.
Project Level Validation
Project level validation for JavaScript, TypeScript and HTML has been removed. We found that this validation, especially in the case of JavaScript, was often not desired by our users and time consuming, despite our efforts to make it performant across the years. These files will be validated when you open and edit them, with the newer language server tech which provides a much higher quality of validation.
Editor Preferences
Several editor, typing and coloring preferences for these file types have been removed. We found that this level of customization was seldom used, with most users making their settings at the global level – these settings will apply to these types.
Updated Support for Modern Web Frameworks
Angular
Angular support in MyEclipse has been given a major refresh. We now support the most recent versions of this framework, including Angular 12. The new project wizard has been enhanced, and several new wizards have been added. Content assist, validation and navigation in Angular templates has been significantly improved. Of course, you can still start and stop Angular projects from the Servers view, and we’ve fixed a bug that prevented CodeLive from working with Ivy built components.
React
There’s a new React project wizard that makes it easy to create a blank react project, or one with the Next.js framework. And you can choose whether you’d like to use JavaScript or TypeScript too.
Server Connectors
We’ve added new server connectors for WildFly 21, 22, 33, JBoss EAP 7.4 and Tomcat 10. Do note that Tomcat 10 supports the new Jakarta EE spec, so if you want to deploy older applications to it, you’ll have to migrate them first, or use Tomcat 10’s legacy converter. Read more here.
We’ve also added an embedded version of Tomcat 9, so out of the box you will be able to deploy to this server. The embedded Tomcat 8.5 server (updated to version 8.5.66 from 8.5.9) remains for now, but will be removed in a future release.
Jakarta EE 9
Enterprise Java support has always been at the core of MyEclipse, and we’re thrilled to be able to continue providing this support through the next level of Java in the Enterprise – the Jakarta EE 9 platform. This release includes experimental support for Jakarta EE 9 – almost all of our new project wizards will allow you to choose this version when creating a project. Projects created with this version will include updated libraries and reference corresponding Jakarta EE 9 schemata.
As this is a preview release, some support is still not available – our form based editors do not support this version, and our web services wizards (JAX-WS/RS) and JPA support have yet to be updated. We will continue to focus on this area in future MyEclipse releases.
Eclipse 2021-03
We’ve jumped three Eclipse versions since the last MyEclipse release, which was based on Eclipse 2020-06, so there are literally hundreds of enhancements in the product as a result. Here are a few of our favorites:
For those of you on macOS Big Sur, you’ll be happy to know that all UI glitches, missing capabilities and bugs have been addressed, so this version of MyEclipse works out of the box on Big Sur. A list of issues fixed can be found here.
On Windows, you can scroll horizontally using Shift + Mouse Wheel and touchpad gestures – this was already possible on other OSes.
The last edit location is a feature many don’t use, but can make such a difference to your coding productivity. Instead of just remembering the last edit location, the last 15 locations are now persisted. Use [Ctrl + Alt / Ctrl + Opt] + Left/Right Arrow to go backwards and forwards through your edits, and if you haven’t tried this feature before, now’s a good time to start!
If you’ve ever wanted to do a repeated search in the console view, you now can with the Ctrl + K & Ctrl + Shift + K.
Java Enhancements
Development with Java 15 and 16 language features is now supported. Text blocks, Records (including a new Record wizard), pattern matching for instanceof, support for sealed classes and interfaces, etc., are supported in the editor. Visit these pages for more examples of supported Java 15 and Java 16 code.Note: MyEclipse bundles Java 14, you would need to manually configure an updated JRE to code using Java 15/16.
For faster searching, a new parallel index search is now enabled by default, taking advantage of available hardware to improve performance.
Running a program that takes dozens of arguments, sometimes too many for the command line? If using Java 9 or higher, you can now specify arguments using an argfile in any Java based debug configuration.
We all love NullPointerExceptions, don’t we? Would it be great to know which variable was actually null? Well, thanks to JEP 358, the culprit will now be named and shamed in the exception message. You need to use Java 14 or higher to launch, and check the -XX:+ShowCodeDetailsInExceptionMessages box in the debug configuration.
Content assist for methods will now insert best guessed parameters too, and hopefully save you some time. You might also find general content assist behavior improved as by default it will intelligently overwrite code with selected proposals instead of inserting the proposals. Several new quick fixes have been added across the board.
If you’re one who likes Java code cleanups there were dozens added.
The integrated version of JUnit has been updated to version 5.7.1.
Spring
This release includes a couple of really cool Spring features we’d like to highlight.
First, there’s a new wizard that allows you to add Spring Boot starter modules to existing Spring Boot projects. Select Spring > Add Starters from the context menu of an existing Spring Boot project.
If you have Docker running locally, you can build docker images from your workspace Spring Boot projects by simply dragging and dropping them into the Boot Dashboard. You can then run your application on Docker, even debugging it directly within the container. You can add Spring Boot Devtools to your project to speed up change cycles. More details here.
Quarkus
With an update to version 4.19.0 of JBoss Tools, our integrated Quarkus and OpenShift tooling has also received updates.
When creating a new Quarkus project, if the extension(s) selected support CodeStarts, your project will be initialized with example code.
Instead of using an application.properties file, you can use an application.yaml file in more recent versions of Quarkus. Simply create this file manually and you will get content assist within. You can also specify environment variables in run / debug Quarkus configurations.
OpenShift
The OpenShift Application Explorer is now based on odo 2.x, which allows development to be based on a devfile. These components may expose start projects, i.e. sample code that will initialize your empty project. Specific content assist is also available for devfile.yaml files.
For clusters which use more enhanced authentication infrastructure, you can now still login with the wizard, which will pop out an embedded web browser as required.
VisualVM
Our VisualVM integration was MIA for a few releases, but by popular demand, we now have a fresh new integration of the very latest 2.0.7 version.