Jonas Helming, Maximilian Koegel and Philip Langer co-lead EclipseSource. They work as consultants and software engineers for building web-based and desktop-based tools. …
Eclipse Theia 1.46 Release: News and Noteworthy
February 9, 2024 | 7 min ReadWe are happy to announce the Eclipse Theia 1.46 release! The release contains 69 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.
For those new to Eclipse Theia, 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.
The Theia project also releases a product, the Theia IDE. The Eclipse Theia IDE is a modern and open IDE for cloud and desktop aimed at end users. The Theia IDE is based on the Theia platform. For more details, see the Theia IDE website.
If you are looking for a simple way to check out the new release, please download and install the Theia IDE, which is based on Theia 1.46.
Eclipse Theia 1.46: Selected features and improvements
In the following, we will highlight some selected improvements in the new release. As usual we cannot mention all 69 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 when applicable.
Support ‘browser-only’ Theia
We are happy to announce a groundbreaking addition to Theia in our 1.46 release: the initial support for “browser-only” Theia applications. This feature allows Theia applications to be executed entirely in the browser, without the need for a traditional backend. For Theia-based applications that do not require any specific services to run in a backend, the new feature allows the application to be hosted as a simple static website. This significantly reduces the effort and costs associated with hosting web-based tools and IDEs.
The implementation of this feature has been carefully designed to ensure minimal impact on existing Theia-based applications. Thanks to the adapted Theia CLI tooling, Theia now supports the new browser-only target and frontendOnly Theia extensions. Please note that the browser-only mode provides a very initial implementation yet, open items are tracked in this issue. For more information, including hosted example applications, see the corresponding pull request. Also refer to our article about Running Eclipse Theia without a backend including a video of a TheiaCon talk.
Support for Headless Plugins
In the latest 1.46 release of Theia, we introduce “Support for Headless Plugins,” a significant enhancement for extension developers and users. Before we dive into the feature, please be aware that Theia supports several extension mechanisms: Theia extensions, VS Code extensions and Theia Plugins. Please refer to the Theia documentation to learn more about these different extension models. With 1.46, we add an additional type of extension: Headless plugins.
One of the key advantages of Theia plugins over VS Code extensions is that the provider of a Theia-based application can extend the plugin API with new namespaces, as detailed in our documentation. This allows you to easily provide custom extension points in custom tools or IDEs.
However, the VS Code extensions API focuses on the frontend only, it does not allow connecting plugins directly to a Theia extension’s backend. The traditional method required plugins to communicate through an intermediary in the frontend, which restricted the potential of backend services and extensibility on the backend.
With the introduction of “headless plugins” this limitation is a thing of the past. These plugins operate in a child Node process, similar to existing backend plugins, but with a key difference: they exist independently of frontend connections, hence the term “headless.” This architecture means that the plugins are unaware of and unaffected by Theia frontends.
This enables new use cases such as providing a command line interface (CLI) that does not rely on any UI and can be easily extended by users at runtime.
Filter verified extension on OpenVSX
In the 1.46 release of Theia, we’ve added a new feature, “Filter verified extensions on OpenVSX”, aimed at enhancing user security and convenience in the extension marketplace (see screenshot below). This update introduces a blue checkmark next to the publisher’s name for verified extensions, allowing users to easily distinguish them from unverified ones.
A new preference, extensions.onlyShowVerifiedExtensions, has been added to control whether only verified extensions appear in the vsx-registry by default. Additionally, a toggle is now available near the search bar for users to quickly filter their searches to show only verified extensions.
When attempting to install an unverified extension, Theia will display a confirmation dialog as a security measure. Users can test this feature by searching in the extension view, where verified extensions will have the blue checkmark. Toggling the ‘Only Show Verified Extensions’ switch will adjust the extensions.onlyShowVerifiedExtensions preference accordingly.
Enhancements for Tree Views
Theia 1.46 introduces two significant improvements for Tree Views that are noticeable to users. Initially, as demonstrated in the following screenshot, a new user setting lets you adjust the indentation of trees. This feature provides a compromise between gaining a distinct structural view of a tree hierarchy and conserving screen space, particularly in terms of width.
Additionally, trees featuring checkboxes now have keybinding functionality. You can select and deselect tree items by pressing the space key, allowing for keyboard-only interaction with tree views (see following screenshot).
Developer documentation improvements
The Theia 1.46 release brings significant improvements in developer documentation, focusing on three key areas that enhance the understanding of Theia’s capabilities.
Firstly, the documentation now includes a comprehensive guide on @multiinject
/ Contribution provider, see the details in this pull request. This enhancement clarifies how developers can leverage the @multiinject
pattern for dependency injection in Theia, enabling more modular and maintainable code.
Secondly, there’s an improved explanation of ‘Sending objects over RPC’, detailed in this pull request. This update provides crucial insights into the process of remote procedure calls (RPC) within Theia, specifically focusing on the nuances of sending objects through this mechanism. This documentation is vital for developers aiming to create more complex, interactive, and responsive applications.
Lastly, the documentation has been enriched with information on ‘Headless plugins and inversify DI in plugin hosts’, as seen in this pull request. This section dives into the intricacies of using Inversify Dependency Injection (DI) in the context of the newly introduced headless plugins. This guide is particularly valuable for developers looking to use headless plugins in their applications.
Updated Support for the VS Code Extension API
For over half a year, Theia has been maintaining full alignment with the VS Code extension API, a notable achievement regularly highlighted in Theia’s release notes. Theia’s latest release, version 1.46, further elevates its compatibility to version 1.85.1, closely matching the current version of VS Code. We also updated the VS Code built-in extensions to 1.83.1. This enhancement allows for the integration of most extensions in their latest versions into Eclipse Theia applications, including the Theia IDE.
The support for VS Code extensions broadens the scope of functionalities for Theia-based applications. Users can tap into a vast array of features from the VS Code extension ecosystem, facilitated by platforms like the openVSX Registry. John Kellerman’s article “Unveiling the Power of Open VSX: An Open Hub for Top VS Code Extensions” elaborates on the impact of openVSX Registry, which serves as a collaborative and inclusive platform for developers to share and discover a wide range of VS Code extensions.
As always the 1.46 release contains much more than described in this article. All these features and improvements (in total 69) 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 next month, 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. Finally, we provide consulting and support for hosting web-based tools in the cloud. Get in contact with us, to discuss your use case!