protected virtual XmlCompletionItemCollection GetCompletionItemsInsideAttribute(XmlSchemaCompletion defaultSchema, XmlSchemaCompletionCollection schemas) { XmlCompletionItemCollection completionItems = new XmlCompletionItemCollection(); int offset = this.Position.Offset; string textUpToCursor = this.Text.GetText(0, offset); completionItems = schemas.GetNamespaceCompletion(textUpToCursor); if (completionItems.Count == 0) { completionItems = schemas.GetAttributeValueCompletion(textUpToCursor, this.Position.Offset, defaultSchema); } return(completionItems); }
public void GetAttributeValueCompletionReturnsValuesForDuplicateFooSchema() { string xml = "<duplicate-foo-note xmlns='foo'>\r\n" + " <duplicate-foo-text duplicate-foo-text-attribute='f'"; string xmlUpToCursor = xml.Substring(0, xml.Length - 1); XmlCompletionItemCollection items = schemas.GetAttributeValueCompletion('f', xmlUpToCursor, null); items.Sort(); XmlCompletionItemCollection expectedItems = new XmlCompletionItemCollection(); expectedItems.Add(new XmlCompletionItem("first", XmlCompletionItemType.XmlAttributeValue)); expectedItems.Add(new XmlCompletionItem("fourth", XmlCompletionItemType.XmlAttributeValue)); expectedItems.Add(new XmlCompletionItem("second", XmlCompletionItemType.XmlAttributeValue)); expectedItems.Add(new XmlCompletionItem("third", XmlCompletionItemType.XmlAttributeValue)); Assert.AreEqual(expectedItems, items); }
public void CorrectAttributeValuesReturnedForElementWhenTwoNamespacesInXml() { string xml = "<b:bar-note xmlns='foo' xmlns:b='bar'>\r\n" + " <foo-note>\r\n" + " <b:bar-text/>\r\n" + " <foo-text foo-text-attribute='f'"; string xmlUpToCursor = xml.Substring(0, xml.Length - 1); XmlCompletionItemCollection items = schemas.GetAttributeValueCompletion('f', xmlUpToCursor, null); items.Sort(); XmlCompletionItemCollection expectedItems = new XmlCompletionItemCollection(); expectedItems.Add(new XmlCompletionItem("first", XmlCompletionItemType.XmlAttributeValue)); expectedItems.Add(new XmlCompletionItem("fourth", XmlCompletionItemType.XmlAttributeValue)); expectedItems.Add(new XmlCompletionItem("second", XmlCompletionItemType.XmlAttributeValue)); expectedItems.Add(new XmlCompletionItem("third", XmlCompletionItemType.XmlAttributeValue)); Assert.AreEqual(expectedItems, items); }