internal bool CanInsert(int offset, Template template) { var placeholder = Segments.FindSegmentsContaining(offset).Where(v => v is PlaceholderSegment).FirstOrDefault() as PlaceholderSegment; if (placeholder != null) { return(placeholder.CanInsert(template)); } return(true); }
public void InsertTemplate(int offset, Template template, out int insertionEndIndex) { var placeholder = Segments.FindSegmentsContaining(offset).Where(v => v is PlaceholderSegment).FirstOrDefault() as PlaceholderSegment; SegmentedDocument document = template.TemplateDocument; if (placeholder != null) { document = placeholder.TransformTemplate(template); } int replacmentLength = 0; Replace(ref offset, ref replacmentLength, document); insertionEndIndex = offset + document.TextLength; }