public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            var directive = (ImportDirective)item;

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

               if (directive.Keyword.Text == "import-once")
            {
                ICssError tag = new SimpleErrorTag(directive.Keyword, Resources.LessImportOnceDeprecated);
                context.AddError(tag);
                return ItemCheckResult.CancelCurrentItem;
            }

            return ItemCheckResult.Continue;
        }
示例#2
0
 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)
        {
            SimpleSelector sel = (SimpleSelector)item;

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

            if (sel.Text == "*")
            {
                    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)
        {
            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(_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)
        {
            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;
        }
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            SimpleSelector sel = (SimpleSelector)item;

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

            if (sel.Text == "*")
            {
                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.GetBoolean(WESettings.Keys.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)
        {
            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(_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)
        {
            Selector sel = (Selector)item;

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

            int index = sel.Text.IndexOf('#');

            if (index > 0)
            {
                string idName = sel.ItemAfterPosition(sel.Start + index).Text;
                string remove = sel.Text.Substring(0, index);
                string errorMessage = string.Format(CultureInfo.InvariantCulture, Resources.PerformanceDontOverQualifySelectors, idName, remove);

                SimpleErrorTag tag = new SimpleErrorTag(sel, errorMessage, index);

                context.AddError(tag);
            }

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

            if (!WESettings.GetBoolean(WESettings.Keys.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)
        {
            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);
        }
示例#16
0
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            Selector sel = (Selector)item;

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

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

            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);
        }
示例#17
0
        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);
        }
示例#18
0
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            SimpleSelector sel = (SimpleSelector)item;

            if (!WESettings.GetBoolean(WESettings.Keys.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);
        }
示例#19
0
        public ItemCheckResult CheckItem(ParseItem item, ICssCheckerContext context)
        {
            Selector sel = (Selector)item;

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

            int index = sel.Text.IndexOf('#');

            if (index > 0)
            {
                string idName       = sel.ItemAfterPosition(sel.Start + index).Text;
                string remove       = sel.Text.Substring(0, index);
                string errorMessage = string.Format(CultureInfo.InvariantCulture, Resources.PerformanceDontOverQualifySelectors, idName, remove);

                SimpleErrorTag tag = new SimpleErrorTag(sel, errorMessage, index);

                context.AddError(tag);
            }

            return(ItemCheckResult.Continue);
        }