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)); }
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)); }
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); }
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); }