KDevelop is a free graphical development environment and is part of KDE. The focus is on the support of C as the programming language, some other languages but also supported by plugins.
The KDevelop project was founded in 1998 at the Institute of computer science at the University of Potsdam begun to provide an easy- to-use integrated development environment for C and C on Unix-based operating systems. Since then, the KDevelop IDE is publicly available under the GPL and supports, inter alia, Qt, KDE, Gnome, C - and C projects.
From version 3.4 to KDevelop limited to a new graphical interface called Simple - IDEAl, was free and commercial modules integrated ( plug-ins) and mastered many new programming languages.
The completely revised 4.x line of development is based on KDE Platform 4.
For supported languages KDevelop has the ability to analyze the user-written code in ( almost ) real time in the background. With the information gathered so then a lot of functionality is offered, such as:
- Error markup syntactic and semantic in nature (for example, missing brackets, but also the use of unset variables )
- Accelerator function that searches in real time throughout the project according to classes, files and functions and this opens on request
- Intelligent code highlighting, which reflects the structure of the program (eg, different colors for different variables)
- Context-sensitive intelligent code completion
Other notable features that are not directly belong to the language support, include
- Integrated graphical debugger (based on gdb for C )
- Version control using CVS, Subversion, git ( KDevelop 4.1) or Perforce Jam
- Built-in support for CMake; some other build systems (eg qmake ) are supported by additional plugins
- Automatic code formatting means astyle etc.
Operation and technical details
For the supported languages is when loading a project, or when the user in the editor window makes a change, analyze the code in the affected files ( new). This (short Duchain called definition -use chain, or) an abstract representation of the program code is generated which, for example, contains information about where variables and functions are declared and what types do this. Many of the language-related functions (for example, code highlighting, Accelera list of classes and functions, ...) can be found using this information provided by the IDE; often without any additional code in the plugin for that language. For other functions, the generalization does not to this extent is possible - such as code completion and tooltips - is a comprehensive API that facilitates the integration of new languages .
KDevelop does not implement its own text editor, but used (by default) Katepart by the KParts framework. The implemented Katepart itself, or as a plug-in for Katepart functions, such as the vi input mode are thus also in KDevelop available. Some of the known functions of Kate, for example, the snippets ( text snippets ) are, as plugins for Kate (not for Kate Part) implemented and therefore can not be used in KDevelop. For most of these functions, for example, for the file browser in the sidebar, but there is a separate implementation in KDevelop.
KDevelop and kdevplatform
KDevelop 4 is based on kdevplatform, which provides extensive APIs for example for static code analysis for the integration of version control systems, or to include graphical debugger. Kdevplatform is managed by the same developers as KDevelop; the separation serves to improve reusability. KDevelop itself is essentially a collection of plugins for kdevplatform. The development environment KDevelop is accordingly not absolutely required for the use of many plugins. It is thus possible to create another based on kdevplatform application, which then uses the same plugins as offer integration of version control or code highlighting. One such application was optimized for web development IDE Quanta, whose development was discontinued in late 2012.
KDevelop 3 supported the languages Ada, Bash, C, C #, C , D, Fortran, Haskell, Java, Objective- C, Pascal, Perl, PHP, Python, Ruby, SQL, and XUL.