It has been a while since I last shared an update about Theia. A lot has happened since then.
That’s right, Theia is moving to the Eclipse Foundation. The project has already been created and we are now in the process of getting approval from all the committers to relicense the code base. So far, Theia was licensed under Apache 2 but will now be relicensed to a dual license of EPL2 and a secondary GPL. The GPL bit is only interesting if you intend to use Theia in a GPL context, as EPL2 is not compatible. In most scenarios, especially for use in commercial products, the EPL2 license will apply.
Eclipse Che uses Theia
Another great news for the community is that the Che team has started to open up the Che workspace server to run Theia instead of the current GWT-based Che IDE. The plan is to completely switch over to Theia eventually. For that, we need to catch up and add some features that are available in today’s Che but not yet in Theia.
Together with Ericsson and TypeFox, RedHat has started to actively contribute to Theia. Besides several smaller issues, the team has started working on a visual debugger supporting the Debug Adapter Protocol, as well as a plug-in system that allows running plug-ins in a sandboxed environment similar to how VS Code does it.
The new more restricted plug-in system will be optional and developed in addition to the existing extension model of Theia as they address two different use cases: Plug-ins are meant to be used for smaller and simple features, while with extensions you can build anything you want including fully white-labeled products.
The plug-in API is designed with the current VS Code API in mind. The goal is to eventually fully support VS Code extensions through that.
Lots of new features
Finally, we have added many new features in the last four months. Without going into too much detail, here’s a list of the new & noteworthy things that have been done in 2018 so far:
The workbench shell has been rewritten and now supports drag & drop between all panels. We have added a bottom panel in addition to the side panels. For more details, read Miro’s blog post.
The Git integration now comes with commit staging, Git diff, and Git history. Git changes are signaled through annotations in the navigator as well as in editors.
The navigator supports drag & drop, quick search and auto reveal with regards to the active editor. You can even upload files by simply dragging them from your desktop onto the file navigator. Furthermore, the navigator supports annotations. For instance, error markers and git changes are now shown in the navigator.
The new search support allows searching for text occurrences in the workspace. Regular expression, glob patterns, and search & replace are supported, as well as some other options.
There is much more like the call hierarchy or the neat markdown support that are worth to check out.
The strong support from different vendors and the move to Eclipse Foundation are a promising basis for the future of Theia. After one year of development, we are truly happy (and proud) to see our baby starting to fly.
It is now ripe to be used as the foundation for new cloud and desktop IDE-like tools. If you want to learn how, you can either attend the tutorial on Theia during next month’s EclipseCon France, send me a mail, or simply chime in on GitHub or our Gitter channel.
P.S.: I was often asked whether I use Theia to develop Theia. I can finally say, yes. And I enjoy it. 🙂