JS Doc dla Feather (GMS 2022.2+)

Wtorek, 25 Stycznia 2022, 23:35
Czas czytania 2 minuty, 8 sekund
Zgodne z GM: gms2
Opis parametrów możliwych do użycia z JS Doc w Feather.
GMS 2 2022.2+ zawierać będzie nowy system podpowiadania składni, który uwzględniać ma np. zwracane typy zmiennych, czy podpowiadanie właściwości struktur i konstruktorów.

Czasem jednak takie zmienne trzeba będzie podowiedzieć, lub możemy też potrzebować je wymusić, dlatego wraz z postępami prac nad tą nowością w programie postaram się tutaj przygotować pełną listę przykładów jak tego użyć.

Na luty 2022 znamy taką listę parametrów:

kod// typy zmiennych:
Undefined
String
Real
Bool
Array
Pointer
Function
Struct // dla dowolnych struktur
Struct.CarType // dla konstruktorów, np. function CarType(name) constructor {}
Id // więcej info niżej
Resource
Constant
ArgumentIdentity
Mixed

Id jest specjalnym typem, który może posłużyć to tworzenia własnych typów, np. żeby dane zwrócone z jakiejś funkcji, bez względu na typ, mogły być użyte w innej funkcji, np. poniżej tworzymy typ Id.Wow:
kod/// @returns {Id.Wow}
function wow_create() {
static id = 0;
return id++;
}

/// @param {Id.Wow} _wow
/// @param {real} _value
function wow_amazing(_wow, _value) {
// ...
}

var _w = wow_create(); // zwrócona zostaje liczba (real), ale Feather uzna ten typ za Id.Wow
wow_amazing(_w, 15); // wszystko jest ok, bo pierwszy argument jest typu Id.Wow
wow_amazing(10, 15); // pojawi się błąd, gdyż real to nie Id.Wow

kod/// @desc Opis
// alternatywnie:
/// @description Opis

kod/// @param {typ} nazwa_zmiennej Opis
// Można też użyć: @paramter, @arg, @argument

kod// Do ignorowania i nie podpowiadania niektórych funkcji można użyć:
/// @ignore

kod// z kolei do funkcji, które chcemy wkrótce usunąć z gry, można użyć
/// @deprecated

kod// wymuszanie typu zmiennej, np. gdy wiemy, że inny obiekt/skrypt ustawi własnie taki typ
/// @context {FUNCTION_NAME lub OBJECT_NAME lub CTOR_FUNCTION_NAME}

kod// opisanie jaki typ zwraca funkcja, co pomoże ograniczać @context
/// @returns {type}

kod/**
* możliwe są też
* wieloliniowe opisy
* @param {string} name
* i dalszy opis!
* ...
*/

Ctrl+Q - pokazuje menu Quick Fix, które pozwala w niektórych przypadkach automatycznie poprawić kod. W pozostałych, pozwala np. na oznaczenie za pomocą specjalnego komentarza, że mamy ignorować jakiś błąd.

Ignorować Feather potrafi na dwa sposoby - cały kod (skrypt, event), lub tylko następujące po nim wyrażenie.

Cały kod ignoruje się poprzez dodanie:
kod// Feather disable GMXXXXlub wsystkie błędy poprzez:
kod// Feather disable allnatomiast jedno wyrażenie:
kod// Feather disable once GMXXXXgdzie GMXXXX to numer błedu, np. GM1001. Tak, ten komentarz używa dwóch zamiast trzech slashy, dla odróżnienia od JSDoc.
Komentarze (łącznie 0):
Nie ma jeszcze żadnego komentarza. Czas to zmienić

Najnowsze wersje GameMakera:

Stabilna
2024.4.0.137 • 2024.4.0.168
wydana 7 dni temu
LTS
2022.0.2.51 • 2022.0.2.49
wydana 205 dni temu
Beta
2024.400.0.556 • 2024.400.0.571
wydana 9 dni temu
= IDE, = Runtime
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
Shoutbox
I am Lord (16:29, 05.05.24)
Czaję
gnysek (13:38, 04.05.24)
Nie wbudowują tego przez warunki licencyjne. Ale kto wie, może jako prefab zobaczymy to już w kolejnym wydaniu, bo wtedy prefaby mają zostać dodane.
I am Lord (12:17, 03.05.24)
Aha to trzeba coś tam jeszcze kombinować tak
gnysek (18:05, 01.05.24)
Tak, w osobnym rozszerzeniu (na githubie YYG).
I am Lord (17:56, 30.04.24)
funkcje z fmod są już?
gnysek (20:44, 11.04.24)
Niektórzy dlatego wybierają GMEdit. Ale ja liczę na Code Editor 2, tylko na razie zbyt zbugowany jest.
Tymon (16:11, 11.04.24)
Stitch dla mnie osobiście jest lepszy bo nie musze kopać się z interfejsem GMa i mogę tylko pisać kod.
Tymon (16:05, 11.04.24)
Yes. Obecny nie jest taki zły, jak zainstalowałem najnowszą stabilną to w porównaniu z tym czego używałem... 10 lat temu...? Wszystko wydaje się lepsze.
gnysek (22:48, 10.04.24)
bscotch/stitch ? Ja czekam na fixy do nowego edytora, bo wszystko wydaje się dziś lepsze od tego obecnego :D
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?