A good programmer's editor or IDE (integrated development environment) should support many of the following features: