本文整理汇总了C#中Mono.TextEditor.Document.Diff方法的典型用法代码示例。如果您正苦于以下问题:C# Document.Diff方法的具体用法?C# Document.Diff怎么用?C# Document.Diff使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mono.TextEditor.Document
的用法示例。
在下文中一共展示了Document.Diff方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetAnnotations
public override Annotation[] GetAnnotations (FilePath repositoryPath)
{
RevCommit hc = GetHeadCommit ();
if (hc == null)
return new Annotation [0];
RevCommit[] lineCommits = GitUtil.Blame (repo, hc, repositoryPath);
int lineCount = lineCommits.Length;
List<Annotation> annotations = new List<Annotation>(lineCount);
for (int n = 0; n < lineCount; n++) {
RevCommit c = lineCommits[n];
Annotation annotation = new Annotation (c.Name, c.GetAuthorIdent ().GetName () + "<" + c.GetAuthorIdent ().GetEmailAddress () + ">", c.GetCommitterIdent ().GetWhen ());
annotations.Add(annotation);
}
Document baseDocument = new Document (GetCommitTextContent (hc, repositoryPath));
Document workingDocument = new Document (File.ReadAllText (repositoryPath));
Annotation uncommittedRev = new Annotation("0000000000000000000000000000000000000000", "", new DateTime());
// Based on Subversion code until we support blame on things other than commits
foreach (var hunk in baseDocument.Diff (workingDocument)) {
annotations.RemoveRange (hunk.RemoveStart, hunk.Removed);
int start = hunk.InsertStart - 1; //Line number - 1 = index
bool insert = (start < annotations.Count);
for (int i = 0; i < hunk.Inserted; ++i) {
if (insert) {
annotations.Insert (start, uncommittedRev);
} else {
annotations.Add (uncommittedRev);
}
}
}
return annotations.ToArray();
}