UltraEdit als IDE für BlitzMax

Übersicht BlitzMax, BlitzMax NG FAQs und Tutorials

Neue Antwort erstellen

d-bug

Betreff: UltraEdit als IDE für BlitzMax

BeitragDi, März 20, 2007 23:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Vorweg, das ganze basiert auf diesem englischen Tutorial. Aber ein paar dinge
hab ich geändert (vorallem am Highlighter)!

Geht es euch nicht auch so? Die BlitzMax IDE raubt euch jeden Spaß am programmieren,
BLide ist euch viel zu überladen? Alle anderen IDEs für Blitzmax sind entweder zu
verbuggt, oder ihre Entwicklung wurde eingestellt. Das kann einen wirklich frustrieren!

Da ich schon länger nach einer Alternative suchte stolperte ich irgendwann über UltraEdit.
Functionfolding, Bookmarks, Block-Kommentare einen frei konfigurierbaren Highlighter... Ich war begeistert!

Hier werde ich nun beschreiben, wie man UltraEdit zur BlitzMax IDE umfunktioniert.


Los geht es mit Besorgungen
Als erstes brauchen wir mal UltraEdit(UE) ...

Um den Highlighter benutzen zu können benötigt UE ein so genanntes Wordfile. Ich bereits eines
angefangen, was auch schon die meisten Kommentare, Funktion, Konstanten, Types, Direktiven und Delimiter enthält.
Natürlich ist es nicht komplett, denn ich frickel da nach und nach immer weiter dran herum.


Highlighter Einstellungen
So ohne weiteres funktioniert das natürlich nicht, man muss schon ein paar Einstellungen und Tricks anwenden.

Als erstes sorgen wir mal dafür, dass UE auch kapiert, dass es sich um ein *.bmx File handelt und es auch richtig
highlightet. Dafür öffnen wir mal die Optionen : Menü "Extras" --> "Optionen..."
user posted image
Dieser Dialog sollte nun erschienen sein. Selbstverständlich sieht der bei mir nur so aus, weil ich
Windowblinds benutze. Der Grundaufbau ist aber der gleiche.

zu 1 (Im Bild):
Hier müssen wir erstmal das Wordfile angeben.

zu 2 (Im Bild):
In diesem Dropdown wählen wir nach erfolgreichem laden des Wordfiles jetzt
den Eintrag BlitzMax 1.24 aus.

zu 3 (Im Bild):
Hier kann man die Farben und Fontface festlegen die vom Highlighter benutzt werden sollen. Ich empfehle dringendst einen Monospace-Font zu benutzen, da UE anscheinend Probleme beim Markieren hat, wenn es keiner ist. Wie man den Font ändert
erkläre ich später noch. Hier ist erstmal nur wichtig, dass man z.B. Funktionen fett, Kommentare Kursiv usw. einstellen kann.

Zum eintragen neuer Funktionen in das Wordfile muss man es einfach nur mit UE öffnen den Eintrag vornehmen und das File
speichern. Oh Wunder, UE merkt es und highlightet die frisch eingetragene Funktion direkt!!!! Auch hier muss man etwas
vorsichtig sein, denn alle Wörter einer Kategorie (z.B. Funktionen), mit dem gleichen Anfangsbuchstaben müssen in der selben
Reihe, oder der angrenzenden Reihe stehen. Tragt ihr z.B. "Next" direkt hinter "For" in das Wordfile ein, kann es
passieren, dass UE völlig durcheinander kommt.


Font einstellen
Wie oben schon gesagt empfehle ich einen Monospace-Font. Als Monospace bezeichnet man Fonts, deren Zeichen alle die selbe
Breite haben (z.B. Fixedsys).

Den Font ändern kann man unter : Menü "Ansicht" --> "Schriftart einstellen..."


