Complete the Un-Completable: The State of AI Completion in JetBrains IDEs
blog.jetbrains.com
blog.jetbrains.com
I would be hugely discouraged if I ever discovered that part of their push to get developers using _their_ AI models and service was to lock out any competition from being able to offer an alternative.
There's been a lag between some of the fancy features enabled by VSCode-based tools and plugins like Cursor, Void, etc, and their equivalent becoming available in Jetbrains, due to the completion limitations.
I tried those tools. But I love my PyCharm IDE. When Continue made a configurable plugin that would let me hook it into 3 different LLM at once (for different contexts of completion), I decided to stick with PyCharm instead of investing the effort to adapt to VSCode.
Those plugins are only going to improve if additional capabilities in this area are exposed by the IDE. This will be fantastic but will mean that Jetbrains own features and AI service will be competing with its plugin ecosystem. Which will include paid plugins' associated lock-in models, and open plugins that let users choose from whatever AI model works best for their use case.
I have faith that Jetbrains will continue doing the right thing here until I see evidence otherwise. For any other company, I would be a bit concerned to see what could be perceived as a conflict of interest between themselves and their users. But Jetbrains is smart enough to know that developer satisfaction is their primary goal which will drive sales, and that limiting ecosystem capabilities to drive an advantage for their own service would be contrary to that effort.
I'm sure this would be quickly found by anyone decompiling the plugin or otherwise investigating how it works if they did so, though.
I'll often accept a suggestion just to test it, seeing if the IDE pops up an error a few seconds later. Or else running it in dev and seeing if it actually works. Probably 50% of the time I'll still end up significantly modifying the code or rewriting it from scratch.
Previously I used to obey a rule that if I ever use LLM generated code, I have to manually type it in - so that I myself have the familiarity of every symbol in the code. This helped considerably reduce that problem. But I stopped doing that out of laziness.