Skip to content

(WIP) Update the JS support and Generalize the addition of new programming languages to Rocs

João Durso requested to merge buendia/rocs:update-js-suport into master

This Merge Request will be used to save the progress in JS support and save the drafts about the generalization of adding new languages.

  1. This Merge Request updates the JS support replacing the deprecated engine classes to the new ones available in Qt 5.15+. However, the debugger was not replaced, and don't have compatibility with the new usage. It has to be created again from scratch.

  2. It gives Rocs a new ComboBox which was thought to start the generalization of adding new languages ​​in Rocs. Currently, Rocs has JS and Python (it's been improved and refined in other branch) support. However, we want Rocs to have more and more languages support in the future. The idea here is to think about some plug-in architecture, like an Abstract Kernel, which will get the selected language in the ComboBox and run the respective Kernel. For example, if the user selects "Python" in the ComboBox, the Abstract Kernel should call and run Python Kernel. Take a look at the image below. Also, the ComboBox can be found at src/ui/codeeditorwidget.cpp and the Kernel at libgraphtheory/kernel/kernel.cpp. You can start from there.

AbstractKernel

In addition, we are leaving our Trello with some images that explain this issue and help to find the solution. Use it wisely and please don't mess it up, because other people can use it in the future.

Merge request reports