blob: 26c184a10fdaecb67a4bfcb907e7c27bb71dab93 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.nlpcraft.common.ansi
import com.typesafe.scalalogging.LazyLogging
import org.apache.nlpcraft.common._
/**
* Scala 2.13 shim for `scala.io.AnsiColor` + more functionality.
*/
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 = \s"${CSI}38;5;${i}m\""
echo "private final val BG_$i = \s"${CSI}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 ESC = "\u001b"
private final val BELL = "\u0007"
private final val CSI = s"$ESC["
private final val OSC = s"$ESC]"
private final val RESET = s"${CSI}0m"
// 4-bit colors.
private final val BLACK = s"${CSI}30m"
private final val RED = s"${CSI}31m"
private final val GREEN = s"${CSI}32m"
private final val YELLOW = s"${CSI}33m"
private final val BLUE = s"${CSI}34m"
private final val MAGENTA = s"${CSI}35m"
private final val CYAN = s"${CSI}36m"
private final val WHITE = s"${CSI}37m"
private final val BLACK_B = s"${CSI}40m"
private final val RED_B = s"${CSI}41m"
private final val GREEN_B = s"${CSI}42m"
private final val YELLOW_B = s"${CSI}43m"
private final val BLUE_B = s"${CSI}44m"
private final val MAGENTA_B = s"${CSI}45m"
private final val CYAN_B = s"${CSI}46m"
private final val WHITE_B = s"${CSI}47m"
// 8-bit colors.
private final val FG_1 = s"${CSI}38;5;1m"
private final val BG_1 = s"${CSI}48;5;1m"
private final val FG_2 = s"${CSI}38;5;2m"
private final val BG_2 = s"${CSI}48;5;2m"
private final val FG_3 = s"${CSI}38;5;3m"
private final val BG_3 = s"${CSI}48;5;3m"
private final val FG_4 = s"${CSI}38;5;4m"
private final val BG_4 = s"${CSI}48;5;4m"
private final val FG_5 = s"${CSI}38;5;5m"
private final val BG_5 = s"${CSI}48;5;5m"
private final val FG_6 = s"${CSI}38;5;6m"
private final val BG_6 = s"${CSI}48;5;6m"
private final val FG_7 = s"${CSI}38;5;7m"
private final val BG_7 = s"${CSI}48;5;7m"
private final val FG_8 = s"${CSI}38;5;8m"
private final val BG_8 = s"${CSI}48;5;8m"
private final val FG_9 = s"${CSI}38;5;9m"
private final val BG_9 = s"${CSI}48;5;9m"
private final val FG_10 = s"${CSI}38;5;10m"
private final val BG_10 = s"${CSI}48;5;10m"
private final val FG_11 = s"${CSI}38;5;11m"
private final val BG_11 = s"${CSI}48;5;11m"
private final val FG_12 = s"${CSI}38;5;12m"
private final val BG_12 = s"${CSI}48;5;12m"
private final val FG_13 = s"${CSI}38;5;13m"
private final val BG_13 = s"${CSI}48;5;13m"
private final val FG_14 = s"${CSI}38;5;14m"
private final val BG_14 = s"${CSI}48;5;14m"
private final val FG_15 = s"${CSI}38;5;15m"
private final val BG_15 = s"${CSI}48;5;15m"
private final val FG_16 = s"${CSI}38;5;16m"
private final val BG_16 = s"${CSI}48;5;16m"
private final val FG_17 = s"${CSI}38;5;17m"
private final val BG_17 = s"${CSI}48;5;17m"
private final val FG_18 = s"${CSI}38;5;18m"
private final val BG_18 = s"${CSI}48;5;18m"
private final val FG_19 = s"${CSI}38;5;19m"
private final val BG_19 = s"${CSI}48;5;19m"
private final val FG_20 = s"${CSI}38;5;20m"
private final val BG_20 = s"${CSI}48;5;20m"
private final val FG_21 = s"${CSI}38;5;21m"
private final val BG_21 = s"${CSI}48;5;21m"
private final val FG_22 = s"${CSI}38;5;22m"
private final val BG_22 = s"${CSI}48;5;22m"
private final val FG_23 = s"${CSI}38;5;23m"
private final val BG_23 = s"${CSI}48;5;23m"
private final val FG_24 = s"${CSI}38;5;24m"
private final val BG_24 = s"${CSI}48;5;24m"
private final val FG_25 = s"${CSI}38;5;25m"
private final val BG_25 = s"${CSI}48;5;25m"
private final val FG_26 = s"${CSI}38;5;26m"
private final val BG_26 = s"${CSI}48;5;26m"
private final val FG_27 = s"${CSI}38;5;27m"
private final val BG_27 = s"${CSI}48;5;27m"
private final val FG_28 = s"${CSI}38;5;28m"
private final val BG_28 = s"${CSI}48;5;28m"
private final val FG_29 = s"${CSI}38;5;29m"
private final val BG_29 = s"${CSI}48;5;29m"
private final val FG_30 = s"${CSI}38;5;30m"
private final val BG_30 = s"${CSI}48;5;30m"
private final val FG_31 = s"${CSI}38;5;31m"
private final val BG_31 = s"${CSI}48;5;31m"
private final val FG_32 = s"${CSI}38;5;32m"
private final val BG_32 = s"${CSI}48;5;32m"
private final val FG_33 = s"${CSI}38;5;33m"
private final val BG_33 = s"${CSI}48;5;33m"
private final val FG_34 = s"${CSI}38;5;34m"
private final val BG_34 = s"${CSI}48;5;34m"
private final val FG_35 = s"${CSI}38;5;35m"
private final val BG_35 = s"${CSI}48;5;35m"
private final val FG_36 = s"${CSI}38;5;36m"
private final val BG_36 = s"${CSI}48;5;36m"
private final val FG_37 = s"${CSI}38;5;37m"
private final val BG_37 = s"${CSI}48;5;37m"
private final val FG_38 = s"${CSI}38;5;38m"
private final val BG_38 = s"${CSI}48;5;38m"
private final val FG_39 = s"${CSI}38;5;39m"
private final val BG_39 = s"${CSI}48;5;39m"
private final val FG_40 = s"${CSI}38;5;40m"
private final val BG_40 = s"${CSI}48;5;40m"
private final val FG_41 = s"${CSI}38;5;41m"
private final val BG_41 = s"${CSI}48;5;41m"
private final val FG_42 = s"${CSI}38;5;42m"
private final val BG_42 = s"${CSI}48;5;42m"
private final val FG_43 = s"${CSI}38;5;43m"
private final val BG_43 = s"${CSI}48;5;43m"
private final val FG_44 = s"${CSI}38;5;44m"
private final val BG_44 = s"${CSI}48;5;44m"
private final val FG_45 = s"${CSI}38;5;45m"
private final val BG_45 = s"${CSI}48;5;45m"
private final val FG_46 = s"${CSI}38;5;46m"
private final val BG_46 = s"${CSI}48;5;46m"
private final val FG_47 = s"${CSI}38;5;47m"
private final val BG_47 = s"${CSI}48;5;47m"
private final val FG_48 = s"${CSI}38;5;48m"
private final val BG_48 = s"${CSI}48;5;48m"
private final val FG_49 = s"${CSI}38;5;49m"
private final val BG_49 = s"${CSI}48;5;49m"
private final val FG_50 = s"${CSI}38;5;50m"
private final val BG_50 = s"${CSI}48;5;50m"
private final val FG_51 = s"${CSI}38;5;51m"
private final val BG_51 = s"${CSI}48;5;51m"
private final val FG_52 = s"${CSI}38;5;52m"
private final val BG_52 = s"${CSI}48;5;52m"
private final val FG_53 = s"${CSI}38;5;53m"
private final val BG_53 = s"${CSI}48;5;53m"
private final val FG_54 = s"${CSI}38;5;54m"
private final val BG_54 = s"${CSI}48;5;54m"
private final val FG_55 = s"${CSI}38;5;55m"
private final val BG_55 = s"${CSI}48;5;55m"
private final val FG_56 = s"${CSI}38;5;56m"
private final val BG_56 = s"${CSI}48;5;56m"
private final val FG_57 = s"${CSI}38;5;57m"
private final val BG_57 = s"${CSI}48;5;57m"
private final val FG_58 = s"${CSI}38;5;58m"
private final val BG_58 = s"${CSI}48;5;58m"
private final val FG_59 = s"${CSI}38;5;59m"
private final val BG_59 = s"${CSI}48;5;59m"
private final val FG_60 = s"${CSI}38;5;60m"
private final val BG_60 = s"${CSI}48;5;60m"
private final val FG_61 = s"${CSI}38;5;61m"
private final val BG_61 = s"${CSI}48;5;61m"
private final val FG_62 = s"${CSI}38;5;62m"
private final val BG_62 = s"${CSI}48;5;62m"
private final val FG_63 = s"${CSI}38;5;63m"
private final val BG_63 = s"${CSI}48;5;63m"
private final val FG_64 = s"${CSI}38;5;64m"
private final val BG_64 = s"${CSI}48;5;64m"
private final val FG_65 = s"${CSI}38;5;65m"
private final val BG_65 = s"${CSI}48;5;65m"
private final val FG_66 = s"${CSI}38;5;66m"
private final val BG_66 = s"${CSI}48;5;66m"
private final val FG_67 = s"${CSI}38;5;67m"
private final val BG_67 = s"${CSI}48;5;67m"
private final val FG_68 = s"${CSI}38;5;68m"
private final val BG_68 = s"${CSI}48;5;68m"
private final val FG_69 = s"${CSI}38;5;69m"
private final val BG_69 = s"${CSI}48;5;69m"
private final val FG_70 = s"${CSI}38;5;70m"
private final val BG_70 = s"${CSI}48;5;70m"
private final val FG_71 = s"${CSI}38;5;71m"
private final val BG_71 = s"${CSI}48;5;71m"
private final val FG_72 = s"${CSI}38;5;72m"
private final val BG_72 = s"${CSI}48;5;72m"
private final val FG_73 = s"${CSI}38;5;73m"
private final val BG_73 = s"${CSI}48;5;73m"
private final val FG_74 = s"${CSI}38;5;74m"
private final val BG_74 = s"${CSI}48;5;74m"
private final val FG_75 = s"${CSI}38;5;75m"
private final val BG_75 = s"${CSI}48;5;75m"
private final val FG_76 = s"${CSI}38;5;76m"
private final val BG_76 = s"${CSI}48;5;76m"
private final val FG_77 = s"${CSI}38;5;77m"
private final val BG_77 = s"${CSI}48;5;77m"
private final val FG_78 = s"${CSI}38;5;78m"
private final val BG_78 = s"${CSI}48;5;78m"
private final val FG_79 = s"${CSI}38;5;79m"
private final val BG_79 = s"${CSI}48;5;79m"
private final val FG_80 = s"${CSI}38;5;80m"
private final val BG_80 = s"${CSI}48;5;80m"
private final val FG_81 = s"${CSI}38;5;81m"
private final val BG_81 = s"${CSI}48;5;81m"
private final val FG_82 = s"${CSI}38;5;82m"
private final val BG_82 = s"${CSI}48;5;82m"
private final val FG_83 = s"${CSI}38;5;83m"
private final val BG_83 = s"${CSI}48;5;83m"
private final val FG_84 = s"${CSI}38;5;84m"
private final val BG_84 = s"${CSI}48;5;84m"
private final val FG_85 = s"${CSI}38;5;85m"
private final val BG_85 = s"${CSI}48;5;85m"
private final val FG_86 = s"${CSI}38;5;86m"
private final val BG_86 = s"${CSI}48;5;86m"
private final val FG_87 = s"${CSI}38;5;87m"
private final val BG_87 = s"${CSI}48;5;87m"
private final val FG_88 = s"${CSI}38;5;88m"
private final val BG_88 = s"${CSI}48;5;88m"
private final val FG_89 = s"${CSI}38;5;89m"
private final val BG_89 = s"${CSI}48;5;89m"
private final val FG_90 = s"${CSI}38;5;90m"
private final val BG_90 = s"${CSI}48;5;90m"
private final val FG_91 = s"${CSI}38;5;91m"
private final val BG_91 = s"${CSI}48;5;91m"
private final val FG_92 = s"${CSI}38;5;92m"
private final val BG_92 = s"${CSI}48;5;92m"
private final val FG_93 = s"${CSI}38;5;93m"
private final val BG_93 = s"${CSI}48;5;93m"
private final val FG_94 = s"${CSI}38;5;94m"
private final val BG_94 = s"${CSI}48;5;94m"
private final val FG_95 = s"${CSI}38;5;95m"
private final val BG_95 = s"${CSI}48;5;95m"
private final val FG_96 = s"${CSI}38;5;96m"
private final val BG_96 = s"${CSI}48;5;96m"
private final val FG_97 = s"${CSI}38;5;97m"
private final val BG_97 = s"${CSI}48;5;97m"
private final val FG_98 = s"${CSI}38;5;98m"
private final val BG_98 = s"${CSI}48;5;98m"
private final val FG_99 = s"${CSI}38;5;99m"
private final val BG_99 = s"${CSI}48;5;99m"
private final val FG_100 = s"${CSI}38;5;100m"
private final val BG_100 = s"${CSI}48;5;100m"
private final val FG_101 = s"${CSI}38;5;101m"
private final val BG_101 = s"${CSI}48;5;101m"
private final val FG_102 = s"${CSI}38;5;102m"
private final val BG_102 = s"${CSI}48;5;102m"
private final val FG_103 = s"${CSI}38;5;103m"
private final val BG_103 = s"${CSI}48;5;103m"
private final val FG_104 = s"${CSI}38;5;104m"
private final val BG_104 = s"${CSI}48;5;104m"
private final val FG_105 = s"${CSI}38;5;105m"
private final val BG_105 = s"${CSI}48;5;105m"
private final val FG_106 = s"${CSI}38;5;106m"
private final val BG_106 = s"${CSI}48;5;106m"
private final val FG_107 = s"${CSI}38;5;107m"
private final val BG_107 = s"${CSI}48;5;107m"
private final val FG_108 = s"${CSI}38;5;108m"
private final val BG_108 = s"${CSI}48;5;108m"
private final val FG_109 = s"${CSI}38;5;109m"
private final val BG_109 = s"${CSI}48;5;109m"
private final val FG_110 = s"${CSI}38;5;110m"
private final val BG_110 = s"${CSI}48;5;110m"
private final val FG_111 = s"${CSI}38;5;111m"
private final val BG_111 = s"${CSI}48;5;111m"
private final val FG_112 = s"${CSI}38;5;112m"
private final val BG_112 = s"${CSI}48;5;112m"
private final val FG_113 = s"${CSI}38;5;113m"
private final val BG_113 = s"${CSI}48;5;113m"
private final val FG_114 = s"${CSI}38;5;114m"
private final val BG_114 = s"${CSI}48;5;114m"
private final val FG_115 = s"${CSI}38;5;115m"
private final val BG_115 = s"${CSI}48;5;115m"
private final val FG_116 = s"${CSI}38;5;116m"
private final val BG_116 = s"${CSI}48;5;116m"
private final val FG_117 = s"${CSI}38;5;117m"
private final val BG_117 = s"${CSI}48;5;117m"
private final val FG_118 = s"${CSI}38;5;118m"
private final val BG_118 = s"${CSI}48;5;118m"
private final val FG_119 = s"${CSI}38;5;119m"
private final val BG_119 = s"${CSI}48;5;119m"
private final val FG_120 = s"${CSI}38;5;120m"
private final val BG_120 = s"${CSI}48;5;120m"
private final val FG_121 = s"${CSI}38;5;121m"
private final val BG_121 = s"${CSI}48;5;121m"
private final val FG_122 = s"${CSI}38;5;122m"
private final val BG_122 = s"${CSI}48;5;122m"
private final val FG_123 = s"${CSI}38;5;123m"
private final val BG_123 = s"${CSI}48;5;123m"
private final val FG_124 = s"${CSI}38;5;124m"
private final val BG_124 = s"${CSI}48;5;124m"
private final val FG_125 = s"${CSI}38;5;125m"
private final val BG_125 = s"${CSI}48;5;125m"
private final val FG_126 = s"${CSI}38;5;126m"
private final val BG_126 = s"${CSI}48;5;126m"
private final val FG_127 = s"${CSI}38;5;127m"
private final val BG_127 = s"${CSI}48;5;127m"
private final val FG_128 = s"${CSI}38;5;128m"
private final val BG_128 = s"${CSI}48;5;128m"
private final val FG_129 = s"${CSI}38;5;129m"
private final val BG_129 = s"${CSI}48;5;129m"
private final val FG_130 = s"${CSI}38;5;130m"
private final val BG_130 = s"${CSI}48;5;130m"
private final val FG_131 = s"${CSI}38;5;131m"
private final val BG_131 = s"${CSI}48;5;131m"
private final val FG_132 = s"${CSI}38;5;132m"
private final val BG_132 = s"${CSI}48;5;132m"
private final val FG_133 = s"${CSI}38;5;133m"
private final val BG_133 = s"${CSI}48;5;133m"
private final val FG_134 = s"${CSI}38;5;134m"
private final val BG_134 = s"${CSI}48;5;134m"
private final val FG_135 = s"${CSI}38;5;135m"
private final val BG_135 = s"${CSI}48;5;135m"
private final val FG_136 = s"${CSI}38;5;136m"
private final val BG_136 = s"${CSI}48;5;136m"
private final val FG_137 = s"${CSI}38;5;137m"
private final val BG_137 = s"${CSI}48;5;137m"
private final val FG_138 = s"${CSI}38;5;138m"
private final val BG_138 = s"${CSI}48;5;138m"
private final val FG_139 = s"${CSI}38;5;139m"
private final val BG_139 = s"${CSI}48;5;139m"
private final val FG_140 = s"${CSI}38;5;140m"
private final val BG_140 = s"${CSI}48;5;140m"
private final val FG_141 = s"${CSI}38;5;141m"
private final val BG_141 = s"${CSI}48;5;141m"
private final val FG_142 = s"${CSI}38;5;142m"
private final val BG_142 = s"${CSI}48;5;142m"
private final val FG_143 = s"${CSI}38;5;143m"
private final val BG_143 = s"${CSI}48;5;143m"
private final val FG_144 = s"${CSI}38;5;144m"
private final val BG_144 = s"${CSI}48;5;144m"
private final val FG_145 = s"${CSI}38;5;145m"
private final val BG_145 = s"${CSI}48;5;145m"
private final val FG_146 = s"${CSI}38;5;146m"
private final val BG_146 = s"${CSI}48;5;146m"
private final val FG_147 = s"${CSI}38;5;147m"
private final val BG_147 = s"${CSI}48;5;147m"
private final val FG_148 = s"${CSI}38;5;148m"
private final val BG_148 = s"${CSI}48;5;148m"
private final val FG_149 = s"${CSI}38;5;149m"
private final val BG_149 = s"${CSI}48;5;149m"
private final val FG_150 = s"${CSI}38;5;150m"
private final val BG_150 = s"${CSI}48;5;150m"
private final val FG_151 = s"${CSI}38;5;151m"
private final val BG_151 = s"${CSI}48;5;151m"
private final val FG_152 = s"${CSI}38;5;152m"
private final val BG_152 = s"${CSI}48;5;152m"
private final val FG_153 = s"${CSI}38;5;153m"
private final val BG_153 = s"${CSI}48;5;153m"
private final val FG_154 = s"${CSI}38;5;154m"
private final val BG_154 = s"${CSI}48;5;154m"
private final val FG_155 = s"${CSI}38;5;155m"
private final val BG_155 = s"${CSI}48;5;155m"
private final val FG_156 = s"${CSI}38;5;156m"
private final val BG_156 = s"${CSI}48;5;156m"
private final val FG_157 = s"${CSI}38;5;157m"
private final val BG_157 = s"${CSI}48;5;157m"
private final val FG_158 = s"${CSI}38;5;158m"
private final val BG_158 = s"${CSI}48;5;158m"
private final val FG_159 = s"${CSI}38;5;159m"
private final val BG_159 = s"${CSI}48;5;159m"
private final val FG_160 = s"${CSI}38;5;160m"
private final val BG_160 = s"${CSI}48;5;160m"
private final val FG_161 = s"${CSI}38;5;161m"
private final val BG_161 = s"${CSI}48;5;161m"
private final val FG_162 = s"${CSI}38;5;162m"
private final val BG_162 = s"${CSI}48;5;162m"
private final val FG_163 = s"${CSI}38;5;163m"
private final val BG_163 = s"${CSI}48;5;163m"
private final val FG_164 = s"${CSI}38;5;164m"
private final val BG_164 = s"${CSI}48;5;164m"
private final val FG_165 = s"${CSI}38;5;165m"
private final val BG_165 = s"${CSI}48;5;165m"
private final val FG_166 = s"${CSI}38;5;166m"
private final val BG_166 = s"${CSI}48;5;166m"
private final val FG_167 = s"${CSI}38;5;167m"
private final val BG_167 = s"${CSI}48;5;167m"
private final val FG_168 = s"${CSI}38;5;168m"
private final val BG_168 = s"${CSI}48;5;168m"
private final val FG_169 = s"${CSI}38;5;169m"
private final val BG_169 = s"${CSI}48;5;169m"
private final val FG_170 = s"${CSI}38;5;170m"
private final val BG_170 = s"${CSI}48;5;170m"
private final val FG_171 = s"${CSI}38;5;171m"
private final val BG_171 = s"${CSI}48;5;171m"
private final val FG_172 = s"${CSI}38;5;172m"
private final val BG_172 = s"${CSI}48;5;172m"
private final val FG_173 = s"${CSI}38;5;173m"
private final val BG_173 = s"${CSI}48;5;173m"
private final val FG_174 = s"${CSI}38;5;174m"
private final val BG_174 = s"${CSI}48;5;174m"
private final val FG_175 = s"${CSI}38;5;175m"
private final val BG_175 = s"${CSI}48;5;175m"
private final val FG_176 = s"${CSI}38;5;176m"
private final val BG_176 = s"${CSI}48;5;176m"
private final val FG_177 = s"${CSI}38;5;177m"
private final val BG_177 = s"${CSI}48;5;177m"
private final val FG_178 = s"${CSI}38;5;178m"
private final val BG_178 = s"${CSI}48;5;178m"
private final val FG_179 = s"${CSI}38;5;179m"
private final val BG_179 = s"${CSI}48;5;179m"
private final val FG_180 = s"${CSI}38;5;180m"
private final val BG_180 = s"${CSI}48;5;180m"
private final val FG_181 = s"${CSI}38;5;181m"
private final val BG_181 = s"${CSI}48;5;181m"
private final val FG_182 = s"${CSI}38;5;182m"
private final val BG_182 = s"${CSI}48;5;182m"
private final val FG_183 = s"${CSI}38;5;183m"
private final val BG_183 = s"${CSI}48;5;183m"
private final val FG_184 = s"${CSI}38;5;184m"
private final val BG_184 = s"${CSI}48;5;184m"
private final val FG_185 = s"${CSI}38;5;185m"
private final val BG_185 = s"${CSI}48;5;185m"
private final val FG_186 = s"${CSI}38;5;186m"
private final val BG_186 = s"${CSI}48;5;186m"
private final val FG_187 = s"${CSI}38;5;187m"
private final val BG_187 = s"${CSI}48;5;187m"
private final val FG_188 = s"${CSI}38;5;188m"
private final val BG_188 = s"${CSI}48;5;188m"
private final val FG_189 = s"${CSI}38;5;189m"
private final val BG_189 = s"${CSI}48;5;189m"
private final val FG_190 = s"${CSI}38;5;190m"
private final val BG_190 = s"${CSI}48;5;190m"
private final val FG_191 = s"${CSI}38;5;191m"
private final val BG_191 = s"${CSI}48;5;191m"
private final val FG_192 = s"${CSI}38;5;192m"
private final val BG_192 = s"${CSI}48;5;192m"
private final val FG_193 = s"${CSI}38;5;193m"
private final val BG_193 = s"${CSI}48;5;193m"
private final val FG_194 = s"${CSI}38;5;194m"
private final val BG_194 = s"${CSI}48;5;194m"
private final val FG_195 = s"${CSI}38;5;195m"
private final val BG_195 = s"${CSI}48;5;195m"
private final val FG_196 = s"${CSI}38;5;196m"
private final val BG_196 = s"${CSI}48;5;196m"
private final val FG_197 = s"${CSI}38;5;197m"
private final val BG_197 = s"${CSI}48;5;197m"
private final val FG_198 = s"${CSI}38;5;198m"
private final val BG_198 = s"${CSI}48;5;198m"
private final val FG_199 = s"${CSI}38;5;199m"
private final val BG_199 = s"${CSI}48;5;199m"
private final val FG_200 = s"${CSI}38;5;200m"
private final val BG_200 = s"${CSI}48;5;200m"
private final val FG_201 = s"${CSI}38;5;201m"
private final val BG_201 = s"${CSI}48;5;201m"
private final val FG_202 = s"${CSI}38;5;202m"
private final val BG_202 = s"${CSI}48;5;202m"
private final val FG_203 = s"${CSI}38;5;203m"
private final val BG_203 = s"${CSI}48;5;203m"
private final val FG_204 = s"${CSI}38;5;204m"
private final val BG_204 = s"${CSI}48;5;204m"
private final val FG_205 = s"${CSI}38;5;205m"
private final val BG_205 = s"${CSI}48;5;205m"
private final val FG_206 = s"${CSI}38;5;206m"
private final val BG_206 = s"${CSI}48;5;206m"
private final val FG_207 = s"${CSI}38;5;207m"
private final val BG_207 = s"${CSI}48;5;207m"
private final val FG_208 = s"${CSI}38;5;208m"
private final val BG_208 = s"${CSI}48;5;208m"
private final val FG_209 = s"${CSI}38;5;209m"
private final val BG_209 = s"${CSI}48;5;209m"
private final val FG_210 = s"${CSI}38;5;210m"
private final val BG_210 = s"${CSI}48;5;210m"
private final val FG_211 = s"${CSI}38;5;211m"
private final val BG_211 = s"${CSI}48;5;211m"
private final val FG_212 = s"${CSI}38;5;212m"
private final val BG_212 = s"${CSI}48;5;212m"
private final val FG_213 = s"${CSI}38;5;213m"
private final val BG_213 = s"${CSI}48;5;213m"
private final val FG_214 = s"${CSI}38;5;214m"
private final val BG_214 = s"${CSI}48;5;214m"
private final val FG_215 = s"${CSI}38;5;215m"
private final val BG_215 = s"${CSI}48;5;215m"
private final val FG_216 = s"${CSI}38;5;216m"
private final val BG_216 = s"${CSI}48;5;216m"
private final val FG_217 = s"${CSI}38;5;217m"
private final val BG_217 = s"${CSI}48;5;217m"
private final val FG_218 = s"${CSI}38;5;218m"
private final val BG_218 = s"${CSI}48;5;218m"
private final val FG_219 = s"${CSI}38;5;219m"
private final val BG_219 = s"${CSI}48;5;219m"
private final val FG_220 = s"${CSI}38;5;220m"
private final val BG_220 = s"${CSI}48;5;220m"
private final val FG_221 = s"${CSI}38;5;221m"
private final val BG_221 = s"${CSI}48;5;221m"
private final val FG_222 = s"${CSI}38;5;222m"
private final val BG_222 = s"${CSI}48;5;222m"
private final val FG_223 = s"${CSI}38;5;223m"
private final val BG_223 = s"${CSI}48;5;223m"
private final val FG_224 = s"${CSI}38;5;224m"
private final val BG_224 = s"${CSI}48;5;224m"
private final val FG_225 = s"${CSI}38;5;225m"
private final val BG_225 = s"${CSI}48;5;225m"
private final val FG_226 = s"${CSI}38;5;226m"
private final val BG_226 = s"${CSI}48;5;226m"
private final val FG_227 = s"${CSI}38;5;227m"
private final val BG_227 = s"${CSI}48;5;227m"
private final val FG_228 = s"${CSI}38;5;228m"
private final val BG_228 = s"${CSI}48;5;228m"
private final val FG_229 = s"${CSI}38;5;229m"
private final val BG_229 = s"${CSI}48;5;229m"
private final val FG_230 = s"${CSI}38;5;230m"
private final val BG_230 = s"${CSI}48;5;230m"
private final val FG_231 = s"${CSI}38;5;231m"
private final val BG_231 = s"${CSI}48;5;231m"
private final val FG_232 = s"${CSI}38;5;232m"
private final val BG_232 = s"${CSI}48;5;232m"
private final val FG_233 = s"${CSI}38;5;233m"
private final val BG_233 = s"${CSI}48;5;233m"
private final val FG_234 = s"${CSI}38;5;234m"
private final val BG_234 = s"${CSI}48;5;234m"
private final val FG_235 = s"${CSI}38;5;235m"
private final val BG_235 = s"${CSI}48;5;235m"
private final val FG_236 = s"${CSI}38;5;236m"
private final val BG_236 = s"${CSI}48;5;236m"
private final val FG_237 = s"${CSI}38;5;237m"
private final val BG_237 = s"${CSI}48;5;237m"
private final val FG_238 = s"${CSI}38;5;238m"
private final val BG_238 = s"${CSI}48;5;238m"
private final val FG_239 = s"${CSI}38;5;239m"
private final val BG_239 = s"${CSI}48;5;239m"
private final val FG_240 = s"${CSI}38;5;240m"
private final val BG_240 = s"${CSI}48;5;240m"
private final val FG_241 = s"${CSI}38;5;241m"
private final val BG_241 = s"${CSI}48;5;241m"
private final val FG_242 = s"${CSI}38;5;242m"
private final val BG_242 = s"${CSI}48;5;242m"
private final val FG_243 = s"${CSI}38;5;243m"
private final val BG_243 = s"${CSI}48;5;243m"
private final val FG_244 = s"${CSI}38;5;244m"
private final val BG_244 = s"${CSI}48;5;244m"
private final val FG_245 = s"${CSI}38;5;245m"
private final val BG_245 = s"${CSI}48;5;245m"
private final val FG_246 = s"${CSI}38;5;246m"
private final val BG_246 = s"${CSI}48;5;246m"
private final val FG_247 = s"${CSI}38;5;247m"
private final val BG_247 = s"${CSI}48;5;247m"
private final val FG_248 = s"${CSI}38;5;248m"
private final val BG_248 = s"${CSI}48;5;248m"
private final val FG_249 = s"${CSI}38;5;249m"
private final val BG_249 = s"${CSI}48;5;249m"
private final val FG_250 = s"${CSI}38;5;250m"
private final val BG_250 = s"${CSI}48;5;250m"
private final val FG_251 = s"${CSI}38;5;251m"
private final val BG_251 = s"${CSI}48;5;251m"
private final val FG_252 = s"${CSI}38;5;252m"
private final val BG_252 = s"${CSI}48;5;252m"
private final val FG_253 = s"${CSI}38;5;253m"
private final val BG_253 = s"${CSI}48;5;253m"
private final val FG_254 = s"${CSI}38;5;254m"
private final val BG_254 = s"${CSI}48;5;254m"
private final val FG_255 = s"${CSI}38;5;255m"
private final val BG_255 = s"${CSI}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 = s"${CSI}1m"
private final val UNDERLINED = s"${CSI}4m"
private final val BLINK = s"${CSI}5m"
private final val REVERSED = s"${CSI}7m"
private final val INVISIBLE = s"${CSI}8m"
// Erase functions.
private final val CLEAR_SCREEN = s"${CSI}J"
private final val CLEAR_SCREEN_AFTER = s"${CSI}0J"
private final val CLEAR_SCREEN_BEFORE = s"${CSI}1J"
private final val CLEAR_LINE = s"${CSI}K"
private final val CLEAR_LINE_AFTER = s"${CSI}0K"
private final val CLEAR_LINE_BEFORE = s"${CSI}1K"
// Cursor moves.
private final val CURSOR_UP = s"${CSI}1A"
private final val CURSOR_DOWN = s"${CSI}1B"
private final val CURSOR_LEFT = s"${CSI}1D"
private final val CURSOR_RIGHT = s"${CSI}1C"
private final val CURSOR_POS_SAVE= s"${CSI}s"
private final val CURSOR_POS_RESTORE = s"${CSI}u"
private final val CURSOR_LINE_HOME = s"${CSI}0G"
private final val CURSOR_SCREEN_HOME = s"${CSI}H"
private final val CURSOR_HIDE = s"${CSI}?25l"
private final val CURSOR_SHOW = s"${CSI}?25h"
def isEnabled: Boolean = !U.isSysEnvTrue(PROP)
// Color functions.
def ansiBlackFg: String = if (isEnabled) BLACK else ""
def ansiBlackBg: String = if (isEnabled) BLACK_B else ""
def ansiRedFg: String = if (isEnabled) RED else ""
def ansiRedBg: String = if (isEnabled) RED_B else ""
def ansiGreenFg: String = if (isEnabled) GREEN else ""
def ansiGreenBg: String = if (isEnabled) GREEN_B else ""
def ansiYellowFg: String = if (isEnabled) YELLOW else ""
def ansiYellowBg: String = if (isEnabled) YELLOW_B else ""
def ansiBlueFg: String = if (isEnabled) BLUE else ""
def ansiBlueBg: String = if (isEnabled) BLUE_B else ""
def ansiMagentaFg: String = if (isEnabled) MAGENTA else ""
def ansiMagentaBg: String = if (isEnabled) MAGENTA_B else ""
def ansiCyanFg: String = if (isEnabled) CYAN else ""
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 ""
def ansiReversed: String = if (isEnabled) REVERSED else ""
def ansiBlink: String = if (isEnabled) BLINK else ""
def ansiInvisible: String = if (isEnabled) INVISIBLE else ""
def ansiGreen(s: Any): String = s"$ansiGreenFg${s.toString}$ansiReset"
def ansiRed(s: Any): String = s"$ansiRedFg${s.toString}$ansiReset"
def ansiCyan(s: Any): String = s"$ansiCyanFg${s.toString}s$ansiReset"
def ansiYellow(s: Any): String = s"$ansiYellowFg${s.toString}$ansiReset"
def ansiBlack(s: Any): String = s"$ansiBlackFg${s.toString}s$ansiReset"
def ansiWhite(s: Any): String = s"$ansiWhiteFg${s.toString}$ansiReset"
def ansiBlue(s: Any): String = s"$ansiBlueFg${s.toString}$ansiReset"
def ansiMagenta(s: Any): String = s"$ansiMagentaFg${s.toString}$ansiReset"
def ansiBold(s: Any): String = s"$ansiBold${s.toString}$ansiReset"
// Erase functions.
def ansiClearScreen: String = if (isEnabled) CLEAR_SCREEN else ""
def ansiClearScreenAfter: String = if (isEnabled) CLEAR_SCREEN_AFTER else ""
def ansiClearScreenBefore: String = if (isEnabled) CLEAR_SCREEN_BEFORE else ""
def ansiClearLine: String = if (isEnabled) CLEAR_LINE else ""
def ansiClearLineAfter: String = if (isEnabled) CLEAR_LINE_AFTER else ""
def ansiClearLineBefore: String = if (isEnabled) CLEAR_LINE_BEFORE else ""
// Cursor movement functions.
def ansiCursorUp: String = if (isEnabled) CURSOR_UP else ""
def ansiCursorDown: String = if (isEnabled) CURSOR_DOWN else ""
def ansiCursorLeft: String = if (isEnabled) CURSOR_LEFT else ""
def ansiCursorRight: String = if (isEnabled) CURSOR_RIGHT else ""
def ansiCursorLineHome: String = if (isEnabled) CURSOR_LINE_HOME else ""
def ansiCursorScreenHome: String = if (isEnabled) CURSOR_SCREEN_HOME else ""
def ansiCursorPosSave: String = if (isEnabled) CURSOR_POS_SAVE else ""
def ansiCursorPosRestore: String = if (isEnabled) CURSOR_POS_RESTORE else ""
def ansiCursorShow: String = if (isEnabled) CURSOR_SHOW else ""
def ansiCursorHide: String = if (isEnabled) CURSOR_HIDE else ""
}
object NCAnsi extends NCAnsi {
// Enabled by default.
// NOTE: it's not static as it can be changed at runtime.
private final val PROP = "NLPCRAFT_ANSI_COLOR_DISABLED"
/**
*
* @param f
*/
def setEnabled(f: Boolean): Unit =
System.setProperty(PROP, (!f).toString)
/**
*
*/
def ackStatus(): Unit =
if (isEnabled)
logger.info(s"${U.bgRainbow4Bit("ANSI")} coloring is enabled. Use '-D${ansiCyanFg}NLPCRAFT_ANSI_COLOR_DISABLED${ansiReset}=true' to disable it.", 130, 147)
}