Dateidialog um BlitzMax Dateien erweitern
Um Im Datei-Dialog nach BlitzMax (*.bmx) Dateien filtern zu können müssen wir noch eine Einstellung vornehmen.
Unter Menü "Extras" --> "Optionen..." suchen wir nach dem Eintrag Dateitypen in der Liste und
Tragen dort das ein was im unteren Bild zu sehen ist, bevor wir Einfügen drücken.
user posted image
Ab jetzt solltet ihr in der Lage sein euch nur BMax Dateien anzeigen zu lassen.

~Update 12.04.07~
Achtet darauf, dass die Dateiendung klein ist. Auf keinen Fall .BMX benutzen, denn solltet ihr eure Codes weiter geben an User der normalen MaxIDE werden die sehr erstaunt sein, dass es nur Fehlermeldungen hagelt. Macht auch irgendwie Sinn, denn schließlich sollen die Codes ja auch auf Linux und MacOSX ladbar sein können. Wie man auf dem Bild sieht machte ich genau diesen Fehler, weiß also wovon ich spreche.


Kompilieren
Jetzt kommen wir wohl zum wichtigsten. Ohne UE zu zu erzählen, was es mit den BMax-Dateien tun soll können wir
das Ganze auch gleich vergessen. Da UE keine direkte Compiler-Unterstützung besitzt sind wir hier leider gezwungen
mit Tricks zu arbeiten.

Als erstes brauchen wir mal 2 Batch Dateien.

Diese ist für den Release Modus gedacht...
Code: [AUSKLAPPEN]
@echo off
del %1
c:\blitzmax\bin\bmk.exe makeapp -a -r -t gui %1.bmx
%1

Speichert diese als Run.bat ab...

...und diese für den Debug-Modus
Code: [AUSKLAPPEN]
@echo off
del %1
c:\blitzmax\bin\bmk.exe makeapp -a -d -t gui %1.bmx
%1

Speichert diese als Debug.bat ab...

Natürlich müsst ihr den Pfad zu bmk.exe an euren eigenen anpassen.

Nun fangen wir an uns so genannte Werkzeuge anzulegen.
Öffnet zunächst mal : Menü "Extras" --> "Werkzeug-Konfiguration..."
Jetzt solltet ihr folgenden Dialog sehen:
user posted image
Dieser Dialog ist eigentlich recht selbsterklärend. Wichtig ist hierbei, dass ihr zunächst einmal Einfügen
drückt, sonst überschreibt ihr evtl. das erste, bereits vorhandene, Werkzeug wieder.

%p sagt UE, dass er den Pfad der Datei im aktuellen Reiter verwenden soll.
%n sagt UE, dass er den Namen der Datei im aktuellen Reiter verwenden soll.

Natürlich müsst ihr auch hier wieder euren eigenen Pfade zu den Batch Dateien verwenden.

Nun wechseln wir zum Reiter Optionen
user posted image
Da es sich um eine Batch-Datei handelt müssen wir hier DOS-Programm einstellen.
Ob ihr alle geöffneten Dateien, oder nur die aktuelle, oder aber gar keine speichern wollt bleibt
euch selbst überlassen.

Auf zum Reiter Ausgabe
user posted image
Ausgabe in Listenfeld sagt UE, dass die Ausgabe von BMK in das Ausgabefenster umgeleitet wird.
Ausgabe aufzeichnen sorgt dafür, dass wir überhaupt was sehen können im Ausgabefenster.
Alles weitere ist Mumpitz!

Okay, hier kommen wir auch schon zum nächsten Nachteil von UltraEdit.
UltraEdit ist nicht in der Lage die Ausgaben von BMK während der Laufzeit eures Programms
in das Ausgabefenster zu schreiben. Die Ausgabe erfolgt erst nach Beenden eurer Applikation. Das
nervt brutal, kann aber durch den Einsatz von UEStudio umgangen werden. Wie das geht erzähle ich
euch morgen Abend.

Das ganze macht ihr jetzt nochmal für die Debug.bat und schon kann es losgehen.


