 
     enum CodingKeys: String, CodingKey {
 
-      case ignorePatterns
-    }
+      case ignorePatterns = "ignore-patterns"
+    }
+
+    let root = FileItem(URL(fileURLWithPath: "/", isDirectory: true))
+
+    var flatFileItems = Observable<[FileItem]>.empty()
+    var cwd = FileUtils.userHomeUrl
+    var ignorePatterns = State.defaultIgnorePatterns
+    var ignoreToken = Token()
+
+    var open = false
 
     init(from decoder: Decoder) throws {
       let container = try decoder.container(keyedBy: CodingKeys.self)

    try container.encode(self.linespacing, forKey: .editorLinespacing)
    try container.encode(self.usesLigatures, forKey: .editorUsesLigatures)
  }

  var font = NSFont.userFixedPitchFont(ofSize: 13)!
  var linespacing: CGFloat = 1
  var usesLigatures = false

  var usesTheme = true
  var showsFileIcon = true
  var theme = Marked(Theme.default)

  init() {
  }

    case editorUsesLigatures = "editor-uses-ligatures"
  }

  var font = NSFont.userFixedPitchFont(ofSize: 13)!
  var linespacing: CGFloat = 1
  var usesLigatures = false

  var usesTheme = true
  var showsFileIcon = true
  var theme = Marked(Theme.default)

  init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)

