/// <summary>
        ///     Load settings from from a file.
        /// </summary>
        /// <param name="defaultSettings">Save and return defaultSettings if there are no saved settings.</param>
        /// <returns>Return loaded or default settings.</returns>
        public static Settings LoadSettings(Settings defaultSettings, DevDescriptor devDescriptor,
                                            AdjustSettings presaveAdjust)
        {
            if (!File.Exists(Paths.devSettingsPath))
            {
                SaveSettings(defaultSettings, devDescriptor, presaveAdjust);
                return(defaultSettings);
            }

            using (var input = File.OpenRead(Paths.devSettingsPath))
            {
                var settings = Settings.Parser.ParseFrom(input);
                return(settings);
            }
        }
        /// <summary>
        ///     Save settings to a file.
        /// </summary>
        /// <param name="settings">settings to save</param>
        /// <param name="presaveAdjust">Function to automatically change settings before saving them</param>
        public static void SaveSettings(Settings settings, DevDescriptor devDescriptor, AdjustSettings presaveAdjust)
        {
            settings = presaveAdjust(settings, devDescriptor);
            Directory.CreateDirectory(Path.GetDirectoryName(Paths.devSettingsPath));
            using (var output = File.Create(Paths.devSettingsPath))
            {
                settings.WriteTo(output);
            }

            AssetDatabase.Refresh();
        }