Exemple #1
0
 private static void UpdateSourceContextRangeFromInitialRangeWorker(IReadableSelectableTextBuffer textBuffer, DocumentNode node, int offset)
 {
     node.ClearOldSourceContainerContext();
     XamlSerializerUtilities.UpdateSourceContextRangeFromInitialRange(textBuffer, node.SourceContext, offset);
     XamlSerializerUtilities.UpdateSourceContextRangeFromInitialRange(textBuffer, node.ContainerSourceContext, offset);
     foreach (DocumentNode node1 in node.ChildNodes)
     {
         XamlSerializerUtilities.UpdateSourceContextRangeFromInitialRangeWorker(textBuffer, node1, offset);
     }
 }
Exemple #2
0
        private static void UpdateSourceContextRangeFromInitialRange(IReadableSelectableTextBuffer textBuffer, INodeSourceContext context, int offset)
        {
            XamlSourceContext xamlSourceContext = context as XamlSourceContext;

            if (xamlSourceContext == null)
            {
                return;
            }
            if (!TextRange.IsNull(xamlSourceContext.InitialTextSpan))
            {
                ITextRange initialTextSpan = xamlSourceContext.InitialTextSpan;
                ITextRange textRange1      = (ITextRange) new TextRange(initialTextSpan.Offset + offset, initialTextSpan.Offset + initialTextSpan.Length + offset);
                xamlSourceContext.InitialTextSpan = textRange1;
                xamlSourceContext.SetTextRange(textBuffer, textRange1.Offset, textRange1.Length);
                XmlElementReference elementReference = xamlSourceContext as XmlElementReference;
                if (elementReference == null)
                {
                    return;
                }
                foreach (XmlElementReference.Attribute attribute in elementReference.AttributesToPreserve)
                {
                    XamlSerializerUtilities.UpdateSourceContextRangeFromInitialRange(textBuffer, (INodeSourceContext)attribute.SourceContext, offset);
                }
                if (TextRange.IsNull(elementReference.InitialStartTagSpan))
                {
                    return;
                }
                ITextRange initialStartTagSpan = elementReference.InitialStartTagSpan;
                ITextRange textRange2          = (ITextRange) new TextRange(initialStartTagSpan.Offset + offset, initialStartTagSpan.Offset + initialStartTagSpan.Length + offset);
                elementReference.InitialStartTagSpan = textRange2;
                elementReference.StartTagRange       = textBuffer.CreateRange(textRange2.Offset, textRange2.Length);
            }
            else
            {
                xamlSourceContext.ClearTextRange();
                XmlElementReference elementReference = xamlSourceContext as XmlElementReference;
                if (elementReference == null)
                {
                    return;
                }
                elementReference.StartTagRange = (ITextRange)null;
            }
        }