Eclipse Theia 1.27 Release: News and Noteworthy
We are happy to announce the Eclipse Theia 1.27 release! Just before summer, this is a big one again, the release contains 76 merged pull requests and we welcome four new contributors. In this article we will highlight some selected improvements and provide an overview of the latest news around Theia.
You don’t know about Eclipse Theia, yet? It is the next-generation platform for building IDEs and tools for the web or desktop, based on modern state-of-the-art web technologies. For more details, please refer to this article and visit the Theia website.
As always at the end of a quarter, we updated the Theia roadmap for Q3. Also note that support for Node 12 has been finally dropped.
In the development month leading up to the 1.27 release, we are happy to welcome four new contributors, adding up to a total number of 115 active contributors within the last 12 months. Thanks to all the great work from the contributors, Eclipse Theia continues to be one the most active projects at Eclipse.
If you are looking for a simple way to check out the new release, please download Theia Blueprint, which has just been updated to 1.27. By the way, Theia Blueprint just won the Eclipse Cloud Developer Tools Contributor Award!
As an adopter, building your own tool based on Eclipse Theia, you will certainly benefit from the added features highlighted below when updating to the new version. Please also check out the release notes, the breaking changes and the migration guide.
Further, please continue to ask questions in the community forum and consider filing issues for bugs and features.
Eclipse Theia 1.27: Selected features and improvements
In the following, we will highlight some selected improvements in the new release. As usual we cannot mention all 76 improvements, however we will focus on the most notable changes as well as changes visible to end users. The corresponding pull requests are linked under the respective heading.
Dynamic Debug Configurations
Theia 1.27 adds support for dynamic debug configurations. Several debug adapters allow you to start debugging sessions. These are more context-driven rather than being already fully configured beforehand. As an example, you can debug a .js file that is currently opened without any further configuration steps (see screenshot below). As you can see, the drop down menu where the users selects the debug configuration to be executed can have additional entries now. These entries (“pwa-node” in the example below) allow the user to start dynamic debug sessions (“run current file” in the example below). For convenience, Theia 1.27 will remember the last three dynamic debug configuration triggered by the user and directly add them to the drop down.
“Install another extension version”
As you might know, Theia supports installing VS Code extensions. This means that you can use the huge ecosystem of available extensions for VS Code also in Theia-based tools. Theia 1.27 adds an option to select “Another version” for any extension before the installation. This allows the user to select the exact version to be installed, not only the latest. By the way, Theia by default uses the Open VSX Registry, a completely open and vendor neutral alternative to the VS Code marketplace. It provides some very interesting features for industrial use, as an example it can be hosted on site providing control over the available extensions to be installed.
As a platform, every Theia release also contains improvements for adopters, i.e. people building tools and IDEs based on Theia. The 1.27 release introduces a styling service that allows adopters to dynamically change styles using code. This allows all sorts of use cases when customizing the look and feel of Theia. A simple example where this is already used is to fix specific themes that do not correctly specify a color for the background of popups. This is shown in the screenshot below, on the left, the popup gets transparent, on the right, the styling service is used to dynamically fix the issue.
Faster JSON-RPC Communication
Every Theia-based application is split into a backend and a frontend. This allows to deploy Theia applications as desktop applications (using Electron), but be deployed remotely in the cloud and accessed via a browser. Theia relies on JSON-RPC for exchanging messages between frontend and backend processes. In Theia 1.27, the team did a big overhaul of the JSON-RPC communication which led to significant performance improvements. This is especially noticeable when loading big files (>10MB) where the new protocol is up to 30 times faster than before. For the upcoming release, another performance improvement is planned for the VS Code extension API that Theia provides, see here for the details.
Request access to USB, Serial and HID
Although this feature is still experimental in VS Code, Theia 1.27 already supports requesting access to WebUSB, WebSerial and WebHID devices. This is very useful for embedded development and Theia is heavily adopted in this domain. As you might know, there is CDT.cloud, a C/C++ environment based on Theia, check it out!
All these features and improvements (in total 76) were the result of one month of intensive development. Eclipse Theia follows a monthly release schedule.We are looking forward to the next release due at the end of July, stay tuned! To be notified about future releases, follow Theia on Twitter and register to our mailing list.
If you are interested in building custom tools or IDEs based on Eclipse Theia, EclipseSource provides consulting and implementation services for Eclipse Theia as well as for web-based tools in general. Furthermore, if you want to extend Theia with features such as the toolbar or the test framework, EclipseSource provides sponsored development for Theia, too. Get in contact with us, to discuss your use case!