Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@xamarin.com>2014-06-27 13:57:20 +0400
committerMike Krüger <mkrueger@xamarin.com>2014-06-27 13:57:20 +0400
commit5aaf473ee8fb097fc88165097c8cede1e362768f (patch)
treecf1e9bdc27864ca7804b51e943f47076f425d36d /main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/MergeWidget.cs
parent3a9df9bc6875aff7bb03f7736bee780b4f071d91 (diff)
parent29e49044b88eece48606cc128d779e7dbf2d622c (diff)
Merge branch 'master' into retina-editor
Conflicts: main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/ExportCodeGenerator.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/CSharpCompletionTextEditorExtension.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpTextEditorIndentation.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/TypeSystemProvider.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring.CodeActions/MDRefactoringContext.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp/ExpandSelectionHandler.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp/PathedDocumentTextEditorExtension.cs main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood/DocFoodTextEditorExtension.cs main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.csproj main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultMarker.cs main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeAnalysisBatchRunner.cs main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeIssuePanelWidget.cs main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/FindDerivedSymbolsHandler.cs main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringOptions.cs main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringPreviewDialog.cs main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoryCommands.cs main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.QuickTasks/QuickTaskOverviewMode.cs main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.QuickTasks/QuickTaskStrip.cs main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/AbstractUsagesExtension.cs main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueTooltipProvider.cs main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtensibleTextEditor.cs main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/DebugTextMarker.cs main/src/addins/MonoDevelop.XmlEditor/MonoDevelop.XmlEditor.Gui/BaseXmlEditorExtension.cs main/src/core/Mono.Texteditor/Mono.TextEditor/TextLineMarker.cs main/src/core/MonoDevelop.Core/MonoDevelop.Core.csproj main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Commands/CommandManager.cs main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbar.cs main/src/core/MonoDevelop.Ide/MonoDevelop.Components/PathBar.cs main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/TooltipInformationWindow.cs main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/TextLinkModeEventArgs.cs main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchResult.cs main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/TypeSystemService.cs main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj main/tests/UnitTests/MonoDevelop.SourceEditor/DebugTooltipTests.cs
Diffstat (limited to 'main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/MergeWidget.cs')
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/MergeWidget.cs32
1 files changed, 21 insertions, 11 deletions
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/MergeWidget.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/MergeWidget.cs
index d71ca4efac..d4b2f04505 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/MergeWidget.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/MergeWidget.cs
@@ -116,19 +116,29 @@ namespace MonoDevelop.VersionControl.Views
}
// todo: move to version control backend
+ const string conflictStart = "<<<<<<<";
+ const string conflictDivider = "=======";
+ const string conflictEnd = ">>>>>>>";
+
static IEnumerable<Conflict> Conflicts (TextDocument doc)
{
- int mergeStart = 0;
- while ((mergeStart = doc.IndexOf ("<<<<<<<", mergeStart, doc.TextLength - mergeStart, StringComparison.Ordinal)) >= 0) {
- DocumentLine start = doc.GetLineByOffset (mergeStart);
- if (start.Offset != mergeStart)
- continue;
- int dividerOffset = doc.IndexOf ("=======", mergeStart, doc.TextLength - mergeStart, StringComparison.Ordinal);
- DocumentLine divider = doc.GetLineByOffset (dividerOffset);
-
- int endOffset = doc.IndexOf (">>>>>>>", dividerOffset, doc.TextLength - dividerOffset, StringComparison.Ordinal);
- DocumentLine end = doc.GetLineByOffset (endOffset);
- mergeStart = dividerOffset + 1;
+ var startLines = new List<DocumentLine> ();
+ var dividerLines = new List<DocumentLine> ();
+ var endLines = new List<DocumentLine> ();
+ foreach (var line in doc.Lines) {
+ int len = Math.Min (7, line.Length);
+ if (doc.IndexOf (conflictStart, line.Offset, len, StringComparison.Ordinal) >= 0)
+ startLines.Add (line);
+ else if (doc.IndexOf (conflictDivider, line.Offset, len, StringComparison.Ordinal) >= 0)
+ dividerLines.Add (line);
+ else if (doc.IndexOf (conflictEnd, line.Offset, len, StringComparison.Ordinal) >= 0)
+ endLines.Add (line);
+ }
+
+ for (int i = 0; i < startLines.Count; ++i) {
+ var start = startLines [i];
+ var divider = dividerLines [i];
+ var end = endLines [i];
yield return new Conflict (new TextSegment (start.EndOffsetIncludingDelimiter, divider.Offset - start.EndOffsetIncludingDelimiter),
new TextSegment (divider.EndOffsetIncludingDelimiter, end.Offset - divider.EndOffsetIncludingDelimiter),