Browse Source

Minor optimization for ReadOnlyDocument.

pull/15/head
Daniel Grunwald 15 years ago
parent
commit
6a8c1130b5
  1. 21
      src/Main/Base/Project/Src/Editor/ReadOnlyDocument.cs

21
src/Main/Base/Project/Src/Editor/ReadOnlyDocument.cs

@ -45,40 +45,37 @@ namespace ICSharpCode.SharpDevelop.Editor @@ -45,40 +45,37 @@ namespace ICSharpCode.SharpDevelop.Editor
{
readonly ReadOnlyDocument doc;
readonly int lineNumber;
readonly int offset, endOffset;
public ReadOnlyDocumentLine(ReadOnlyDocument doc, int lineNumber)
{
this.doc = doc;
this.lineNumber = lineNumber;
this.offset = doc.GetStartOffset(lineNumber);
this.endOffset = doc.GetEndOffset(lineNumber);
}
public int Offset {
get {
return doc.GetStartOffset(lineNumber);
}
get { return offset; }
}
public int Length {
get {
return doc.GetEndOffset(lineNumber) - doc.GetStartOffset(lineNumber);
}
get { return endOffset - offset; }
}
public int EndOffset {
get {
return doc.GetEndOffset(lineNumber);
}
get { return endOffset; }
}
public int TotalLength {
get {
return doc.GetTotalEndOffset(lineNumber) - doc.GetStartOffset(lineNumber);
return doc.GetTotalEndOffset(lineNumber) - offset;
}
}
public int DelimiterLength {
get {
return doc.GetTotalEndOffset(lineNumber) - doc.GetEndOffset(lineNumber);
return doc.GetTotalEndOffset(lineNumber) - endOffset;
}
}
@ -248,7 +245,7 @@ namespace ICSharpCode.SharpDevelop.Editor @@ -248,7 +245,7 @@ namespace ICSharpCode.SharpDevelop.Editor
public ITextBuffer CreateSnapshot()
{
return this; // ReadOnlyDocument is immutable
return textBuffer; // textBuffer is immutable
}
public ITextBuffer CreateSnapshot(int offset, int length)

Loading…
Cancel
Save