public void FilterCompletionList(IList<CssCompletionEntry> completions, CssCompletionContext context)
        {
            if (context.ContextType != CssCompletionContextType.PseudoClassOrElement)
                return;

            ParseItem prev = context.ContextItem.PreviousSibling;
            bool hasScrollbar = false;

            if (prev != null)
            {
                hasScrollbar = prev.Text.Contains(":-webkit-resizer") || prev.Text.Contains(":-webkit-scrollbar");
            }

            // TODO: enable for next update after Preview
            //foreach (CssCompletionEntry entry in completions)
            //{
            //    if (hasScrollbar)
            //    {
            //        entry.FilterType = _cache.Contains(entry.DisplayText) ? entry.FilterType : CompletionEntryFilterTypes.NeverVisible;
            //    }
            //    else
            //    {
            //        entry.FilterType = !_cache.Contains(entry.DisplayText) ? entry.FilterType : CompletionEntryFilterTypes.NeverVisible;
            //    }
            //}
        }
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            Declaration dec = context.ContextItem.FindType <Declaration>();

            if (dec == null || dec.PropertyName == null)
            {
                yield break;
            }

            if (dec.PropertyName.Text.EndsWith("width", StringComparison.OrdinalIgnoreCase))
            {
                foreach (var browser in BrowserLink.BrowserInfo.BrowserCapDictionary.Values.OrderByDescending(b => b.Width))
                {
                    string value = browser.Width + "px";
                    yield return(new BrowserCompletionListEntry(value, browser.Name));
                }
            }
            else if (dec.PropertyName.Text.EndsWith("height", StringComparison.OrdinalIgnoreCase))
            {
                foreach (var browser in BrowserLink.BrowserInfo.BrowserCapDictionary.Values.OrderByDescending(b => b.Height))
                {
                    string value = browser.Height + "px";
                    yield return(new BrowserCompletionListEntry(value, browser.Name));
                }
            }
        }
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            HashSet <ICssCompletionListEntry> entries = new HashSet <ICssCompletionListEntry>();
            Declaration dec = context.ContextItem.FindType <Declaration>();

            if (dec == null || dec.PropertyName == null || (!dec.PropertyName.Text.EndsWith("animation-name", StringComparison.OrdinalIgnoreCase) && dec.PropertyName.Text != "animation"))
            {
                return(entries);
            }

            StyleSheet stylesheet = context.ContextItem.StyleSheet;
            var        visitor    = new CssItemCollector <KeyFramesDirective>();

            stylesheet.Accept(visitor);

            foreach (KeyFramesDirective keyframes in visitor.Items)
            {
                if (!entries.Any(e => e.DisplayText.Equals(keyframes.Name.Text, StringComparison.OrdinalIgnoreCase)))
                {
                    entries.Add(new CompletionListEntry(keyframes.Name.Text));
                }
            }

            return(entries);
        }
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            if (!IsFontFamilyContext(context))
            {
                yield break;
            }

            StyleSheet stylesheet   = context.ContextItem.StyleSheet;
            var        visitorRules = new CssItemCollector <FontFaceDirective>();

            stylesheet.Accept(visitorRules);

            foreach (FontFaceDirective item in visitorRules.Items)
            {
                var visitorDec = new CssItemCollector <Declaration>();
                item.Block.Accept(visitorDec);

                Declaration family = visitorDec.Items.FirstOrDefault(i => i.PropertyName.Text == "font-family");

                if (family != null)
                {
                    string value = string.Join(string.Empty, family.Values.Select(v => v.Text));
                    yield return(new FontFamilyCompletionListEntry(value.Trim('\'', '"')));
                }
            }

            yield return(new FontFamilyCompletionListEntry("Pick from file..."));
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            if (!IsFontFamilyContext(context))
                yield break;

            StyleSheet stylesheet = context.ContextItem.StyleSheet;
            var visitorRules = new CssItemCollector<FontFaceDirective>();
            stylesheet.Accept(visitorRules);

            foreach (FontFaceDirective item in visitorRules.Items)
            {
                var visitorDec = new CssItemCollector<Declaration>();
                item.Block.Accept(visitorDec);

                Declaration family = visitorDec.Items.FirstOrDefault(i => i.PropertyName.Text == "font-family");

                if (family != null)
                {
                    string value = string.Join(string.Empty, family.Values.Select(v => v.Text));
                    yield return new FontFamilyCompletionListEntry(value.Trim('\'', '"'));
                }
            }

            yield return new FontFamilyCompletionListEntry("Pick from file...");
        }
        public void FilterCompletionList(IList <CssCompletionEntry> completions, CssCompletionContext context)
        {
            if (context.ContextType != CssCompletionContextType.PropertyValue)
            {
                return;
            }

            // Check if the property name has the word color in it. Schema only list colors for these properties.
            Declaration dec = context.ContextItem.FindType <Declaration>();

            if (dec == null || dec.PropertyName == null || !dec.PropertyNameText.Contains("color"))
            {
                return;
            }

            foreach (CssCompletionEntry entry in completions)
            {
                var color = System.Drawing.Color.FromName(entry.DisplayText);

                if (color.IsKnownColor)
                {
                    entry.IconSource = GetColorSwatch(color);
                }
                else if (entry.DisplayText.Contains("grey") || entry.DisplayText.Contains("3D"))
                {
                    // Hides old IE entries from poluting Intellisense.
                    entry.FilterType = CompletionEntryFilterTypes.NeverVisible;
                }
            }
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            if (!IsColorContext(context))
                yield break;

            StyleSheet styleSheet = context.ContextItem.StyleSheet;
            CssVariableHelpers helper = ((CssStyleSheet)styleSheet).CreateVariableHelpers();
            var declarations = helper.FindDeclaredVariables(styleSheet, context.SpanStart);

            // First collect variables from current document
            var varsCollection = new CssColorVariableCollector(declarations.Select(c => new CssVariable(c.VariableName.Text, c.Value.Text)));

            // Next, collect from imported documents
            using (MultiDocumentReadLock locks = CssDocumentHelpers.DocumentImportManager.LockImportedStyleSheets(styleSheet))
            {
                foreach (StyleSheet importedStyleSheet in locks.StyleSheets)
                {
                    declarations = helper.FindDeclaredVariables(importedStyleSheet, importedStyleSheet.AfterEnd);
                    varsCollection.AddMany(declarations.Select(c => new CssVariable(c.VariableName.Text, c.Value.Text)));
                }
            }

            foreach (var variable in varsCollection.GetEvaluatedColorVariables())
            {
                yield return new ColorSwatchIntellisense(variable.Name, variable.Value);
            }
        }
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            MediaExpression expression = (MediaExpression)context.ContextItem;

            switch (expression.MediaFeature.Text)
            {
            case "orientation":
                yield return(new CompletionListEntry("portrait"));

                yield return(new CompletionListEntry("landscape"));

                break;

            case "scan":
                yield return(new CompletionListEntry("interlace"));

                yield return(new CompletionListEntry("progressive"));

                break;

            case "-ms-high-contrast":
                yield return(new CompletionListEntry("active"));

                yield return(new CompletionListEntry("black-on-white"));

                yield return(new CompletionListEntry("white-on-black"));

                yield return(new CompletionListEntry("none"));

                break;
            }
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            if (!IsFontFamilyContext(context))
                yield break;

            yield return new FontFamilyCompletionListEntry("Pick from file...");
        }
        public void FilterCompletionList(IList <CssCompletionEntry> completions, CssCompletionContext context)
        {
            if (context.ContextType != CssCompletionContextType.PseudoClassOrElement)
            {
                return;
            }

            ParseItem prev         = context.ContextItem.PreviousSibling;
            bool      hasScrollbar = false;

            if (prev != null)
            {
                hasScrollbar = prev.Text.Contains(":-webkit-resizer") || prev.Text.Contains(":-webkit-scrollbar");
            }

            // TODO: enable for next update after Preview
            //foreach (CssCompletionEntry entry in completions)
            //{
            //    if (hasScrollbar)
            //    {
            //        entry.FilterType = _cache.Contains(entry.DisplayText) ? entry.FilterType : CompletionEntryFilterTypes.NeverVisible;
            //    }
            //    else
            //    {
            //        entry.FilterType = !_cache.Contains(entry.DisplayText) ? entry.FilterType : CompletionEntryFilterTypes.NeverVisible;
            //    }
            //}
        }
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            if (!IsColorContext(context))
            {
                yield break;
            }

            StyleSheet         styleSheet = context.ContextItem.StyleSheet;
            CssVariableHelpers helper     = ((CssStyleSheet)styleSheet).CreateVariableHelpers();
            var declarations = helper.FindDeclaredVariables(styleSheet, context.SpanStart);

            // First collect variables from current document
            var varsCollection = new CssColorVariableCollector(declarations.Select(c => new CssVariable(c.VariableName.Text, c.Value.Text)));

            // Next, collect from imported documents
            using (MultiDocumentReadLock locks = CssDocumentHelpers.DocumentImportManager.LockImportedStyleSheets(styleSheet))
            {
                foreach (StyleSheet importedStyleSheet in locks.StyleSheets)
                {
                    declarations = helper.FindDeclaredVariables(importedStyleSheet, importedStyleSheet.AfterEnd);
                    varsCollection.AddMany(declarations.Select(c => new CssVariable(c.VariableName.Text, c.Value.Text)));
                }
            }

            foreach (var variable in varsCollection.GetEvaluatedColorVariables())
            {
                yield return(new ColorSwatchCompletionListEntry(variable.Name, variable.Value));
            }
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            MediaQuery query = (MediaQuery)context.ContextItem;
            ParseItem item = query.StyleSheet.ItemAfterPosition(context.SpanStart);

            if (query.MediaType != null && query.MediaType.AfterEnd < item.Start)
            {
                yield return new CompletionListEntry("and", 0, StandardGlyphGroup.GlyphGroupOperator);
                yield break;
            }

            if (item != query.Operation || query.MediaType == null)
            {
                yield return new CompletionListEntry("all");
                yield return new CompletionListEntry("aural");
                yield return new CompletionListEntry("braille");
                yield return new CompletionListEntry("embossed");
                yield return new CompletionListEntry("handheld");
                yield return new CompletionListEntry("print");
                yield return new CompletionListEntry("projection");
                yield return new CompletionListEntry("screen");
                yield return new CompletionListEntry("tty");
                yield return new CompletionListEntry("tv");
            }

            if (item != query.MediaType || query.Operation == null)
            {
                yield return new CompletionListEntry("not", 1, StandardGlyphGroup.GlyphGroupOperator);
                yield return new CompletionListEntry("only", 1, StandardGlyphGroup.GlyphGroupOperator);
            }
        }
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            if (!IsColorContext(context))
            {
                yield break;
            }

            StyleSheet         styleSheet = context.ContextItem.StyleSheet;
            CssVariableHelpers helper     = ((CssStyleSheet)styleSheet).CreateVariableHelpers();
            var declarations = helper.FindDeclaredVariables(styleSheet, context.SpanStart);

            // First collect variables from current documents
            foreach (CssVariableDeclaration color in declarations.Where(c => IsValidColor(c.Value.Text)))
            {
                yield return(new ColorSwatchIntellisense(color.VariableName.Text, color.Value.Text));
            }

            // Next, collect from imported documents
            using (MultiDocumentReadLock locks = CssDocumentHelpers.DocumentImportManager.LockImportedStyleSheets(styleSheet))
            {
                foreach (StyleSheet importedStyleSheet in locks.StyleSheets)
                {
                    declarations = helper.FindDeclaredVariables(importedStyleSheet, importedStyleSheet.AfterEnd);

                    foreach (CssVariableDeclaration color in declarations.Where(c => IsValidColor(c.Value.Text)))
                    {
                        yield return(new ColorSwatchIntellisense(color.VariableName.Text, color.Value.Text));
                    }
                }
            }
        }
        public void FilterCompletionList(IList<CssCompletionEntry> completions, CssCompletionContext context)
        {
            if (context.ContextType != CssCompletionContextType.PropertyValue)
                return;

            // Check if the property name has the word color in it. Schema only list colors for these properties.
            Declaration dec = context.ContextItem.FindType<Declaration>();
            if (dec == null || dec.PropertyName == null || !dec.PropertyNameText.Contains("color"))
                return;

            foreach (CssCompletionEntry entry in completions)
            {
                var color = System.Drawing.Color.FromName(entry.DisplayText);

                if (color.IsKnownColor)
                {
                    entry.IconSource = GetColorSwatch(color);
                }
                else if (entry.DisplayText.Contains("grey") || entry.DisplayText.Contains("3D"))
                {
                    // Hides old IE entries from poluting Intellisense.
                    entry.FilterType = CompletionEntryFilterTypes.NeverVisible;
                }
            }
        }
 public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
 {
     // list taken from http://dev.w3.org/html5/markup/input.html
     return new[] {
         new CompletionListEntry("text"),
         new CompletionListEntry("password"),
         new CompletionListEntry("checkbox"),
         new CompletionListEntry("radio"),
         new CompletionListEntry("button"),
         new CompletionListEntry("submit"),
         new CompletionListEntry("reset"),
         new CompletionListEntry("file"),
         new CompletionListEntry("hidden"),
         new CompletionListEntry("image"),
         new CompletionListEntry("datetime"),
         new CompletionListEntry("datetime-local"),
         new CompletionListEntry("date"),
         new CompletionListEntry("month"),
         new CompletionListEntry("time"),
         new CompletionListEntry("week"),
         new CompletionListEntry("number"),
         new CompletionListEntry("range"),
         new CompletionListEntry("email"),
         new CompletionListEntry("url"),
         new CompletionListEntry("search"),
         new CompletionListEntry("tel"),
         new CompletionListEntry("color")
     };
 }
        private static CompletionPresenterInfo CreatePresenter(ICompletionSession session, CssCompletionContext context)
        {
            object[] parameters = new object[] { session, context };
            BindingFlags flags = BindingFlags.Public | BindingFlags.Instance;
            Type type = typeof(CssClassifier).Assembly.GetType("Microsoft.CSS.Editor.Intellisense.ColorPickerPresenter");
            object colorPicker = Activator.CreateInstance(type, flags, null, parameters, null);

            return new CompletionPresenterInfo((IIntellisensePresenter)colorPicker, false);
        }
