예제 #1
0
        /// <summary>
        /// Merges the options from another config object into this one. The new options supercede if the same are specified.
        /// </summary>
        /// <param name="configuration"></param>
        public void MergeOptions(JsLintConfiguration configuration)
        {
            foreach (var kvp in configuration.Options)
            {
                Options[kvp.Key] = kvp.Value;
            }

            foreach (string file in configuration.ExcludeFiles)
            {
                ExcludeFiles.Add(file);
            }
            if (configuration.IgnoreStart != null)
            {
                IgnoreStart = configuration.IgnoreStart;
            }
            if (configuration.IgnoreEnd != null)
            {
                IgnoreEnd = configuration.IgnoreEnd;
            }
            if (configuration.IgnoreFile != null)
            {
                IgnoreFile = configuration.IgnoreFile;
            }

        }
예제 #2
0
        public void MergeOptions(string configFile)
        {
            string data = File.ReadAllText(configFile);
            JsLintConfiguration config = ParseConfigFile(data, LinterType);

            MergeOptions(config);
        }
예제 #3
0
        /// <summary>
        /// Parse a global format config file
        /// </summary>
        /// <param name="configFileData"></param>
        /// <returns></returns>
        public static JsLintConfiguration ParseConfigFile(string configFileData, LinterType linterType)
        {
            JsLintConfiguration config = new JsLintConfiguration();

            config.LinterType = linterType;
            ConfigFileParser parser = new ConfigFileParser();

            parser.ConfigData = configFileData;
            foreach (var kvp in parser.GetKVPSection("jslint"))
            {
                config.SetOption(kvp.Key, kvp.Value);
            }
            foreach (var kvp in parser.GetKVPSection("global"))
            {
                config.SetGlobal(kvp.Key);
            }
            foreach (var item in parser.GetValueSection("exclude", "\n,"))
            {
                config.SetFileExclude(item);
            }
            foreach (var item in parser.GetKVPSection("sharplinter"))
            {
                switch (item.Key.ToLower())
                {
                case "ignorestart":
                    config.IgnoreStart = item.Value;
                    break;

                case "ignoreend":
                    config.IgnoreEnd = item.Value;
                    break;

                case "ignorefile":
                    config.IgnoreFile = item.Value;
                    break;

                default:
                    throw new Exception("Unknown sharpLinter option '" + item.Key + "'");
                }
            }
            return(config);
        }
예제 #4
0
        /// <summary>
        ///  Parses a string and extracts the options, returning a new JsLintConfiguration object
        /// </summary>
        /// <param name="s"></param>
        /// <returns></returns>
        public static JsLintConfiguration ParseString(string s, LinterType type)
        {
            JsLintConfiguration returner = new JsLintConfiguration();
            returner.LinterType = type;
            // if there are no options we return an empty default object
            if (!string.IsNullOrWhiteSpace(s))
            {
                // otherwise, wipe the bool options
                //returner.BoolOptions = (JsLintBoolOption)0;

                // now go through each string
                string[] options = s.Split(',');
                foreach (string option in options)
                {

                    string[] optionValue = option.Split(':', '=');

                    // test if it is a single value without assigment ("evil" == "evil:true")
                    if (optionValue.Length == 1)
                    {
                        returner.SetOption(optionValue[0], true);
                    }
                    else if (optionValue.Length == 2)
                    {
                        // otherwise we have key value pair

                        string key = optionValue[0].Trim();
                        returner.SetOption(optionValue[0], optionValue[1].Trim());
                    }
                    else
                    {
                        throw new Exception("Unrecognised option format - too many colons");
                    }
                }
            }

            return returner;
        }
예제 #5
0
 public SharpLinterBatch(JsLintConfiguration configuration)
 {
     Configuration = configuration;
     OutputFormat  = "{0}({1}): ({2}) {3} {4}";
 }