     
     case appleScript
     case shellScript
+    
+    static let all: [ScriptingFileType] = [.appleScript, .shellScript]
+    
+    
+    var extensions: [String] {
+        
+        switch self {
+        case .appleScript: return ["applescript", "scpt", "scptd"]
+        case .shellScript: return ["sh", "pl", "php", "rb", "py", "js"]
+        }
+    }
     
 }
 

    
    
    
    // MARK: Private Properties
    
    private static let extensions: [ScriptingFileType: [String]] = [
        .appleScript: ["applescript", "scpt", "scptd"],
        .shellScript: ["sh", "pl", "php", "rb", "py", "js"]
    ]
    
    
    
    // MARK: -
    // MARK: Lifecycle
    

        
        self.url = url
        
        self.type = ScriptingFileType.all.first { $0.extensions.contains(url.pathExtension) }
        
        var name = url.deletingPathExtension().lastPathComponent
        
