• Stars
    star
    215
  • Rank 183,925 (Top 4 %)
  • Language
    Swift
  • License
    Apache License 2.0
  • Created almost 7 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Format Swift code

swiftfmt

Build Status

A tool for formatting Swift code according to style guidelines.

Live Demo

https://swiftfmt.kishikawakatsumi.com/

A Work In Progress

swiftfmt is still in active development.

Requirements

Swiftfmt requires Swift trunk toolchains.

Installation

Download and install the latest trunk Swift development toolchain.

git clone https://github.com/kishikawakatsumi/swiftfmt
cd swiftfmt
~/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/swift package update
~/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/swift build -c release

Copy the file (.build/release/swiftfmt) to your binary location.

Getting Started

swiftfmt [file or directory]

Usage

swiftfmt .

Configurations

Tabs and Indents

Use tab character

git clone https://github.com/kishikawakatsumi/swiftfmt
 class Shape {
-    var numberOfSides = 0
-    func simpleDescription() -> String {
-        return "A shape with \(numberOfSides) sides."
-    }
+       var numberOfSides = 0
+
+       func simpleDescription() -> String {
+               return "A shape with \(numberOfSides) sides."
+       }
 }

Indent

"indent" : 2

 class Shape {
-    var numberOfSides = 0
-    func simpleDescription() -> String {
-        return "A shape with \(numberOfSides) sides."
-    }
+  var numberOfSides = 0
+
+  func simpleDescription() -> String {
+    return "A shape with \(numberOfSides) sides."
+  }
 }

