From a8a5c54aee10e7be5d007893de312acbdcabbbe5 Mon Sep 17 00:00:00 2001 From: devyao <15919688564@163.com> Date: Mon, 28 Jun 2021 13:49:03 +0800 Subject: [PATCH 1/2] rename class --- JSONConverter.xcodeproj/project.pbxproj | 820 +++++++++--------- .../FileConfigBuilder.swift} | 6 +- .../Classes/Builder/JSONBuilder.swift | 109 +++ .../JSONParseManager.swift | 42 +- .../Main/Controller/MainViewController.swift | 16 +- .../Setting/SettingViewController.swift | 10 +- JSONConverter/Classes/Model/File.swift | 34 +- .../Highlightr/Assets/Highlighter/LICENSE | 24 + .../Assets/Highlighter/highlight.min.js | 0 .../Assets/styles/a11y-dark.min.css | 0 .../Assets/styles/a11y-light.min.css | 0 .../Assets/styles/agate.min.css | 0 .../Assets/styles/an-old-hope.min.css | 0 .../Assets/styles/androidstudio.min.css | 0 .../Assets/styles/arduino-light.min.css | 0 .../Assets/styles/arta.min.css | 0 .../Assets/styles/ascetic.min.css | 0 .../Assets/styles/atelier-cave-dark.min.css | 0 .../Assets/styles/atelier-cave-light.min.css | 0 .../Assets/styles/atelier-dune-dark.min.css | 0 .../Assets/styles/atelier-dune-light.min.css | 0 .../styles/atelier-estuary-dark.min.css | 0 .../styles/atelier-estuary-light.min.css | 0 .../Assets/styles/atelier-forest-dark.min.css | 0 .../styles/atelier-forest-light.min.css | 0 .../Assets/styles/atelier-heath-dark.min.css | 0 .../Assets/styles/atelier-heath-light.min.css | 0 .../styles/atelier-lakeside-dark.min.css | 0 .../styles/atelier-lakeside-light.min.css | 0 .../styles/atelier-plateau-dark.min.css | 0 .../styles/atelier-plateau-light.min.css | 0 .../styles/atelier-savanna-dark.min.css | 0 .../styles/atelier-savanna-light.min.css | 0 .../styles/atelier-seaside-dark.min.css | 0 .../styles/atelier-seaside-light.min.css | 0 .../styles/atelier-sulphurpool-dark.min.css | 0 .../styles/atelier-sulphurpool-light.min.css | 0 .../styles/atom-one-dark-reasonable.min.css | 0 .../Assets/styles/atom-one-dark.min.css | 0 .../Assets/styles/atom-one-light.min.css | 0 .../Assets/styles/brown-paper.min.css | 0 .../Assets/styles/codepen-embed.min.css | 0 .../Assets/styles/color-brewer.min.css | 0 .../Assets/styles/darcula.min.css | 0 .../Assets/styles/dark.min.css | 0 .../Assets/styles/darkula.min.css | 0 .../Assets/styles/default.min.css | 0 .../Assets/styles/docco.min.css | 0 .../Assets/styles/dracula.min.css | 0 .../Assets/styles/far.min.css | 0 .../Assets/styles/foundation.min.css | 0 .../Assets/styles/github-gist.min.css | 0 .../Assets/styles/github.min.css | 0 .../Assets/styles/gml.min.css | 0 .../Assets/styles/googlecode.min.css | 0 .../Assets/styles/grayscale.min.css | 0 .../Assets/styles/gruvbox-dark.min.css | 0 .../Assets/styles/gruvbox-light.min.css | 0 .../Assets/styles/hopscotch.min.css | 0 .../Assets/styles/hybrid.min.css | 0 .../Assets/styles/idea.min.css | 0 .../Assets/styles/ir-black.min.css | 0 .../Assets/styles/isbl-editor-dark.min.css | 0 .../Assets/styles/isbl-editor-light.min.css | 0 .../Assets/styles/kimbie.dark.min.css | 0 .../Assets/styles/kimbie.light.min.css | 0 .../Assets/styles/lightfair.min.css | 0 .../Assets/styles/magula.min.css | 0 .../Assets/styles/mono-blue.min.css | 0 .../Assets/styles/monokai-sublime.min.css | 0 .../Assets/styles/monokai.min.css | 0 .../Assets/styles/nord.min.css | 0 .../Assets/styles/obsidian.min.css | 0 .../Assets/styles/ocean.min.css | 0 .../Assets/styles/paraiso-dark.min.css | 0 .../Assets/styles/paraiso-light.min.css | 0 .../Assets/styles/pojoaque.min.css | 0 .../Assets/styles/purebasic.min.css | 0 .../Assets/styles/qtcreator_dark.min.css | 0 .../Assets/styles/qtcreator_light.min.css | 0 .../Assets/styles/railscasts.min.css | 0 .../Assets/styles/rainbow.min.css | 0 .../Assets/styles/routeros.min.css | 0 .../Assets/styles/school-book.min.css | 0 .../Assets/styles/shades-of-purple.min.css | 0 .../Assets/styles/solarized-dark.min.css | 0 .../Assets/styles/solarized-light.min.css | 0 .../Assets/styles/sunburst.min.css | 0 .../Assets/styles/tomorrow-night-blue.min.css | 0 .../styles/tomorrow-night-bright.min.css | 0 .../styles/tomorrow-night-eighties.min.css | 0 .../Assets/styles/tomorrow-night.min.css | 0 .../Assets/styles/tomorrow.min.css | 0 .../Assets/styles/vs.min.css | 0 .../Assets/styles/vs2015.min.css | 0 .../Assets/styles/xcode.min.css | 0 .../Assets/styles/xt256.min.css | 0 .../Assets/styles/zenburn.min.css | 0 .../Classes/CodeAttributedString.swift | 2 + .../Classes/HTMLUtils.swift | 0 .../Classes/Highlightr.swift | 4 + .../Classes/Shims.swift | 2 + .../Classes/Theme.swift | 18 +- 103 files changed, 619 insertions(+), 468 deletions(-) rename JSONConverter/Classes/{Manager/FileConfigManager.swift => Builder/FileConfigBuilder.swift} (87%) create mode 100644 JSONConverter/Classes/Builder/JSONBuilder.swift rename JSONConverter/Classes/{Manager => Builder}/JSONParseManager.swift (58%) create mode 100644 JSONConverter/Vendor/Highlightr/Assets/Highlighter/LICENSE rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/Highlighter/highlight.min.js (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/a11y-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/a11y-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/agate.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/an-old-hope.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/androidstudio.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/arduino-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/arta.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/ascetic.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-cave-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-cave-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-dune-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-dune-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-estuary-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-estuary-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-forest-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-forest-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-heath-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-heath-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-lakeside-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-lakeside-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-plateau-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-plateau-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-savanna-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-savanna-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-seaside-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-seaside-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-sulphurpool-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atelier-sulphurpool-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atom-one-dark-reasonable.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atom-one-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/atom-one-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/brown-paper.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/codepen-embed.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/color-brewer.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/darcula.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/darkula.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/default.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/docco.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/dracula.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/far.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/foundation.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/github-gist.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/github.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/gml.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/googlecode.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/grayscale.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/gruvbox-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/gruvbox-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/hopscotch.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/hybrid.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/idea.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/ir-black.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/isbl-editor-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/isbl-editor-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/kimbie.dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/kimbie.light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/lightfair.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/magula.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/mono-blue.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/monokai-sublime.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/monokai.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/nord.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/obsidian.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/ocean.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/paraiso-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/paraiso-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/pojoaque.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/purebasic.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/qtcreator_dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/qtcreator_light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/railscasts.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/rainbow.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/routeros.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/school-book.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/shades-of-purple.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/solarized-dark.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/solarized-light.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/sunburst.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/tomorrow-night-blue.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/tomorrow-night-bright.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/tomorrow-night-eighties.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/tomorrow-night.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/tomorrow.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/vs.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/vs2015.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/xcode.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/xt256.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Assets/styles/zenburn.min.css (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Classes/CodeAttributedString.swift (99%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Classes/HTMLUtils.swift (100%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Classes/Highlightr.swift (98%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Classes/Shims.swift (93%) rename JSONConverter/Vendor/{Highlightr_2.1.0 => Highlightr}/Classes/Theme.swift (95%) diff --git a/JSONConverter.xcodeproj/project.pbxproj b/JSONConverter.xcodeproj/project.pbxproj index 34cbad4..ba093c0 100644 --- a/JSONConverter.xcodeproj/project.pbxproj +++ b/JSONConverter.xcodeproj/project.pbxproj @@ -8,7 +8,7 @@ /* Begin PBXBuildFile section */ 7B2D34F922E6072B009D2ED2 /* wechat.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 7B2D34F822E6072A009D2ED2 /* wechat.jpeg */; }; - 7B45DAFE202A95BF007E8D56 /* JSONParseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B45DAEC202A95BE007E8D56 /* JSONParseManager.swift */; }; + 7B45DAFE202A95BF007E8D56 /* JSONBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B45DAEC202A95BE007E8D56 /* JSONBuilder.swift */; }; 7B45DAFF202A95BF007E8D56 /* MainViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7B45DAED202A95BE007E8D56 /* MainViewController.xib */; }; 7B45DB00202A95BF007E8D56 /* MainWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B45DAEE202A95BE007E8D56 /* MainWindowController.swift */; }; 7B45DB01202A95BF007E8D56 /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B45DAEF202A95BE007E8D56 /* MainViewController.swift */; }; @@ -19,7 +19,7 @@ 7B45DB08202A95BF007E8D56 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B45DAF9202A95BE007E8D56 /* AppDelegate.swift */; }; 7B45DB0F202AA572007E8D56 /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B45DB0E202AA572007E8D56 /* File.swift */; }; 7B7D5AE224FA2B2700A54D27 /* StringUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B7D5AE124FA2B2700A54D27 /* StringUtils.swift */; }; - 7B7D5AE424FA345C00A54D27 /* FileConfigManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B7D5AE324FA345C00A54D27 /* FileConfigManager.swift */; }; + 7B7D5AE424FA345C00A54D27 /* FileConfigBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B7D5AE324FA345C00A54D27 /* FileConfigBuilder.swift */; }; 7B7D5AE624FA520800A54D27 /* Date+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B7D5AE524FA520800A54D27 /* Date+Extension.swift */; }; 7B95A32224F95F69000D141B /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7B95A32424F95F69000D141B /* Localizable.strings */; }; 7BD7FEDA202AC7C10003AE80 /* Content.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BD7FED9202AC7C10003AE80 /* Content.swift */; }; @@ -38,101 +38,102 @@ 8E542C31251350080053C1E0 /* ExportClassesModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E542C30251350080053C1E0 /* ExportClassesModel.swift */; }; 8E68571D22850F4800DCDF2E /* Notification+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E68571C22850F4800DCDF2E /* Notification+Extension.swift */; }; 8EB0531424FCDABF00B96D79 /* NSColor+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EB0531324FCDABF00B96D79 /* NSColor+Extension.swift */; }; - 8EEE5BDA25184E9800004C58 /* CodeAttributedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EEE5B7625184E9800004C58 /* CodeAttributedString.swift */; }; - 8EEE5BDB25184E9800004C58 /* Highlightr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EEE5B7725184E9800004C58 /* Highlightr.swift */; }; - 8EEE5BDC25184E9800004C58 /* HTMLUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EEE5B7825184E9800004C58 /* HTMLUtils.swift */; }; - 8EEE5BDD25184E9800004C58 /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EEE5B7925184E9800004C58 /* Theme.swift */; }; - 8EEE5BDE25184E9800004C58 /* Shims.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EEE5B7A25184E9800004C58 /* Shims.swift */; }; - 8EEE5BDF25184E9800004C58 /* vs.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B7D25184E9800004C58 /* vs.min.css */; }; - 8EEE5BE025184E9800004C58 /* atelier-seaside-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B7E25184E9800004C58 /* atelier-seaside-dark.min.css */; }; - 8EEE5BE125184E9800004C58 /* isbl-editor-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B7F25184E9800004C58 /* isbl-editor-dark.min.css */; }; - 8EEE5BE225184E9800004C58 /* brown-paper.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8025184E9800004C58 /* brown-paper.min.css */; }; - 8EEE5BE325184E9800004C58 /* atelier-plateau-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8125184E9800004C58 /* atelier-plateau-light.min.css */; }; - 8EEE5BE425184E9800004C58 /* school-book.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8225184E9800004C58 /* school-book.min.css */; }; - 8EEE5BE525184E9800004C58 /* xcode.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8325184E9800004C58 /* xcode.min.css */; }; - 8EEE5BE625184E9800004C58 /* atelier-sulphurpool-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8425184E9800004C58 /* atelier-sulphurpool-dark.min.css */; }; - 8EEE5BE725184E9800004C58 /* tomorrow-night-blue.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8525184E9800004C58 /* tomorrow-night-blue.min.css */; }; - 8EEE5BE825184E9800004C58 /* vs2015.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8625184E9800004C58 /* vs2015.min.css */; }; - 8EEE5BE925184E9800004C58 /* atelier-heath-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8725184E9800004C58 /* atelier-heath-dark.min.css */; }; - 8EEE5BEA25184E9800004C58 /* paraiso-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8825184E9800004C58 /* paraiso-light.min.css */; }; - 8EEE5BEB25184E9800004C58 /* rainbow.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8925184E9800004C58 /* rainbow.min.css */; }; - 8EEE5BEC25184E9800004C58 /* qtcreator_light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8A25184E9800004C58 /* qtcreator_light.min.css */; }; - 8EEE5BED25184E9800004C58 /* a11y-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8B25184E9800004C58 /* a11y-light.min.css */; }; - 8EEE5BEE25184E9800004C58 /* kimbie.dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8C25184E9800004C58 /* kimbie.dark.min.css */; }; - 8EEE5BEF25184E9800004C58 /* atelier-heath-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8D25184E9800004C58 /* atelier-heath-light.min.css */; }; - 8EEE5BF025184E9800004C58 /* far.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8E25184E9800004C58 /* far.min.css */; }; - 8EEE5BF125184E9800004C58 /* atelier-dune-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B8F25184E9800004C58 /* atelier-dune-dark.min.css */; }; - 8EEE5BF225184E9800004C58 /* shades-of-purple.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9025184E9800004C58 /* shades-of-purple.min.css */; }; - 8EEE5BF325184E9800004C58 /* kimbie.light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9125184E9800004C58 /* kimbie.light.min.css */; }; - 8EEE5BF425184E9800004C58 /* railscasts.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9225184E9800004C58 /* railscasts.min.css */; }; - 8EEE5BF525184E9800004C58 /* solarized-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9325184E9800004C58 /* solarized-dark.min.css */; }; - 8EEE5BF625184E9800004C58 /* atelier-estuary-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9425184E9800004C58 /* atelier-estuary-light.min.css */; }; - 8EEE5BF725184E9800004C58 /* xt256.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9525184E9800004C58 /* xt256.min.css */; }; - 8EEE5BF825184E9800004C58 /* mono-blue.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9625184E9800004C58 /* mono-blue.min.css */; }; - 8EEE5BF925184E9800004C58 /* ocean.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9725184E9800004C58 /* ocean.min.css */; }; - 8EEE5BFA25184E9800004C58 /* github-gist.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9825184E9800004C58 /* github-gist.min.css */; }; - 8EEE5BFB25184E9800004C58 /* atelier-seaside-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9925184E9800004C58 /* atelier-seaside-light.min.css */; }; - 8EEE5BFC25184E9800004C58 /* tomorrow-night-eighties.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9A25184E9800004C58 /* tomorrow-night-eighties.min.css */; }; - 8EEE5BFD25184E9800004C58 /* atom-one-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9B25184E9800004C58 /* atom-one-dark.min.css */; }; - 8EEE5BFE25184E9800004C58 /* qtcreator_dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9C25184E9800004C58 /* qtcreator_dark.min.css */; }; - 8EEE5BFF25184E9800004C58 /* atelier-savanna-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9D25184E9800004C58 /* atelier-savanna-dark.min.css */; }; - 8EEE5C0025184E9800004C58 /* color-brewer.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9E25184E9800004C58 /* color-brewer.min.css */; }; - 8EEE5C0125184E9800004C58 /* pojoaque.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5B9F25184E9800004C58 /* pojoaque.min.css */; }; - 8EEE5C0225184E9800004C58 /* routeros.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BA025184E9800004C58 /* routeros.min.css */; }; - 8EEE5C0325184E9800004C58 /* atelier-forest-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BA125184E9800004C58 /* atelier-forest-dark.min.css */; }; - 8EEE5C0425184E9800004C58 /* gml.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BA225184E9800004C58 /* gml.min.css */; }; - 8EEE5C0525184E9800004C58 /* tomorrow-night.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BA325184E9800004C58 /* tomorrow-night.min.css */; }; - 8EEE5C0625184E9800004C58 /* obsidian.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BA425184E9800004C58 /* obsidian.min.css */; }; - 8EEE5C0725184E9800004C58 /* lightfair.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BA525184E9800004C58 /* lightfair.min.css */; }; - 8EEE5C0825184E9800004C58 /* atelier-lakeside-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BA625184E9800004C58 /* atelier-lakeside-dark.min.css */; }; - 8EEE5C0925184E9800004C58 /* gruvbox-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BA725184E9800004C58 /* gruvbox-light.min.css */; }; - 8EEE5C0A25184E9800004C58 /* idea.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BA825184E9800004C58 /* idea.min.css */; }; - 8EEE5C0B25184E9800004C58 /* tomorrow.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BA925184E9800004C58 /* tomorrow.min.css */; }; - 8EEE5C0C25184E9800004C58 /* atelier-forest-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BAA25184E9800004C58 /* atelier-forest-light.min.css */; }; - 8EEE5C0D25184E9800004C58 /* arduino-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BAB25184E9800004C58 /* arduino-light.min.css */; }; - 8EEE5C0E25184E9800004C58 /* gruvbox-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BAC25184E9800004C58 /* gruvbox-dark.min.css */; }; - 8EEE5C0F25184E9800004C58 /* dracula.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BAD25184E9800004C58 /* dracula.min.css */; }; - 8EEE5C1025184E9800004C58 /* magula.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BAE25184E9800004C58 /* magula.min.css */; }; - 8EEE5C1125184E9800004C58 /* arta.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BAF25184E9800004C58 /* arta.min.css */; }; - 8EEE5C1225184E9800004C58 /* purebasic.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BB025184E9800004C58 /* purebasic.min.css */; }; - 8EEE5C1325184E9800004C58 /* hopscotch.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BB125184E9800004C58 /* hopscotch.min.css */; }; - 8EEE5C1425184E9800004C58 /* github.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BB225184E9800004C58 /* github.min.css */; }; - 8EEE5C1525184E9800004C58 /* nord.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BB325184E9800004C58 /* nord.min.css */; }; - 8EEE5C1625184E9800004C58 /* dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BB425184E9800004C58 /* dark.min.css */; }; - 8EEE5C1725184E9800004C58 /* atom-one-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BB525184E9800004C58 /* atom-one-light.min.css */; }; - 8EEE5C1825184E9800004C58 /* monokai.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BB625184E9800004C58 /* monokai.min.css */; }; - 8EEE5C1925184E9800004C58 /* docco.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BB725184E9800004C58 /* docco.min.css */; }; - 8EEE5C1A25184E9800004C58 /* default.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BB825184E9800004C58 /* default.min.css */; }; - 8EEE5C1B25184E9800004C58 /* ascetic.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BB925184E9800004C58 /* ascetic.min.css */; }; - 8EEE5C1C25184E9800004C58 /* isbl-editor-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BBA25184E9800004C58 /* isbl-editor-light.min.css */; }; - 8EEE5C1D25184E9800004C58 /* atelier-cave-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BBB25184E9800004C58 /* atelier-cave-light.min.css */; }; - 8EEE5C1E25184E9800004C58 /* a11y-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BBC25184E9800004C58 /* a11y-dark.min.css */; }; - 8EEE5C1F25184E9800004C58 /* atelier-sulphurpool-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BBD25184E9800004C58 /* atelier-sulphurpool-light.min.css */; }; - 8EEE5C2025184E9800004C58 /* atelier-plateau-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BBE25184E9800004C58 /* atelier-plateau-dark.min.css */; }; - 8EEE5C2125184E9800004C58 /* darkula.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BBF25184E9800004C58 /* darkula.min.css */; }; - 8EEE5C2225184E9800004C58 /* atelier-cave-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BC025184E9800004C58 /* atelier-cave-dark.min.css */; }; - 8EEE5C2325184E9800004C58 /* ir-black.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BC125184E9800004C58 /* ir-black.min.css */; }; - 8EEE5C2425184E9800004C58 /* solarized-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BC225184E9800004C58 /* solarized-light.min.css */; }; - 8EEE5C2525184E9800004C58 /* tomorrow-night-bright.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BC325184E9800004C58 /* tomorrow-night-bright.min.css */; }; - 8EEE5C2625184E9800004C58 /* atelier-savanna-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BC425184E9800004C58 /* atelier-savanna-light.min.css */; }; - 8EEE5C2725184E9800004C58 /* foundation.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BC525184E9800004C58 /* foundation.min.css */; }; - 8EEE5C2825184E9800004C58 /* codepen-embed.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BC625184E9800004C58 /* codepen-embed.min.css */; }; - 8EEE5C2925184E9800004C58 /* atelier-estuary-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BC725184E9800004C58 /* atelier-estuary-dark.min.css */; }; - 8EEE5C2A25184E9800004C58 /* googlecode.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BC825184E9800004C58 /* googlecode.min.css */; }; - 8EEE5C2B25184E9800004C58 /* atom-one-dark-reasonable.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BC925184E9800004C58 /* atom-one-dark-reasonable.min.css */; }; - 8EEE5C2C25184E9800004C58 /* atelier-dune-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BCA25184E9800004C58 /* atelier-dune-light.min.css */; }; - 8EEE5C2D25184E9800004C58 /* paraiso-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BCB25184E9800004C58 /* paraiso-dark.min.css */; }; - 8EEE5C2E25184E9800004C58 /* zenburn.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BCC25184E9800004C58 /* zenburn.min.css */; }; - 8EEE5C2F25184E9800004C58 /* androidstudio.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BCD25184E9800004C58 /* androidstudio.min.css */; }; - 8EEE5C3025184E9800004C58 /* grayscale.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BCE25184E9800004C58 /* grayscale.min.css */; }; - 8EEE5C3125184E9800004C58 /* sunburst.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BCF25184E9800004C58 /* sunburst.min.css */; }; - 8EEE5C3225184E9800004C58 /* agate.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BD025184E9800004C58 /* agate.min.css */; }; - 8EEE5C3325184E9800004C58 /* hybrid.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BD125184E9800004C58 /* hybrid.min.css */; }; - 8EEE5C3425184E9800004C58 /* darcula.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BD225184E9800004C58 /* darcula.min.css */; }; - 8EEE5C3525184E9800004C58 /* atelier-lakeside-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BD325184E9800004C58 /* atelier-lakeside-light.min.css */; }; - 8EEE5C3625184E9800004C58 /* monokai-sublime.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BD425184E9800004C58 /* monokai-sublime.min.css */; }; - 8EEE5C3725184E9800004C58 /* an-old-hope.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BD525184E9800004C58 /* an-old-hope.min.css */; }; - 8EEE5C3825184E9800004C58 /* highlight.min.js in Resources */ = {isa = PBXBuildFile; fileRef = 8EEE5BD725184E9800004C58 /* highlight.min.js */; }; + 8EC0797D268993D400000F68 /* CodeAttributedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EC07918268993D400000F68 /* CodeAttributedString.swift */; }; + 8EC0797E268993D400000F68 /* Highlightr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EC07919268993D400000F68 /* Highlightr.swift */; }; + 8EC07980268993D400000F68 /* HTMLUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EC0791B268993D400000F68 /* HTMLUtils.swift */; }; + 8EC07981268993D400000F68 /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EC0791C268993D400000F68 /* Theme.swift */; }; + 8EC07982268993D400000F68 /* Shims.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EC0791D268993D400000F68 /* Shims.swift */; }; + 8EC07984268993D400000F68 /* vs.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07921268993D400000F68 /* vs.min.css */; }; + 8EC07985268993D400000F68 /* atelier-seaside-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07922268993D400000F68 /* atelier-seaside-dark.min.css */; }; + 8EC07986268993D400000F68 /* isbl-editor-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07923268993D400000F68 /* isbl-editor-dark.min.css */; }; + 8EC07987268993D400000F68 /* brown-paper.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07924268993D400000F68 /* brown-paper.min.css */; }; + 8EC07988268993D400000F68 /* atelier-plateau-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07925268993D400000F68 /* atelier-plateau-light.min.css */; }; + 8EC07989268993D400000F68 /* school-book.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07926268993D400000F68 /* school-book.min.css */; }; + 8EC0798A268993D400000F68 /* xcode.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07927268993D400000F68 /* xcode.min.css */; }; + 8EC0798B268993D400000F68 /* atelier-sulphurpool-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07928268993D400000F68 /* atelier-sulphurpool-dark.min.css */; }; + 8EC0798C268993D400000F68 /* tomorrow-night-blue.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07929268993D400000F68 /* tomorrow-night-blue.min.css */; }; + 8EC0798D268993D400000F68 /* vs2015.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0792A268993D400000F68 /* vs2015.min.css */; }; + 8EC0798E268993D400000F68 /* atelier-heath-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0792B268993D400000F68 /* atelier-heath-dark.min.css */; }; + 8EC0798F268993D400000F68 /* paraiso-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0792C268993D400000F68 /* paraiso-light.min.css */; }; + 8EC07990268993D400000F68 /* rainbow.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0792D268993D400000F68 /* rainbow.min.css */; }; + 8EC07991268993D400000F68 /* qtcreator_light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0792E268993D400000F68 /* qtcreator_light.min.css */; }; + 8EC07992268993D400000F68 /* a11y-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0792F268993D400000F68 /* a11y-light.min.css */; }; + 8EC07993268993D400000F68 /* kimbie.dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07930268993D400000F68 /* kimbie.dark.min.css */; }; + 8EC07994268993D400000F68 /* atelier-heath-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07931268993D400000F68 /* atelier-heath-light.min.css */; }; + 8EC07995268993D400000F68 /* far.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07932268993D400000F68 /* far.min.css */; }; + 8EC07996268993D400000F68 /* atelier-dune-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07933268993D400000F68 /* atelier-dune-dark.min.css */; }; + 8EC07997268993D400000F68 /* shades-of-purple.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07934268993D400000F68 /* shades-of-purple.min.css */; }; + 8EC07998268993D400000F68 /* kimbie.light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07935268993D400000F68 /* kimbie.light.min.css */; }; + 8EC07999268993D400000F68 /* railscasts.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07936268993D400000F68 /* railscasts.min.css */; }; + 8EC0799A268993D400000F68 /* solarized-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07937268993D400000F68 /* solarized-dark.min.css */; }; + 8EC0799B268993D400000F68 /* atelier-estuary-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07938268993D400000F68 /* atelier-estuary-light.min.css */; }; + 8EC0799C268993D400000F68 /* xt256.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07939268993D400000F68 /* xt256.min.css */; }; + 8EC0799D268993D400000F68 /* mono-blue.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0793A268993D400000F68 /* mono-blue.min.css */; }; + 8EC0799E268993D400000F68 /* ocean.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0793B268993D400000F68 /* ocean.min.css */; }; + 8EC0799F268993D400000F68 /* github-gist.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0793C268993D400000F68 /* github-gist.min.css */; }; + 8EC079A0268993D400000F68 /* atelier-seaside-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0793D268993D400000F68 /* atelier-seaside-light.min.css */; }; + 8EC079A1268993D400000F68 /* tomorrow-night-eighties.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0793E268993D400000F68 /* tomorrow-night-eighties.min.css */; }; + 8EC079A2268993D400000F68 /* atom-one-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0793F268993D400000F68 /* atom-one-dark.min.css */; }; + 8EC079A3268993D400000F68 /* qtcreator_dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07940268993D400000F68 /* qtcreator_dark.min.css */; }; + 8EC079A4268993D400000F68 /* atelier-savanna-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07941268993D400000F68 /* atelier-savanna-dark.min.css */; }; + 8EC079A5268993D400000F68 /* color-brewer.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07942268993D400000F68 /* color-brewer.min.css */; }; + 8EC079A6268993D400000F68 /* pojoaque.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07943268993D400000F68 /* pojoaque.min.css */; }; + 8EC079A7268993D400000F68 /* routeros.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07944268993D400000F68 /* routeros.min.css */; }; + 8EC079A8268993D400000F68 /* atelier-forest-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07945268993D400000F68 /* atelier-forest-dark.min.css */; }; + 8EC079A9268993D400000F68 /* gml.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07946268993D400000F68 /* gml.min.css */; }; + 8EC079AA268993D400000F68 /* tomorrow-night.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07947268993D400000F68 /* tomorrow-night.min.css */; }; + 8EC079AB268993D400000F68 /* obsidian.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07948268993D400000F68 /* obsidian.min.css */; }; + 8EC079AC268993D400000F68 /* lightfair.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07949268993D400000F68 /* lightfair.min.css */; }; + 8EC079AD268993D400000F68 /* atelier-lakeside-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0794A268993D400000F68 /* atelier-lakeside-dark.min.css */; }; + 8EC079AE268993D400000F68 /* gruvbox-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0794B268993D400000F68 /* gruvbox-light.min.css */; }; + 8EC079AF268993D400000F68 /* idea.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0794C268993D400000F68 /* idea.min.css */; }; + 8EC079B0268993D400000F68 /* tomorrow.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0794D268993D400000F68 /* tomorrow.min.css */; }; + 8EC079B1268993D400000F68 /* atelier-forest-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0794E268993D400000F68 /* atelier-forest-light.min.css */; }; + 8EC079B2268993D400000F68 /* arduino-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0794F268993D400000F68 /* arduino-light.min.css */; }; + 8EC079B3268993D400000F68 /* gruvbox-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07950268993D400000F68 /* gruvbox-dark.min.css */; }; + 8EC079B4268993D400000F68 /* dracula.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07951268993D400000F68 /* dracula.min.css */; }; + 8EC079B5268993D400000F68 /* magula.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07952268993D400000F68 /* magula.min.css */; }; + 8EC079B6268993D400000F68 /* arta.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07953268993D400000F68 /* arta.min.css */; }; + 8EC079B7268993D400000F68 /* purebasic.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07954268993D400000F68 /* purebasic.min.css */; }; + 8EC079B8268993D400000F68 /* hopscotch.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07955268993D400000F68 /* hopscotch.min.css */; }; + 8EC079B9268993D400000F68 /* github.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07956268993D400000F68 /* github.min.css */; }; + 8EC079BA268993D400000F68 /* nord.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07957268993D400000F68 /* nord.min.css */; }; + 8EC079BB268993D400000F68 /* dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07958268993D400000F68 /* dark.min.css */; }; + 8EC079BC268993D400000F68 /* atom-one-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07959268993D400000F68 /* atom-one-light.min.css */; }; + 8EC079BD268993D400000F68 /* monokai.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0795A268993D400000F68 /* monokai.min.css */; }; + 8EC079BE268993D400000F68 /* docco.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0795B268993D400000F68 /* docco.min.css */; }; + 8EC079BF268993D400000F68 /* default.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0795C268993D400000F68 /* default.min.css */; }; + 8EC079C0268993D400000F68 /* ascetic.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0795D268993D400000F68 /* ascetic.min.css */; }; + 8EC079C1268993D400000F68 /* isbl-editor-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0795E268993D400000F68 /* isbl-editor-light.min.css */; }; + 8EC079C2268993D400000F68 /* atelier-cave-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0795F268993D400000F68 /* atelier-cave-light.min.css */; }; + 8EC079C3268993D400000F68 /* a11y-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07960268993D400000F68 /* a11y-dark.min.css */; }; + 8EC079C4268993D400000F68 /* atelier-sulphurpool-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07961268993D400000F68 /* atelier-sulphurpool-light.min.css */; }; + 8EC079C5268993D400000F68 /* atelier-plateau-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07962268993D400000F68 /* atelier-plateau-dark.min.css */; }; + 8EC079C6268993D400000F68 /* darkula.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07963268993D400000F68 /* darkula.min.css */; }; + 8EC079C7268993D400000F68 /* atelier-cave-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07964268993D400000F68 /* atelier-cave-dark.min.css */; }; + 8EC079C8268993D400000F68 /* ir-black.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07965268993D400000F68 /* ir-black.min.css */; }; + 8EC079C9268993D400000F68 /* solarized-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07966268993D400000F68 /* solarized-light.min.css */; }; + 8EC079CA268993D400000F68 /* tomorrow-night-bright.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07967268993D400000F68 /* tomorrow-night-bright.min.css */; }; + 8EC079CB268993D400000F68 /* atelier-savanna-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07968268993D400000F68 /* atelier-savanna-light.min.css */; }; + 8EC079CC268993D400000F68 /* foundation.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07969268993D400000F68 /* foundation.min.css */; }; + 8EC079CD268993D400000F68 /* codepen-embed.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0796A268993D400000F68 /* codepen-embed.min.css */; }; + 8EC079CE268993D400000F68 /* atelier-estuary-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0796B268993D400000F68 /* atelier-estuary-dark.min.css */; }; + 8EC079CF268993D400000F68 /* googlecode.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0796C268993D400000F68 /* googlecode.min.css */; }; + 8EC079D0268993D400000F68 /* atom-one-dark-reasonable.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0796D268993D400000F68 /* atom-one-dark-reasonable.min.css */; }; + 8EC079D1268993D400000F68 /* atelier-dune-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0796E268993D400000F68 /* atelier-dune-light.min.css */; }; + 8EC079D2268993D400000F68 /* paraiso-dark.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0796F268993D400000F68 /* paraiso-dark.min.css */; }; + 8EC079D3268993D400000F68 /* zenburn.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07970268993D400000F68 /* zenburn.min.css */; }; + 8EC079D4268993D400000F68 /* androidstudio.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07971268993D400000F68 /* androidstudio.min.css */; }; + 8EC079D5268993D400000F68 /* grayscale.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07972268993D400000F68 /* grayscale.min.css */; }; + 8EC079D6268993D400000F68 /* sunburst.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07973268993D400000F68 /* sunburst.min.css */; }; + 8EC079D7268993D400000F68 /* agate.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07974268993D400000F68 /* agate.min.css */; }; + 8EC079D8268993D400000F68 /* hybrid.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07975268993D400000F68 /* hybrid.min.css */; }; + 8EC079D9268993D400000F68 /* darcula.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07976268993D400000F68 /* darcula.min.css */; }; + 8EC079DA268993D400000F68 /* atelier-lakeside-light.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07977268993D400000F68 /* atelier-lakeside-light.min.css */; }; + 8EC079DB268993D400000F68 /* monokai-sublime.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07978268993D400000F68 /* monokai-sublime.min.css */; }; + 8EC079DC268993D400000F68 /* an-old-hope.min.css in Resources */ = {isa = PBXBuildFile; fileRef = 8EC07979268993D400000F68 /* an-old-hope.min.css */; }; + 8EC079DD268993D400000F68 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0797B268993D400000F68 /* LICENSE */; }; + 8EC079DE268993D400000F68 /* highlight.min.js in Resources */ = {isa = PBXBuildFile; fileRef = 8EC0797C268993D400000F68 /* highlight.min.js */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -147,7 +148,7 @@ /* Begin PBXFileReference section */ 7B2D34F822E6072A009D2ED2 /* wechat.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = wechat.jpeg; sourceTree = ""; }; - 7B45DAEC202A95BE007E8D56 /* JSONParseManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JSONParseManager.swift; sourceTree = ""; }; + 7B45DAEC202A95BE007E8D56 /* JSONBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JSONBuilder.swift; sourceTree = ""; }; 7B45DAED202A95BE007E8D56 /* MainViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainViewController.xib; sourceTree = ""; }; 7B45DAEE202A95BE007E8D56 /* MainWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainWindowController.swift; sourceTree = ""; }; 7B45DAEF202A95BE007E8D56 /* MainViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = ""; }; @@ -161,7 +162,7 @@ 7B45DB0E202AA572007E8D56 /* File.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = File.swift; sourceTree = ""; }; 7B4B5EAA201B87A10098712B /* JSONConverter.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JSONConverter.app; sourceTree = BUILT_PRODUCTS_DIR; }; 7B7D5AE124FA2B2700A54D27 /* StringUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringUtils.swift; sourceTree = ""; }; - 7B7D5AE324FA345C00A54D27 /* FileConfigManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileConfigManager.swift; sourceTree = ""; }; + 7B7D5AE324FA345C00A54D27 /* FileConfigBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileConfigBuilder.swift; sourceTree = ""; }; 7B7D5AE524FA520800A54D27 /* Date+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Date+Extension.swift"; sourceTree = ""; }; 7B95A31E24F95EA1000D141B /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/MainMenu.strings"; sourceTree = ""; }; 7B95A32324F95F69000D141B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; @@ -185,101 +186,102 @@ 8E68571C22850F4800DCDF2E /* Notification+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Notification+Extension.swift"; sourceTree = ""; }; 8E9E8D09268202C300F778D0 /* JSONConverter-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "JSONConverter-Bridging-Header.h"; sourceTree = ""; }; 8EB0531324FCDABF00B96D79 /* NSColor+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSColor+Extension.swift"; sourceTree = ""; }; - 8EEE5B7625184E9800004C58 /* CodeAttributedString.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CodeAttributedString.swift; sourceTree = ""; }; - 8EEE5B7725184E9800004C58 /* Highlightr.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Highlightr.swift; sourceTree = ""; }; - 8EEE5B7825184E9800004C58 /* HTMLUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HTMLUtils.swift; sourceTree = ""; }; - 8EEE5B7925184E9800004C58 /* Theme.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; - 8EEE5B7A25184E9800004C58 /* Shims.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Shims.swift; sourceTree = ""; }; - 8EEE5B7D25184E9800004C58 /* vs.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = vs.min.css; sourceTree = ""; }; - 8EEE5B7E25184E9800004C58 /* atelier-seaside-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-seaside-dark.min.css"; sourceTree = ""; }; - 8EEE5B7F25184E9800004C58 /* isbl-editor-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "isbl-editor-dark.min.css"; sourceTree = ""; }; - 8EEE5B8025184E9800004C58 /* brown-paper.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "brown-paper.min.css"; sourceTree = ""; }; - 8EEE5B8125184E9800004C58 /* atelier-plateau-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-plateau-light.min.css"; sourceTree = ""; }; - 8EEE5B8225184E9800004C58 /* school-book.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "school-book.min.css"; sourceTree = ""; }; - 8EEE5B8325184E9800004C58 /* xcode.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = xcode.min.css; sourceTree = ""; }; - 8EEE5B8425184E9800004C58 /* atelier-sulphurpool-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-sulphurpool-dark.min.css"; sourceTree = ""; }; - 8EEE5B8525184E9800004C58 /* tomorrow-night-blue.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "tomorrow-night-blue.min.css"; sourceTree = ""; }; - 8EEE5B8625184E9800004C58 /* vs2015.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = vs2015.min.css; sourceTree = ""; }; - 8EEE5B8725184E9800004C58 /* atelier-heath-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-heath-dark.min.css"; sourceTree = ""; }; - 8EEE5B8825184E9800004C58 /* paraiso-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "paraiso-light.min.css"; sourceTree = ""; }; - 8EEE5B8925184E9800004C58 /* rainbow.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = rainbow.min.css; sourceTree = ""; }; - 8EEE5B8A25184E9800004C58 /* qtcreator_light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = qtcreator_light.min.css; sourceTree = ""; }; - 8EEE5B8B25184E9800004C58 /* a11y-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "a11y-light.min.css"; sourceTree = ""; }; - 8EEE5B8C25184E9800004C58 /* kimbie.dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = kimbie.dark.min.css; sourceTree = ""; }; - 8EEE5B8D25184E9800004C58 /* atelier-heath-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-heath-light.min.css"; sourceTree = ""; }; - 8EEE5B8E25184E9800004C58 /* far.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = far.min.css; sourceTree = ""; }; - 8EEE5B8F25184E9800004C58 /* atelier-dune-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-dune-dark.min.css"; sourceTree = ""; }; - 8EEE5B9025184E9800004C58 /* shades-of-purple.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "shades-of-purple.min.css"; sourceTree = ""; }; - 8EEE5B9125184E9800004C58 /* kimbie.light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = kimbie.light.min.css; sourceTree = ""; }; - 8EEE5B9225184E9800004C58 /* railscasts.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = railscasts.min.css; sourceTree = ""; }; - 8EEE5B9325184E9800004C58 /* solarized-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "solarized-dark.min.css"; sourceTree = ""; }; - 8EEE5B9425184E9800004C58 /* atelier-estuary-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-estuary-light.min.css"; sourceTree = ""; }; - 8EEE5B9525184E9800004C58 /* xt256.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = xt256.min.css; sourceTree = ""; }; - 8EEE5B9625184E9800004C58 /* mono-blue.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "mono-blue.min.css"; sourceTree = ""; }; - 8EEE5B9725184E9800004C58 /* ocean.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = ocean.min.css; sourceTree = ""; }; - 8EEE5B9825184E9800004C58 /* github-gist.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "github-gist.min.css"; sourceTree = ""; }; - 8EEE5B9925184E9800004C58 /* atelier-seaside-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-seaside-light.min.css"; sourceTree = ""; }; - 8EEE5B9A25184E9800004C58 /* tomorrow-night-eighties.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "tomorrow-night-eighties.min.css"; sourceTree = ""; }; - 8EEE5B9B25184E9800004C58 /* atom-one-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atom-one-dark.min.css"; sourceTree = ""; }; - 8EEE5B9C25184E9800004C58 /* qtcreator_dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = qtcreator_dark.min.css; sourceTree = ""; }; - 8EEE5B9D25184E9800004C58 /* atelier-savanna-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-savanna-dark.min.css"; sourceTree = ""; }; - 8EEE5B9E25184E9800004C58 /* color-brewer.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "color-brewer.min.css"; sourceTree = ""; }; - 8EEE5B9F25184E9800004C58 /* pojoaque.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = pojoaque.min.css; sourceTree = ""; }; - 8EEE5BA025184E9800004C58 /* routeros.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = routeros.min.css; sourceTree = ""; }; - 8EEE5BA125184E9800004C58 /* atelier-forest-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-forest-dark.min.css"; sourceTree = ""; }; - 8EEE5BA225184E9800004C58 /* gml.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = gml.min.css; sourceTree = ""; }; - 8EEE5BA325184E9800004C58 /* tomorrow-night.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "tomorrow-night.min.css"; sourceTree = ""; }; - 8EEE5BA425184E9800004C58 /* obsidian.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = obsidian.min.css; sourceTree = ""; }; - 8EEE5BA525184E9800004C58 /* lightfair.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = lightfair.min.css; sourceTree = ""; }; - 8EEE5BA625184E9800004C58 /* atelier-lakeside-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-lakeside-dark.min.css"; sourceTree = ""; }; - 8EEE5BA725184E9800004C58 /* gruvbox-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "gruvbox-light.min.css"; sourceTree = ""; }; - 8EEE5BA825184E9800004C58 /* idea.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = idea.min.css; sourceTree = ""; }; - 8EEE5BA925184E9800004C58 /* tomorrow.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = tomorrow.min.css; sourceTree = ""; }; - 8EEE5BAA25184E9800004C58 /* atelier-forest-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-forest-light.min.css"; sourceTree = ""; }; - 8EEE5BAB25184E9800004C58 /* arduino-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "arduino-light.min.css"; sourceTree = ""; }; - 8EEE5BAC25184E9800004C58 /* gruvbox-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "gruvbox-dark.min.css"; sourceTree = ""; }; - 8EEE5BAD25184E9800004C58 /* dracula.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = dracula.min.css; sourceTree = ""; }; - 8EEE5BAE25184E9800004C58 /* magula.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = magula.min.css; sourceTree = ""; }; - 8EEE5BAF25184E9800004C58 /* arta.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = arta.min.css; sourceTree = ""; }; - 8EEE5BB025184E9800004C58 /* purebasic.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = purebasic.min.css; sourceTree = ""; }; - 8EEE5BB125184E9800004C58 /* hopscotch.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = hopscotch.min.css; sourceTree = ""; }; - 8EEE5BB225184E9800004C58 /* github.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = github.min.css; sourceTree = ""; }; - 8EEE5BB325184E9800004C58 /* nord.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = nord.min.css; sourceTree = ""; }; - 8EEE5BB425184E9800004C58 /* dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = dark.min.css; sourceTree = ""; }; - 8EEE5BB525184E9800004C58 /* atom-one-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atom-one-light.min.css"; sourceTree = ""; }; - 8EEE5BB625184E9800004C58 /* monokai.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = monokai.min.css; sourceTree = ""; }; - 8EEE5BB725184E9800004C58 /* docco.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = docco.min.css; sourceTree = ""; }; - 8EEE5BB825184E9800004C58 /* default.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = default.min.css; sourceTree = ""; }; - 8EEE5BB925184E9800004C58 /* ascetic.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = ascetic.min.css; sourceTree = ""; }; - 8EEE5BBA25184E9800004C58 /* isbl-editor-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "isbl-editor-light.min.css"; sourceTree = ""; }; - 8EEE5BBB25184E9800004C58 /* atelier-cave-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-cave-light.min.css"; sourceTree = ""; }; - 8EEE5BBC25184E9800004C58 /* a11y-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "a11y-dark.min.css"; sourceTree = ""; }; - 8EEE5BBD25184E9800004C58 /* atelier-sulphurpool-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-sulphurpool-light.min.css"; sourceTree = ""; }; - 8EEE5BBE25184E9800004C58 /* atelier-plateau-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-plateau-dark.min.css"; sourceTree = ""; }; - 8EEE5BBF25184E9800004C58 /* darkula.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = darkula.min.css; sourceTree = ""; }; - 8EEE5BC025184E9800004C58 /* atelier-cave-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-cave-dark.min.css"; sourceTree = ""; }; - 8EEE5BC125184E9800004C58 /* ir-black.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "ir-black.min.css"; sourceTree = ""; }; - 8EEE5BC225184E9800004C58 /* solarized-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "solarized-light.min.css"; sourceTree = ""; }; - 8EEE5BC325184E9800004C58 /* tomorrow-night-bright.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "tomorrow-night-bright.min.css"; sourceTree = ""; }; - 8EEE5BC425184E9800004C58 /* atelier-savanna-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-savanna-light.min.css"; sourceTree = ""; }; - 8EEE5BC525184E9800004C58 /* foundation.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = foundation.min.css; sourceTree = ""; }; - 8EEE5BC625184E9800004C58 /* codepen-embed.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "codepen-embed.min.css"; sourceTree = ""; }; - 8EEE5BC725184E9800004C58 /* atelier-estuary-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-estuary-dark.min.css"; sourceTree = ""; }; - 8EEE5BC825184E9800004C58 /* googlecode.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = googlecode.min.css; sourceTree = ""; }; - 8EEE5BC925184E9800004C58 /* atom-one-dark-reasonable.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atom-one-dark-reasonable.min.css"; sourceTree = ""; }; - 8EEE5BCA25184E9800004C58 /* atelier-dune-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-dune-light.min.css"; sourceTree = ""; }; - 8EEE5BCB25184E9800004C58 /* paraiso-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "paraiso-dark.min.css"; sourceTree = ""; }; - 8EEE5BCC25184E9800004C58 /* zenburn.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = zenburn.min.css; sourceTree = ""; }; - 8EEE5BCD25184E9800004C58 /* androidstudio.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = androidstudio.min.css; sourceTree = ""; }; - 8EEE5BCE25184E9800004C58 /* grayscale.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = grayscale.min.css; sourceTree = ""; }; - 8EEE5BCF25184E9800004C58 /* sunburst.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = sunburst.min.css; sourceTree = ""; }; - 8EEE5BD025184E9800004C58 /* agate.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = agate.min.css; sourceTree = ""; }; - 8EEE5BD125184E9800004C58 /* hybrid.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = hybrid.min.css; sourceTree = ""; }; - 8EEE5BD225184E9800004C58 /* darcula.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = darcula.min.css; sourceTree = ""; }; - 8EEE5BD325184E9800004C58 /* atelier-lakeside-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-lakeside-light.min.css"; sourceTree = ""; }; - 8EEE5BD425184E9800004C58 /* monokai-sublime.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "monokai-sublime.min.css"; sourceTree = ""; }; - 8EEE5BD525184E9800004C58 /* an-old-hope.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "an-old-hope.min.css"; sourceTree = ""; }; - 8EEE5BD725184E9800004C58 /* highlight.min.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = highlight.min.js; sourceTree = ""; }; + 8EC07918268993D400000F68 /* CodeAttributedString.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CodeAttributedString.swift; sourceTree = ""; }; + 8EC07919268993D400000F68 /* Highlightr.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Highlightr.swift; sourceTree = ""; }; + 8EC0791B268993D400000F68 /* HTMLUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HTMLUtils.swift; sourceTree = ""; }; + 8EC0791C268993D400000F68 /* Theme.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; + 8EC0791D268993D400000F68 /* Shims.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Shims.swift; sourceTree = ""; }; + 8EC07921268993D400000F68 /* vs.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = vs.min.css; sourceTree = ""; }; + 8EC07922268993D400000F68 /* atelier-seaside-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-seaside-dark.min.css"; sourceTree = ""; }; + 8EC07923268993D400000F68 /* isbl-editor-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "isbl-editor-dark.min.css"; sourceTree = ""; }; + 8EC07924268993D400000F68 /* brown-paper.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "brown-paper.min.css"; sourceTree = ""; }; + 8EC07925268993D400000F68 /* atelier-plateau-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-plateau-light.min.css"; sourceTree = ""; }; + 8EC07926268993D400000F68 /* school-book.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "school-book.min.css"; sourceTree = ""; }; + 8EC07927268993D400000F68 /* xcode.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = xcode.min.css; sourceTree = ""; }; + 8EC07928268993D400000F68 /* atelier-sulphurpool-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-sulphurpool-dark.min.css"; sourceTree = ""; }; + 8EC07929268993D400000F68 /* tomorrow-night-blue.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "tomorrow-night-blue.min.css"; sourceTree = ""; }; + 8EC0792A268993D400000F68 /* vs2015.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = vs2015.min.css; sourceTree = ""; }; + 8EC0792B268993D400000F68 /* atelier-heath-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-heath-dark.min.css"; sourceTree = ""; }; + 8EC0792C268993D400000F68 /* paraiso-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "paraiso-light.min.css"; sourceTree = ""; }; + 8EC0792D268993D400000F68 /* rainbow.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = rainbow.min.css; sourceTree = ""; }; + 8EC0792E268993D400000F68 /* qtcreator_light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = qtcreator_light.min.css; sourceTree = ""; }; + 8EC0792F268993D400000F68 /* a11y-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "a11y-light.min.css"; sourceTree = ""; }; + 8EC07930268993D400000F68 /* kimbie.dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = kimbie.dark.min.css; sourceTree = ""; }; + 8EC07931268993D400000F68 /* atelier-heath-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-heath-light.min.css"; sourceTree = ""; }; + 8EC07932268993D400000F68 /* far.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = far.min.css; sourceTree = ""; }; + 8EC07933268993D400000F68 /* atelier-dune-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-dune-dark.min.css"; sourceTree = ""; }; + 8EC07934268993D400000F68 /* shades-of-purple.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "shades-of-purple.min.css"; sourceTree = ""; }; + 8EC07935268993D400000F68 /* kimbie.light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = kimbie.light.min.css; sourceTree = ""; }; + 8EC07936268993D400000F68 /* railscasts.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = railscasts.min.css; sourceTree = ""; }; + 8EC07937268993D400000F68 /* solarized-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "solarized-dark.min.css"; sourceTree = ""; }; + 8EC07938268993D400000F68 /* atelier-estuary-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-estuary-light.min.css"; sourceTree = ""; }; + 8EC07939268993D400000F68 /* xt256.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = xt256.min.css; sourceTree = ""; }; + 8EC0793A268993D400000F68 /* mono-blue.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "mono-blue.min.css"; sourceTree = ""; }; + 8EC0793B268993D400000F68 /* ocean.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = ocean.min.css; sourceTree = ""; }; + 8EC0793C268993D400000F68 /* github-gist.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "github-gist.min.css"; sourceTree = ""; }; + 8EC0793D268993D400000F68 /* atelier-seaside-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-seaside-light.min.css"; sourceTree = ""; }; + 8EC0793E268993D400000F68 /* tomorrow-night-eighties.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "tomorrow-night-eighties.min.css"; sourceTree = ""; }; + 8EC0793F268993D400000F68 /* atom-one-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atom-one-dark.min.css"; sourceTree = ""; }; + 8EC07940268993D400000F68 /* qtcreator_dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = qtcreator_dark.min.css; sourceTree = ""; }; + 8EC07941268993D400000F68 /* atelier-savanna-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-savanna-dark.min.css"; sourceTree = ""; }; + 8EC07942268993D400000F68 /* color-brewer.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "color-brewer.min.css"; sourceTree = ""; }; + 8EC07943268993D400000F68 /* pojoaque.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = pojoaque.min.css; sourceTree = ""; }; + 8EC07944268993D400000F68 /* routeros.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = routeros.min.css; sourceTree = ""; }; + 8EC07945268993D400000F68 /* atelier-forest-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-forest-dark.min.css"; sourceTree = ""; }; + 8EC07946268993D400000F68 /* gml.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = gml.min.css; sourceTree = ""; }; + 8EC07947268993D400000F68 /* tomorrow-night.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "tomorrow-night.min.css"; sourceTree = ""; }; + 8EC07948268993D400000F68 /* obsidian.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = obsidian.min.css; sourceTree = ""; }; + 8EC07949268993D400000F68 /* lightfair.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = lightfair.min.css; sourceTree = ""; }; + 8EC0794A268993D400000F68 /* atelier-lakeside-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-lakeside-dark.min.css"; sourceTree = ""; }; + 8EC0794B268993D400000F68 /* gruvbox-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "gruvbox-light.min.css"; sourceTree = ""; }; + 8EC0794C268993D400000F68 /* idea.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = idea.min.css; sourceTree = ""; }; + 8EC0794D268993D400000F68 /* tomorrow.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = tomorrow.min.css; sourceTree = ""; }; + 8EC0794E268993D400000F68 /* atelier-forest-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-forest-light.min.css"; sourceTree = ""; }; + 8EC0794F268993D400000F68 /* arduino-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "arduino-light.min.css"; sourceTree = ""; }; + 8EC07950268993D400000F68 /* gruvbox-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "gruvbox-dark.min.css"; sourceTree = ""; }; + 8EC07951268993D400000F68 /* dracula.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = dracula.min.css; sourceTree = ""; }; + 8EC07952268993D400000F68 /* magula.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = magula.min.css; sourceTree = ""; }; + 8EC07953268993D400000F68 /* arta.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = arta.min.css; sourceTree = ""; }; + 8EC07954268993D400000F68 /* purebasic.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = purebasic.min.css; sourceTree = ""; }; + 8EC07955268993D400000F68 /* hopscotch.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = hopscotch.min.css; sourceTree = ""; }; + 8EC07956268993D400000F68 /* github.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = github.min.css; sourceTree = ""; }; + 8EC07957268993D400000F68 /* nord.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = nord.min.css; sourceTree = ""; }; + 8EC07958268993D400000F68 /* dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = dark.min.css; sourceTree = ""; }; + 8EC07959268993D400000F68 /* atom-one-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atom-one-light.min.css"; sourceTree = ""; }; + 8EC0795A268993D400000F68 /* monokai.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = monokai.min.css; sourceTree = ""; }; + 8EC0795B268993D400000F68 /* docco.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = docco.min.css; sourceTree = ""; }; + 8EC0795C268993D400000F68 /* default.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = default.min.css; sourceTree = ""; }; + 8EC0795D268993D400000F68 /* ascetic.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = ascetic.min.css; sourceTree = ""; }; + 8EC0795E268993D400000F68 /* isbl-editor-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "isbl-editor-light.min.css"; sourceTree = ""; }; + 8EC0795F268993D400000F68 /* atelier-cave-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-cave-light.min.css"; sourceTree = ""; }; + 8EC07960268993D400000F68 /* a11y-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "a11y-dark.min.css"; sourceTree = ""; }; + 8EC07961268993D400000F68 /* atelier-sulphurpool-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-sulphurpool-light.min.css"; sourceTree = ""; }; + 8EC07962268993D400000F68 /* atelier-plateau-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-plateau-dark.min.css"; sourceTree = ""; }; + 8EC07963268993D400000F68 /* darkula.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = darkula.min.css; sourceTree = ""; }; + 8EC07964268993D400000F68 /* atelier-cave-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-cave-dark.min.css"; sourceTree = ""; }; + 8EC07965268993D400000F68 /* ir-black.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "ir-black.min.css"; sourceTree = ""; }; + 8EC07966268993D400000F68 /* solarized-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "solarized-light.min.css"; sourceTree = ""; }; + 8EC07967268993D400000F68 /* tomorrow-night-bright.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "tomorrow-night-bright.min.css"; sourceTree = ""; }; + 8EC07968268993D400000F68 /* atelier-savanna-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-savanna-light.min.css"; sourceTree = ""; }; + 8EC07969268993D400000F68 /* foundation.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = foundation.min.css; sourceTree = ""; }; + 8EC0796A268993D400000F68 /* codepen-embed.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "codepen-embed.min.css"; sourceTree = ""; }; + 8EC0796B268993D400000F68 /* atelier-estuary-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-estuary-dark.min.css"; sourceTree = ""; }; + 8EC0796C268993D400000F68 /* googlecode.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = googlecode.min.css; sourceTree = ""; }; + 8EC0796D268993D400000F68 /* atom-one-dark-reasonable.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atom-one-dark-reasonable.min.css"; sourceTree = ""; }; + 8EC0796E268993D400000F68 /* atelier-dune-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-dune-light.min.css"; sourceTree = ""; }; + 8EC0796F268993D400000F68 /* paraiso-dark.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "paraiso-dark.min.css"; sourceTree = ""; }; + 8EC07970268993D400000F68 /* zenburn.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = zenburn.min.css; sourceTree = ""; }; + 8EC07971268993D400000F68 /* androidstudio.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = androidstudio.min.css; sourceTree = ""; }; + 8EC07972268993D400000F68 /* grayscale.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = grayscale.min.css; sourceTree = ""; }; + 8EC07973268993D400000F68 /* sunburst.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = sunburst.min.css; sourceTree = ""; }; + 8EC07974268993D400000F68 /* agate.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = agate.min.css; sourceTree = ""; }; + 8EC07975268993D400000F68 /* hybrid.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = hybrid.min.css; sourceTree = ""; }; + 8EC07976268993D400000F68 /* darcula.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = darcula.min.css; sourceTree = ""; }; + 8EC07977268993D400000F68 /* atelier-lakeside-light.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "atelier-lakeside-light.min.css"; sourceTree = ""; }; + 8EC07978268993D400000F68 /* monokai-sublime.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "monokai-sublime.min.css"; sourceTree = ""; }; + 8EC07979268993D400000F68 /* an-old-hope.min.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "an-old-hope.min.css"; sourceTree = ""; }; + 8EC0797B268993D400000F68 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + 8EC0797C268993D400000F68 /* highlight.min.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = highlight.min.js; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -332,7 +334,7 @@ 7BD7FEDE202AC85B0003AE80 /* Model */, 8EBE0D08251200A7003A4B4B /* View */, 8E1945E82508A23C00E7CDCC /* Macros */, - 7BF1DD2E24FBA3B70090B531 /* Manager */, + 7BF1DD2E24FBA3B70090B531 /* Builder */, 7B95A31F24F95ECE000D141B /* Extension */, 8E43D13522E7E83F00F52C8E /* Utils */, ); @@ -419,13 +421,13 @@ path = Controller; sourceTree = ""; }; - 7BF1DD2E24FBA3B70090B531 /* Manager */ = { + 7BF1DD2E24FBA3B70090B531 /* Builder */ = { isa = PBXGroup; children = ( - 7B45DAEC202A95BE007E8D56 /* JSONParseManager.swift */, - 7B7D5AE324FA345C00A54D27 /* FileConfigManager.swift */, + 7B45DAEC202A95BE007E8D56 /* JSONBuilder.swift */, + 7B7D5AE324FA345C00A54D27 /* FileConfigBuilder.swift */, ); - path = Manager; + path = Builder; sourceTree = ""; }; 8E1945E82508A23C00E7CDCC /* Macros */ = { @@ -488,146 +490,147 @@ path = View; sourceTree = ""; }; - 8EEE5B7225184E8C00004C58 /* Vendor */ = { + 8EC07916268993D400000F68 /* Highlightr */ = { isa = PBXGroup; children = ( - 8EEE5B7325184E9800004C58 /* Highlightr_2.1.0 */, + 8EC07917268993D400000F68 /* Classes */, + 8EC0791E268993D400000F68 /* Assets */, ); - path = Vendor; + path = Highlightr; sourceTree = ""; }; - 8EEE5B7325184E9800004C58 /* Highlightr_2.1.0 */ = { + 8EC07917268993D400000F68 /* Classes */ = { isa = PBXGroup; children = ( - 8EEE5B7525184E9800004C58 /* Classes */, - 8EEE5B7B25184E9800004C58 /* Assets */, + 8EC07918268993D400000F68 /* CodeAttributedString.swift */, + 8EC07919268993D400000F68 /* Highlightr.swift */, + 8EC0791B268993D400000F68 /* HTMLUtils.swift */, + 8EC0791C268993D400000F68 /* Theme.swift */, + 8EC0791D268993D400000F68 /* Shims.swift */, ); - path = Highlightr_2.1.0; + path = Classes; sourceTree = ""; }; - 8EEE5B7525184E9800004C58 /* Classes */ = { + 8EC0791E268993D400000F68 /* Assets */ = { isa = PBXGroup; children = ( - 8EEE5B7625184E9800004C58 /* CodeAttributedString.swift */, - 8EEE5B7725184E9800004C58 /* Highlightr.swift */, - 8EEE5B7825184E9800004C58 /* HTMLUtils.swift */, - 8EEE5B7925184E9800004C58 /* Theme.swift */, - 8EEE5B7A25184E9800004C58 /* Shims.swift */, + 8EC07920268993D400000F68 /* styles */, + 8EC0797A268993D400000F68 /* Highlighter */, ); - path = Classes; + path = Assets; sourceTree = ""; }; - 8EEE5B7B25184E9800004C58 /* Assets */ = { + 8EC07920268993D400000F68 /* styles */ = { isa = PBXGroup; children = ( - 8EEE5B7C25184E9800004C58 /* styles */, - 8EEE5BD625184E9800004C58 /* Highlighter */, + 8EC07921268993D400000F68 /* vs.min.css */, + 8EC07922268993D400000F68 /* atelier-seaside-dark.min.css */, + 8EC07923268993D400000F68 /* isbl-editor-dark.min.css */, + 8EC07924268993D400000F68 /* brown-paper.min.css */, + 8EC07925268993D400000F68 /* atelier-plateau-light.min.css */, + 8EC07926268993D400000F68 /* school-book.min.css */, + 8EC07927268993D400000F68 /* xcode.min.css */, + 8EC07928268993D400000F68 /* atelier-sulphurpool-dark.min.css */, + 8EC07929268993D400000F68 /* tomorrow-night-blue.min.css */, + 8EC0792A268993D400000F68 /* vs2015.min.css */, + 8EC0792B268993D400000F68 /* atelier-heath-dark.min.css */, + 8EC0792C268993D400000F68 /* paraiso-light.min.css */, + 8EC0792D268993D400000F68 /* rainbow.min.css */, + 8EC0792E268993D400000F68 /* qtcreator_light.min.css */, + 8EC0792F268993D400000F68 /* a11y-light.min.css */, + 8EC07930268993D400000F68 /* kimbie.dark.min.css */, + 8EC07931268993D400000F68 /* atelier-heath-light.min.css */, + 8EC07932268993D400000F68 /* far.min.css */, + 8EC07933268993D400000F68 /* atelier-dune-dark.min.css */, + 8EC07934268993D400000F68 /* shades-of-purple.min.css */, + 8EC07935268993D400000F68 /* kimbie.light.min.css */, + 8EC07936268993D400000F68 /* railscasts.min.css */, + 8EC07937268993D400000F68 /* solarized-dark.min.css */, + 8EC07938268993D400000F68 /* atelier-estuary-light.min.css */, + 8EC07939268993D400000F68 /* xt256.min.css */, + 8EC0793A268993D400000F68 /* mono-blue.min.css */, + 8EC0793B268993D400000F68 /* ocean.min.css */, + 8EC0793C268993D400000F68 /* github-gist.min.css */, + 8EC0793D268993D400000F68 /* atelier-seaside-light.min.css */, + 8EC0793E268993D400000F68 /* tomorrow-night-eighties.min.css */, + 8EC0793F268993D400000F68 /* atom-one-dark.min.css */, + 8EC07940268993D400000F68 /* qtcreator_dark.min.css */, + 8EC07941268993D400000F68 /* atelier-savanna-dark.min.css */, + 8EC07942268993D400000F68 /* color-brewer.min.css */, + 8EC07943268993D400000F68 /* pojoaque.min.css */, + 8EC07944268993D400000F68 /* routeros.min.css */, + 8EC07945268993D400000F68 /* atelier-forest-dark.min.css */, + 8EC07946268993D400000F68 /* gml.min.css */, + 8EC07947268993D400000F68 /* tomorrow-night.min.css */, + 8EC07948268993D400000F68 /* obsidian.min.css */, + 8EC07949268993D400000F68 /* lightfair.min.css */, + 8EC0794A268993D400000F68 /* atelier-lakeside-dark.min.css */, + 8EC0794B268993D400000F68 /* gruvbox-light.min.css */, + 8EC0794C268993D400000F68 /* idea.min.css */, + 8EC0794D268993D400000F68 /* tomorrow.min.css */, + 8EC0794E268993D400000F68 /* atelier-forest-light.min.css */, + 8EC0794F268993D400000F68 /* arduino-light.min.css */, + 8EC07950268993D400000F68 /* gruvbox-dark.min.css */, + 8EC07951268993D400000F68 /* dracula.min.css */, + 8EC07952268993D400000F68 /* magula.min.css */, + 8EC07953268993D400000F68 /* arta.min.css */, + 8EC07954268993D400000F68 /* purebasic.min.css */, + 8EC07955268993D400000F68 /* hopscotch.min.css */, + 8EC07956268993D400000F68 /* github.min.css */, + 8EC07957268993D400000F68 /* nord.min.css */, + 8EC07958268993D400000F68 /* dark.min.css */, + 8EC07959268993D400000F68 /* atom-one-light.min.css */, + 8EC0795A268993D400000F68 /* monokai.min.css */, + 8EC0795B268993D400000F68 /* docco.min.css */, + 8EC0795C268993D400000F68 /* default.min.css */, + 8EC0795D268993D400000F68 /* ascetic.min.css */, + 8EC0795E268993D400000F68 /* isbl-editor-light.min.css */, + 8EC0795F268993D400000F68 /* atelier-cave-light.min.css */, + 8EC07960268993D400000F68 /* a11y-dark.min.css */, + 8EC07961268993D400000F68 /* atelier-sulphurpool-light.min.css */, + 8EC07962268993D400000F68 /* atelier-plateau-dark.min.css */, + 8EC07963268993D400000F68 /* darkula.min.css */, + 8EC07964268993D400000F68 /* atelier-cave-dark.min.css */, + 8EC07965268993D400000F68 /* ir-black.min.css */, + 8EC07966268993D400000F68 /* solarized-light.min.css */, + 8EC07967268993D400000F68 /* tomorrow-night-bright.min.css */, + 8EC07968268993D400000F68 /* atelier-savanna-light.min.css */, + 8EC07969268993D400000F68 /* foundation.min.css */, + 8EC0796A268993D400000F68 /* codepen-embed.min.css */, + 8EC0796B268993D400000F68 /* atelier-estuary-dark.min.css */, + 8EC0796C268993D400000F68 /* googlecode.min.css */, + 8EC0796D268993D400000F68 /* atom-one-dark-reasonable.min.css */, + 8EC0796E268993D400000F68 /* atelier-dune-light.min.css */, + 8EC0796F268993D400000F68 /* paraiso-dark.min.css */, + 8EC07970268993D400000F68 /* zenburn.min.css */, + 8EC07971268993D400000F68 /* androidstudio.min.css */, + 8EC07972268993D400000F68 /* grayscale.min.css */, + 8EC07973268993D400000F68 /* sunburst.min.css */, + 8EC07974268993D400000F68 /* agate.min.css */, + 8EC07975268993D400000F68 /* hybrid.min.css */, + 8EC07976268993D400000F68 /* darcula.min.css */, + 8EC07977268993D400000F68 /* atelier-lakeside-light.min.css */, + 8EC07978268993D400000F68 /* monokai-sublime.min.css */, + 8EC07979268993D400000F68 /* an-old-hope.min.css */, ); - path = Assets; + path = styles; sourceTree = ""; }; - 8EEE5B7C25184E9800004C58 /* styles */ = { + 8EC0797A268993D400000F68 /* Highlighter */ = { isa = PBXGroup; children = ( - 8EEE5B7D25184E9800004C58 /* vs.min.css */, - 8EEE5B7E25184E9800004C58 /* atelier-seaside-dark.min.css */, - 8EEE5B7F25184E9800004C58 /* isbl-editor-dark.min.css */, - 8EEE5B8025184E9800004C58 /* brown-paper.min.css */, - 8EEE5B8125184E9800004C58 /* atelier-plateau-light.min.css */, - 8EEE5B8225184E9800004C58 /* school-book.min.css */, - 8EEE5B8325184E9800004C58 /* xcode.min.css */, - 8EEE5B8425184E9800004C58 /* atelier-sulphurpool-dark.min.css */, - 8EEE5B8525184E9800004C58 /* tomorrow-night-blue.min.css */, - 8EEE5B8625184E9800004C58 /* vs2015.min.css */, - 8EEE5B8725184E9800004C58 /* atelier-heath-dark.min.css */, - 8EEE5B8825184E9800004C58 /* paraiso-light.min.css */, - 8EEE5B8925184E9800004C58 /* rainbow.min.css */, - 8EEE5B8A25184E9800004C58 /* qtcreator_light.min.css */, - 8EEE5B8B25184E9800004C58 /* a11y-light.min.css */, - 8EEE5B8C25184E9800004C58 /* kimbie.dark.min.css */, - 8EEE5B8D25184E9800004C58 /* atelier-heath-light.min.css */, - 8EEE5B8E25184E9800004C58 /* far.min.css */, - 8EEE5B8F25184E9800004C58 /* atelier-dune-dark.min.css */, - 8EEE5B9025184E9800004C58 /* shades-of-purple.min.css */, - 8EEE5B9125184E9800004C58 /* kimbie.light.min.css */, - 8EEE5B9225184E9800004C58 /* railscasts.min.css */, - 8EEE5B9325184E9800004C58 /* solarized-dark.min.css */, - 8EEE5B9425184E9800004C58 /* atelier-estuary-light.min.css */, - 8EEE5B9525184E9800004C58 /* xt256.min.css */, - 8EEE5B9625184E9800004C58 /* mono-blue.min.css */, - 8EEE5B9725184E9800004C58 /* ocean.min.css */, - 8EEE5B9825184E9800004C58 /* github-gist.min.css */, - 8EEE5B9925184E9800004C58 /* atelier-seaside-light.min.css */, - 8EEE5B9A25184E9800004C58 /* tomorrow-night-eighties.min.css */, - 8EEE5B9B25184E9800004C58 /* atom-one-dark.min.css */, - 8EEE5B9C25184E9800004C58 /* qtcreator_dark.min.css */, - 8EEE5B9D25184E9800004C58 /* atelier-savanna-dark.min.css */, - 8EEE5B9E25184E9800004C58 /* color-brewer.min.css */, - 8EEE5B9F25184E9800004C58 /* pojoaque.min.css */, - 8EEE5BA025184E9800004C58 /* routeros.min.css */, - 8EEE5BA125184E9800004C58 /* atelier-forest-dark.min.css */, - 8EEE5BA225184E9800004C58 /* gml.min.css */, - 8EEE5BA325184E9800004C58 /* tomorrow-night.min.css */, - 8EEE5BA425184E9800004C58 /* obsidian.min.css */, - 8EEE5BA525184E9800004C58 /* lightfair.min.css */, - 8EEE5BA625184E9800004C58 /* atelier-lakeside-dark.min.css */, - 8EEE5BA725184E9800004C58 /* gruvbox-light.min.css */, - 8EEE5BA825184E9800004C58 /* idea.min.css */, - 8EEE5BA925184E9800004C58 /* tomorrow.min.css */, - 8EEE5BAA25184E9800004C58 /* atelier-forest-light.min.css */, - 8EEE5BAB25184E9800004C58 /* arduino-light.min.css */, - 8EEE5BAC25184E9800004C58 /* gruvbox-dark.min.css */, - 8EEE5BAD25184E9800004C58 /* dracula.min.css */, - 8EEE5BAE25184E9800004C58 /* magula.min.css */, - 8EEE5BAF25184E9800004C58 /* arta.min.css */, - 8EEE5BB025184E9800004C58 /* purebasic.min.css */, - 8EEE5BB125184E9800004C58 /* hopscotch.min.css */, - 8EEE5BB225184E9800004C58 /* github.min.css */, - 8EEE5BB325184E9800004C58 /* nord.min.css */, - 8EEE5BB425184E9800004C58 /* dark.min.css */, - 8EEE5BB525184E9800004C58 /* atom-one-light.min.css */, - 8EEE5BB625184E9800004C58 /* monokai.min.css */, - 8EEE5BB725184E9800004C58 /* docco.min.css */, - 8EEE5BB825184E9800004C58 /* default.min.css */, - 8EEE5BB925184E9800004C58 /* ascetic.min.css */, - 8EEE5BBA25184E9800004C58 /* isbl-editor-light.min.css */, - 8EEE5BBB25184E9800004C58 /* atelier-cave-light.min.css */, - 8EEE5BBC25184E9800004C58 /* a11y-dark.min.css */, - 8EEE5BBD25184E9800004C58 /* atelier-sulphurpool-light.min.css */, - 8EEE5BBE25184E9800004C58 /* atelier-plateau-dark.min.css */, - 8EEE5BBF25184E9800004C58 /* darkula.min.css */, - 8EEE5BC025184E9800004C58 /* atelier-cave-dark.min.css */, - 8EEE5BC125184E9800004C58 /* ir-black.min.css */, - 8EEE5BC225184E9800004C58 /* solarized-light.min.css */, - 8EEE5BC325184E9800004C58 /* tomorrow-night-bright.min.css */, - 8EEE5BC425184E9800004C58 /* atelier-savanna-light.min.css */, - 8EEE5BC525184E9800004C58 /* foundation.min.css */, - 8EEE5BC625184E9800004C58 /* codepen-embed.min.css */, - 8EEE5BC725184E9800004C58 /* atelier-estuary-dark.min.css */, - 8EEE5BC825184E9800004C58 /* googlecode.min.css */, - 8EEE5BC925184E9800004C58 /* atom-one-dark-reasonable.min.css */, - 8EEE5BCA25184E9800004C58 /* atelier-dune-light.min.css */, - 8EEE5BCB25184E9800004C58 /* paraiso-dark.min.css */, - 8EEE5BCC25184E9800004C58 /* zenburn.min.css */, - 8EEE5BCD25184E9800004C58 /* androidstudio.min.css */, - 8EEE5BCE25184E9800004C58 /* grayscale.min.css */, - 8EEE5BCF25184E9800004C58 /* sunburst.min.css */, - 8EEE5BD025184E9800004C58 /* agate.min.css */, - 8EEE5BD125184E9800004C58 /* hybrid.min.css */, - 8EEE5BD225184E9800004C58 /* darcula.min.css */, - 8EEE5BD325184E9800004C58 /* atelier-lakeside-light.min.css */, - 8EEE5BD425184E9800004C58 /* monokai-sublime.min.css */, - 8EEE5BD525184E9800004C58 /* an-old-hope.min.css */, + 8EC0797B268993D400000F68 /* LICENSE */, + 8EC0797C268993D400000F68 /* highlight.min.js */, ); - path = styles; + path = Highlighter; sourceTree = ""; }; - 8EEE5BD625184E9800004C58 /* Highlighter */ = { + 8EEE5B7225184E8C00004C58 /* Vendor */ = { isa = PBXGroup; children = ( - 8EEE5BD725184E9800004C58 /* highlight.min.js */, + 8EC07916268993D400000F68 /* Highlightr */, ); - path = Highlighter; + path = Vendor; sourceTree = ""; }; /* End PBXGroup section */ @@ -722,104 +725,105 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8EEE5BEC25184E9800004C58 /* qtcreator_light.min.css in Resources */, - 8EEE5BEF25184E9800004C58 /* atelier-heath-light.min.css in Resources */, - 8EEE5C2B25184E9800004C58 /* atom-one-dark-reasonable.min.css in Resources */, - 8EEE5C0625184E9800004C58 /* obsidian.min.css in Resources */, - 8EEE5C1C25184E9800004C58 /* isbl-editor-light.min.css in Resources */, - 8EEE5C0325184E9800004C58 /* atelier-forest-dark.min.css in Resources */, - 8EEE5C1E25184E9800004C58 /* a11y-dark.min.css in Resources */, - 8EEE5C2625184E9800004C58 /* atelier-savanna-light.min.css in Resources */, - 8EEE5C2A25184E9800004C58 /* googlecode.min.css in Resources */, - 8EEE5BE625184E9800004C58 /* atelier-sulphurpool-dark.min.css in Resources */, - 8EEE5C1A25184E9800004C58 /* default.min.css in Resources */, + 8EC07996268993D400000F68 /* atelier-dune-dark.min.css in Resources */, + 8EC079C4268993D400000F68 /* atelier-sulphurpool-light.min.css in Resources */, + 8EC079C9268993D400000F68 /* solarized-light.min.css in Resources */, + 8EC0799F268993D400000F68 /* github-gist.min.css in Resources */, + 8EC07990268993D400000F68 /* rainbow.min.css in Resources */, + 8EC079BA268993D400000F68 /* nord.min.css in Resources */, + 8EC0798D268993D400000F68 /* vs2015.min.css in Resources */, + 8EC07988268993D400000F68 /* atelier-plateau-light.min.css in Resources */, + 8EC07993268993D400000F68 /* kimbie.dark.min.css in Resources */, + 8EC079AC268993D400000F68 /* lightfair.min.css in Resources */, 7B45DB04202A95BF007E8D56 /* MainWindowController.xib in Resources */, - 8EEE5BE725184E9800004C58 /* tomorrow-night-blue.min.css in Resources */, - 8EEE5BFE25184E9800004C58 /* qtcreator_dark.min.css in Resources */, - 8EEE5BE925184E9800004C58 /* atelier-heath-dark.min.css in Resources */, - 8EEE5C0725184E9800004C58 /* lightfair.min.css in Resources */, - 8EEE5BF925184E9800004C58 /* ocean.min.css in Resources */, - 8EEE5C2F25184E9800004C58 /* androidstudio.min.css in Resources */, - 8EEE5BEE25184E9800004C58 /* kimbie.dark.min.css in Resources */, - 8EEE5C2325184E9800004C58 /* ir-black.min.css in Resources */, + 8EC0799E268993D400000F68 /* ocean.min.css in Resources */, 8E2A9D0324F9201F00F03DCB /* SettingViewController.xib in Resources */, - 8EEE5BEB25184E9800004C58 /* rainbow.min.css in Resources */, - 8EEE5C0425184E9800004C58 /* gml.min.css in Resources */, - 8EEE5C1925184E9800004C58 /* docco.min.css in Resources */, - 8EEE5C0B25184E9800004C58 /* tomorrow.min.css in Resources */, - 8EEE5C1225184E9800004C58 /* purebasic.min.css in Resources */, - 8EEE5BF025184E9800004C58 /* far.min.css in Resources */, - 8EEE5C1B25184E9800004C58 /* ascetic.min.css in Resources */, - 8EEE5BFA25184E9800004C58 /* github-gist.min.css in Resources */, - 8EEE5C2825184E9800004C58 /* codepen-embed.min.css in Resources */, + 8EC079A3268993D400000F68 /* qtcreator_dark.min.css in Resources */, + 8EC079D7268993D400000F68 /* agate.min.css in Resources */, + 8EC079C2268993D400000F68 /* atelier-cave-light.min.css in Resources */, + 8EC0799B268993D400000F68 /* atelier-estuary-light.min.css in Resources */, + 8EC079DE268993D400000F68 /* highlight.min.js in Resources */, + 8EC079A2268993D400000F68 /* atom-one-dark.min.css in Resources */, + 8EC079D5268993D400000F68 /* grayscale.min.css in Resources */, + 8EC079AA268993D400000F68 /* tomorrow-night.min.css in Resources */, + 8EC079AF268993D400000F68 /* idea.min.css in Resources */, + 8EC079A7268993D400000F68 /* routeros.min.css in Resources */, + 8EC0799D268993D400000F68 /* mono-blue.min.css in Resources */, + 8EC079A8268993D400000F68 /* atelier-forest-dark.min.css in Resources */, + 8EC079D3268993D400000F68 /* zenburn.min.css in Resources */, + 8EC079AE268993D400000F68 /* gruvbox-light.min.css in Resources */, + 8EC079D2268993D400000F68 /* paraiso-dark.min.css in Resources */, 8E43D13E22E8235A00F52C8E /* UpgradeViewController.xib in Resources */, - 8EEE5BF625184E9800004C58 /* atelier-estuary-light.min.css in Resources */, - 8EEE5BE025184E9800004C58 /* atelier-seaside-dark.min.css in Resources */, - 8EEE5C1F25184E9800004C58 /* atelier-sulphurpool-light.min.css in Resources */, - 8EEE5C3425184E9800004C58 /* darcula.min.css in Resources */, - 8EEE5C2C25184E9800004C58 /* atelier-dune-light.min.css in Resources */, - 8EEE5BFD25184E9800004C58 /* atom-one-dark.min.css in Resources */, - 8EEE5C1625184E9800004C58 /* dark.min.css in Resources */, - 8EEE5C1725184E9800004C58 /* atom-one-light.min.css in Resources */, - 8EEE5BF225184E9800004C58 /* shades-of-purple.min.css in Resources */, - 8EEE5BE825184E9800004C58 /* vs2015.min.css in Resources */, - 8EEE5C1025184E9800004C58 /* magula.min.css in Resources */, - 8EEE5C0125184E9800004C58 /* pojoaque.min.css in Resources */, - 8EEE5C1125184E9800004C58 /* arta.min.css in Resources */, - 8EEE5BF425184E9800004C58 /* railscasts.min.css in Resources */, + 8EC0798E268993D400000F68 /* atelier-heath-dark.min.css in Resources */, + 8EC079C3268993D400000F68 /* a11y-dark.min.css in Resources */, + 8EC079CD268993D400000F68 /* codepen-embed.min.css in Resources */, + 8EC079B2268993D400000F68 /* arduino-light.min.css in Resources */, + 8EC079B7268993D400000F68 /* purebasic.min.css in Resources */, + 8EC0798F268993D400000F68 /* paraiso-light.min.css in Resources */, + 8EC079DD268993D400000F68 /* LICENSE in Resources */, + 8EC079CE268993D400000F68 /* atelier-estuary-dark.min.css in Resources */, + 8EC079DA268993D400000F68 /* atelier-lakeside-light.min.css in Resources */, + 8EC079BB268993D400000F68 /* dark.min.css in Resources */, + 8EC079B4268993D400000F68 /* dracula.min.css in Resources */, + 8EC079A5268993D400000F68 /* color-brewer.min.css in Resources */, + 8EC0798C268993D400000F68 /* tomorrow-night-blue.min.css in Resources */, + 8EC079C1268993D400000F68 /* isbl-editor-light.min.css in Resources */, + 8EC079B0268993D400000F68 /* tomorrow.min.css in Resources */, + 8EC079DB268993D400000F68 /* monokai-sublime.min.css in Resources */, + 8EC079A9268993D400000F68 /* gml.min.css in Resources */, + 8EC079C5268993D400000F68 /* atelier-plateau-dark.min.css in Resources */, + 8EC079D1268993D400000F68 /* atelier-dune-light.min.css in Resources */, + 8EC079C6268993D400000F68 /* darkula.min.css in Resources */, + 8EC07994268993D400000F68 /* atelier-heath-light.min.css in Resources */, + 8EC07997268993D400000F68 /* shades-of-purple.min.css in Resources */, + 8EC0799C268993D400000F68 /* xt256.min.css in Resources */, + 8EC079BE268993D400000F68 /* docco.min.css in Resources */, + 8EC0798A268993D400000F68 /* xcode.min.css in Resources */, + 8EC07995268993D400000F68 /* far.min.css in Resources */, + 8EC079B3268993D400000F68 /* gruvbox-dark.min.css in Resources */, + 8EC079B6268993D400000F68 /* arta.min.css in Resources */, + 8EC079C8268993D400000F68 /* ir-black.min.css in Resources */, + 8EC079B8268993D400000F68 /* hopscotch.min.css in Resources */, + 8EC079B1268993D400000F68 /* atelier-forest-light.min.css in Resources */, 7B45DB06202A95BF007E8D56 /* Assets.xcassets in Resources */, - 8EEE5BE225184E9800004C58 /* brown-paper.min.css in Resources */, - 8EEE5BE525184E9800004C58 /* xcode.min.css in Resources */, + 8EC079C0268993D400000F68 /* ascetic.min.css in Resources */, + 8EC07991268993D400000F68 /* qtcreator_light.min.css in Resources */, 7B95A32224F95F69000D141B /* Localizable.strings in Resources */, - 8EEE5BF525184E9800004C58 /* solarized-dark.min.css in Resources */, - 8EEE5BF725184E9800004C58 /* xt256.min.css in Resources */, - 8EEE5C0025184E9800004C58 /* color-brewer.min.css in Resources */, - 8EEE5C0E25184E9800004C58 /* gruvbox-dark.min.css in Resources */, - 8EEE5C3225184E9800004C58 /* agate.min.css in Resources */, - 8EEE5C0925184E9800004C58 /* gruvbox-light.min.css in Resources */, - 8EEE5C0C25184E9800004C58 /* atelier-forest-light.min.css in Resources */, - 8EEE5C2025184E9800004C58 /* atelier-plateau-dark.min.css in Resources */, - 8EEE5C3725184E9800004C58 /* an-old-hope.min.css in Resources */, - 8EEE5C2D25184E9800004C58 /* paraiso-dark.min.css in Resources */, - 8EEE5C1325184E9800004C58 /* hopscotch.min.css in Resources */, - 8EEE5C3025184E9800004C58 /* grayscale.min.css in Resources */, - 8EEE5C1425184E9800004C58 /* github.min.css in Resources */, - 8EEE5C0D25184E9800004C58 /* arduino-light.min.css in Resources */, - 8EEE5C2225184E9800004C58 /* atelier-cave-dark.min.css in Resources */, - 8EEE5BE325184E9800004C58 /* atelier-plateau-light.min.css in Resources */, - 8EEE5C1D25184E9800004C58 /* atelier-cave-light.min.css in Resources */, + 8EC079DC268993D400000F68 /* an-old-hope.min.css in Resources */, + 8EC07984268993D400000F68 /* vs.min.css in Resources */, + 8EC079CA268993D400000F68 /* tomorrow-night-bright.min.css in Resources */, + 8EC079BC268993D400000F68 /* atom-one-light.min.css in Resources */, + 8EC07999268993D400000F68 /* railscasts.min.css in Resources */, + 8EC079CC268993D400000F68 /* foundation.min.css in Resources */, + 8EC079AD268993D400000F68 /* atelier-lakeside-dark.min.css in Resources */, 7B45DAFF202A95BF007E8D56 /* MainViewController.xib in Resources */, - 8EEE5C1825184E9800004C58 /* monokai.min.css in Resources */, - 8EEE5BEA25184E9800004C58 /* paraiso-light.min.css in Resources */, - 8EEE5BE125184E9800004C58 /* isbl-editor-dark.min.css in Resources */, - 8EEE5C3525184E9800004C58 /* atelier-lakeside-light.min.css in Resources */, - 8EEE5BE425184E9800004C58 /* school-book.min.css in Resources */, - 8EEE5C2525184E9800004C58 /* tomorrow-night-bright.min.css in Resources */, - 8EEE5C3125184E9800004C58 /* sunburst.min.css in Resources */, - 8EEE5BF325184E9800004C58 /* kimbie.light.min.css in Resources */, - 8EEE5BFF25184E9800004C58 /* atelier-savanna-dark.min.css in Resources */, - 8EEE5BF825184E9800004C58 /* mono-blue.min.css in Resources */, - 8EEE5C3625184E9800004C58 /* monokai-sublime.min.css in Resources */, - 8EEE5C0825184E9800004C58 /* atelier-lakeside-dark.min.css in Resources */, - 8EEE5C0225184E9800004C58 /* routeros.min.css in Resources */, - 8EEE5C2125184E9800004C58 /* darkula.min.css in Resources */, + 8EC079A0268993D400000F68 /* atelier-seaside-light.min.css in Resources */, + 8EC079A6268993D400000F68 /* pojoaque.min.css in Resources */, + 8EC079D4268993D400000F68 /* androidstudio.min.css in Resources */, + 8EC079B5268993D400000F68 /* magula.min.css in Resources */, + 8EC07987268993D400000F68 /* brown-paper.min.css in Resources */, + 8EC07998268993D400000F68 /* kimbie.light.min.css in Resources */, + 8EC079C7268993D400000F68 /* atelier-cave-dark.min.css in Resources */, + 8EC079A1268993D400000F68 /* tomorrow-night-eighties.min.css in Resources */, + 8EC079D0268993D400000F68 /* atom-one-dark-reasonable.min.css in Resources */, + 8EC079A4268993D400000F68 /* atelier-savanna-dark.min.css in Resources */, + 8EC07985268993D400000F68 /* atelier-seaside-dark.min.css in Resources */, + 8EC079D8268993D400000F68 /* hybrid.min.css in Resources */, + 8EC079BD268993D400000F68 /* monokai.min.css in Resources */, + 8EC07989268993D400000F68 /* school-book.min.css in Resources */, + 8EC079D6268993D400000F68 /* sunburst.min.css in Resources */, + 8EC079D9268993D400000F68 /* darcula.min.css in Resources */, + 8EC079CF268993D400000F68 /* googlecode.min.css in Resources */, 7B2D34F922E6072B009D2ED2 /* wechat.jpeg in Resources */, - 8EEE5C0A25184E9800004C58 /* idea.min.css in Resources */, - 8EEE5C3825184E9800004C58 /* highlight.min.js in Resources */, + 8EC07986268993D400000F68 /* isbl-editor-dark.min.css in Resources */, + 8EC079B9268993D400000F68 /* github.min.css in Resources */, + 8EC07992268993D400000F68 /* a11y-light.min.css in Resources */, + 8EC079AB268993D400000F68 /* obsidian.min.css in Resources */, + 8EC0798B268993D400000F68 /* atelier-sulphurpool-dark.min.css in Resources */, + 8EC079CB268993D400000F68 /* atelier-savanna-light.min.css in Resources */, + 8EC079BF268993D400000F68 /* default.min.css in Resources */, 7B45DB07202A95BF007E8D56 /* MainMenu.xib in Resources */, - 8EEE5C2E25184E9800004C58 /* zenburn.min.css in Resources */, - 8EEE5BFC25184E9800004C58 /* tomorrow-night-eighties.min.css in Resources */, - 8EEE5C2425184E9800004C58 /* solarized-light.min.css in Resources */, - 8EEE5C2725184E9800004C58 /* foundation.min.css in Resources */, - 8EEE5C0F25184E9800004C58 /* dracula.min.css in Resources */, - 8EEE5C1525184E9800004C58 /* nord.min.css in Resources */, - 8EEE5BDF25184E9800004C58 /* vs.min.css in Resources */, - 8EEE5BED25184E9800004C58 /* a11y-light.min.css in Resources */, - 8EEE5C3325184E9800004C58 /* hybrid.min.css in Resources */, - 8EEE5BF125184E9800004C58 /* atelier-dune-dark.min.css in Resources */, - 8EEE5C2925184E9800004C58 /* atelier-estuary-dark.min.css in Resources */, - 8EEE5C0525184E9800004C58 /* tomorrow-night.min.css in Resources */, - 8EEE5BFB25184E9800004C58 /* atelier-seaside-light.min.css in Resources */, + 8EC0799A268993D400000F68 /* solarized-dark.min.css in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -841,29 +845,29 @@ 7B45DB01202A95BF007E8D56 /* MainViewController.swift in Sources */, 8EB0531424FCDABF00B96D79 /* NSColor+Extension.swift in Sources */, 8E1B82992508ED6400E8CA95 /* NSLayoutConstraint+Extension.swift in Sources */, - 8EEE5BDE25184E9800004C58 /* Shims.swift in Sources */, - 8EEE5BDC25184E9800004C58 /* HTMLUtils.swift in Sources */, 8E542C31251350080053C1E0 /* ExportClassesModel.swift in Sources */, + 8EC0797E268993D400000F68 /* Highlightr.swift in Sources */, 7B45DB00202A95BF007E8D56 /* MainWindowController.swift in Sources */, 8E2A9D0224F9201F00F03DCB /* SettingViewController.swift in Sources */, - 8EEE5BDA25184E9800004C58 /* CodeAttributedString.swift in Sources */, 8E1B82972508B22B00E8CA95 /* NSTextView+LineNumberRulerView.swift in Sources */, 8E542C2F25130C160053C1E0 /* PanGestureIndicatorView.swift in Sources */, 7B45DB08202A95BF007E8D56 /* AppDelegate.swift in Sources */, 7BD7FEDA202AC7C10003AE80 /* Content.swift in Sources */, - 8EEE5BDD25184E9800004C58 /* Theme.swift in Sources */, + 8EC0797D268993D400000F68 /* CodeAttributedString.swift in Sources */, 8E43D13A22E81E6D00F52C8E /* VersionInfo.swift in Sources */, 7B45DB0F202AA572007E8D56 /* File.swift in Sources */, 8E1945EA2508A3CE00E7CDCC /* Enums.swift in Sources */, - 7B7D5AE424FA345C00A54D27 /* FileConfigManager.swift in Sources */, + 8EC07982268993D400000F68 /* Shims.swift in Sources */, + 7B7D5AE424FA345C00A54D27 /* FileConfigBuilder.swift in Sources */, + 8EC07981268993D400000F68 /* Theme.swift in Sources */, 7BD7FEDC202AC7EB0003AE80 /* Property.swift in Sources */, 7B7D5AE224FA2B2700A54D27 /* StringUtils.swift in Sources */, 8E43D13D22E8235A00F52C8E /* UpgradeViewController.swift in Sources */, 7B45DB05202A95BF007E8D56 /* String+Extension.swift in Sources */, 8E43D13722E7E85600F52C8E /* UpgradeUtils.swift in Sources */, 7B7D5AE624FA520800A54D27 /* Date+Extension.swift in Sources */, - 8EEE5BDB25184E9800004C58 /* Highlightr.swift in Sources */, - 7B45DAFE202A95BF007E8D56 /* JSONParseManager.swift in Sources */, + 7B45DAFE202A95BF007E8D56 /* JSONBuilder.swift in Sources */, + 8EC07980268993D400000F68 /* HTMLUtils.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/JSONConverter/Classes/Manager/FileConfigManager.swift b/JSONConverter/Classes/Builder/FileConfigBuilder.swift similarity index 87% rename from JSONConverter/Classes/Manager/FileConfigManager.swift rename to JSONConverter/Classes/Builder/FileConfigBuilder.swift index a775951..8d42187 100644 --- a/JSONConverter/Classes/Manager/FileConfigManager.swift +++ b/JSONConverter/Classes/Builder/FileConfigBuilder.swift @@ -10,15 +10,15 @@ import Foundation private let FILE_CACHE_CONFIG_KEY = "FILE_CACHE_CONFIG_KEY" -class FileConfigManager { +class FileConfigBuilder { private lazy var fileConfigDic: [String: String]? = { let dic = UserDefaults.standard.object(forKey: FILE_CACHE_CONFIG_KEY) as? [String: String] return dic }() - static let shared: FileConfigManager = { - let manager = FileConfigManager() + static let shared: FileConfigBuilder = { + let manager = FileConfigBuilder() return manager }() diff --git a/JSONConverter/Classes/Builder/JSONBuilder.swift b/JSONConverter/Classes/Builder/JSONBuilder.swift new file mode 100644 index 0000000..0e6ff8d --- /dev/null +++ b/JSONConverter/Classes/Builder/JSONBuilder.swift @@ -0,0 +1,109 @@ +// +// JSONParseManager.swift +// Test +// +// Created by Yao on 2018/2/3. +// Copyright © 2018年 Yao. All rights reserved. +// + +import Foundation + +class JSONBuilder { + + static let shared: JSONBuilder = { + let manager = JSONBuilder() + return manager + }() + + private var file: File! + + func buildWithJSONObject(_ obj: Any, file: File) -> (String, String?) { + file.contents.removeAll() + self.file = file + var content : Content? + let propertyKey = file.rootName.propertyName() + + switch obj { + case let dic as [String: Any]: + content = addDictionaryWithKeyName(propertyKey, dic: dic) + case let arr as [Any]: + _ = addArraryWithKeyName(propertyKey, valueArrary: arr) + default: + assertionFailure("parse object type error") + } + + if let content = content { + file.contents.insert(content, at: 0) + } + + return file.toString() + } + + + private func addDictionaryWithKeyName(_ keyName: String, dic: [String: Any]) -> Content { + let content = file.contentWithKeyName(keyName) + + dic.forEach { (item) in + let itemKey = item.key + var propertyModel: Property? + + switch item.value { + case _ as String: + propertyModel = file.propertyWithKeyName(itemKey, type: .String) + case let num as NSNumber: + propertyModel = file.propertyWithKeyName(itemKey, type: num.valueType()) + case let dic as [String: Any]: + propertyModel = file.propertyWithKeyName(itemKey, type: .Dictionary) + let content = addDictionaryWithKeyName(itemKey, dic: dic) + file.contents.insert(content, at: 0) + case let arr as [Any]: + propertyModel = addArraryWithKeyName(itemKey, valueArrary: arr) + case _ as NSNull: + propertyModel = file.propertyWithKeyName(itemKey, type: .nil) + default: + assertionFailure("parse object type error") + } + + if let propertyModel = propertyModel { + content.properties.append(propertyModel) + } + } + + return content + } + + private func addArraryWithKeyName(_ keyName: String, valueArrary: [Any]) -> Property? { + if valueArrary.count == 0 { + return nil + } + + if let first = valueArrary.first { + var propertyModel: Property? + switch first { + case _ as String: + propertyModel = file.propertyWithKeyName(keyName, type: .ArrayString) + case let num as NSNumber: + let type = PropertyType(rawValue: num.valueType().rawValue + 6)! + propertyModel = file.propertyWithKeyName(keyName, type: type) + case let dic as [String: Any]: + propertyModel = file.propertyWithKeyName(keyName, type: .ArrayDictionary) + let content = addDictionaryWithKeyName(keyName, dic: dic) + file.contents.insert(content, at: 0) + default: + assertionFailure("parse object type error") + break + } + + return propertyModel + } + + return nil + } +} + + + + + + + diff --git a/JSONConverter/Classes/Manager/JSONParseManager.swift b/JSONConverter/Classes/Builder/JSONParseManager.swift similarity index 58% rename from JSONConverter/Classes/Manager/JSONParseManager.swift rename to JSONConverter/Classes/Builder/JSONParseManager.swift index 0cdfff3..e6de0f5 100644 --- a/JSONConverter/Classes/Manager/JSONParseManager.swift +++ b/JSONConverter/Classes/Builder/JSONParseManager.swift @@ -8,10 +8,10 @@ import Foundation -class JSONParseManager { +class JSONBuilder { - static let shared: JSONParseManager = { - let manager = JSONParseManager() + static let shared: JSONBuilder = { + let manager = JSONBuilder() return manager }() @@ -25,9 +25,9 @@ class JSONParseManager { switch obj { case let dic as [String: Any]: - content = handleDictionary(propertyKey: propertyKey, dic: dic) + content = addDictionaryWithKeyName(propertyKey, dic: dic) case let arr as [Any]: - _ = handleArrary(itemKey: propertyKey, arr: arr) + _ = addArraryWithKeyName(propertyKey, valueArrary: arr) default: assertionFailure("parse object type error") } @@ -40,8 +40,8 @@ class JSONParseManager { } - private func handleDictionary(propertyKey: String, dic: [String: Any]) -> Content { - let content = file.content(withPropertyKey: propertyKey) + private func addDictionaryWithKeyName(_ keyName: String, dic: [String: Any]) -> Content { + let content = file.contentWithKeyName(keyName) dic.forEach { (item) in let itemKey = item.key @@ -49,17 +49,17 @@ class JSONParseManager { switch item.value { case _ as String: - propertyModel = file.property(withPropertykey: itemKey, type: .String) + propertyModel = file.propertyWithKeyName(itemKey, type: .String) case let num as NSNumber: - propertyModel = file.property(withPropertykey: itemKey, type: num.valueType()) + propertyModel = file.propertyWithKeyName(itemKey, type: num.valueType()) case let dic as [String: Any]: - propertyModel = file.property(withPropertykey: itemKey, type: .Dictionary) - let content = handleDictionary(propertyKey: itemKey, dic: dic) + propertyModel = file.propertyWithKeyName(itemKey, type: .Dictionary) + let content = addDictionaryWithKeyName(itemKey, dic: dic) file.contents.insert(content, at: 0) case let arr as [Any]: - propertyModel = handleArrary(itemKey: itemKey, arr: arr) + propertyModel = addArraryWithKeyName(itemKey, valueArrary: arr) case _ as NSNull: - propertyModel = file.property(withPropertykey: itemKey, type: .nil) + propertyModel = file.propertyWithKeyName(itemKey, type: .nil) default: assertionFailure("parse object type error") } @@ -72,18 +72,22 @@ class JSONParseManager { return content } - private func handleArrary(itemKey: String, arr: [Any]) -> Property? { - if let first = arr.first { + private func addArraryWithKeyName(_ keyName: String, valueArrary: [Any]) -> Property? { + if valueArrary.count == 0 { + return nil + } + + if let first = valueArrary.first { var propertyModel: Property? switch first { case _ as String: - propertyModel = file.property(withPropertykey: itemKey, type: .ArrayString) + propertyModel = file.propertyWithKeyName(keyName, type: .ArrayString) case let num as NSNumber: let type = PropertyType(rawValue: num.valueType().rawValue + 6)! - propertyModel = file.property(withPropertykey: itemKey, type: type) + propertyModel = file.propertyWithKeyName(keyName, type: type) case let dic as [String: Any]: - propertyModel = file.property(withPropertykey: itemKey, type: .ArrayDictionary) - let content = handleDictionary(propertyKey: itemKey, dic: dic) + propertyModel = file.propertyWithKeyName(keyName, type: .ArrayDictionary) + let content = addDictionaryWithKeyName(keyName, dic: dic) file.contents.insert(content, at: 0) default: assertionFailure("parse object type error") diff --git a/JSONConverter/Classes/Controller/Main/Controller/MainViewController.swift b/JSONConverter/Classes/Controller/Main/Controller/MainViewController.swift index 182b91a..d1c5b0d 100644 --- a/JSONConverter/Classes/Controller/Main/Controller/MainViewController.swift +++ b/JSONConverter/Classes/Controller/Main/Controller/MainViewController.swift @@ -135,7 +135,7 @@ class MainViewController: NSViewController { } private func setupCacheConfig() { - let configFile = FileConfigManager.shared.currentConfigFile() + let configFile = FileConfigBuilder.shared.currentConfigFile() languageBox.selectItem(at: configFile.langStruct.langType.rawValue) structureBox.selectItem(at: configFile.langStruct.structType.rawValue) if let themeIndex = highlightr.availableThemes().firstIndex(where: {configFile.theme == $0}) { @@ -169,7 +169,7 @@ class MainViewController: NSViewController { } func exportClassesFileWithPath(_ path : String) { - let configFile = FileConfigManager.shared.currentConfigFile() + let configFile = FileConfigBuilder.shared.currentConfigFile() let classfilePath = "\(path)/\(configFile.rootName.className(withPrefix: configFile.prefix))" let suffix = configFile.classSuffixString() @@ -216,8 +216,8 @@ class MainViewController: NSViewController { let JSONData = try? JSONSerialization.data(withJSONObject: JSONObject, options: [.sortedKeys, .prettyPrinted]), let JSONString = String(data: JSONData, encoding: .utf8) { - let configFile = FileConfigManager.shared.currentConfigFile() - let fileString = JSONParseManager.shared.parseJSONObject(JSONObject, file:configFile) + let configFile = FileConfigBuilder.shared.currentConfigFile() + let fileString = JSONBuilder.shared.buildWithJSONObject(JSONObject, file:configFile) let endTime1 = CFAbsoluteTimeGetCurrent() let offsetTime1 = Int((endTime1 - startTime) * 1000) @@ -265,7 +265,7 @@ class MainViewController: NSViewController { } private func updateCacheConfigAndUI() { - let configFile = FileConfigManager.shared.currentConfigFile() + let configFile = FileConfigBuilder.shared.currentConfigFile() guard let langType = LangType(rawValue: languageBox.indexOfSelectedItem), let structType = StructType(rawValue: structureBox.indexOfSelectedItem) else { @@ -293,7 +293,7 @@ class MainViewController: NSViewController { let theme = highlightr.availableThemes()[structureBox.indexOfSelectedItem] configFile.theme = theme - FileConfigManager.shared.updateConfigWithFile(configFile) + FileConfigBuilder.shared.updateConfigWithFile(configFile) generateClasses() } @@ -312,8 +312,8 @@ class MainViewController: NSViewController { extension MainViewController { @objc func applicationWillTerminateNotiAction() { - let currentConfigFile = FileConfigManager.shared.currentConfigFile() - FileConfigManager.shared.updateConfigWithFile(currentConfigFile) + let currentConfigFile = FileConfigBuilder.shared.currentConfigFile() + FileConfigBuilder.shared.updateConfigWithFile(currentConfigFile) } } diff --git a/JSONConverter/Classes/Controller/Setting/SettingViewController.swift b/JSONConverter/Classes/Controller/Setting/SettingViewController.swift index 47c3bc4..d6282dc 100644 --- a/JSONConverter/Classes/Controller/Setting/SettingViewController.swift +++ b/JSONConverter/Classes/Controller/Setting/SettingViewController.swift @@ -54,7 +54,7 @@ class SettingViewController: NSViewController { } private func updateCacheConfigUI() { - let configFile = FileConfigManager.shared.currentConfigFile() + let configFile = FileConfigBuilder.shared.currentConfigFile() prefixField.stringValue = configFile.prefix ?? "" rootClassField.stringValue = configFile.rootName parentClassField.stringValue = configFile.parentName ?? "" @@ -65,23 +65,23 @@ class SettingViewController: NSViewController { } @IBAction func saveConfigAction(_ sender: NSButton) { - let configFile = FileConfigManager.shared.currentConfigFile() + let configFile = FileConfigBuilder.shared.currentConfigFile() configFile.prefix = prefixField.stringValue configFile.rootName = rootClassField.stringValue configFile.parentName = parentClassField.stringValue configFile.header = headerField.stringValue configFile.isCustomHeader = customHeaderSwitch.state.rawValue == 1 configFile.autoCaseUnderline = autoHumpSwitch.state.rawValue == 1 - FileConfigManager.shared.updateConfigWithFile(configFile) + FileConfigBuilder.shared.updateConfigWithFile(configFile) fileConfigChangedClosure?() dismiss(nil) } @IBAction func customFileHeaderSwitch(_ sender: NSSwitch) { - let configFile = FileConfigManager.shared.currentConfigFile() + let configFile = FileConfigBuilder.shared.currentConfigFile() configFile.isCustomHeader = customHeaderSwitch.state.rawValue == 1 configFile.autoCaseUnderline = autoHumpSwitch.state.rawValue == 1 - FileConfigManager.shared.updateConfigWithFile(configFile) + FileConfigBuilder.shared.updateConfigWithFile(configFile) updateCacheConfigUI() } } diff --git a/JSONConverter/Classes/Model/File.swift b/JSONConverter/Classes/Model/File.swift index 5923b93..6545043 100644 --- a/JSONConverter/Classes/Model/File.swift +++ b/JSONConverter/Classes/Model/File.swift @@ -51,13 +51,13 @@ class File { } } - func content(withPropertyKey key: String) -> Content { - let content = Content(propertyKey: key, langStruct: langStruct, parentClsName: parentName, prefixStr: prefix, autoCaseUnderline: autoCaseUnderline) + func contentWithKeyName(_ keyName: String) -> Content { + let content = Content(propertyKey: keyName, langStruct: langStruct, parentClsName: parentName, prefixStr: prefix, autoCaseUnderline: autoCaseUnderline) return content } - func property(withPropertykey key: String, type: PropertyType) -> Property { - let property = Property(propertyKey: key, type: type, langStruct: langStruct, prefixStr: prefix, autoCaseUnderline: autoCaseUnderline) + func propertyWithKeyName(_ keyName: String, type: PropertyType) -> Property { + let property = Property(propertyKey: keyName, type: type, langStruct: langStruct, prefixStr: prefix, autoCaseUnderline: autoCaseUnderline) return property } @@ -72,6 +72,20 @@ class File { "structType": "\(langStruct.structType.rawValue)", "theme": theme] } + func classSuffixString() -> (String, String?) { + switch langStruct.langType { + case .Swift, .HandyJSON, .SwiftyJSON, .ObjectMapper, .Codable: + return ( "swift", nil) + case .ObjC: + return ("h", "m") + case .Flutter: + return ("dart", nil) + } + } +} + +extension File { + private func defaultHeaderString(suffix: String) -> String { let headerString = """ // @@ -154,16 +168,4 @@ class File { return nil } } - - - func classSuffixString() -> (String, String?) { - switch langStruct.langType { - case .Swift, .HandyJSON, .SwiftyJSON, .ObjectMapper, .Codable: - return ( "swift", nil) - case .ObjC: - return ("h", "m") - case .Flutter: - return ("dart", nil) - } - } } diff --git a/JSONConverter/Vendor/Highlightr/Assets/Highlighter/LICENSE b/JSONConverter/Vendor/Highlightr/Assets/Highlighter/LICENSE new file mode 100644 index 0000000..422deb7 --- /dev/null +++ b/JSONConverter/Vendor/Highlightr/Assets/Highlighter/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2006, Ivan Sagalaev +All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of highlight.js nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/Highlighter/highlight.min.js b/JSONConverter/Vendor/Highlightr/Assets/Highlighter/highlight.min.js similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/Highlighter/highlight.min.js rename to JSONConverter/Vendor/Highlightr/Assets/Highlighter/highlight.min.js diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/a11y-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/a11y-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/a11y-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/a11y-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/a11y-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/a11y-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/a11y-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/a11y-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/agate.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/agate.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/agate.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/agate.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/an-old-hope.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/an-old-hope.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/an-old-hope.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/an-old-hope.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/androidstudio.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/androidstudio.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/androidstudio.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/androidstudio.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/arduino-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/arduino-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/arduino-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/arduino-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/arta.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/arta.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/arta.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/arta.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/ascetic.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/ascetic.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/ascetic.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/ascetic.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-cave-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-cave-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-cave-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-cave-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-cave-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-cave-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-cave-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-cave-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-dune-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-dune-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-dune-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-dune-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-dune-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-dune-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-dune-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-dune-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-estuary-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-estuary-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-estuary-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-estuary-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-estuary-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-estuary-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-estuary-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-estuary-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-forest-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-forest-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-forest-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-forest-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-forest-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-forest-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-forest-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-forest-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-heath-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-heath-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-heath-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-heath-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-heath-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-heath-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-heath-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-heath-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-lakeside-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-lakeside-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-lakeside-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-lakeside-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-lakeside-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-lakeside-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-lakeside-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-lakeside-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-plateau-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-plateau-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-plateau-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-plateau-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-plateau-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-plateau-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-plateau-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-plateau-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-savanna-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-savanna-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-savanna-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-savanna-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-savanna-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-savanna-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-savanna-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-savanna-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-seaside-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-seaside-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-seaside-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-seaside-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-seaside-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-seaside-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-seaside-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-seaside-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-sulphurpool-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-sulphurpool-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-sulphurpool-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-sulphurpool-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-sulphurpool-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atelier-sulphurpool-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atelier-sulphurpool-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atelier-sulphurpool-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atom-one-dark-reasonable.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atom-one-dark-reasonable.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atom-one-dark-reasonable.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atom-one-dark-reasonable.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atom-one-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atom-one-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atom-one-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atom-one-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atom-one-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/atom-one-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/atom-one-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/atom-one-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/brown-paper.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/brown-paper.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/brown-paper.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/brown-paper.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/codepen-embed.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/codepen-embed.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/codepen-embed.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/codepen-embed.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/color-brewer.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/color-brewer.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/color-brewer.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/color-brewer.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/darcula.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/darcula.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/darcula.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/darcula.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/darkula.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/darkula.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/darkula.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/darkula.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/default.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/default.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/default.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/default.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/docco.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/docco.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/docco.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/docco.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/dracula.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/dracula.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/dracula.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/dracula.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/far.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/far.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/far.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/far.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/foundation.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/foundation.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/foundation.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/foundation.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/github-gist.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/github-gist.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/github-gist.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/github-gist.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/github.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/github.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/github.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/github.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/gml.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/gml.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/gml.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/gml.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/googlecode.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/googlecode.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/googlecode.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/googlecode.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/grayscale.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/grayscale.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/grayscale.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/grayscale.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/gruvbox-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/gruvbox-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/gruvbox-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/gruvbox-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/gruvbox-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/gruvbox-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/gruvbox-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/gruvbox-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/hopscotch.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/hopscotch.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/hopscotch.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/hopscotch.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/hybrid.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/hybrid.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/hybrid.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/hybrid.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/idea.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/idea.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/idea.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/idea.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/ir-black.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/ir-black.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/ir-black.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/ir-black.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/isbl-editor-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/isbl-editor-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/isbl-editor-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/isbl-editor-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/isbl-editor-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/isbl-editor-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/isbl-editor-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/isbl-editor-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/kimbie.dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/kimbie.dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/kimbie.dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/kimbie.dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/kimbie.light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/kimbie.light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/kimbie.light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/kimbie.light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/lightfair.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/lightfair.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/lightfair.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/lightfair.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/magula.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/magula.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/magula.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/magula.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/mono-blue.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/mono-blue.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/mono-blue.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/mono-blue.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/monokai-sublime.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/monokai-sublime.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/monokai-sublime.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/monokai-sublime.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/monokai.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/monokai.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/monokai.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/monokai.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/nord.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/nord.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/nord.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/nord.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/obsidian.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/obsidian.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/obsidian.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/obsidian.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/ocean.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/ocean.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/ocean.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/ocean.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/paraiso-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/paraiso-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/paraiso-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/paraiso-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/paraiso-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/paraiso-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/paraiso-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/paraiso-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/pojoaque.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/pojoaque.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/pojoaque.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/pojoaque.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/purebasic.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/purebasic.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/purebasic.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/purebasic.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/qtcreator_dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/qtcreator_dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/qtcreator_dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/qtcreator_dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/qtcreator_light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/qtcreator_light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/qtcreator_light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/qtcreator_light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/railscasts.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/railscasts.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/railscasts.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/railscasts.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/rainbow.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/rainbow.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/rainbow.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/rainbow.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/routeros.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/routeros.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/routeros.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/routeros.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/school-book.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/school-book.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/school-book.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/school-book.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/shades-of-purple.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/shades-of-purple.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/shades-of-purple.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/shades-of-purple.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/solarized-dark.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/solarized-dark.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/solarized-dark.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/solarized-dark.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/solarized-light.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/solarized-light.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/solarized-light.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/solarized-light.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/sunburst.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/sunburst.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/sunburst.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/sunburst.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/tomorrow-night-blue.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/tomorrow-night-blue.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/tomorrow-night-blue.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/tomorrow-night-blue.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/tomorrow-night-bright.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/tomorrow-night-bright.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/tomorrow-night-bright.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/tomorrow-night-bright.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/tomorrow-night-eighties.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/tomorrow-night-eighties.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/tomorrow-night-eighties.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/tomorrow-night-eighties.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/tomorrow-night.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/tomorrow-night.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/tomorrow-night.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/tomorrow-night.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/tomorrow.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/tomorrow.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/tomorrow.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/tomorrow.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/vs.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/vs.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/vs.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/vs.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/vs2015.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/vs2015.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/vs2015.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/vs2015.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/xcode.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/xcode.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/xcode.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/xcode.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/xt256.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/xt256.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/xt256.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/xt256.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/zenburn.min.css b/JSONConverter/Vendor/Highlightr/Assets/styles/zenburn.min.css similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Assets/styles/zenburn.min.css rename to JSONConverter/Vendor/Highlightr/Assets/styles/zenburn.min.css diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Classes/CodeAttributedString.swift b/JSONConverter/Vendor/Highlightr/Classes/CodeAttributedString.swift similarity index 99% rename from JSONConverter/Vendor/Highlightr_2.1.0/Classes/CodeAttributedString.swift rename to JSONConverter/Vendor/Highlightr/Classes/CodeAttributedString.swift index 83b78d9..316c49a 100644 --- a/JSONConverter/Vendor/Highlightr_2.1.0/Classes/CodeAttributedString.swift +++ b/JSONConverter/Vendor/Highlightr/Classes/CodeAttributedString.swift @@ -10,6 +10,8 @@ import Foundation #if os(OSX) import AppKit +#elseif os(iOS) + import UIKit #endif /// Highlighting Delegate diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Classes/HTMLUtils.swift b/JSONConverter/Vendor/Highlightr/Classes/HTMLUtils.swift similarity index 100% rename from JSONConverter/Vendor/Highlightr_2.1.0/Classes/HTMLUtils.swift rename to JSONConverter/Vendor/Highlightr/Classes/HTMLUtils.swift diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Classes/Highlightr.swift b/JSONConverter/Vendor/Highlightr/Classes/Highlightr.swift similarity index 98% rename from JSONConverter/Vendor/Highlightr_2.1.0/Classes/Highlightr.swift rename to JSONConverter/Vendor/Highlightr/Classes/Highlightr.swift index baf5da2..8353a76 100644 --- a/JSONConverter/Vendor/Highlightr_2.1.0/Classes/Highlightr.swift +++ b/JSONConverter/Vendor/Highlightr/Classes/Highlightr.swift @@ -53,7 +53,11 @@ open class Highlightr let window = JSValue(newObjectIn: jsContext) jsContext.setObject(window, forKeyedSubscript: "window" as NSString) + #if SWIFT_PACKAGE + let bundle = Bundle.module + #else let bundle = Bundle(for: Highlightr.self) + #endif self.bundle = bundle guard let hgPath = highlightPath ?? bundle.path(forResource: "highlight.min", ofType: "js") else { diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Classes/Shims.swift b/JSONConverter/Vendor/Highlightr/Classes/Shims.swift similarity index 93% rename from JSONConverter/Vendor/Highlightr_2.1.0/Classes/Shims.swift rename to JSONConverter/Vendor/Highlightr/Classes/Shims.swift index 91b51c4..965b341 100644 --- a/JSONConverter/Vendor/Highlightr_2.1.0/Classes/Shims.swift +++ b/JSONConverter/Vendor/Highlightr/Classes/Shims.swift @@ -10,6 +10,8 @@ import Foundation #if os(OSX) import AppKit +#elseif os(iOS) + import UIKit #endif #if swift(>=4.2) diff --git a/JSONConverter/Vendor/Highlightr_2.1.0/Classes/Theme.swift b/JSONConverter/Vendor/Highlightr/Classes/Theme.swift similarity index 95% rename from JSONConverter/Vendor/Highlightr_2.1.0/Classes/Theme.swift rename to JSONConverter/Vendor/Highlightr/Classes/Theme.swift index 7d01c99..fd5b9c3 100644 --- a/JSONConverter/Vendor/Highlightr_2.1.0/Classes/Theme.swift +++ b/JSONConverter/Vendor/Highlightr/Classes/Theme.swift @@ -152,9 +152,9 @@ open class Theme { } else { - returnString = NSAttributedString(string: string, attributes:[AttributedStringKey.font:codeFont!] ) + returnString = NSAttributedString(string: string, attributes:[AttributedStringKey.font:codeFont as Any] ) } - + return returnString } @@ -328,7 +328,7 @@ open class Theme { } - var r:CUnsignedInt = 0, g:CUnsignedInt = 0, b:CUnsignedInt = 0; + var r:UInt64 = 0, g:UInt64 = 0, b:UInt64 = 0; var divisor : CGFloat if (cString.count == 6 ) @@ -338,9 +338,9 @@ open class Theme { let gString = ((cString as NSString).substring(from: 2) as NSString).substring(to: 2) let bString = ((cString as NSString).substring(from: 4) as NSString).substring(to: 2) - Scanner(string: rString).scanHexInt32(&r) - Scanner(string: gString).scanHexInt32(&g) - Scanner(string: bString).scanHexInt32(&b) + Scanner(string: rString).scanHexInt64(&r) + Scanner(string: gString).scanHexInt64(&g) + Scanner(string: bString).scanHexInt64(&b) divisor = 255.0 @@ -350,9 +350,9 @@ open class Theme { let gString = ((cString as NSString).substring(from: 1) as NSString).substring(to: 1) let bString = ((cString as NSString).substring(from: 2) as NSString).substring(to: 1) - Scanner(string: rString).scanHexInt32(&r) - Scanner(string: gString).scanHexInt32(&g) - Scanner(string: bString).scanHexInt32(&b) + Scanner(string: rString).scanHexInt64(&r) + Scanner(string: gString).scanHexInt64(&g) + Scanner(string: bString).scanHexInt64(&b) divisor = 15.0 } From da1e19e316e77798eb11dc2ba5b008bb9a02b62f Mon Sep 17 00:00:00 2001 From: devyao <15919688564@163.com> Date: Mon, 28 Jun 2021 14:24:17 +0800 Subject: [PATCH 2/2] better build data list model --- .../Classes/Builder/JSONBuilder.swift | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/JSONConverter/Classes/Builder/JSONBuilder.swift b/JSONConverter/Classes/Builder/JSONBuilder.swift index 0e6ff8d..647d618 100644 --- a/JSONConverter/Classes/Builder/JSONBuilder.swift +++ b/JSONConverter/Classes/Builder/JSONBuilder.swift @@ -44,27 +44,27 @@ class JSONBuilder { let content = file.contentWithKeyName(keyName) dic.forEach { (item) in - let itemKey = item.key - var propertyModel: Property? + let keyName = item.key + var property: Property? switch item.value { case _ as String: - propertyModel = file.propertyWithKeyName(itemKey, type: .String) + property = file.propertyWithKeyName(keyName, type: .String) case let num as NSNumber: - propertyModel = file.propertyWithKeyName(itemKey, type: num.valueType()) + property = file.propertyWithKeyName(keyName, type: num.valueType()) case let dic as [String: Any]: - propertyModel = file.propertyWithKeyName(itemKey, type: .Dictionary) - let content = addDictionaryWithKeyName(itemKey, dic: dic) + property = file.propertyWithKeyName(keyName, type: .Dictionary) + let content = addDictionaryWithKeyName(keyName, dic: dic) file.contents.insert(content, at: 0) case let arr as [Any]: - propertyModel = addArraryWithKeyName(itemKey, valueArrary: arr) + property = addArraryWithKeyName(keyName, valueArrary: arr) case _ as NSNull: - propertyModel = file.propertyWithKeyName(itemKey, type: .nil) + property = file.propertyWithKeyName(keyName, type: .nil) default: - assertionFailure("parse object type error") + assertionFailure("build JSON object type error") } - if let propertyModel = propertyModel { + if let propertyModel = property { content.properties.append(propertyModel) } } @@ -73,13 +73,16 @@ class JSONBuilder { } private func addArraryWithKeyName(_ keyName: String, valueArrary: [Any]) -> Property? { - if valueArrary.count == 0 { - return nil + var item = valueArrary.first + if valueArrary.first is Dictionary { + var temp = [String: Any]() + valueArrary.forEach { temp.merge($0 as! [String: Any]) { $1 } } + item = temp } - if let first = valueArrary.first { + if let item = item { var propertyModel: Property? - switch first { + switch item { case _ as String: propertyModel = file.propertyWithKeyName(keyName, type: .ArrayString) case let num as NSNumber: @@ -90,14 +93,14 @@ class JSONBuilder { let content = addDictionaryWithKeyName(keyName, dic: dic) file.contents.insert(content, at: 0) default: - assertionFailure("parse object type error") + assertionFailure("build JSON object type error") break } return propertyModel + }else { + return nil } - - return nil } }