GMEdit and GM8.x - YellowAfterlife/GMEdit GitHub Wiki

This page covers GMEdit's support for the more antique GameMaker versions and custom languages that are equivalent to the said GM versions.

Resource manipulation

  • GMEdit can edit code for scripts and objects
  • GMEdit will try to open something reasonable for other resource types
  • GMEdit cannot create/move/destroy resources because this isn't code that I can reuse from elsewhere

Rest assured, you'll want to have a "regular" IDE open alongside.

Existing syntax extensions

#args magic

Same as usual, but with structure changes to make up for lack of var name = value.

Using ?arg assumes that you have a constant called undefined in your project.
Having undefined be chr(0) seems to be a reasonable idea in GM8.x.

Template strings

Should work fine if you'll edit the script to not use buffers.

#import aliasing

Some sort of conflict with other syntax extensions? I might look into it eventually.

#lambda inline functions

Need to be able to create/destroy scripts for those!

The rest

Older GM versions have no ternary operators, short-circuit evaluations, and even no formal undefined type, so most of the other GMEdit extensions can't really work here.

New syntax extensions

These are exclusive to GM8.x

Variable assignments

You can do

var a = 1, b = 2;

and this will turn into

var a, b; a = 1; b = 2;

Works for globalvar too!

DS accessors

Just like in the newer GM versions, you can use map[?key], list[|index] and grid[#x, y].

So

grid = ds_grid_create(4, 4);
grid[#1, 2] = "value";
map = ds_map_create();
map[?"key"] = grid[#1, 2];

will become

grid = ds_grid_create(4, 4);
ds_grid_set(grid, 1, 2, "value");
map = ds_map_create();
ds_map_set(map, "key", ds_grid_get(grid, 1, 2));

Helper functions come from this GML file that you can import by drag-and-dropping it onto GameMaker IDE window.