oppia-android icon indicating copy to clipboard operation
oppia-android copied to clipboard

[Feature Request]: Color Formatting Static Checks Messages

Open kkmurerwa opened this issue 1 year ago • 7 comments

Is your feature request related to a problem? Please describe.

Currently, the output of static checks is presented uniformly in the same color, making it challenging to quickly distinguish failed checks from successful ones. To enhance the experience, color-formatted messages should be implemented for static checks. Specifically, if a static check fails, the corresponding error message should be displayed in red, providing an immediate visual cue for attention while, if the check succeeds, the message should be presented in green, indicating a positive outcome. Warning messages can also be output in yellow for easy scanning.

Describe the solution you'd like

Shell provides a way to format the color of the output and we can use this to implement the feature. Using color codes, we can be able to implement a printer that takes in a string as a variable and formats it based on the type of message it is. Here is a shell script that can be used as a printer.

RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m'

function echo_error() {
    echo -e "${RED}$1${NC}"
}

function echo_success() {
    echo -e "${GREEN}$1${NC}"
}

function echo_warning() {
    echo -e "${YELLOW}$1${NC}"
}

Example usage of this printer is as shown below;

# Import the printer file
source ./path/to/shell_printer.sh

echo_warning "This is a warning message" # Prints a yellow message

echo_error "This is an error message" # Prints a red message

echo_success "This is a success message" # Prints a green message

This blog post provides more insight on color formatting in shell.

Describe alternatives you've considered

No response

Additional context

No response

kkmurerwa avatar Feb 01 '24 05:02 kkmurerwa

Hi @adhiamboperes , if this issue is still available then I would love to work on this. This looks like a good point for someone new to start. If it's possible, can you please assign this issue to me?

snehalchaudhari98 avatar Feb 07 '24 19:02 snehalchaudhari98

@snehalchaudhari98, this issue is available. Could you please give an overview of you proposed solution? You can also open a draft pull request.

adhiamboperes avatar Feb 08 '24 13:02 adhiamboperes

Hi @adhiamboperes can I work on this Issue?

aadityaguptaa avatar Mar 14 '24 12:03 aadityaguptaa

Hi, Please tell us your idea of how to solve this, then we will assign it to you once we're aligned!

adhiamboperes avatar Mar 14 '24 12:03 adhiamboperes

Sure @adhiamboperes,

Here's a proposed solution:

We'll refactor the color-formatting logic into a separate script, for ex. formatting_utils.sh. This script will contain the echo_error, echo_success, and other formatting functions. We can then source this script within all the scripts that static check script is executing. For example, Static_Checks.sh file is executing, checkstyle_lint_check.sh file. image

So, in checkstyle_lint_check,sh file, image instead of calling "echo "Checkstyle issue found."" on line 26, we can call echo_error "CheckStyle issue found."

aadityaguptaa avatar Mar 14 '24 13:03 aadityaguptaa

@adhiamboperes Sorry, the line no is not mentioned in the above Image,

This is what I am trying to suggest: image

PS: ignore my bad handwriting, thanks

aadityaguptaa avatar Mar 14 '24 13:03 aadityaguptaa

Hey @adhiamboperes can I?

aadityaguptaa avatar Mar 16 '24 13:03 aadityaguptaa