Verwenden externer Werkzeuge

Die PureBasic IDE ermöglicht es Ihnen, externe Programme so zu konfigurieren, dass diese direkt aus der IDE - über das Menü, Tastenkürzel, die Werkzeugleiste oder spezieller "Auslöser" (englisch "Trigger") - aufgerufen werden können. Der Nutzen hierfür liegt darin, einen einfachen Zugriff auf andere Programme - die Sie während des Programmierens verwenden - zu gewährleisten.

Sie können auch Ihre eigenen kleinen Werkzeuge (englisch "Tools") in PureBasic schreiben, die spezielle Aktionen mit dem gerade aufgerufenen Quellcode durchführen, um gewöhnliche Aufgaben zu automatisieren. Weiterhin können Sie externe Dateibetrachter konfigurieren, um den internen Dateibetrachter der IDE für bestimmte oder alle Dateien zu ersetzen.

Mit dem Menüpunkt "Werkzeuge konfigurieren" im Werkzeuge-Menü können Sie solche externen Werkzeuge konfigurieren. Die Liste, die Sie im entsprechenden Fenster sehen können, zeigt alle konfigurierten Werkzeuge in der Reihenfolge, wie sie im Werkzeug-Menü erscheinen (außer sie sind versteckt). Sie können hier Werkzeuge hinzufügen und entfernen, oder durch Auswählen eines Eintrags und anschließendem Klicken auf "Nach oben / Nach unten" die Reihenfolge ändern.

Jedes Werkzeug kann im Fenster "Werkzeuge konfigurieren" durch die Häkchen-Box vor jedem Werkzeug-Eintrag schnell aktiviert oder deaktiviert werden. Eine abgehakte Häkchen-Box bedeutet, dass das Werkzeug aktiviert ist, eine Box ohne Häkchen bedeutet, dass das Werkzeug derzeit deaktiviert ist.

Konfigurieren eines Werkzeugs

Die grundlegenden Dinge, die Sie angeben müssen, sind die Kommandozeile des zu startenden Programms und einen Namen dafür für die Werkzeuge-Liste bzw. das Werkzeuge-Menü. Alles andere ist optional.

Kommandozeile
Wählen Sie hier das auszuführende Programm aus.

Argumente
Geben Sie an das Programm zu übergebende Kommandozeilen-Parameter hier ein. Sie können dabei feste Optionen angeben, aber auch spezielle Platzhalter ("Token"), welche beim Starten des Programms ersetzt werden:

%PATH : wird ersetzt durch den Pfad des aktuellen Quellcodes. Bleibt leer, wenn der Quellcode nicht gespeichert wurde.
%FILE : Dateiname des aktuellen Quellcodes. Bleibt leer, wenn dieser noch nicht gespeichert wurde. Wenn Sie das Werkzeug konfigurieren, um den Dateibetrachter zu ersetzen, dann repräsentiert dieser Platzhalter die zu öffnende Datei. Sie sollten niemals den Inhalt der %FILE-Datei ändern. Diese Datei enthält den Zustand des Quellcodes, wie er vom Benutzer zuletzt gespeichert wurde. Dies kann sich stark von dem unterscheiden, was derzeit im Editor angezeigt wird. Wenn Sie diese Datei überschreiben, könnte der Benutzer Daten verlieren.
%TEMPFILE : Wenn diese Option genutzt wird, dann wird der aktuelle Quellcode in eine temporäre Datei gespeichert und deren Dateiname wird hier eingefügt. Sie können die Datei auf Wunsch modifizieren oder löschen.
%COMPILEFILE : Dieser Platzhalter ist nur gültig für Kompilierungs-Auslöser (Trigger), siehe dazu weiter unten. Dieser wird ersetzt mit der temporären Datei, welche zur Kompilierung an den Compiler geschickt wird. Durch Ändern dieser Datei können Sie auch beeinflussen, was kompiliert wird.
%EXECUTABLE : Dieser Platzhalter wird durch den Namen des Executable ersetzt, welches zuletzt mit "Executable erstellen" kompiliert wurde. Beim Auftreten des Auslösers "Nach Kompilieren/Starten" wird dieser Platzhalter durch den Namen der vom Compiler erstellten temporären Executable-Datei ersetzt.
%CURSOR : Wird durch die aktuelle Cursor-Position ersetzt. In der Form ZEILExSPALTE.
%SELECTION : Wird ersetzt durch die aktuelle Textauswahl in der Form von STARTZEILExSTARTSPALTExENDEZEILExENDESPALTE. Dies kann zusammen mit %TEMPFILE verwendet werden, wenn Sie möchten, dass Ihr Werkzeug einige Aktionen basierend auf dem aktuell ausgewählten Textbereich ausführt.
%WORD : Enthält das Wort, welches sich gerade unter dem Cursor befindet.
%PROJECT : Der vollständige Pfad zum Verzeichnis, welches die Projekt-Datei enthält, sofern ein Projekt geöffnet ist.
%HOME : Der vollständige Pfad zum Purebasic-Verzeichnis.