Und nochwas...
Der Highlighter ist nicht in der Lage zwischen Rem und Remove zu unterscheiden. Das habe ich umgangen
in dem ich mir angewöhnte Rem' zu schreiben. Das wird vom Highlighter erkannt. Ebenso kann er bei
Rem-Blöcken ein "End Rem" nicht finden, da End eine Funktion ist, die sehr oft vorkommt solltet ihr
lieber "EndRem" schreiben.

Ein Rem-Block sähe also so aus:
Code: [AUSKLAPPEN]
Rem'
   Blablablabla blubber toller Rem-Block
EndRem


Dies hat KEINE Auswirkungen auf Docmods oder HotDocs, oder was ihr auch immer verwendet.

Wie ihr euren Run- und Debug-Werkzeugen die richtigen Tasten, bzw eine eigene Toolbar zuweist
steht sehr detailliert in der Hilfe von Ultraedit.


Abschließend
Gut, UltraEdit hat durchaus auch seine Nachteile, aber die tolle Funktionsumfang machte mir das
alles wieder wett. Natürlich bin ich schließlich auf UEStudio umgestiegen. Aber das ist auch nichts
anderes als UltraEdit mit ein paar Zusatz-Features. Wie man UEStudio zuleibe rückt erkläre ich euch
dann nächstes mal.

Ich bin bei weitem noch nicht fertig den kompletten Funktionsumfang von UE oder UEStudio zu lernen,
also erwartet nicht, dass das hier die perfekte Lösung darstellt.

So, sollte ich irgendwas vergessen haben, sagt es mir einfach.
  • Zuletzt bearbeitet von d-bug am Do, Apr 12, 2007 10:06, insgesamt 2-mal bearbeitet

rema

BeitragMi, März 21, 2007 6:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Super Sache von dir! Leider läuft UE nicht unter Mac *heul*...
 

Barbapapa

BeitragMi, März 21, 2007 12:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Klingt super, aber wie sieht es denn mit dem debuggen aus?

d-bug

BeitragMi, März 21, 2007 12:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit dem Debuggen siehts im Moment noch schlecht aus. Da bin ich noch am experimentieren. Leider gehöre ich zu den Menschen, die eher selten den Debugger benutzen. Deswegen komme ich eigentlich auch so klar. Wenn ich es aber richtig einschätze bräuchte man einen externen Debugger. Sprich, man müsste sich mal klepto2s Tutorial durchlesen und daraus einen eigenständigen Debugger schreiben.

Wie ich oben bereits sagte, ist das Einstellen von UE bei mir immernoch in Arbeit.

cheers
 

Barbapapa

BeitragMi, März 21, 2007 14:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Da fällt mir ein, dass ich auch Eikons Editor mal testen wollte. Schade, dass alle Kräfte an ihrem eigenen Ding arbeiten. Aber zumindest ist UE bewährt, bin sehr gespannt wie weit du es ausreizen kannst. Halte uns auf dem laufenden.

BtbN

BeitragMi, März 21, 2007 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
man kann auch komplett 'ohne debuger' debugen, da bmax den debugger mit in die debug-binary einkompiliert und dieser über die komandozeile benutzbar isr.

d-bug

BeitragMi, März 21, 2007 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt noch fix ein paar kleine Helferlein. Bitte alle Pfade durch die eigenen
ersetzen.


"Syncmods" als Werkzeug einrichten

Menü "Extras" --> "Werkzeug-Konfiguration...

Reiter "Befehl"

  • Einfügen : drücken
  • Bezeichnung für den Menüeintrag : "Synchmods"
  • Befehlszeile : "C:\Blitzmax\bin\syncmods.exe -u DEINUSER -p DEINPW brl pub DEINSCOPE1 DEINSCOPE2 DEINSCOPE3..."
  • Arbeitsverzeichnis : Leer
  • Werkzeugsymbol : Nach Bedarf