Example #17
0
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            if (!IsFontFamilyContext(context))
            {
                yield break;
            }

            yield return(new FontFamilyCompletionListEntry("Pick from file..."));
        }
        public void FilterCompletionList(IList<CssCompletionEntry> completions, CssCompletionContext context)
        {
            if (context.ContextType != CssCompletionContextType.AtDirectiveName)
                return;

            var importOnce = completions.FirstOrDefault(c => c.DisplayText == "@import-once");
            if (importOnce != null)
                importOnce.FilterType = CompletionEntryFilterTypes.NeverVisible;
        }
        public CompletionPresenterInfo TryCreateCompletionPresenter(ICompletionSession session, CssCompletionContext context)
        {
            string text = context.Snapshot.GetText(context.SpanStart, context.SpanLength);
            if (Color.FromName(text).IsKnownColor)
            {
                return CreatePresenter(session, context);
            }

            return new CompletionPresenterInfo(null, true);
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            Declaration dec = context.ContextItem.FindType<Declaration>();
            if (dec == null || dec.Colon == null || dec.Important != null || dec.Values.Count == 0)
                yield break;

            ParseItem before = dec.ItemBeforePosition(context.SpanStart);
            if (before != null && before.Text == "!")
                yield return new CompletionListEntry("important", 1);
        }
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            var    line = context.Snapshot.GetLineFromPosition(context.ContextItem.Start);
            string text = line.GetText().Trim();

            if (text.Length == context.ContextItem.Length)
            {
                yield return(_entry);
            }
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            var line = context.Snapshot.GetLineFromPosition(context.ContextItem.Start);
            string text = line.GetText().Trim();

            if (text.Length == context.ContextItem.Length)
            {
                yield return _entry;
            }
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            MediaExpression expression = (MediaExpression)context.ContextItem;

            yield return new CompletionListEntry("device-width");
            yield return new CompletionListEntry("max-device-width");
            yield return new CompletionListEntry("min-device-width");

            yield return new CompletionListEntry("device-height");
            yield return new CompletionListEntry("max-device-height");
            yield return new CompletionListEntry("min-device-height");

            yield return new CompletionListEntry("height");
            yield return new CompletionListEntry("max-height");
            yield return new CompletionListEntry("min-height");

            yield return new CompletionListEntry("width");
            yield return new CompletionListEntry("max-width");
            yield return new CompletionListEntry("min-width");

            yield return new CompletionListEntry("orientation");
            yield return new CompletionListEntry("scan");
            yield return new CompletionListEntry("grid");

            yield return new CompletionListEntry("resolution");
            yield return new CompletionListEntry("max-resolution");
            yield return new CompletionListEntry("min-resolution");

            yield return new CompletionListEntry("aspect-ratio");
            yield return new CompletionListEntry("max-aspect-ratio");
            yield return new CompletionListEntry("min-aspect-ratio");
            yield return new CompletionListEntry("device-aspect-ratio");
            yield return new CompletionListEntry("max-device-aspect-ratio");
            yield return new CompletionListEntry("min-device-aspect-ratio");

            yield return new CompletionListEntry("color");
            yield return new CompletionListEntry("min-color");
            yield return new CompletionListEntry("max-color");

            yield return new CompletionListEntry("color-index");
            yield return new CompletionListEntry("max-color-index");
            yield return new CompletionListEntry("min-color-index");

            yield return new CompletionListEntry("monochrome");
            yield return new CompletionListEntry("max-monochrome");
            yield return new CompletionListEntry("min-monochrome");

            // Internet Explorer
            yield return new CompletionListEntry("-ms-high-contrast");

            // Webkit
            yield return new CompletionListEntry("-webkit-device-pixel-ratio");
            yield return new CompletionListEntry("-webkit-max-device-pixel-ratio");
            yield return new CompletionListEntry("-webkit-min-device-pixel-ratio");
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            var visitor = new CssItemCollector<Declaration>();
            context.ContextItem.StyleSheet.Accept(visitor);

            foreach (Declaration dec in visitor.Items)
            {
                if (dec.IsValid && dec.PropertyName.Text.StartsWith("var-"))
                    yield return new CompletionListEntry(dec.PropertyName.Text.Substring(4));
            }
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            StyleSheet stylesheet = context.ContextItem.StyleSheet;
            var visitorRules = new CssItemCollector<ClassSelector>();
            stylesheet.Accept(visitorRules);

            foreach (string item in visitorRules.Items.Where(s => s != context.ContextItem).Select(s => s.Text).Distinct())
            {
                yield return new CompletionListEntry(item);
            }
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            var tag = context.ContextItem.FindType<SimpleSelector>();
            var schemas = GetSchemas();

            if (tag == null || tag.Name == null)
            {
                return UnknownTagName(schemas);
            }

            return KnownTagName(schemas, tag.Name.Text);
        }
