YoYoGames / GameMaker-Bugs

Public tracking for GameMaker bugs
22 stars 8 forks source link

Change the wording of some feather messages to be easier to understand #5980

Open KormexGit opened 3 months ago

KormexGit commented 3 months ago

Is your feature request related to a problem?

A lot of feather's messages use some pretty technical terminology, which makes them hard to understand if you don't have a CS background (which I imagine a lot of GM's userbase does not)

Describe the solution you'd like

I'd like to see a number of the messages rewritten to be more plain English, and maybe also give some hints about how to fix it. For example, GM2016 already sort of does this "GM2016 Instance variable 'thing' declared outside of Create event, declare with 'var' or move to Create event." While this does still lead to people slapping var in front when they shouldn't, it's at least more actionable.

Here's my list of messages that stood out to me, with a note for which part feels like it could be improved.

GM1002 image I'm only able to figure out what "Inline initializers" means from context. Something like "Cannot set the value of a globalvar on the same line it is declared." would be more clear I think.

GM1003 image This one's a bit awkwardly worded. Maybe something like "Enum values can only be set to integers" instead?

GM1007 image "Left-hand side of an assignment" feels a bit hard to understand. I'm thinking something like "Cannot assign a value to something that is not a variable"

GM 1011 image I'm not sure what "Implicit cast" means

GM 1012 image Honestly I don't know what this means at all

GM 1022 image This one will appear when doing something like variable; where you reference a variable but don't do anything with it. I'm not sure how exactly this would be rewritten, but I think it should mention that a variable is referenced but not actually being used instead of being a bit vague like it is now

GM 1026 image I'm unfamiliar with the term "postfix"

GM 1029 image Same as GM 1011, not sure what implicit cast means

GM 1049 image I get this one a lot, and I know it's related to with statements, but I don't know what "identifier cannot be captured" means

GM 1050 image Same as above, not sure what an "identifier" is

GM 1057 image Don't know what cyclic reference means

GM 1065 image Can't tell what this one is about without context

GM 2006 image I'm not sure when this one can appear, but I think there should be more on what a "valid context" is for the function

GM 2017 image This one is clearly worded, BUT I think a different term than "inconsistent" should be used, because this error is not actually based on consistency. Something like "Variable name does not use the naming style set in preferences. Recommended name is '{0}'" to make it more clear that it's based on rules that can be changed

GM 2018 image This one is very vague, and could use more elaboration on what exactly is dangerous

GM 2022 image I only know what "pure function" because I previously asked around about this message. This one could be expanded to explain that the function effectively doesn't do anything if the return is unused

GM 2036 image Never seen this one before so not sure if the context would make it more clear, but it's a pretty technical wording

GM 2037 image Similar to GM 2018, I think it should explain what is dangerous about it

GM 2038 image Not sure when this appears, but what would "visible" mean when talking about arrays and scripts?

GM 2047 image Another one that I think is a bit too concise for it's own good, could use some specifics on what is making the code unreachable, and what being unreachable means

GM 2058 image This one I think could use some text explaining what to do to fix it

That's all of the ones that stood out to me the most, but there's some others as well that could potentially use some tweaking. Also, I noticed that some messages are listed in message severity but don't seem to be possible to actually trigger? Or if they can, they're something very specific.

Describe alternatives you've considered

No response

Additional context

No response

realDragon11 commented 3 months ago

GM1032 No references to arguments 2 but references argument 2 Seems paradoxical? I have no idea what's going on aside from feather not liking argument 2.