integrated development environment

Navigation
computing: software: programming: IDE [ see also: IDE (disambiguation) ]

An integrated development environment (IDE) is a computer program (software) designed to handle several parts of the software development (programming) process more or less seamlessly in order to speed the coding-compiling-debugging cycle.

Typical
A typical IDE will have the following features:
 * One-key compiling/building/running of source code
 * Automatic de-referencing of error breakpoints (i.e. when there's an error in the code, the IDE highlights the exact line(s) which caused the error; for compilers which allow multiple errors before aborting a compile, a list of errors will appear in a separate window and the user may navigate to the source of each error by clicking on the corresponding entry in the list)
 * Single-stepping through code, with the ability to inspect variables and determine their current value
 * Syntax highlighting (i.e. different syntax elements are shown in different colors; certain unclosed paired delimiters, such as quotes, are much easier to spot)
 * "Project management", i.e. the files used by a given development project are listed within the IDE and often loaded automatically
 * Context-sensitive help, i.e. highlight an identifier, press the help key (usually F1) and find the documentation for that identifier
 * Hypertext-based help system, with searching: keywords/phrases in articles may be clicked to navigate to another article with information about the relevant concept

Graphical
IDEs intended for development of GUI applications should include:
 * Drag-and-drop form editing: Create a form and add controls to it from a palette. The control palette can usually be expanded by adding controls from other sources, and is not strictly limited to those provided with the IDE. Control properties are editable, and the edited values are saved along with the form's design.

Newer
Some newer IDEs also have these features:
 * Function fill-in popups which show:
 * all arguments needed by a function, subroutine, or method
 * which argument you are currently filling in, based on cursor position
 * Listing of available fields/methods: on typing the name of an object plus the field-delimiter character (e.g. "." in VB), a list of defined fields and methods will pop up