I guess I do use it in Python REPL quite often though. But there at least you have to prompt it by pressing tab.
I guess I do use it in Python REPL quite often though. But there at least you have to prompt it by pressing tab.
In user studies it was found that beginner/novice coders (or really, users that aren't SWEs) autocompletion was the most requested feature for improvement in IDE support. It's foundational for understanding what they can write and making sure it's valid.
And that makes sense to me, if you have a lot of experience in a codebase and ecosystem it's not as important. If you don't then typing `.` and seeing a bunch of aptly named methods show up, then snippet completion for their arguments to tab through them, you are immediately productive. Autocomplete turns known unknowns into known knowns.
Me: I want to type "Hi Andrew,"
Outlook's autocomplete: I see an <H>, I see an <i>...
Oh, oh, I know this one! Do you want me to autocomplete "Hi" for you?
<space>? You do! I'm helping!
and I'm left getting two characters out of my three key presses in a frustratingly unexpected way.It's a good middleground.
If I could get the navigation and analysis (go to def/decl/parent/etc., show/jump to uses/children/impls/etc.) all on its own, without auto-complete, type hints, or syntax highlighting, I'd be a pretty happy camper.
I'm fine with features that are on-demand (on-demand completion, type info, actions, etc.). They add occasional value without distraction.
About the only other things I care about in a development environment are compile output navigation (optionally with isolated warnings & errors, but full output is mandatory), configurable run and tooling integration (doesn't need to be close integration, either, just flexible and configurable).
Gravy/Frosting (depending upon your preferred metaphor) would be debugger and documentation integration. Both are hard to do well, and can usually be accomplished using a decent run/tooling interface.
I see where this is coming from. That's why I do not let neovim hit me with completions all the time, but only when I request them. Most of the time, I can work with the (neo)vim builtins, like "complete word" or "complete line" and do not even use the language-server provided semantic autocompletion. But when I need to, it is only two keystrokes away.
I'm glad that LSP exists, and I've got it hooked into vim... but autocomplete is seldom very useful to me. It's usually faster to just type the thing out.
Do you remember all those properties, method names, like wtf? how?