Hinweis: Für alle Dateinamen- oder Pfad-Platzhalter ist es generell eine gute Idee, sie in "" zu setzen (z.B. "%TEMPFILE"), um sicherzugehen, dass alle Pfade mit darin enthaltenen Leerzeichen korrekt an das Werkzeug übergeben werden. Diese Platzhalter und eine Beschreibung können Sie auch durch Anklicken des "Info"-Schalters neben dem "Argumente"-Feld ansehen.

Arbeitsverzeichnis
Wählen Sie ein Verzeichnis aus, in welchem dieses Werkzeug ausgeführt werden soll. Wenn Sie hier kein Verzeichnis angeben, wird das Werkzeug im Verzeichnis des gerade geöffneten Quellcodes ausgeführt.

Name
Geben Sie hier einen Namen für das Werkzeug ein. Dieser wird in der Werkzeuge-Liste und auch im Werkzeuge-Menü angezeigt, sofern das Werkzeug nicht vom Menü versteckt werden soll.

Ereignis zum Auslösen des Werkzeugs

Hier können Sie auswählen, wann das Werkzeug ausgeführt werden soll. Eine beliebige Anzahl an Werkzeugen kann den gleichen Auslöser haben, sie werden alle ausgeführt, sobald der "Auslöser" auftritt. Die Reihenfolge ihrer Ausführung hängt von der Reihenfolge, in der sie in der Werkzeugeliste erscheinen, ab.

Menü oder Tastenkürzel
Das Werkzeug wird nicht automatisch ausgeführt. Es wird durch ein Tastenkürzel oder über das Menü gestartet. Hinweis: Um ein Werkzeug von der Symbolleiste aus zu starten, müssen Sie einen Schalter dafür in der Symbolleisten-Konfiguration in den Einstellungen hinzufügen (siehe Anpassen der IDE für weitere Informationen).

Mit der Einstellung dieses Auslösers wird die "Tastenkürzel"-Option darunter anwählbar. Dort können Sie dann auch ein Tastenkürzel für das Starten dieses Werkzeugs einstellen.

Editor-Start
Das Werkzeug wird direkt nach dem vollständigen Start der IDE ausgeführt.

Editor-Schließen
Das Werkzeug wird unmittelbar vor dem Schließen der IDE ausgeführt. Beachten Sie, dass zu diesem Zeitpunkt bereits alle zuvor geöffneten Quellcodes geschlossen sind.

Vor dem Kompilieren/Starten
Das Werkzeug wird gestartet, unmittelbar bevor der Compiler zum Kompilieren eines Quellcodes aufgerufen wird. Durch Verwendung des %COMPILEFILE Platzhalters können Sie den zu kompilierenden Code erhalten und diesen verändern. Dies macht es möglich, einen kleinen Pre-Prozessor für den Quellcode zu schreiben. Denken Sie bitte daran, dass Sie die Option "Warten bis zum Beenden des Werkzeugs" aktivieren sollten, wenn Sie Ihre Modifizierungen an den Compiler weitergeben möchten.

