During the past few weeks I implemented a couple of smaller improvements for the URDF designer application. As already mentioned, this application was never intended to be used in production. It’s a showcase project and my personal playground for learning more about cloud based IDEs using Theia and Eclipse Che.
Controls for revolute and continuous joints
Simply rendering robot links wasn’t satisfying enough and I added slider controls for all ‘revolute’ and ‘continuous’ joints in the preview control.
The Eclipse foundation have just released Theia 1.0, a new desktop and cloud base IDE very similar to Visual Studio Code. In fact it's so similar it can use. Dockerfiles/theia folder contains the container image sources of eclipse/che-theia: Using a Docker multistage build and dockerfiles/theia-dev as builder. Using che-theia init command to decorate Theia with Che-theia plugins and extensions. Acronis true image free edition full. Eclipse Theia is a framework for creating web-based tools and IDEs. Consider it a more open and flexible alternative to VS Code. Eclipse Theia shares quite a number of core concepts with VS Code (including the language server protocol and the UX design), and it reuses certain open VS Code components, such as the code editor. Java Gitpod Eclipse Theia Tweet GWにYouTubeでJava関連の動画を見ていたら、環境構築が大変だよね、みたいな話からDokojavaが紹介されていました。.
Improving the default outline provider
I didn’t like the hierarchical outline view presentation that is provided for LSP editors in Theia by default. I thought it’s clearer to flatten the details tree and give each model element a unique icon. Unfortunately it turned out that adjusting the outline view is not trivial and the only way to achieve this is overriding and rebinding the default outline contribution. In addition to that, I also had to modify the qualified name provider to push some extra type information to the frontend.
Synchronizing texteditor and preview widget
Theia comes with a global selection service that allows the delivery of arbitrary selection events. There are already a couple of interesting built-in events, selecting a file in the navigator raises a file selection event for instance.
After I had overridden the standard MonacoOutlineContribution, I gathered enough knowledge how to track the currently selected link in URDF text editors. Whenever the textual description of a robot link is selected, a LinkSelection event is distributed by the global selection service.
An exemplary consumer of fired LinkSelection events is the preview control that highlights selected links accordingly.
That’s all! I hope you like the new features and maybe the linked sources will help you with your own projects too.