Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 

Seite 1 von 4 1234 Letzte »
Ergebnis 1 bis 20 von 71
  1. Beiträge anzeigen #1 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline

    Ankündigung - VSCode Daedalus Extension

    Ich habe mich in meiner Freizeit mal daran gesetzt, meine Programmiererfahrung mit Daedalus zu verbessern.

    Programmieren in Notepad++ ist etwas altertümlich, wenn man von der Arbeit IDEs wie Visual Studio gewohnt ist.
    Der Stampfer ist ein echt super Tool für Daedalus, aber bietet mir leider keine bekannte Oberfläche und hat einige kleine Probleme hier und dort.

    Also habe ich mich umgeschaut wie ich denn für Visual Studio Code (Plattformübergreifender erweiterbarer Texteditor) eine Erweiterung schreiben kann, welche eine neue Sprache (daedalus) hinzufügt.

    Ein vorläufiges Ergebnis kann man auf dem folgenden Screenshot sehen
    [Bild: attachment.php?s=ea0103ec6ae179cd757311a630b63437&attachmentid=52436&d=1676716474&thumb=1]

    Was sieht man auf dem Screenshot?
    • "Intellisense" für Methodensignaturen, sowohl Engine-interne, als auch durch externe Scripts (Parst die Gothic.SRC), "lokale" variablen und parameter werden auch angezeigt.
    • Syntax-Diagnostiken um fehlende Klammern und Semikolons schnell ausfindig zu machen. Warnungen wenn scheinbar-optionale Semikolons ausgelassen werden ( bei if's z.B. )
    • Basiert auf dem Parser des DaedalusCompiler's (mit einigen Änderungen, damit man diesen als Parser für den Language Server verwenden kann.)
    • Anzeige von Orten der Verwendung (hier im Beispiel wurde mit "Rechtsklick auf InitCustomScripts" die Option "Zeige alle Referenzen/Find All References" ausgewählt
    • Semantische Farben: "LeGo_Buffs", etc. sind Konstanten und werden in einer anderen Farbe gekennzeichnet, "const int legoFlags" ist nur eine lokale Variable, diese hat wiederum keine besondere Farbe, während eine "globale" Variable einen etwas helleren Blau-Ton besitzt. (Die Farben sind von dem jeweiligen VS Code Theme bestimmt.)


    Weitere Features:
    • "Go To Definition/Peek Definition" für Methoden von Dritten
      [Bild: DHDXb.png]
    • Auflistung aller (Lokalen-)Variablen/Funktionen/Konstanten/...
    • Gibt eine Warnung aus, wenn eine "if/else/else if"-Konstruktion nicht mit einem ";" abgeschlossen wird.
    • Parst die Syntax und gibt generelle Fehler aus.


    Das Projekt befindet sich aktuell noch unter starker Entwicklung und es fehlen noch einige Dinge.
    • Prüfung existierende Variablen vor Nutzung (Scope, Deklaration)
    • Fehler wenn mehrere Funktionen mit gleichen Namen vorhanden sind / überschrieben werden.
    • Und mehr...


    Ich hoffe, das ich das Projekt zu einem tollen Ende bringen kann.
    Wer kann und möchte kann gerne auf GitHub helfen.

    vscode-daedalus: https://github.com/Kirides/vscode-daedalus
    DaedalusLanguageServer: https://github.com/Kirides/DaedalusLanguageServer

    Download der VSCode Extension ("Assets" aufklappen und gewünschte *.vsix herunterladen): https://github.com/Kirides/vscode-daedalus/releases

    Für die beste Erfahrung, den entsprechenden Ordner mit der Gothic.src öffnen
    [Bild: attachment.php?s=ea0103ec6ae179cd757311a630b63437&attachmentid=50488&d=1619364015&thumb=1]

    Videoanleitungen

    Installationsanleitung:

    Spoiler:(zum lesen bitte Text markieren)


    Skripten
    Spoiler:(zum lesen bitte Text markieren)
    Geändert von Kirides (18.02.2023 um 10:39 Uhr) Grund: VSCode Extension kann nun heruntergeladen und installiert werden

  2. Beiträge anzeigen #2 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Der Repo-Name suggeriert, dass das eine Implementierung des LSP für Daedalus ist - stimmt das?

    Außerdem: Sorry für die ungewöhnliche Syntax in LeGo - damit habe ich in meinem Parser auch kämpfen müssen Aber leider ist das erlaubtes Daedalus.


    "Böser" Hinweis: Ein Semikolon nach einem If-Block ist nicht immer nötig (aber manchmal), glaube ich. Die genauen Regeln dazu kann ich dir allerdings nicht nennen - da es für die Entscheidbarkeit der Grammatik keinen Unterschied macht, habe ich die in meinem Parser grundsätzlich optional gemacht.

    Edit: Außerdem kennt Daedalus keine Scopes (Außer Funktionen/Klassen). Folgendes ist also gültig:

    Code:
    func void foo()  {
       if (bar) {
            var int i; i = 3;
        } else {
            i = 4;
        }
    };

  3. Beiträge anzeigen #3 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Der Repo-Name suggeriert, dass das eine Implementierung des LSP für Daedalus ist - stimmt das?
    Ja, aber noch bei weitem keine ausführliche. Aktuell kann er nur die Syntax Parsen und entsprechend Diagnosedaten zur Verfügung stellen
    Er basiert auf der Quelloffenen, in .NET geschriebenen LanguageServer implementation von Omnisharp: https://github.com/OmniSharp/csharp-...erver-protocol
    in Zukunft habe ich vor viele Dinge aus der vscode Erweiterung in den LanguageServer zu verlagern (Signaturen, Funktionen, Variablen, Konstanten, ...)

    Zitat Zitat von Lehona Beitrag anzeigen
    "Böser" Hinweis:...
    Danke, hab ich mal angepasst und gepusht

    Zitat Zitat von Lehona Beitrag anzeigen
    Außerdem kennt Daedalus keine Scopes (Außer Funktionen/Klassen). Folgendes ist also gültig:
    Heißt das, die Variable ist innerhalb einer Funktion immer gültig, auch wenn sie potentiell nicht deklariert wurde?
    Geändert von Kirides (18.06.2019 um 19:23 Uhr)

  4. Beiträge anzeigen #4 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Zitat Zitat von johnnyboyy Beitrag anzeigen
    Ja, aber noch bei weitem keine ausführliche. Aktuell kann er nur die Syntax Parsen und entsprechend Diagnosedaten zur Verfügung stellen
    Er basiert auf der Quelloffenen, in .NET geschriebenen LanguageServer implementation von Omnisharp: https://github.com/OmniSharp/csharp-...erver-protocol
    Sehr schön Das könnte ein wertvolles Community-Projekt werden, um auch andere Entwicklungsumgebungen zu unterstützen, die mit einem Language Server umgehen können.

    Zitat Zitat von johnnyboyy Beitrag anzeigen
    Danke, hab ich mal angepasst und gepusht
    So einfach kannst wie ich kannst du es dir leider nicht machen. Da mein Plan ist in Zukunft aus dem AST auch selber eine .dat zu erzeugen (und den Gothic Parser so zu umgehen), kann ich die Grammatik einfach anpassen, solange eine Übermenge von gültigem Daedalus bei mir ebenfalls gültig ist. In deinem Fall wird der User jetzt nicht mehr gewarnt, falls er ein Semikolon hinter einem If-Block vergessen hat, das vom Parser aber benötigt wird. Wenn du das Problem wirklich lösen möchtest (und nicht einfach überall ein Semikolon erwartest, was vollkommen nachvollziehbar wäre), wirst du erstmal herausfinden müssen, welchen Regeln der Parser überhaupt wirklich folgt.

    Zitat Zitat von johnnyboyy Beitrag anzeigen
    Heißt das, die Variable ist innerhalb einer Funktion immer gültig, auch wenn sie potentiell nicht deklariert wurde?
    In den meisten Fällen muss sie - lexikalisch gesehen - erst deklariert werden, bevor sie benutzt wird (d.h. die Deklaration muss "über" der Benutzung stehen). Allerdings wird sie eben immer im Scope der Funktion deklariert. Das liegt (größtenteils) daran, dass diese Variablen eigentlich global sind (d.h. den Wert über verschiedene Funktionsaufrufe hinaus behalten).

  5. Beiträge anzeigen #5 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    So einfach kannst wie ich kannst du es dir leider nicht machen. Da mein Plan ist in Zukunft aus dem AST auch selber eine .dat zu erzeugen (und den Gothic Parser so zu umgehen), kann ich die Grammatik einfach anpassen, solange eine Übermenge von gültigem Daedalus bei mir ebenfalls gültig ist. In deinem Fall wird der User jetzt nicht mehr gewarnt, falls er ein Semikolon hinter einem If-Block vergessen hat, das vom Parser aber benötigt wird. Wenn du das Problem wirklich lösen möchtest (und nicht einfach überall ein Semikolon erwartest, was vollkommen nachvollziehbar wäre), wirst du erstmal herausfinden müssen, welchen Regeln der Parser überhaupt wirklich folgt.
    ai-ai-ai... jetzt auch noch optionales hier und da... ist ja fast wie 1990 mit den ganzen dBase Sprachen ...
    Dann schaue ich mich nochmal um, ob ich herausfinden kann, wann das Semikolon optional ist, ansonsten zwinge ich die Leute erstmal dazu.

    Theorethisch könnte man zukünftig deinen/einen anderen Compiler für den LanguageServer verwenden um präzisere Angaben zu bekommen, oder sogar generell eine "CTRL+SHIFT+B (VS kombination für Kompilieren ohne ausführen) und erstell mir mal meine .dat - einbauen"

  6. Beiträge anzeigen #6 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Zitat Zitat von johnnyboyy Beitrag anzeigen
    ai-ai-ai... jetzt auch noch optionales hier und da... ist ja fast wie 1990 mit den ganzen dBase Sprachen ...
    Dann schaue ich mich nochmal um, ob ich herausfinden kann, wann das Semikolon optional ist, ansonsten zwinge ich die Leute erstmal dazu.

    Theorethisch könnte man zukünftig deinen/einen anderen Compiler für den LanguageServer verwenden um präzisere Angaben zu bekommen, oder sogar generell eine "CTRL+SHIFT+B (VS kombination für Kompilieren ohne ausführen) und erstell mir mal meine .dat - einbauen"
    Ja, die tatsächliche Grammatik von Daedalus ist ziemlich konfus an einigen Stellen. Hast du deinen Parser mal über alle Originalskripte laufen lassen? Das war für mich immer so die erste Barriere, die man auf jedenfall unterstützen sollte. Ansonsten sind auch die Scripts einiger Mods frei verfügbar (Entweder in de ModderDB oder z.B. Bonnes Scripte auf GitHub), das eignet sich dann schon ziemlich gut als Integrationstests.
    Aber ich denke ein ganz bisschen Freiraum hat man da auch selber: So sind zum Beispiel Zuweisungen in If-Bedingungen erlaubt, erzeugen aber kein sinnvolles Kompilat, glaube ich. Das wäre dann etwas, was du bei dir immer ankreiden solltest, weil man das niemals wirklich meinen wird. Insgesamt musst du eben den umgekehrten Ansatz fahren: Deine Grammatik darf nur eine Untermenge von gültigem Daedalus erlauben, mit der Einschränkung, dass wohl mindestens die Originalskripte in dieser Untermenge enthalten sein sollten.


    Theoretisch. Mein Parser erlaubt kein sehr gutes Error-Reporting (hab das nur so gerade eben benutzbar gemacht), aber falls es mal eine offene bettere Implementierung gibt: Das wäre wohl sehr hilfreich

  7. Beiträge anzeigen #7 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline
    Nach ein bisschen tra-ra mit den Externals.d (welche ich jetzt vorerst einmal kurz ignoriere) und mehr tollen variablennamen wie "instance und class" () sowie einigen nicht-druckbaren Zeichen (0x0C, ich rede von dir!) parst er nun zumindest alle Gothic 2 Skripts, Ikarus und auch beinahe alle LeGo Skripts.

    @Lehona:

    LeGo/Daedalus_Hooks.d (Sieht nach einem nicht verwendeten Skript aus, ersetzt durch HookDaedalus.d?):
    Code:
    // Sieht OK aus
    func void ContinueCall() {
    	var int fromID; fromID = MEM_GetFuncIDByOffset(MEM_GetCallerStackPos());
    	var int to; to = HT_Get(HT_Hooks, fromID);
    	MEM_CallByOffset(to);
    };
    
    // Sieht OK aus
    func void passArgumentI(var int i) { return +i; };
    
    // Hier fehlt das Semikolon
    func void passArgumentS(var string s) {
    	CALLINT_PushString(s);
    }
    
    // Hier fehlt das Semikolon
    func void passArgumentN(var int n) {
    	MEMINT_StackPushInst(n);
    }

  8. Beiträge anzeigen #8 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Du musst natürlich auch die Gothic.src parsen, um festzustellen, welche Dateien überhaupt relevant sind Dann würdest du feststellen, dass weder die Externals.d noch die Daedalus_Hooks.d dort eingetragen ist.

    Und theoretisch sollte nur der Variablenname 'return' tatsächlich zu einer Unentscheidbarkeit führen, alle anderen Keywords sind auf Grund des Kontextes eindeutig (ich habe bei mir einfach 'return', 'var' und 'if' verboten, weil es vorerst einfacher war - wird bisher nirgendwo verwendet).

  9. Beiträge anzeigen #9 Zitieren
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.473
     
    lali ist offline
    Ich glaube, es gibt bereits eine VSCode Daedalus Extension und Git-Integration etc. aus Polen. Wir nutzen die auch. Ich habe nur gerade keinen Link parat.
    Phoenix Dev | Website | Discord

  10. Beiträge anzeigen #10 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Du musst natürlich auch die Gothic.src parsen, um festzustellen, welche Dateien überhaupt relevant sind Dann würdest du feststellen, dass weder die Externals.d noch die Daedalus_Hooks.d dort eingetragen ist.

    Und theoretisch sollte nur der Variablenname 'return' tatsächlich zu einer Unentscheidbarkeit führen, alle anderen Keywords sind auf Grund des Kontextes eindeutig (ich habe bei mir einfach 'return', 'var' und 'if' verboten, weil es vorerst einfacher war - wird bisher nirgendwo verwendet).
    Das ist natürlich richtig, für einen Test habe ich einfach mal das gesamte Gothic-Skriptverzeichnis geparst.

    Daedalus und seine leeren Statements können schon verwirrend sein "var1;"
    Habe ja glücklicherweise Kontext in den Parser eingebaut, daher kann ich recht "einfach" die Keywords anhand von Sinn zuweisen.

    Zitat Zitat von lali Beitrag anzeigen
    Ich glaube, es gibt bereits eine VSCode Daedalus Extension und Git-Integration etc. aus Polen. Wir nutzen die auch. Ich habe nur gerade keinen Link parat.
    ja, es gibt bereits die https://marketplace.visualstudio.com...onzak.daedalus laut Quellcode ist diese aber nicht ansatzweise so fortgeschritten wie die, die ich entwickle. (Intellisense, Methodensignaturen, Hover, GoToDefinition fehlt alles)

  11. Beiträge anzeigen #11 Zitieren
    Local Hero Avatar von Mark56
    Registriert seit
    Sep 2010
    Beiträge
    254
     
    Mark56 ist offline
    Heyy, very nice tool : gratz, I was working on similar project too, but didn't get too far. I will try to help in free time.
    Also in combination with compiler and some VM we could even debug the code ?

    Zitat Zitat von lali Beitrag anzeigen
    Ich glaube, es gibt bereits eine VSCode Daedalus Extension und Git-Integration etc. aus Polen. Wir nutzen die auch. Ich habe nur gerade keinen Link parat.
    It's just a syntax highlighting.

  12. Beiträge anzeigen #12 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline
    Zitat Zitat von Mark56 Beitrag anzeigen
    Heyy, very nice tool : gratz, I was working on similar project too, but didn't get too far. I will try to help in free time.
    Also in combination with compiler and some VM we could even debug the code ?
    idk about the Debugging part yet. but i already tried the mentioned DaedalusCompiler and found it to not be able to compile many LeGo and Ikarus scripts.
    I already opened an issue on that.
    Really looking forward to trash the current Parser for a real compiler.
    Their presentation on the future of DaedalusCompiler looked REALLY promising and could lead to more maintainable and easier to write Daedalus.


    It works really well for regular gothic scripts. (Also great diagnostics due to ANTLR)

  13. Beiträge anzeigen #13 Zitieren
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.473
     
    lali ist offline
    Zitat Zitat von johnnyboyy Beitrag anzeigen
    ja, es gibt bereits die https://marketplace.visualstudio.com...onzak.daedalus laut Quellcode ist diese aber nicht ansatzweise so fortgeschritten wie die, die ich entwickle. (Intellisense, Methodensignaturen, Hover, GoToDefinition fehlt alles)
    Ah nice! Wollte nur darauf hinweisen, falls du dir doppelt Arbeit machst. Hab davon wenig Ahnung. Aber gut zu wissen.
    Phoenix Dev | Website | Discord

  14. Beiträge anzeigen #14 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline
    Ab sofort kann man eine alpha Version der Visual Studio Code Extension herunterladen und installieren

    https://github.com/Kirides/vscode-daedalus/releases (hier die *.vsix-Datei herunterladen und ausführen)

    Ich freue mich über jeden, der es ausprobieren möchte. (Fehler/Wünsche gerne durch Issues über GitHub, andernfalls hier im Forum)

  15. Beiträge anzeigen #15 Zitieren
    Knight
    Registriert seit
    Aug 2009
    Ort
    Hessen
    Beiträge
    1.487
     
    Cryp18Struct ist offline
    1.: Variablennamen welcher mit einer Ziffer beginnen sind (absurderweise?) gültiges Daedalus:
    B_GetLearnCostTalent.d Auszug (Stringvariable wird deklariert, Name beginnt mit einer Ziffer):
    Code:
    func int learn1hSkill(var int skill) {
    	var string 1hSkillText;
    	1hSkillText = ConcatStrings ("Lerne: Einhand Stufe ", IntToString (skill));
    	decreaseLearnPoints(B_GetLearnCostWeaponSkill(NPC_TALENT_1H, skill));
    	PrintScreen_Ext (1hSkillText, -1, -1, FONT_SCREEN, 2);
    	B_RaiseFightTalent (hero, NPC_TALENT_1H, B_GetRaiseAmountOfWeaponSkill(NPC_TALENT_1H, skill));
    	onehandedSkillLevel = skill;
    
    
    	[...]
    };
    Wird als Fehler erkannt:
    [Bild: attachment.php?s=ea0103ec6ae179cd757311a630b63437&attachmentid=48485&d=1571169130&thumb=1]

    2.: Auch bei den Zeitskripten von Nodrog/Milky-Way
    https://forum.worldofplayers.de/foru...e-Zeit-Skripte
    werden bei mir irgendwelche Probleme gemeldet:
    [Bild: attachment.php?s=ea0103ec6ae179cd757311a630b63437&attachmentid=48486&d=1571169151&thumb=1]

    Wenn du die kompletten Dirty Swamp Skripte zum Testen haben möchtest, ist es das einfachste das du Draxes
    https://forum.worldofplayers.de/foru...s/74752-Draxes
    anschreibst. Der kann dich dann für das Bitbucket repo freischalten.

  16. Beiträge anzeigen #16 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline
    Zitat Zitat von Cryp18Struct Beitrag anzeigen
    1.: Variablennamen welcher mit einer Ziffer beginnen sind (absurderweise?) gültiges Daedalus:
    B_GetLearnCostTalent.d Auszug (Stringvariable wird deklariert, Name beginnt mit einer Ziffer):
    Code:
    func int learn1hSkill(var int skill) {
    	var string 1hSkillText;
    	1hSkillText = ConcatStrings ("Lerne: Einhand Stufe ", IntToString (skill));
    	decreaseLearnPoints(B_GetLearnCostWeaponSkill(NPC_TALENT_1H, skill));
    	PrintScreen_Ext (1hSkillText, -1, -1, FONT_SCREEN, 2);
    	B_RaiseFightTalent (hero, NPC_TALENT_1H, B_GetRaiseAmountOfWeaponSkill(NPC_TALENT_1H, skill));
    	onehandedSkillLevel = skill;
    
    
    	[...]
    };
    Wird als Fehler erkannt:
    [Bild: attachment.php?s=ea0103ec6ae179cd757311a630b63437&attachmentid=48485&d=1571169130&thumb=1]

    2.: Auch bei den Zeitskripten von Nodrog/Milky-Way
    https://forum.worldofplayers.de/foru...e-Zeit-Skripte
    werden bei mir irgendwelche Probleme gemeldet:
    [Bild: attachment.php?s=ea0103ec6ae179cd757311a630b63437&attachmentid=48486&d=1571169151&thumb=1]

    Wenn du die kompletten Dirty Swamp Skripte zum Testen haben möchtest, ist es das einfachste das du Draxes
    https://forum.worldofplayers.de/foru...s/74752-Draxes
    anschreibst. Der kann dich dann für das Bitbucket repo freischalten.
    Die Syntaxfehler kommen von dem verwendeten Parser (DaedalusCompiler) das Team dahinter hat schon mehrfach erwähnt dass sie nicht jeden Daedalus Code unterstützen wollen, da daedalus viele schlechte Angewohnheiten und absurditäten mit sich bringt.

    Du kannst hier gerne nachfragen ob sie den Quellcode unterstützen wollen (ggf. immer Beispielcode mit in die Anfrage hinzufügen):
    https://github.com/dzieje-khorinis/D...ompiler/issues (GitHub account wird benötigt)

  17. Beiträge anzeigen #17 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline
    Neue Version veröffentlicht: v0.0.4
    Wie gewohnt auf der GitHub - Release Seite zu finden

    v0.0.2
    Changes in this release:
    - identifiers can now start with a single digit, followed by atleast one letter (e.g. 1hand)
    - more relaxed handling of keyword names (e.g. `fUnC` is now valid)

    NEW:
    - new diagnostics:
    - `D0001 - Do not start identifiers with digits` (type: `Warning`)
    - `D0002 - Split multiple 'var TYPE ..., var TYPE ...' into separate statements.` (type: `Warning`)
    v0.0.3
    Fixes:
    - Syntax-Highlighting was not respecting case-insensitiveness
    - fixed some issues with highlighting (namely, single-line instance declarations, and @ inside the name)

    New feature:
    - identifiers can now start with a any amount of digits, followed by atleast one letter (e.g. 1hand)
    - simple function documentation

    /// This is documentation
    /// multiline is also supported!
    func void myFunc() {};
    v0.0.4
    Fixes
    -syntax errors created from parsing Gothic.src created unclickable errors

    New
    - hugely improved parsing time required for daedalus code.
    -switch parsers preditionmode to default to SLL mode with LL fallback.
    Geändert von Kirides (18.10.2019 um 16:26 Uhr) Grund: v0.0.4

  18. Beiträge anzeigen #18 Zitieren
    Local Hero Avatar von Mark56
    Registriert seit
    Sep 2010
    Beiträge
    254
     
    Mark56 ist offline
    When I have mistake in gothic.src, and the file is missing. Server crashes and does not restart

  19. Beiträge anzeigen #19 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline
    Zitat Zitat von Mark56 Beitrag anzeigen
    When I have mistake in gothic.src, and the file is missing. Server crashes and does not restart
    Thank you, i published a new version which is a lot more tolerant for bad gothic.src files.



    Public alpha v0.0.5

    Changes
    • be more robust in case of bad filepaths in Gothic.src (writes Warnings/Errors into the languageserver output log)

  20. Beiträge anzeigen #20 Zitieren
    Local Hero Avatar von Mark56
    Registriert seit
    Sep 2010
    Beiträge
    254
     
    Mark56 ist offline
    Hey thanks for update, works like a charm.

    Any plans to add more features ?
    Currently when using function, vscode "hint" shows only function(string param0, int param1, int param2 .....) which is not that helpfull, could you store parameter variable name so that tooltips are actually helpfull ?

    also is it possible that local variables would have higher priority in autocomplete ? like local, then file and then other files ?

Seite 1 von 4 1234 Letzte »

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide