Before, I was always wondering why all of software doesn't use <insert autocompletion or autointendation feature name>.

But now I realize that the "smarter" autocompletion is, the more frustrating it is when you act outside of it's assumptions. The most recent example is Godot, that deletes existing object/class/function name in script if you try to use tab to autocomplete while writing another object/class/functiom name right before it.