|
-
Zitat von Mark56
Hey thanks for update, works like a charm.
Any plans to add more features ?
Totally, yes
Zitat von Mark56
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 ?
This should only be the case for gothics methods (e.g. ConcatStrings etc., source for them is on GitHub)
Adding proper names requires me to manually add the names to all the methods, which takes a lot of free time from me.
Will try to have all of them with proper parameter names in the future
Zitat von Mark56
also is it possible that local variables would have higher priority in autocomplete ? like local, then file and then other files ?
I guess - i have to look up if and how the language server protocol supports prioritization, or if i have to manually add support for them (e.g. server-side ordering)
-
Zitat von Kirides
Totally, yes
This should only be the case for gothics methods (e.g. ConcatStrings etc., source for them is on GitHub)
Adding proper names requires me to manually add the names to all the methods, which takes a lot of free time from me.
Will try to have all of them with proper parameter names in the future
If I remember correctly externals in scripts had named parameters. Anyway, I believe I could help in my free time and make PR on those.
-
Zitat von Mark56
If I remember correctly externals in scripts had named parameters. Anyway, I believe I could help in my free time and make PR on those.
We have a page for G1 and G2 externals with (german) documentation and parameters:
G1 - https://www.worldofgothic.de/modifik...go=g1functions
G2 - https://www.worldofgothic.de/modifik...go=g2functions
one could also add the documentation using the documentation syntax
(currently done using the symbols.json (GitHub source))
Code:
/// This is documentation
/// multiline is also supported!
func void myFunc() {};
Note: will probably add this in the future, because many authors rely on that
Code:
/* This is documentation
multiline is also supported!
*/
func void myFunc() {};
Note2: will probably overhaul the complete documentation syntax to allow parameter annotation and referencing, but have yet to find a syntax that does not look to bad and is easily machine readable
Code:
/// This is documentation
/// multiline is also supported!
/// <param name="target">Is the target NPC instance</param>
func void myFunc(var c_npc target) {};
/* This is documentation
@param target Is the target NPC instance
*/
func void myFunc(var c_npc target) {};
[...]
Geändert von Kirides (26.11.2019 um 10:24 Uhr)
-
Yes the standard documentation syntax would be the best. Current json format decouples actual symbol definition from documentation, which is not the best idea, since anyone can change those symbols.
-
Lehrling
Hi Kirides,
vielen Dank hierfür! Ich mache mich aktuell nach sehr langer Abwesenheit wieder ans Gothic modden und da kommt mir das hier gerade recht, da ich in meiner täglichen beruflichen Arbeit ebenfalls VS Code verwende. In letzter Zeit gab es keine Releases mehr. Bist du hier noch dran oder hast du das Projekt abgebrochen?
Beste Grüße
Ronosevi
-
Ich habe leider in letzter Zeit nicht die Zeit gefunden *aktiv* weiter zu arbeiten. Abgebrochen ist das Projekt nicht.
Bisher hat mir der jetzige Zustand vorerst gereicht um z.b. einige Patches auf Basis von Ninja zu schreiben, oder um durch Quellcode navigieren zu können ( z.b. Go To Definition )
-
Lehrling
Zitat von Kirides
Ich habe leider in letzter Zeit nicht die Zeit gefunden *aktiv* weiter zu arbeiten. Abgebrochen ist das Projekt nicht.
Bisher hat mir der jetzige Zustand vorerst gereicht um z.b. einige Patches auf Basis von Ninja zu schreiben, oder um durch Quellcode navigieren zu können ( z.b. Go To Definition )
Danke für die Info! Ja, dafür finde ich es klasse, bisher bin ich sehr zufrieden. Ein diff in Notepad++ vs. VS Code ist halt schon was anderes und ja, go to definition funktioniert bei mir bisher gut und ist sehr nützlich!
-
Lehrling
Wirklich ne tolle Extension, vielen Dank dafür!
Ich weiß nicht ob du Feature-Requests akzeptierst, aber es wäre echt super wenn du auch das Suchen aller Referenzen implementieren könntest (z.B. Rechtsklick auf ne Variable -> "Find all references"). Das generelle Auflösen von Variablen funktioniert ja schon.
Zum Beispiel nach der Variablen "Kapitel" zu suchen ist halt n absoluter Krampf über die Dateisuche, weil man jeden Scheiß in den Kommentaren gleich mitfindet, wie zum Beispiel
Code:
B_SetAttributesToChapter (self, 1); //setzt Attribute und LEVEL entsprechend dem angegebenen Kapitel (1-6)
in so gut wie jedem NPC
-
Zitat von SoulJammingCurse
Wirklich ne tolle Extension, vielen Dank dafür!
Ich weiß nicht ob du Feature-Requests akzeptierst, aber es wäre echt super wenn du auch das Suchen aller Referenzen implementieren könntest (z.B. Rechtsklick auf ne Variable -> "Find all references"). Das generelle Auflösen von Variablen funktioniert ja schon.
Zum Beispiel nach der Variablen "Kapitel" zu suchen ist halt n absoluter Krampf über die Dateisuche, weil man jeden Scheiß in den Kommentaren gleich mitfindet, wie zum Beispiel
Code:
B_SetAttributesToChapter (self, 1); //setzt Attribute und LEVEL entsprechend dem angegebenen Kapitel (1-6)
in so gut wie jedem NPC
Aktuell gibt es das Konzept von Variablen nicht in der Extension. Hier müsste ich noch eine Art AST implementieren, damit man auch korrekt suchen kann. Geplant ist so etwas schon, vielleicht finde ich Zeit dafür nach meinem Urlaub.
-
UPDATE v0.0.7
- "Go To Definition" funktioniert nun auch mit lokalen Variablen / Funktionsparametern
- leichte performance Verbesserungen durch aktualisierte Abhängigkeiten + code cleanup
- Warnungen wenn bei "if/else/else if" ein ';' vergessen wird.
Zu finden bei GitHub (unter Assets->daedalus-0.0.7.vsix):
https://github.com/Kirides/vscode-daedalus/releases
-
Wollte nach längerer Pause auch nochmal ein bisschen was machen und in dem Zuge mal deine extension ausprobieren. Leider kriege ich die garnicht erst installiert (v0.0.8 unkomprimiert), der Installer wirft immer den Fehler, es wäre keine passende Software installiert. Dabei habe ich jedes Setup von VS Code ausprobiert (user und system install, 32 und 64-Bit Versionen). Ne Idee woran das liegen könnte?
Hier mal das log:
EDIT: Ich seh grad, dass VS Community '15 auch gar nicht mehr drauf ist, ist aber wohl nur nen Überbleibsel aus der registry.
Geändert von GenerationLost (20.09.2020 um 21:21 Uhr)
-
Laut dem Log findet es deine VS Code Installation nicht.
Ich hatte, glaube ich, mal ein ähnliches Problem und konnte es so lösen: Rechtsklick auf vsix, "Öffnen mit" und dann die VSCode exe suchen/auswählen.
-
Das hat zunächst erstmal nicht funktioniert. Code wollte da einfach die binary anzeigen, hat dann aber eine extension aus dem marketplace vorgeschlagen, mit deren Hilfe man aus Code heraus .vsix Dateien installieren kann. So hat es dann bei mir geklappt. Danke für den Anstoß.
Und danke an Kirides für die extension, sieht echt gut aus bisher!
-
Zitat von GenerationLost
...
So hat es dann bei mir geklappt. Danke für den Anstoß.
Und danke an Kirides für die extension, sieht echt gut aus bisher!
Danke und gerngeschehen
Ich benutze die Extension ja selbst für meine ganze Mod entwicklung etc.
Es ist das beste, wenn man den Ordner mit der Gothic.src (_work\Data\Scripts\Content) als Ordner öffnet.
Die Extension parst dann alle Scripte, und gibt entsprechend für einiges Hilfestellung
- Intellisense
- Go To Definition
- Completion
- Dokumentation (Funktionen bei denen über der Funktionsbeschreibung kommentarzeilen beginnend mit "///" stehen, unterstützt Markdown)
[Bild: GuT2g.png]
-
Update v0.0.9 - mehr Syntax Fehler
Jetzt gibt's wieder Fehler wenn man sein semikolon bei einem if/else/else if vergisst
sowie wenn man versucht zwei strings mit '+' zu kombinieren. (passiert doch schon mal wenn man unachtsam war)
Ich schaue mal wann ich die Motivation finde Typen-Checks einzubauen (und nach welchen Kriterien)
[Bild: GJJcz.png]
-
Update v0.0.10
- Arrays werden nun korrekt im Intellisense angegeben
- Funktionsaufrufe werden nach Möglichkeit sehr liberal validiert.
- Parameteranzahl wird überprüft
- Parametertypen werden überprüft. Hierbei sind Instanz-Parameter von einer Strikten prüfen ausgenommen
- Instanzen (C_NPC, C_ITEM) dürfen aktuell auch als entsprechende oCNpc/oCItem übergeben werden.
- Wenn eine Funktion generell eine "instance" entgegennimmt, ist die Validierung ausgeschaltet, sofern der Eingabeparameter eine komplexe-Variable war (Engine Funktionen ohne korrekte Parameter beschreibung)
- Instanz-Namen dürfen auch als int-Parameter übergeben werden
[Bild: attachment.php?s=ddf15e09f81e47d465bd15055f0900f2&attachmentid=49747&d=1604948224&thumb=1]
[Bild: attachment.php?s=ddf15e09f81e47d465bd15055f0900f2&attachmentid=49748&d=1604948224&thumb=1]
Download wie immer im Github: https://github.com/Kirides/vscode-daedalus/releases
Geändert von Kirides (25.04.2021 um 16:17 Uhr)
-
Wirklich zum heulen das ich jetzt erst auf sowas gestoßen bin. Endlich werden mir Funktionen bei der Eingabe angezeigt, das was ich immer Schmerzlich bei Notepad++ vermisst habe + das Syntax highlighting, man vergisst ja dann doch mal ein ;
Daher meine frage, entwickelst du das noch weiter? Z.b alles mit "MEM_" fehlt noch komplett.
-
Zitat von neocromicon
Wirklich zum heulen das ich jetzt erst auf sowas gestoßen bin. Endlich werden mir Funktionen bei der Eingabe angezeigt, das was ich immer Schmerzlich bei Notepad++ vermisst habe + das Syntax highlighting, man vergisst ja dann doch mal ein ;
Daher meine frage, entwickelst du das noch weiter? Z.b alles mit "MEM_" fehlt noch komplett.
Halte dich daran, wie du es verwenden sollst, dann klappt auch alles
Öffne einen Gothic\_work\data\scripts\content\-Ordner in VS Code (dort wo deine Gothic.src liegt)
Dann parst der alle funktionen die über die Gothic.src aufgelöst werden.
Gleiches geht auch mit dem scripts\system\ Ordner mit den Menu.src, pfx.src etc. automatisch.
habe ich jetzt auch mal im Eingangspost eingetragen...
Im gleichen Zug auch nochmal gleich update auf 0.0.13.
Geändert von Kirides (25.04.2021 um 16:29 Uhr)
-
Zitat von Kirides
Halte dich daran, wie du es verwenden sollst, dann klappt auch alles
Öffne einen Gothic\_work\data\scripts\content\-Ordner in VS Code (dort wo deine Gothic.src liegt)
Dann parst der alle funktionen die über die Gothic.src aufgelöst werden.
Gleiches geht auch mit dem scripts\system\ Ordner mit den Menu.src, pfx.src etc. automatisch.
habe ich jetzt auch mal im Eingangspost eingetragen...
Im gleichen Zug auch nochmal gleich update auf 0.0.13.
Das Problem ist, das ich das zum Scripten für Patches benutze und da gibt es ja keine Gothic.src, kann ich das da anders lösen?
-
Zitat von neocromicon
Das Problem ist, das ich das zum Scripten für Patches benutze und da gibt es ja keine Gothic.src, kann ich das da anders lösen?
Vielleicht so:
Zitat von Ninja Doku
To create a patch with Ninja, it is advised to first implement and to test all the desired changes in a normal Gothic mod-kit installation and to proceed once confident about the changes.
Quelle
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|
|