Nach dem Kompilieren/Starten
Das Werkzeug wird gestartet, unmittelbar nachdem die Kompilierung abgeschlossen wurde, jedoch bevor das Executable zum Testen ausgeführt wird. Durch Verwendung des %EXECUTABLE Platzhalters können Sie Zugriff auf die soeben erstellte Datei erhalten. Beachten Sie, dass Sie die Datei verändern, jedoch nicht löschen können, da dies zu einer Fehlermeldung führt, wenn die IDE versucht die Datei auszuführen.

Kompiliertes Programm starten
Das Werkzeug wird gestartet, wenn der Anwender den "Starten"-Befehl aus dem Compiler-Menü auswählt. Das Werkzeug wird ausgeführt, bevor das Executable gestartet wird. Der %EXECUTABLE Platzhalter ist hier ebenfalls gültig.

Vor dem Erstellen des Executable
Das gleiche wie beim "Vor dem Kompilieren/Starten" Auslöser passiert auch hier, nur dass das auslösende Ereignis auftritt, wenn der Anwender das fertige Executable erstellt.

Nach dem Erstellen des Executable
Das Werkzeug wird gestartet, wenn die Kompilierung zur Erstellung des fertigen Executable fertiggestellt ist. Sie können den %EXECUTABLE Platzhalter verwenden, um den Namen der erstellten Datei zu erhalten und damit weitere Aktionen durchzuführen.

Quellcode geladen
Das Werkzeug wird ausgeführt, wenn ein Quellcode in die IDE geladen wurde. Die %FILE und %PATH Platzhalter sind hier immer gültig, da die Datei gerade von Disk geladen wurde.

Quellcode gespeichert
Das Werkzeug wird ausgeführt, sobald ein Quellcode in der IDE erfolgreich gespeichert wurde. Die %FILE und %PATH Platzhalter sind hier immer gültig, da die Datei gerade auf Disk gespeichert wurde.

Quellcode geschlossen
Das Werkzeug wird ausgeführt, sobald ein Quellcode geschlossen werden soll. Zu diesem Zeitpunkt ist die Datei noch vorhanden, sodass Sie immer noch deren Inhalt mit dem %TEMPFILE Platzhalter erhalten können. %FILE wird leer sein, wenn die Datei noch nie gespeichert wurde.

Dateianzeiger ersetzen - Alle Dateien
Das Werkzeug ersetzt komplett den internen Dateianzeiger. Wenn in der IDE ein Versuch zum öffnen einer Datei gestartet wird, welche nicht in den Editier-Bereich geladen werden kann, wird die IDE zuerst die Werkzeuge mit einem für den speziellen Dateityp gesetzten Auslöser probieren. Wenn keines gefunden werden kann, wird die zu öffnende Datei an dieses Werkzeug geleitet. Verwenden Sie den %FILE Platzhalter, um den Dateinamen der zu öffnenden Datei zu erhalten.

Hinweis: Nur ein Werkzeug kann diesen Auslöser haben. Jede weiteren Werkzeuge mit diesem Auslöser werden ignoriert.

Dateianzeiger ersetzen - Unbekannte Dateien
Dieses Werkzeug ersetzt in erster Linie den Hex-Dateibetrachter, welcher üblicherweise verwendet wird, um unbekannte Dateiformate anzuzeigen. Er wird gestartet, wenn die Dateiendung der IDE unbekannt ist und wenn kein anderes externes Werkzeug zum Anzeigen einer solchen Datei konfiguriert ist. (Wenn ein Werkzeug mit dem "Dateianzeiger ersetzen - Alle Dateien" Auslöser gesetzt ist, dann wird dieses Werkzeug niemals aufgerufen.)

Hinweis: Nur ein Werkzeug kann diesen Auslöser haben.

