// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under MIT license (for details please see \doc\license.txt) using System; namespace ICSharpCode.Editor { // I'm not sure if we need this. // How about a method in the context - this method could wrap the internal representation. // public void StartTextLinkMode (int linkLength, IEnumerable offsets) // and maybe then variations taking more than one link element ? // /// // /// Represents an element in the text editor that is either editable, or bound to another editable element. // /// Used with // /// // public class LinkedElement // { // LinkedElement boundTo; // // /// // /// Gets/Sets the start offset of this linked element. // /// // public int StartOffset { get; set; } // // /// // /// Gets/Sets the end offset of this linked element. // /// // public int EndOffset { get; set; } // // /// // /// Gets the linked element to which this element is bound. // /// // public LinkedElement BoundTo { // get { return boundTo; } // } // // /// // /// Gets whether this element is editable. Returns true if this element is not bound. // /// // public bool IsEditable { // get { return boundTo == null; } // } // // /// // /// Creates a new editable element. // /// // public LinkedElement(int startOffset, int endOffset) // { // this.StartOffset = startOffset; // this.EndOffset = endOffset; // } // // /// // /// Creates a new element that is bound to . // /// // public LinkedElement(int startOffset, int endOffset, LinkedElement boundTo) // { // if (boundTo == null) // throw new ArgumentNullException("boundTo"); // this.StartOffset = startOffset; // this.EndOffset = endOffset; // while (boundTo.boundTo != null) // boundTo = boundTo.boundTo; // this.boundTo = boundTo; // } // } }