Keep indents on empty lines

 class Shape {
     var numberOfSides = 0
+    
     func simpleDescription() -> String {
         return "A shape with \(numberOfSides) sides."
     }

Indent 'case' branches

 let someCharacter: Character = "z"
 switch someCharacter {
-case "a":
-    print("The first letter of the alphabet")
-case "z":
-    print("The last letter of the alphabet")
-default:
-    print("Some other character")
+    case "a":
+        print("The first letter of the alphabet")
+    case "z":
+        print("The last letter of the alphabet")
+    default:
+        print("Some other character")
 }

Spaces

Before Parentheses

Method/function declaration parentheses

 class Counter {
     var count = 0
-    
-    func increment() {
+
+    func increment () {
         count += 1
     }
 
-    func increment(by amount: Int) {
+    func increment (by amount: Int) {
         count += amount
     }
 
-    func reset() {
+    func reset () {
         count = 0
     }
 }

Method/function call parentheses

 struct Point {
     var x = 0.0, y = 0.0
+
     mutating func moveBy(x deltaX: Double, y deltaY: Double) {
-        self = Point(x: x + deltaX, y: y + deltaY)
+        self = Point (x: x + deltaX, y: y + deltaY)
     }
 }

'if' parentheses

-if(temperatureInFahrenheit <= 32) {
+if (temperatureInFahrenheit <= 32) {
     print("It's very cold. Consider wearing a scarf.")
-} else if(temperatureInFahrenheit >= 86) {
+} else if (temperatureInFahrenheit >= 86) {
     print("It's really warm. Don't forget to wear sunscreen.")
 }

'while' parentheses

 var square = 0
 var diceRoll = 0
-while(square < finalSquare) {
+while (square < finalSquare) {
     // roll the dice
     diceRoll += 1
     if diceRoll == 7 { diceRoll = 1 }

'switch' parentheses

 let someCharacter: Character = "z"
-switch(someCharacter) {
+switch (someCharacter) {
 case "a":
     print("The first letter of the alphabet")
 case "z":

'catch' parentheses

 do {
     try throwable()
 } catch Error.unexpected(let cause) {
     print("unexpected error!")
-} catch(Error.unknown) {
+} catch (Error.unknown) {
     print("unknown error!")
 }

Attribute parentheses

-@available (swift 3.0.2)
-@available (macOS 10.12, *)
+@available(swift 3.0.2)
+@available(macOS 10.12, *)
 struct MyStruct {
     // struct definition
 }

Around Operators

Assignment Operators (=, +=, ...)

-let contentHeight=40
-let hasHeader=true
+let contentHeight = 40
+let hasHeader = true
 let rowHeight: Int
 if hasHeader {
-    rowHeight=contentHeight+50
+    rowHeight = contentHeight + 50
 } else {
-    rowHeight=contentHeight+20
+    rowHeight = contentHeight + 20
 }

Logical Operators (&&, ||)

-if enteredDoorCode&&passedRetinaScan||hasDoorKey||knowsOverridePassword {
+if enteredDoorCode && passedRetinaScan || hasDoorKey || knowsOverridePassword {
     print("Welcome!")
 } else {
     print("ACCESS DENIED")

Equality Operator (==)

 let name = "world"
-if name=="world" {
+if name == "world" {
     print("hello, world")
 } else {
     print("I'm sorry \(name), but I don't recognize you")

Relational Operators (<, >, <=, >=)

-2>1    // true because 2 is greater than 1
-1<2    // true because 1 is less than 2
-1>=1   // true because 1 is greater than or equal to 1
-2<=1   // false because 2 is not less than or equal to 1
+2 > 1 // true because 2 is greater than 1
+1 < 2 // true because 1 is less than 2
+1 >= 1 // true because 1 is greater than or equal to 1
+2 <= 1 // false because 2 is not less than or equal to 1

Bitwise Operators (&, |, ^)

 for i in 0..<x {
-    y += (y^0x123) << 2
+    y += (y ^ 0x123) << 2
 }

Additive Operators (+, -)

 while (x != y) {
-    x = f(x * 3+5)
+    x = f(x * 3 + 5)
 }

Multiplicative Operators (*, /, %)

 while (x != y) {
-    x = f(x*3 + 5)
+    x = f(x * 3 + 5)
 }

Shift Operators (<<, >>)

 for i in 0..<x {
-    y += (y ^ 0x123)<<2
+    y += (y ^ 0x123) << 2
 }
 if (0 < x && x <= 10) {
     while (x != y) {

Range Operators (..., ..<)

-for index in 1 ... 5 {
+for index in 1...5 {
     print("\(index) times 5 is \(index * 5)")
 }

Closure Arrow (->)

-func greet(person: String)->String {
+func greet(person: String) -> String {
     let greeting = "Hello, " + person + "!"
     return greeting
 }

Before Left Brace

Type declaration left brace

-struct Resolution{
+struct Resolution {
     var width = 0
     var height = 0
 }
-class VideoMode{
+
+class VideoMode {
     var resolution = Resolution()
     var interlaced = false
     var frameRate = 0.0

Method/function left brace

-func greet(person: String) -> String{
+func greet(person: String) -> String {
     let greeting = "Hello, " + person + "!"
     return greeting
 }

'if' left brace

 var temperatureInFahrenheit = 30
-if temperatureInFahrenheit <= 32{
+if temperatureInFahrenheit <= 32 {
     print("It's very cold. Consider wearing a scarf.")
 }

'else' left brace

 temperatureInFahrenheit = 40
 if temperatureInFahrenheit <= 32 {
     print("It's very cold. Consider wearing a scarf.")
-} else{
+} else {
     print("It's not that cold. Wear a t-shirt.")
 }

'for' left brace

 let names = ["Anna", "Alex", "Brian", "Jack"]
-for name in names{
+for name in names {
     print("Hello, \(name)!")
 }

'while' left brace

 var square = 0
 var diceRoll = 0
-while square < finalSquare{
+while square < finalSquare {
     // roll the dice
     diceRoll += 1
     if diceRoll == 7 { diceRoll = 1 }

'do' left brace

-do{
+do {
     try throwable()
 } catch Error.unexpected(let cause) {
     print("unexpected error!")

'switch' left brace

 let someCharacter: Character = "z"
-switch someCharacter{
+switch someCharacter {
 case "a":
     print("The first letter of the alphabet")
 case "z":

'catch' left brace

 do {
     try throwable()
-} catch Error.unexpected(let cause){
+} catch Error.unexpected(let cause) {
     print("unexpected error!")
-} catch (Error.unknown){
+} catch (Error.unknown) {
     print("unknown error!")
 }

Before Keywords

'else' keyword

 temperatureInFahrenheit = 40
 if temperatureInFahrenheit <= 32 {
     print("It's very cold. Consider wearing a scarf.")
-}else {
+} else {
     print("It's not that cold. Wear a t-shirt.")
 }

'while' keyword

     if diceRoll == 7 { diceRoll = 1 }
     // move by the rolled amount
     square += diceRoll
-}while square < finalSquare
+} while square < finalSquare
 print("Game over!")

'catch' keyword

 do {
     try throwable()
-}catch Error.unexpected(let cause) {
+} catch Error.unexpected(let cause) {
     print("unexpected error!")
-}catch (Error.unknown) {
+} catch (Error.unknown) {
     print("unknown error!")
 }

Within

Code braces

Brackets

"brackets" : true

     len = 10
 }
 repeat {
-    text[ext++] = "$"
+    text[ ext++ ] = "$"
 } while (ext < len)
 
 len = len > 10000 ? len : 0

Array and dictionary literal brackets

"arrayAndDictionaryLiteralBrackets" : true

-var shoppingList = ["Eggs", "Milk"]
-shoppingList += ["Baking Powder"]
-shoppingList += ["Chocolate Spread", "Cheese", "Butter"]
+var shoppingList = [ "Eggs", "Milk" ]
+shoppingList += [ "Baking Powder" ]
+shoppingList += [ "Chocolate Spread", "Cheese", "Butter" ]

Grouping parenthesese

 var ext = x
 var len = y
 for i in 0..<x {
-    y += (y ^ 0x123) << 2
+    y += ( y ^ 0x123 ) << 2
 }
 repeat {
     text[ext++] = "$"

Method/function declaration parenthesese

"functionDeclarationParentheses" : true

-func greet(person: String) -> String {
+func greet( person: String ) -> String {
     let greeting = "Hello, " + person + "!"
     return greeting
 }

Empty method/function declaration parenthesese

-func sayHelloWorld() -> String {
+func sayHelloWorld( ) -> String {
     return "hello, world"
 }
 print(sayHelloWorld())

Method/function call parenthesese

 func greet(person: String, alreadyGreeted: Bool) -> String {
     if alreadyGreeted {
-        return greetAgain(person: person)
+        return greetAgain( person: person )
     } else {
-        return greet(person: person)
+        return greet( person: person )
     }
 }

Empty method/function call parenthesese

 func sayHelloWorld() -> String {
     return "hello, world"
 }
-print(sayHelloWorld())
+print(sayHelloWorld( ))

'if' parenthesese

 while square < finalSquare {
     // roll the dice
     diceRoll += 1
-    if (diceRoll == 7) { diceRoll = 1 }
+    if ( diceRoll == 7 ) { diceRoll = 1 }
     // move by the rolled amount
     square += diceRoll
-    if (square < board.count) {
+    if ( square < board.count ) {
         // if we're still on the board, move up or down for a snake or a ladder
         square += board[square]
     }

'while' parenthesese

 var square = 0
 var diceRoll = 0
-while (square < finalSquare) {
+while ( square < finalSquare ) {
     repeat {
         // move up or down for a snake or ladder
         square += board[square]
@@ -9,5 +9,5 @@ while (square < finalSquare) {
         if diceRoll == 7 { diceRoll = 1 }
         // move by the rolled amount
         square += diceRoll
-    } while (square < finalSquare)
+    } while ( square < finalSquare )
 }

'switch' parenthesese

 let someCharacter: Character = "z"
-switch (someCharacter) {
+switch ( someCharacter ) {
 case "a":
     print("The first letter of the alphabet")
 case "z":

'catch' parenthesese

     try throwable()
 } catch Error.unexpected(let cause) {
     print("unexpected error!")
-} catch (Error.unknown) {
+} catch ( Error.unknown ) {
     print("unknown error!")
 }

Attribute parenthesese

-@available(swift 3.0.2)
-@available(macOS 10.12, *)
+@available( swift 3.0.2 )
+@available( macOS 10.12, * )
 struct MyStruct {
     // struct definition
 }

In Ternary Operator (:?)

After '?'

 let contentHeight = 40
 let hasHeader = true
-let rowHeight = contentHeight + (hasHeader ?50:20)
+let rowHeight = contentHeight + (hasHeader ? 50:20)

Before ':'

 let contentHeight = 40
 let hasHeader = true
-let rowHeight = contentHeight + (hasHeader ?50:20)
+let rowHeight = contentHeight + (hasHeader ?50: 20)

After ':'

 let contentHeight = 40
 let hasHeader = true
-let rowHeight = contentHeight + (hasHeader ?50:20)
+let rowHeight = contentHeight + (hasHeader ?50: 20)

Around colons

Before colon in type annotations

-func greet(person: String, alreadyGreeted: Bool) -> String {
+func greet(person : String, alreadyGreeted : Bool) -> String {
     if alreadyGreeted {
-        return greetAgain(person: person)
+        return greetAgain(person : person)
     } else {
-        return greet(person: person)
+        return greet(person : person)
     }
 }

After colon in type annotations

-func greet(person:String, alreadyGreeted:Bool) -> String {
+func greet(person: String, alreadyGreeted: Bool) -> String {
     if alreadyGreeted {
-        return greetAgain(person:person)
+        return greetAgain(person: person)
     } else {
-        return greet(person:person)
+        return greet(person: person)
     }
 }

Before colon in type inheritance clauses

-class Movie: MediaItem {
+class Movie : MediaItem {
     var director: String
     init(name: String, director: String) {
         self.director = director

After colon in type inheritance clauses

-class Movie :MediaItem {
+class Movie : MediaItem {
     var director: String
     init(name: String, director: String) {
         self.director = director

Before colon in dictionary types

-var airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
-var emptyDictionary: [String: Int] = [:]
+var airports: [String : String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
+var emptyDictionary: [String : Int] = [:]

After colon in dictionary types

-var airports: [String:String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
-var emptyDictionary: [String:Int] = [:]
+var airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
+var emptyDictionary: [String: Int] = [:]

Before colon in dictionary literal 'key:value' pair

-var airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
+var airports: [String: String] = ["YYZ" : "Toronto Pearson", "DUB" : "Dublin"]
 var emptyDictionary: [String: Int] = [:]

After colon in dictionary literal 'key:value' pair

-var airports: [String: String] = ["YYZ":"Toronto Pearson", "DUB":"Dublin"]
+var airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
 var emptyDictionary: [String: Int] = [:]

Within Type Arguments

After comma

-func allItemsMatch<C1: Container,C2: Container>
+func allItemsMatch<C1: Container, C2: Container>
 (_ someContainer: C1,_ anotherContainer: C2) -> Bool
-where C1.Item == C2.Item,C1.Item:Equatable {
+where C1.Item == C2.Item, C1.Item: Equatable {
     // Check that both containers contain the same number of items.
     if someContainer.count != anotherContainer.count {
         return false

Other

Before comma

 enum State {
-    case none, all
+    case none , all
 }
 
-typealias Status = (Int, String)
+typealias Status = (Int , String)
 
-func +++(l: String, r: String) -> String {
+func +++(l: String , r: String) -> String {
     return ""
 }
 
-let array = ["One", "Two", "Three", "Four", "Five"]
+let array = ["One" , "Two" , "Three" , "Four" , "Five"]
 
-let dictionary = ["One": 1, "Two": 2, "Three": 3, "Four": 4, "Five": 5]
+let dictionary = ["One": 1 , "Two": 2 , "Three": 3 , "Four": 4 , "Five": 5]

After comma

 enum State {
-    case none,all
+    case none, all
 }
 
-typealias Status = (Int,String)
+typealias Status = (Int, String)
 
 struct S {
 }
@@ -15,16 +15,16 @@ struct S {
 protocol P {
 }
 
-func +++(l: String,r: String) -> String {
+func +++(l: String, r: String) -> String {
     return ""
 }
 
-let array = ["One","Two","Three","Four","Five"]
+let array = ["One", "Two", "Three", "Four", "Five"]
 var emptyArray = []
 
-let dictionary = ["One": 1,"Two": 2,"Three": 3,"Four": 4,"Five": 5]
+let dictionary = ["One": 1, "Two": 2, "Three": 3, "Four": 4, "Five": 5]
 var emptyDictionary: [String: Int] = [:]

Before semicolon

After semicolon

Wrapping and Braces

Blank Lines

Keep Maximum Blank Lines

In declarations

In code

Before '}'

Minimum Blank Lines

Before imports

"beforeImports" : 1

 //
 //  Created by Kishikawa Katsumi on 2018/02/14.
 //
+
 import Foundation
 import Basic
 import SwiftSyntax

After imports

"afterImports" : 1

 import Foundation
 import Basic
 import SwiftSyntax
+
 public struct Processor {
     private let options: [String]

Around type declarations

"aroundTypeDeclarations" : 1

@@ -9,6 +9,7 @@ fileprivate class Bracket : Indentation {
         self.lineNumber = lineNumber
     }
 }
+
 fileprivate class SwitchStatement {
     var lineNumber: Int
 
@@ -16,6 +17,7 @@ fileprivate class SwitchStatement {
         self.lineNumber = lineNumber
     }
 }
+
 fileprivate class CaseBranch {
     var lineNumber: Int
 
@@ -23,6 +25,7 @@ fileprivate class CaseBranch {
         self.lineNumber = lineNumber
     }
 }
+
 protocol Indentation {
     var indent: Bool { get set }
     var alignment: Int { get set }

Around property in protocol

"aroundPropertyInProtocol" : 0

Around property

"aroundProperty" : 1

Around method/function in protocol

"aroundFunctionInProtocol" : 0

Around method/function

"aroundFunction" : 1

Before method/function body

"beforeFunctionBody" : 0

Author

Kishikawa Katsumi, [email protected]

License

Swiftfmt is available under the Apache 2.0 license. See the LICENSE file for more info.

More Repositories

1

KeychainAccess

Simple Swift wrapper for Keychain that works on iOS, watchOS, tvOS and macOS.
Swift
7,532
star
2

UICKeyChainStore

UICKeyChainStore is a simple wrapper for Keychain on iOS, watchOS, tvOS and macOS. Makes using Keychain APIs as easy as NSUserDefaults.
Objective-C
3,072
star
3

IBPCollectionViewCompositionalLayout

Backport of UICollectionViewCompositionalLayout to earlier iOS 12
Swift
1,467
star
4

PEPhotoCropEditor

Image cropping library for iOS.
Objective-C
1,087
star
5

SECoreTextView

SECoreTextView is multi style text view.
Objective-C
947
star
6

SourceKitForSafari

SourceKit for Safari is a Safari extension for GitHub, that enables Xcode features like go to definition, find references, or documentation on hover.
JavaScript
680
star
7

Kuery

A type-safe Core Data query API using Swift 4's Smart KeyPaths
Swift
621
star
8

ClassicMap

Google Map is back to iOS 6.
Objective-C
541
star
9

JavaScriptBridge

Write iOS apps in Javascript! JavaScriptBridge provides the way to write iOS apps with JavaScript. Powered by JavaScriptCore.framework.
Objective-C
523
star
10

UCZProgressView

UCZProgressView is a circular progress indicator for image loading.
Objective-C
481
star
11

swift-power-assert

Power Assert in Swift.
Swift
355
star
12

MapKit-Route-Directions

Extend MapKit to add route directions powered by Google Maps API.
Objective-C
350
star
13

ScreenRecorder

Capturing a screen as videos on iOS devices for user testing.
Objective-C
315
star
14

BookReader

Sample code for PDFKit on iOS 11, clone of iBooks.app built on top of PDFKit.
Swift
306
star
15

xcresulttool

A GitHub Action that generates a human-readable test report from the Xcode result bundle and shows it on GitHub Checks.
TypeScript
297
star
16

TextKitExamples

TextKit examples for try! Swift NYC 2016
Swift
294
star
17

AppStore-Clone-CollectionViewCompositionalLayouts

Sample project for implementing App Store.app UI with Collection View Compositional Layouts
Swift
280
star
18

SwiftPowerAssert

Power Assert in Swift. Provides descriptive assertion messages.
Swift
198
star
19

UltimateGuideToAnimations

Swift
184
star
20

JapaneseKeyboardKit

Sample implementation for iOS Custom Keyboard Extension with Mozc (Google Japanese Input)
Objective-C
148
star
21

RealmTypeSafeQuery

A type-safe Realm query extensions using Swift 4 Smart KeyPaths
Swift
131
star
22

swiftui-playground

SwiftUI Online Playground
JavaScript
119
star
23

xcjobs

Support the automation of release process of iOS/OSX apps with CI
Ruby
117
star
24

applelocalization-web

HTML
106
star
25

AutoLayoutManiacs

Swift
93
star
26

deliverbot

Go
81
star
27

WebTranslator

Safari web extension for DeepL translate.
CSS
79
star
28

FlipCardNavigationView

Objective-C
75
star
29

UUIDShortener

Convert UUID 32-character hex string into a Base32 short string and back.
Objective-C
70
star
30

BandwidthLimiter

Swift
69
star
31

YAMapKit

Yet Another MapKit.framework based on Google Maps Javascript API.
Objective-C
67
star
32

DescriptionBuilder

DescriptionBuilder (iPhone Utility Program) - Assists implementing description method.
Objective-C
67
star
33

Mozc-for-iOS

Mozc - Japanese Input Method for Chromium OS, Android, Windows, Mac and Linux
C
65
star
34

VoiceNavigation

UI Navigation by voice dictation on iOS 5.1
Objective-C
46
star
35

swift-ast-explorer-playground

Online playground for Swift AST Explorer
HTML
45
star
36

AUCapture

Swift
44
star
37

SymbolFontKit

Easy to use 'SymbolFont' as image in iOS 6.
Objective-C
38
star
38

TiledLayerView

CATiledLayer with UIScrollView Sample.
Objective-C
37
star
39

hatena-touch

Hatena touch / iPhone
Objective-C
36
star
40

CollectionUtils

Useful utilities for Objective-C collection classes.
Objective-C
36
star
41

ForceOrientationSample-iOS

Force view to enter landscape in iOS like YouTube app
Swift
36
star
42

ldr-touch

LDR touch / iPhone
Objective-C
35
star
43

swift-magic

A Swift wrapper for libmagic
Swift
33
star
44

SwiftAST

Experimental project for parsing an output that `swift -dump-ast` produces
Swift
28
star
45

CropImageSample

Objective-C
27
star
46

FTSKit

Full Text Search Library for iOS SDK.
C
27
star
47

PhotoFlipCardView

Flip card photo galally sample
Objective-C
26
star
48

VirtualCameraComposer-Example

Objective-C++
25
star
49

tv-listings

TV Listings / iPhone
Objective-C
23
star
50

SwiftSyntax

SwiftSyntax SwiftPM module
Swift
22
star
51

UIKeyInput-UITextInput-Sample

Objective-C
21
star
52

Doorlock

Swift
20
star
53

DownloadFont

Sample code for downloading additional font on iOS 6 or 7.
Objective-C
19
star
54

swift-compiler-discord-bot

JavaScript
19
star
55

WithCamera

Swift
16
star
56

KeyboardShortcuts

Sample program of handling keyboard shortcuts or any keyboard input events.
Objective-C
16
star
57

MacCatalystSlackApp

Swift
15
star
58

TiKeyChainStore

KeyChain module for Titanium Mobile iPhone
Objective-C
14
star
59

Realm-Hands-On

Swift
13
star
60

WWDCChecker-iPhone

WWDC 2012 Checker
Objective-C
13
star
61

applelocalization-data

Clojure
9
star
62

WWDCChecker-Mac

WWDC Site Update Checker With Push Notification Support (Via Parse.com)
Objective-C
9
star
63

iOSDC-2020-UICollectionViewCompositionalLayout

9
star
64

applelocalization-tools

Swift
8
star
65

ExplodeChristmas

Let's explode Christmas.
Objective-C
7
star
66

BuildNumber

Objective-C
7
star
67

bitrise-step-xcode-result-bundle-to-checks

A Bitrise Step that generates a human-readable test report from the Xcode result bundle and shows it on GitHub Checks.
JavaScript
7
star
68

attendancebot

Go
5
star
69

UICollectionViewCompositionalLayout-Workshop-Starter

Swift
5
star
70

LeapMotionSwipeLockScreen

Swipe gesture to lock the screen with Leap Motion.
Objective-C
5
star
71

GoogleAnalytics-for-WinJS

GoogleAnalytics for WinJS
JavaScript
4
star
72

TextViewLinks

Customize clickable links with UITextView.
Objective-C
4
star
73

TextViewCompatibility

Workaround for iOS 7 UITextView scrolling bugs.
Objective-C
4
star
74

webpdecoder

Swift package for libwebpdecoder
C
4
star
75

Realm-CoreData-Performance

Benchmark code for Realm and CoreData
Objective-C
4
star
76

swift-power-assert-playground

SwiftPowerAssert online live demo
HTML
4
star
77

TextChatTranslator

Swift
4
star
78

FittingLabel

Swift
3
star
79

coveralls-gcov

Upload coverage information generated by Gcov to coveralls.io.
Ruby
3
star
80

dotfiles

Shell
3
star
81

swift-online-playground-tutorial

HTML
3
star
82

downloadable-ios-apps

Objective-C
3
star
83

SwiftFiddleEditor

Swift
3
star
84

async-await-in-swift

HTML
2
star
85

xcresulttool-static

HTML
2
star
86

xcresulttool-example

Swift
2
star
87

swiftfmt-playground

Swiftfmt online playground
HTML
2
star
88

codespace-swift

Dockerfile
2
star
89

swift-package-libbsd

Simple wrapper around the C Library BSD for use with Swift Package Manager on Linux
Swift
2
star
90

make-check

Create GitHub Checks.
JavaScript
2
star
91

swift-developers-japan-discussion-archive

Swift Developers JapanのDiscordサーバーに投稿された過去の議論を閲覧・検索できるWebサービスのリポジトリです。
2
star
92

among-us-server-status

Swift
2
star
93

Tree

Swift
2
star
94

WorkaroundPreprocessInfoPlist

Swift
2
star
95

XcodeCloudMac

Swift
1
star
96

prime-number

Swift
1
star
97

XcodeCloud

Swift
1
star
98

NICOLA-Note

1
star
99

StringWidth

Swift
1
star
100

anime-today

Ruby
1
star