My understanding is that the state of semantic IDE features for C++ was pretty miserable until CLion and clangd came along.
That is, sure, there were a whole lot of “literally” IDEs — gui wrappers around editor/build system/debugger/compiler combos. In the post, when I say IDE, I focus on “refactoring rubicon” connotation of the term, not on the literal meaning (https://martinfowler.com/articles/refactoringRubicon.html).