GMS1 has a bug where it will always overwrite resources with the last version it “remembers” if you have opened them in GMS1 at some point. The solution is to not do that (either only touch the object in GMEdit, or reload the project after making edits in GMS1).
As for auto-completion in strings, what is the exact purpose? This sounds like something that would be very noisy and best handled through macros.
You can open GMS, you just shouldn’t open the specific resources in GMS if you’ll be opening them in GMEdit.
I don’t know what “doesn’t even compare variable names means”, but GMEdit has a lot of type checking and JSDoc lines that can warn you about mistyped variables.
In some situations it is feasible to work with “labels” instead of values in variables, eg: The state of a menu with many submenus is more “readable” with something like menuState=“graphicOptions” than menuState=7.
That’s a job for enums, but also people sometimes just have a few variables in the object, like
GRAPHIC_OPTIONS = 7;
// ...
menuState = GRAPHIC_OPTIONS;