diff options
Diffstat (limited to 'src/Editor/Text/Def/TextLogic/DifferenceBuffer/IDifferenceBuffer2.cs')
-rw-r--r-- | src/Editor/Text/Def/TextLogic/DifferenceBuffer/IDifferenceBuffer2.cs | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/src/Editor/Text/Def/TextLogic/DifferenceBuffer/IDifferenceBuffer2.cs b/src/Editor/Text/Def/TextLogic/DifferenceBuffer/IDifferenceBuffer2.cs index ebfecb6..6370508 100644 --- a/src/Editor/Text/Def/TextLogic/DifferenceBuffer/IDifferenceBuffer2.cs +++ b/src/Editor/Text/Def/TextLogic/DifferenceBuffer/IDifferenceBuffer2.cs @@ -9,22 +9,35 @@ namespace Microsoft.VisualStudio.Text.Differencing public interface IDifferenceBuffer2 : IDifferenceBuffer { /// <summary> - /// The source of the left buffer in the difference. Can be set to null. + /// True if the BaseLeftBuffer can never change. If false, the BaseLeftBuffer can change (via setting the InnerLeftDataModel) and + /// can be null. /// </summary> - new ITextBuffer BaseLeftBuffer { get; set; } + bool HasFixedBaseLeftBuffer { get; } - event EventHandler<BufferChangedEventArgs> BaseLeftBufferChanged; - } + /// <summary> + /// Raised whenever the <see cref="IDifferenceBuffer.BaseLeftBuffer"/> is changed to a different buffer. + /// </summary> + event EventHandler<BaseLeftBufferChangedEventArgs> BaseLeftBufferChanged; - public class BufferChangedEventArgs : EventArgs - { - public BufferChangedEventArgs(ITextBuffer oldBuffer, ITextBuffer newBuffer) - { - this.OldBuffer = oldBuffer; - this.NewBuffer = newBuffer; - } + /// <summary> + /// The <see cref="ITextDataModel"/> for the BaseLeftBuffer. This can be created even if <see cref="IDifferenceBuffer.BaseLeftBuffer"/> is null. + /// </summary> + ITextDataModel LeftDataModel { get; } + + /// <summary> + /// The <see cref="ITextDataModel"/> actual ITextDataModel for the BaseLeftBuffer. This value is only meaningful if <see cref="HasFixedBaseLeftBuffer"/> is + /// false. Set InnerLeftDataModel to null to set the difference buffer's BaseLeftBuffer to null. + /// </summary> + ITextDataModel InnerLeftDataModel { get; set; } - public ITextBuffer OldBuffer { get; } - public ITextBuffer NewBuffer { get; } + /// <summary> + /// The <see cref="ITextDataModel"/> for the right buffer. + /// </summary> + ITextDataModel RightDataModel { get; } + + /// <summary> + /// The <see cref="ITextDataModel"/> for the inline buffer. This can be created even if <see cref="IDifferenceBuffer.BaseLeftBuffer"/> is null. + /// </summary> + ITextDataModel InlineDataModel { get; } } } |