I have been using code completion more on small scripts and it is definitely useful for repetitive parts. The problem is that I sometimes accept a 10-line block because it looks reasonable, then five minutes later I cannot explain why one condition is there.
A recent example was a file-processing script. The completion added an exception branch and a fallback value. Both looked sensible, so I kept them. Later I changed another part of the script and realized I had no idea which errors the branch was supposed to catch. Nothing was technically “wrong”; I had just skipped the thinking step.
I am not trying to avoid the tool. I want a way to use it without slowly turning my own code into something I only recognize visually.
One thing I have started doing is accepting smaller chunks and rewriting any block I cannot explain in plain language. I also try to run the code after each meaningful change instead of accepting three suggestions in a row.
That is slower, but maybe that is the point while I am still learning. What habits have actually helped people keep track of generated code rather than just supervise it?