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
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
This one's a bit awkwardly worded. Maybe something like "Enum values can only be set to integers" instead?
GM1007
"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
I'm not sure what "Implicit cast" means
GM 1012
Honestly I don't know what this means at all
GM 1022
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
I'm unfamiliar with the term "postfix"
GM 1029
Same as GM 1011, not sure what implicit cast means
GM 1049
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
Same as above, not sure what an "identifier" is
GM 1057
Don't know what cyclic reference means
GM 1065
Can't tell what this one is about without context
GM 2006
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
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
This one is very vague, and could use more elaboration on what exactly is dangerous
GM 2022
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
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
Similar to GM 2018, I think it should explain what is dangerous about it
GM 2038
Not sure when this appears, but what would "visible" mean when talking about arrays and scripts?
GM 2047
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
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.
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.
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 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 This one's a bit awkwardly worded. Maybe something like "Enum values can only be set to integers" instead?
GM1007 "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 I'm not sure what "Implicit cast" means
GM 1012 Honestly I don't know what this means at all
GM 1022 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 nowGM 1026 I'm unfamiliar with the term "postfix"
GM 1029 Same as GM 1011, not sure what implicit cast means
GM 1049 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 Same as above, not sure what an "identifier" is
GM 1057 Don't know what cyclic reference means
GM 1065 Can't tell what this one is about without context
GM 2006 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 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 This one is very vague, and could use more elaboration on what exactly is dangerous
GM 2022 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 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 Similar to GM 2018, I think it should explain what is dangerous about it
GM 2038 Not sure when this appears, but what would "visible" mean when talking about arrays and scripts?
GM 2047 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 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