{"format":1,"api":2,"id":"fr.arcanescookie.scriptorium.lang.swift","version":"1.0.0","category":"languages","author":"Les Arcanes de Cookie","color":"#fa7343","name":{"fr":"Swift / Xcode","en":"Swift / Xcode"},"description":{"fr":"Extraits Swift et SwiftUI (View, State, VStack, List, NavigationLink), protocoles, async, Codable, et fichiers plist, storyboard et xib reconnus. Xcode lui-même ne tourne que sur Mac.","en":"Swift and SwiftUI snippets (View, State, VStack, List, NavigationLink), protocols, async, Codable, with plist, storyboard and xib files recognized. Xcode itself only runs on Mac."},"contributes":{"fileTypes":[{"language":"xml","extensions":[".plist",".entitlements",".storyboard",".xib"],"filenames":[]}],"snippets":[{"language":"swift","items":[{"prefix":"view","label":"Vue SwiftUI","body":"struct ${1:MaVue}: View {\n\tvar body: some View {\n\t\t${2:Text(\"Bonjour\")}\n\t}\n}"},{"prefix":"pre","label":"Aperçu SwiftUI","body":"#Preview {\n\t${1:MaVue}()\n}"},{"prefix":"state","label":"@State","body":"@State private var ${1:valeur} = ${2:\"\"}"},{"prefix":"binding","label":"@Binding","body":"@Binding var ${1:valeur}: ${2:String}"},{"prefix":"obs","label":"ObservableObject","body":"final class ${1:Modele}: ObservableObject {\n\t@Published var ${2:valeur} = ${3:\"\"}\n}"},{"prefix":"vstack","label":"VStack","body":"VStack(spacing: ${1:12}) {\n\t$0\n}"},{"prefix":"hstack","label":"HStack","body":"HStack(spacing: ${1:12}) {\n\t$0\n}"},{"prefix":"zstack","label":"ZStack","body":"ZStack {\n\t$0\n}"},{"prefix":"list","label":"List","body":"List(${1:items}) { ${2:item} in\n\t$0\n}"},{"prefix":"foreach","label":"ForEach","body":"ForEach(${1:items}, id: \\.${2:id}) { ${3:item} in\n\t$0\n}"},{"prefix":"button","label":"Button","body":"Button(\"${1:OK}\") {\n\t$0\n}"},{"prefix":"navlink","label":"NavigationLink","body":"NavigationLink(\"${1:Titre}\") {\n\t${2:Destination()}\n}"},{"prefix":"tf","label":"TextField","body":"TextField(\"${1:Libellé}\", text: \\$${2:texte})"},{"prefix":"sheet","label":"Feuille modale","body":".sheet(isPresented: \\$${1:affiche}) {\n\t$0\n}"},{"prefix":"task","label":"Tâche asynchrone","body":".task {\n\t$0\n}"},{"prefix":"struct","label":"struct","body":"struct ${1:Nom} {\n\t$0\n}"},{"prefix":"class","label":"class","body":"final class ${1:Nom} {\n\t$0\n}"},{"prefix":"func","label":"Fonction","body":"func ${1:nom}(${2}) -> ${3:Void} {\n\t$0\n}"},{"prefix":"guard","label":"guard let","body":"guard let ${1:valeur} = ${2:optionnel} else {\n\t${3:return}\n}"},{"prefix":"iflet","label":"if let","body":"if let ${1:valeur} = ${2:optionnel} {\n\t$0\n}"},{"prefix":"enum","label":"enum","body":"enum ${1:Nom} {\n\tcase ${2:un}\n\tcase ${3:deux}\n}"},{"prefix":"ext","label":"extension","body":"extension ${1:Type} {\n\t$0\n}"},{"prefix":"proto","label":"protocol","body":"protocol ${1:Nom} {\n\t$0\n}"},{"prefix":"codable","label":"Codable","body":"struct ${1:Nom}: Codable {\n\tlet ${2:id}: ${3:Int}\n}"},{"prefix":"asyncf","label":"Fonction async","body":"func ${1:charger}() async throws -> ${2:String} {\n\t$0\n}"},{"prefix":"switch","label":"switch","body":"switch ${1:valeur} {\ncase ${2:.un}:\n\t$3\ndefault:\n\t$0\n}"}]},{"language":"xml","items":[{"prefix":"plist:key","label":"Clé plist (texte)","body":"<key>${1:NSCameraUsageDescription}</key>\n<string>${2:Raison de l’accès}</string>"},{"prefix":"plist:bool","label":"Clé plist (booléen)","body":"<key>${1:UIRequiresFullScreen}</key>\n<${2:true}/>"},{"prefix":"plist:dict","label":"plist complet","body":"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t$0\n</dict>\n</plist>"}]}]}}