Reiter "Optionen"

  • Programmtyp : DOS-Programm
  • Aktive Datei erst speichern : Nach Bedarf
  • Erst alles speichern : Nach Bedarf

Reiter "Ausgabe"

  • Befehlsausgabe : An vorhandene anhängen
  • DOS-Fenster anzeigen : Haken gesetzt
  • Ausgabe aufzeichnen : Haken gesetzt <-- editiert
  • Markierten Text ersetzen durch : Nicht ersetzen



"Build All Modules" als Werkzeug einrichten

Menü "Extras" --> "Werkzeug-Konfiguration...

Reiter "Befehl"

  • Einfügen : drücken
  • Bezeichnung für den Menüeintrag : "Build All Modules"
  • Befehlszeile : "C:\Blitzmax\bin\bmk.exe makemods"
  • Arbeitsverzeichnis : Leer
  • Werkzeugsymbol : Nach Bedarf

Reiter "Optionen"

  • Programmtyp : DOS-Programm
  • Aktive Datei erst speichern : Nach Bedarf
  • Erst alles speichern : Nach Bedarf

Reiter "Ausgabe"

  • Befehlsausgabe : An vorhandene anhängen
  • DOS-Fenster anzeigen : Haken gesetzt
  • Ausgabe aufzeichnen : Haken gesetzt <-- editiert
  • Markierten Text ersetzen durch : Nicht ersetzen



"Build All Docs" als Werkzeug einrichten

Menü "Extras" --> "Werkzeug-Konfiguration...

Reiter "Befehl"

  • Einfügen : drücken
  • Bezeichnung für den Menüeintrag : "Build All Docs"
  • Befehlszeile : "C:\Blitzmax\bin\docmods.exe"
  • Arbeitsverzeichnis : Leer
  • Werkzeugsymbol : Nach Bedarf

Reiter "Optionen"

  • Programmtyp : DOS-Programm
  • Aktive Datei erst speichern : Nach Bedarf
  • Erst alles speichern : Nach Bedarf

Reiter "Ausgabe"

  • Befehlsausgabe : An vorhandene anhängen
  • DOS-Fenster anzeigen : Haken gesetzt
  • Ausgabe aufzeichnen : Haken gesetzt <-- editiert
  • Markierten Text ersetzen durch : Nicht ersetzen


Viel Spaß damit.

~edit 02.04.07~
Man sollte die Ausgabe lieber doch in das Ausgabefenster umleiten, da man
sonst leider nicht mehr sehen kann, wenn etwas schief gelaufen ist. Das
ömmelige DOS-Fenster schließt sich ja direkt, wenn ein Fehler auftritt, oder
der entsprechende Befehl fertig abgearbeitet ist.
  • Zuletzt bearbeitet von d-bug am Do, Apr 12, 2007 10:08, insgesamt 2-mal bearbeitet

Vertex

BeitragDo, März 22, 2007 0:47
Antworten mit Zitat
Benutzer-Profile anzeigen
UltraEdit sieht ja gar nicht mal schlecht aus, aber ohne Debugfunktion für mich unbrauchbar. Da BMax sicher nicht die einzige Sprache für UltraEdit ist, frage ich mich, ob es da Debugger für C, C++ usw. gibt. Besser gesagt, ob es überhaupt die Möglichkeit gibt, Debugger zu implementieren.

mfg olli

Edit: Uff, der Spaß kostet ja zudem 50$ Shocked Das finde ich aber ganz schön happig für einen Texteditor. Das hat sich somit für mich auch gleich wieder erledigt ^^
vertex.dreamfall.at | GitHub

d-bug

BeitragDo, März 22, 2007 9:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Jap, ist nicht billig, der Kleine!

Klepto2 hat sich freundlicher weise bereit erklärt einen externen Debugger für UE zu schreiben. Das rechne ich ihm hoch an und bin mir auch sehr sicher, dass da was ordentlicheres bei rum kommt, als wenn ich das gemacht hätte.

cheers

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG FAQs und Tutorials

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group