Example #27
0
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            StyleSheet stylesheet   = context.ContextItem.StyleSheet;
            var        visitorRules = new CssItemCollector <IdSelector>();

            stylesheet.Accept(visitorRules);

            foreach (string item in visitorRules.Items.Where(s => s != context.ContextItem).Select(s => s.Text).Distinct())
            {
                yield return(new CompletionListEntry(item));
            }
        }
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            var tag     = context.ContextItem.FindType <SimpleSelector>();
            var schemas = GetSchemas();

            if (tag == null || tag.Name == null)
            {
                return(UnknownTagName(schemas));
            }

            return(KnownTagName(schemas, tag.Name.Text));
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            Declaration dec = context.ContextItem.FindType<Declaration>();

            if (dec == null || dec.PropertyName == null || dec.PropertyName.Text != "font-family")
                yield break;

            foreach (string item in _entryCache)
            {
                ICssCompletionListEntry entry = new CompletionListEntry(item, 1);
                yield return entry;
            }
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            List<ICssCompletionListEntry> entries = new List<ICssCompletionListEntry>();
            Declaration dec = context.ContextItem.FindType<Declaration>();
            if (dec == null || dec.Colon == null || dec.Important != null || dec.Values.Count == 0)
                return entries;

            ParseItem before = dec.ItemBeforePosition(context.SpanStart);
            if (before != null && before.Text == "!")
                entries.Add(new CompletionListEntry("important", 1));

            return entries;
        }
        public void FilterCompletionList(IList<CssCompletionEntry> completions, CssCompletionContext context)
        {
            if (context.ContextType != CssCompletionContextType.PropertyName)
                return;

            foreach (CssCompletionEntry entry in completions)
            {
                if (_cache.Contains(entry.DisplayText))
                {
                    entry.FilterType = CompletionEntryFilterTypes.NeverVisible;
                }
            }
        }
        public void FilterCompletionList(IList<CssCompletionEntry> completions, CssCompletionContext context)
        {
            ICssSchemaInstance rootSchema = CssSchemaManager.SchemaManager.GetSchemaRoot(null);
            ICssSchemaInstance schema = CssSchemaManager.SchemaManager.GetSchemaForItem(rootSchema, context.ContextItem);

            foreach (CssCompletionEntry entry in completions)
            {
                ICssCompletionListEntry prop = GetSchemaEntry(schema, context, entry);

                if (prop != null && !string.IsNullOrEmpty(prop.GetAttribute("obsolete")))
                    entry.FilterType = CompletionEntryFilterTypes.NeverVisible;
            }
        }
        public void FilterCompletionList(IList<CssCompletionEntry> completions, CssCompletionContext context)
        {
            if (context.ContextType != CssCompletionContextType.PropertyValue || WESettings.GetBoolean(WESettings.Keys.ShowInitialInherit))
                return;

            foreach (CssCompletionEntry entry in completions)
            {
                if (entry.DisplayText == "initial" || entry.DisplayText == "inherit")
                {
                    entry.FilterType = CompletionEntryFilterType.NeverVisible;
                }
            }
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            HtmlSchemaManager mng = new HtmlSchemaManager();
            IHtmlSchema schema = mng.GetSchema("http://schemas.microsoft.com/intellisense/html");

            var tag = context.ContextItem.FindType<SimpleSelector>();

            if (tag != null && tag.Name != null)
            {
                return KnownTagName(schema, tag.Name.Text);
            }

            return UnknownTagName(schema);
        }
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            var visitor = new CssItemCollector <Declaration>();

            context.ContextItem.StyleSheet.Accept(visitor);

            foreach (Declaration dec in visitor.Items)
            {
                if (dec.IsValid && dec.PropertyName.Text.StartsWith("var-"))
                {
                    yield return(new CompletionListEntry(dec.PropertyName.Text.Substring(4)));
                }
            }
        }
        public static bool IsColorContext(CssCompletionContext context)
        {
            if (context != null && context.ContextItem != null && context.ContextItem.StyleSheet is CssStyleSheet)
            {
                Declaration dec = context.ContextItem.FindType<Declaration>();
                string propertyName = (dec != null && dec.PropertyName != null) ? dec.PropertyNameText : string.Empty;

                if (_elegibleTags.Contains(propertyName))
                {
                    return true;
                }
            }

            return false;
        }
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            Declaration dec = context.ContextItem.FindType <Declaration>();

            if (dec == null || dec.PropertyName == null || dec.PropertyName.Text != "font-family")
            {
                yield break;
            }

            foreach (string item in _entryCache)
            {
                ICssCompletionListEntry entry = new CompletionListEntry(item, 1);
                yield return(entry);
            }
        }
