| 
									
										
										
										
											2018-01-21 10:33:32 -05:00
										 |  |  | <!doctype html> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <title>CodeMirror: Swift mode</title> | 
					
						
							|  |  |  | <meta charset="utf-8"/> | 
					
						
							|  |  |  | <link rel=stylesheet href="../../doc/docs.css"> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <link rel="stylesheet" href="../../lib/codemirror.css"> | 
					
						
							|  |  |  | <script src="../../lib/codemirror.js"></script> | 
					
						
							|  |  |  | <script src="../../addon/edit/matchbrackets.js"></script> | 
					
						
							|  |  |  | <script src="./swift.js"></script> | 
					
						
							|  |  |  | <style> | 
					
						
							|  |  |  | 	.CodeMirror { border: 2px inset #dee; } | 
					
						
							|  |  |  |     </style> | 
					
						
							|  |  |  | <div id=nav> | 
					
						
							| 
									
										
										
										
											2018-10-07 12:02:07 +02:00
										 |  |  |   <a href="https://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a> | 
					
						
							| 
									
										
										
										
											2018-01-21 10:33:32 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   <ul> | 
					
						
							|  |  |  |     <li><a href="../../index.html">Home</a> | 
					
						
							|  |  |  |     <li><a href="../../doc/manual.html">Manual</a> | 
					
						
							|  |  |  |     <li><a href="https://github.com/codemirror/codemirror">Code</a> | 
					
						
							|  |  |  |   </ul> | 
					
						
							|  |  |  |   <ul> | 
					
						
							|  |  |  |     <li><a href="../index.html">Language modes</a> | 
					
						
							|  |  |  |     <li><a class=active href="#">Swift</a> | 
					
						
							|  |  |  |   </ul> | 
					
						
							|  |  |  | </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <article> | 
					
						
							|  |  |  | <h2>Swift mode</h2> | 
					
						
							|  |  |  | <form><textarea id="code" name="code"> | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | //  TipCalculatorModel.swift | 
					
						
							|  |  |  | //  TipCalculator | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | //  Created by Main Account on 12/18/14. | 
					
						
							|  |  |  | //  Copyright (c) 2014 Razeware LLC. All rights reserved. | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import Foundation | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TipCalculatorModel { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   var total: Double | 
					
						
							|  |  |  |   var taxPct: Double | 
					
						
							|  |  |  |   var subtotal: Double { | 
					
						
							|  |  |  |     get { | 
					
						
							|  |  |  |       return total / (taxPct + 1) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   init(total: Double, taxPct: Double) { | 
					
						
							|  |  |  |     self.total = total | 
					
						
							|  |  |  |     self.taxPct = taxPct | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   func calcTipWithTipPct(tipPct: Double) -> Double { | 
					
						
							|  |  |  |     return subtotal * tipPct | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   func returnPossibleTips() -> [Int: Double] { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     let possibleTipsInferred = [0.15, 0.18, 0.20] | 
					
						
							|  |  |  |     let possibleTipsExplicit:[Double] = [0.15, 0.18, 0.20] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var retval = [Int: Double]() | 
					
						
							|  |  |  |     for possibleTip in possibleTipsInferred { | 
					
						
							|  |  |  |       let intPct = Int(possibleTip*100) | 
					
						
							|  |  |  |       retval[intPct] = calcTipWithTipPct(possibleTip) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     return retval | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | </textarea></form> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <script> | 
					
						
							|  |  |  |       var editor = CodeMirror.fromTextArea(document.getElementById("code"), { | 
					
						
							|  |  |  |         lineNumbers: true, | 
					
						
							|  |  |  |         matchBrackets: true, | 
					
						
							|  |  |  |         mode: "text/x-swift" | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     </script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <p>A simple mode for Swift</p> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <p><strong>MIME types defined:</strong> <code>text/x-swift</code> (Swift code)</p> | 
					
						
							|  |  |  |   </article> |