public override void HandleException(object provider, Exception exception) { if (provider is CodeFixProvider || provider is FixAllProvider || provider is CodeRefactoringProvider) { if (!IsIgnored(provider) && _optionsService.GetOption(ExtensionManagerOptions.DisableCrashingExtensions)) { base.HandleException(provider, exception); _errorReportingService?.ShowErrorInfoForCodeFix( codefixName: provider.GetType().Name, OnEnable: () => { EnableProvider(provider); LogEnableProvider(provider); }, OnEnableAndIgnore: () => { EnableProvider(provider); IgnoreProvider(provider); LogEnableAndIgnoreProvider(provider); }, OnClose: () => LogLeaveDisabled(provider)); } else { LogAction(CodefixInfobar_ErrorIgnored, provider); } } else { if (_optionsService.GetOption(ExtensionManagerOptions.DisableCrashingExtensions)) { base.HandleException(provider, exception); } _errorHandlers.Do(h => h.HandleError(provider, exception)); } _errorLoggerService?.LogException(provider, exception); }
public override void HandleException(object provider, Exception exception) { if (provider is CodeFixProvider || provider is FixAllProvider || provider is CodeRefactoringProvider) { if (!IsIgnored(provider) && _optionsService.GetOption(ExtensionManagerOptions.DisableCrashingExtensions)) { base.HandleException(provider, exception); _errorReportingService?.ShowErrorInfoForCodeFix( provider.GetType().Name, () => EnableProvider(provider), () => { EnableProvider(provider); IgnoreProvider(provider); }); } } else { if (_optionsService.GetOption(ExtensionManagerOptions.DisableCrashingExtensions)) { base.HandleException(provider, exception); } _errorHandlers.Do(h => h.HandleError(provider, exception)); } _errorLoggerService?.LogException(provider, exception); }