generator is just a dependency of the other lsp4j jarsOkay. Are we depending on interfaces outside of lsp4j.source? Namely, if I'm tinkering with the gradle build, should I bother specifying all the other lsp4j sources? (generator, jsonrpc)?
lsp4j.jsonrpc is way less used than lsp4j. You can point to it if you want, but what we use from it is be simple enough that you can understand what it is from context.
Where it could help would be for those trying to dig into how lsp4j works. (its inner workings and the likes)
If you mean lsp4j.debug, lsp4j.jsonrpc.debug, javax.websocket, jakarta.websocket, lsp4j.websocket and lsp4j.websocket.jakarta, then yeah, those are not relevant here.When I pointed Gradle to download org.eclipse.lsp4j: org.eclipse.lsp4j:0.12.0, it pulled in several other jars that are unlisted. Can we safely throw all of those away?
No. There is way more than just auto-completing interfaces and constructors. One of the main reason to keep the source is how lsp4j's methods (that we will use for the language server) use lsp4j classes, which *we* need to instantiate.Are the sources only used for your IDE to help out with autocomplete? Can you get by with just configuring the build.gradle to feed the relevant sources into your IDE?
Many of them have multiple constructors, because they have optional arguments.
That, on top of being supplied some of those classes, which we need to figure out how to use.