In this article we´ll answer the most frequently asked questions about Eclipse Theia, the open source platform for building web- and cloud-based IDEs and Tools. This article provides an overview, quick answers and references to follow up reads.
What is the Eclipse Theia?
Eclipse Theia is an open source platform for building web- and cloud-based tools and IDEs. Possible use cases range from providing custom language support, DSLs, but also graphical modeling tools and data-centric configuration UIs. Theia provides a workbench, a module system and reusable base features such as Git integration. Theia-based tools can be deployed remotely and accessed via a browser, or as an alternative, as a desktop Application (via Electron). Theia is based on Typescript, HTML, CSS, the Language Server Protocol (LSP) and Monaco Code editor provided by VS Code. Find more details in this introduction of Eclipse Theia.
How to download, install and run Eclipse Theia?
Eclipse Theia is a platform for building web-based tools rather than being a product that can directly be downloaded. However, you can very easily configure and launch a product based on Theia just like any other application based on Node.js. Furthermore, there is a predefined example product based on Theia called Theia Blueprint. Finally, you can use Theia as part of Eclipse Che (see also how to launch Eclipse Che) or other products that are based on Theia.
How to use Eclipse Theia?
The usability concept of Eclipse Theia is very similar to VS Code. It is focussed around a keyboard-friendly command palette. Further, Theia provides basic tool features, such as a file explorer, Git support and a code editor. A more detailed walkthrough of Theia is available in the tutorial on how to use Eclipse Theia.
How to use Git in Eclipse Theia?
The most important Git features are available via a dedicated SCM view and a history view. Additional features can be triggered via the command palette. Finally, as Theia integrates a terminal view, you can use the CLI of Git to trigger any command. Find more information on how to use Git in Theia.
How to install/use VS Code extensions in Theia?
Eclipse Theia allows to host VS Code extensions. This means you can install VS Code extensions from the Theia marketplace (called openVSX) in a Theia-based product if this option is enabled by the creator of the application. If the standard VS Code extension view is used, please see this documentation on how to install VS Code extensions in Theia. For adopters of Theia, please see this documentation on how to add VS Code extensions to Theia.
How to extend and adapt Eclipse Theia?
Theia provide two extension models: extensions and plugins. Extensions are based on dependency injection and are more powerful in terms of what you can do compared to plugins. Plugins work with a defined API, which matches the VS Code API. Plugins are encapsulated in a dedicated process and cannot “harm” the stability of the hosting product. Moreover, plugins can be installed at runtime. More information can be found in the detailed comparison of VS Code extensions and Theia extensions, as well as Eclipse Theia extensions and plugins and in the introduction to Theia extensions.
How does Eclipse Theia relate to Eclipse Che?
Eclipse Theia provides an application platform for online IDEs, code editors and domain specific tools. Eclipse Che provides a workspace server for hosting the service-site runtime environment required by these tools. Eclipse Che uses Theia as its default IDE to work in online workspaces. More details on the relationship between Eclipse Che and Theia.
How does Eclipse Theia compare to VS Code?
Eclipse Theia reuses a lot of technology and concepts from VS Code, including LSP, the Monaco Code editor and the general usability concept. Theia provides the same extension API as VS Code, so you can use VS Code extensions in Theia. Additionally, Theia provides a second, more powerful extension mechanism (see here for the difference between the extension mechanisms of Theia). Theia allows the creation of fully customized tools and is a vendor neutral project hosted at the Eclipse Foundation. See the more detailed comparison between VS Code and Eclipse Theia for more information.
How to implement graphical diagram editors in Theia?
The Eclipse Graphical Language Server Platform (GLSP) is a framework for building web-based diagram editors. It comes with a native integration in Theia and is therefore a very good choice to augment your custom tools with graphical editors. See this article about diagram editors in Theia.
How can I migrate from Eclipse Desktop to Eclipse Theia?
Migrating from the Eclipse Desktop IDE to a web-based platform such as Eclipse Theia involves a conceptual shift and re architecturing your tool. In some cases, it is possible to reuse some business logic, the UI usually has to be implemented. See this guide on migrating Eclipse plugins to Eclipse Theia or VS Code.
How can I build domain-specific or modeling tools with Theia?
Theia is very flexible and supports building tools for any kind of domain. This includes non-IDE like tools such as data-dentric tools or graphical modeling tools. Technologies such as EMF.cloud and Eclipse GLSP provide the necessary features to build domain-specific tools and modeling tools based on Theia, just as it was the case for Eclipse desktop. See this talk for an overview about EMF.cloud and this article about web-based modeling tools based on Theia.
How to get support and consulting for Eclipse Theia?
Eclipse Theia is a vendor-neutral open source project, hosted at the Eclipse Foundation. If you want to build a product based on Eclipse Theia, there are service providers to support you with initial consulting, training and the actual implementation. EclipseSource is a service provider for tools in general and for Theia in particular. See here for consulting and support offerings for Eclipse Theia, for web-based tools including VS Code and tools in general.
We hope this article provides a good starting point to learn more about Eclipse Theia. If you miss the answer to a specific question about Theia, please feel free to get in contact with us. Please also check out the overview of Theia-related articles and tutorials.