當前位置: 首頁>>代碼示例>>C#>>正文


C# Document.Diff方法代碼示例

本文整理匯總了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();
		}
開發者ID:thild,項目名稱:monodevelop,代碼行數:35,代碼來源:GitRepository.cs


注:本文中的Mono.TextEditor.Document.Diff方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。