Artistic Style dient dem Einrücken, Formatieren und ’Verschönern’ für C, C++, C# Quellen. Es kann verwendet werden um unterschiedliche Coding Rules für CodeBlocks einzustellen.
Abbildung 2.1: Formatierung für Quellcode |
Wenn Quellen eingerückt werden, tendieren Programmierer dazu sowohl Leerzeichen als auch Tabulatoren einzusetzen, um die gewünschte Einrückung zu erzielen. Darüberhinaus gibt es auch Editoren die standardmäßig Tabulatoren durch eine feste Anzahl von Leerzeichen ersetzen. Andere Editoren versuchen den Code durch Einfügen von White space lesbarer zu machen selbst wenn der Code Tabulatoren enthält.
Da die Anzeige der Leerzeichen für jeden Tabulator durch die Einstellungen im Editor bestimmt ist, wirft dies immer ein Problem auf, wenn Programmierer unterschiedliche Editoren verwenden. Selbst bei größter Sorgfalt für die Formatierung der Quelle kann das Editieren durch andere Programmieren mit unterschiedlichen Editoren oder Einstellungen schnell Problemen verursachen.
Um diesen Problem Rechnung zu tragen, wurde Artistic Style entwickelt - ein Filter, der automatisch Ihre C / C++ / C# einrückt und formatiert.
Das Plugin CodeSnippets ermöglicht es Textbausteine und Verknüpfungen auf Dateien in einer Baumansicht nach Kategorien zu strukturieren. Die Bausteine dienen dazu, häufig verwendete Dateien oder Konstrukte in Textbausteine abzulegen und zentral zu verwalten. Stellen Sie sich vor eine Reihe von häufig verwendeten Quelldateien sind im Dateisystem in unterschiedlichen Ordnern abgelegt. Im Fenster CodeSnippets können Sie nun Kategorien und darunter Verknüpfungen auf die gewünschten Dateien erstellen. Damit können Sie den Zugriff auf die Dateien unabhängig von der Ablage im Dateisystem verwalten und ohne das Dateisystem zu durchsuchen schnell zwischen diesen Dateien navigieren.
Die Liste der Textbausteine und Verknüpfungen können im CodeSnippets Fenster mit der rechten Maustaste über das Kontextmenü ’Save Index’ gespeichert werden. Die dabei erzeugte Datei codesnippets.xml befindet sich anschließend in Ihren Dokumente und Einstellungen\Anwendungsdaten im Ordner codeblocks. Unter Linux wird diese Information im HOME-Verzeichnis im Ordner .codeblocks abgelegt. Die Konfigurationsdateien von CodeBlocks werden beim nächsten Start geladen. Falls Sie den Inhalt von CodeSnippets an einen anderen Ort speichern möchten, selektieren Sie den Eintrag ’Save Index As’. Zum Laden dieser Datei wählen Sie beim nächsten Start von CodeBlocks’Load Index File’ oder stellen das Verzeichnis in dem Kontextmenü ’Settings’ unter ’Snippet Folder’ ein. Diese Einstellungen werden in der zugehörigen Datei codesnippets.ini in den Anwendungsdaten hinterlegt.
Das Einfügen einer Kategorie geschieht über das Menü ’Add SubCategory’. In einer Kategorie können Snippets (Textbausteine) oder File Links (Verknüpfungen) liegen. Ein Textbaustein wird mit dem Kontextmenü über ’Add Snippet’ angelegt. Indem Sie einen Text im CodeBlocks Editor markieren und anschließend bei gedrückter linker Maustaste per Drag and Drop auf den Textbaustein ziehen, wird der Inhalt in den Textbaustein eingefügt. Wenn Sie einen selektierten Text auf eine Kategorie ziehen wird in diesem Ordner automatisch ein Textbaustein mit dem Namen ’New snippet’ erzeugt und es öffnet sich der Properties Dialog. Durch einen Doppelklick auf den neu eingefügten Eintrag oder durch Auswahl von ’Edit Text’ öffnet sich ein eigenständiger Editor zum Bearbeiten des Inhaltes.
Abbildung 2.2: Bearbeiten eines Textbausteins |
Die Ausgabe eines Textbausteines in CodeBlocks erfolgt über das Kontextmenü ’Apply’ oder durch Drag und Drop in den Editor. Die Inhalte eines Snippets können auch in andere Anwendungen gezogen werden. Im CodeSnippets Browser können Sie auch per Drag and Drop einen Eintrag in eine andere Kategorie kopieren.
Textbausteine sind darüberhinaus auch über Variablen <name>, die über $(name) zugegriffen werden, parametrisierbar (siehe Abbildung 2.2). Die Abfrage für die Werte der Variablen erfolgt über ein Eingabefeld, wenn der Textbaustein mit dem Kontextmenü ’Apply’ aufgerufen wird.
Neben den Textbausteinen können auch Verknüpfungen auf Dateien angelegt werden. Wenn Sie zuvor einen Textbaustein angelegt haben und anschließend das Kontextmenü ’Properties’ auswählen, selektieren Sie mit der Schaltfläche ’Link target’ das Ziel der Verknüpfung. Eine Verknüpfung kann auch über das Kontextmenü ’Convert to FileLink’ erzeugt werden. Dieser Schritt wandelt den Textbaustein automatisch in eine Verknüpfung auf eine Datei um. In CodeSnippets werden Textbausteine mit einem T-Symbol und Verknüpfungen auf eine Datei mit einen F-Symbol und Urls mit einem U-Symbol gekennzeichnet. Falls Sie die in Codesnippets markierte Datei (Verknüpfung) öffnen möchten selektieren Sie im Kontextmenü ’Open File’ oder halten Sie die ’Alt’ Taste gedrückt und machen ein Doppelklick auf die Datei.
Falls Sie diese Einstellung vorgenommen haben, dann wird wenn Sie z.B. einen Verknüpfung auf eine pdf-Datei aus der Codesnippets Ansicht öffnen automatisch ein pdf-Viewer gestartet. Dieses Vorgehen ermöglicht dem Benutzer Dateien, die über das Netzwerk verteilt liegen, wie z.B. CAD Daten, Schaltpläne, Dokumentation etc. als Verknüpfung einfach über die gewohnten Anwendungen zuzugreifen. Der Inhalt der Codesnippets wird in der Datei codesnippets.xml und die Konfiguration in der Datei codesnippets.ini in Ihren Anwendungsdaten gespeichert. In dieser ini Datei wird z.B. der Ablageort der Datei codesnippets.xml hinterlegt.
CodeBlocks unterstützt die Verwendung von unterschiedlichen Profilen. Diese werden als personalities bezeichnet. Wenn Sie CodeBlocks mit der Kommandozeilen Option --personality=<profile> starten, wird entweder ein neues angelegt oder ein existierendes Profil verwendet. Die Einstellungen werden dann statt in default.conf in der Datei <personality>.conf in den Anwendungsdaten gespeichert. Das Plugin Codesnippets speichert seine Einstellungen dann in der Datei <personality>.codesnippets.ini. Wenn nun Sie in den Settings von Codesnippets über ’Load Index File’ einen neuen Inhalt <name.xml> laden, wird dies in der zugehörigen ini Datei hinterlegt. Der Vorteil von dieser Vorgehensweise ist, dass Sie zu unterschiedlichen Profilen auch unterschiedliche Konfigurationen für Textbausteine und Verknüpfungen verwalten können.
Für das Navigieren zwischen den Kategorien und Snippets bietet das Plugin eine zusätzliche Suchfunktion. Hierbei lässt sich auch der Gültigkeitsbereich (Scope) für die Suche auf Snippets, Categories oder Snippets and Categories einstellen. Durch Eingabe des gewünschten Suchbegriffes wird automatisch der zugehörige Eintrag in der Ansicht ausgewählt. Die Abbildung 2.3 zeigt eine typische Ansicht im CodeSnippets Fenster.
Abbildung 2.3: Ansicht von CodeSnippets |
Für eine effiziente Suche in geöffneten Dateien bietet CodeBlocks die sogenannte Incremental Search Methode. Über das Menü ’Search’ ®’Incremental Search’ oder das Tastenkürzel Ctrl-I wird diese Suchmethode für eine geöffnete Datei eingeleitet. Dabei wird dann automatisch der Focus auf die Suchmaske der zugehörigen Werkzeugleiste gesetzt. Wenn Sie mit der Eingabe eines Begriffes beginnen, wird abhängig von dem Vorkommen der Hintergrund der Suchmaske hinterlegt. Sobald ein Treffer im aktiven Editor gefunden wird, erscheint diese Stelle farblich markiert. Standardmäßig wird der aktuelle Treffer grün hervorgehoben. Die Einstellungen hierfür können im Menü ’Settings’ ®’ Editor’ ®’ Incremental Search’ geändert werden (siehe Abbildung 2.4). Durch Betätigen der Return Taste wird zum nächsten Vorkommen des Suchbegriffes gesprungen.
Wird der Suchbegriff in der aktiven Datei jedoch nicht gefunden, wird dies durch rotes Hinterlegen der Suchmaske signalisiert.
Die Icons in der Werkzeugleiste von Incremental Search sind wie folgt zu verstehen:
Abbildung 2.4: Einstellungen für Incremental Search |
Für komplexe Software-Projekte, an denen unterschiedliche Benutzer arbeiten, hat man häufig die Anforderung, dass zu erledigende Arbeiten von unterschiedlichen Usern umzusetzen sind. Für dieses Problem bietet CodeBlocks eine Todo List. Diese Liste, zu öffnen unter ’View’ ®’To-Do list’ , enthält die zu erledigenden Aufgaben mit Prioritäten, Typ und zuständige User. Dabei kann die Ansicht nach zu erledigenden Aufgaben nach Benutzer und/oder Quelldatei gefiltert werden. Eine Sortierung nach Spalten erhält der Benutzer durch Anklicken der jeweiligen Spaltenüberschrift.
Abbildung 2.5: Anzeige der ToDo List |
Ein Todo lässt sich bei geöffneten Quellen in CodeBlocks über die rechte Maustaste ’Add To-Do item’ hinzufügen. Im Quellcode wird ein entsprechender Kommentar an der ausgewählten Quellzeile eingefügt.
Beim Hinzufügen eines To-Do erhalten Sie einen Eingabedialog mit folgenden Einstellungen (siehe Abbildung 2.6).
Abbildung 2.6: Dialog für Eingabe von ToDo |
Oft ergibt sich die Notwendigkeit, den Quelltext in andere Anwendungen oder in Emails zu übernehmen. Beim schlichten Kopieren des Textes geht jedoch die Formatierung verloren, was den Text sehr unübersichtlich macht. Die Export Funktion in CodeBlocks schafft hier Abhilfe. Über ’File’ ®’Export’ kann ein gewünschtes Dateiformat für die Exportdatei ausgewählt werden. Danach übernimmt das Programm den Dateinamen und das Zielverzeichnis der geöffneten Quelldatei und schlägt diesen als Name zum speichern vor. Die jeweilige Dateiendung wird durch das Exportformat bestimmt. Es stehen folgende Formate zur Verfügung.
Über das Menu ’Search’ ®’Thread Search’ lässt sich das entsprechende Plugin als Tab in der Messages Console ein- und ausblenden. In CodeBlocks kann mit diesem Plugin eine Vorschau für das Auftreten einer Zeichenkette in einer Datei, Workspace oder Verzeichnis angezeigt werden. Dabei wird die Liste der Suchergebnisse in der rechten Seite der ThreadSearch Console angezeigt. Durch Anklicken eines Eintrages in der Liste wird auf der linken Seite eine Vorschau angezeigt. Durch einen Doppelklick in der Liste wird die ausgewählte Datei im CodeBlocks Editor geöffnet.
ThreadSearch plugin bietet folgende Funktionalität
Abbildung 2.7: Thread Search Panel |
Nach dem das Plugin installiert wurde gibt es vier Arten die Suche zu starten.
Der Knopf ’Options’ öffnet den Dialog für die Konfiguration des ThreadSearch plugin (see Abbildung 2.8):
Abbildung 2.8: Konfiguration von Thread Search |
Sie können Filter für die Suche von Dateien konfigurieren.
Bei einer Suche nach mehreren Begriffen wird die Liste schnell unübersichtlich, deshalb bietet diese Einstellung die Möglichkeit vorangegangene Suchergebnisse beim Start einer Suche zu löschen.
Für das Verwalten des ThreadSearch Fenster stehen zwei Alternativen zur Auswahl. Mit der Einstellung ’Message Notebook’ wird das ThreadSearch Fenster in der Message Konsole angedockt. Mit der Einstellung ’Layout’ können Sie das Fenster aus der Message Konsole lösen und als freies Fenster anordnen.
Für die Ansicht der Suchergebnisse existieren zwei Ansichten. Mit der Einstellung ’List’ werden alle Einträge untereinander angezeigt. Der andere Mode ’Tree’ zeigt die Suchergebnisse in einer Baumansicht an. Dabei werden Suchergebnisse aus einer Datei in einem Knoten zusammengefasst.
Der Benutzer kann eine horizontale oder vertikale Teilung der Fenster für die Vorschau und die Ausgabe von Suchergebnissen angeben.
Die Ansicht für die Suchergebnisse lässt sich sortieren nach Pfad oder Dateiname.
Der File Explorer Abbildung 2.9 ist im FileManager Plugin enthalten. In Abbildung 2.9 ist der Aufbau des File Explorers dargestellt. Der File Explorer erscheint als Tab ’Files’ im Management Fenster.
Das oberste Eingabefeld dient zur Angabe des Pfades. Die History der letzten Einträge erhalten Sie durch Mausklick auf die Schaltfläche neben dem Eingabefeld. Dadurch öffnet sich das Listenfeld, in dem der entsprechende Eintrag ausgewählt werden kann. Die Pfeil-nach-oben-Schaltfläche rechts daneben schiebt die Anzeige der Verzeichnisstruktur um eins nach oben.
Im Feld ’Wildcard’ können Sie Filter für die Anzeige von Dateien angeben. Mit einer leeren Eingabe oder * werden alle Dateien angezeigt. Ein Eintrag *.c;*.h zeigt z.B. nur C-Quellen und Headerdateien an. Durch Öffnen des Listenfeldes kann wiederum eine History der letzten Einträge zur Auswahl angezeigt werden.
Abbildung 2.9: Ansicht des Dateimanagers |
Durch Mausklick mit gedrückter Shift-Taste kann ein Block von Dateien und Verzeichnissen ausgewählt werden, durch Mausklick mit gedrückter Ctrl-Taste können mehrere einzelne Dateien und Verzeichnisse ausgewählt werden.
Für die Auswahl eines oder mehrerer Verzeichnisse im File Explorer stehen Ihnen über das Kontextmenü folgende Operationen zur Verfügung:
Für die Auswahl von Dateien und Verzeichnissen stehen im Kontextmenü folgende gemeinsamen Befehle zur Verfügung.
Folgende Einträge sind nur für die Auswahl ein oder mehrerer Dateien gültig.
Über den Menübefehl ’Settings’ ®’Environment’ ®’PowerShell’ können benutzerdefinierte Funktionen erstellt werden. In der Eingabemaske des PowerShell wird mit der Schaltfläche ’New’ eine neue Funktion angelegt, die frei benannt werden kann. Im Feld ShellCommand Executable wird das auszuführende Programm angegeben, im unteren Feld können dem auszuführenden Programm zusätzliche Parameter übergeben werden. Durch Auswahl der Funktion im Kontextmenü oder PowerShell-Menü wird die eingetragene Aktion für die markierten Dateien oder Verzeichnisse ausgeführt. Die Ausgabe wird dabei auf ein eigenes Shell-Window umgelenkt.
Als Beispiel wird für den Eintrag mit dem Namen ’SVN’ ein zugehöriger Menüeintrag in ’PowerShell’ ®’SVN’ und im Kontextmenü des File-Explorers hinzugefügt. Hierbei bedeutet $file die Datei, welche im FileExplorer markiert ist, und $mpath die markierten Dateien oder Verzeichnisse.
Dieser sowie jeder weitere Befehl erzeugt ein Untermenü, in diesem Fall ’Extensions’ ®’SVN’ ®’Add’ . Das Kontextmenü wird entsprechend erweitert. Der Aufruf des Kontextmenüs führt das SVN-Kommando add für die ausgewählte(n) Datei(en)/Verzeichnis(se) aus.
TortoiseSVN ist ein weit verbreitetes SVN Programm, das im Explorer als context menu integriert ist. Das Programm TortoiseProc.exe von TortoiseSVN kann auch in the Kommandozeile gestartet werden und zeigt einen Dialog an, der zur Eingabe durch den Benutzer dient. Somit können die Befehle, die im Kontextmenü im Explorer zugänglich sind auch in der Kommandozeile ausgeführt werden. Dies ermöglicht diese Funktionalität sehr einfach als Shell extension in CodeBlocks einzubauen. Zum Beispiel wird die folgende Eingabe
eine im File Explorer von CodeBlocks ausgewählte Datei gegen die SVN base Version verglichen. Siehe hierzu Abbildung 2.10 wie dieses Kommando als Shell extension verfügbar wird.
Abbildung 2.10: Hinzufügen von Aktionen für Kontextmenü |
Beispiel
Sie können den File-Explorer auch verwendet um Unterschiede zwischen verschiedenen Dateien oder Verzeichnisse anzeigen zu lassen. Dabei gehen Sie wie folgt vor.
In diesem Aufruf wird über die Variable $mpaths die im File-Explorer selektierten Dateien oder Verzeichnisse zugegriffen. Somit können Sie einfach ausgewählte Dateien oder Verzeichnisse gegeneineander vergleichen.
Als Übergabeparameter eines Befehl einer PowerShell unterstützt auch den Zugriff der in CodeBlocks verfügbaren Variablen (siehe Listing 3.2).
Aufzurufendes Programm.
Name der Datei ohne Endung.
Dateiendung der ausgewählten Datei.
Dateiname mit Endung.
Dateiname ohne Pfadangabe.
Ordnername mit Pfadangabe.
Ordnername ohne Pfadanabe.
Absoluter Pfad.
Relativer Pfad einer Datei oder Verzeichnis.
Liste der ausgewählten Dateien oder Ordner.
Zeichenkette die durch eine Eingabeaufforderung eingegeben wird.
Übergeordnetes Verzeichnis (../)
Browse Tracker ist ein Plugin um zwischen kürzlich geöffneten Dateien in CodeBlocks zu navigieren. Dabei wird die Liste der kürzlich geöffneten Dateien in einer History gespeichert. Im Menü ’View’ ®’Browse Tracker’ ®’Clear All’ können Sie die History löschen.
Das Fenster ’Browsed Tabs’ zum Navigieren in dieser Listen erhalten Sie über das Menü ’View’ ®’Browse Tracker’ mit dem Eintrag ’Backward Ed/Forward Ed’ oder über das Tastenkürzel Alt-Left/Alt-Right. Das Browse Tracker Menü ist auch über die Rechte Maustaste als Kontextmenü zugänglich. Die Marker werden in der Layout-Datei layout file <projectName>.bmarks gespeichert.
Eine häufige Arbeitsweise bei der Entwicklung von Software ist, dass man sich durch ein Satz von Funktion hangelt, die in unterschiedlichen Dateien implementiert sind. Durch das Plugin BrowseTracks können Sie somit komfortabel zwischen den Aufrufen in unterschiedlichen Dateien navigieren.
Das Plugin erlaubt auch Browse Marker in jeder Datei innerhalb des CodeBlocks Editor zu setzen. Die Cursor Position wird für jede Datei gespeichert. Das Setzen eines Markers innerhalb einer Datei ist wahlweise über das Menü ’View’ ®’ Browse Tracker’ ®’ Set BrowseMarks’ oder durch einen Klick mit der linken Maustaste bei gehaltener Ctrl Taste möglich. Der Marker ist durch † im linken Seitenrand gekennzeichnet. Über das Menü ’View’ ®’Browse Tracker’ ®’Prev Mark/Next Mark’ oder das Tastenkürzel Alt-up/Alt-down kann zwischen den Marker innerhalb einer Datei gesprungen werden. Dabei werden die Marker beim Navigieren in der Reihenfolge angesprungen wie diese gesetzt wurden. Falls Sie die Marker innerhalb einer Datei nach Zeilennummern sortiert durchlaufen möchten, wählen Sie einfach das Menü ’View’ ®’Browse Tracker’ ®’Sort BrowseMark’ .
Mit dem ’Clear BrowseMark’ wird ein Marker in der ausgewählten Zeile gelöscht. Falls ein Marker für ein Zeile gesetzt ist, kann bei gehaltener linker Maustaste (1/4 Sekunde) und betätigen der Ctrl Taste der Marker für diese Zeile gelöscht werden. Mit dem Aufruf ’Clear All BrowseMarks’ oder mit Ctrl-left Klick werden alle Marker innerhalb einer Datei zurückgesetzt.
Die Einstellungen für das Plugin können im Menü ’Settings’ ®’Editor’ ®’Browse Tracker’ verändert werden.
Die Konfiguration für das Plugin wird in den Anwendungsdaten in der Datei default.conf gepseichert. Bei der Verwenundung einer Personality wird die Konfiguration aus der Datei <personality>.conf gelesen.
Eine Unterstützung für die SVN Versionskontrolle bietet das CodeBlocks Plugin TortoiseSVN. Im Menü ’TortoiseSVN’ ®’Plugin settings’ lässt sich im Reiter ’Integration’ einstellen, wo die benutzerdefinierbaren SVN-Befehlen zur Verfügung stehen sollen.
In den Plugin Settings lässt sich zusätzlich im Integration Dialog ’Edit main menu’ beziehungsweise ’Edit popup menu’ konfigurieren welche SVN Kommandos im Menü bzw. Kontextmenü ausgeführt werden können.
Wenn Sie Bibliotheken in einer Anwendungen verwenden, muss Ihr Projekt so eingestellt werden, dass es nach diesen Bibliotheken sucht und diese anschließend benutzen kann. Dieser Vorgang kann zeitaufwändig und nervend sein, da jede Bibliothek unter Umständen durch unterschiedliche Arten von Option eingebunden werden muss. Des weiteren hängen die Einstellungen vom Host-Betriebssystem ab, was zu Inkompatibilitäten im Projekt für die Verwendung unter Unix und Windows führt.
LibFinder stellt folgende Kernfunktionalitäten zur Verfügung:
Die Suche nach Bibliotheken ist über das Menü ’Plugins’ ®’Library finder’ erreichbar. Der Sinn besteht in der Suche nach Bibliotheken, die bereits auf Ihrem System installiert sind. Das Ergebnis der Suche wird in der Libfinder Datenbank gespeichert. Diese Ergebnisse werden nicht in den CodeBlocks Projektdateien gespeichert. Die Suche startet mit dem Aufruf des Dialogs für die Angabe von Suchpfaden. LibFinder scannt diese Verzeichnisse rekursiv. Falls Sie nicht ganz sicher sind, wo sich die Bibliotheken befinden, ist auch die Angabe eines allgemeinen Pfades möglich. Sie können auch ganze Laufwerke angeben — in diesem Fall wird die Suche länger dauern aber voraussichtlich werden dann alle Bibliotheken gefunden (siehe Abbildung 2.11).
Abbildung 2.11: Liste für Suchpfade |
Wenn LibFinder nach Bibliotheken sucht, verwendet es spezielle Regeln um das Vorhandsein von Bibliotheken zu erkennen. Jeder Satz an Regeln ist im einer xml Datei abgelegt. Derzeit unterstützt LibFinder die Suche von wxWidgets 2.6/2.8, CodeBlocks SDK and GLFW — die Liste wird zukünftig erweitert werden.
Nach der Suche, zeigt Libfinder die Suchergebnisse an (siehe Abbildung 2.12).
Abbildung 2.12: Suchergebnisse |
In der Liste wählen Sie dann die Bibliotheken aus, die in der Libfinder Datenbank gespeichert werden sollen. Beachten Sie das jede Bibliothek mehrere gültige Konfigurationen haben kann und die Einstellungen aus vorhergehenden Suchen für die Erzeugung eines Projektes dominieren.
Mit den nachfolgenden Einstellungen lässt sich konfigurieren, wie mit den Ergebnissen aus vorhergehenden Suchen umgegangen wird.
Eine weitere Alternative in diesem Dialog ist die Einstellung ’Set up Global Variables’ . Wenn diese Option ausgewählt ist, versucht LibFinder automatisch die globalen Variablen zu konfigurieren und den Umgang mit den Bibliotheken zu erleichtern.
Wenn Sie pkg-config auf Ihrem System installiert haben (ist meist auf Linux Systemen installiert), wird LibFinder auch die Bibliotheken aus diesem Tool verwenden. Es ist keine weitere Suche erforderlich, da diese beim Start von CodeBlocks automatisch geladen werden.
LibFinder fügt in Project Properties einen weiteren Reiter ’Libraries’ ein — diese Reiter zeigt die Bibliotheken an, die im Projekt verwendet werden und LibFinder bekannt sind. Um Bibliotheken in ein Projekt einzufügen, wählen Sie einfach einen Eintrag im rechten Ausschnitt und Klicken Sie den < Knopf. Das Entfernen einer Bibliothek aus einem Projekt geschieht durch Auswahl eines Eintrages im linken Ausschnitt und einen Klick auf den > Knopf (siehe Abbildung 2.13).
Abbildung 2.13: Project configuration |
Die Anzeige von Bibliotheken, die LibFinder bekannt sind, kann gefiltert werden. Die Checkbox ’Show as Tree’ erlaubt das Umschalten zwischen kategorisiert und nicht kategorisierter Ansicht.
Wenn Sie Bibliotheken, die nicht in der LibFinder Datenbank verfügbar sind, einfügen wollen, wählen Sie den Eintrag ’Unknown Library’ . Sie sollte für die Angabe der Bibliothek das übliche Kürzel verwenden (entspricht normalerweise dem globalen Variablennamen) oder den Name der Bibliothek in pkg-config. Eine Liste von empfohlen Shortcodes finden Sie auf Global Variables. Die Verwendung dieser Option ist nur dann ratsam, wenn ein Projekt auf unterschiedlichen Systemen erzeugt werden soll, wo die erforderlichen Bibliotheken existieren und durch LibFinder ermittelt werden können. Der Zugriff auf eine globale Variable innerhalb von CodeBlocks sieht wie folgt aus:
Die Auswahl der Option ’Don’t setup automatically’ wird LibFinder anweisen die Bibliotheken nicht automatisch beim Kompilieren des Projektes einzubinden. In einem solchen Fall kann LibFinder aus einem Build Script ausgeführt werden. Ein Beispiel für ein solches Skript wird durch Auswahl des Menüs ’Add manual build script’ erzeugt und dem Projekt hinzugefügt.
Wizards erzeugen Projekte, die nicht LibFinder nutzen. Die Verwendung des Plugins erfordert, das der Benutzer die Einstellung in den Build options im Reiter ’Libraries’ anpasst. Die Vorgehensweise sieht so aus, dass alle Bibliothek spezifische Einstellungen entfernt werden müssen und die benötigten Bibliotheken im Reiter ’Libraries’ eingefügt werden.
Diese Art von Projeken werden somit unabhängig von dem verwendeten Betriebssytem. Solange nur Bibliotheken, die in der LibFinder Datenbank definiert wurden, verwendet werden, werden die Build Optionen eines Projektes automatisch aktualisiert, so dass die Einstellung auch für die plattformabhängigen Einstellungen von Bibliotheken funktionieren.
Ein Plugin zur Versionierung von Anwendungen, indem die Versions- und Buildnummer einer Anwendung jedesmal hochgezählt wird, wenn eine Änderung stattgefunden hat. Diese Information wird über einfach benutzbare Variablendeklarationen in der Datei version.h abgelegt. Des weiteren sind möglich: Übergaben im SVN Stil, ein Versionsschema Editor, ein Change Log Generator und ein Log Generator und vieles mehr †
Die Idee dieses Plugins entstand bei Entwicklung von Software, die sich im frühen pre-alpha Status befand und eine Art von Versionsinformation benötigte. Beschäftigt durch die Erstellung von Code, blieb keine Zeit um die Versionsnummer zu pflegen, deshlab wurde ein Plugin entwickelt, dass diese Arbeit erledigt und nur minimaler Bedienereingriff erfordert.
Hier finden Sie eine Liste von Features, die vom Plugin abgedeckt werden.
Wählen Sie einfach das Menü ’Project’ ®’Autoversioning’ . Das Pop Up Fenster wie auf ?? erscheint.
Abbildung 2.14: Configure project for Autoversioning |
Wenn Sie den Dialog mit yes bestätigen, dann wird der Konfigurationsdialog von Autoversioning angezeigt.
Nachdem Sie Ihr Projekt für Autoversioning konfiguriert haben, werden die Einstellungen aus dem Eingabedialog im Projekt gespeichert und eine Datei version.h wird angelegt. Ab diesem Zeitpunkt wird bei jedem Aufruf des Menüs ’Project’ ®’Autoversioning’ der Konfigurationsdialog aufgerufen, um die Einstellung für Projektversion vorzunehmen, es sei denn Sie speichern die Änderungen des Plugins in Projektdatei.
Hier können Sie einfach die zugehörigen Version Values eintragen oder Auswählen ob Auto Versioning diese für Sie hochzählt (siehe Abbildung 2.15).
Abbildung 2.15: Set Version Values |
Einige Felder sind auf vordefiniert Werte voreingestellt (siehe Abbildung 2.16).
Abbildung 2.16: Setzen Status von Autoversioning |
Hier stellen Sie ein, wie das Plugin die version values hochzählt (siehe Abbildung 2.17).
Abbildung 2.17: Scheme of autoversioning |
Hier können Sie einige Einstellungen für Auto Versioning vornehmen (siehe Abbildung 2.18).
Abbildung 2.18: Settings von Autoversioning |
Durch diese Einstellung wird die Eingabe für jegliche Änderung an einem Projekt in die Datei ChangesLog.txt generiert (siehe Abbildung 2.19).
Abbildung 2.19: Changelog von Autoversioning |
Für die Verwendung der Variablen, die durch das Plugin erzeugt wurden, müssen Sie die Datei #include <version.h> in den Quellen einfügen. Ein Beispiel für eine Quelle könnte wie folgt aussehen:
Die erzeugte Headerdatei könnte beispielsweise im C++ Mode wie folgt aussehen:
Bei der Einstellung der Sprache C ergibt sich folgende Ausgabe ohne Namespaces:
Dieser Dialog ist über das Menü ’Project’ ®’Changes Log’ erreichbar. Diese Dialog erscheint auch wenn die Einstellung ’Show changes editor’ für das Inkrementierung der Version (Changes Log) besteht. Im Dialog werden die Liste von Änderungen nach Modifikation der Quellen eines Projektes eingegeben (siehe Abbildung 2.20).
Abbildung 2.20: Changes for a project |
Hier ein Beispiel für eine Datei ChangesLog.txt, die durch Auto Versioning erzeugt wurde.
Abbildung 2.21: Konfiguration für Code Statistik |
Anhand der Angaben in der Konfigurationsmaske ermittelt dieses einfache Plugin die Anteile von Code, Kommentaren und Leerzeilen für ein Projekt. Die Auswertung wird über das Menü ’Plugins’ ®’Code statistics’ durchgeführt.
Dieses Plugin ermöglicht es, einen Begriff im Editor zu markieren und über das Kontextmenü ’Search at Koders’ in der Datenbank von [?] zu suchen. Dabei bietet der Eingabedialog zusätzlich die Möglichkeit, die Suche nach Programmiersprachen und Lizenzen zu filtern.
Durch diese Datenbanksuche finden Sie schnell Quellcode der aus anderen weltweiten Projekten von Universitäten, Consortiums und Organisationen wie Apache, Mozilla, Novell Forge, SourceForge und vielen mehr stammt und wiederverwendet werden kann, ohne dass jedes Mal das Rad neu erfunden werden muss. Bitte beachten Sie die jeweilige Lizenz des Quellcodes.
Eine einfache grafische Schnittstelle für das Profiler Programm GNU GProf.
Diese Plugin ermöglicht die Suche von Symbolen in Objekten und Bibliotheken. Dabei werden die Optionen und der Pfad für das Kommandozeilen Programm nm über den Reiter Options konfiguriert.
Abbildung 2.22: Konfiguration von Symbol Table |
Mit der Schaltfläche ’Search’ wird die Suche gestartet und die Ergebnisse des Programms NM werden in einem eigenen Fenster SymTabs Result angezeigt. Der Name des Objekts bzw. Bibliothek, die das Symbol enthalten ist unter dem Titel NM’s Output gelistet.