diff options
author | Mike Krüger <mkrueger@xamarin.com> | 2017-05-03 18:35:45 +0300 |
---|---|---|
committer | Marius Ungureanu <teromario@yahoo.com> | 2017-05-03 18:35:45 +0300 |
commit | 6c11fae46bf6e426abfff84ca2cd3cf1d085db7b (patch) | |
tree | 36718e0f7bc6dedde31c1fc5e27801493c6c45dd /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui | |
parent | 844a280156e6510fb015025d5545976a1d2b5588 (diff) |
[Ide] Prevent reparse overflow. (#2338)
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs index 15160413e4..ec73d08efb 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs @@ -904,7 +904,7 @@ namespace MonoDevelop.Ide.Gui { var ws = RoslynWorkspace as MonoDevelopWorkspace; if (ws != null) { - ws.WorkspaceChanged -= HandleRoslynProjectReload; + ws.WorkspaceChanged -= HandleRoslynProjectChange; } } @@ -912,13 +912,18 @@ namespace MonoDevelop.Ide.Gui { var ws = RoslynWorkspace as MonoDevelopWorkspace; if (ws != null) { - ws.WorkspaceChanged += HandleRoslynProjectReload; + ws.WorkspaceChanged += HandleRoslynProjectChange; } } - void HandleRoslynProjectReload (object sender, Microsoft.CodeAnalysis.WorkspaceChangeEventArgs e) + void HandleRoslynProjectChange (object sender, Microsoft.CodeAnalysis.WorkspaceChangeEventArgs e) { - StartReparseThread (); + if (e.Kind == Microsoft.CodeAnalysis.WorkspaceChangeKind.ProjectChanged || + e.Kind == Microsoft.CodeAnalysis.WorkspaceChangeKind.ProjectAdded || + e.Kind == Microsoft.CodeAnalysis.WorkspaceChangeKind.ProjectRemoved || + e.Kind == Microsoft.CodeAnalysis.WorkspaceChangeKind.ProjectReloaded) { + StartReparseThread (); + } } bool IsUnreferencedSharedProject (Project project) |