and accordingly platformio uses something even more elaborate which is
https://scons.org/
a thing about platform io is that it lifts the STM core from a 'clone' of the original repository, so it may get out-of-sync

On another note the new typescript(javascript) Arduino IDE isn't quite that 'smooth' a usage and is huge, I last remembered an install footprint of some 800 megs or so. I'd guess it is 'under development' so it'd take time to be better. There used to be an issue about code reference lookups that affected codes with stm core (something to do with arduino-cli returning an error during compile) and the symbol references are not generated. so things like goto definition fails for any of the symbol lookups. The issue probably needs to be fixed in arduino-cli, but I'd think it is still outstanding as the developers seem busy with other priorities.