예제 #1
0
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            if (!WESettings.Instance.Css.ValidateVendorSpecifics)
            {
                return(ItemCheckResult.Continue);
            }

            AtDirective directive = (AtDirective)item;

            if (!directive.IsValid || directive.IsVendorSpecific() || context == null)
            {
                return(ItemCheckResult.Continue);
            }

            ICssSchemaInstance schema = CssEditorChecker.GetSchemaForItem(context, item);
            var missingEntries        = directive.GetMissingVendorSpecifics(schema);

            if (missingEntries.Any())
            {
                string    error = string.Format(CultureInfo.InvariantCulture, Resources.BestPracticeAddMissingVendorSpecificDirective, directive.Keyword.Text, string.Join(", ", missingEntries));
                ICssError tag   = new SimpleErrorTag(directive.Keyword, error);
                context.AddError(tag);
                return(ItemCheckResult.CancelCurrentItem);
            }

            return(ItemCheckResult.Continue);
        }
예제 #2
0
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            if (!WESettings.Instance.Css.ValidateVendorSpecifics)
            {
                return(ItemCheckResult.Continue);
            }

            Declaration dec = (Declaration)item;

            if (!dec.IsValid || dec.IsVendorSpecific() || IgnoreProperty(dec) || context == null)
            {
                return(ItemCheckResult.Continue);
            }

            ICssSchemaInstance schema = CssEditorChecker.GetSchemaForItem(context, item);
            var missingEntries        = dec.GetMissingVendorSpecifics(schema);

            if (missingEntries.ToArray().Length > 0)
            {
                var       missingPrefixes = missingEntries.Select(e => e.Substring(0, e.IndexOf('-', 1) + 1));
                string    error           = string.Format(CultureInfo.InvariantCulture, Resources.BestPracticeAddMissingVendorSpecific, dec.PropertyName.Text, string.Join(", ", missingPrefixes));
                ICssError tag             = new SimpleErrorTag(dec.PropertyName, error);
                context.AddError(tag);
                return(ItemCheckResult.CancelCurrentItem);
            }

            return(ItemCheckResult.Continue);
        }
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            if (item.IsValid)
                return ItemCheckResult.Continue;

            if (item.Text.Contains(" or "))
            {
                ICssError tag = new SimpleErrorTag(item, _orInvalidMessage);
                context.AddError(tag);
                return ItemCheckResult.CancelCurrentItem;
            }

            return ItemCheckResult.Continue;
        }
예제 #4
0
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            if (item.IsValid)
            {
                return(ItemCheckResult.Continue);
            }

            if (item.Text.Contains(" or "))
            {
                ICssError tag = new SimpleErrorTag(item, _orInvalidMessage);
                context.AddError(tag);
                return(ItemCheckResult.CancelCurrentItem);
            }

            return(ItemCheckResult.Continue);
        }
 public void FilterErrorList(IList <ICssError> errors, ICssCheckerContext context)
 {
     for (int i = errors.Count - 1; i > -1; i--)
     {
         ICssError error = errors[i];
         if (error.Item.IsValid)
         {
             AtDirective atDir = error.Item.FindType <AtDirective>();
             if (atDir != null && atDir.IsValid && atDir.Keyword.Text == "-ms-keyframes")
             {
                 errors.RemoveAt(i);
                 ICssError tag = new SimpleErrorTag(error.Item, error.Text + _message, CssErrorFlags.TaskListError | CssErrorFlags.UnderlineRed);
                 errors.Insert(i, tag);
             }
         }
     }
 }
 public void FilterErrorList(IList<ICssError> errors, ICssCheckerContext context)
 {
     for (int i = errors.Count - 1; i > -1; i--)
     {
         ICssError error = errors[i];
         if (error.Item.IsValid)
         {
             AtDirective atDir = error.Item.FindType<AtDirective>();
             if (atDir != null && atDir.IsValid && atDir.Keyword.Text == "-ms-keyframes")
             {
                 errors.RemoveAt(i);
                 ICssError tag = new SimpleErrorTag(error.Item, error.Text + _message, CssErrorFlags.TaskListError | CssErrorFlags.UnderlineRed);
                 errors.Insert(i, tag);
             }
         }
     }
 }
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            ItemName itemName = (ItemName)item;

            if (!itemName.IsValid || context == null || (item.PreviousSibling != null && item.PreviousSibling.Text == "["))
                return ItemCheckResult.Continue;

            if (!_cache.Contains(itemName.Text.ToLowerInvariant()) && itemName.Text.IndexOf('-') == -1)
            {
                string error = "Validation: \"" + itemName.Text + "\" isn't a valid HTML tag.";
                ICssError tag = new SimpleErrorTag(itemName, error);
                context.AddError(tag);

                return ItemCheckResult.CancelCurrentItem;
            }

            return ItemCheckResult.Continue;
        }
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            Declaration dec = (Declaration)item;

            if (context == null || !dec.IsValid)
                return ItemCheckResult.Continue;

            string text = dec.PropertyName.Text;

            if (text.StartsWith("-ms-transition", StringComparison.Ordinal) || text.StartsWith("-ms-animation", StringComparison.Ordinal))
            {
                string error = string.Format(CultureInfo.CurrentCulture, _message, text);
                ICssError tag = new SimpleErrorTag(dec.PropertyName, error);
                context.AddError(tag);
                return ItemCheckResult.CancelCurrentItem;
            }

            return ItemCheckResult.Continue;
        }
