26 ms·
> code their own analyzers for some languages like Scala and Rust instead of relying on the support provided by the compiler frontend through the language serve
by dmitriid 5y ago
> code their own analyzers for some languages like Scala and Rust instead of relying on the support provided by the compiler frontend through the language server protocol
Because IDEA doesn't support LSP. Because IDEAs analyzers are not external entities running in an external process and communicating in JSON over HTTP.
- pkolaczk 5y agoIt doesn't support LSP - that reads: it is not polished, or sometimes hardly even works for a bunch of languages that other IDEs and editors work fine with. BTW: I'm not saying it is bad or doesn't get the job done for a selected set of languages. I'm only referring to the "polished more than the other IDEs" bit in the OP comment. It is kinda love-hate relationship to me. Not polished, but we can live together ;)
- dmitriid 5y ago> It doesn't support LSP - that reads: it is not polished No, it doesn't read like that. > sometimes hardly even works for a bunch of languages that other IDEs and editors work fine with. LSP is as much a hit-and-miss. And it's definitely not polished, let's say, for Java.
- pkolaczk 5y agoMost (all?) LSP implementations are open source. If the same effort they put into reimplementing the compilers went into making better LSP-based solutions, LSP would run circles around custom plugins, because LSP has accurate data from the official compiler. However, I guess I know why they are not doing that: because that would benefit the competition as well. And yeah, obviously Java story is definitely polished, but it has been under development for decades, and also Java is quite a limited language.
- ptx 5y agoActually, Microsoft's Python LSP for VS Code is proprietary[1] (as are some of their other extensions) whereas PyCharm Community Edition is open source[2]. [1] https://visualstudiomagazine.com/articles/2021/11/05/vscode-python-nov21.aspx https://visualstudiomagazine.com/articles/2021/11/05/vscode-... [2] https://github.com/JetBrains/intellij-community/tree/master/python https://github.com/JetBrains/intellij-community/tree/master/...
- dmitriid 5y ago> LSP would run circles around custom plugins, because LSP has accurate data from the official compiler. If, and only if the official compiler is actually designed to support compiler-as-a-service etc. And this only begins to scratch the surface. Let me introduce to a nearly unending and continuously expanding list of refactorings alone in IntelliJ: https://www.jetbrains.com/help/idea/refactoring-source-code.html https://www.jetbrains.com/help/idea/refactoring-source-code.... What about other things external to the compiler like immediately recognising and mapping project configs and structures (for example, Spring, or Symfony, or...)? Or things like "version X of the language introduces new things and we can automatically refactor your code to reflect the new ways of dealing with things"? Or...
- kaba0 5y agoLSP is hardly polished for the majority of languages either. Sometimes Intellij’s support is much better, eg. afaik people like writing Rust with Jetbrains’ tools.