Example #38
0
        public void FilterCompletionList(IList <CssCompletionEntry> completions, CssCompletionContext context)
        {
            ICssSchemaInstance rootSchema = CssSchemaManager.SchemaManager.GetSchemaRoot(null);
            ICssSchemaInstance schema     = CssSchemaManager.SchemaManager.GetSchemaForItem(rootSchema, context.ContextItem);

            foreach (CssCompletionEntry entry in completions)
            {
                ICssCompletionListEntry prop = GetSchemaEntry(schema, context, entry);

                if (prop != null && !string.IsNullOrEmpty(prop.GetAttribute("obsolete")))
                {
                    entry.FilterType = CompletionEntryFilterTypes.NeverVisible;
                }
            }
        }
        public void FilterCompletionList(IList <CssCompletionEntry> completions, CssCompletionContext context)
        {
            if (context.ContextType != CssCompletionContextType.PropertyValue || WESettings.Instance.Css.ShowInitialInherit)
            {
                return;
            }

            foreach (CssCompletionEntry entry in completions)
            {
                if (entry.DisplayText == "initial" || entry.DisplayText == "inherit")
                {
                    entry.FilterType = CompletionEntryFilterTypes.NeverVisible;
                }
            }
        }
        public static bool IsColorContext(CssCompletionContext context)
        {
            if (context != null && context.ContextItem != null && context.ContextItem.StyleSheet is CssStyleSheet)
            {
                Declaration dec          = context.ContextItem.FindType <Declaration>();
                string      propertyName = (dec != null && dec.PropertyName != null) ? dec.PropertyNameText : string.Empty;

                if (_elegibleTags.Contains(propertyName))
                {
                    return(true);
                }
            }

            return(false);
        }
