vjasside veröffentlicht

Am Abend des 1. Märzes habe ich die derzeitige Version des Programms vjasside auf inWarcraft.de veröffentlicht.

Inzwischen hat es bezüglich der Syntaxhervorhebung des Programms einige bedeutende Änderungen gegeben.
Mittels regulärer Ausdrücke, die vom Benutzer selbst definiert und ergänzt werden können, hebt das Programm die Jass- bzw. vJass-Syntax hervor.
Ich habe versucht, das ganze Verfahren möglichst schnell zu halten, indem ermittelt wird, ob überhaupt noch genügend Platz für den nächsten möglichen Ausdruck vorhanden ist.
Qts Klasse QSyntaxHighlighter enthält eine geschützte Funktion, die die jeweils hervorzuhebenden Blöcke (in diesem Fall Zeilen) entgegennimmt.
Das bedeutet also, dass wenn der Benutzer Text eingibt, nicht das gesamte Dokument neu hervorgehoben werden muss.
Trotzdem kann es natürlich bei einer Vielzahl von regulären Ausdrücken zum einem erheblichen Geschwindigkeitsverlust kommen.
Vor allem wenn der eigentliche Ausdruck erst ganz am Ende der Listen befindet.

Zudem arbeite ich gerade an der Fähigkeit des Programms, Syntax-Schemas zu ex- und zu importieren. Dabei greife ich auf Qts XML-Streamerklassen zurück und generiere bei einem Export eine entsprechende XML-Datei, die alle Daten des Schemas enthält.
So soll es später möglich sein, dass Entwickler möglichst einfach Syntax-Schemas untereinander austauschen können.

Vielleicht werde ich sogar eine ähnliche Funktionalität wie die von Kate implementieren, bei welcher man Schemas direkt von einem bereitgestellten Server herunterladen kann.

Die JassHelper-Konfigurationsdatei ist nun per Dialog sehr einfach bearbeit- und auswählbar.
Auch sämtliche andere externe, ausführbare Dateien (bis auf pjass – noch in Arbeit) sind nun vom Benutzer auswählbar.

Ich habe auch bereits erste Hand an die Unterstützung des Einlesens von vjassdoc-generierten API-Datenbanken angelegt.
Leider führt das Aufrufen der externen Bibliotheksfunktionen bis jetzt nur zu Abstürtzen. Die Grundlage für das Verfahren ist immerhin schon geschaffen. So soll später auch eine Code-Verfollständigung integriert werden, die nach passenden Objekten in den eingelesenen Datenbanken sucht und diese anzeigt.
Viel wichtiger ist allerdings erstmal die Implementierung der Funktionalität des API-Datenbank-Fensters, welches sich standardmäßig rechts im Haupfenster befindet, damit der Benutzer nach Objekte suchen kann und diese so nicht auf Seiten, wie der des Jass-Handbuchs mühsam nachschlagen muss.
Auch soll man später einmal Informationen über Datenbankobjekte im Code erhalten können, indem man z. B. mit der Maus über ihren Namen fährt.
Für Informationen über Objekte werde ich ganz traditionell, wie im Programm JassCraft, das untere Ausgabefenster verwenden.

Leider kam ich noch nicht dazu, eine SVN-Ablage aufzubauen, um so den Code für Entwickler wesentlich einfacher und aktueller zur Verfügung zu stellen.
Auf meines Bruders Server gab es wohl einiger Probleme, die vermutlich auch auf die Tatsache zurückzuführen sind, dass ich vor längerer Zeit bereits SVN-Ablagen erstellt habe.
Vor einiger Zeit habe ich mir auch ein Benutzerkonto auf SourceForge.net besorgt und dort ein Projekt gestartet. Allerdings schwanke ich noch zwischen der Benutzung SourceForges und der von meines Bruders Server hin und her.

Falls ich in einigen Wochen oder Monaten dann endlich so weit sein sollte, eine erste funktionstüchtige Version von vjasside zu veröffentlichen, könnte ich noch einige Übersetzer gebrauchen, insofern das Programm auch in anderen Sprachen außer Deutsch und Englisch zur Verfügung stehen sollte.
Um die besagten Sprachen werde ich mich natürlich selbst kümmern.

Ansonsten sollte ich mich endlich einmal um die Konfiguationsmöglichkeit von Tastenkürzeln und um eine anständige, anpassbare Werkzeugeleiste kümmern, welche schon seit Beginn des Projekts fehlt.

Zu guter Letzt gibt’s hier noch einige nette Bildschirmfotos und hier natürlich noch das Archiv mit dem Quell-Code des Programms.

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: