public static List <string> Init(string appDir)
        {
            List <string> errors = new List <string>();
            DirectoryInfo di     = new DirectoryInfo(appDir);

            di.Create();

            TEP = TextEditorProperties.Load(appDir);

            List <string> userActions = new List <string>();

            errors.AddRange(CMM.LoadMaps(@".\Resources\default.ctlmap", Path.Combine(appDir, "Settings", "custom.ctlmap"),
                                         Directory.GetFiles(Path.Combine(appDir, "Actions"), "*.cs").ToList()));

            FontRegistry.SetFont(TEP.Font);

            return(errors);
        }
        /// <summary>Create object from file.</summary>
        public static TextEditorProperties Load(string appDir)
        {
            string fn = Path.Combine(appDir, "Settings", "editor.settings");

            TextEditorProperties tep;

            if (File.Exists(fn))
            {
                string json = File.ReadAllText(fn);
                tep = JsonConvert.DeserializeObject <TextEditorProperties>(json);
            }
            else
            {
                tep = new TextEditorProperties(); // default
            }

            tep._fn = fn;

            return(tep);
        }