I'd like to add that this functionality after all this time is still both one of the most helpful and one of the most annoying aspects of writing M query as far as I'm concerned. I'm really surprised this hasn't gotten more attention.
There are actually two aspects of writing with intellisense functionality that are both equally annoying imho. The first has been described above, which means that building up a formula from the inside out, is nearly impossible, since at times it just feels like fighting with the query editor, just to not have your code deleted (especially if you missed the fact that IS deleted a part of your code). I can hardly imagine anyone seriously suggesting to design this, this way. And even if that has been the case, I'd say, let us agree that the design is flawed as far as this goes. The name pretty much suggests it's intended behaviour, which it to sense in an intelligent way what is the most productive way of helping. That's clearly not happening right now. For me it became a trade-off, accepting both the pro's and cons or neither and deciding for myself which one I can best live with.
The second part is that the intellisense function also overwrites keywords, which imho should never be possible. So an easy and very helpful fix would be to only start suggesting an auto-completion after the keyword list has been eliminated. E.g. when writing something like if ... then .. else ... (it will autocomplete "then" and change it as soon as I press space, unless I escape the intellisense). The same for other keywords like "in" (which is something that comes up in literally every query you write at least once). Please take this seriously, even if this is an old thread already.
I'll write about the editor deleting my comments (still) in a different thread. Thank you for your time!
Cheers,
Niels