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:
authortherzok <marius.ungureanu@xamarin.com>2019-04-26 04:53:51 +0300
committertherzok <marius.ungureanu@xamarin.com>2019-04-26 04:53:51 +0300
commit4fdf00ede5e3f1e1ccfdd50c5018c857dd1bd02d (patch)
treec946c62d38cac261b30cb6225948d28953f6f187 /main/src/addins/CSharpBinding
parent026d56961d838e01164f46f239e292829ed29e8d (diff)
[Refactoring] Sanitize usage to only try AnalysisDocument code when doc.Editor is present
Should fix a few NREs in command updates
Diffstat (limited to 'main/src/addins/CSharpBinding')
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindBaseSymbolsHandler.cs10
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindDerivedSymbolsHandler.cs4
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindExtensionMethodsHandler.cs11
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindMemberOverloadsHandler.cs7
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/ExtractMethodCommandHandler.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindReferencesHandler.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoDeclarationHandler.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/RefactoryCommands.cs4
8 files changed, 22 insertions, 20 deletions
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindBaseSymbolsHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindBaseSymbolsHandler.cs
index 3e1ae33f2d..2b34ab179c 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindBaseSymbolsHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindBaseSymbolsHandler.cs
@@ -67,17 +67,17 @@ namespace MonoDevelop.CSharp.Navigation
});
}
- internal static async Task<ISymbol> GetSymbolAtCaret (Ide.Gui.Document doc)
+ internal static async Task<ISymbol> GetSymbolAtCaret (Ide.Gui.Document doc, CancellationToken cancelToken = default)
{
- if (doc == null)
+ if (doc == null || doc.Editor == null)
return null;
- var info = await RefactoringSymbolInfo.GetSymbolInfoAsync (doc.DocumentContext, doc.Editor);
+ var info = await RefactoringSymbolInfo.GetSymbolInfoAsync (doc.DocumentContext, doc.Editor, cancelToken);
return info.Symbol ?? info.DeclaredSymbol;
}
- protected override async void Update (CommandInfo info)
+ protected override async Task UpdateAsync (CommandInfo info, CancellationToken cancelToken)
{
- var sym = await GetSymbolAtCaret (IdeApp.Workbench.ActiveDocument);
+ var sym = await GetSymbolAtCaret (IdeApp.Workbench.ActiveDocument, cancelToken);
info.Enabled = sym != null;
info.Bypass = !info.Enabled;
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindDerivedSymbolsHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindDerivedSymbolsHandler.cs
index 02372a6a91..044d1b2c39 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindDerivedSymbolsHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindDerivedSymbolsHandler.cs
@@ -113,9 +113,9 @@ namespace MonoDevelop.CSharp.Refactoring
return result;
}
- protected override async void Update (CommandInfo info)
+ protected override async Task UpdateAsync (CommandInfo info, CancellationToken cancelToken)
{
- var sym = await FindBaseSymbolsHandler.GetSymbolAtCaret (IdeApp.Workbench.ActiveDocument);
+ var sym = await FindBaseSymbolsHandler.GetSymbolAtCaret (IdeApp.Workbench.ActiveDocument, cancelToken);
info.Enabled = sym != null;
info.Bypass = !info.Enabled;
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindExtensionMethodsHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindExtensionMethodsHandler.cs
index 1833f7f38f..21795bd5e6 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindExtensionMethodsHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindExtensionMethodsHandler.cs
@@ -34,14 +34,15 @@ using Microsoft.CodeAnalysis.Shared.Extensions;
using MonoDevelop.Components.Commands;
using MonoDevelop.Refactoring;
using ICSharpCode.NRefactory6.CSharp;
+using System.Threading.Tasks;
namespace MonoDevelop.CSharp.Navigation
{
class FindExtensionMethodsHandler : CommandHandler
{
- protected override async void Update (CommandInfo info)
+ protected override async Task UpdateAsync (CommandInfo info, CancellationToken cancelToken)
{
- var sym = await GetNamedTypeAtCaret (IdeApp.Workbench.ActiveDocument);
+ var sym = await GetNamedTypeAtCaret (IdeApp.Workbench.ActiveDocument, cancelToken);
info.Enabled = sym != null && sym.IsKind (SymbolKind.NamedType);
info.Bypass = !info.Enabled;
}
@@ -68,11 +69,11 @@ namespace MonoDevelop.CSharp.Navigation
}
}
- internal static async System.Threading.Tasks.Task<INamedTypeSymbol> GetNamedTypeAtCaret (Ide.Gui.Document doc)
+ internal static async System.Threading.Tasks.Task<INamedTypeSymbol> GetNamedTypeAtCaret (Ide.Gui.Document doc, CancellationToken cancellationToken = default)
{
- if (doc == null)
+ if (doc == null || doc.Editor == null)
return null;
- var info = await RefactoringSymbolInfo.GetSymbolInfoAsync (doc.DocumentContext, doc.Editor);
+ var info = await RefactoringSymbolInfo.GetSymbolInfoAsync (doc.DocumentContext, doc.Editor, cancellationToken);
var sym = info.Symbol ?? info.DeclaredSymbol;
return sym as INamedTypeSymbol;
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindMemberOverloadsHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindMemberOverloadsHandler.cs
index dd8c9c88b6..398ecfa30d 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindMemberOverloadsHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Navigation/FindMemberOverloadsHandler.cs
@@ -26,6 +26,7 @@
using System.Linq;
using System.Threading;
+using System.Threading.Tasks;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp.Extensions;
using Microsoft.CodeAnalysis.Shared.Extensions;
@@ -84,14 +85,14 @@ namespace MonoDevelop.CSharp.Navigation
}
}
- protected override async void Update (CommandInfo info)
+ protected override async Task UpdateAsync (CommandInfo info, CancellationToken cancelToken)
{
var doc = IdeApp.Workbench.ActiveDocument;
- if (doc == null) {
+ if (doc == null || doc.Editor == null) {
info.Enabled = false;
return;
}
- var symInfo = await RefactoringSymbolInfo.GetSymbolInfoAsync (doc.DocumentContext, doc.Editor);
+ var symInfo = await RefactoringSymbolInfo.GetSymbolInfoAsync (doc.DocumentContext, doc.Editor, cancelToken);
var sym = symInfo.Symbol ?? symInfo.DeclaredSymbol;
info.Enabled = sym != null && (sym.IsKind (SymbolKind.Method) || sym.IsKind (SymbolKind.Property) && ((IPropertySymbol)sym).IsIndexer);
info.Bypass = !info.Enabled;
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/ExtractMethodCommandHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/ExtractMethodCommandHandler.cs
index 3647fb04f4..cd7d219a74 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/ExtractMethodCommandHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/ExtractMethodCommandHandler.cs
@@ -61,7 +61,7 @@ namespace MonoDevelop.CSharp.Refactoring
protected override void Update (CommandInfo info)
{
var doc = IdeApp.Workbench.ActiveDocument;
- info.Enabled = doc != null && doc.DocumentContext.AnalysisDocument != null;
+ info.Enabled = doc != null && doc.Editor != null && doc.DocumentContext.AnalysisDocument != null;
}
public async static Task Run (MonoDevelop.Ide.Gui.Document doc)
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindReferencesHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindReferencesHandler.cs
index f2695122c7..b8d31c0940 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindReferencesHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindReferencesHandler.cs
@@ -204,7 +204,7 @@ namespace MonoDevelop.CSharp.Refactoring
public void Update (CommandInfo info)
{
var doc = IdeApp.Workbench.ActiveDocument;
- if (doc == null || doc.FileName == FilePath.Null || doc.DocumentContext.ParsedDocument == null) {
+ if (doc == null || doc.FileName == FilePath.Null || doc.Editor == null || doc.DocumentContext.ParsedDocument == null) {
info.Enabled = false;
return;
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoDeclarationHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoDeclarationHandler.cs
index 60ce03fa9d..d80c74aaa0 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoDeclarationHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoDeclarationHandler.cs
@@ -62,7 +62,7 @@ namespace MonoDevelop.CSharp.Refactoring
protected override void Run (object data)
{
var doc = IdeApp.Workbench.ActiveDocument;
- if (doc == null || doc.FileName == FilePath.Null)
+ if (doc == null || doc.FileName == FilePath.Null || doc.Editor == null)
return;
Run (doc);
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/RefactoryCommands.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/RefactoryCommands.cs
index 91301f0eb2..c4e41946bf 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/RefactoryCommands.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/RefactoryCommands.cs
@@ -63,7 +63,7 @@ namespace MonoDevelop.CSharp.Refactoring
protected bool TryGetDocument (out Document analysisDocument, out Ide.Gui.Document doc)
{
doc = IdeApp.Workbench.ActiveDocument;
- if (doc == null || doc.FileName == null) {
+ if (doc == null || doc.FileName == null || doc.Editor == null) {
analysisDocument = null;
return false;
}
@@ -137,7 +137,7 @@ namespace MonoDevelop.CSharp.Refactoring
var semanticModel = await analysisDocument.GetSemanticModelAsync (cancelToken);
if (semanticModel == null)
return;
- var info = await RefactoringSymbolInfo.GetSymbolInfoAsync (doc.DocumentContext, doc.Editor);
+ var info = await RefactoringSymbolInfo.GetSymbolInfoAsync (doc.DocumentContext, doc.Editor, cancelToken);
var ext = doc.GetContent<CodeActionEditorExtension> ();