MonoDevelop.VersionControl.Views.EditorCompareWidgetBase.CalculateChunkPath C# (CSharp) Method

CalculateChunkPath() static private method

static private CalculateChunkPath ( MonoTextEditor editor, List diff, List words, bool useRemove ) : List
editor MonoTextEditor
diff List
words List
useRemove bool
return List
		static List<Cairo.Rectangle> CalculateChunkPath (MonoTextEditor editor, List<Hunk> diff, List<TextSegment> words, bool useRemove)
		{
			List<Cairo.Rectangle> result = new List<Cairo.Rectangle> ();
			int startOffset = -1;
			int endOffset = -1;
			foreach (var hunk in diff) {
				int start = useRemove ? hunk.RemoveStart : hunk.InsertStart;
				int count = useRemove ? hunk.Removed : hunk.Inserted;
				for (int i = 0; i < count; i++) {
					var word = words[start + i - 1];
					if (endOffset != word.Offset) {
						if (startOffset >= 0)
							result.AddRange (GetDiffRectangles (editor, startOffset, endOffset));
						startOffset = word.Offset;
					}
					endOffset = word.EndOffset;
				}
			}
			if (startOffset >= 0)
				result.AddRange (GetDiffRectangles (editor, startOffset, endOffset));
			return result;
		}