zircon
zircon copied to clipboard
IntelliJ plugin for Zircon
Integrate Zircon as an IntelliJ plugin
It would be nice to integrate Zircon (runtime) as an IntelliJ plugin. Use IntelliJ since it probably the most used IDE in context of Zircon, for instance since it has the best Kotlin support.
Rationale
Raise developer productivity
Suggested way of implementing
- during game development you often have lengthy debug sessions, thus switching the context between the Zircon window (running game) and the IDE. Providing the capability to run the game as a IntelliJ view would help to raise developer productivity
- the plugin view could provide a run/pause/stop functionality, similar to the editor of Unity3D. There is currently the Application interface in Zircon, which provides already the needed hook functions, although the semantics include not the game loop.
- maybe it would make sense to integrate microline also ? (e.g. clicking on a saved microline file in the project view opens microline in an Intellij view and so forth).
I did some really rough research on that topic.
It turns out the InteliJ's UI framework is based on Swing. This is a big pro. The basic ingredient from IntelliJ's plugin framework will be ToolWindows (https://www.jetbrains.org/intellij/sdk/docs/user_interface_components/tool_windows.html) that can embed any JComponent.
To enable this all, Zircons API has to be opened to create just the Canvas
used from the SwingCanvasRenderer
that can be added a component to the ToolWindows content pane.
Another plus to this would be to enable others to embed a Zircon view in any Swing based application, like https://github.com/mabe02/lanterna allows.
This is great. We already accept a Canvas
as a parameter so this only needs to be added to the API. 👍