예제 #9
0
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            ItemName itemName = (ItemName)item;

            if (!itemName.IsValid || context == null || (item.PreviousSibling != null && item.PreviousSibling.Text == "["))
            {
                return(ItemCheckResult.Continue);
            }

            if (!_cache.Contains(itemName.Text.ToLowerInvariant()) && itemName.Text.IndexOf('-') == -1)
            {
                string    error = "Validation: \"" + itemName.Text + "\" isn't a valid HTML tag.";
                ICssError tag   = new SimpleErrorTag(itemName, error);
                context.AddError(tag);

                return(ItemCheckResult.CancelCurrentItem);
            }

            return(ItemCheckResult.Continue);
        }
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            Selector sel = (Selector)item;

            if (!WESettings.Instance.Css.ValidateOverQualifiedSelector || !sel.IsValid || context == null)
                return ItemCheckResult.Continue;

            var idPart = sel.SimpleSelectors.Skip(1).FirstOrDefault(s => s.Text.StartsWith("#", StringComparison.Ordinal));
            if (idPart != null)
            {
                string remove = sel.Text.Substring(0, idPart.Start - sel.Start).TrimEnd();  // Remove the whitespace before the final part
                string errorMessage = string.Format(CultureInfo.InvariantCulture, Resources.PerformanceDontOverQualifySelectors, idPart.Text, remove);

                SimpleErrorTag tag = new SimpleErrorTag(sel, errorMessage, remove.Length);

                context.AddError(tag);
            }

            return ItemCheckResult.Continue;
        }
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            AtDirective directive = (AtDirective)item;

            if (!directive.IsValid || directive.IsVendorSpecific() || context == null)
                return ItemCheckResult.Continue;

            ICssSchemaInstance schema = CssEditorChecker.GetSchemaForItem(context, item);
            var missingEntries = directive.GetMissingVendorSpecifics(schema);

            if (missingEntries.Any())
            {
                string error = string.Format(CultureInfo.InvariantCulture, Resources.BestPracticeAddMissingVendorSpecificDirective, directive.Keyword.Text, string.Join(", ", missingEntries));
                ICssError tag = new SimpleErrorTag(directive.Keyword, error);
                context.AddError(tag);
                return ItemCheckResult.CancelCurrentItem;
            }

            return ItemCheckResult.Continue;
        }