Dateianzeiger ersetzen - Spezielle Dateien
Damit wird ein Werkzeug zum Umgang mit bestimmten Dateiendungen konfiguriert. Es hat eine höhere Priorität als die "Dateianzeiger ersetzen - Alle Dateien" oder "Dateianzeiger ersetzen - Unbekannte Dateien" Auslöser und auch als der interne Dateibetrachter selbst. Geben Sie die Dateiendungen, welche durch das Werkzeug geöffnet werden sollen, in dem Eingabefeld auf der rechten Seite an. Mehrere Endungen können eingegeben werden.

Eine beispielhafte Anwendungsmöglichkeit für diesen Auslöser ist zum Beispiel das Konfigurieren eines Programms wie dem Acrobat Reader zum Umgang mit der "pdf"-Dateiendung. Dies ermöglicht es Ihnen, PDF-Dateien einfach aus dem Dateiexplorer, dem Dateianzeiger oder mittels Doppelklick auf eine Includebinary Anweisung im Quellcode zu öffnen.

Datei öffnen – spezielle Dateiendungen
Dies wird ausgelöst (englisch "triggered") bei bestimmten Dateiendungen. Dieser Auslöser hat eine höhere Priorität als "Datei öffnen – nicht-PB Binärdateien" und "Datei öffnen – nicht-PB Textdateien". Geben Sie die Dateiendungen, welche das Tool unterstützen soll, in der Editier-Box rechts an. Mehrere Dateiendungen können angegeben werden.

Hinweis: Die "Datei öffnen" Auslöser werden dann aktiv, wenn man eine Datei über das Datei/Öffnen Menü der IDE öffnet oder eine Datei per Drag&Drop auf die IDE gezogen wird. Diese Auslöser haben eine höhere Priorität für die Datei/Öffnen Tasks. Nur wenn kein aktives Werkzeug vorhanden ist, werden die "Dateianzeiger ersetzen"-Auslöser behandelt.

Datei öffnen – nicht-PB Binärdateien
Dieser Auslöser wird getriggert bei Binärdateien, die nicht zu PureBasic gehören (also praktisch alle).

Hinweis: Nur ein Werkzeug kann diesen Auslöser haben. Alle anderen Tools mit diesem Trigger werden ignoriert.

Datei öffnen – nicht-PB Textdateien
Dieser wird getriggert bei Textdateien, die nicht zu PureBasic gehören.

Hinweis: Nur ein Werkzeug kann diesen Auslöser haben.

Andere Optionen auf der rechten Seite

Warten bis zum Beenden des Werkzeugs
Die IDE wird für Eingaben gesperrt und unterlässt alle Aktionen bis das Werkzeug fertig mit seiner Arbeit ist. Diese Option ist notwendig, wenn Sie einen Quellcode verändern und danach wieder laden oder ihn an nach einem entsprechenden Auslöser an den Compiler übergeben möchten.

Versteckt starten
Startet das Programm im unsichtbaren Modus. Verwenden Sie diese Option nicht für Programme, welche evtl. Anwender-Eingaben erwarten, da es in diesem Fall keine Möglichkeit zum Schließen des Programms gibt.

Editor verstecken
Dies ist nur möglich mit der gesetzten Option "Warten bis zum Beenden des Werkzeugs". Versteckt den Editor, während das Werkzeug läuft.

Quellcode nach Ende des Werkzeugs neu laden
Dies ist nur möglich mit der gesetzten Option "Warten bis zum Beenden des Werkzeugs" und wenn entweder der %FILE oder %TEMPFILE Platzhalter in der Argumente-Liste verwendet wird.

Nachdem Ihr Programm beendet wurde, wird die IDE den Quellcode erneut in den Editor laden. Sie können auswählen, ob dieser den alten Code ersetzen oder als ein neuer Code geladen werden soll.

Werkzeug vom Hauptmenü verstecken
Versteckt das Werkzeug vom Werkzeuge-Menü. Dies ist nützlich für Werkzeuge, welche nur durch einen speziellen "Auslöser" und nicht vom Menü aus gestartet werden sollen.

