Do you have an existing CDT-based tool and want to migrate to Eclipse Theia or VS Code? Do you wonder how to reach a similar feature set compared to CDT and which components to use in a web-based or even cloud-based IDE? In this talk, we will provide a state-of-the-art overview and recommendations about available tools, extensions and frameworks for building web-based C/C++ tooling.
With Eclipse CDT and surrounding projects such as TraceCompass, the Eclipse ecosystem provides a very popular, comprehensive, mature and well-integrated feature set for developing C/C++ tools on the desktop, especially in the embedded area. Many tool chains, however, are currently in the process of migrating to web-based tooling and a cloud-based infrastructure. This migration involves a lot of critical technology choices and important integration work to reach an industry-ready quality of integrated language and development support on a modern UI and flexible tool architecture. These decisions include starting with the right platform (e.g. Eclipse Theia or VS Code), choosing a language server, selecting C/C++ extensions, defining build configuration management and choosing solutions for a debug adapter, memory view, tracing, register view and many others.
In this talk, we will discuss the most common bits and pieces of a C/C++ tool chain in general and in addition put a special focus on embedded development. We will discuss basic concepts, such as LSP, the technology selection, provide recommendations and also point out components currently under development to look out for in the near future. We will also demonstrate how to integrate all that into an example C/C++ tool that may act as the basis for your custom C/C++ tool product.
For this overview, we compiled the experiences gained from various customer projects, in which we are migrating to web-based tooling as well as an additional survey among members of the ECDT working group. Therefore this overview should provide you with a profound overview of current trends and guidelines to get started with your own web-based tooling project for C/C++ development.