Example #41
0
        public void FilterCompletionList(IList <CssCompletionEntry> completions, CssCompletionContext context)
        {
            if (context.ContextType != CssCompletionContextType.PropertyName)
            {
                return;
            }

            foreach (CssCompletionEntry entry in completions)
            {
                if (_cache.Contains(entry.DisplayText))
                {
                    entry.FilterType = CompletionEntryFilterTypes.NeverVisible;
                }
            }
        }
Example #42
0
        public static bool IsFontFamilyContext(CssCompletionContext context)
        {
            if (context != null && context.ContextItem != null)
            {
                Declaration decl         = context.ContextItem.Parent as Declaration;
                string      propertyName = (decl != null && decl.PropertyName != null) ? decl.PropertyName.Text : string.Empty;

                // Currently, only "font-family" will show font names, so just hard-code that name.
                if (propertyName == "font-family")
                {
                    return(true);
                }
            }

            return(false);
        }
        public void FilterCompletionList(IList <CssCompletionEntry> completions, CssCompletionContext context)
        {
            if (context.ContextType != CssCompletionContextType.PropertyValue || WESettings.GetBoolean(WESettings.Keys.ShowInitialInherit))
            {
                return;
            }

            foreach (CssCompletionEntry entry in completions)
            {
                if (entry.DisplayText == "initial" || entry.DisplayText == "inherit")
                {
                    // TODO: enable for next update after Preview
                    //entry.FilterType = CompletionEntryFilterTypes.NeverVisible;
                }
            }
        }
        public static bool IsFontFamilyContext(CssCompletionContext context)
        {
            if (context != null && context.ContextItem != null)
            {
                Declaration decl = context.ContextItem.Parent as Declaration;
                string propertyName = (decl != null && decl.PropertyName != null) ? decl.PropertyName.Text : string.Empty;

                // Currently, only "font-family" will show font names, so just hard-code that name.
                if (propertyName == "font-family")
                {
                    return true;
                }
            }

            return false;
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            Declaration dec = context.ContextItem.FindType<Declaration>();

            if (dec == null || dec.PropertyName == null || (!dec.PropertyName.Text.EndsWith("animation-name", StringComparison.OrdinalIgnoreCase) && dec.PropertyName.Text != "animation"))
                yield break;

            StyleSheet stylesheet = context.ContextItem.StyleSheet;
            var visitor = new CssItemCollector<KeyFramesDirective>();
            stylesheet.Accept(visitor);

            foreach (string name in visitor.Items.Select(d => d.Name.Text).Distinct(StringComparer.OrdinalIgnoreCase))
            {
                yield return new CompletionListEntry(name);
            }
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            UrlItem urlItem = (UrlItem)context.ContextItem;

            string url = urlItem.UrlString != null ? urlItem.UrlString.Text : string.Empty;
            string directory = GetDirectory(url);

            if (url.StartsWith("http") || url.Contains("//") || url.Contains(";base64,") || !Directory.Exists(directory))
                yield break;

            foreach (FileSystemInfo item in new DirectoryInfo(directory).EnumerateFileSystemInfos())
            {
                //if (_imageExtensions.Contains(item.Extension))
                yield return new UrlPickerCompletionListEntry(item);
            }
        }
        private static ICssCompletionListEntry GetSchemaEntry(ICssSchemaInstance schema, CssCompletionContext context, CssCompletionEntry entry)
        {
            switch (context.ContextType)
            {
                case CssCompletionContextType.AtDirectiveName:
                    return schema.GetAtDirective(entry.DisplayText);

                case CssCompletionContextType.PropertyName:
                    return schema.GetProperty(entry.DisplayText);

                case CssCompletionContextType.PseudoClassOrElement:
                    return schema.GetPseudo(entry.DisplayText);
            }

            return null;
        }
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            Declaration dec = context.ContextItem.FindType <Declaration>();

            if (dec == null || dec.Colon == null || dec.Important != null || dec.Values.Count == 0)
            {
                yield break;
            }

            ParseItem before = dec.ItemBeforePosition(context.SpanStart);

            if (before != null && before.Text == "!")
            {
                yield return(new CompletionListEntry("important", 1));
            }
        }
        private CssSchemaCompletionEntry CreateCompletionEntry(CssCompletionContext context, CssSchemaCompletionEntry entry)
        {
            CustomCompletionListEntry interim = new CustomCompletionListEntry(entry.DisplayText, GetArguments(entry.DisplayText));
            interim.Description = entry.Description;

            object[] parameters = new object[]
            {
                interim,
                entry.CompletionProvider,
                CssTextSource.Document,
                context.Snapshot.CreateTrackingSpan(context.SpanStart, context.SpanLength, SpanTrackingMode.EdgeExclusive),
                _glyphService
            };

            BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Instance;
            return (CssSchemaCompletionEntry)Activator.CreateInstance(typeof(CssSchemaCompletionEntry), flags, null, parameters, null);
        }
        public IEnumerable<ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            UrlItem urlItem = (UrlItem)context.ContextItem;

            string url = urlItem.UrlString != null ? urlItem.UrlString.Text : string.Empty;
            string directory = GetDirectory(url);

            if (url.StartsWith("http") || url.Contains("//") || url.Contains(";base64,") || !Directory.Exists(directory))
                yield break;

            foreach (string item in Directory.GetFileSystemEntries(directory))
            {
                string entry = item.Substring(item.LastIndexOf("\\") + 1);

                yield return new UrlPickerCompletionListEntry(entry);
            }
        }
