Theia capabilitiesJanuary 18, 2020 at 4:52pm
Hi there! My automation lab faced a need to create an IDE for a language that we've created, and we're quite confused about which framework we can use for it. Different parts of the team are creating different components - debugger, profiler, verifier, all in different languages like Java and C++, and in the end we're going to need to integrate them all. Is Theia suitable for this purpose? It has scalability, built-in git support, common code for web and desktop version that we need, but we don't know much about web programming and Theia's limitations regarding components written in something other than TypeScript. We're also looking at Theia and Remote Application Platform and struggle to see the difference.
January 18, 2020 at 5:00pm
Yes, it is. If you develop your language servers with LSP support (or use off the shelf ones that support LSP)and wrap them into the VS Code plugin format, there is a good chance you can simply load them into Theia and get 1st class IDE support. For debugging purposes, you would want to have your language implement DAP (debug adapter protocol), which would then also allow you to use Theia's DAP support to debug your custom language. Other languages (e.g. Java, TS, C#, etc.) that already support DAP should also work OOB with Theia.
January 20, 2020 at 1:53am
yes, it is possible, mentioned language-server-protocol (LSP and debug-adapter-protocol (DAP). These protocols are JSON-based, a server process supporting a language or a debugger can talk to a client process (a tool). Processes can be implemented in any language. If a client is Theia, then you will need to create a Theia or VS Code extension which spawns a server process.
Here some links that you learn more:
- LSP overview, specification and list of implementations: https://microsoft.github.io/language-server-protocol/
- DAP overview, specification and list of implementations: https://microsoft.github.io/debug-adapter-protocol/
- how to develop VS Code extension running LS: https://code.visualstudio.com/api/language-extensions/language-server-extension-guide
- how to run VS Code extension in Theia: https://github.com/eclipse-theia/theia/wiki/Testing-VS-Code-Extensions
I'm not sure what you mean by
Remote Application Platform?
January 20, 2020 at 2:41pm
to add to Anton's excellent answer: If you want your "language checker" to run in the background and provide diagnostics to the IDE (errors, warnings) in "real time", then wrapping it as a language server would be the way to go.
Alternatively, If it's enough to run the checker once in a while (user triggered), you could as well run it as a task (very similar to VS Code tasks). In that mode, you provide a "Problem parser" to the task, that parses the output and can create problem markers for the IDE as well.
February 11, 2020 at 5:57pm