I don't believe that there's anything preventing VS Code from getting features like refactoring at the level of JetBrains at a fundamental level. One time I wrote an IntelliJ plugin that exposes an LSP server so Emacs could run Jetbrains' refactorings remotely, as a glimpse into such an ideal.
And at a philosophical level, I would imagine that having those IDE features in VS Code at Jetbrains' level of polish would be viewed as beneficial to everyone involved.
The issue is that on one hand you have an entire salaried dev organization whose sole purpose is to create the best IDE possible, and on the other you have a scattered array of open source devs who only work on the polish as much as they have free time. LSP simply came too late to the party. Everything we like about IntelliJ is now both battle-tested from thousands of man-hours of development and also impractical to architect as a separate language server. The more people that use a hypothetical JetBrains-developed language server, the less editor market share they retain.
Another hypothesis I have is that since some language servers are supported officially by the people who develop the language itself, their time becomes split between working on the language and maintaining the LSP support. Any extra time spent on one separate project takes away from the other.
And at a philosophical level, I would imagine that having those IDE features in VS Code at Jetbrains' level of polish would be viewed as beneficial to everyone involved.
The issue is that on one hand you have an entire salaried dev organization whose sole purpose is to create the best IDE possible, and on the other you have a scattered array of open source devs who only work on the polish as much as they have free time. LSP simply came too late to the party. Everything we like about IntelliJ is now both battle-tested from thousands of man-hours of development and also impractical to architect as a separate language server. The more people that use a hypothetical JetBrains-developed language server, the less editor market share they retain.
Another hypothesis I have is that since some language servers are supported officially by the people who develop the language itself, their time becomes split between working on the language and maintaining the LSP support. Any extra time spent on one separate project takes away from the other.