예제 #12
0
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            Declaration dec = (Declaration)item;

            if (context == null || !dec.IsValid)
            {
                return(ItemCheckResult.Continue);
            }

            string text = dec.PropertyName.Text;

            if (text.StartsWith("-ms-transition", StringComparison.Ordinal) || text.StartsWith("-ms-animation", StringComparison.Ordinal))
            {
                string    error = string.Format(CultureInfo.CurrentCulture, _message, text);
                ICssError tag   = new SimpleErrorTag(dec.PropertyName, error);
                context.AddError(tag);
                return(ItemCheckResult.CancelCurrentItem);
            }

            return(ItemCheckResult.Continue);
        }
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            Declaration dec = (Declaration)item;

            if (!dec.IsValid || dec.IsVendorSpecific() || IgnoreProperty(dec) || context == null)
                return ItemCheckResult.Continue;

            ICssSchemaInstance schema = CssEditorChecker.GetSchemaForItem(context, item);
            var missingEntries = dec.GetMissingVendorSpecifics(schema);

            if (missingEntries.ToArray().Length > 0)
            {
                var missingPrefixes = missingEntries.Select(e => e.Substring(0, e.IndexOf('-', 1) + 1));
                string error = string.Format(CultureInfo.InvariantCulture, Resources.BestPracticeAddMissingVendorSpecific, dec.PropertyName.Text, string.Join(", ", missingPrefixes));
                ICssError tag = new SimpleErrorTag(dec.PropertyName, error);
                context.AddError(tag);
                return ItemCheckResult.CancelCurrentItem;
            }

            return ItemCheckResult.Continue;
        }
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            SimpleSelector sel = (SimpleSelector)item;

            if (!WESettings.Instance.Css.ValidateStarSelector || !sel.IsValid || context == null)
                return ItemCheckResult.Continue;

            if (sel.Text == "*")
            {
                //string afterStar = sel.Text.Length > index + 1 ? sel.Text.Substring(index + 1) : null;
                //if (afterStar == null || !afterStar.Trim().StartsWith("html", StringComparison.OrdinalIgnoreCase))
                //{
                string errorMessage = string.Format(CultureInfo.InvariantCulture, Resources.PerformanceDontUseStarSelector);

                SimpleErrorTag tag = new SimpleErrorTag(sel, errorMessage);

                context.AddError(tag);
                //}
            }

            return ItemCheckResult.Continue;
        }
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            Selector sel = (Selector)item;

            if (!WESettings.Instance.Css.ValidateOverQualifiedSelector || !sel.IsValid || context == null)
            {
                return(ItemCheckResult.Continue);
            }

            var idPart = sel.SimpleSelectors.Skip(1).FirstOrDefault(s => s.Text.StartsWith("#", StringComparison.Ordinal));

            if (idPart != null)
            {
                string remove       = sel.Text.Substring(0, idPart.Start - sel.Start).TrimEnd(); // Remove the whitespace before the final part
                string errorMessage = string.Format(CultureInfo.InvariantCulture, Resources.PerformanceDontOverQualifySelectors, idPart.Text, remove);

                SimpleErrorTag tag = new SimpleErrorTag(sel, errorMessage, remove.Length);

                context.AddError(tag);
            }

            return(ItemCheckResult.Continue);
        }
예제 #16
0
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            SimpleSelector sel = (SimpleSelector)item;

            if (!WESettings.Instance.Css.ValidateStarSelector || !sel.IsValid || context == null)
            {
                return(ItemCheckResult.Continue);
            }

            if (sel.Text == "*")
            {
                //string afterStar = sel.Text.Length > index + 1 ? sel.Text.Substring(index + 1) : null;
                //if (afterStar == null || !afterStar.Trim().StartsWith("html", StringComparison.OrdinalIgnoreCase))
                //{
                string errorMessage = string.Format(CultureInfo.InvariantCulture, Resources.PerformanceDontUseStarSelector);

                SimpleErrorTag tag = new SimpleErrorTag(sel, errorMessage);

                context.AddError(tag);
                //}
            }

            return(ItemCheckResult.Continue);
        }