Created
June 8, 2019 22:56
-
-
Save cprovatas/d8d1729fe8621c35b46acf463cd091d3 to your computer and use it in GitHub Desktop.
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