SuperCollider VSCode / Language Server Protocol support

Right now, the language server has access to:

  • all symbols (classes/methods) in the class library
  • all environment variables in the current environment (only for autocomplete)
  • all names for singleton / def style objects like Ndef, Pdef, OSCdef etc. (only for autocomplete)

None of these things really needs a concept of a “workspace” (though VSCode has workspaces and some LSP features leverage this). Some kind of knowledge of e.g. local variables and scope would be good, but that feels very far down the priority list - though if you have specific idea about how this would work, I’d love to hear them!

I’ve built a lot of “workspace” style functionality for myself for e.g. doing recordings into a local workspace folder rather than the “system” supercollider recordings folder, doing relative includes, and things like this. I’ll eventually refactor all of these things to be language server extensions, so there will definitely be a very extensible concept of a workspace added at some point (very soon probably, because I sort of need these features to get any work done :slight_smile: )

1 Like

Amazing! Has anybody been able to get this running with scnvim?

1 Like