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. …
The Eclipse Theia Community Release 2023-08
September 15, 2023 | 7 min ReadWe are happy to announce the fourth Eclipse Theia community release “2023-08”, version 1.40.x!
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 a well-rounded introduction to Theia and visit the Theia website.
In contrast to the monthly releases, community releases are provided every quarter by the Theia project. A dedicated release branch allows contributors to harden and even hotfix a community release. Finally, third-party technologies, such as Eclipse GLSP or CDT Cloud, select the community release as a compatibility anchor, i.e. they provide versions that are compatible with a specific community release. Learn more about the advantages of the Theia community release and visit the Theia release page.
In a nutshell, if you adopt Theia and do not always want to consume the monthly releases, the community releases are your way to go!
By adopting the community release, you also benefit from compatible versions of the following technologies integrating with Eclipse Theia. This means the project teams have explicitly tested and refined these versions with the Theia community release.
See the community release page for a full list of compatible technologies
One important announcement for adopters of Theia who use the Theia Git Extension: As discussed in several dev calls, the Theia team decided to deprecate the @theia/git extension. It has a large functional overlap with the VS Code built-in Git extension and – as you can use the VS Code extension for Git in Theia – it isn’t economical to maintain a Theia-specific Git extension anymore. Thus, if you are an active user of the Theia Git extension, we recommend you to evaluate switching to the VS Code built-in. If you see any issues with the switch, please raise them on this ticket.
Further, we would like to remind again that the call for submissions is open for TheiaCon 2023 is open. TheiaCon 2023 will take place as a 2 days virtual event on November 15th and 16th. The event is the perfect place to learn about news around Theia and its community. If you have anything interesting to share, please consider submitting a talk. This especially also includes adopter stories, i.e. if you build an application based on Theia, TheiaCon is a great place to present it.
Another great event to learn about Theia and related technologies is coming up in October (16.-19.), make sure you register for EclipseCon 2023:
Now, let’s summarize some highlights on the road to this fourth Theia community release!
Highlights of the Theia 2023-08 community release
A community release is the result of three months of development. Therefore, the 2023-08 release contains the improvements that were added in the Theia releases 1.38, 1.39 and 1.40, which is in total, 122 astonishing pull requests. Let’s look at four highlights!
Detachable View Support for Electron
With Theia 1.30, we introduced support for detachable views in browser applications. The current community release also enables detachables views for Electron applications (see screenshot below). Therefore, you can move views from the main window into secondary windows, e.g. to use the space of a second screen. Theia by default currently enables this feature for WebViews and the Terminal. However, as an adopter, you can activate this feature for your own views, too.
Support for multiple extension registries
Theia 1.39 added support for connecting to multiple extension registries. Extension registries, such as the openVSX Registry allow the user of Theia-based tools to install VS Code extensions at runtime. Supporting multiple, configurable registries is a very interesting feature in commercial settings, as openVSX is itself an open-source project and adopters can host their own instances. As an example, the provider of a Theia-based tool could provide custom extensions via their own registry and, for instance, only include extensions that they’ve tested against their specific product. As another example, if Theia is used in a restricted, internal context, a custom openVSX instance can only provide access to cleared extensions and therefore ensure security for internal development environments. The extensions registries available to the user of a Theia-based product can be configured via a configuration file, see the linked PR above for more details.
UI and Usability Improvements
The 2023-08 community release again contains several UI improvements. As a first example, Theia adds an advanced option for previewing tabs when hovering over them. By enabling the mode “visual”, Theia will render a visual preview of the actual content of an editor when the user hovers over its tab (see screenshot below).
As a second example Theia improves the overflow behavior for the quick access bars, i.e. in case there are two many views open to fit into the side panel. As shown in the screenshot below, the side panel will collapse the bottom views into a “…” icon, which allows users to still access them via a context menu.
As a third example, the new community release improves the management of open tabs in the editor area by adding a drop down to the tab bar (see screenshot below). This drop down is only displayed if not all tabs fit on screen anymore. Then, the menu allows easily accessing open tabs. However, the default behavior is still to show a horizontal scrollbar, so if you want to benefit from the new behavior, please turn the setting “Shrink tabs to fit available space” on. Please let us know how you like the new tab management behavior, we might consider making it the default in Theia.
Startup performance improvement: Backend bundling
Theia 1.39 introduces webpack bundling for the backend (details see link above). The original motivation of this change was actually to enable the upcoming support for SSH remote support. This will enable Theia to connect to a running container via SSH, upload the Theia backend and connect to it directly from the client (a.k.a. “Remote container support”). However, bundling the backend, which is already included in the current community release has two very notable side effects: First, due to the reduction of the number of files in the backend, the startup time of the backend is significantly improved. Depending on the file access speed, the improvement can be by factor 3-5! Second, the size of the backend is reduced to roughly a third of the original size.
These were just some selected highlights from the latest Theia community release, but there is much more!
The 2023-08 release also ensures compatibility to the latest VS Code extension API. As you might already know, you can use VS Code extensions in Eclipse Theia applications. This enables you to enhance your Theia-based application with a pantheon of features from a huge ecosystem of available extensions available for VS Code, e.g. via the openVSX Registry. VS Code extensions specify the minimum version of VS Code that they require to run, to ensure compatibility. The Theia community release 2023-08 raises the compatibility level to 1.79, which is only one month behind VS Code and allows the vast majority of extensions to be installed in their latest versions.
Please check out the monthly release announcements of Theia to read more about the developments in the 2023-08 release. We are looking forward to the next Theia community release in November 2023!
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!