diff options
author | Mike Krüger <mikkrg@microsoft.com> | 2018-02-27 13:21:44 +0300 |
---|---|---|
committer | Mike Krüger <mikkrg@microsoft.com> | 2018-02-27 13:21:44 +0300 |
commit | 9450d0176dca33f472ba750c896c2ab679843add (patch) | |
tree | 7e89b4481e0f44c0b12712124e61c75eddd93aa4 /main/src/core | |
parent | cac4874ad4e7039d409d27060873f8164ea8ac49 (diff) |
Fixes issue #3978 VSforMac crasses opening a Xamarin.Forms solution
https://github.com/mono/monodevelop/issues/3978
Diffstat (limited to 'main/src/core')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/LineSeparatorTextEditorExtension.cs | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/LineSeparatorTextEditorExtension.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/LineSeparatorTextEditorExtension.cs index 9cef24e485..981f9c3f1d 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/LineSeparatorTextEditorExtension.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/LineSeparatorTextEditorExtension.cs @@ -31,6 +31,7 @@ using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Host; using Microsoft.CodeAnalysis.Text; using Microsoft.CodeAnalysis.Editor; +using MonoDevelop.Core; namespace MonoDevelop.Ide.Editor.Extension { @@ -92,16 +93,15 @@ namespace MonoDevelop.Ide.Editor.Extension var separators = await lineSeparatorService.GetLineSeparatorsAsync (DocumentContext.AnalysisDocument, new TextSpan (0, Editor.Length), token); if (token.IsCancellationRequested) return; - var newMarkers = new List<ITextLineMarker> (); - foreach (var s in separators) { - var line = Editor.GetLineByOffset (s.Start); - var marker = Editor.TextMarkerFactory.CreateLineSeparatorMarker (Editor); - Editor.AddMarker (line, marker); - newMarkers.Add (marker); - } - - RemoveMarkers (); - markers = newMarkers; + await Runtime.RunInMainThread (delegate { + RemoveMarkers (); + foreach (var s in separators) { + var line = Editor.GetLineByOffset (s.Start); + var marker = Editor.TextMarkerFactory.CreateLineSeparatorMarker (Editor); + Editor.AddMarker (line, marker); + markers.Add (marker); + } + }); } void RemoveMarkers () |