Werkzeug auf einer pro-Quellcode Basis aktivieren
Werkzeuge mit dieser gesetzten Option werden in der "Werkzeuge ausführen" Liste in den Compiler-Optionen aufgelistet, und nur für solche Quellcodes ausgeführt, wo es dort aktiviert ist. Bitte beachten Sie, dass bei Deaktivieren eines Werkzeugs hier im "Werkzeuge konfigurieren" Fenster dieses global deaktiviert wird und damit für keinen Quellcode läuft, auch wenn es dort aktiviert wird.

Diese Option ist nur verfügbar für die folgenden Auslöser-Ereignisse:
- Vor dem Kompilieren/Starten
- Nach dem Kompilieren/Starten
- Kompiliertes Programm starten
- Vor dem Erstellen des Executable
- Nach dem Erstellen des Executable
- Quellcode geladen
- Quellcode gespeichert
- Quellcode geschlossen

Unterstützte Dateierweiterungen
Nur für den "Dateianzeiger ersetzen - Spezielle Dateien" Auslöser. Geben Sie die Liste der durch dieses Werkzeug unterstützten Endungen hier ein.

Tipps für das Schreiben Ihrer eigenen Quellcode-Prozessoren (Verarbeitungswerkzeuge)

Die IDE bietet zusätzliche Informationen für die Werkzeuge in der Form von Umgebungsvariablen. Diese können innerhalb des Werkzeugs einfach mit den Befehlen der Process Bibliothek gelesen werden.

Dies ist eine Liste der angebotenen Variablen. Bitte beachten Sie, dass die Variablen, welche Informationen über den aktiven Quellcode bieten, nicht für Werkzeuge zum Start oder Ende der IDE verfügbar sind.
  PB_TOOL_IDE         - Voller Pfad und Dateiname der IDE
  PB_TOOL_Compiler    - Voller Pfad und Dateiname des Compilers
  PB_TOOL_Preferences - Voller Pfad und Dateiname der IDE-Einstellungsdatei (.prefs)
  PB_TOOL_Project     - Voller Pfad und Dateiname des aktuell offenen Projekts (falls es eines gibt)
  PB_TOOL_Language    - Sprache, welche gegenwärtig in der IDE verwendet wird
  PB_TOOL_FileList    - Eine Liste aller in der IDE geöffneten Dateien, getrennt durch Chr(10)

  PB_TOOL_Debugger    - Diese Variablen bieten Einstellungen aus dem Fenster Compiler Optionen
  PB_TOOL_InlineASM     des aktuellen Quellcodes. Sie sind auf "1" gesetzt, wenn die Option
  PB_TOOL_Unicode       eingeschaltet ist, andernfalls auf "0".
  PB_TOOL_Thread     
  PB_TOOL_XPSkin     
  PB_TOOL_OnError    

  PB_TOOL_SubSystem   - Inhalt des "Subsystem" Felds in den Compiler-Optionen
  PB_TOOL_Executable  - das gleiche wie das %COMPILEFILE Token für die Kommandozeile
  PB_TOOL_Cursor      - das gleiche wie das %CURSOR Token für die Kommandozeile
  PB_TOOL_Selection   - das gleiche wie das %SELECTION Token für die Kommandozeile
  PB_TOOL_Word        - das gleiche wie das %WORD Token für die Kommandozeile

  PB_TOOL_MainWindow  - OS Handle des IDE-Hauptfensters
  PB_TOOL_Scintilla   - OS Handle der Scintilla Editor-Komponente des aktuellen Quellcodes

Wenn die %TEMPFILE oder %COMPILEFILE Platzhalter verwendet werden, hängt die IDE die Compiler-Optionen als Kommentar an das Ende der erstellten temporären Datei - auch wenn der Anwender ausgewählt hat, die Optionen beim Speichern eines Quellcodes nicht zu speichern.

Dies gibt Ihrem Werkzeug die Möglichkeit, die Compiler-Einstellungen für diese Datei auszulesen und diese bei den weiteren Aktionen mit zu berücksichtigen.