ColorizeSwift 1.2.0

ColorizeSwift 1.2.0

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Sep 2017
SwiftSwift Version 3.0
SPMSupports SPM

Maintained by Michał Tynior.



ColorizeSwift

Terminal string styling for Swift.

Requirements

  • iOS 9.0+ / Mac OS X 10.10+ / tvOS 9.0+ / watchOS 2.0+
  • Xcode 8.0+

Integration

Swift Package Managers (SPM)

You can use The Swift Package Manager to install ColorizeSwift by adding it to your Package.swift file:

import PackageDescription

let package = Package(
    name: "MyApp",
    targets: [],
    dependencies: [
        .Package(url: "https://github.com/mtynior/ColorizeSwift.git", majorVersion: 1)
    ]
)

Manually

You can also manually add ColorizeSwift to you project:

  1. Download ColorizeSwift.swift file,
  2. Drag ColorizeSwift.swift into you project’s tree.

Example

You can run sample application:

  1. Open Terminal and go to Example folder.
  2. Run ./build.sh script to build sample application.
  3. Run ./example pacman to launch sample.

Available samples:

  1. styles - prints available styles

    Example - Styles

  2. f1 - prints F1 cars

    Example - F1

  3. pacman - prints Pacman

    Example - Pacman

  4. mario - prints mario

    Example - Mario

Usage

print("Normal")
print("Bold".bold())
print("Dim".dim())
print("Italic".italic())
print("Underline".underline())
print("Blink".blink())
print("Reverse".reverse())
print("hidden".hidden())
print("strikethrough".strikethrough())
print("Red".red())
print("On yellow".onYellow())
print("256 foreground".foregroundColor(.Orange1))
print("226 background".backgroundColor(.Orange1))
print("Awful combination".colorize(.Yellow, background: .Red))
    
let nested = "with a blue substring".blue().underline()
print("A bold, green line \(nested) that becomes bold and green again".green().bold())

Styles

Modifiers

  • bold()
  • dim()
  • italic() (not widely supported)
  • underline()
  • reverse()
  • hidden()
  • strikethrough() (not widely supported)
  • reset()

Foreground colors

  • black()
  • red()
  • green()
  • yellow()
  • blue()
  • magenta()
  • cyan()
  • lightGray()
  • darkGray()
  • lightRed()
  • lightGreen()
  • lightYellow()
  • lightBlue()
  • lightMagenta()
  • lightCyan()
  • white()

Background colors

  • onBlack()
  • onRed()
  • onGreen()
  • onYellow()
  • onBlue()
  • onMagenta()
  • onCyan()
  • onLightGray()
  • onDarkGray()
  • onLightRed()
  • onLightGreen()
  • onLightYellow()
  • onLightBlue()
  • onLightMagenta()
  • onLightCyan()
  • onWhite()

256-colors

You can also use 256 colors, but keep in mind that not all Terminal clients support them.

  • foregroundColor(color: TerminalColor)
  • backgroundColor(color: TerminalColor)
  • colorize(foreground: TerminalColor, background: TerminalColor)

Available colors

You can access 256 colors using TerminalColor enumeration.

256 Colors

Escape codes

Sometimes you only need the open code for a modifier. You can access them using TerminalStyle enum:

TerminalStyle.bold.open // "\u{001B}[1m"
TerminalStyle.bold.close  // "\u{001B}[22m"

For 256 colors use:

TerminalColor.red.foregroundStyleCode().open \\"\u{001B}[38;5;9m"
TerminalColor.red.backgroundStyleCode().open \\"\u{001B}[48;5;9m"

Disabling colorization

Colorization can be disabled globally:

String.isColorizationEnabled = false // Default: true

// For example, you can support a command line option (./example --no-color)
String.isColorizationEnabled = !CommandLine.arguments.contains("--no-color")

Credits

License

ColorizeSwift is released under the MIT license. See LICENSE for details.