GithubHelp home page GithubHelp logo

trendingtechnology / colorizeswift Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mtynior/colorizeswift

0.0 1.0 0.0 525 KB

Terminal string styling for Swift.

License: MIT License

Swift 99.55% Shell 0.45%

colorizeswift's Introduction

ColorizeSwift

Swift License

Terminal string styling for Swift.

Integration

Swift Package Manager (SPM)

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

// swift-tools-version:4.0
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "MyLibrary",
    products: [
        .library(name: "MyLibrary", targets: ["MyLibrary"]),
    ],
    dependencies: [
         .package(url: "https://github.com/mtynior/ColorizeSwift.git", from: "1.5.0"),
    ],
    targets: [
        .target(name: "MyLibrary", dependencies: ["ColorizeSwift"]),
        .testTarget(name: "MyLibraryTests", dependencies: ["MyLibrary", "ColorizeSwift"]),
    ]
)

Manually

You can also manually add ColorizeSwift to you project:

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

CocoaPods

From version 1.5 ColorizeSwift does not support CocoaPods!

Please use SPM or add ColorizeSwift.swift file manually to your project. If you use CocoaPods, you can still use version 1.2. At the moment, latest version1.5, only removed support for CocoaPods and has the same functionality as 1.2, but it might change in the future.

You can use CocoaPods to install ColorizeSwift by adding it to your Podfile:

platform :ios, '9.0'
use_frameworks!

target 'MyApp' do
	pod 'ColorizeSwift'
end

Run pods install to intagrate pods with your project.

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"

Uncolorize

To get string without any colorization use uncolorized() method:

let styledString = "Awful combination".colorize(.yellow, background: .red) // \u{001B}[48;5;9m\u{001B}[38;5;11mAwful combination\u{001B}[0m\u{001B}[48;5;9m\u{001B}[0m
let withoutStyles = styledString.uncolorized() // "Awful combination"

Disabling colorization

Colorization can be disabled globally:

String.isColorizationEnabled = false // Default: true

You can use this to support a command line option (./example --no-color):

String.isColorizationEnabled = !CommandLine.arguments.contains("--no-color")

To disable colorization when program is running in a pipe (./example | wc) or when not writing to stdout (./example > output.txt):

String.isColorizationEnabled = (isatty(fileno(stdout)) == 1)

Credits

License

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

colorizeswift's People

Contributors

hristost avatar msmiley avatar mtynior avatar noahbass avatar sahara-ooga avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.