IDE for Quantum Computing and Programming

Hey Theia Community! I am part of the development team for Eclipse XACC, the eXtreme-scale ACCelerator quantum computing framework and programming model. We’ve used Theia often for general development and research and recently we’ve gotten interested in the possibility of adding extensions / plugins for Theia that will allow us to interact with the framework and data files that we use/generate frequently in our research. I’d love the chance to be able to open up a dialogue with someone who would be willing to help guide us through some of the best ways to accomplish our goal of creating an IDE for quantum computing and programming. Thanks for any help!

[original thread by Zachary Parks]

I guess it would help if you described a bit what features you’re trying to offer.

[Zachary Parks]

Sure, thanks! A concern of mine right now is the difference in functionalities of an “extension” over a “plugin.”

As a simple example, I am wondering if the Theia Plugin API allows one to:

  1. add a menu item (under File, or Edit)

  2. Display a window when the item is clicked

  3. Display information in that window that is pulled from the Eclipse XACC framework (obtained by running a Python script, preferably)

I am trying to learn if the Theia Plugins would allow a functionality such as this, or if an extension would be required instead

VS Code extensions (Theia plugins) support menu contributions: https://code.visualstudio.com/api/references/contribution-points#contributes.menus. Regarding to windows there are limitations. They are sandboxed and don’t have access to DOM by design, that your extension cannot break css styling and so on. You can integrate your windows via iframe though: https://code.visualstudio.com/api/extension-guides/webview

With Theia extensions you will get more fine-grained control and can change more, like completely change the shell layout. It is useful if you want ot build white-labeled IDE.

I would prefer to go with VS Code extensions as mush as possible and maybe add some Theia extensions if you have to.

[Zachary Parks]

This has been a lot of help over the past week or so! Thanks for helping me understand a little bit more