That’s because it makes sense when dynamically creating HTML. HTML is not a programming language, it’s simply markup - so if you want to generate some block of HTML in a loop and later access that block of HTML in JS (e.g. to interact with the UI separate from creating it in the first place), it’s a completely reasonable thing to do.
The thing about an IDE is how tightly integrated all of the tools are.
If you list the features individually, surely there’s a way to add most of them to your text editor of choice - but the downside is that they’re now all fairly independent features, may not work as thoroughly or covertly, and you might end up with a slower editor altogether.
Not to say IDEs are the peak of performance - but they tend to provide more robust tooling than is (easily) available in e.g. VSCode/emacs/neovim/whatever.
It’s like using a specialized power tool - it’s not the right tool for every job, it’s probably a bulkier package, but if you know how to use it an IDE can make your life a lot easier for the right workload.