diff options
author | David Karlaš <david.karlas@xamarin.com> | 2016-08-16 15:48:59 +0300 |
---|---|---|
committer | David Karlaš <david.karlas@xamarin.com> | 2016-08-16 15:48:59 +0300 |
commit | 9299e861b0488920f43eb719bd238b92bc31e704 (patch) | |
tree | 617cd2aa3baa855e929ae8d1cb96de4a2f1ff710 /main/src | |
parent | 7a1d300de4df271e340429aea2fed47996286549 (diff) |
[Ide] Swallow cancelation exception since new run(one that canceled this run) will update things
Diffstat (limited to 'main/src')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ParameterInformationWindowManager.cs | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ParameterInformationWindowManager.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ParameterInformationWindowManager.cs index 41fb319aa2..385487aa20 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ParameterInformationWindowManager.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ParameterInformationWindowManager.cs @@ -123,29 +123,30 @@ namespace MonoDevelop.Ide.CodeCompletion // Called after the key has been processed by the editor if (currentMethodGroup == null) return; - + var actualMethodGroup = new MethodData (); actualMethodGroup.CompletionContext = widget.CurrentCodeCompletionContext; actualMethodGroup.MethodProvider = await ext.ParameterCompletionCommand (widget.CurrentCodeCompletionContext); - if (actualMethodGroup.MethodProvider != null && (currentMethodGroup == null || !actualMethodGroup.MethodProvider.Equals (currentMethodGroup.MethodProvider))) + if (actualMethodGroup.MethodProvider != null && (currentMethodGroup == null || !actualMethodGroup.MethodProvider.Equals (currentMethodGroup.MethodProvider))) currentMethodGroup = actualMethodGroup; - - int pos = await ext.GetCurrentParameterIndex (currentMethodGroup.MethodProvider.StartOffset, token); - if (pos == -1) { - if (actualMethodGroup.MethodProvider == null) { - currentMethodGroup = null; - } else { - pos = await ext.GetCurrentParameterIndex (actualMethodGroup.MethodProvider.StartOffset, token); - currentMethodGroup = pos >= 0 ? actualMethodGroup : null; + try { + int pos = await ext.GetCurrentParameterIndex (currentMethodGroup.MethodProvider.StartOffset, token); + if (pos == -1) { + if (actualMethodGroup.MethodProvider == null) { + currentMethodGroup = null; + } else { + pos = await ext.GetCurrentParameterIndex (actualMethodGroup.MethodProvider.StartOffset, token); + currentMethodGroup = pos >= 0 ? actualMethodGroup : null; + } } - } - // If the user enters more parameters than the current overload has, - // look for another overload with more parameters. - UpdateOverload (ext, widget, token); - - // Refresh. - UpdateWindow (ext, widget); + // If the user enters more parameters than the current overload has, + // look for another overload with more parameters. + UpdateOverload (ext, widget, token); + + // Refresh. + UpdateWindow (ext, widget); + } catch (OperationCanceledException) { } } internal static void RepositionWindow (CompletionTextEditorExtension ext, ICompletionWidget widget) |