The language server is currently only added to this project as a compiled jar. Please release the source so we can contribute to that functionality. Many things are broken
@ChuckJonas - Thanks for trying this out. Could you file bugs/provide details for things that are broken? Some things like Go To Definition/ Find All References are implemented in phases so some parts are not working yet. There are also limitations around the parser (it's not a full incremental parser so certain errors confuse it). But, again, bugs with repro steps would help us work on fixing things :-)
CC: @ntotten on open sourcing the language server portion.
@ChuckJonas Open sourcing the LSP is something we have talked about. I can't say it will happen for sure, but I would like to hear more on what you would like to do and why you would benefit from it being open sourced. Its not that we are against open sourcing it, it is just something that is going to take some time so its about the effort - do we spend time open sourcing it or do we build X feature. I'd love to hear your opinion on it.
@ntotten my 5 cent,
Talking to language server is an intriguing point for people, like me, to contribute to VSC salesforce plugin.
Auto formatting Apex, for example, is one of tasks I want to contribute to in spite of limited spare time.
parameter validation across Lightning Javascript and Apex Controller is also something that bothers me.
I really wish the prerequisites can be set in place so that other regular developers working in Salesforce industry have the chance to contribute back to tools they use daily.
Regardless, thanks for the great vsc plugins, DX, language server implementations, etc. Your guys have done great work. Looking forward.
No offense, but the fact that you have to ask "why" is exactly the mindset that has created a poor experience for us developers in the first place. Lucky for salesforce, people like Scott Wells, Joe F, Andrey Gavrikov, etc have been filling in the void by writing halfway decent tooling from the ground up. Imagine if you guys had an open source LSP before they started? How mature and complete would it be?
At the moment, I just want to see the official grammar definition file for apex. I assume you guys are using antlr4?
I would also be interested in building out missing LSP features, or perhaps leveraging the tool in a CI process.
To clarify, I completely understand the desire to have this open sourced. We regularly talk with the partners you mentioned and are working to make their jobs easier. The main reason I was asking "why" was to help build the case - the more real customer data we have the more it helps us justify the time it would take to make this happen. While I wish this was just as simple as pushing the source to github, it is unfortunately not. Right now the LSP is tied into the compiler of Apex, which is in turn tied into a number of other internal libraries. We would need to go and split these apart, publish some non-open source libraries to maven, etc. in order to make the open source LSP usable. This is will take time from other projects on the dev tools team so we need to find the right balance. The feedback in this thread along with all the conversations we have with Scott and others are critical in helping us prioritize.
I'd love to chat more about this and what else we can do to help out.
Is the bundled jar, anyway useful to use standalone and hence can be integrated with other IDE's?
@asknet in theory you could call the jar as long as your system has java runtime... However, last I checked it's not well documented (although should more or less follow standard LSP)
I have shared this feedback internally. As it is not directly related to VSCode im going to close this issue.
Although this has been closed for quite some time, #2554 is an example of a feature that the open source community could give a hand on
Most helpful comment
@ntotten my 5 cent,
Talking to language server is an intriguing point for people, like me, to contribute to VSC salesforce plugin.
Auto formatting Apex, for example, is one of tasks I want to contribute to in spite of limited spare time.
parameter validation across Lightning Javascript and Apex Controller is also something that bothers me.
I really wish the prerequisites can be set in place so that other regular developers working in Salesforce industry have the chance to contribute back to tools they use daily.
Regardless, thanks for the great vsc plugins, DX, language server implementations, etc. Your guys have done great work. Looking forward.