KDevelop

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
KDevelop
Logo von KDevelop
Screenshot
KDevelop 4 (englisch)
Basisdaten
Entwickler KDE
Aktuelle Version 4.7.0
(13. September 2014)
Betriebssystem Linux/Unix-Derivate, Mac OS X, Windows
Programmier­sprache C++ (Qt)
Kategorie Integrierte Entwicklungsumgebung
Lizenz GPL (Freie Software)
Deutschsprachig ja
www.kdevelop.org

KDevelop ist eine freie grafische Entwicklungsumgebung und Bestandteil von KDE. Der Fokus liegt auf der Unterstützung von C++ als Programmiersprache, einige weitere Sprachen werden aber durch Plugins ebenfalls unterstützt.

Geschichte[Bearbeiten]

Das KDevelop-Projekt wurde 1998 am Institut für Informatik an der Universität Potsdam begonnen, um eine einfach zu bedienende integrierte Entwicklungsumgebung für C++ und C auf Unix-basierten Betriebssystemen bereitzustellen. Seit damals ist die KDevelop-IDE öffentlich unter der GPL erhältlich und unterstützt u. a. Qt-, KDE-, Gnome-, C++- und C-Projekte.[1]

Ab der Version 3.4 beschränkte sich KDevelop auf eine neue grafische Oberfläche namens Simple-IDEAl, konnte freie und kommerzielle Module (Plug-Ins) einbinden und beherrschte viele neue Programmiersprachen.

Die komplett überarbeitete 4.x Entwicklungslinie setzt auf KDE Platform 4 auf.

Nennenswerte Funktionen[Bearbeiten]

Für unterstützte Sprachen besitzt KDevelop die Fähigkeit, den vom Benutzer geschriebenen Code in (nahezu) Echtzeit im Hintergrund zu analysieren. Mit den so gesammelten Informationen wird dann eine Vielzahl von Funktionen angeboten, darunter zum Beispiel:

  • Markierung von Fehlern syntaktischer und semantischer Natur (zum Beispiel fehlende Klammern, aber auch die Verwendung nicht definierter Variablen)
  • Schnellöffner-Funktion, welche in Echtzeit im gesamten Projekt nach Klassen, Dateien und Funktionen sucht und diese auf Wunsch öffnet
  • intelligente Code-Hervorhebung, welche die Struktur des Programms widerspiegelt (z. B. verschiedene Farben für verschiedene Variablen)
  • kontext-sensitive intelligente Code-Vervollständigung

Weitere nennenswerte Funktionen, die nicht direkt zur Sprachunterstützung gehören, sind zum Beispiel

Funktionsweise und technische Details[Bearbeiten]

Für die unterstützen Sprachen wird beim Laden eines Projekts, oder sobald der Benutzer im Editor-Fenster eine Änderung durchführt, der Code in den betroffenen Dateien (neu) analysiert. Dabei wird eine abstrakte Repräsentation des Programmcodes (genannt definition-use-chain, oder kurz DUChain) erzeugt, welche zum Beispiel Informationen darüber enthält, wo Variablen und Funktionen deklariert werden und welche Typen diese besitzen. Viele der sprachbezogenen Funktionen (zum Beispiel Code-Hervorhebung, Schnellöffner, Liste von Klassen und Funktionen, ...) werden von der IDE mithilfe dieser Informationen zur Verfügung gestellt; oft völlig ohne zusätzlichen Code im Plugin für die betreffende Sprache. Für andere Funktionen, deren Verallgemeinerung nicht in diesem Umfang möglich ist - wie zum Beispiel Code-Vervollständigung und Tooltips - steht eine umfassende API zur Verfügung, welche das Einbinden neuer Sprachen erleichtert.

Texteditor[Bearbeiten]

KDevelop implementiert keinen eigenen Texteditor, sondern benutzt (standardmäßig) KatePart durch das KParts-Framework. Die in KatePart selbst, oder als Plugins für KatePart implementierten Funktionen, zum Beispiel der vi-Eingabemodus stehen somit auch in KDevelop zur Verfügung. Manche der aus Kate bekannten Funktionen, zum Beispiel die Snippets (Textschnipsel), sind als Plugins für Kate (nicht für KatePart) umgesetzt und können deshalb in KDevelop nicht genutzt werden. Für die meisten dieser Funktionen, zum Beispiel für den Dateibrowser in der Seitenleiste, existiert jedoch in KDevelop eine eigene Umsetzung.

KDevelop und KDevPlatform[Bearbeiten]

KDevelop 4 basiert auf KDevPlatform, welches umfangreiche APIs zum Beispiel zur statischen Codeanalyse, zur Einbindung von Versionskontrollsystemen, oder zum Einbinden grafischer Debugger zur Verfügung stellt. KDevPlatform wird von denselben Entwicklern verwaltet wie KDevelop; die Trennung dient der besseren Wiederverwendbarkeit. KDevelop selbst ist im Wesentlichen eine Sammlung von Plugins für KDevPlatform. Die Entwicklungsumgebung KDevelop wird dementsprechend für die Verwendung vieler Plugins nicht zwingend benötigt. Es ist also möglich, eine andere auf KDevPlatform basierende Anwendung zu erstellen, welche dann dieselben Plugins benutzt, um zum Beispiel Integration von Versionskontrolle oder Code-Hervorhebung anzubieten. Eine solche Anwendung war die für Web-Entwicklung optimierte IDE Quanta, deren Entwicklung aber Ende 2012 eingestellt wurde.[2]

Unterstützte Sprachen[Bearbeiten]

Sprachunterstützung für C++ und CMake ist fester Bestandteil von KDevelop 4. Unterstützung für PHP[3] und Python ist in Form zusätzlicher Plugins verfügbar. An der Unterstützung weiterer Sprachen, zum Beispiel Ruby, QML und JavaScript, wird gearbeitet.[4] Für alle anderen Sprachen stehen lediglich die Grundfunktionen, wie einfache Syntax-Hervorhebung und textbasierte Code-Vervollständigung zur Verfügung.[5][6] Für das Entwickeln von C++-Projekten, die die Bibliothek Qt verwenden, sind einige zusätzliche Funktionen vorhanden, zum Beispiel Unterstützung für das von Qt genutzte Signal-Slot-Konzept.

KDevelop 3 unterstützte die Sprachen Ada, Bash, C, C#, C++, D, Fortran, Haskell, Java, Objective-C, Pascal, Perl, PHP, Python, Ruby, SQL und XUL.

Literatur[Bearbeiten]

  • Robert Gruber, Jonas Jacobi: KDevelop – Einführung in die Entwicklungsumgebung. Open Source Press, München März 2007, ISBN 3-937514-31-7.
  • Ronny Kissing: KDE-Entwicklung mit KDevelop. 2. Auflage. Bomots Verlag, Saarbrücken 2008, ISBN 978-3-939316-50-3.

Weblinks[Bearbeiten]

 Commons: KDevelop – Sammlung von Bildern, Videos und Audiodateien

Referenzen[Bearbeiten]

  1. 'ANNOUNCE: kdevelop-0.1.tar.gz' - MARC
  2. Niko's Blog: Quanta update
  3. https://projects.kde.org/projects/extragear/kdevelop/plugins/kdev-php
  4. https://projects.kde.org/projects/playground/devtools/plugins
  5. Features | Kate | Get an Edge in Editing
  6. http://docs.kde.org/stable/en/kde-baseapps/kate/highlight.html