| On this note, I still haven't found a language that does broad refactoring as well as C# (with resharper) does. 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.) |
IntelliJ IDEA is the original tool from the resharper guys (jetbrains). You will find pretty much every feature of resharper natively on IDEA with java/kotlin. Those were ported into resharper.
Jetbrains usually have very good IDEs, I've not used them all, mostly just IntelliJ which looks like the one they prioritize onto, so I recommend you to take a look if you liked the resharper experience.
Also, they have their own C# IDE: Rider, that should have all resharper niceties.