Why is SourceKit-LSP on Swift so backward?

Compared with other languages, Swift lags behind in the development of LSP and receives little attention. So far, such basic functions as rename are not supported. It is impossible to imagine that this is a cross-platform language


i imagine it's probably because Apple was once heavily invested in XCode, so SKLSP did not get much attention until very recently. but things do seem to be improving at an encouraging pace, just one year ago SKLSP was completely unusable whereas now i can actually use it in my day to day programming.


Although the functions of SourceKit-LSP are available, the basic functions of SourceKit-LSP are backward and do not improve the efficiency. Let's hope Swift gets better and better

As @taylorswift already mentioned, improving SourceKit-LSP is a matter of resource allocation. Given infinite time, I would certainly love SourceKit-LSP to support the entire LSP feature set, not have any bugs and be as efficient as possible. But since time is limited there are always trade-offs to be made between SourceKit-LSP and other work. Note that some of the work that is being done outside of the SourceKit-LSP repository directly benefits SourceKit-LSP ā€“ just to name one example, Iā€™m currently working on improving code completion correctness in invalid code apple/swift#63717.

Also note that Swift and SourceKit-LSP are open source projects, so if you are interested in improving SourceKit-LSP, contributions are always more than welcome. If you need help getting started, always feel free to ask and we are happy to help.