Terminal: use match instead of switch in toANSI()

phpstan seems to have some trouble with large match statements (phpstan/phpstan#5454)
This commit is contained in:
Dylan K. Taylor 2021-08-12 20:13:44 +01:00
parent 2782af7e22
commit 6a2a4cca4d
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
2 changed files with 90 additions and 73 deletions

View File

@ -187,79 +187,31 @@ abstract class Terminal{
$newString = ""; $newString = "";
foreach($string as $token){ foreach($string as $token){
switch($token){ $newString .= match($token){
case TextFormat::BOLD: TextFormat::BOLD => Terminal::$FORMAT_BOLD,
$newString .= Terminal::$FORMAT_BOLD; TextFormat::OBFUSCATED => Terminal::$FORMAT_OBFUSCATED,
break; TextFormat::ITALIC => Terminal::$FORMAT_ITALIC,
case TextFormat::OBFUSCATED: TextFormat::UNDERLINE => Terminal::$FORMAT_UNDERLINE,
$newString .= Terminal::$FORMAT_OBFUSCATED; TextFormat::STRIKETHROUGH => Terminal::$FORMAT_STRIKETHROUGH,
break; TextFormat::RESET => Terminal::$FORMAT_RESET,
case TextFormat::ITALIC: TextFormat::BLACK => Terminal::$COLOR_BLACK,
$newString .= Terminal::$FORMAT_ITALIC; TextFormat::DARK_BLUE => Terminal::$COLOR_DARK_BLUE,
break; TextFormat::DARK_GREEN => Terminal::$COLOR_DARK_GREEN,
case TextFormat::UNDERLINE: TextFormat::DARK_AQUA => Terminal::$COLOR_DARK_AQUA,
$newString .= Terminal::$FORMAT_UNDERLINE; TextFormat::DARK_RED => Terminal::$COLOR_DARK_RED,
break; TextFormat::DARK_PURPLE => Terminal::$COLOR_PURPLE,
case TextFormat::STRIKETHROUGH: TextFormat::GOLD => Terminal::$COLOR_GOLD,
$newString .= Terminal::$FORMAT_STRIKETHROUGH; TextFormat::GRAY => Terminal::$COLOR_GRAY,
break; TextFormat::DARK_GRAY => Terminal::$COLOR_DARK_GRAY,
case TextFormat::RESET: TextFormat::BLUE => Terminal::$COLOR_BLUE,
$newString .= Terminal::$FORMAT_RESET; TextFormat::GREEN => Terminal::$COLOR_GREEN,
break; TextFormat::AQUA => Terminal::$COLOR_AQUA,
TextFormat::RED => Terminal::$COLOR_RED,
//Colors TextFormat::LIGHT_PURPLE => Terminal::$COLOR_LIGHT_PURPLE,
case TextFormat::BLACK: TextFormat::YELLOW => Terminal::$COLOR_YELLOW,
$newString .= Terminal::$COLOR_BLACK; TextFormat::WHITE => Terminal::$COLOR_WHITE,
break; default => $token,
case TextFormat::DARK_BLUE: };
$newString .= Terminal::$COLOR_DARK_BLUE;
break;
case TextFormat::DARK_GREEN:
$newString .= Terminal::$COLOR_DARK_GREEN;
break;
case TextFormat::DARK_AQUA:
$newString .= Terminal::$COLOR_DARK_AQUA;
break;
case TextFormat::DARK_RED:
$newString .= Terminal::$COLOR_DARK_RED;
break;
case TextFormat::DARK_PURPLE:
$newString .= Terminal::$COLOR_PURPLE;
break;
case TextFormat::GOLD:
$newString .= Terminal::$COLOR_GOLD;
break;
case TextFormat::GRAY:
$newString .= Terminal::$COLOR_GRAY;
break;
case TextFormat::DARK_GRAY:
$newString .= Terminal::$COLOR_DARK_GRAY;
break;
case TextFormat::BLUE:
$newString .= Terminal::$COLOR_BLUE;
break;
case TextFormat::GREEN:
$newString .= Terminal::$COLOR_GREEN;
break;
case TextFormat::AQUA:
$newString .= Terminal::$COLOR_AQUA;
break;
case TextFormat::RED:
$newString .= Terminal::$COLOR_RED;
break;
case TextFormat::LIGHT_PURPLE:
$newString .= Terminal::$COLOR_LIGHT_PURPLE;
break;
case TextFormat::YELLOW:
$newString .= Terminal::$COLOR_YELLOW;
break;
case TextFormat::WHITE:
$newString .= Terminal::$COLOR_WHITE;
break;
default:
$newString .= $token;
break;
}
} }
return $newString; return $newString;

View File

@ -40,6 +40,71 @@ parameters:
count: 1 count: 1
path: ../../../src/utils/Promise.php path: ../../../src/utils/Promise.php
-
message: "#^Match arm comparison between string and '§3' is always false\\.$#"
count: 1
path: ../../../src/utils/Terminal.php
-
message: "#^Match arm comparison between string and '§4' is always false\\.$#"
count: 1
path: ../../../src/utils/Terminal.php
-
message: "#^Match arm comparison between string and '§5' is always false\\.$#"
count: 1
path: ../../../src/utils/Terminal.php
-
message: "#^Match arm comparison between string and '§6' is always false\\.$#"
count: 1
path: ../../../src/utils/Terminal.php
-
message: "#^Match arm comparison between string and '§7' is always false\\.$#"
count: 1
path: ../../../src/utils/Terminal.php
-
message: "#^Match arm comparison between string and '§8' is always false\\.$#"
count: 1
path: ../../../src/utils/Terminal.php
-
message: "#^Match arm comparison between string and '§9' is always false\\.$#"
count: 1
path: ../../../src/utils/Terminal.php
-
message: "#^Match arm comparison between string and '§a' is always false\\.$#"
count: 1
path: ../../../src/utils/Terminal.php
-
message: "#^Match arm comparison between string and '§b' is always false\\.$#"
count: 1
path: ../../../src/utils/Terminal.php
-
message: "#^Match arm comparison between string and '§c' is always false\\.$#"
count: 1
path: ../../../src/utils/Terminal.php
-
message: "#^Match arm comparison between string and '§d' is always false\\.$#"
count: 1
path: ../../../src/utils/Terminal.php
-
message: "#^Match arm comparison between string and '§e' is always false\\.$#"
count: 1
path: ../../../src/utils/Terminal.php
-
message: "#^Match arm comparison between string and '§f' is always false\\.$#"
count: 1
path: ../../../src/utils/Terminal.php
- -
message: "#^Parameter \\#1 \\$ of closure expects TMemberType, TMemberType given\\.$#" message: "#^Parameter \\#1 \\$ of closure expects TMemberType, TMemberType given\\.$#"
count: 1 count: 1