Browse Source

move IChangeWatcher, ChangeType and LineChangeInfo to AvalonEdit.AddIn

pull/15/head
Siegfried Pammer 15 years ago
parent
commit
c402ab82ed
  1. 1
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj
  2. 86
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/LineChangeInfo.cs
  3. 85
      src/Main/Base/Project/Src/Editor/IDocumentBaseVersionProvider.cs

1
src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj

@ -98,6 +98,7 @@ @@ -98,6 +98,7 @@
<Compile Include="Src\ExpressionHighlightRenderer.cs" />
<Compile Include="Src\CodeManipulation.cs" />
<Compile Include="Src\CaretHighlightAdorner.cs" />
<Compile Include="Src\LineChangeInfo.cs" />
<Compile Include="Src\MyersDiff\DocumentSequence.cs" />
<Compile Include="Src\MyersDiff\Edit.cs" />
<Compile Include="Src\MyersDiff\ISequence.cs" />

86
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/LineChangeInfo.cs

@ -0,0 +1,86 @@ @@ -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;
/// <summary>
/// Returns the change information for a given line.
/// Pass null to get the changes before the first line.
/// </summary>
LineChangeInfo GetChange(IDocumentLine line);
void Initialize(IDocument document);
}
public enum ChangeType
{
None,
Added,
Deleted,
Modified,
Unsaved
}
public struct LineChangeInfo : IEquatable<LineChangeInfo>
{
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
}
}

85
src/Main/Base/Project/Src/Editor/IDocumentBaseVersionProvider.cs

@ -18,14 +18,6 @@ namespace ICSharpCode.SharpDevelop.Editor @@ -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 @@ -42,81 +34,4 @@ namespace ICSharpCode.SharpDevelop.Editor
}
}
public interface IChangeWatcher : IDisposable
{
event EventHandler ChangeOccurred;
/// <summary>
/// Returns the change information for a given line.
/// Pass null to get the changes before the first line.
/// </summary>
LineChangeInfo GetChange(IDocumentLine line);
void Initialize(IDocument document);
}
public enum ChangeType
{
None,
Added,
Deleted,
Modified,
Unsaved
}
public struct LineChangeInfo : IEquatable<LineChangeInfo>
{
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
}
}

Loading…
Cancel
Save