-
Notifications
You must be signed in to change notification settings - Fork 240
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improving Processing Error Messages #741
Comments
This is great @WillRabalais04 |
Syntax Error - Missing operator, semicolon, or ‘}’ near ‘load_primes’? The error is that I have a function 'load_primes' but I have code not in a function, and I don't have setup (and draw) functions. |
Hey @RichardDL99! I think you are referring to mixed modes where you are defining classes or functions but aren't using run or setup. We can take a look at that as well! |
Dang sorry this one might have been my fault @WillRabalais04 - #519. Looks like this slid off the radar. |
Separately, it looks like we are doing both preprocessor issues and runtime issues here which is great! You'll want to extend PreprocessIssueMessageSimplifier for compile time errors and you'll want to do something similar to |
CC @SableRaf - the issue is cooking! |
Hey @WillRabalais04, Nice job on the "Invalid Identifier" error message! It's clear and helpful, but I think we can make it even friendlier, generic, and more direct. Here's a tweaked version:
I think it makes the message a bit more digestible. I'm not entirely sure about linking to Oracle documentation pages as they can be overwhelming for beginners. |
Thank you @SableRaf! I totally agree that Oracle documentation is not beginner friendly so it's not ideal to link to it. In my approach thus far the only case in which there would be a link to Oracle documentation is when there is a keyword that a beginner may not know and that there is no Processing reference page for. What would you suggest for this case instead? I can think of three alternatives to linking to Oracle documentation; including relevant information from the documentation in the error message itself, linking to Processing forum entries that pertain to the keyword or not attempting to define keywords. These all have trade-offs to weight so a hybrid approach could be best.
However we do the keywords, I think the For More section at the bottom should stay the same as it is now and consist of examples from Processing reference. Let me know what you think! |
Hey @WillRabalais04! It occurred to me that I don’t think we are using an HTMLEditorKit for the console. I’d prefer to stay away from it but I’ll look at options. Until then, go ahead and assume you are writing out markdown formatted text. Thanks! |
That would be my pick too. In my opinion, messages should be as self-contained as possible, introducing unfamiliar keywords as necessary within the message, and avoiding unnecessary jargon to keep things beginner-friendly. The primary focus should be to guide users towards a solution to their issue, with only a secondary aim of teaching programming terminology, if and when necessary. |
Processing Friendly Errors
We are building out friendly error message rewriting by extending the PreprocessIssueMessageSimplifier. To determine which errors to support, we worked with Raphaël and Sam to run a community survey.
Motivations
The results of the survey showed that although the error messages are usable, with an average clarity rating of 3.32 out of 5 there is room for improvement. The key elements that respondents identified as crucial for understanding error messages include the name and type of the error, specifics about what broke in the code, traceback to the specific line of the error, expected versus found outcomes, resources for contextualization and guidance, and possible solutions. Enhancing error messages based on the insights of the survey would greatly benefit the Processing user experience for beginners and advanced users alike. We hope to foster better understanding and more efficient problem-solving.
Currently Simplified Errors to Improve On
OR
Variable Examples, Identifiers,
Keywords
&
Statements
Operators Example,
Semicolons,
Curly Braces
&
Statements
OR
Variable Examples,
Assignment Operator
&
Statements
OR
Variable Examples,
Semicolons,
Identifiers
&
Statements
Generic Methods
&
Generics & Subtyping
Generic Methods,
Statements
&
Generics & Subtyping
&
Statements
Operator Precedence
&
Statements
Identifiers,
Semicolons
&
Statements
Identifiers,
Semicolons
&
Statements
Methods
&
Statements
Errors to Add Strategies For
Unsupported Errors
The following will still operate as usual without rewriting / error simplification.
Error Message Template
-[additional resources]
* The toggle to see the original error will be added at some point but likely will not be in the first version of the improved error messages as it may be difficult to implement.
Example 1: Array Index Out of Bound Exception
Example 2: Invalid Identifier
Incorporating Additional Resources Approach
The text was updated successfully, but these errors were encountered: