SQDev - SQF-Entwicklung der Zukunft



  • Ich nutze an dieser Stelle die Gelegenheit um euch SQDev vorzustellen. Hierbei handelt es sich um ein von mir entwickeltes plugin für Eclipse, einer weit verbreiteten Entwicklungsumgebung, mit dem Ziel die Entwicklung von SQF-Scripten so einfach und komfortabel wie nur irgend möglich zu machen.




    Features v0.7.4:

    • Editoren

      • Unterstützte Formate: .sqf , .sqdev, stringtable.xml, .ext, .cpp, .hpp
      • Live Syntax Check für SQF-Dateien (Fehler im Code werden sofort markiert)
      • SyntaxHighlighting
      • Macro-Highlighting
      • Autovervollständigung (optional)
      • Vervollständigungs-Vorschläge (Inklusive aller inkludierten Makros)
      • Öffne die BIKI-Seiten eines SQF-Befehls direkt aus dem Editor mit nur einem Klick!
      • Bleibe immer auf dem neuesten Stand mit der Update-Funktion für die SQF Befehle
      • Erweiterte Befehlsinformation: Informationen aus dem BIKI über die einzelnen Befehle können bequem im Editor eingesehen werden
      • HoverAssist: Fahre mit der Maus über einen Befehl im Code und erhalte entsprechende Informationen über ihn


    • Wizards: Mechanismus, der Standardaufgaben automatisieren

      • ProjectWizard: Erstellen neuer Projekte nach entsprechenden Bedürfnissen
      • ImportWizard
      • ExportWizard
      • NewFileWizard
    • UI Stringtable-Editor

      • Ermöglicht die Bearbeitung der Stringtable.xml via UI
      • Automatische XML-Generierung
      • Automatische Anpassung an direkte Änderungen der XML-Datei
      • XML-Parsing + rudimentäre Syntax-Kontrolle


    • Einstellungen: Jede Menge Möglichkeiten das Verhalten des plugins an den eigenen Geschmack und die eigenen Bedürfnisse anzupassen
    • Sonstiges:

      • Eigener RPTViewer - Sieh dir die Log-Dateien an, ohne eclipse verlassen zu müssen
      • Eigene SQDev-Perspektive in Eclipse - Anpassung der Oberfläche an die tatsächlichen Bedürfnisse fürs Scripten
      • ParseTree (Erreichbar über die Toolbar) - Visualisierung, wie ArmA den Code interpretieren wird (was wird als Argument für was betrachtet)


    Media:




    Dokumentation
    Die offizielle Dokumentation ist in Form einer PDF hier zu finden. Hier ist alles Nötige (und Unnötige) festgehalten und kann nachgelesen werden. Das beinhaltet natürlich auch die Installation und das obligatorischen Getting started Kapitel.
    Die gesamte Dokumentation ist auf Englisch.


    Roadmap:

    • Quickfixes: Automatische Vorschläge zum Beheben von Fehlern
    • IDE-Support von Funktionen
    • Code Templates
    • Modkompabilität
    • Debugger
    • Editoren für alle restlichen ArmA-files
    • und vieles mehr


    Issue-Tracker + SourceCode:


    Wenn du einen Bug findest oder dir ein neues Feature wünschst, dann schaue mal im IssueTracker vorbei und erstelle einen neuen Issue mit deinem Anliegen.
    Im Falle eines Bugs nutze doch bitte den "Plugin info creator". Dieser ist in der Toolbar (rotes Ausrufezeichen auf grünem Hintergrund) zu finden und sammelt ein paar Systeminformationen, die mir helfen den Bugs schneller auf die Schliche zu kommen :)


    Das gesamte Projekt wird hier auf GitHub als OpenSource-Projekt entwickelt, also wenn dich das Thema interessiert dann schaue gerne mal hinter sie Kulissen und wer weiß vielleicht hast du ja sogar Lust mich bei diesem Projekt zu unterstützen? Jede Hilfe ist natürlich sehr willkommen.


    Current Bugs:


    Für eine Liste an aktuellen Bugs: Klick mich!

  • Hab nochmal ein paar Sachen gefunden, die ich verbessern musste :D

    Code: Changelog 0.5.3
    1. | Fixed: Bug preventing you from exporting empty files
    2. | Fixed: Bug allowing you to give invalid names to projects/scripts
    3. | Changed: Initial content is now description header instead of scopeName
    4. | Changed: CharacterCompletion improved (disabled in Strings and in front of words)
  • Moin,


    erstmal vielen Dank für die Erstellung des Eclipse Plugins!


    Ich bin mit Eclipse nicht wirklich vertraut, so dass meine Fragen vielleicht eher was mit Eclipse zu tun hat als mit SQDev.


    Ich würde gerne auch die Variablen Autovervollständigen, so wie in Notepad++


    .ext Dateien werden automatisch weiterhin in Notepad++ geöffnet. Ist eine .ext Bearbeitung in Planung?


    bis_fncs Autovervollständigung kommt auch noch?

  • Ich würde gerne auch die Variablen Autovervollständigen, so wie in Notepad++


    .ext Dateien werden automatisch weiterhin in Notepad++ geöffnet. Ist eine .ext Bearbeitung in Planung?


    bis_fncs Autovervollständigung kommt auch noch?

    Allgemeine Antwort auf alles: Kommt noch :D


    • Das ist das woran ich momentan arbeite. Die Sache ist nur, dass ich vor habe das ganze über den AST zu verwirklichen, den ich für zukünftige Features sowieso brauche. Deswegen habe ich mich dazu entschieden die Sache mit den Variablen nicht als extra-Flickschuster-Temporärlösung zu implementieren sondern eben noch etwas nach hinten zu schieben. Das ist aber momentan auch das Feature das ich am stärksten vermisse, also laufen die Arbeiten daran auf Hochtouren ^^
    • Eciipse öffnet Dateien, für die es selber keinen eigenen Editor bereit hält Standardmäßig mit dem System-default Editor (Bei dir wohl NP++). Wenn du solche Dateien in eclipse öffnen willst dann kannst du über rechte Maustaste unter Open WIth den Text Editor auswählen, allerdings ist das dann wirklich nur ein Texteditor und ich denke du bist momentan noch besser mit NP++ dran. Und ja es ist definitiv ein .ext Editor geplant, sowie eig Editoren für alle Standard-ArmA-Formate (.hpp, .cpp, etc.). Die Frage ist nur, wann ich das hin bekomme...
    • Jawoll auch das steht auf der ToDo-Liste. Und nicht nur für die von BI, sondern für alle Funktionen, die von installierten Mods zur Verfügung gestellt werden... Aber als erstes wahrscheinlich erstmal nür für BI-FUnktionen :rolleyes:


    Ich hoffe ich konnte dir damit helfen und wenn du weitere Fragen/Anmerkungen oder auch Kritik hast, dann immer her damit :thumbsup:

  • Ich vermute mal das Du auf "Fehlermeldungen" in Bezug auf fehlende Features noch verzichten kannst?


    Wenn Du sie doch haben willst: Das Auskommentieren wird noch nicht visuell dargestellt.


    Weitere Featurerequest würd ich mir dann erstmal klemmen, wenn Du keine brauchst.

  • Das Auskommentieren wird noch nicht visuell dargestellt.

    Meinst du Mehrzeilige Kommentare? Die werden seltsamerweise markiert, sobald du einmal direkt neben dem öffnenden Tag etwas schreibst... Kann danach auch wieder entfernt werden, aber dann wirds markiert...
    Habs aber vergessen oben in die Liste zu schreiben, was ich jz noch schnell nachholen muss :)

  • So nach längerem gibt's nun die Version 0.6.0, bestehend hauptsächlich aus neuen Features (darunter auch der UI-Support für Variablen wie sichs @Commander gewünscht hat ;) )


    Eine neue StringTable kann wie ein neues SQF-file über einen wizard erstellen. Bereits vorhandene Stringatables sollten automatisch mit dem neuen Editor geöffnet werden...


    Und so sieht der neue Editor aus:

  • Ich nutze die Gelegenheit und gebe mal ein kleines Statusupdate:
    Ich werde in nächster Zeit (diesen Monat) damit beschäftigt sein ein SQF-Projekt umzusetzen, was ich als Gelegenheit wahrnehme mein plugin mal ausführlich auf Herz und Nieren zu überprüfen und Bugs und Ähnliches aufzuspüren.


    Danach werde ich Version 0.6.1 in Angriff nehmen, in dem hoffentlich alle bis dahin bekannten Bugs beseitigt werden können und wahrscheinlich die eine oder andere kleine Verbesserung den Weg zur Implementierung findet. (Siehe hier für nähere Details)


    Anschließend daran werde ich den Syntax-Check in Angriff nehmen, der dann endlich alle Grundlagen, die bisher geschaffen wurden in Version 0.7.0 vereinen wird. Eventuell komme ich da sogar dazu endlich eine eigene Perspektive für SQDev zu implementieren, damit das Ganze noch etwas benutzerfreundlicher wird. Ich schätze mal, dass das etwa zu Herbstbeginn der Fall sein sollte (+-)... :thumbsup:

  • Sooo... Hat etwas länger gedauert, als ursprünglich angeplant, aber dafür isses auch deutlich umfangreicher geworden :saint:



    Wenn ihr das neue Update einspielt, solltet ihr ein Command-Update machen, um den bisherigen Fehler bie der Prozessierung auszubessern.
    Während des Updates müsst ihr Eclipse im Fokus lassen, da 2 Mal eine Fehlermeldung auftauchen wird, bei der ihr den aktullen Befehl überspringen müsst.
    Dieser Fehler kommt daher, dass das BIKI momentan einen Bug hat, dass die Befehlsliste für unangemeldete User anderst aussieht, als für Angemeldete (In eben dieser Liste sind eben auch noch 2 Befehle drin, die es nicht mehr gibt)


    Gebt mir bitte Bescheid, ob bei euch ab und zu beim Speichern eines SQF-files noch eine Fehlermeldung kommt... Dann müsste ich mich diesem Problem nochmal zuwenden.


    [file]5[/file]

  • Erstmal finde ich die Idee sehr gut, habe zwar noch nie mit Eclipse gearbeitet, aber bin immer wieder offen für was neues.


    Leider erhalte ich aber auch den Fehler aus dem letzten Post. Habe eine frische Installation von beidem (Eclipse und Plugin).

  • Hm ja okay. Mir wurde schon berichtet dass es mit Eclipse Neon Probleme gibt... Ich hatte den Release von Neon gar nicht auf dem Schirm. Fürs erste würde ich empfehlen auf Eclipse Mars um zu steigen.


    Ich muss mal schauen was unter Neon nicht läuft, aber in den nächsten 3 Wochen werde ich leider nicht weiter entwickeln können.. :/


    Falls beim Öffnen des Editors unter Mars immer nich ein Fehler Auftritt dann versuche dich bitte was ich in dem oben verlinkten Fehler geraten habe :)

  • Hallo zusammen,
    Da die Features meines Plugins immer mehr werden, habe ich so langsam keine Zeit mehr vor jedem Release alles nochmal selber zu checken, obs noch funktioniert oder ob das letzte Update evtl. iwo einen (kleinen) Bug in einem anderen Teil der Software verursacht hat (Z.B. dass ein Editor nicht mehr geöfnet werden kann).
    Darum suche ich nach Testern, die mit der jeweiligen Dev-Version ein weinig herum spielen und mir dann sagen können, ob alles so läuft, wie es soll.
    Ein weiterer Vorteil wäre, dass das Plugin so auch auf verschiedenen Betriebssystemen getestet werden kann... :D

    Das brauchst du um als Tester mit helfen zu können:

    • Die nötige Zeit (Wie viel du dafür brauchsr hängt ganz davon ab, wie ausführlich du testest, was aber vollkommen dir überlassen wird)
    • Motivation und ein wenig Experimentierfreude, um die verschiedenen Fgeatures auszutesten und an ihre Grenzen zu bringen

    Du brauchst allerdings keine Kenntnisse über die Implementierung des Plugins, noch musst du der super SQF-Crack sein, um das Plugin testen zu können.


    Warum solltest du dich als Tester melden?:

    • Du hast stets Zugriff auf die neueste Version des Plugins (Somit stehen dir neue Features teilweise Monate vor allen anderen zur Verfügung)
    • Du hilfst mit einen (mehr oder weniger) Fehlerfreien Release zu gewährleisten
    • Dein Feedback fließt direkt mit in den Entwicklungsprozess ein (Beispielsweise Kritik an der Umsetzung eines Features, o.ä.)


    So wirst du Tester:
    Einfach eine PM an @Raven oder eine Antwort in diesem Thread schreiben, in der ihr mir das mitteilt und außerdem hinzufügt auf welchem/welchen Betriebssystem(en) ihr das Plugin testen könnt.



    Ganz speziell werden momentan Tester mit folgenden Betriebssystemen gesucht:

    • Windows 10
    • Linux