Example #51
0
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            UrlItem urlItem = (UrlItem)context.ContextItem;

            string url       = urlItem.UrlString != null ? urlItem.UrlString.Text : string.Empty;
            string directory = GetDirectory(url);

            if (url.StartsWith("http") || url.Contains("//") || url.Contains(";base64,") || !Directory.Exists(directory))
            {
                yield break;
            }

            foreach (FileSystemInfo item in new DirectoryInfo(directory).EnumerateFileSystemInfos())
            {
                //if (_imageExtensions.Contains(item.Extension))
                yield return(new UrlPickerCompletionListEntry(item));
            }
        }
        private CssSchemaCompletionEntry CreateCompletionEntry(CssCompletionContext context, CssSchemaCompletionEntry entry)
        {
            CustomCompletionListEntry interim = new CustomCompletionListEntry(entry.DisplayText, GetArguments(entry.DisplayText));

            interim.Description = entry.Description;

            object[] parameters = new object[]
            {
                interim,
                entry.CompletionProvider,
                CssTextSource.Document,
                context.Snapshot.CreateTrackingSpan(context.SpanStart, context.SpanLength, SpanTrackingMode.EdgeExclusive),
                _glyphService
            };

            BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Instance;

            return((CssSchemaCompletionEntry)Activator.CreateInstance(typeof(CssSchemaCompletionEntry), flags, null, parameters, null));
        }
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            Declaration dec = context.ContextItem.FindType <Declaration>();

            if (dec == null || dec.PropertyName == null || (!dec.PropertyName.Text.EndsWith("animation-name", StringComparison.OrdinalIgnoreCase) && dec.PropertyName.Text != "animation"))
            {
                yield break;
            }

            StyleSheet stylesheet = context.ContextItem.StyleSheet;
            var        visitor    = new CssItemCollector <KeyFramesDirective>();

            stylesheet.Accept(visitor);

            foreach (string name in visitor.Items.Select(d => d.Name.Text).Distinct(StringComparer.OrdinalIgnoreCase))
            {
                yield return(new CompletionListEntry(name));
            }
        }
