Erste Bilder

Es ist mal wieder an der Zeit ein paar Bilder zu zeigen. Zwar sind die sich in der Entwicklung befindlichen Programme noch lange nicht fertig, aber man kann schon Teile ihrer Funktionen präsentieren.

Zum einen wäre da das Werkzeug vjassdoc, an welchem ich in den letzten Tagen sehr lange gearbeitet habe.
Momentan müssen immer noch die Dokumentationskommentare richtig umgewandelt werden, damit sie in der Beschreibung eines Objekts ausgegeben werden können.
Außerdem hatte ich einige Probleme damit, enthaltene Objekte richtig zu verlinken. Immerhin muss mein Werkzeug selbst herausfinden, um welchen Typ von Objekt es sich handelt und wo sich dieser befindet.
Zum Beispiel bei folgender Funktion:

function takes integer a, bla b returns bla

bla kann entweder ein Typ, eine Schnittstelle, eine Funktionsschnittstelle oder eine Struktur sein. Was meist noch kein Problem darstellt. Wenn es nun aber um eine Funktion geht, so kann das eine private Funktion aus der gleichen Bibliothek oder aus dem gleichen Bezugsrahmen sein, oder eben eine öffentliche von irgendwo anders:

library MyLibrary initializer Init //Wo ist Init definiert?

Dafür entwickle ich gerade eine spezielle Suchfunktion, die nach ihrer Fertigstellung immer einen einhundertprozentigen Treffer erzielen sollte. Außer natürlich wenn das Objekt in keiner der geparsten Dateien vorhanden ist.
Auch die Suchfunktion muss noch richtig umgesetzt werden. Dabei hatte ich vor, die Objektlisten in einer SQLite-Datenbank zu speichern.
Wie das Ganze noch umgesetzt werden soll, wird sich erst demnächst zeigen.

Wie man unschwer erkennen kann befindet sich vor allem die Suchfunktion noch in der Anfangsphase der Entwicklung. Man soll später auch Kriterien wie Bibliotheken oder Bezugrahmen des gesuchten Objekts angeben können. Auch wird die Dokumentation farblich ein wenig besser dargestellt werden als jetzt.

Da ich selbst ein Gentoo-Linux-Betriebssystem benutze, schreibe ich meinen vJass-Code auch nicht mit Standardprogrammen wie zum Beispiel JassCraft oder TESH. Stattdessen verwende ich Kate, einen netten Editor des KDE-Projekts.
Natürlich wollte ich darin auch eine eigene Syntaxhervorhebung für vJass haben, so habe ich, wie ich im letzten Blog-Eintrag schon berichtet habe, kurzer Hand meine eigene Syntaxhervorhebungs-Datei erstellt. In Kate bzw. Kwrite werden Hervorherbungsdateien in Form spezieller XML-Dateien eingebunden.
Es fehlen noch einige Eigenschaften wie das Hervorheben von Makroanweisungen und eine richtige Blockerkennung. Sobald ich diese Datei vollendet habe, wird sie selbstverständlich ein Teil der Datensammlung werden und die vJass-Syntax wird im Programm vjasside genauso angezeigt werden.

Kommen wir damit auch gleich zu jenem. In meinem letzten Blog-Eintrag habe ich geschrieben, dass ich gerne eine vJassIDE entwickeln würde, zumal ich schon Erfahrungen mit Qt gesammelt habe.
Nun, so ist es geschehen und ich habe mit der Entwicklung begonnen.
Das ganze Projekt nennt sich jetzt “vJassSDK” (Software Development Kit) und wird eine Zusammenstellung der im letzten Blog-Eintrag genannten Werkzeuge sein, die über die IDE ansprechbar sind. Dieses vJassSDK ist natürlich ebenfalls ein Bestandteil der Datensammlung und wird somit wie alle meine Projekte ein Open-Source-Projekt sein.
Die erste Version davon wird sich mit ihren Funktionen wohl noch etwas in Grenzen halten werden.
Sie wird ähnlich wie JassCraft aufgebaut sein, allerdings orientiere ich mich bei der Editorstrukturierung eher an KWrite und dessen Erweiterungen.
Der Jass- bzw. vJass-spezifische Menü-Eintrag heißt schlicht und einfach “Erstellen” und enthält bis jetzt folgende Aktionen:

  • Jass-Syntax überprüfen: Überprüft mit Hilfe von PJass die Syntax des Codes.
  • vJass-Syntax überprüfen: Überprüft mit Hilfe des JassHelpers die Syntax des Codes und fügt den Code eventuell der entsprechenden Kartendatei hinzu.
  • Dokumentation erstellen: Erstellt mit Hilfe von vjassdoc eine API-Dokumentation aus allen geöffneten Dateien.
  • Debug-Modus aktivieren/deaktivieren: Aktiviert bzw. deaktiviert den Debug-Modus. Dieser hat Auswirkungen auf vJass-Code (debug-Schlüsselwort) und die von mir entwickelten Werkzeuge (Debug-Ausgabe, vjassdoc parst eventuell debug-Code-Teile).

Am rechten Rand des Hauptfensters wird sich wie in JassCraft eine Liste befinden. Anders als in JassCraft befinden sich in dieser Liste nicht nur Globale und Funktionen, sondern stattdessen auch Objekte aus vJass wie zum Beispiel Strukturen und Schnittstellen.
Die Liste wird mit Hilfe des Werkzeugs vjassdoc aus einer ausgewählten Dokumentation erstellt.
Vorlagen wie bei JassCraft wird es wahrscheinlich nicht geben, da ich diese für mehr als unnötig halte.
Die Syntaxhervorherbung wird selbstverständlich in Form und Farbe konfigurierbar sein. Zudem soll in einer späteren Version ein Menü namens “Projekt” eingebaut werden, mit dem man dann seine Projekte ein wenig besser verwalten kann.
Natürlich unterstützt der Editor auch mehrere Tabs.
Am unteren Rand wird sich, genau wie in JassCraft, eine Beschreibung des in der Liste ausgewählten Objekts befinden.
Was auf die linke Seite kommen wird ist bis jetzt noch unklar.

Die genannte MPQ-Unterstützung wird es vorerst nicht geben und falls sich der JassHelper unter Linux nicht kompilieren lässt, wird man Wine benötigen, welches diesen problemlos ausführen können sollte.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: