diff options
author | Lluis Sanchez <lluis@xamarin.com> | 2015-11-18 17:14:03 +0300 |
---|---|---|
committer | Lluis Sanchez <lluis@xamarin.com> | 2015-11-25 18:44:59 +0300 |
commit | 74881948086cfe253d389d074d44d12f9149fc60 (patch) | |
tree | ffdb19809fdd73e84c4a3dc502126803e88d3904 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation | |
parent | d804ac2110c412f444528960a66f2e835a8ec88b (diff) |
Asynchronize document load and save operations
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation')
4 files changed, 12 insertions, 9 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/DocumentNavigationPoint.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/DocumentNavigationPoint.cs index d0f82bfe1e..37939b918b 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/DocumentNavigationPoint.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/DocumentNavigationPoint.cs @@ -28,6 +28,7 @@ // using System;
+using System.Threading.Tasks; using MonoDevelop.Core; using MonoDevelop.Ide.Gui; @@ -77,12 +78,12 @@ namespace MonoDevelop.Ide.Navigation get { return doc != null? doc.FileName : fileName; } } - public override Document ShowDocument () + public override Task<Document> ShowDocument () { return DoShow (); } - protected virtual Document DoShow () + protected virtual async Task<Document> DoShow () { if (doc != null) { doc.Select (); @@ -95,7 +96,7 @@ namespace MonoDevelop.Ide.Navigation break; } } - return IdeApp.Workbench.OpenDocument (new FileOpenInformation (fileName, p, true)); + return await IdeApp.Workbench.OpenDocument (new FileOpenInformation (fileName, p, true)); } public override string DisplayName { diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/NavigationHistoryService.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/NavigationHistoryService.cs index d9a964024c..be001978cb 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/NavigationHistoryService.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/NavigationHistoryService.cs @@ -224,10 +224,10 @@ namespace MonoDevelop.Ide.Navigation get { return closedHistory.Count != 0; } } - public static void OpenLastClosedDocument () { + public static async void OpenLastClosedDocument () { if (HasClosedDocuments) { var tuple = closedHistory.Pop (); - var doc = tuple.Item1.ShowDocument (); + var doc = await tuple.Item1.ShowDocument (); IdeApp.Workbench.ReorderTab (IdeApp.Workbench.Documents.IndexOf (doc), tuple.Item2); } } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/NavigationPoint.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/NavigationPoint.cs index 7455083ace..a45eb04d53 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/NavigationPoint.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/NavigationPoint.cs @@ -26,6 +26,7 @@ // THE SOFTWARE. using System; +using System.Threading.Tasks; using MonoDevelop.Ide.Gui; namespace MonoDevelop.Ide.Navigation @@ -35,9 +36,9 @@ namespace MonoDevelop.Ide.Navigation public abstract string DisplayName { get; } //public abstract string Tooltip { get; } - public virtual Document ShowDocument () + public virtual Task<Document> ShowDocument () { - return null; + return Task.FromResult<Document> (null); } // used for fuzzy matching to decide whether to replace an existing nav point diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/TextFileNavigationPoint.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/TextFileNavigationPoint.cs index d17c03e0c9..9fc346329d 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/TextFileNavigationPoint.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Navigation/TextFileNavigationPoint.cs @@ -32,6 +32,7 @@ using MonoDevelop.Ide.Gui.Content; using MonoDevelop.Core; using MonoDevelop.Ide.Gui; using MonoDevelop.Ide.Editor; +using System.Threading.Tasks; namespace MonoDevelop.Ide.Navigation { @@ -78,9 +79,9 @@ namespace MonoDevelop.Ide.Navigation } } - protected override Document DoShow () + protected override async Task<Document> DoShow () { - Document doc = base.DoShow (); + Document doc = await base.DoShow (); if (doc != null) { var buf = doc.Editor; if (buf != null) { |