예제 #1
0
        public void AddRuleFromStringAndFile()
        {
            StreamReader fs   = File.OpenText(@"rules\custom\quickfix.json");
            string       rule = fs.ReadToEnd();

            // From String
            Ruleset testRules = Ruleset.FromString(rule, "string", null);

            Assert.AreEqual(1, testRules.Count(), "FromString Count should be 1");

            // From File
            testRules.AddFile(@"rules\custom\quickfix.json", null);
            Assert.AreEqual(2, testRules.Count(), "FromFile Count should be 2");

            foreach (Rule r in testRules)
            {
                Assert.IsNotNull(r.Id);
            }
        }
예제 #2
0
        /// <summary>
        /// Reloads rules based on settings
        /// </summary>
        private void LoadRules()
        {
            Settings set = Settings.GetSettings();

            ruleset = new Ruleset();
            string rulesFile = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

            rulesFile = Path.Combine(Path.Combine(rulesFile, "Content"), "devskim-rules.json");
            if (set.UseDefaultRules)
            {
                ruleset.AddFile(rulesFile, null);
            }

            if (set.UseCustomRules)
            {
                ruleset.AddDirectory(set.CustomRulesPath, "custom");
            }

            processor.Rules = ruleset;

            processor.SeverityLevel = Severity.Critical;

            if (set.EnableImportantRules)
            {
                processor.SeverityLevel |= Severity.Important;
            }
            if (set.EnableModerateRules)
            {
                processor.SeverityLevel |= Severity.Moderate;
            }
            if (set.EnableBestPracticeRules)
            {
                processor.SeverityLevel |= Severity.BestPractice;
            }
            if (set.EnableManualReviewRules)
            {
                processor.SeverityLevel |= Severity.ManualReview;
            }
        }