SOUL Playground offline version / VS Code extension?

The playground (https://soul.dev/lab) of SOUL is very cool and usefull. Do you think you’ll release a offline version of that tool?

The current integration to VSCode is only based on syntax highlight, maybe someone had automated the building process (link the code editor to the command line tool) with an extension? If not, are you interested in this type of extension? Knowing that JUCE 6 will integrate SOUL natively, this extension will be potentially obsolete.

I will take a look at the documentation on VS Code extensions and weigh the pros and cons (completion time / usefulness in the context of the SOUL project).

not really. create a task launching soul play ${file}
every time you save the file, soul will recompile and play

2 Likes

Yes, this is trivial, but vscode is highly customizable. You can add some “snippets” to optimize code productivity (auto-generate SOUL basic blocks …), you can add integrated documentation à la intellisense, and you can add some gui components (more complex and potentially time consuming for our case). All of that in a bundle with global settings for common path (command line tool location on system, output folder for build result and so on …)

The big question is : how many time to do that ? If it’s a day (today?) it’s ok ! I’m currently install a tool that help to build this kind of extension (https://yeoman.io/)

EDIT:
OK, not so simple. The extension API is large enough to build quasi-application based on VSCode. As @kraken message suggest, the task.json system seem to be enough for the moment and because JUCE 6 is in the starting block. The snippets are not very usefull in the SOUL case because the low number of redondant functions & variables. All suggestions are welcome in all case!

of course, improvements there are more than welcome. especially ways to automatically render results and plot spectrograms right away a la matplotlib. which is very useful in a playground for dsp

1 Like

Here’s a PR with a some improvements on the SOUL syntax highlighting + HEART and a port for Atom. Also, just pushed some snippets.

@_maxprod Snippets for SOUL are definitely less important then say HTML but they’re pretty handy for pasting a skeleton and traversing it with TAB.

To get richer features we need a LSP implementation. I have a POC with VSCode’s extension packages and the SOUL front-end compiler that I’ll post here pretty soon.

1 Like

@nicochatzi Oh yes, very good job man. I test that soon. Thank you.

Yes - apologies that we’ve not been very responsive about the PRs that are waiting on github right now - we need to have a think about CLAs etc, and are deep in the middle of a bunch of other refactoring. But this kind of feedback is very much appreciated!

@_maxprod I haven’t officially released this yet… but you can use this https://sattern.dev/ if you want to work on SOUL code natively on macOS. It can be used as a standalone or as an AU plugin. Here’s an example project for working with a couple example SOUL patches.

SOUL.zip (12.6 KB)

The application uses https://microsoft.github.io/monaco-editor with SOUL language configuration.

2 Likes