static Task <CompletionDataList> GetCompletions(Dictionary <string, HashSet <string> > map, XmlElementPath path, XmlCompletionData.DataType type)
 {
     if (path == null || path.Elements.Count == 0)
     {
         return(Task.FromResult(new CompletionDataList()));
     }
     return(GetCompletions(map, path.Elements[path.Elements.Count - 1].Name, type));
 }
        static Task <CompletionDataList> GetCompletions(Dictionary <string, HashSet <string> > map, string tagName, XmlCompletionData.DataType type)
        {
            var data = new CompletionDataList();
            HashSet <string> values;

            if (map.TryGetValue(tagName, out values))
            {
                foreach (string s in values)
                {
                    data.Add(new XmlCompletionData(s, type));
                }
            }
            return(Task.FromResult(data));
        }
示例#3
0
 static CompletionData[] GetCompletions(Dictionary <string, HashSet <string> > map, XmlElementPath path, XmlCompletionData.DataType type)
 {
     if (path == null || path.Elements.Count == 0)
     {
         return(new CompletionData[0]);
     }
     return(GetCompletions(map, path.Elements[path.Elements.Count - 1].Name, type));
 }
示例#4
0
        async Task <CompletionDataList> GetAttributeCompletions(IAttributedXObject attributedOb, Dictionary <string, string> existingAtts, CancellationToken token, XmlCompletionData.DataType type, bool elementNamespacesOnly)
        {
            var list = await base.GetAttributeCompletions(attributedOb, existingAtts, token) ?? new CompletionDataList();

            var currentPath = GetCurrentPath();
            var path        = GetPath(currentPath);
            var namespaces  = GetNamespaces(currentPath);
            var objectName  = attributedOb.Name.FullName;

            if (elementNamespacesOnly)
            {
                namespaces = namespaces.Where(r => (r.Prefix ?? string.Empty) == (attributedOb.Name.Prefix ?? string.Empty)).ToList();
            }
            foreach (var completion in Completion.GetCompletions(namespaces))
            {
                foreach (var item in completion.GetProperties(objectName, path).Where(r => !existingAtts.ContainsKey(r.Name)))
                {
                    var xmlCompletion = new XmlCompletionData(item.Name, item.Description, type);
                    xmlCompletion.Icon = GetIcon(item.Type);
                    list.Add(xmlCompletion);
                }
            }
            return(list);
        }
示例#5
0
        static CompletionData[] GetCompletions(Dictionary <string, HashSet <string> > map, string tagName, XmlCompletionData.DataType type)
        {
            HashSet <string> values;

            if (!map.TryGetValue(tagName, out values))
            {
                return(new CompletionData [0]);
            }
            CompletionData[] data = new CompletionData[values.Count];
            int i = 0;

            foreach (string s in values)
            {
                data[i++] = new XmlCompletionData(s, type);
            }
            return(data);
        }