Decorating Command Line Output With DefaultStringInterpolation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
enum ASCIIColor: String { | |
case black = "\u{001B}[0;30m" | |
case red = "\u{001B}[0;31m" | |
case green = "\u{001B}[0;32m" | |
case yellow = "\u{001B}[0;33m" | |
case blue = "\u{001B}[0;34m" | |
case magenta = "\u{001B}[0;35m" | |
case cyan = "\u{001B}[0;36m" | |
case white = "\u{001B}[0;37m" | |
case `default` = "\u{001B}[0;0m" | |
} | |
extension DefaultStringInterpolation { | |
mutating func appendInterpolation<T: CustomStringConvertible>(_ value: T, color: ASCIIColor) { | |
appendInterpolation("\(color.rawValue)\(value)\(ASCIIColor.default.rawValue)") | |
} | |
} | |
// USAGE: | |
// "\("only this string will be green!", color: .green)" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It does not work for me (XCode 13, Swift 5.5)
I have this in consol:
�[0;32monly this string will be green!�[0;0m