KDevelop 4 – Intellisense

Posted by : MOnsDaR | Samstag, 13. März 2010 | Published in

Intellisense, teils auch CodeCompletion oder AutoCompletion genannt, ist ein Feature, dass einem viel Arbeit ersparen kann. Der Programmierer schreibt die ersten Buchstaben eines Wortes und auf Tastendruck werden ihm alle zu den Startbuchstaben passenden Elemente (Methoden, Attribute, Datentypen etc) angezeigt.

Während in der Windowswelt mit dem Microsoft Visual Studio eine mächtige IDE existiert, die Intellisense sehr umfangreich unterstützt, ist dieses Feature in der Linux-Welt leider bei vielen Editoren und IDEs schlecht bis garnicht implementiert. Während Kate lediglich Wörter vorschlägt, die im Dokument bereits vorhanden sind, ist das System in Eclipse CDT sehr langsam und es werden nicht alle Möglichkeiten angezeigt.

KDevelop 4 enthält ein sehr umfangreiches Intellisense. Im Code auf dem Screenshot habe ich in einer Testklasse mal den Buchstaben “a” getippt und das Intellisense aktiviert. Im Dialog werden dann verschiedene Attribute und Methoden gruppiert nach Zugriffsebene vorgeschlagen. Neben Elementen aus meiner Testklasse befinden sich auch lokale und globale Elemente in der Auflistung wieder.

intellisense

Weiterhin werden in C++ eingebaute Elemente angezeigt. Zuguterletzt werden in der Sektion “Auto Word Completion” Wörter angezeigt, die im aktuellen Dokument bereits vorkommen.

Klickt man eines der Elemente an, werden weitere Informationen angezeigt.

intellisense2

Zwar wird der zugehörige Doxygen-Kommentar auch angezeigt, doch wird dieser leider nicht geparsed. Hierdurch enthält der Intellisense-Dialog leider Formatierungsanweisungen wie \brief oder \param.

Neben dem Kommentar kann man sich anzeigen lassen, wo das Element deklariert und definiert ist, wo es genutzt wird und zu welcher Klasse es gehört.

Meiner Meinung nach ist das Intellisense von KDevelop 4 ein Herausstellungsmerkmal in der Linux-Welt und mit dem des Visual Studio vergleichbar. Wie steht ihr dazu? Kennt ihr andere, vielleicht bessere,  Intellisense-Systeme?

KDevelop 4 – Syntax Highlighting

Posted by : MOnsDaR | Donnerstag, 11. März 2010 | Published in

Ohne dieses Feature kommt kein Editor aus, der zum Programmieren geeignet sein soll: Durch Syntax Highlighting lässt sich die Lesbarkeit der Sourcen extrem steigern.

Umso ärgerlicher, wenn eine IDE die Hervorhebung nur begrenzt beherrscht oder sie schlecht konfigurierbar ist. Ein Negativbeispiel ist in diesem Fall das Eclipse (+CDT) für mich. Der Editor kommt mit einem sehr schlichten Highlighting daher, dass die Lesbarkeit meiner Meinung nach nur begrenzt erhöht. Der Hauptkritikpunkt ist allerdings hier die fehlende Unterstützung für andere Formate als C und C++-Sourcen. Diese ist lediglich über weitere Plugins zu erreichen und nicht einfach zu integrieren.

In größeren Projekten müssen neben den Sourcen in der jeweiligen Programmiersprache auch Dokumente in anderen Sprachen verfasst werden. Als Beispiel wäre hier die Doxygen-Syntax für eine generische Mainpage, die CMake-Dateien zum bauen des Projektes oder Bash-Scripte um das erstellte Projekt zu starten.

Was die Eclipse IDE in meinen Augen sehr unglücklich und wenn überhaupt über zusätzliche Plugins löst, bietet KDevelop 4 in vollem Umfang.

Es gibt kaum ein Format, das nicht farblich hervorgehoben werden kann. Von Sprachen wie Java und C++ bis hin zu exotischen Formaten wie Eiffel oder FreeBASIC. Im Screenshot sind mögliche Programmiersprachen aufgelistet.

syntax

Neben der Unterstützung von Programmiersprachen lassen sich wie im Screenshot erkennbar auch Konfigurationsdateien oder Assembla-Scripte farblich hervorheben.

Das Syntax Highlighting von C++ ist hierbei nicht wie in anderen Sprachen lediglich darauf begrenzt, bestimmte Schlüsselworte farblich hervorzuheben: Beispielsweise werden Variablennamen in unterschiedlichen Farben dargestellt, so dass man eine Variable schnell auch an Hand ihrer Farbe wiederfinden kann.

Im Screenshot wird das Objekt converter braun dargestellt.

syntax2

Gibt es weitere Dinge, die ein Syntax Highlighting System unterstützen muss? Welcher Editor bietet eurer Meinung nach optimales Highlighting?