I am more than happy with Jetbrains and Visual Stuido to do most of my work. While VS has some annoying irks, I just like things more visual such as handling merges through seeing the code as I used to instead of a text like visualization.
I do occasionally need an empty commit, visit the reflog because I fucked up or just do some check on existing commits on a branch. But no, daily I just do pull, merge, commit and push through my IDE.
What’s fun is determining which function in that list of functions actually is the one where the bug happens and where. I don’t know about other langauges, but it’s quite inconvenient to debug one-linres since they are tougher to step through. Not hard, but certainly more bothersome.
I’m also not a huge fan of un-named functions so their functionality/conditions aren’t clear from the naming, it’s largely okay here since the conditional list is fairly simple and it uses only AND comparisons. They quickly become mentally troublesome when you have OR mixed in along with the changing booleans depending on which condition in the list you are looking at.
At the end of the day though, unit tests should make sure the right driver is returned for the right conditions. That way, you know it works, and the solution is resistant to refactor mishaps.