Example #54
0
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            HtmlSchemaManager mng    = new HtmlSchemaManager();
            IHtmlSchema       schema = mng.GetSchema("http://schemas.microsoft.com/intellisense/html");

            var tag  = context.ContextItem.FindType <SimpleSelector>();
            var attr = context.ContextItem as AttributeSelector;

            if (tag != null && tag.Name != null && attr != null && attr.AttributeName != null)
            {
                return(KnownTagName(schema, tag.Name.Text, attr.AttributeName.Text));
            }
            else if (attr != null && attr.AttributeName != null)
            {
                return(UnknownTagName(schema, attr.AttributeName.Text));
            }

            return(new List <ICssCompletionListEntry>());
        }
Example #55
0
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            UrlItem urlItem = (UrlItem)context.ContextItem;

            string url       = urlItem.UrlString != null ? urlItem.UrlString.Text : string.Empty;
            string directory = GetDirectory(url);

            if (url.StartsWith("http") || url.Contains("//") || url.Contains(";base64,") || !Directory.Exists(directory))
            {
                yield break;
            }

            foreach (string item in Directory.GetFileSystemEntries(directory))
            {
                string entry = item.Substring(item.LastIndexOf("\\") + 1);

                yield return(new UrlPickerCompletionListEntry(entry));
            }
        }
        public void FilterCompletionList(IList<CssCompletionEntry> completions, CssCompletionContext context)
        {
            if (context.ContextType != CssCompletionContextType.PropertyValue || WESettings.Instance.Css.ShowInitialInherit)
                return;

            // Only show inherit/initial/unset on the "all" property
            Declaration dec = context.ContextItem.FindType<Declaration>();

            if (dec != null && dec.PropertyNameText == "all")
                return;

            foreach (CssCompletionEntry entry in completions)
            {
                if (entry.DisplayText == "initial" || entry.DisplayText == "inherit" || entry.DisplayText == "unset")
                {
                    entry.FilterType = CompletionEntryFilterTypes.NeverVisible;
                }
            }
        }
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            MediaQuery query = (MediaQuery)context.ContextItem;
            ParseItem  item  = query.StyleSheet.ItemAfterPosition(context.SpanStart);

            if (query.MediaType != null && query.MediaType.AfterEnd < item.Start)
            {
                yield return(new CompletionListEntry("and", 0, StandardGlyphGroup.GlyphGroupOperator));

                yield break;
            }

            if (item != query.Operation || query.MediaType == null)
            {
                yield return(new CompletionListEntry("all"));

                yield return(new CompletionListEntry("aural"));

                yield return(new CompletionListEntry("braille"));

                yield return(new CompletionListEntry("embossed"));

                yield return(new CompletionListEntry("handheld"));

                yield return(new CompletionListEntry("print"));

                yield return(new CompletionListEntry("projection"));

                yield return(new CompletionListEntry("screen"));

                yield return(new CompletionListEntry("tty"));

                yield return(new CompletionListEntry("tv"));
            }

            if (item != query.MediaType || query.Operation == null)
            {
                yield return(new CompletionListEntry("not", 1, StandardGlyphGroup.GlyphGroupOperator));

                yield return(new CompletionListEntry("only", 1, StandardGlyphGroup.GlyphGroupOperator));
            }
        }
        public void FilterCompletionList(IList <CssCompletionEntry> completions, CssCompletionContext context)
        {
            if (context.ContextType != CssCompletionContextType.PropertyValue)
            {
                return;
            }

            for (int i = 0; i < completions.Count; i++)
            {
                CssSchemaCompletionEntry entry = completions[i] as CssSchemaCompletionEntry;

                if (entry != null && entry.DisplayText.Contains("gradient("))
                {
                    var cce = CreateCompletionEntry(context, entry);
                    cce.FilterType = entry.FilterType;
                    cce.IsBuilder  = entry.IsBuilder;

                    completions[i] = cce;
                }
            }
        }
