... and Emacs really is an IDE; the distinction between it and GUI IDEs has more to do with user interface than any limitation of Emacs.
e.g. live libclang-based code completion for Emacs: https://github.com/Sarcasm/irony-mode
e.g. live libclang-based code completion for Emacs: https://github.com/Sarcasm/irony-mode