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

View File

@ -40,6 +40,71 @@ parameters:
count: 1
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\\.$#"
count: 1