I have to say that I am not a big fan of the Arduino IDE. I'm used to much more powerful environments.
I am a developer by trade and use the JetBrains IDEs for pretty much everything I do.
I also find the way the Arduino IDE pre-processes everything to rather baffling. I've been writing C since the early eighties so the "magic" it does seems a bit odd to me.
Currently trying CLion with the PlatformIO plugin but it's not going very well. Lot's of problems getting it to properly recognize everything and build and flash.
It seems really inconsistent. Sometimes I can create a project, write code, build, and flash just fine. Other times it fails utterly.
I'm currently fighting a problem where the build/run/debug environment pull-down says "PlatformIO Upload | Nothing to run on". Go figure. ¯\_(ツ)_/¯