Example #59
0
        public IEnumerable <ICssCompletionListEntry> GetListEntries(CssCompletionContext context)
        {
            HashSet <string> classNames = new HashSet <string>();
            HashSet <ICssCompletionListEntry> entries = new HashSet <ICssCompletionListEntry>();

            StyleSheet stylesheet   = context.ContextItem.StyleSheet;
            var        visitorRules = new CssItemCollector <ClassSelector>();

            stylesheet.Accept(visitorRules);

            foreach (ClassSelector item in visitorRules.Items)
            {
                if (item != context.ContextItem && !classNames.Contains(item.Text))
                {
                    classNames.Add(item.Text);
                    entries.Add(new CompletionListEntry(item.Text));
                }
            }

            return(entries);
        }
Example #60
0
        public void FilterCompletionList(IList <CssCompletionEntry> completions, CssCompletionContext context)
        {
            if (context.ContextType != CssCompletionContextType.PropertyValue || WESettings.Instance.Css.ShowInitialInherit)
            {
                return;
            }

            // Only show inherit/initial/unset on the "all" property
            Declaration dec = context.ContextItem.FindType <Declaration>();

            if (dec != null && dec.PropertyNameText == "all")
            {
                return;
            }

            foreach (CssCompletionEntry entry in completions)
            {
                if (entry.DisplayText == "initial" || entry.DisplayText == "inherit" || entry.DisplayText == "unset")
                {
                    entry.FilterType = CompletionEntryFilterTypes.NeverVisible;
                }
            }
        }