// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; using System.Collections.Generic; using ICSharpCode.AvalonEdit.Document; namespace ICSharpCode.AvalonEdit.Editing { /// /// Determines whether the document can be modified. /// public interface IReadOnlySectionProvider { /// /// Gets whether insertion is possible at the specified offset. /// bool CanInsert(int offset); /// /// Gets the deletable segments inside the given segment. /// /// /// All segments in the result must be within the given segment, and they must be returned in order /// (e.g. if two segments are returned, EndOffset of first segment must be less than StartOffset of second segment). /// /// For replacements, the last segment being returned will be replaced with the new text. If an empty list is returned, /// no replacement will be done. /// IEnumerable GetDeletableSegments(ISegment segment); } }