YellowAfterlife / GMEdit

A high-end code editor for GameMaker: Studio, GameMaker Studio 2.x, and more!
https://yellowafterlife.itch.io/gmedit
MIT License
315 stars 48 forks source link

Feature Request: Feather-compatible types #210

Open thennothinghappened opened 9 months ago

thennothinghappened commented 9 months ago

GMEdit currently uses its own type naming scheme which runs in contrast with Feather's own naming.

The main issue with this is that both can use the same JSDoc formatting for function arguments, but switching between the IDE and GMEdit will cause both to complain about eachother's types.

Some examples:

Feather GMEdit
Real number or int
Asset.GMObject<T> object or T (as asset ID)
Id.Instance<T> object or T (as instance)
Id.Buffer buffer
Id.VertexBuffer vertex_buffer
Id.Surface surface
Asset.GMSprite<T> sprite
Constant.Colour int
... ...

Solutions?

The two solutions I can think of is either adopting Feather's types, or making them aliases in some sense to GMEdit's equivalent types. The latter of these makes more sense to me as it doesn't make existing GMEdit types incorrect.

YellowAfterlife commented 9 months ago

I do have aliases for most of them, you can see these as fe_name in api directory and add the missing ones https://github.com/YellowAfterlife/GMEdit/blob/master/bin/resources/app/api/shared/types.gml

thennothinghappened commented 9 months ago

Interesting, I can't seem to get those to work. I tried id.dslist for example and the variable did not show any type on hover, whereas ds_list worked.

YellowAfterlife commented 9 months ago

It's done with jsdoc, like so