mirror of
				https://github.com/sharkdp/bat.git
				synced 2025-11-04 00:51:56 +00:00 
			
		
		
		
	ADDED swift test file for syntax highlighting
This commit is contained in:
		
				
					committed by
					
						
						David Peter
					
				
			
			
				
	
			
			
			
						parent
						
							5b095ed6f3
						
					
				
				
					commit
					fd01f0a0ee
				
			
							
								
								
									
										268
									
								
								tests/syntax-tests/source/Swift/test.swift
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										268
									
								
								tests/syntax-tests/source/Swift/test.swift
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,268 @@
 | 
			
		||||
class Person {
 | 
			
		||||
// We can define class property here
 | 
			
		||||
var age  = 25
 | 
			
		||||
// Implement Class initializer. Initializers are called when a new object of this class is created
 | 
			
		||||
init() { 
 | 
			
		||||
   print(“A new instance of this class Person is created.”) 
 | 
			
		||||
 } 
 | 
			
		||||
} 
 | 
			
		||||
// We can now create an instance of class Person - an object - by putting parentheses after the class name
 | 
			
		||||
let personObj =  Person()
 | 
			
		||||
// Once an instance of Person class is created we can access its properties using the dot “.” syntax.
 | 
			
		||||
print(“This person age is \(personObj.age)”)
 | 
			
		||||
 | 
			
		||||
import Foundation
 | 
			
		||||
class Friend : Comparable {
 | 
			
		||||
    let name : String
 | 
			
		||||
    let age : Int
 | 
			
		||||
    
 | 
			
