We are happy to announce the Eclipse Theia 1.34 release! The release contains 51 merged pull requests and we welcome eight 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.
The 1.34 is the release candidate for the 2023-02 community release, the final version of it will be published February 23rd. If you plan to adopt this release, now is a good time to prevalidate it and report/fix any potential issues. Also, if you provide a technology integrating with Theia, please check the compatibility and get listed on the community release page.
Please see the community release page for all relevant dates. If you don’t know about Theia community releases, see this description about the idea of community releases in general and the announcement of the first Eclipse Theia community release 2022-09 for more details.
Eclipse Theia 1.34: Selected features and improvements
In the following, we will highlight some selected improvements in the new release. As usual we cannot mention all 51 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.
VS Code Extension compatibility raised to 1.66.2
The 1.34 releases focusses a lot on ensuring compatibility to VS Code extensions. As you might know, you can use VS Code extensions in Eclipse Theia based applications. This provides access to the huge ecosystem of available extensions as they are available in VS Code, e.g. via the openVSX Registry. VS Code extensions specify the minimum version of VS Code they require to run to ensure compatibility. Theia 1.34 raises the compatibility level from 1.66.2, which allows the vast majority of extensions to be installed in their latest versions. Compatibility to VS Code version 1.68 almost made it to the release and it will be backported to the community release 2022-02. Therefore, the upcoming community release will support 1.68.2. On the main development branch, we are actually getting very close to version 1.74 (the latest VS Code version). So we expect to close the gap even further very soon. Please note that you can often also use VS Code extensions which require newer versions and are not formally marked as supported, as their specific API might already be supported.
In the 1.34 release, Theia provides several improvements and bug fixes for the debugging capability and the debug view. As an example, as an extension developer, you can now add additional toolbar items, which are shown during a debug process. These items are displayed in the regular debug toolbar, just next to “Step over”, “Step in”, etc. As you can see in the screenshot below, these actions can be specific to the context, i.e. they can only be available when a specific debug session is executed.
A small but often very useful addition in Theia 1.34 is the ability to open the location of a file that is currently editor in the systems explorer. To do so, right click the tab of an open editor and select “Open Containing Folder” (see screenshot below). Please note that the name of this action depends on the operating system. This will use the default file explorer of your operating system to show the location of the opened file. This feature is exclusive to desktop applications, it is not provided in browser applications based on Theia.
TreeView Improvements for VS Code Extensions
Theia 1.34 provides full support for Drag and Drop in custom TreeViews, i.e. TreeViews that are provided via a VS Code Extension. This feature was added in VS Code version 1.66.
As you can see in the screenshot below, Theia also supports dragging multi selections. Please note that Theia supported creating TreeViews with Drag and Drop before this was even introduced in VS Code. Besides VS Code Extensions, Theia provides a second, more powerful extension mechanism called Theia extension which allows you to provide fully custom UI elements. Please see this comparison between Theia extensions and VS Code extensions.
Thei 1.34 adds support for terminal profiles. A terminal profile is a named configuration of shell executable and parameters. For example, you could create a profile that uses “zsh” for new terminals and adds the variable “DEBUG=true” to the environment in the shell. By choosing a default profile, the user can determine which shell is started and what parameters are used for it when creating a new terminal. Theia detects some profiles by default and plugins can contribute their own terminal profiles. The user can override those profiles or create extra profiles in the preferences. There is a separate set of profiles for every runtime platform. The support for terminal profiles in Theia is provided via the VS Code extension API.
One feature specifically interesting for developers building Theia-based applications is the ability to limit the rate for extension downloads during the build process. Theia-based applications can have so-called “builtin” VS Code extensions. These are extensions that are already installed on first startup. Therefore, they are part of the build process and often, they get downloaded from the openVSX extension registry during the build. To prevent misuse, openVSX has a rate limit on downloading extensions, which normal users would not hit. However, the automatic build process could try to download a lot of extensions at once. To prevent hitting the rate limit, since Theia 1.34 you can specify a limit for the build process. The download process will still be very fast, but you won’t be blocked for too many requests.
As always the 1.33 release contains much more than described in this article. All these features and improvements (in total 51) 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 just before Christmas, 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!