diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj index 0934f70578..ee722049e3 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj @@ -98,6 +98,7 @@ + diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/LineChangeInfo.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/LineChangeInfo.cs new file mode 100644 index 0000000000..855c79481e --- /dev/null +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/LineChangeInfo.cs @@ -0,0 +1,86 @@ +// 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 ICSharpCode.SharpDevelop.Editor; + +namespace ICSharpCode.AvalonEdit.AddIn +{ + public interface IChangeWatcher : IDisposable + { + event EventHandler ChangeOccurred; + /// + /// Returns the change information for a given line. + /// Pass null to get the changes before the first line. + /// + LineChangeInfo GetChange(IDocumentLine line); + void Initialize(IDocument document); + } + + public enum ChangeType + { + None, + Added, + Deleted, + Modified, + Unsaved + } + + public struct LineChangeInfo : IEquatable + { + public static readonly LineChangeInfo Empty = new LineChangeInfo(ChangeType.None, ""); + + ChangeType change; + + public ChangeType Change { + get { return change; } + set { change = value; } + } + + string deletedLinesAfterThisLine; + + public string DeletedLinesAfterThisLine { + get { return deletedLinesAfterThisLine; } + set { deletedLinesAfterThisLine = value; } + } + + public LineChangeInfo(ChangeType change, string deletedLinesAfterThisLine) + { + this.change = change; + this.deletedLinesAfterThisLine = deletedLinesAfterThisLine; + } + + #region Equals and GetHashCode implementation + public override bool Equals(object obj) + { + return (obj is LineChangeInfo) && Equals((LineChangeInfo)obj); + } + + public bool Equals(LineChangeInfo other) + { + return this.change == other.change && this.deletedLinesAfterThisLine == other.deletedLinesAfterThisLine; + } + + public override int GetHashCode() + { + int hashCode = 0; + unchecked { + hashCode += 1000000007 * change.GetHashCode(); + if (deletedLinesAfterThisLine != null) + hashCode += 1000000009 * deletedLinesAfterThisLine.GetHashCode(); + } + return hashCode; + } + + public static bool operator ==(LineChangeInfo lhs, LineChangeInfo rhs) + { + return lhs.Equals(rhs); + } + + public static bool operator !=(LineChangeInfo lhs, LineChangeInfo rhs) + { + return !(lhs == rhs); + } + #endregion + } +} diff --git a/src/Main/Base/Project/Src/Editor/IDocumentBaseVersionProvider.cs b/src/Main/Base/Project/Src/Editor/IDocumentBaseVersionProvider.cs index 098475e79c..0a118f3a26 100644 --- a/src/Main/Base/Project/Src/Editor/IDocumentBaseVersionProvider.cs +++ b/src/Main/Base/Project/Src/Editor/IDocumentBaseVersionProvider.cs @@ -18,14 +18,6 @@ namespace ICSharpCode.SharpDevelop.Editor Stream OpenBaseVersion(string fileName); } - public sealed class DefaultVersionProvider : IDocumentVersionProvider - { - public Stream OpenBaseVersion(string fileName) - { - return File.OpenRead(fileName); - } - } - public class VersioningServices { public static readonly VersioningServices Instance = new VersioningServices(); @@ -42,81 +34,4 @@ namespace ICSharpCode.SharpDevelop.Editor } } - public interface IChangeWatcher : IDisposable - { - event EventHandler ChangeOccurred; - /// - /// Returns the change information for a given line. - /// Pass null to get the changes before the first line. - /// - LineChangeInfo GetChange(IDocumentLine line); - void Initialize(IDocument document); - } - - public enum ChangeType - { - None, - Added, - Deleted, - Modified, - Unsaved - } - - public struct LineChangeInfo : IEquatable - { - public static readonly LineChangeInfo Empty = new LineChangeInfo(ChangeType.None, ""); - - ChangeType change; - - public ChangeType Change { - get { return change; } - set { change = value; } - } - - string deletedLinesAfterThisLine; - - public string DeletedLinesAfterThisLine { - get { return deletedLinesAfterThisLine; } - set { deletedLinesAfterThisLine = value; } - } - - public LineChangeInfo(ChangeType change, string deletedLinesAfterThisLine) - { - this.change = change; - this.deletedLinesAfterThisLine = deletedLinesAfterThisLine; - } - - #region Equals and GetHashCode implementation - public override bool Equals(object obj) - { - return (obj is LineChangeInfo) && Equals((LineChangeInfo)obj); - } - - public bool Equals(LineChangeInfo other) - { - return this.change == other.change && this.deletedLinesAfterThisLine == other.deletedLinesAfterThisLine; - } - - public override int GetHashCode() - { - int hashCode = 0; - unchecked { - hashCode += 1000000007 * change.GetHashCode(); - if (deletedLinesAfterThisLine != null) - hashCode += 1000000009 * deletedLinesAfterThisLine.GetHashCode(); - } - return hashCode; - } - - public static bool operator ==(LineChangeInfo lhs, LineChangeInfo rhs) - { - return lhs.Equals(rhs); - } - - public static bool operator !=(LineChangeInfo lhs, LineChangeInfo rhs) - { - return !(lhs == rhs); - } - #endregion - } }