Full Line Code Completion in JetBrains IDEs
blog.jetbrains.com
blog.jetbrains.com
As a competent programmer I've already got an idea of what I'm about to write in my head, yet having an immediate prompt suggest a "do you mean this?" turns that train of thought away from what I'm writing and instead to "is the suggestion correct and what I want?" before accepting or ignoring it.
It's not for me, I just want to get my brain waves into the IDE as quickly as I can.
That said I can certainly see how it'd be useful when working with a language you're not super familiar with, perhaps one you just dabble in occasionally, or where you're learning programming in general, or a new language, where these hints could save you a quick search for "for loop syntax in $LANG".
It's very exciting to see what will come out of AI. There's a lot of stuff not relevant to me, but in time far smarter people than I will conjure up ways to make my life easier.
I'm retraining my brain to cooperate more with AI suggestion because they will get larger and more precise too.
It's going to become a force multiplier wether I like it or not, so I don't want to be left behind.
In a near future, I'm afraid that
"this guy still types most of his code, can you believe that?"
will be a popular joke.
If the price of this is sometimes needing to learn to ignore the gray text before I write that pseudocode comment, well... it's no worse than Clippy, and we all survived that era fine!
There is evidence that ADHD sufferers are more distracted by such "helpful" IDE features. But I think we're going to just have to retrain our brains to accommodate them because we'd be leaving productivity on the table otherwise.
I wonder if they could have a "double tap" setting where you would have to press tab to see the suggestion, and then you could press tab again to accept it. That way, you could "opt in" if you know that you're about to write some brainless boilerplate or if you know you want to ask for help.
There's times though when it's distracting, so I'd love it if I could bind a key to toggle AI completions on and off. And on the other end of things, maybe another key to suggest multi-line completions...
1. New code. Esp boilerplate, templated sections, default implementations.
2. Existing code, altering purpose.
3. Existing code, same purpose but refactoring.
For step 1, full-line completion seems like a halfway step. If the expanded result can usually be expressed with something more terse, why not go 100% and rely on a language that primarily uses terse version? Guess I'm waiting for the magical AI-universo-scripto language where only the bare minimum is typed by a human, and hovering (or IDE view mode) reveals details or full description. Or perhaps something more declarative: provide the terse goal, check the execution plan to make sure the full implementation fits or decide between competing implementations for same goal.
For step 2, full-line completion is great because the surrounding code is left intact (and in fact is needed for reasonable AI suggestions).
For step 3, I could see full-line completion being of use, but more limited since full-block or full-section completion might be more appropriate.
Like, typing the start of an attribute and having the autocomplete pick up the rest of it, only to be suddenly replaced with the wrong attribute name by the model. If you press tab at the wrong time you complete something utterly wrong.
This part piques my interest though:
> It works locally and is available offline. This means you can take advantage of the feature even if you aren’t connected to the internet.
Anybody familiar with copilot tried this out and have thoughts on how it compares?
Might still be nice to use when I'm on the road though.
I assume this actually means "we only support Apple Neural Engine for hardware acceleration".