Ansi.java

package network.ike.plugin.ws;

/**
 * ANSI escape code constants for colored terminal output.
 *
 * <p>Maven passes {@code -Dstyle.color=always} in IntelliJ by default,
 * so ANSI codes render correctly in both terminal and IDE console.
 * These are used for status markers in ws: goal output to provide
 * quick visual scanning of success/warning/error states.
 *
 * <p>Color assignments:
 * <ul>
 *   <li>Green — success (✓ checkmarks, completion, alignment)</li>
 *   <li>Yellow — warning (⚠ non-critical issues, prompts)</li>
 *   <li>Red — error (✗ failures, blocking problems)</li>
 *   <li>Cyan — action (↻ sync, ↓ download, in-progress)</li>
 * </ul>
 */
public final class Ansi {

    private Ansi() {}

    /** Green ANSI escape prefix. */
    public static final String GREEN  = "";
    /** Yellow ANSI escape prefix. */
    public static final String YELLOW = "";
    /** Red ANSI escape prefix. */
    public static final String RED    = "";
    /** Cyan ANSI escape prefix. */
    public static final String CYAN   = "";
    /** ANSI reset suffix. */
    public static final String RESET  = "";

    /**
     * Wrap text in green (success).
     *
     * @param text the content to colorize
     * @return ANSI-wrapped string
     */
    public static String green(String text)  { return GREEN + text + RESET; }

    /**
     * Wrap text in yellow (warning).
     *
     * @param text the content to colorize
     * @return ANSI-wrapped string
     */
    public static String yellow(String text) { return YELLOW + text + RESET; }

    /**
     * Wrap text in red (error).
     *
     * @param text the content to colorize
     * @return ANSI-wrapped string
     */
    public static String red(String text)    { return RED + text + RESET; }

    /**
     * Wrap text in cyan (action/progress).
     *
     * @param text the content to colorize
     * @return ANSI-wrapped string
     */
    public static String cyan(String text)   { return CYAN + text + RESET; }
}