Debugging a language server extension

I have started working slowly on getting the Ruby Sorbet type checking system integrated and it supposedly supports running as a a language server. I have gotten stuck early on in that the language server process doesn’t seem to keep running. I am pretty sure the problem is on the Sorbet side, but it would be really helpful if there was some way to log the communication between Nova and the external process. Is there a flag somewhere I could set to get more debug output?


(This is the code, if it is helpful: GitHub - jbeker/nova-sorbet: Sorbet plugin for Panic Nova editor)

If the extension in question is running in development mode (loaded using the “Activate Workspace as Extension” menu item), standard error output of the language server should be being written to the Extension Console pane of Nova’s UI. Most language servers will spit out information here if something is failing.

I’m afraid I’m not very familiar with Ruby Sorbet or how it’s generally installed (unless your extension installs it automatically!). If you can give me the gist of how to install it, I can also attempt to see what it’s doing!

I appreciate that Logan, I’ll try some more with it and let you know. This is not high priority and I am sure there are other issues that are more important to work on.

I’ve found it helpful, at some some points, to wrap the invocation of the language server in a shell script so you can do things like tee off input/output/error for inspection.