Today, these tools have been combined in increasingly sophisticated and graphical integrated development environments (IDEs), which usually come with features such as syntax highlighting, code auto-completion, refactoring, unit testing support, and visual editors.