From method extraction, to module, namespace, function renaming, to adding parameters to functions, it just takes care of it.
My suspicion is that Java does it as well (but I don't have experience with it), but every other language I've tried lags far behind it.
It's been really frustrating to be really getting into something then tripped up because it doesn't understand that when you're renaming Foo to Bar you also want foo.ext to become bar.ext. Or when you want to make foo(a,b,c) become foo(b,c) that it's the first parameter that needs removing (automatically) from all calls. Or even when transforming foo(a,b,c) to bar(b,c,d) that it can fix the calls with combined re-move and add parameter instructions.
Some languages are starting to catch up, but I've seen nothing that has come close to the productivity that C# has delivered specifically with respect to refactoring.
Can anyone recommend other language / IDE combinations that can deliver that kind of productivity?
(And I don't want to get into a discussion about whether that's misplaced productivity because it's better to write in a way that doesn't need re-writing and re-naming things all the time, because you might be right but it's one of those times that being right doesn't change the reality of the work environment.)