		||||
    init(name : String, age: Int) {
 | 
			
		||||
        self.name = name
 | 
			
		||||
        self.age = age
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
func < (lhs: Friend, rhs: Friend) -> Bool {
 | 
			
		||||
    return lhs.age < rhs.age } func > (lhs: Friend, rhs: Friend) -> Bool {
 | 
			
		||||
    return lhs.age > rhs.age
 | 
			
		||||
}
 | 
			
		||||
func == (lhs: Friend, rhs: Friend) -> Bool {
 | 
			
		||||
    var returnValue = false
 | 
			
		||||
    if (lhs.name == rhs.name) && (lhs.age == rhs.age)
 | 
			
		||||
    {
 | 
			
		||||
        returnValue = true
 | 
			
		||||
    }
 | 
			
		||||
    return returnValue
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  let friend1 = Friend(name: "Sergey", age: 35)
 | 
			
		||||
        let friend2 = Friend(name: "Sergey", age: 30)
 | 
			
		||||
        
 | 
			
		||||
        print("\Compare Friend object. Same person? (friend1 == friend2)")
 | 
			
		||||
 | 
			
		||||
func sayHelloWorld() {
 | 
			
		||||
    print("Hello World")
 | 
			
		||||
}
 | 
			
		||||
// Call function
 | 
			
		||||
sayHelloWorld()
 | 
			
		||||
 | 
			
		||||
func printOutFriendNames(names: String...)  {
 | 
			
		||||
  
 | 
			
		||||
    for name in names {
 | 
			
		||||
 
 | 
			
		||||
        print(name)
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
}
 | 
			
		||||
// Call the printOutFriendNames with two parameters
 | 
			
		||||
printOutFriendNames("Sergey", "Bill")
 | 
			
		||||
// Call the function with more parameters
 | 
			
		||||
printOutFriendNames("Sergey", "Bill", "Max")
 | 
			
		||||
 | 
			
		||||
let simpleClosure = {
 | 
			
		||||
    print("From a simpleClosure")
 | 
			
		||||
}
 | 
			
		||||
// Call closure
 | 
			
		||||
simpleClosure() 
 | 
			
		||||
 | 
			
		||||
let fullName = { (firstName:String, lastName:String)->String in
 | 
			
		||||
    return firstName + " " + lastName
 | 
			
		||||
}
 | 
			
		||||
// Call Closure
 | 
			
		||||
let myFullName = fullName("Sergey", "Kargopolov")
 | 
			
		||||
print("My full name is \(myFullName)")
 | 
			
		||||
 | 
			
		||||
let myDictionary = [String:String]()
 | 
			
		||||
// Another way to create an empty dictionary
 | 
			
		||||
let myDictionary2:[String:String] = [:]
 | 
			
		||||
// Keys in dictionary can also be of type Int
 | 
			
		||||
let myDictionary3 = [Int:String]()
 | 
			
		||||
 | 
			
		||||
var myDictionary = ["first_name": "Sergey", "last_name": "Kargopolov"]
 | 
			
		||||
// print to preview
 | 
			
		||||
print(myDictionary)
 | 
			
		||||
// Add a new key with a value
 | 
			
		||||
myDictionary["user_id"] = "f5h7ru0tJurY8f7g5s6fd"
 | 
			
		||||
// We should now have 3 key value pairs printed
 | 
			
		||||
print(myDictionary)
 | 
			
		||||
 | 
			
		||||
var myDictionary = ["first_name": "Sergey", "last_name": "Kargopolov"]
 | 
			
		||||
// Loop through dictionary keys and print values
 | 
			
		||||
for (key,value) in myDictionary {
 | 
			
		||||
    print("\(key) = \(value)")
 | 
			
		||||
}
 | 
			
		||||
 class Friend {
 | 
			
		||||
    let name : String
 | 
			
		||||
    let age : Int
 | 
			
		||||
    
 | 
			
		||||
    init(name : String, age: Int) {
 | 
			
		||||
        self.name = name
 | 
			
		||||
        self.age = age
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 var friends:[Friend] = []
 | 
			
		||||
        
 | 
			
		||||
        let friend1 = Friend(name: "Sergey", age: 30)
 | 
			
		||||
        let friend2 = Friend(name: "Bill", age: 35)
 | 
			
		||||
        let friend3 = Friend(name: "Michael", age: 21)
 | 
			
		||||
        
 | 
			
		||||
        friends.append(friend1)
 | 
			
		||||
        friends.append(friend2)
 | 
			
		||||
        friends.append(friend3)
 | 
			
		||||
        
 | 
			
		||||
        printFriends(friends: friends)
 | 
			
		||||
        
 | 
			
		||||
        // Get sorted array in descending order (largest to the smallest number)
 | 
			
		||||
        let sortedFriends = friends.sorted(by: { $0.age > $1.age })
 | 
			
		||||
        printFriends(friends: sortedFriends)
 | 
			
		||||
        
 | 
			
		||||
        // Get sorted array in ascending order (smallest to the largest number)
 | 
			
		||||
        let sortedFriendsAscendingOrder = friends.sorted(by: { $0.age < $1.age })
 | 
			
		||||
        printFriends(friends: sortedFriendsAscendingOrder)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 func printFriends(friends: [Friend])
 | 
			
		||||
    {
 | 
			
		||||
        for friendEntry in friends {
 | 
			
		||||
            print("Name: \(friendEntry.name), age: \(friendEntry.age)")
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
import UIKit
 | 
			
		||||
class ViewController: UIViewController  {
 | 
			
		||||
override func viewDidLoad() {
 | 
			
		||||
    super.viewDidLoad()
 | 
			
		||||
}
 | 
			
		||||
override func viewWillAppear(_ animated: Bool) {
 | 
			
		||||
    super.viewWillAppear(animated)
 | 
			
		||||
    
 | 
			
		||||
    // Create destination URL 
 | 
			
		||||
    let documentsUrl:URL =  FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first as URL!
 | 
			
		||||
    let destinationFileUrl = documentsUrl.appendingPathComponent("downloadedFile.jpg")
 | 
			
		||||
    
 | 
			
		||||
    //Create URL to the source file you want to download
 | 
			
		||||
    let fileURL = URL(string: "https://s3.amazonaws.com/learn-swift/IMG_0001.JPG")
 | 
			
		||||
    
 | 
			
		||||
    let sessionConfig = URLSessionConfiguration.default
 | 
			
		||||
    let session = URLSession(configuration: sessionConfig)
 | 
			
		||||
 
 | 
			
		||||
    let request = URLRequest(url:fileURL!)
 | 
			
		||||
    
 | 
			
		||||
    let task = session.downloadTask(with: request) { (tempLocalUrl, response, error) in
 | 
			
		||||
        if let tempLocalUrl = tempLocalUrl, error == nil {
 | 
			
		||||
            // Success
 | 
			
		||||
            if let statusCode = (response as? HTTPURLResponse)?.statusCode {
 | 
			
		||||
                print("Successfully downloaded. Status code: \(statusCode)")
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            do {
 | 
			
		||||
                try FileManager.default.copyItem(at: tempLocalUrl, to: destinationFileUrl)
 | 
			
		||||
            } catch (let writeError) {
 | 
			
		||||
                print("Error creating a file \(destinationFileUrl) : \(writeError)")
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
        } else {
 | 
			
		||||
            print("Error took place while downloading a file. Error description: %@", error?.localizedDescription);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    task.resume()
 | 
			
		||||
    
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  do {
 | 
			
		||||
            
 | 
			
		||||
            // Convert JSON Object received from server side into Swift NSArray.
 | 
			
		||||
            // Note the use "try"
 | 
			
		||||
            if let convertedJsonIntoArray = try JSONSerialization.JSONObjectWithData(data!, options: []) as? NSArray {
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
        } catch let error as NSError {
 | 
			
		||||
            print(error.localizedDescription)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
DispatchQueue.global(qos: .userInitiated).async {
 | 
			
		||||
            // Do some time consuming task in this background thread
 | 
			
		||||
            // Mobile app will remain to be responsive to user actions
 | 
			
		||||
            
 | 
			
		||||
            print("Performing time consuming task in this background thread")
 | 
			
		||||
            
 | 
			
		||||
           DispatchQueue.main.async {
 | 
			
		||||
                // Task consuming task has completed
 | 
			
		||||
                // Update UI from this block of code
 | 
			
		||||
                print("Time consuming task has completed. From here we are allowed to update user interface.")
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
import UIKit
 | 
			
		||||
class ViewController: UIViewController {
 | 
			
		||||
    
 | 
			
		||||
    override func viewDidLoad() {
 | 
			
		||||
        super.viewDidLoad()
 | 
			
		||||
        // Do any additional setup after loading the view, typically from a nib.
 | 
			
		||||
        
 | 
			
		||||
        let button = UIButton(type: UIButtonType.system) as UIButton
 | 
			
		||||
        
 | 
			
		||||
        let xPostion:CGFloat = 50
 | 
			
		||||
        let yPostion:CGFloat = 100
 | 
			
		||||
        let buttonWidth:CGFloat = 150
 | 
			
		||||
        let buttonHeight:CGFloat = 45
 | 
			
		||||
        
 | 
			
		||||
        button.frame = CGRect(x:xPostion, y:yPostion, width:buttonWidth, height:buttonHeight)
 | 
			
		||||
        
 | 
			
		||||
        button.backgroundColor = UIColor.lightGray
 | 
			
		||||
        button.setTitle("Tap me", for: UIControlState.normal)
 | 
			
		||||
        button.tintColor = UIColor.black
 | 
			
		||||
        button.addTarget(self, action: #selector(ViewController.buttonAction(_:)), for: .touchUpInside)
 | 
			
		||||
        
 | 
			
		||||
        self.view.addSubview(button)
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    func buttonAction(_ sender:UIButton!)
 | 
			
		||||
    {
 | 
			
		||||
        print("Button tapped")
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    override func didReceiveMemoryWarning() {
 | 
			
		||||
        super.didReceiveMemoryWarning()
 | 
			
		||||
        // Dispose of any resources that can be recreated.
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
import UIKit
 | 
			
		||||
class ViewController: UIViewController {
 | 
			
		||||
    
 | 
			
		||||
    override func viewDidLoad() {
 | 
			
		||||
        super.viewDidLoad()
 | 
			
		||||
        
 | 
			
		||||
        //Create Activity Indicator
 | 
			
		||||
        let myActivityIndicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.gray)
 | 
			
		||||
        
 | 
			
		||||
        // Position Activity Indicator in the center of the main view
 | 
			
		||||
        myActivityIndicator.center = view.center
 | 
			
		||||
        
 | 
			
		||||
        // If needed, you can prevent Acivity Indicator from hiding when stopAnimating() is called
 | 
			
		||||
        myActivityIndicator.hidesWhenStopped = false
 | 
			
		||||
        
 | 
			
		||||
        // Start Activity Indicator
 | 
			
		||||
        myActivityIndicator.startAnimating()
 | 
			
		||||
        
 | 
			
		||||
        // Call stopAnimating() when need to stop activity indicator
 | 
			
		||||
        //myActivityIndicator.stopAnimating()
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        view.addSubview(myActivityIndicator)
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    override func didReceiveMemoryWarning() {
 | 
			
		||||
        super.didReceiveMemoryWarning()
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user