diff options
Diffstat (limited to 'main')
8 files changed, 46 insertions, 21 deletions
diff --git a/main/external/vs-editor-api b/main/external/vs-editor-api -Subproject bdaaa248c6da00043142f007836d5b7bddfe2b6 +Subproject 026d16665a9cdecd89d40b77022095d6bafb0aa diff --git a/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs b/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs index ba3761b28b..14b858c077 100644 --- a/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs +++ b/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs @@ -700,6 +700,7 @@ namespace MonoDevelop.MacIntegration.MainToolbar public override void ViewDidMoveToWindow () { base.ViewDidMoveToWindow (); + ReconstructString (); RepositionContents (); } @@ -720,7 +721,13 @@ namespace MonoDevelop.MacIntegration.MainToolbar imageView.Image = image; if (updatePopover) { DestroyPopover (null, null); - ShowPopoverForStatusBar (); + + // Window will be null if the StatusBar has been removed from its parent + // In that case we want to destroy the popover, but we don't want to show + // it again + if (Window != null) { + ShowPopoverForStatusBar (); + } } } } diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.VSTextView/BreakpointManager.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.VSTextView/BreakpointManager.cs index 93058fe629..9e7aff8e03 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.VSTextView/BreakpointManager.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.VSTextView/BreakpointManager.cs @@ -63,13 +63,21 @@ namespace MonoDevelop.Debugger private async void OnBreakpointsChanged (object sender, EventArgs eventArgs) { var newBreakpoints = new Dictionary<Breakpoint, ManagerBreakpoint> (); + var breakpointStore = DebuggingService.Breakpoints; var snapshot = textBuffer.CurrentSnapshot; + var bps = new List<Breakpoint> (); var needsUpdate = false; - foreach (var breakpoint in DebuggingService.Breakpoints.GetBreakpointsAtFile (textDocument.FilePath)) { - if (breakpoint.Line > snapshot.LineCount) - continue; + lock (breakpointStore) { + foreach (var breakpoint in breakpointStore.GetBreakpointsAtFile (textDocument.FilePath)) { + if (breakpoint.Line > snapshot.LineCount) + continue; + + bps.Add (breakpoint); + } + } + foreach (var breakpoint in bps) { if (eventArgs is BreakpointEventArgs breakpointEventArgs && breakpointEventArgs.Breakpoint == breakpoint) needsUpdate = true; diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/PinnedWatchStore.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/PinnedWatchStore.cs index ffdb0eaa8f..2e5fe0cca0 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/PinnedWatchStore.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/PinnedWatchStore.cs @@ -90,11 +90,11 @@ namespace MonoDevelop.Debugger internal void BindAll (BreakpointStore bps) { lock (watches) { - foreach (PinnedWatch w in watches) { - foreach (Breakpoint bp in bps.GetBreakpoints ()) { + foreach (var watch in watches) { + foreach (var bp in bps.GetBreakpoints ()) { if ((bp.HitAction & HitAction.PrintExpression) != HitAction.None && - bp.TraceExpression == "{" + w.Expression + "}" && bp.FileName == w.File && bp.Line == w.Line) - Bind (w, bp); + bp.TraceExpression == "{" + watch.Expression + "}" && bp.FileName == watch.File && bp.Line == watch.Line) + Bind (watch, bp); } } } diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.QuickTasks/QuickTaskOverviewMode.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.QuickTasks/QuickTaskOverviewMode.cs index 183293bcf6..38d4003d5b 100644 --- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.QuickTasks/QuickTaskOverviewMode.cs +++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.QuickTasks/QuickTaskOverviewMode.cs @@ -723,16 +723,22 @@ namespace MonoDevelop.SourceEditor.QuickTasks void DrawBreakpoints (Cairo.Context cr) { - var breakPoints = parentStrip.SourceEditorView.Breakpoints.GetBreakpointsAtFile (TextEditor.FileName); - if (breakPoints == null) - return; - foreach (var point in breakPoints) { - int y = (int)GetYPosition (point.Line); + var breakpointStore = parentStrip.SourceEditorView.Breakpoints; - cr.SetSourceColor (SyntaxHighlightingService.GetColor (TextEditor.EditorTheme, EditorThemeColors.BreakpointMarker)); - int r = 4; - cr.Rectangle (0, y - r / 2, r, r); - cr.Fill (); + lock (breakpointStore) { + var breakPoints = breakpointStore.GetBreakpointsAtFile (TextEditor.FileName); + + if (breakPoints == null) + return; + + foreach (var point in breakPoints) { + int y = (int)GetYPosition (point.Line); + + cr.SetSourceColor (SyntaxHighlightingService.GetColor (TextEditor.EditorTheme, EditorThemeColors.BreakpointMarker)); + int r = 4; + cr.Rectangle (0, y - r / 2, r, r); + cr.Fill (); + } } } diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtensibleTextEditor.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtensibleTextEditor.cs index dcafc9625b..42e3275c59 100644 --- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtensibleTextEditor.cs +++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtensibleTextEditor.cs @@ -550,8 +550,12 @@ namespace MonoDevelop.SourceEditor LoggingService.LogError ("DoInsertTemplate(): Can't find valid document"); return false; } - - return DoInsertTemplate (EditorExtension.Editor, doc.DocumentContext); + try { + return DoInsertTemplate (doc.Editor, doc.DocumentContext); + } catch (Exception e) { + LoggingService.LogInternalError ($"Error while trying to insert template: Editor={doc.Editor}, Ctx={doc.DocumentContext}.", e); + return false; + } } public bool DoInsertTemplate (TextEditor editor, DocumentContext ctx) diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs index 1b047408f9..c9407e4dbe 100644 --- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs +++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs @@ -1384,7 +1384,7 @@ namespace MonoDevelop.SourceEditor breakpointSegments.Clear (); lock (breakpoints) { - foreach (Breakpoint bp in breakpoints.GetBreakpointsAtFile (fp.FullPath)) { + foreach (var bp in breakpoints.GetBreakpointsAtFile (fp.FullPath)) { lineNumbers.Add (bp.Line); AddBreakpoint (bp); } diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/DefaultMSBuildEngine.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/DefaultMSBuildEngine.cs index 1c14ad2329..0263e172c6 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/DefaultMSBuildEngine.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/DefaultMSBuildEngine.cs @@ -925,7 +925,7 @@ namespace MonoDevelop.Projects.MSBuild else if (!baseDir.EndsWith ("\\", StringComparison.Ordinal)) baseDir += '\\'; var recursiveDir = baseRecursiveDir.IsNullOrEmpty ? FilePath.Null : basePath.ToRelative (baseRecursiveDir); - res = res.Concat (Directory.EnumerateFiles (basePath, path).Select (f => func (f, baseDir + Path.GetFileName (f), recursiveDir))); + res = res.Concat (Directory.GetFiles (basePath, path).Select (f => func (f, baseDir + Path.GetFileName (f), recursiveDir))); } else { // Directory specifier // Look for matching directories. |