This is an automated email from the ASF dual-hosted git repository.
aradzinski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/master by this push:
new faae526 Fix for 8-bit ANSI colors.
faae526 is described below
commit faae52632dbcbc8e3ecfcac37cf668e02ba2f46e
Author: Aaron Radzinski <[email protected]>
AuthorDate: Sun Aug 8 22:44:42 2021 -0700
Fix for 8-bit ANSI colors.
---
.../main/scala/org/apache/nlpcraft/NCStart.scala | 2 +-
.../org/apache/nlpcraft/common/NCService.scala | 2 +-
.../org/apache/nlpcraft/common/ansi/NCAnsi.scala | 1320 +++++++++++++++++++-
.../nlpcraft/common/ascii/NCAsciiTable.scala | 12 +-
.../scala/org/apache/nlpcraft/common/package.scala | 7 +-
.../org/apache/nlpcraft/common/util/NCUtils.scala | 90 +-
.../nlpcraft/model/tools/cmdline/NCCli.scala | 2 +-
.../org/apache/nlpcraft/probe/NCProbeBoot.scala | 2 +-
.../org/apache/nlpcraft/server/NCServer.scala | 2 +-
9 files changed, 1415 insertions(+), 24 deletions(-)
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCStart.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCStart.scala
index a765883..9a62c4a 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCStart.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCStart.scala
@@ -55,7 +55,7 @@ object NCStart extends App with LazyLogging {
logger.info(
U.NL +
- U.asciiLogo() +
+ U.asciiLogo8Bit() +
s"${U.NL}" +
s"Version: ${ansiBold(ver.version)}${U.NL}" +
s"${NCVersion.copyright}${U.NL}"
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/NCService.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/NCService.scala
index ee0f1d8..3b8e292 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/NCService.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/NCService.scala
@@ -128,7 +128,7 @@ abstract class NCService extends LazyLogging with
NCOpenCensusTrace {
"state" -> "started"
)
- val durBrkt =
s"$ansiReversed$ansiGreenFg$ansiBold[${padDur(timeStampMs)}]$ansiReset"
+ val durBrkt =
s"${ansi256Fg(16)}${ansi256Bg(70)}[${padDur(timeStampMs)}]$ansiReset"
logger.info(s"$durBrkt $name started.")
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsi.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsi.scala
index 7a686bd..43d25da 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsi.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsi.scala
@@ -26,9 +26,36 @@ import org.apache.nlpcraft.common._
sealed trait NCAnsi extends LazyLogging {
import NCAnsi._
+ /*
+ 8-bit colors generated by this shell code:
+ ------------------------------------------
+ for i in {1..255}
+ do
+ echo "private final val FG_$i = \"\u001b[38;5;${i}m\""
+ echo "private final val BG_$i = \"\u001b[48;5;${i}m\""
+ done
+
+ echo
+ echo
+
+ for i in {1..255}
+ do
+ echo "def ansi${i}Fg: String = if (isEnabled) FG_${i} else \"\""
+ echo "def ansi${i}Bg: String = if (isEnabled) BG_${i} else \"\""
+ done
+
+ echo
+ echo
+
+ for i in {1..255}
+ do
+ echo "def ansi${i}(s: Any): String =
s\"\$ansi${i}Fg\${s.toString}\$ansiReset\""
+ done
+ */
+
private final val RESET = "\u001b[0m"
- // Colors &effects.
+ // 4-bit colors.
private final val BLACK = "\u001b[30m"
private final val RED = "\u001b[31m"
private final val GREEN = "\u001b[32m"
@@ -45,6 +72,1293 @@ sealed trait NCAnsi extends LazyLogging {
private final val MAGENTA_B = "\u001b[45m"
private final val CYAN_B = "\u001b[46m"
private final val WHITE_B = "\u001b[47m"
+
+ // 8-bit colors.
+ private final val FG_1 = "\u001b[38;5;1m"
+ private final val BG_1 = "\u001b[48;5;1m"
+ private final val FG_2 = "\u001b[38;5;2m"
+ private final val BG_2 = "\u001b[48;5;2m"
+ private final val FG_3 = "\u001b[38;5;3m"
+ private final val BG_3 = "\u001b[48;5;3m"
+ private final val FG_4 = "\u001b[38;5;4m"
+ private final val BG_4 = "\u001b[48;5;4m"
+ private final val FG_5 = "\u001b[38;5;5m"
+ private final val BG_5 = "\u001b[48;5;5m"
+ private final val FG_6 = "\u001b[38;5;6m"
+ private final val BG_6 = "\u001b[48;5;6m"
+ private final val FG_7 = "\u001b[38;5;7m"
+ private final val BG_7 = "\u001b[48;5;7m"
+ private final val FG_8 = "\u001b[38;5;8m"
+ private final val BG_8 = "\u001b[48;5;8m"
+ private final val FG_9 = "\u001b[38;5;9m"
+ private final val BG_9 = "\u001b[48;5;9m"
+ private final val FG_10 = "\u001b[38;5;10m"
+ private final val BG_10 = "\u001b[48;5;10m"
+ private final val FG_11 = "\u001b[38;5;11m"
+ private final val BG_11 = "\u001b[48;5;11m"
+ private final val FG_12 = "\u001b[38;5;12m"
+ private final val BG_12 = "\u001b[48;5;12m"
+ private final val FG_13 = "\u001b[38;5;13m"
+ private final val BG_13 = "\u001b[48;5;13m"
+ private final val FG_14 = "\u001b[38;5;14m"
+ private final val BG_14 = "\u001b[48;5;14m"
+ private final val FG_15 = "\u001b[38;5;15m"
+ private final val BG_15 = "\u001b[48;5;15m"
+ private final val FG_16 = "\u001b[38;5;16m"
+ private final val BG_16 = "\u001b[48;5;16m"
+ private final val FG_17 = "\u001b[38;5;17m"
+ private final val BG_17 = "\u001b[48;5;17m"
+ private final val FG_18 = "\u001b[38;5;18m"
+ private final val BG_18 = "\u001b[48;5;18m"
+ private final val FG_19 = "\u001b[38;5;19m"
+ private final val BG_19 = "\u001b[48;5;19m"
+ private final val FG_20 = "\u001b[38;5;20m"
+ private final val BG_20 = "\u001b[48;5;20m"
+ private final val FG_21 = "\u001b[38;5;21m"
+ private final val BG_21 = "\u001b[48;5;21m"
+ private final val FG_22 = "\u001b[38;5;22m"
+ private final val BG_22 = "\u001b[48;5;22m"
+ private final val FG_23 = "\u001b[38;5;23m"
+ private final val BG_23 = "\u001b[48;5;23m"
+ private final val FG_24 = "\u001b[38;5;24m"
+ private final val BG_24 = "\u001b[48;5;24m"
+ private final val FG_25 = "\u001b[38;5;25m"
+ private final val BG_25 = "\u001b[48;5;25m"
+ private final val FG_26 = "\u001b[38;5;26m"
+ private final val BG_26 = "\u001b[48;5;26m"
+ private final val FG_27 = "\u001b[38;5;27m"
+ private final val BG_27 = "\u001b[48;5;27m"
+ private final val FG_28 = "\u001b[38;5;28m"
+ private final val BG_28 = "\u001b[48;5;28m"
+ private final val FG_29 = "\u001b[38;5;29m"
+ private final val BG_29 = "\u001b[48;5;29m"
+ private final val FG_30 = "\u001b[38;5;30m"
+ private final val BG_30 = "\u001b[48;5;30m"
+ private final val FG_31 = "\u001b[38;5;31m"
+ private final val BG_31 = "\u001b[48;5;31m"
+ private final val FG_32 = "\u001b[38;5;32m"
+ private final val BG_32 = "\u001b[48;5;32m"
+ private final val FG_33 = "\u001b[38;5;33m"
+ private final val BG_33 = "\u001b[48;5;33m"
+ private final val FG_34 = "\u001b[38;5;34m"
+ private final val BG_34 = "\u001b[48;5;34m"
+ private final val FG_35 = "\u001b[38;5;35m"
+ private final val BG_35 = "\u001b[48;5;35m"
+ private final val FG_36 = "\u001b[38;5;36m"
+ private final val BG_36 = "\u001b[48;5;36m"
+ private final val FG_37 = "\u001b[38;5;37m"
+ private final val BG_37 = "\u001b[48;5;37m"
+ private final val FG_38 = "\u001b[38;5;38m"
+ private final val BG_38 = "\u001b[48;5;38m"
+ private final val FG_39 = "\u001b[38;5;39m"
+ private final val BG_39 = "\u001b[48;5;39m"
+ private final val FG_40 = "\u001b[38;5;40m"
+ private final val BG_40 = "\u001b[48;5;40m"
+ private final val FG_41 = "\u001b[38;5;41m"
+ private final val BG_41 = "\u001b[48;5;41m"
+ private final val FG_42 = "\u001b[38;5;42m"
+ private final val BG_42 = "\u001b[48;5;42m"
+ private final val FG_43 = "\u001b[38;5;43m"
+ private final val BG_43 = "\u001b[48;5;43m"
+ private final val FG_44 = "\u001b[38;5;44m"
+ private final val BG_44 = "\u001b[48;5;44m"
+ private final val FG_45 = "\u001b[38;5;45m"
+ private final val BG_45 = "\u001b[48;5;45m"
+ private final val FG_46 = "\u001b[38;5;46m"
+ private final val BG_46 = "\u001b[48;5;46m"
+ private final val FG_47 = "\u001b[38;5;47m"
+ private final val BG_47 = "\u001b[48;5;47m"
+ private final val FG_48 = "\u001b[38;5;48m"
+ private final val BG_48 = "\u001b[48;5;48m"
+ private final val FG_49 = "\u001b[38;5;49m"
+ private final val BG_49 = "\u001b[48;5;49m"
+ private final val FG_50 = "\u001b[38;5;50m"
+ private final val BG_50 = "\u001b[48;5;50m"
+ private final val FG_51 = "\u001b[38;5;51m"
+ private final val BG_51 = "\u001b[48;5;51m"
+ private final val FG_52 = "\u001b[38;5;52m"
+ private final val BG_52 = "\u001b[48;5;52m"
+ private final val FG_53 = "\u001b[38;5;53m"
+ private final val BG_53 = "\u001b[48;5;53m"
+ private final val FG_54 = "\u001b[38;5;54m"
+ private final val BG_54 = "\u001b[48;5;54m"
+ private final val FG_55 = "\u001b[38;5;55m"
+ private final val BG_55 = "\u001b[48;5;55m"
+ private final val FG_56 = "\u001b[38;5;56m"
+ private final val BG_56 = "\u001b[48;5;56m"
+ private final val FG_57 = "\u001b[38;5;57m"
+ private final val BG_57 = "\u001b[48;5;57m"
+ private final val FG_58 = "\u001b[38;5;58m"
+ private final val BG_58 = "\u001b[48;5;58m"
+ private final val FG_59 = "\u001b[38;5;59m"
+ private final val BG_59 = "\u001b[48;5;59m"
+ private final val FG_60 = "\u001b[38;5;60m"
+ private final val BG_60 = "\u001b[48;5;60m"
+ private final val FG_61 = "\u001b[38;5;61m"
+ private final val BG_61 = "\u001b[48;5;61m"
+ private final val FG_62 = "\u001b[38;5;62m"
+ private final val BG_62 = "\u001b[48;5;62m"
+ private final val FG_63 = "\u001b[38;5;63m"
+ private final val BG_63 = "\u001b[48;5;63m"
+ private final val FG_64 = "\u001b[38;5;64m"
+ private final val BG_64 = "\u001b[48;5;64m"
+ private final val FG_65 = "\u001b[38;5;65m"
+ private final val BG_65 = "\u001b[48;5;65m"
+ private final val FG_66 = "\u001b[38;5;66m"
+ private final val BG_66 = "\u001b[48;5;66m"
+ private final val FG_67 = "\u001b[38;5;67m"
+ private final val BG_67 = "\u001b[48;5;67m"
+ private final val FG_68 = "\u001b[38;5;68m"
+ private final val BG_68 = "\u001b[48;5;68m"
+ private final val FG_69 = "\u001b[38;5;69m"
+ private final val BG_69 = "\u001b[48;5;69m"
+ private final val FG_70 = "\u001b[38;5;70m"
+ private final val BG_70 = "\u001b[48;5;70m"
+ private final val FG_71 = "\u001b[38;5;71m"
+ private final val BG_71 = "\u001b[48;5;71m"
+ private final val FG_72 = "\u001b[38;5;72m"
+ private final val BG_72 = "\u001b[48;5;72m"
+ private final val FG_73 = "\u001b[38;5;73m"
+ private final val BG_73 = "\u001b[48;5;73m"
+ private final val FG_74 = "\u001b[38;5;74m"
+ private final val BG_74 = "\u001b[48;5;74m"
+ private final val FG_75 = "\u001b[38;5;75m"
+ private final val BG_75 = "\u001b[48;5;75m"
+ private final val FG_76 = "\u001b[38;5;76m"
+ private final val BG_76 = "\u001b[48;5;76m"
+ private final val FG_77 = "\u001b[38;5;77m"
+ private final val BG_77 = "\u001b[48;5;77m"
+ private final val FG_78 = "\u001b[38;5;78m"
+ private final val BG_78 = "\u001b[48;5;78m"
+ private final val FG_79 = "\u001b[38;5;79m"
+ private final val BG_79 = "\u001b[48;5;79m"
+ private final val FG_80 = "\u001b[38;5;80m"
+ private final val BG_80 = "\u001b[48;5;80m"
+ private final val FG_81 = "\u001b[38;5;81m"
+ private final val BG_81 = "\u001b[48;5;81m"
+ private final val FG_82 = "\u001b[38;5;82m"
+ private final val BG_82 = "\u001b[48;5;82m"
+ private final val FG_83 = "\u001b[38;5;83m"
+ private final val BG_83 = "\u001b[48;5;83m"
+ private final val FG_84 = "\u001b[38;5;84m"
+ private final val BG_84 = "\u001b[48;5;84m"
+ private final val FG_85 = "\u001b[38;5;85m"
+ private final val BG_85 = "\u001b[48;5;85m"
+ private final val FG_86 = "\u001b[38;5;86m"
+ private final val BG_86 = "\u001b[48;5;86m"
+ private final val FG_87 = "\u001b[38;5;87m"
+ private final val BG_87 = "\u001b[48;5;87m"
+ private final val FG_88 = "\u001b[38;5;88m"
+ private final val BG_88 = "\u001b[48;5;88m"
+ private final val FG_89 = "\u001b[38;5;89m"
+ private final val BG_89 = "\u001b[48;5;89m"
+ private final val FG_90 = "\u001b[38;5;90m"
+ private final val BG_90 = "\u001b[48;5;90m"
+ private final val FG_91 = "\u001b[38;5;91m"
+ private final val BG_91 = "\u001b[48;5;91m"
+ private final val FG_92 = "\u001b[38;5;92m"
+ private final val BG_92 = "\u001b[48;5;92m"
+ private final val FG_93 = "\u001b[38;5;93m"
+ private final val BG_93 = "\u001b[48;5;93m"
+ private final val FG_94 = "\u001b[38;5;94m"
+ private final val BG_94 = "\u001b[48;5;94m"
+ private final val FG_95 = "\u001b[38;5;95m"
+ private final val BG_95 = "\u001b[48;5;95m"
+ private final val FG_96 = "\u001b[38;5;96m"
+ private final val BG_96 = "\u001b[48;5;96m"
+ private final val FG_97 = "\u001b[38;5;97m"
+ private final val BG_97 = "\u001b[48;5;97m"
+ private final val FG_98 = "\u001b[38;5;98m"
+ private final val BG_98 = "\u001b[48;5;98m"
+ private final val FG_99 = "\u001b[38;5;99m"
+ private final val BG_99 = "\u001b[48;5;99m"
+ private final val FG_100 = "\u001b[38;5;100m"
+ private final val BG_100 = "\u001b[48;5;100m"
+ private final val FG_101 = "\u001b[38;5;101m"
+ private final val BG_101 = "\u001b[48;5;101m"
+ private final val FG_102 = "\u001b[38;5;102m"
+ private final val BG_102 = "\u001b[48;5;102m"
+ private final val FG_103 = "\u001b[38;5;103m"
+ private final val BG_103 = "\u001b[48;5;103m"
+ private final val FG_104 = "\u001b[38;5;104m"
+ private final val BG_104 = "\u001b[48;5;104m"
+ private final val FG_105 = "\u001b[38;5;105m"
+ private final val BG_105 = "\u001b[48;5;105m"
+ private final val FG_106 = "\u001b[38;5;106m"
+ private final val BG_106 = "\u001b[48;5;106m"
+ private final val FG_107 = "\u001b[38;5;107m"
+ private final val BG_107 = "\u001b[48;5;107m"
+ private final val FG_108 = "\u001b[38;5;108m"
+ private final val BG_108 = "\u001b[48;5;108m"
+ private final val FG_109 = "\u001b[38;5;109m"
+ private final val BG_109 = "\u001b[48;5;109m"
+ private final val FG_110 = "\u001b[38;5;110m"
+ private final val BG_110 = "\u001b[48;5;110m"
+ private final val FG_111 = "\u001b[38;5;111m"
+ private final val BG_111 = "\u001b[48;5;111m"
+ private final val FG_112 = "\u001b[38;5;112m"
+ private final val BG_112 = "\u001b[48;5;112m"
+ private final val FG_113 = "\u001b[38;5;113m"
+ private final val BG_113 = "\u001b[48;5;113m"
+ private final val FG_114 = "\u001b[38;5;114m"
+ private final val BG_114 = "\u001b[48;5;114m"
+ private final val FG_115 = "\u001b[38;5;115m"
+ private final val BG_115 = "\u001b[48;5;115m"
+ private final val FG_116 = "\u001b[38;5;116m"
+ private final val BG_116 = "\u001b[48;5;116m"
+ private final val FG_117 = "\u001b[38;5;117m"
+ private final val BG_117 = "\u001b[48;5;117m"
+ private final val FG_118 = "\u001b[38;5;118m"
+ private final val BG_118 = "\u001b[48;5;118m"
+ private final val FG_119 = "\u001b[38;5;119m"
+ private final val BG_119 = "\u001b[48;5;119m"
+ private final val FG_120 = "\u001b[38;5;120m"
+ private final val BG_120 = "\u001b[48;5;120m"
+ private final val FG_121 = "\u001b[38;5;121m"
+ private final val BG_121 = "\u001b[48;5;121m"
+ private final val FG_122 = "\u001b[38;5;122m"
+ private final val BG_122 = "\u001b[48;5;122m"
+ private final val FG_123 = "\u001b[38;5;123m"
+ private final val BG_123 = "\u001b[48;5;123m"
+ private final val FG_124 = "\u001b[38;5;124m"
+ private final val BG_124 = "\u001b[48;5;124m"
+ private final val FG_125 = "\u001b[38;5;125m"
+ private final val BG_125 = "\u001b[48;5;125m"
+ private final val FG_126 = "\u001b[38;5;126m"
+ private final val BG_126 = "\u001b[48;5;126m"
+ private final val FG_127 = "\u001b[38;5;127m"
+ private final val BG_127 = "\u001b[48;5;127m"
+ private final val FG_128 = "\u001b[38;5;128m"
+ private final val BG_128 = "\u001b[48;5;128m"
+ private final val FG_129 = "\u001b[38;5;129m"
+ private final val BG_129 = "\u001b[48;5;129m"
+ private final val FG_130 = "\u001b[38;5;130m"
+ private final val BG_130 = "\u001b[48;5;130m"
+ private final val FG_131 = "\u001b[38;5;131m"
+ private final val BG_131 = "\u001b[48;5;131m"
+ private final val FG_132 = "\u001b[38;5;132m"
+ private final val BG_132 = "\u001b[48;5;132m"
+ private final val FG_133 = "\u001b[38;5;133m"
+ private final val BG_133 = "\u001b[48;5;133m"
+ private final val FG_134 = "\u001b[38;5;134m"
+ private final val BG_134 = "\u001b[48;5;134m"
+ private final val FG_135 = "\u001b[38;5;135m"
+ private final val BG_135 = "\u001b[48;5;135m"
+ private final val FG_136 = "\u001b[38;5;136m"
+ private final val BG_136 = "\u001b[48;5;136m"
+ private final val FG_137 = "\u001b[38;5;137m"
+ private final val BG_137 = "\u001b[48;5;137m"
+ private final val FG_138 = "\u001b[38;5;138m"
+ private final val BG_138 = "\u001b[48;5;138m"
+ private final val FG_139 = "\u001b[38;5;139m"
+ private final val BG_139 = "\u001b[48;5;139m"
+ private final val FG_140 = "\u001b[38;5;140m"
+ private final val BG_140 = "\u001b[48;5;140m"
+ private final val FG_141 = "\u001b[38;5;141m"
+ private final val BG_141 = "\u001b[48;5;141m"
+ private final val FG_142 = "\u001b[38;5;142m"
+ private final val BG_142 = "\u001b[48;5;142m"
+ private final val FG_143 = "\u001b[38;5;143m"
+ private final val BG_143 = "\u001b[48;5;143m"
+ private final val FG_144 = "\u001b[38;5;144m"
+ private final val BG_144 = "\u001b[48;5;144m"
+ private final val FG_145 = "\u001b[38;5;145m"
+ private final val BG_145 = "\u001b[48;5;145m"
+ private final val FG_146 = "\u001b[38;5;146m"
+ private final val BG_146 = "\u001b[48;5;146m"
+ private final val FG_147 = "\u001b[38;5;147m"
+ private final val BG_147 = "\u001b[48;5;147m"
+ private final val FG_148 = "\u001b[38;5;148m"
+ private final val BG_148 = "\u001b[48;5;148m"
+ private final val FG_149 = "\u001b[38;5;149m"
+ private final val BG_149 = "\u001b[48;5;149m"
+ private final val FG_150 = "\u001b[38;5;150m"
+ private final val BG_150 = "\u001b[48;5;150m"
+ private final val FG_151 = "\u001b[38;5;151m"
+ private final val BG_151 = "\u001b[48;5;151m"
+ private final val FG_152 = "\u001b[38;5;152m"
+ private final val BG_152 = "\u001b[48;5;152m"
+ private final val FG_153 = "\u001b[38;5;153m"
+ private final val BG_153 = "\u001b[48;5;153m"
+ private final val FG_154 = "\u001b[38;5;154m"
+ private final val BG_154 = "\u001b[48;5;154m"
+ private final val FG_155 = "\u001b[38;5;155m"
+ private final val BG_155 = "\u001b[48;5;155m"
+ private final val FG_156 = "\u001b[38;5;156m"
+ private final val BG_156 = "\u001b[48;5;156m"
+ private final val FG_157 = "\u001b[38;5;157m"
+ private final val BG_157 = "\u001b[48;5;157m"
+ private final val FG_158 = "\u001b[38;5;158m"
+ private final val BG_158 = "\u001b[48;5;158m"
+ private final val FG_159 = "\u001b[38;5;159m"
+ private final val BG_159 = "\u001b[48;5;159m"
+ private final val FG_160 = "\u001b[38;5;160m"
+ private final val BG_160 = "\u001b[48;5;160m"
+ private final val FG_161 = "\u001b[38;5;161m"
+ private final val BG_161 = "\u001b[48;5;161m"
+ private final val FG_162 = "\u001b[38;5;162m"
+ private final val BG_162 = "\u001b[48;5;162m"
+ private final val FG_163 = "\u001b[38;5;163m"
+ private final val BG_163 = "\u001b[48;5;163m"
+ private final val FG_164 = "\u001b[38;5;164m"
+ private final val BG_164 = "\u001b[48;5;164m"
+ private final val FG_165 = "\u001b[38;5;165m"
+ private final val BG_165 = "\u001b[48;5;165m"
+ private final val FG_166 = "\u001b[38;5;166m"
+ private final val BG_166 = "\u001b[48;5;166m"
+ private final val FG_167 = "\u001b[38;5;167m"
+ private final val BG_167 = "\u001b[48;5;167m"
+ private final val FG_168 = "\u001b[38;5;168m"
+ private final val BG_168 = "\u001b[48;5;168m"
+ private final val FG_169 = "\u001b[38;5;169m"
+ private final val BG_169 = "\u001b[48;5;169m"
+ private final val FG_170 = "\u001b[38;5;170m"
+ private final val BG_170 = "\u001b[48;5;170m"
+ private final val FG_171 = "\u001b[38;5;171m"
+ private final val BG_171 = "\u001b[48;5;171m"
+ private final val FG_172 = "\u001b[38;5;172m"
+ private final val BG_172 = "\u001b[48;5;172m"
+ private final val FG_173 = "\u001b[38;5;173m"
+ private final val BG_173 = "\u001b[48;5;173m"
+ private final val FG_174 = "\u001b[38;5;174m"
+ private final val BG_174 = "\u001b[48;5;174m"
+ private final val FG_175 = "\u001b[38;5;175m"
+ private final val BG_175 = "\u001b[48;5;175m"
+ private final val FG_176 = "\u001b[38;5;176m"
+ private final val BG_176 = "\u001b[48;5;176m"
+ private final val FG_177 = "\u001b[38;5;177m"
+ private final val BG_177 = "\u001b[48;5;177m"
+ private final val FG_178 = "\u001b[38;5;178m"
+ private final val BG_178 = "\u001b[48;5;178m"
+ private final val FG_179 = "\u001b[38;5;179m"
+ private final val BG_179 = "\u001b[48;5;179m"
+ private final val FG_180 = "\u001b[38;5;180m"
+ private final val BG_180 = "\u001b[48;5;180m"
+ private final val FG_181 = "\u001b[38;5;181m"
+ private final val BG_181 = "\u001b[48;5;181m"
+ private final val FG_182 = "\u001b[38;5;182m"
+ private final val BG_182 = "\u001b[48;5;182m"
+ private final val FG_183 = "\u001b[38;5;183m"
+ private final val BG_183 = "\u001b[48;5;183m"
+ private final val FG_184 = "\u001b[38;5;184m"
+ private final val BG_184 = "\u001b[48;5;184m"
+ private final val FG_185 = "\u001b[38;5;185m"
+ private final val BG_185 = "\u001b[48;5;185m"
+ private final val FG_186 = "\u001b[38;5;186m"
+ private final val BG_186 = "\u001b[48;5;186m"
+ private final val FG_187 = "\u001b[38;5;187m"
+ private final val BG_187 = "\u001b[48;5;187m"
+ private final val FG_188 = "\u001b[38;5;188m"
+ private final val BG_188 = "\u001b[48;5;188m"
+ private final val FG_189 = "\u001b[38;5;189m"
+ private final val BG_189 = "\u001b[48;5;189m"
+ private final val FG_190 = "\u001b[38;5;190m"
+ private final val BG_190 = "\u001b[48;5;190m"
+ private final val FG_191 = "\u001b[38;5;191m"
+ private final val BG_191 = "\u001b[48;5;191m"
+ private final val FG_192 = "\u001b[38;5;192m"
+ private final val BG_192 = "\u001b[48;5;192m"
+ private final val FG_193 = "\u001b[38;5;193m"
+ private final val BG_193 = "\u001b[48;5;193m"
+ private final val FG_194 = "\u001b[38;5;194m"
+ private final val BG_194 = "\u001b[48;5;194m"
+ private final val FG_195 = "\u001b[38;5;195m"
+ private final val BG_195 = "\u001b[48;5;195m"
+ private final val FG_196 = "\u001b[38;5;196m"
+ private final val BG_196 = "\u001b[48;5;196m"
+ private final val FG_197 = "\u001b[38;5;197m"
+ private final val BG_197 = "\u001b[48;5;197m"
+ private final val FG_198 = "\u001b[38;5;198m"
+ private final val BG_198 = "\u001b[48;5;198m"
+ private final val FG_199 = "\u001b[38;5;199m"
+ private final val BG_199 = "\u001b[48;5;199m"
+ private final val FG_200 = "\u001b[38;5;200m"
+ private final val BG_200 = "\u001b[48;5;200m"
+ private final val FG_201 = "\u001b[38;5;201m"
+ private final val BG_201 = "\u001b[48;5;201m"
+ private final val FG_202 = "\u001b[38;5;202m"
+ private final val BG_202 = "\u001b[48;5;202m"
+ private final val FG_203 = "\u001b[38;5;203m"
+ private final val BG_203 = "\u001b[48;5;203m"
+ private final val FG_204 = "\u001b[38;5;204m"
+ private final val BG_204 = "\u001b[48;5;204m"
+ private final val FG_205 = "\u001b[38;5;205m"
+ private final val BG_205 = "\u001b[48;5;205m"
+ private final val FG_206 = "\u001b[38;5;206m"
+ private final val BG_206 = "\u001b[48;5;206m"
+ private final val FG_207 = "\u001b[38;5;207m"
+ private final val BG_207 = "\u001b[48;5;207m"
+ private final val FG_208 = "\u001b[38;5;208m"
+ private final val BG_208 = "\u001b[48;5;208m"
+ private final val FG_209 = "\u001b[38;5;209m"
+ private final val BG_209 = "\u001b[48;5;209m"
+ private final val FG_210 = "\u001b[38;5;210m"
+ private final val BG_210 = "\u001b[48;5;210m"
+ private final val FG_211 = "\u001b[38;5;211m"
+ private final val BG_211 = "\u001b[48;5;211m"
+ private final val FG_212 = "\u001b[38;5;212m"
+ private final val BG_212 = "\u001b[48;5;212m"
+ private final val FG_213 = "\u001b[38;5;213m"
+ private final val BG_213 = "\u001b[48;5;213m"
+ private final val FG_214 = "\u001b[38;5;214m"
+ private final val BG_214 = "\u001b[48;5;214m"
+ private final val FG_215 = "\u001b[38;5;215m"
+ private final val BG_215 = "\u001b[48;5;215m"
+ private final val FG_216 = "\u001b[38;5;216m"
+ private final val BG_216 = "\u001b[48;5;216m"
+ private final val FG_217 = "\u001b[38;5;217m"
+ private final val BG_217 = "\u001b[48;5;217m"
+ private final val FG_218 = "\u001b[38;5;218m"
+ private final val BG_218 = "\u001b[48;5;218m"
+ private final val FG_219 = "\u001b[38;5;219m"
+ private final val BG_219 = "\u001b[48;5;219m"
+ private final val FG_220 = "\u001b[38;5;220m"
+ private final val BG_220 = "\u001b[48;5;220m"
+ private final val FG_221 = "\u001b[38;5;221m"
+ private final val BG_221 = "\u001b[48;5;221m"
+ private final val FG_222 = "\u001b[38;5;222m"
+ private final val BG_222 = "\u001b[48;5;222m"
+ private final val FG_223 = "\u001b[38;5;223m"
+ private final val BG_223 = "\u001b[48;5;223m"
+ private final val FG_224 = "\u001b[38;5;224m"
+ private final val BG_224 = "\u001b[48;5;224m"
+ private final val FG_225 = "\u001b[38;5;225m"
+ private final val BG_225 = "\u001b[48;5;225m"
+ private final val FG_226 = "\u001b[38;5;226m"
+ private final val BG_226 = "\u001b[48;5;226m"
+ private final val FG_227 = "\u001b[38;5;227m"
+ private final val BG_227 = "\u001b[48;5;227m"
+ private final val FG_228 = "\u001b[38;5;228m"
+ private final val BG_228 = "\u001b[48;5;228m"
+ private final val FG_229 = "\u001b[38;5;229m"
+ private final val BG_229 = "\u001b[48;5;229m"
+ private final val FG_230 = "\u001b[38;5;230m"
+ private final val BG_230 = "\u001b[48;5;230m"
+ private final val FG_231 = "\u001b[38;5;231m"
+ private final val BG_231 = "\u001b[48;5;231m"
+ private final val FG_232 = "\u001b[38;5;232m"
+ private final val BG_232 = "\u001b[48;5;232m"
+ private final val FG_233 = "\u001b[38;5;233m"
+ private final val BG_233 = "\u001b[48;5;233m"
+ private final val FG_234 = "\u001b[38;5;234m"
+ private final val BG_234 = "\u001b[48;5;234m"
+ private final val FG_235 = "\u001b[38;5;235m"
+ private final val BG_235 = "\u001b[48;5;235m"
+ private final val FG_236 = "\u001b[38;5;236m"
+ private final val BG_236 = "\u001b[48;5;236m"
+ private final val FG_237 = "\u001b[38;5;237m"
+ private final val BG_237 = "\u001b[48;5;237m"
+ private final val FG_238 = "\u001b[38;5;238m"
+ private final val BG_238 = "\u001b[48;5;238m"
+ private final val FG_239 = "\u001b[38;5;239m"
+ private final val BG_239 = "\u001b[48;5;239m"
+ private final val FG_240 = "\u001b[38;5;240m"
+ private final val BG_240 = "\u001b[48;5;240m"
+ private final val FG_241 = "\u001b[38;5;241m"
+ private final val BG_241 = "\u001b[48;5;241m"
+ private final val FG_242 = "\u001b[38;5;242m"
+ private final val BG_242 = "\u001b[48;5;242m"
+ private final val FG_243 = "\u001b[38;5;243m"
+ private final val BG_243 = "\u001b[48;5;243m"
+ private final val FG_244 = "\u001b[38;5;244m"
+ private final val BG_244 = "\u001b[48;5;244m"
+ private final val FG_245 = "\u001b[38;5;245m"
+ private final val BG_245 = "\u001b[48;5;245m"
+ private final val FG_246 = "\u001b[38;5;246m"
+ private final val BG_246 = "\u001b[48;5;246m"
+ private final val FG_247 = "\u001b[38;5;247m"
+ private final val BG_247 = "\u001b[48;5;247m"
+ private final val FG_248 = "\u001b[38;5;248m"
+ private final val BG_248 = "\u001b[48;5;248m"
+ private final val FG_249 = "\u001b[38;5;249m"
+ private final val BG_249 = "\u001b[48;5;249m"
+ private final val FG_250 = "\u001b[38;5;250m"
+ private final val BG_250 = "\u001b[48;5;250m"
+ private final val FG_251 = "\u001b[38;5;251m"
+ private final val BG_251 = "\u001b[48;5;251m"
+ private final val FG_252 = "\u001b[38;5;252m"
+ private final val BG_252 = "\u001b[48;5;252m"
+ private final val FG_253 = "\u001b[38;5;253m"
+ private final val BG_253 = "\u001b[48;5;253m"
+ private final val FG_254 = "\u001b[38;5;254m"
+ private final val BG_254 = "\u001b[48;5;254m"
+ private final val FG_255 = "\u001b[38;5;255m"
+ private final val BG_255 = "\u001b[48;5;255m"
+
+ def ansi256Fg(color: Int) = if (isEnabled) s"[38;5;${color}m" else ""
+ def ansi256Bg(color: Int) = if (isEnabled) s"[48;5;${color}m" else ""
+
+ def ansi1Fg: String = if (isEnabled) FG_1 else ""
+ def ansi1Bg: String = if (isEnabled) BG_1 else ""
+ def ansi2Fg: String = if (isEnabled) FG_2 else ""
+ def ansi2Bg: String = if (isEnabled) BG_2 else ""
+ def ansi3Fg: String = if (isEnabled) FG_3 else ""
+ def ansi3Bg: String = if (isEnabled) BG_3 else ""
+ def ansi4Fg: String = if (isEnabled) FG_4 else ""
+ def ansi4Bg: String = if (isEnabled) BG_4 else ""
+ def ansi5Fg: String = if (isEnabled) FG_5 else ""
+ def ansi5Bg: String = if (isEnabled) BG_5 else ""
+ def ansi6Fg: String = if (isEnabled) FG_6 else ""
+ def ansi6Bg: String = if (isEnabled) BG_6 else ""
+ def ansi7Fg: String = if (isEnabled) FG_7 else ""
+ def ansi7Bg: String = if (isEnabled) BG_7 else ""
+ def ansi8Fg: String = if (isEnabled) FG_8 else ""
+ def ansi8Bg: String = if (isEnabled) BG_8 else ""
+ def ansi9Fg: String = if (isEnabled) FG_9 else ""
+ def ansi9Bg: String = if (isEnabled) BG_9 else ""
+ def ansi10Fg: String = if (isEnabled) FG_10 else ""
+ def ansi10Bg: String = if (isEnabled) BG_10 else ""
+ def ansi11Fg: String = if (isEnabled) FG_11 else ""
+ def ansi11Bg: String = if (isEnabled) BG_11 else ""
+ def ansi12Fg: String = if (isEnabled) FG_12 else ""
+ def ansi12Bg: String = if (isEnabled) BG_12 else ""
+ def ansi13Fg: String = if (isEnabled) FG_13 else ""
+ def ansi13Bg: String = if (isEnabled) BG_13 else ""
+ def ansi14Fg: String = if (isEnabled) FG_14 else ""
+ def ansi14Bg: String = if (isEnabled) BG_14 else ""
+ def ansi15Fg: String = if (isEnabled) FG_15 else ""
+ def ansi15Bg: String = if (isEnabled) BG_15 else ""
+ def ansi16Fg: String = if (isEnabled) FG_16 else ""
+ def ansi16Bg: String = if (isEnabled) BG_16 else ""
+ def ansi17Fg: String = if (isEnabled) FG_17 else ""
+ def ansi17Bg: String = if (isEnabled) BG_17 else ""
+ def ansi18Fg: String = if (isEnabled) FG_18 else ""
+ def ansi18Bg: String = if (isEnabled) BG_18 else ""
+ def ansi19Fg: String = if (isEnabled) FG_19 else ""
+ def ansi19Bg: String = if (isEnabled) BG_19 else ""
+ def ansi20Fg: String = if (isEnabled) FG_20 else ""
+ def ansi20Bg: String = if (isEnabled) BG_20 else ""
+ def ansi21Fg: String = if (isEnabled) FG_21 else ""
+ def ansi21Bg: String = if (isEnabled) BG_21 else ""
+ def ansi22Fg: String = if (isEnabled) FG_22 else ""
+ def ansi22Bg: String = if (isEnabled) BG_22 else ""
+ def ansi23Fg: String = if (isEnabled) FG_23 else ""
+ def ansi23Bg: String = if (isEnabled) BG_23 else ""
+ def ansi24Fg: String = if (isEnabled) FG_24 else ""
+ def ansi24Bg: String = if (isEnabled) BG_24 else ""
+ def ansi25Fg: String = if (isEnabled) FG_25 else ""
+ def ansi25Bg: String = if (isEnabled) BG_25 else ""
+ def ansi26Fg: String = if (isEnabled) FG_26 else ""
+ def ansi26Bg: String = if (isEnabled) BG_26 else ""
+ def ansi27Fg: String = if (isEnabled) FG_27 else ""
+ def ansi27Bg: String = if (isEnabled) BG_27 else ""
+ def ansi28Fg: String = if (isEnabled) FG_28 else ""
+ def ansi28Bg: String = if (isEnabled) BG_28 else ""
+ def ansi29Fg: String = if (isEnabled) FG_29 else ""
+ def ansi29Bg: String = if (isEnabled) BG_29 else ""
+ def ansi30Fg: String = if (isEnabled) FG_30 else ""
+ def ansi30Bg: String = if (isEnabled) BG_30 else ""
+ def ansi31Fg: String = if (isEnabled) FG_31 else ""
+ def ansi31Bg: String = if (isEnabled) BG_31 else ""
+ def ansi32Fg: String = if (isEnabled) FG_32 else ""
+ def ansi32Bg: String = if (isEnabled) BG_32 else ""
+ def ansi33Fg: String = if (isEnabled) FG_33 else ""
+ def ansi33Bg: String = if (isEnabled) BG_33 else ""
+ def ansi34Fg: String = if (isEnabled) FG_34 else ""
+ def ansi34Bg: String = if (isEnabled) BG_34 else ""
+ def ansi35Fg: String = if (isEnabled) FG_35 else ""
+ def ansi35Bg: String = if (isEnabled) BG_35 else ""
+ def ansi36Fg: String = if (isEnabled) FG_36 else ""
+ def ansi36Bg: String = if (isEnabled) BG_36 else ""
+ def ansi37Fg: String = if (isEnabled) FG_37 else ""
+ def ansi37Bg: String = if (isEnabled) BG_37 else ""
+ def ansi38Fg: String = if (isEnabled) FG_38 else ""
+ def ansi38Bg: String = if (isEnabled) BG_38 else ""
+ def ansi39Fg: String = if (isEnabled) FG_39 else ""
+ def ansi39Bg: String = if (isEnabled) BG_39 else ""
+ def ansi40Fg: String = if (isEnabled) FG_40 else ""
+ def ansi40Bg: String = if (isEnabled) BG_40 else ""
+ def ansi41Fg: String = if (isEnabled) FG_41 else ""
+ def ansi41Bg: String = if (isEnabled) BG_41 else ""
+ def ansi42Fg: String = if (isEnabled) FG_42 else ""
+ def ansi42Bg: String = if (isEnabled) BG_42 else ""
+ def ansi43Fg: String = if (isEnabled) FG_43 else ""
+ def ansi43Bg: String = if (isEnabled) BG_43 else ""
+ def ansi44Fg: String = if (isEnabled) FG_44 else ""
+ def ansi44Bg: String = if (isEnabled) BG_44 else ""
+ def ansi45Fg: String = if (isEnabled) FG_45 else ""
+ def ansi45Bg: String = if (isEnabled) BG_45 else ""
+ def ansi46Fg: String = if (isEnabled) FG_46 else ""
+ def ansi46Bg: String = if (isEnabled) BG_46 else ""
+ def ansi47Fg: String = if (isEnabled) FG_47 else ""
+ def ansi47Bg: String = if (isEnabled) BG_47 else ""
+ def ansi48Fg: String = if (isEnabled) FG_48 else ""
+ def ansi48Bg: String = if (isEnabled) BG_48 else ""
+ def ansi49Fg: String = if (isEnabled) FG_49 else ""
+ def ansi49Bg: String = if (isEnabled) BG_49 else ""
+ def ansi50Fg: String = if (isEnabled) FG_50 else ""
+ def ansi50Bg: String = if (isEnabled) BG_50 else ""
+ def ansi51Fg: String = if (isEnabled) FG_51 else ""
+ def ansi51Bg: String = if (isEnabled) BG_51 else ""
+ def ansi52Fg: String = if (isEnabled) FG_52 else ""
+ def ansi52Bg: String = if (isEnabled) BG_52 else ""
+ def ansi53Fg: String = if (isEnabled) FG_53 else ""
+ def ansi53Bg: String = if (isEnabled) BG_53 else ""
+ def ansi54Fg: String = if (isEnabled) FG_54 else ""
+ def ansi54Bg: String = if (isEnabled) BG_54 else ""
+ def ansi55Fg: String = if (isEnabled) FG_55 else ""
+ def ansi55Bg: String = if (isEnabled) BG_55 else ""
+ def ansi56Fg: String = if (isEnabled) FG_56 else ""
+ def ansi56Bg: String = if (isEnabled) BG_56 else ""
+ def ansi57Fg: String = if (isEnabled) FG_57 else ""
+ def ansi57Bg: String = if (isEnabled) BG_57 else ""
+ def ansi58Fg: String = if (isEnabled) FG_58 else ""
+ def ansi58Bg: String = if (isEnabled) BG_58 else ""
+ def ansi59Fg: String = if (isEnabled) FG_59 else ""
+ def ansi59Bg: String = if (isEnabled) BG_59 else ""
+ def ansi60Fg: String = if (isEnabled) FG_60 else ""
+ def ansi60Bg: String = if (isEnabled) BG_60 else ""
+ def ansi61Fg: String = if (isEnabled) FG_61 else ""
+ def ansi61Bg: String = if (isEnabled) BG_61 else ""
+ def ansi62Fg: String = if (isEnabled) FG_62 else ""
+ def ansi62Bg: String = if (isEnabled) BG_62 else ""
+ def ansi63Fg: String = if (isEnabled) FG_63 else ""
+ def ansi63Bg: String = if (isEnabled) BG_63 else ""
+ def ansi64Fg: String = if (isEnabled) FG_64 else ""
+ def ansi64Bg: String = if (isEnabled) BG_64 else ""
+ def ansi65Fg: String = if (isEnabled) FG_65 else ""
+ def ansi65Bg: String = if (isEnabled) BG_65 else ""
+ def ansi66Fg: String = if (isEnabled) FG_66 else ""
+ def ansi66Bg: String = if (isEnabled) BG_66 else ""
+ def ansi67Fg: String = if (isEnabled) FG_67 else ""
+ def ansi67Bg: String = if (isEnabled) BG_67 else ""
+ def ansi68Fg: String = if (isEnabled) FG_68 else ""
+ def ansi68Bg: String = if (isEnabled) BG_68 else ""
+ def ansi69Fg: String = if (isEnabled) FG_69 else ""
+ def ansi69Bg: String = if (isEnabled) BG_69 else ""
+ def ansi70Fg: String = if (isEnabled) FG_70 else ""
+ def ansi70Bg: String = if (isEnabled) BG_70 else ""
+ def ansi71Fg: String = if (isEnabled) FG_71 else ""
+ def ansi71Bg: String = if (isEnabled) BG_71 else ""
+ def ansi72Fg: String = if (isEnabled) FG_72 else ""
+ def ansi72Bg: String = if (isEnabled) BG_72 else ""
+ def ansi73Fg: String = if (isEnabled) FG_73 else ""
+ def ansi73Bg: String = if (isEnabled) BG_73 else ""
+ def ansi74Fg: String = if (isEnabled) FG_74 else ""
+ def ansi74Bg: String = if (isEnabled) BG_74 else ""
+ def ansi75Fg: String = if (isEnabled) FG_75 else ""
+ def ansi75Bg: String = if (isEnabled) BG_75 else ""
+ def ansi76Fg: String = if (isEnabled) FG_76 else ""
+ def ansi76Bg: String = if (isEnabled) BG_76 else ""
+ def ansi77Fg: String = if (isEnabled) FG_77 else ""
+ def ansi77Bg: String = if (isEnabled) BG_77 else ""
+ def ansi78Fg: String = if (isEnabled) FG_78 else ""
+ def ansi78Bg: String = if (isEnabled) BG_78 else ""
+ def ansi79Fg: String = if (isEnabled) FG_79 else ""
+ def ansi79Bg: String = if (isEnabled) BG_79 else ""
+ def ansi80Fg: String = if (isEnabled) FG_80 else ""
+ def ansi80Bg: String = if (isEnabled) BG_80 else ""
+ def ansi81Fg: String = if (isEnabled) FG_81 else ""
+ def ansi81Bg: String = if (isEnabled) BG_81 else ""
+ def ansi82Fg: String = if (isEnabled) FG_82 else ""
+ def ansi82Bg: String = if (isEnabled) BG_82 else ""
+ def ansi83Fg: String = if (isEnabled) FG_83 else ""
+ def ansi83Bg: String = if (isEnabled) BG_83 else ""
+ def ansi84Fg: String = if (isEnabled) FG_84 else ""
+ def ansi84Bg: String = if (isEnabled) BG_84 else ""
+ def ansi85Fg: String = if (isEnabled) FG_85 else ""
+ def ansi85Bg: String = if (isEnabled) BG_85 else ""
+ def ansi86Fg: String = if (isEnabled) FG_86 else ""
+ def ansi86Bg: String = if (isEnabled) BG_86 else ""
+ def ansi87Fg: String = if (isEnabled) FG_87 else ""
+ def ansi87Bg: String = if (isEnabled) BG_87 else ""
+ def ansi88Fg: String = if (isEnabled) FG_88 else ""
+ def ansi88Bg: String = if (isEnabled) BG_88 else ""
+ def ansi89Fg: String = if (isEnabled) FG_89 else ""
+ def ansi89Bg: String = if (isEnabled) BG_89 else ""
+ def ansi90Fg: String = if (isEnabled) FG_90 else ""
+ def ansi90Bg: String = if (isEnabled) BG_90 else ""
+ def ansi91Fg: String = if (isEnabled) FG_91 else ""
+ def ansi91Bg: String = if (isEnabled) BG_91 else ""
+ def ansi92Fg: String = if (isEnabled) FG_92 else ""
+ def ansi92Bg: String = if (isEnabled) BG_92 else ""
+ def ansi93Fg: String = if (isEnabled) FG_93 else ""
+ def ansi93Bg: String = if (isEnabled) BG_93 else ""
+ def ansi94Fg: String = if (isEnabled) FG_94 else ""
+ def ansi94Bg: String = if (isEnabled) BG_94 else ""
+ def ansi95Fg: String = if (isEnabled) FG_95 else ""
+ def ansi95Bg: String = if (isEnabled) BG_95 else ""
+ def ansi96Fg: String = if (isEnabled) FG_96 else ""
+ def ansi96Bg: String = if (isEnabled) BG_96 else ""
+ def ansi97Fg: String = if (isEnabled) FG_97 else ""
+ def ansi97Bg: String = if (isEnabled) BG_97 else ""
+ def ansi98Fg: String = if (isEnabled) FG_98 else ""
+ def ansi98Bg: String = if (isEnabled) BG_98 else ""
+ def ansi99Fg: String = if (isEnabled) FG_99 else ""
+ def ansi99Bg: String = if (isEnabled) BG_99 else ""
+ def ansi100Fg: String = if (isEnabled) FG_100 else ""
+ def ansi100Bg: String = if (isEnabled) BG_100 else ""
+ def ansi101Fg: String = if (isEnabled) FG_101 else ""
+ def ansi101Bg: String = if (isEnabled) BG_101 else ""
+ def ansi102Fg: String = if (isEnabled) FG_102 else ""
+ def ansi102Bg: String = if (isEnabled) BG_102 else ""
+ def ansi103Fg: String = if (isEnabled) FG_103 else ""
+ def ansi103Bg: String = if (isEnabled) BG_103 else ""
+ def ansi104Fg: String = if (isEnabled) FG_104 else ""
+ def ansi104Bg: String = if (isEnabled) BG_104 else ""
+ def ansi105Fg: String = if (isEnabled) FG_105 else ""
+ def ansi105Bg: String = if (isEnabled) BG_105 else ""
+ def ansi106Fg: String = if (isEnabled) FG_106 else ""
+ def ansi106Bg: String = if (isEnabled) BG_106 else ""
+ def ansi107Fg: String = if (isEnabled) FG_107 else ""
+ def ansi107Bg: String = if (isEnabled) BG_107 else ""
+ def ansi108Fg: String = if (isEnabled) FG_108 else ""
+ def ansi108Bg: String = if (isEnabled) BG_108 else ""
+ def ansi109Fg: String = if (isEnabled) FG_109 else ""
+ def ansi109Bg: String = if (isEnabled) BG_109 else ""
+ def ansi110Fg: String = if (isEnabled) FG_110 else ""
+ def ansi110Bg: String = if (isEnabled) BG_110 else ""
+ def ansi111Fg: String = if (isEnabled) FG_111 else ""
+ def ansi111Bg: String = if (isEnabled) BG_111 else ""
+ def ansi112Fg: String = if (isEnabled) FG_112 else ""
+ def ansi112Bg: String = if (isEnabled) BG_112 else ""
+ def ansi113Fg: String = if (isEnabled) FG_113 else ""
+ def ansi113Bg: String = if (isEnabled) BG_113 else ""
+ def ansi114Fg: String = if (isEnabled) FG_114 else ""
+ def ansi114Bg: String = if (isEnabled) BG_114 else ""
+ def ansi115Fg: String = if (isEnabled) FG_115 else ""
+ def ansi115Bg: String = if (isEnabled) BG_115 else ""
+ def ansi116Fg: String = if (isEnabled) FG_116 else ""
+ def ansi116Bg: String = if (isEnabled) BG_116 else ""
+ def ansi117Fg: String = if (isEnabled) FG_117 else ""
+ def ansi117Bg: String = if (isEnabled) BG_117 else ""
+ def ansi118Fg: String = if (isEnabled) FG_118 else ""
+ def ansi118Bg: String = if (isEnabled) BG_118 else ""
+ def ansi119Fg: String = if (isEnabled) FG_119 else ""
+ def ansi119Bg: String = if (isEnabled) BG_119 else ""
+ def ansi120Fg: String = if (isEnabled) FG_120 else ""
+ def ansi120Bg: String = if (isEnabled) BG_120 else ""
+ def ansi121Fg: String = if (isEnabled) FG_121 else ""
+ def ansi121Bg: String = if (isEnabled) BG_121 else ""
+ def ansi122Fg: String = if (isEnabled) FG_122 else ""
+ def ansi122Bg: String = if (isEnabled) BG_122 else ""
+ def ansi123Fg: String = if (isEnabled) FG_123 else ""
+ def ansi123Bg: String = if (isEnabled) BG_123 else ""
+ def ansi124Fg: String = if (isEnabled) FG_124 else ""
+ def ansi124Bg: String = if (isEnabled) BG_124 else ""
+ def ansi125Fg: String = if (isEnabled) FG_125 else ""
+ def ansi125Bg: String = if (isEnabled) BG_125 else ""
+ def ansi126Fg: String = if (isEnabled) FG_126 else ""
+ def ansi126Bg: String = if (isEnabled) BG_126 else ""
+ def ansi127Fg: String = if (isEnabled) FG_127 else ""
+ def ansi127Bg: String = if (isEnabled) BG_127 else ""
+ def ansi128Fg: String = if (isEnabled) FG_128 else ""
+ def ansi128Bg: String = if (isEnabled) BG_128 else ""
+ def ansi129Fg: String = if (isEnabled) FG_129 else ""
+ def ansi129Bg: String = if (isEnabled) BG_129 else ""
+ def ansi130Fg: String = if (isEnabled) FG_130 else ""
+ def ansi130Bg: String = if (isEnabled) BG_130 else ""
+ def ansi131Fg: String = if (isEnabled) FG_131 else ""
+ def ansi131Bg: String = if (isEnabled) BG_131 else ""
+ def ansi132Fg: String = if (isEnabled) FG_132 else ""
+ def ansi132Bg: String = if (isEnabled) BG_132 else ""
+ def ansi133Fg: String = if (isEnabled) FG_133 else ""
+ def ansi133Bg: String = if (isEnabled) BG_133 else ""
+ def ansi134Fg: String = if (isEnabled) FG_134 else ""
+ def ansi134Bg: String = if (isEnabled) BG_134 else ""
+ def ansi135Fg: String = if (isEnabled) FG_135 else ""
+ def ansi135Bg: String = if (isEnabled) BG_135 else ""
+ def ansi136Fg: String = if (isEnabled) FG_136 else ""
+ def ansi136Bg: String = if (isEnabled) BG_136 else ""
+ def ansi137Fg: String = if (isEnabled) FG_137 else ""
+ def ansi137Bg: String = if (isEnabled) BG_137 else ""
+ def ansi138Fg: String = if (isEnabled) FG_138 else ""
+ def ansi138Bg: String = if (isEnabled) BG_138 else ""
+ def ansi139Fg: String = if (isEnabled) FG_139 else ""
+ def ansi139Bg: String = if (isEnabled) BG_139 else ""
+ def ansi140Fg: String = if (isEnabled) FG_140 else ""
+ def ansi140Bg: String = if (isEnabled) BG_140 else ""
+ def ansi141Fg: String = if (isEnabled) FG_141 else ""
+ def ansi141Bg: String = if (isEnabled) BG_141 else ""
+ def ansi142Fg: String = if (isEnabled) FG_142 else ""
+ def ansi142Bg: String = if (isEnabled) BG_142 else ""
+ def ansi143Fg: String = if (isEnabled) FG_143 else ""
+ def ansi143Bg: String = if (isEnabled) BG_143 else ""
+ def ansi144Fg: String = if (isEnabled) FG_144 else ""
+ def ansi144Bg: String = if (isEnabled) BG_144 else ""
+ def ansi145Fg: String = if (isEnabled) FG_145 else ""
+ def ansi145Bg: String = if (isEnabled) BG_145 else ""
+ def ansi146Fg: String = if (isEnabled) FG_146 else ""
+ def ansi146Bg: String = if (isEnabled) BG_146 else ""
+ def ansi147Fg: String = if (isEnabled) FG_147 else ""
+ def ansi147Bg: String = if (isEnabled) BG_147 else ""
+ def ansi148Fg: String = if (isEnabled) FG_148 else ""
+ def ansi148Bg: String = if (isEnabled) BG_148 else ""
+ def ansi149Fg: String = if (isEnabled) FG_149 else ""
+ def ansi149Bg: String = if (isEnabled) BG_149 else ""
+ def ansi150Fg: String = if (isEnabled) FG_150 else ""
+ def ansi150Bg: String = if (isEnabled) BG_150 else ""
+ def ansi151Fg: String = if (isEnabled) FG_151 else ""
+ def ansi151Bg: String = if (isEnabled) BG_151 else ""
+ def ansi152Fg: String = if (isEnabled) FG_152 else ""
+ def ansi152Bg: String = if (isEnabled) BG_152 else ""
+ def ansi153Fg: String = if (isEnabled) FG_153 else ""
+ def ansi153Bg: String = if (isEnabled) BG_153 else ""
+ def ansi154Fg: String = if (isEnabled) FG_154 else ""
+ def ansi154Bg: String = if (isEnabled) BG_154 else ""
+ def ansi155Fg: String = if (isEnabled) FG_155 else ""
+ def ansi155Bg: String = if (isEnabled) BG_155 else ""
+ def ansi156Fg: String = if (isEnabled) FG_156 else ""
+ def ansi156Bg: String = if (isEnabled) BG_156 else ""
+ def ansi157Fg: String = if (isEnabled) FG_157 else ""
+ def ansi157Bg: String = if (isEnabled) BG_157 else ""
+ def ansi158Fg: String = if (isEnabled) FG_158 else ""
+ def ansi158Bg: String = if (isEnabled) BG_158 else ""
+ def ansi159Fg: String = if (isEnabled) FG_159 else ""
+ def ansi159Bg: String = if (isEnabled) BG_159 else ""
+ def ansi160Fg: String = if (isEnabled) FG_160 else ""
+ def ansi160Bg: String = if (isEnabled) BG_160 else ""
+ def ansi161Fg: String = if (isEnabled) FG_161 else ""
+ def ansi161Bg: String = if (isEnabled) BG_161 else ""
+ def ansi162Fg: String = if (isEnabled) FG_162 else ""
+ def ansi162Bg: String = if (isEnabled) BG_162 else ""
+ def ansi163Fg: String = if (isEnabled) FG_163 else ""
+ def ansi163Bg: String = if (isEnabled) BG_163 else ""
+ def ansi164Fg: String = if (isEnabled) FG_164 else ""
+ def ansi164Bg: String = if (isEnabled) BG_164 else ""
+ def ansi165Fg: String = if (isEnabled) FG_165 else ""
+ def ansi165Bg: String = if (isEnabled) BG_165 else ""
+ def ansi166Fg: String = if (isEnabled) FG_166 else ""
+ def ansi166Bg: String = if (isEnabled) BG_166 else ""
+ def ansi167Fg: String = if (isEnabled) FG_167 else ""
+ def ansi167Bg: String = if (isEnabled) BG_167 else ""
+ def ansi168Fg: String = if (isEnabled) FG_168 else ""
+ def ansi168Bg: String = if (isEnabled) BG_168 else ""
+ def ansi169Fg: String = if (isEnabled) FG_169 else ""
+ def ansi169Bg: String = if (isEnabled) BG_169 else ""
+ def ansi170Fg: String = if (isEnabled) FG_170 else ""
+ def ansi170Bg: String = if (isEnabled) BG_170 else ""
+ def ansi171Fg: String = if (isEnabled) FG_171 else ""
+ def ansi171Bg: String = if (isEnabled) BG_171 else ""
+ def ansi172Fg: String = if (isEnabled) FG_172 else ""
+ def ansi172Bg: String = if (isEnabled) BG_172 else ""
+ def ansi173Fg: String = if (isEnabled) FG_173 else ""
+ def ansi173Bg: String = if (isEnabled) BG_173 else ""
+ def ansi174Fg: String = if (isEnabled) FG_174 else ""
+ def ansi174Bg: String = if (isEnabled) BG_174 else ""
+ def ansi175Fg: String = if (isEnabled) FG_175 else ""
+ def ansi175Bg: String = if (isEnabled) BG_175 else ""
+ def ansi176Fg: String = if (isEnabled) FG_176 else ""
+ def ansi176Bg: String = if (isEnabled) BG_176 else ""
+ def ansi177Fg: String = if (isEnabled) FG_177 else ""
+ def ansi177Bg: String = if (isEnabled) BG_177 else ""
+ def ansi178Fg: String = if (isEnabled) FG_178 else ""
+ def ansi178Bg: String = if (isEnabled) BG_178 else ""
+ def ansi179Fg: String = if (isEnabled) FG_179 else ""
+ def ansi179Bg: String = if (isEnabled) BG_179 else ""
+ def ansi180Fg: String = if (isEnabled) FG_180 else ""
+ def ansi180Bg: String = if (isEnabled) BG_180 else ""
+ def ansi181Fg: String = if (isEnabled) FG_181 else ""
+ def ansi181Bg: String = if (isEnabled) BG_181 else ""
+ def ansi182Fg: String = if (isEnabled) FG_182 else ""
+ def ansi182Bg: String = if (isEnabled) BG_182 else ""
+ def ansi183Fg: String = if (isEnabled) FG_183 else ""
+ def ansi183Bg: String = if (isEnabled) BG_183 else ""
+ def ansi184Fg: String = if (isEnabled) FG_184 else ""
+ def ansi184Bg: String = if (isEnabled) BG_184 else ""
+ def ansi185Fg: String = if (isEnabled) FG_185 else ""
+ def ansi185Bg: String = if (isEnabled) BG_185 else ""
+ def ansi186Fg: String = if (isEnabled) FG_186 else ""
+ def ansi186Bg: String = if (isEnabled) BG_186 else ""
+ def ansi187Fg: String = if (isEnabled) FG_187 else ""
+ def ansi187Bg: String = if (isEnabled) BG_187 else ""
+ def ansi188Fg: String = if (isEnabled) FG_188 else ""
+ def ansi188Bg: String = if (isEnabled) BG_188 else ""
+ def ansi189Fg: String = if (isEnabled) FG_189 else ""
+ def ansi189Bg: String = if (isEnabled) BG_189 else ""
+ def ansi190Fg: String = if (isEnabled) FG_190 else ""
+ def ansi190Bg: String = if (isEnabled) BG_190 else ""
+ def ansi191Fg: String = if (isEnabled) FG_191 else ""
+ def ansi191Bg: String = if (isEnabled) BG_191 else ""
+ def ansi192Fg: String = if (isEnabled) FG_192 else ""
+ def ansi192Bg: String = if (isEnabled) BG_192 else ""
+ def ansi193Fg: String = if (isEnabled) FG_193 else ""
+ def ansi193Bg: String = if (isEnabled) BG_193 else ""
+ def ansi194Fg: String = if (isEnabled) FG_194 else ""
+ def ansi194Bg: String = if (isEnabled) BG_194 else ""
+ def ansi195Fg: String = if (isEnabled) FG_195 else ""
+ def ansi195Bg: String = if (isEnabled) BG_195 else ""
+ def ansi196Fg: String = if (isEnabled) FG_196 else ""
+ def ansi196Bg: String = if (isEnabled) BG_196 else ""
+ def ansi197Fg: String = if (isEnabled) FG_197 else ""
+ def ansi197Bg: String = if (isEnabled) BG_197 else ""
+ def ansi198Fg: String = if (isEnabled) FG_198 else ""
+ def ansi198Bg: String = if (isEnabled) BG_198 else ""
+ def ansi199Fg: String = if (isEnabled) FG_199 else ""
+ def ansi199Bg: String = if (isEnabled) BG_199 else ""
+ def ansi200Fg: String = if (isEnabled) FG_200 else ""
+ def ansi200Bg: String = if (isEnabled) BG_200 else ""
+ def ansi201Fg: String = if (isEnabled) FG_201 else ""
+ def ansi201Bg: String = if (isEnabled) BG_201 else ""
+ def ansi202Fg: String = if (isEnabled) FG_202 else ""
+ def ansi202Bg: String = if (isEnabled) BG_202 else ""
+ def ansi203Fg: String = if (isEnabled) FG_203 else ""
+ def ansi203Bg: String = if (isEnabled) BG_203 else ""
+ def ansi204Fg: String = if (isEnabled) FG_204 else ""
+ def ansi204Bg: String = if (isEnabled) BG_204 else ""
+ def ansi205Fg: String = if (isEnabled) FG_205 else ""
+ def ansi205Bg: String = if (isEnabled) BG_205 else ""
+ def ansi206Fg: String = if (isEnabled) FG_206 else ""
+ def ansi206Bg: String = if (isEnabled) BG_206 else ""
+ def ansi207Fg: String = if (isEnabled) FG_207 else ""
+ def ansi207Bg: String = if (isEnabled) BG_207 else ""
+ def ansi208Fg: String = if (isEnabled) FG_208 else ""
+ def ansi208Bg: String = if (isEnabled) BG_208 else ""
+ def ansi209Fg: String = if (isEnabled) FG_209 else ""
+ def ansi209Bg: String = if (isEnabled) BG_209 else ""
+ def ansi210Fg: String = if (isEnabled) FG_210 else ""
+ def ansi210Bg: String = if (isEnabled) BG_210 else ""
+ def ansi211Fg: String = if (isEnabled) FG_211 else ""
+ def ansi211Bg: String = if (isEnabled) BG_211 else ""
+ def ansi212Fg: String = if (isEnabled) FG_212 else ""
+ def ansi212Bg: String = if (isEnabled) BG_212 else ""
+ def ansi213Fg: String = if (isEnabled) FG_213 else ""
+ def ansi213Bg: String = if (isEnabled) BG_213 else ""
+ def ansi214Fg: String = if (isEnabled) FG_214 else ""
+ def ansi214Bg: String = if (isEnabled) BG_214 else ""
+ def ansi215Fg: String = if (isEnabled) FG_215 else ""
+ def ansi215Bg: String = if (isEnabled) BG_215 else ""
+ def ansi216Fg: String = if (isEnabled) FG_216 else ""
+ def ansi216Bg: String = if (isEnabled) BG_216 else ""
+ def ansi217Fg: String = if (isEnabled) FG_217 else ""
+ def ansi217Bg: String = if (isEnabled) BG_217 else ""
+ def ansi218Fg: String = if (isEnabled) FG_218 else ""
+ def ansi218Bg: String = if (isEnabled) BG_218 else ""
+ def ansi219Fg: String = if (isEnabled) FG_219 else ""
+ def ansi219Bg: String = if (isEnabled) BG_219 else ""
+ def ansi220Fg: String = if (isEnabled) FG_220 else ""
+ def ansi220Bg: String = if (isEnabled) BG_220 else ""
+ def ansi221Fg: String = if (isEnabled) FG_221 else ""
+ def ansi221Bg: String = if (isEnabled) BG_221 else ""
+ def ansi222Fg: String = if (isEnabled) FG_222 else ""
+ def ansi222Bg: String = if (isEnabled) BG_222 else ""
+ def ansi223Fg: String = if (isEnabled) FG_223 else ""
+ def ansi223Bg: String = if (isEnabled) BG_223 else ""
+ def ansi224Fg: String = if (isEnabled) FG_224 else ""
+ def ansi224Bg: String = if (isEnabled) BG_224 else ""
+ def ansi225Fg: String = if (isEnabled) FG_225 else ""
+ def ansi225Bg: String = if (isEnabled) BG_225 else ""
+ def ansi226Fg: String = if (isEnabled) FG_226 else ""
+ def ansi226Bg: String = if (isEnabled) BG_226 else ""
+ def ansi227Fg: String = if (isEnabled) FG_227 else ""
+ def ansi227Bg: String = if (isEnabled) BG_227 else ""
+ def ansi228Fg: String = if (isEnabled) FG_228 else ""
+ def ansi228Bg: String = if (isEnabled) BG_228 else ""
+ def ansi229Fg: String = if (isEnabled) FG_229 else ""
+ def ansi229Bg: String = if (isEnabled) BG_229 else ""
+ def ansi230Fg: String = if (isEnabled) FG_230 else ""
+ def ansi230Bg: String = if (isEnabled) BG_230 else ""
+ def ansi231Fg: String = if (isEnabled) FG_231 else ""
+ def ansi231Bg: String = if (isEnabled) BG_231 else ""
+ def ansi232Fg: String = if (isEnabled) FG_232 else ""
+ def ansi232Bg: String = if (isEnabled) BG_232 else ""
+ def ansi233Fg: String = if (isEnabled) FG_233 else ""
+ def ansi233Bg: String = if (isEnabled) BG_233 else ""
+ def ansi234Fg: String = if (isEnabled) FG_234 else ""
+ def ansi234Bg: String = if (isEnabled) BG_234 else ""
+ def ansi235Fg: String = if (isEnabled) FG_235 else ""
+ def ansi235Bg: String = if (isEnabled) BG_235 else ""
+ def ansi236Fg: String = if (isEnabled) FG_236 else ""
+ def ansi236Bg: String = if (isEnabled) BG_236 else ""
+ def ansi237Fg: String = if (isEnabled) FG_237 else ""
+ def ansi237Bg: String = if (isEnabled) BG_237 else ""
+ def ansi238Fg: String = if (isEnabled) FG_238 else ""
+ def ansi238Bg: String = if (isEnabled) BG_238 else ""
+ def ansi239Fg: String = if (isEnabled) FG_239 else ""
+ def ansi239Bg: String = if (isEnabled) BG_239 else ""
+ def ansi240Fg: String = if (isEnabled) FG_240 else ""
+ def ansi240Bg: String = if (isEnabled) BG_240 else ""
+ def ansi241Fg: String = if (isEnabled) FG_241 else ""
+ def ansi241Bg: String = if (isEnabled) BG_241 else ""
+ def ansi242Fg: String = if (isEnabled) FG_242 else ""
+ def ansi242Bg: String = if (isEnabled) BG_242 else ""
+ def ansi243Fg: String = if (isEnabled) FG_243 else ""
+ def ansi243Bg: String = if (isEnabled) BG_243 else ""
+ def ansi244Fg: String = if (isEnabled) FG_244 else ""
+ def ansi244Bg: String = if (isEnabled) BG_244 else ""
+ def ansi245Fg: String = if (isEnabled) FG_245 else ""
+ def ansi245Bg: String = if (isEnabled) BG_245 else ""
+ def ansi246Fg: String = if (isEnabled) FG_246 else ""
+ def ansi246Bg: String = if (isEnabled) BG_246 else ""
+ def ansi247Fg: String = if (isEnabled) FG_247 else ""
+ def ansi247Bg: String = if (isEnabled) BG_247 else ""
+ def ansi248Fg: String = if (isEnabled) FG_248 else ""
+ def ansi248Bg: String = if (isEnabled) BG_248 else ""
+ def ansi249Fg: String = if (isEnabled) FG_249 else ""
+ def ansi249Bg: String = if (isEnabled) BG_249 else ""
+ def ansi250Fg: String = if (isEnabled) FG_250 else ""
+ def ansi250Bg: String = if (isEnabled) BG_250 else ""
+ def ansi251Fg: String = if (isEnabled) FG_251 else ""
+ def ansi251Bg: String = if (isEnabled) BG_251 else ""
+ def ansi252Fg: String = if (isEnabled) FG_252 else ""
+ def ansi252Bg: String = if (isEnabled) BG_252 else ""
+ def ansi253Fg: String = if (isEnabled) FG_253 else ""
+ def ansi253Bg: String = if (isEnabled) BG_253 else ""
+ def ansi254Fg: String = if (isEnabled) FG_254 else ""
+ def ansi254Bg: String = if (isEnabled) BG_254 else ""
+ def ansi255Fg: String = if (isEnabled) FG_255 else ""
+ def ansi255Bg: String = if (isEnabled) BG_255 else ""
+
+ def ansi1(s: Any): String = s"$ansi1Fg${s.toString}$ansiReset"
+ def ansi2(s: Any): String = s"$ansi2Fg${s.toString}$ansiReset"
+ def ansi3(s: Any): String = s"$ansi3Fg${s.toString}$ansiReset"
+ def ansi4(s: Any): String = s"$ansi4Fg${s.toString}$ansiReset"
+ def ansi5(s: Any): String = s"$ansi5Fg${s.toString}$ansiReset"
+ def ansi6(s: Any): String = s"$ansi6Fg${s.toString}$ansiReset"
+ def ansi7(s: Any): String = s"$ansi7Fg${s.toString}$ansiReset"
+ def ansi8(s: Any): String = s"$ansi8Fg${s.toString}$ansiReset"
+ def ansi9(s: Any): String = s"$ansi9Fg${s.toString}$ansiReset"
+ def ansi10(s: Any): String = s"$ansi10Fg${s.toString}$ansiReset"
+ def ansi11(s: Any): String = s"$ansi11Fg${s.toString}$ansiReset"
+ def ansi12(s: Any): String = s"$ansi12Fg${s.toString}$ansiReset"
+ def ansi13(s: Any): String = s"$ansi13Fg${s.toString}$ansiReset"
+ def ansi14(s: Any): String = s"$ansi14Fg${s.toString}$ansiReset"
+ def ansi15(s: Any): String = s"$ansi15Fg${s.toString}$ansiReset"
+ def ansi16(s: Any): String = s"$ansi16Fg${s.toString}$ansiReset"
+ def ansi17(s: Any): String = s"$ansi17Fg${s.toString}$ansiReset"
+ def ansi18(s: Any): String = s"$ansi18Fg${s.toString}$ansiReset"
+ def ansi19(s: Any): String = s"$ansi19Fg${s.toString}$ansiReset"
+ def ansi20(s: Any): String = s"$ansi20Fg${s.toString}$ansiReset"
+ def ansi21(s: Any): String = s"$ansi21Fg${s.toString}$ansiReset"
+ def ansi22(s: Any): String = s"$ansi22Fg${s.toString}$ansiReset"
+ def ansi23(s: Any): String = s"$ansi23Fg${s.toString}$ansiReset"
+ def ansi24(s: Any): String = s"$ansi24Fg${s.toString}$ansiReset"
+ def ansi25(s: Any): String = s"$ansi25Fg${s.toString}$ansiReset"
+ def ansi26(s: Any): String = s"$ansi26Fg${s.toString}$ansiReset"
+ def ansi27(s: Any): String = s"$ansi27Fg${s.toString}$ansiReset"
+ def ansi28(s: Any): String = s"$ansi28Fg${s.toString}$ansiReset"
+ def ansi29(s: Any): String = s"$ansi29Fg${s.toString}$ansiReset"
+ def ansi30(s: Any): String = s"$ansi30Fg${s.toString}$ansiReset"
+ def ansi31(s: Any): String = s"$ansi31Fg${s.toString}$ansiReset"
+ def ansi32(s: Any): String = s"$ansi32Fg${s.toString}$ansiReset"
+ def ansi33(s: Any): String = s"$ansi33Fg${s.toString}$ansiReset"
+ def ansi34(s: Any): String = s"$ansi34Fg${s.toString}$ansiReset"
+ def ansi35(s: Any): String = s"$ansi35Fg${s.toString}$ansiReset"
+ def ansi36(s: Any): String = s"$ansi36Fg${s.toString}$ansiReset"
+ def ansi37(s: Any): String = s"$ansi37Fg${s.toString}$ansiReset"
+ def ansi38(s: Any): String = s"$ansi38Fg${s.toString}$ansiReset"
+ def ansi39(s: Any): String = s"$ansi39Fg${s.toString}$ansiReset"
+ def ansi40(s: Any): String = s"$ansi40Fg${s.toString}$ansiReset"
+ def ansi41(s: Any): String = s"$ansi41Fg${s.toString}$ansiReset"
+ def ansi42(s: Any): String = s"$ansi42Fg${s.toString}$ansiReset"
+ def ansi43(s: Any): String = s"$ansi43Fg${s.toString}$ansiReset"
+ def ansi44(s: Any): String = s"$ansi44Fg${s.toString}$ansiReset"
+ def ansi45(s: Any): String = s"$ansi45Fg${s.toString}$ansiReset"
+ def ansi46(s: Any): String = s"$ansi46Fg${s.toString}$ansiReset"
+ def ansi47(s: Any): String = s"$ansi47Fg${s.toString}$ansiReset"
+ def ansi48(s: Any): String = s"$ansi48Fg${s.toString}$ansiReset"
+ def ansi49(s: Any): String = s"$ansi49Fg${s.toString}$ansiReset"
+ def ansi50(s: Any): String = s"$ansi50Fg${s.toString}$ansiReset"
+ def ansi51(s: Any): String = s"$ansi51Fg${s.toString}$ansiReset"
+ def ansi52(s: Any): String = s"$ansi52Fg${s.toString}$ansiReset"
+ def ansi53(s: Any): String = s"$ansi53Fg${s.toString}$ansiReset"
+ def ansi54(s: Any): String = s"$ansi54Fg${s.toString}$ansiReset"
+ def ansi55(s: Any): String = s"$ansi55Fg${s.toString}$ansiReset"
+ def ansi56(s: Any): String = s"$ansi56Fg${s.toString}$ansiReset"
+ def ansi57(s: Any): String = s"$ansi57Fg${s.toString}$ansiReset"
+ def ansi58(s: Any): String = s"$ansi58Fg${s.toString}$ansiReset"
+ def ansi59(s: Any): String = s"$ansi59Fg${s.toString}$ansiReset"
+ def ansi60(s: Any): String = s"$ansi60Fg${s.toString}$ansiReset"
+ def ansi61(s: Any): String = s"$ansi61Fg${s.toString}$ansiReset"
+ def ansi62(s: Any): String = s"$ansi62Fg${s.toString}$ansiReset"
+ def ansi63(s: Any): String = s"$ansi63Fg${s.toString}$ansiReset"
+ def ansi64(s: Any): String = s"$ansi64Fg${s.toString}$ansiReset"
+ def ansi65(s: Any): String = s"$ansi65Fg${s.toString}$ansiReset"
+ def ansi66(s: Any): String = s"$ansi66Fg${s.toString}$ansiReset"
+ def ansi67(s: Any): String = s"$ansi67Fg${s.toString}$ansiReset"
+ def ansi68(s: Any): String = s"$ansi68Fg${s.toString}$ansiReset"
+ def ansi69(s: Any): String = s"$ansi69Fg${s.toString}$ansiReset"
+ def ansi70(s: Any): String = s"$ansi70Fg${s.toString}$ansiReset"
+ def ansi71(s: Any): String = s"$ansi71Fg${s.toString}$ansiReset"
+ def ansi72(s: Any): String = s"$ansi72Fg${s.toString}$ansiReset"
+ def ansi73(s: Any): String = s"$ansi73Fg${s.toString}$ansiReset"
+ def ansi74(s: Any): String = s"$ansi74Fg${s.toString}$ansiReset"
+ def ansi75(s: Any): String = s"$ansi75Fg${s.toString}$ansiReset"
+ def ansi76(s: Any): String = s"$ansi76Fg${s.toString}$ansiReset"
+ def ansi77(s: Any): String = s"$ansi77Fg${s.toString}$ansiReset"
+ def ansi78(s: Any): String = s"$ansi78Fg${s.toString}$ansiReset"
+ def ansi79(s: Any): String = s"$ansi79Fg${s.toString}$ansiReset"
+ def ansi80(s: Any): String = s"$ansi80Fg${s.toString}$ansiReset"
+ def ansi81(s: Any): String = s"$ansi81Fg${s.toString}$ansiReset"
+ def ansi82(s: Any): String = s"$ansi82Fg${s.toString}$ansiReset"
+ def ansi83(s: Any): String = s"$ansi83Fg${s.toString}$ansiReset"
+ def ansi84(s: Any): String = s"$ansi84Fg${s.toString}$ansiReset"
+ def ansi85(s: Any): String = s"$ansi85Fg${s.toString}$ansiReset"
+ def ansi86(s: Any): String = s"$ansi86Fg${s.toString}$ansiReset"
+ def ansi87(s: Any): String = s"$ansi87Fg${s.toString}$ansiReset"
+ def ansi88(s: Any): String = s"$ansi88Fg${s.toString}$ansiReset"
+ def ansi89(s: Any): String = s"$ansi89Fg${s.toString}$ansiReset"
+ def ansi90(s: Any): String = s"$ansi90Fg${s.toString}$ansiReset"
+ def ansi91(s: Any): String = s"$ansi91Fg${s.toString}$ansiReset"
+ def ansi92(s: Any): String = s"$ansi92Fg${s.toString}$ansiReset"
+ def ansi93(s: Any): String = s"$ansi93Fg${s.toString}$ansiReset"
+ def ansi94(s: Any): String = s"$ansi94Fg${s.toString}$ansiReset"
+ def ansi95(s: Any): String = s"$ansi95Fg${s.toString}$ansiReset"
+ def ansi96(s: Any): String = s"$ansi96Fg${s.toString}$ansiReset"
+ def ansi97(s: Any): String = s"$ansi97Fg${s.toString}$ansiReset"
+ def ansi98(s: Any): String = s"$ansi98Fg${s.toString}$ansiReset"
+ def ansi99(s: Any): String = s"$ansi99Fg${s.toString}$ansiReset"
+ def ansi100(s: Any): String = s"$ansi100Fg${s.toString}$ansiReset"
+ def ansi101(s: Any): String = s"$ansi101Fg${s.toString}$ansiReset"
+ def ansi102(s: Any): String = s"$ansi102Fg${s.toString}$ansiReset"
+ def ansi103(s: Any): String = s"$ansi103Fg${s.toString}$ansiReset"
+ def ansi104(s: Any): String = s"$ansi104Fg${s.toString}$ansiReset"
+ def ansi105(s: Any): String = s"$ansi105Fg${s.toString}$ansiReset"
+ def ansi106(s: Any): String = s"$ansi106Fg${s.toString}$ansiReset"
+ def ansi107(s: Any): String = s"$ansi107Fg${s.toString}$ansiReset"
+ def ansi108(s: Any): String = s"$ansi108Fg${s.toString}$ansiReset"
+ def ansi109(s: Any): String = s"$ansi109Fg${s.toString}$ansiReset"
+ def ansi110(s: Any): String = s"$ansi110Fg${s.toString}$ansiReset"
+ def ansi111(s: Any): String = s"$ansi111Fg${s.toString}$ansiReset"
+ def ansi112(s: Any): String = s"$ansi112Fg${s.toString}$ansiReset"
+ def ansi113(s: Any): String = s"$ansi113Fg${s.toString}$ansiReset"
+ def ansi114(s: Any): String = s"$ansi114Fg${s.toString}$ansiReset"
+ def ansi115(s: Any): String = s"$ansi115Fg${s.toString}$ansiReset"
+ def ansi116(s: Any): String = s"$ansi116Fg${s.toString}$ansiReset"
+ def ansi117(s: Any): String = s"$ansi117Fg${s.toString}$ansiReset"
+ def ansi118(s: Any): String = s"$ansi118Fg${s.toString}$ansiReset"
+ def ansi119(s: Any): String = s"$ansi119Fg${s.toString}$ansiReset"
+ def ansi120(s: Any): String = s"$ansi120Fg${s.toString}$ansiReset"
+ def ansi121(s: Any): String = s"$ansi121Fg${s.toString}$ansiReset"
+ def ansi122(s: Any): String = s"$ansi122Fg${s.toString}$ansiReset"
+ def ansi123(s: Any): String = s"$ansi123Fg${s.toString}$ansiReset"
+ def ansi124(s: Any): String = s"$ansi124Fg${s.toString}$ansiReset"
+ def ansi125(s: Any): String = s"$ansi125Fg${s.toString}$ansiReset"
+ def ansi126(s: Any): String = s"$ansi126Fg${s.toString}$ansiReset"
+ def ansi127(s: Any): String = s"$ansi127Fg${s.toString}$ansiReset"
+ def ansi128(s: Any): String = s"$ansi128Fg${s.toString}$ansiReset"
+ def ansi129(s: Any): String = s"$ansi129Fg${s.toString}$ansiReset"
+ def ansi130(s: Any): String = s"$ansi130Fg${s.toString}$ansiReset"
+ def ansi131(s: Any): String = s"$ansi131Fg${s.toString}$ansiReset"
+ def ansi132(s: Any): String = s"$ansi132Fg${s.toString}$ansiReset"
+ def ansi133(s: Any): String = s"$ansi133Fg${s.toString}$ansiReset"
+ def ansi134(s: Any): String = s"$ansi134Fg${s.toString}$ansiReset"
+ def ansi135(s: Any): String = s"$ansi135Fg${s.toString}$ansiReset"
+ def ansi136(s: Any): String = s"$ansi136Fg${s.toString}$ansiReset"
+ def ansi137(s: Any): String = s"$ansi137Fg${s.toString}$ansiReset"
+ def ansi138(s: Any): String = s"$ansi138Fg${s.toString}$ansiReset"
+ def ansi139(s: Any): String = s"$ansi139Fg${s.toString}$ansiReset"
+ def ansi140(s: Any): String = s"$ansi140Fg${s.toString}$ansiReset"
+ def ansi141(s: Any): String = s"$ansi141Fg${s.toString}$ansiReset"
+ def ansi142(s: Any): String = s"$ansi142Fg${s.toString}$ansiReset"
+ def ansi143(s: Any): String = s"$ansi143Fg${s.toString}$ansiReset"
+ def ansi144(s: Any): String = s"$ansi144Fg${s.toString}$ansiReset"
+ def ansi145(s: Any): String = s"$ansi145Fg${s.toString}$ansiReset"
+ def ansi146(s: Any): String = s"$ansi146Fg${s.toString}$ansiReset"
+ def ansi147(s: Any): String = s"$ansi147Fg${s.toString}$ansiReset"
+ def ansi148(s: Any): String = s"$ansi148Fg${s.toString}$ansiReset"
+ def ansi149(s: Any): String = s"$ansi149Fg${s.toString}$ansiReset"
+ def ansi150(s: Any): String = s"$ansi150Fg${s.toString}$ansiReset"
+ def ansi151(s: Any): String = s"$ansi151Fg${s.toString}$ansiReset"
+ def ansi152(s: Any): String = s"$ansi152Fg${s.toString}$ansiReset"
+ def ansi153(s: Any): String = s"$ansi153Fg${s.toString}$ansiReset"
+ def ansi154(s: Any): String = s"$ansi154Fg${s.toString}$ansiReset"
+ def ansi155(s: Any): String = s"$ansi155Fg${s.toString}$ansiReset"
+ def ansi156(s: Any): String = s"$ansi156Fg${s.toString}$ansiReset"
+ def ansi157(s: Any): String = s"$ansi157Fg${s.toString}$ansiReset"
+ def ansi158(s: Any): String = s"$ansi158Fg${s.toString}$ansiReset"
+ def ansi159(s: Any): String = s"$ansi159Fg${s.toString}$ansiReset"
+ def ansi160(s: Any): String = s"$ansi160Fg${s.toString}$ansiReset"
+ def ansi161(s: Any): String = s"$ansi161Fg${s.toString}$ansiReset"
+ def ansi162(s: Any): String = s"$ansi162Fg${s.toString}$ansiReset"
+ def ansi163(s: Any): String = s"$ansi163Fg${s.toString}$ansiReset"
+ def ansi164(s: Any): String = s"$ansi164Fg${s.toString}$ansiReset"
+ def ansi165(s: Any): String = s"$ansi165Fg${s.toString}$ansiReset"
+ def ansi166(s: Any): String = s"$ansi166Fg${s.toString}$ansiReset"
+ def ansi167(s: Any): String = s"$ansi167Fg${s.toString}$ansiReset"
+ def ansi168(s: Any): String = s"$ansi168Fg${s.toString}$ansiReset"
+ def ansi169(s: Any): String = s"$ansi169Fg${s.toString}$ansiReset"
+ def ansi170(s: Any): String = s"$ansi170Fg${s.toString}$ansiReset"
+ def ansi171(s: Any): String = s"$ansi171Fg${s.toString}$ansiReset"
+ def ansi172(s: Any): String = s"$ansi172Fg${s.toString}$ansiReset"
+ def ansi173(s: Any): String = s"$ansi173Fg${s.toString}$ansiReset"
+ def ansi174(s: Any): String = s"$ansi174Fg${s.toString}$ansiReset"
+ def ansi175(s: Any): String = s"$ansi175Fg${s.toString}$ansiReset"
+ def ansi176(s: Any): String = s"$ansi176Fg${s.toString}$ansiReset"
+ def ansi177(s: Any): String = s"$ansi177Fg${s.toString}$ansiReset"
+ def ansi178(s: Any): String = s"$ansi178Fg${s.toString}$ansiReset"
+ def ansi179(s: Any): String = s"$ansi179Fg${s.toString}$ansiReset"
+ def ansi180(s: Any): String = s"$ansi180Fg${s.toString}$ansiReset"
+ def ansi181(s: Any): String = s"$ansi181Fg${s.toString}$ansiReset"
+ def ansi182(s: Any): String = s"$ansi182Fg${s.toString}$ansiReset"
+ def ansi183(s: Any): String = s"$ansi183Fg${s.toString}$ansiReset"
+ def ansi184(s: Any): String = s"$ansi184Fg${s.toString}$ansiReset"
+ def ansi185(s: Any): String = s"$ansi185Fg${s.toString}$ansiReset"
+ def ansi186(s: Any): String = s"$ansi186Fg${s.toString}$ansiReset"
+ def ansi187(s: Any): String = s"$ansi187Fg${s.toString}$ansiReset"
+ def ansi188(s: Any): String = s"$ansi188Fg${s.toString}$ansiReset"
+ def ansi189(s: Any): String = s"$ansi189Fg${s.toString}$ansiReset"
+ def ansi190(s: Any): String = s"$ansi190Fg${s.toString}$ansiReset"
+ def ansi191(s: Any): String = s"$ansi191Fg${s.toString}$ansiReset"
+ def ansi192(s: Any): String = s"$ansi192Fg${s.toString}$ansiReset"
+ def ansi193(s: Any): String = s"$ansi193Fg${s.toString}$ansiReset"
+ def ansi194(s: Any): String = s"$ansi194Fg${s.toString}$ansiReset"
+ def ansi195(s: Any): String = s"$ansi195Fg${s.toString}$ansiReset"
+ def ansi196(s: Any): String = s"$ansi196Fg${s.toString}$ansiReset"
+ def ansi197(s: Any): String = s"$ansi197Fg${s.toString}$ansiReset"
+ def ansi198(s: Any): String = s"$ansi198Fg${s.toString}$ansiReset"
+ def ansi199(s: Any): String = s"$ansi199Fg${s.toString}$ansiReset"
+ def ansi200(s: Any): String = s"$ansi200Fg${s.toString}$ansiReset"
+ def ansi201(s: Any): String = s"$ansi201Fg${s.toString}$ansiReset"
+ def ansi202(s: Any): String = s"$ansi202Fg${s.toString}$ansiReset"
+ def ansi203(s: Any): String = s"$ansi203Fg${s.toString}$ansiReset"
+ def ansi204(s: Any): String = s"$ansi204Fg${s.toString}$ansiReset"
+ def ansi205(s: Any): String = s"$ansi205Fg${s.toString}$ansiReset"
+ def ansi206(s: Any): String = s"$ansi206Fg${s.toString}$ansiReset"
+ def ansi207(s: Any): String = s"$ansi207Fg${s.toString}$ansiReset"
+ def ansi208(s: Any): String = s"$ansi208Fg${s.toString}$ansiReset"
+ def ansi209(s: Any): String = s"$ansi209Fg${s.toString}$ansiReset"
+ def ansi210(s: Any): String = s"$ansi210Fg${s.toString}$ansiReset"
+ def ansi211(s: Any): String = s"$ansi211Fg${s.toString}$ansiReset"
+ def ansi212(s: Any): String = s"$ansi212Fg${s.toString}$ansiReset"
+ def ansi213(s: Any): String = s"$ansi213Fg${s.toString}$ansiReset"
+ def ansi214(s: Any): String = s"$ansi214Fg${s.toString}$ansiReset"
+ def ansi215(s: Any): String = s"$ansi215Fg${s.toString}$ansiReset"
+ def ansi216(s: Any): String = s"$ansi216Fg${s.toString}$ansiReset"
+ def ansi217(s: Any): String = s"$ansi217Fg${s.toString}$ansiReset"
+ def ansi218(s: Any): String = s"$ansi218Fg${s.toString}$ansiReset"
+ def ansi219(s: Any): String = s"$ansi219Fg${s.toString}$ansiReset"
+ def ansi220(s: Any): String = s"$ansi220Fg${s.toString}$ansiReset"
+ def ansi221(s: Any): String = s"$ansi221Fg${s.toString}$ansiReset"
+ def ansi222(s: Any): String = s"$ansi222Fg${s.toString}$ansiReset"
+ def ansi223(s: Any): String = s"$ansi223Fg${s.toString}$ansiReset"
+ def ansi224(s: Any): String = s"$ansi224Fg${s.toString}$ansiReset"
+ def ansi225(s: Any): String = s"$ansi225Fg${s.toString}$ansiReset"
+ def ansi226(s: Any): String = s"$ansi226Fg${s.toString}$ansiReset"
+ def ansi227(s: Any): String = s"$ansi227Fg${s.toString}$ansiReset"
+ def ansi228(s: Any): String = s"$ansi228Fg${s.toString}$ansiReset"
+ def ansi229(s: Any): String = s"$ansi229Fg${s.toString}$ansiReset"
+ def ansi230(s: Any): String = s"$ansi230Fg${s.toString}$ansiReset"
+ def ansi231(s: Any): String = s"$ansi231Fg${s.toString}$ansiReset"
+ def ansi232(s: Any): String = s"$ansi232Fg${s.toString}$ansiReset"
+ def ansi233(s: Any): String = s"$ansi233Fg${s.toString}$ansiReset"
+ def ansi234(s: Any): String = s"$ansi234Fg${s.toString}$ansiReset"
+ def ansi235(s: Any): String = s"$ansi235Fg${s.toString}$ansiReset"
+ def ansi236(s: Any): String = s"$ansi236Fg${s.toString}$ansiReset"
+ def ansi237(s: Any): String = s"$ansi237Fg${s.toString}$ansiReset"
+ def ansi238(s: Any): String = s"$ansi238Fg${s.toString}$ansiReset"
+ def ansi239(s: Any): String = s"$ansi239Fg${s.toString}$ansiReset"
+ def ansi240(s: Any): String = s"$ansi240Fg${s.toString}$ansiReset"
+ def ansi241(s: Any): String = s"$ansi241Fg${s.toString}$ansiReset"
+ def ansi242(s: Any): String = s"$ansi242Fg${s.toString}$ansiReset"
+ def ansi243(s: Any): String = s"$ansi243Fg${s.toString}$ansiReset"
+ def ansi244(s: Any): String = s"$ansi244Fg${s.toString}$ansiReset"
+ def ansi245(s: Any): String = s"$ansi245Fg${s.toString}$ansiReset"
+ def ansi246(s: Any): String = s"$ansi246Fg${s.toString}$ansiReset"
+ def ansi247(s: Any): String = s"$ansi247Fg${s.toString}$ansiReset"
+ def ansi248(s: Any): String = s"$ansi248Fg${s.toString}$ansiReset"
+ def ansi249(s: Any): String = s"$ansi249Fg${s.toString}$ansiReset"
+ def ansi250(s: Any): String = s"$ansi250Fg${s.toString}$ansiReset"
+ def ansi251(s: Any): String = s"$ansi251Fg${s.toString}$ansiReset"
+ def ansi252(s: Any): String = s"$ansi252Fg${s.toString}$ansiReset"
+ def ansi253(s: Any): String = s"$ansi253Fg${s.toString}$ansiReset"
+ def ansi254(s: Any): String = s"$ansi254Fg${s.toString}$ansiReset"
+ def ansi255(s: Any): String = s"$ansi255Fg${s.toString}$ansiReset"
+
+ def ansi256Fg(fgColor: Int, s: Any): String =
s"${ansi256Fg(fgColor)}${s.toString}$ansiReset"
+ def ansi256(fgColor: Int, bgColor: Int, s: Any): String =
s"${ansi256Fg(fgColor)}${ansi256Bg(bgColor)}${s.toString}$ansiReset"
+
+ // Effects.
private final val BOLD = "\u001b[1m"
private final val UNDERLINED = "\u001b[4m"
private final val BLINK = "\u001b[5m"
@@ -90,6 +1404,8 @@ sealed trait NCAnsi extends LazyLogging {
def ansiCyanBg: String = if (isEnabled) CYAN_B else ""
def ansiWhiteFg: String = if (isEnabled) WHITE else ""
def ansiWhiteBg: String = if (isEnabled) WHITE_B else ""
+
+ // Effect functions.
def ansiBold: String = if (isEnabled) BOLD else ""
def ansiUnderlined: String = if (isEnabled) UNDERLINED else ""
def ansiReset: String = if (isEnabled) RESET else ""
@@ -146,7 +1462,7 @@ object NCAnsi extends NCAnsi {
def ackStatus(): Unit =
if (isEnabled)
logger.info(
- s"${U.bgRainbow("ANSI coloring")} ${U.fgRainbow("is
enabled")}. " +
+ s"${U.bgRainbow4Bit("ANSI coloring")} ${U.fgRainbow4Bit("is
enabled")}. " +
s"Use
'-D${ansiCyanFg}NLPCRAFT_ANSI_COLOR_DISABLED$ansiReset=true' to disable it."
)
}
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
index 68ad051..a2d8336 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
@@ -109,12 +109,12 @@ class NCAsciiTable {
)
// Table drawing symbols.
- private val HDR_HOR = c("=")
- private val HDR_VER = c("|")
- private val HDR_CRS = r("+")
- private val ROW_HOR = c("-")
- private val ROW_VER = c("|")
- private val ROW_CRS = r("+")
+ private val HDR_HOR = ansi256Fg(75, "=")
+ private val HDR_VER = ansi256Fg(75, "|")
+ private val HDR_CRS = ansi256Fg(99, "+")
+ private val ROW_HOR = ansi256Fg(39, "-")
+ private val ROW_VER = ansi256Fg(67, "|")
+ private val ROW_CRS = ansi256Fg(202, "+")
// Headers & rows.
private var hdr = IndexedSeq.empty[Cell]
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/package.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/package.scala
index d56e2cb..b2f1121 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/package.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/package.scala
@@ -61,14 +61,15 @@ package object common {
def BB: String = ansiBlueBg
def KB: String = ansiBlackBg
def RST: String = ansiReset
- def g(s: Any): String = s"$G${s.toString}$RST"
- def m(s: Any): String = s"$M${s.toString}$RST"
- def r(s: Any): String = s"$R${s.toString}$RST"
+ def g(s: Any): String = s"${ansi256Fg(34)}${s.toString}$RST"
+ def m(s: Any): String = s"${ansi256Fg(177)}${s.toString}$RST"
+ def r(s: Any): String = s"${ansi256Fg(202)}${s.toString}$RST"
def c(s: Any): String = s"$C${s.toString}$RST"
def y(s: Any): String = s"$Y${s.toString}$RST"
def w(s: Any): String = s"$W${s.toString}$RST"
def b(s: Any): String = s"$B${s.toString}$RST"
def k(s: Any): String = s"$K${s.toString}$RST"
+
def green(s: Any): String = s"$G${s.toString}$RST"
def magenta(s: Any): String = s"$M${s.toString}$RST"
def red(s: Any): String = s"$R${s.toString}$RST"
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
index a1c8f97..e2a74a2 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
@@ -83,7 +83,11 @@ object NCUtils extends LazyLogging {
private final val DISABLE_GA_PROP = "NLPCRAFT_DISABLE_GA"
- private lazy val ANSI_FG_COLORS = Seq(
+ private lazy val ANSI_FG_8BIT_COLORS = for (i <- 1 to 255) yield
ansi256Fg(i)
+
+ private lazy val ANSI_BG_8BIT_COLORS = for (i <- 1 to 255) yield
ansi256Bg(i)
+
+ private lazy val ANSI_FG_4BIT_COLORS = Seq(
ansiRedFg,
ansiGreenFg,
ansiBlueFg,
@@ -92,7 +96,7 @@ object NCUtils extends LazyLogging {
ansiBlackFg,
ansiCyanFg
)
- private lazy val ANSI_BG_COLORS = Seq(
+ private lazy val ANSI_BG_4BIT_COLORS = Seq(
ansiRedBg,
ansiGreenBg,
ansiBlueBg,
@@ -101,7 +105,7 @@ object NCUtils extends LazyLogging {
ansiBlackBg,
ansiCyanBg
)
- private lazy val ANSI_COLORS = for (fg <- ANSI_FG_COLORS; bg <-
ANSI_BG_COLORS) yield s"$fg$bg"
+ private lazy val ANSI_4BIT_COLORS = for (fg <- ANSI_FG_4BIT_COLORS; bg <-
ANSI_BG_4BIT_COLORS) yield s"$fg$bg"
// Various decimal formats.
private final val DEC_FMT0 = mkDecimalFormat("#0")
@@ -1566,9 +1570,9 @@ object NCUtils extends LazyLogging {
}
/**
- * Prints ASCII-logo.
+ * Prints 4-bit ASCII-logo.
*/
- def asciiLogo(): String =
+ def asciiLogo4Bit(): String =
raw"$ansiBlueFg _ ____ $ansiCyanFg ______ ______
$ansiReset$NL" +
raw"$ansiBlueFg / | / / /___ $ansiCyanFg/ ____/________ _/ __/ /_
$ansiReset$NL" +
raw"$ansiBlueFg / |/ / / __ \$ansiCyanFg/ / / ___/ __ `/ /_/ __/
$ansiReset$NL" +
@@ -1577,25 +1581,95 @@ object NCUtils extends LazyLogging {
raw"$ansiBold$ansiRedFg /_/
$ansiReset$NL"
/**
+ * Prints 8-bit ASCII-logo.
+ */
+ def asciiLogo8Bit1(): String =
+ U.fgRainbow4Bit(
+ raw"$ansi28Fg _ ____ ______ ______
$ansiReset$NL" +
+ raw"$ansi64Fg / | / / /___ / ____/________ _/ __/ /_
$ansiReset$NL" +
+ raw"$ansi100Fg / |/ / / __ \/ / / ___/ __ `/ /_/ __/
$ansiReset$NL" +
+ raw"$ansi136Fg / /| / / /_/ / /___/ / / /_/ / __/ /_
$ansiReset$NL" +
+ raw"$ansi172Fg/_/ |_/_/ .___/\____/_/ \__,_/_/ \__/
$ansiReset$NL" +
+ raw"$ansi208Fg /_/
$ansiReset$NL"
+ )
+
+ /**
+ * Prints 8-bit ASCII-logo.
+ */
+ def asciiLogo8Bit(): String = {
+ val startColor = U.getRandom(Seq(16, 22, 28, 34, 40, 46))
+ val range = 6
+
+ (for (lineIdx <- Seq(
+ raw" _ ____ ______ ______ $NL",
+ raw" / | / / /___ / ____/________ _/ __/ /_ $NL",
+ raw" / |/ / / __ \/ / / ___/ __ `/ /_/ __/ $NL",
+ raw" / /| / / /_/ / /___/ / / /_/ / __/ /_ $NL",
+ raw"/_/ |_/_/ .___/\____/_/ \__,_/_/ \__/ $NL",
+ raw" /_/ $NL"
+ ).zipWithIndex) yield {
+ val line = lineIdx._1
+ val idx = lineIdx._2
+ val start = startColor + (36 * idx)
+ val end = start + range - 1
+
+ gradAnsi8BitLine(line, start, end)
+ })
+ .mkString("")
+ }
+
+ /**
+ *
+ * @param line
+ * @param startColor Inclusive.
+ * @param endColor Inclusive.
+ * @return
+ */
+ private def gradAnsi8BitLine(line: String, startColor: Int, endColor:
Int): String = {
+ line.zipWithIndex.foldLeft(new StringBuilder())((buf, zip) => {
+ val ch = zip._1
+ val idx = zip._2
+ val color = startColor + idx % (endColor - startColor + 1)
+
+ buf ++= s"${ansi256Fg(color)}$ch"
+ })
+ .toString + ansiReset
+ }
+
+ /**
+ *
+ * @param s
+ * @return
+ */
+ def fgRainbow4Bit(s: String, addOn: String = ""): String = rainbowImpl(s,
ANSI_FG_4BIT_COLORS, addOn)
+
+ /**
+ *
+ * @param s
+ * @return
+ */
+ def fgRainbow8Bit(s: String, addOn: String = ""): String = rainbowImpl(s,
ANSI_FG_8BIT_COLORS, addOn)
+
+ /**
*
* @param s
* @return
*/
- def fgRainbow(s: String, addOn: String = ""): String = rainbowImpl(s,
ANSI_FG_COLORS, addOn)
+ def bgRainbow4Bit(s: String, addOn: String = ""): String = rainbowImpl(s,
ANSI_BG_4BIT_COLORS, addOn)
/**
*
* @param s
* @return
*/
- def bgRainbow(s: String, addOn: String = ""): String = rainbowImpl(s,
ANSI_BG_COLORS, addOn)
+ def bgRainbow8Bit(s: String, addOn: String = ""): String = rainbowImpl(s,
ANSI_BG_8BIT_COLORS, addOn)
/**
*
* @param s
* @return
*/
- def rainbow(s: String, addOn: String = ""): String = randomRainbowImpl(s,
ANSI_COLORS, addOn)
+ def rainbow4Bit(s: String, addOn: String = ""): String =
randomRainbowImpl(s, ANSI_4BIT_COLORS, addOn)
/**
*
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
index b55ac14..473be49 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
@@ -2936,7 +2936,7 @@ object NCCli extends NCCliBase {
* Prints out the version and copyright title header.
*/
private def title(): Unit = {
- logln(U.asciiLogo())
+ logln(U.asciiLogo8Bit())
logln(s"$NAME ver. ${VER.version}")
logln()
logln(s"Docs: ${g("nlpcraft.apache.org")}")
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
index 756481d..ecf7a18 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
@@ -438,7 +438,7 @@ private [probe] object NCProbeBoot extends LazyLogging with
NCOpenCensusTrace {
println(
U.NL +
- U.asciiLogo() +
+ U.asciiLogo8Bit() +
s"${U.NL}" +
s"Embedded Data Probe${U.NL}" +
s"Version: ${bo(ver.version)}${U.NL}" +
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/NCServer.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/NCServer.scala
index afad3a2..ca435b3 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/NCServer.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/NCServer.scala
@@ -74,7 +74,7 @@ object NCServer extends App with NCIgniteInstance with
LazyLogging with NCOpenCe
logger.info(
U.NL +
- U.asciiLogo() +
+ U.asciiLogo8Bit() +
s"${U.NL}" +
s"Server${U.NL}" +
s"Version: ${bo(ver.version)}${U.NL}" +