private static StyleCopSettings GetStyleCopSettings(SourceText text, DeserializationFailureBehavior failureBehavior) { try { var root = JsonConvert.DeserializeObject <SettingsFile>(text.ToString()); return(root.Settings); } catch (JsonException) when(failureBehavior == DeserializationFailureBehavior.ReturnDefaultSettings) { // The settings file is invalid -> return the default settings. } return(new StyleCopSettings()); }
private static BuilderCopSettings GetBuilderCopSettings(SourceText text, DeserializationFailureBehavior failureBehavior) { try { JObject settingsObject = JsonConvert.DeserializeObject <JObject>(text.ToString()); ValidateResource( settingsObject, typeof(BuilderCopSettings).GetTypeInfo().Assembly.GetManifestResourceStream("TestDataBuilderGenerator.Settings.Resources.BuilderCop.json-schema.json")); return(new BuilderCopSettings(settingsObject.SelectToken("settings"))); } catch (Exception ex) when(failureBehavior == DeserializationFailureBehavior.ReturnDefaultSettings) { // The settings file is invalid -> return the default settings. Debug.WriteLine(ex.Message); } return(new BuilderCopSettings()); }
internal static StyleCopSettings GetStyleCopSettings(this AnalysisContext context, AnalyzerOptions options, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) { SourceText text = TryGetStyleCopSettingsText(options, cancellationToken); if (text == null) { return new StyleCopSettings(); } if (failureBehavior == DeserializationFailureBehavior.ReturnDefaultSettings) { StyleCopSettings settings; if (!context.TryGetValue(text, SettingsValueProvider, out settings)) { return new StyleCopSettings(); } return settings; } return JsonConvert.DeserializeObject<SettingsFile>(text.ToString()).Settings; }
#pragma warning disable RS1012 // Start action has no registered actions. internal static StyleCopSettings GetStyleCopSettings(this CompilationStartAnalysisContext context, AnalyzerOptions options, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) #pragma warning restore RS1012 // Start action has no registered actions. { string settingsFilePath; SourceText text = TryGetStyleCopSettingsText(options, cancellationToken, out settingsFilePath); if (text == null) { return(new StyleCopSettings()); } if (failureBehavior == DeserializationFailureBehavior.ReturnDefaultSettings) { StyleCopSettings settings; if (!context.TryGetValue(text, SettingsValueProvider, out settings)) { return(new StyleCopSettings()); } return(settings); } return(GetStyleCopSettings(settingsFilePath, text, failureBehavior)); }
private static StyleCopSettings GetStyleCopSettings(ImmutableArray <AdditionalText> additionalFiles, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) { try { foreach (var additionalFile in additionalFiles) { if (Path.GetFileName(additionalFile.Path).ToLowerInvariant() == SettingsFileName) { SourceText additionalTextContent = GetText(additionalFile, cancellationToken); var root = JsonConvert.DeserializeObject <SettingsFile>(additionalTextContent.ToString()); return(root.Settings); } } } catch (JsonException) when(failureBehavior == DeserializationFailureBehavior.ReturnDefaultSettings) { // The settings file is invalid -> return the default settings. } return(new StyleCopSettings()); }
private static StyleCopSettings GetStyleCopSettings(AnalyzerOptions options, SyntaxTree tree, ImmutableArray <AdditionalText> additionalFiles, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) { foreach (var additionalFile in additionalFiles) { if (IsStyleCopSettingsFile(additionalFile.Path)) { SourceText additionalTextContent = additionalFile.GetText(cancellationToken); return(GetStyleCopSettings(options, tree, additionalFile.Path, additionalTextContent, failureBehavior)); } } if (tree != null) { var optionsProvider = options.AnalyzerConfigOptionsProvider().GetOptions(tree); return(new StyleCopSettings(new JsonObject(), optionsProvider)); } return(new StyleCopSettings()); }
private static DependencyCopSettings GetDependencyCopSettings(string path, SourceText text, DeserializationFailureBehavior failureBehavior) { try { var jsonText = text.ToString(); if (string.IsNullOrWhiteSpace(jsonText)) { throw new JsonException("The dependency cop settings file is empty."); } return(JsonConvert.DeserializeObject <DependencyCopSettings>(jsonText)); } catch (JsonException) when(failureBehavior == DeserializationFailureBehavior.ReturnDefaultSettings) { // The settings file is invalid -> return the default settings. } return(DependencyCopSettings.Default); }
/// <summary> /// Gets the StyleCop settings. /// </summary> /// <param name="options">The analyzer options that will be used to determine the StyleCop settings.</param> /// <param name="failureBehavior">The behavior of the method when a <see cref="JsonException"/> occurs while /// deserializing the settings file.</param> /// <param name="cancellationToken">The cancellation token that the operation will observe.</param> /// <returns>A <see cref="StyleCopSettings"/> instance that represents the StyleCop settings for the given context.</returns> internal static StyleCopSettings GetStyleCopSettings(this AnalyzerOptions options, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) { return GetStyleCopSettings(options != null ? options.AdditionalFiles : ImmutableArray.Create<AdditionalText>(), failureBehavior, cancellationToken); }
private static StyleCopSettings GetStyleCopSettings(SourceText text, DeserializationFailureBehavior failureBehavior) { try { var root = JsonConvert.DeserializeObject<SettingsFile>(text.ToString()); return root.Settings; } catch (JsonException) when (failureBehavior == DeserializationFailureBehavior.ReturnDefaultSettings) { // The settings file is invalid -> return the default settings. } return new StyleCopSettings(); }
/// <summary> /// Gets the StyleCop settings. /// </summary> /// <param name="options">The analyzer options that will be used to determine the StyleCop settings.</param> /// <param name="failureBehavior">The behavior of the method when a <see cref="JsonParseException"/> or /// <see cref="InvalidSettingsException"/> occurs while deserializing the settings file.</param> /// <param name="cancellationToken">The cancellation token that the operation will observe.</param> /// <returns>A <see cref="StyleCopSettings"/> instance that represents the StyleCop settings for the given context.</returns> internal static StyleCopSettings GetStyleCopSettings(this AnalyzerOptions options, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) { return(GetStyleCopSettings(options != null ? options.AdditionalFiles : ImmutableArray.Create <AdditionalText>(), failureBehavior, cancellationToken)); }
private static void CreateAndAddStyleCopSettingsToCache(AdditionalText additionalFile, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken, Func <SourceText, SourceTextValueProvider <StyleCopSettings>, StyleCopSettings> contextSettingsProvider) { SourceText text = GetStyleCopSettingsText(additionalFile, cancellationToken); if (text == null) { lock (settingsByFileName) { settingsByFileName.Add(additionalFile.Path, new StyleCopSettings()); } return; } if (failureBehavior == DeserializationFailureBehavior.ReturnDefaultSettings) { StyleCopSettings settings = contextSettingsProvider(text, SettingsValueProvider); if (settings == null) { lock (settingsByFileName) { settingsByFileName.Add(additionalFile.Path, new StyleCopSettings()); } return; } lock (settingsByFileName) { settingsByFileName.Add(additionalFile.Path, settings); } return; } lock (settingsByFileName) { settingsByFileName.Add(additionalFile.Path, JsonConvert.DeserializeObject <SettingsFile>(text.ToString()).Settings); } return; }
private static StyleCopSettings GetCachedStyleCopSettings(ImmutableArray <AdditionalText> additionalFiles, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken, Func <SourceText, SourceTextValueProvider <StyleCopSettings>, StyleCopSettings> contextSettingsProvider) { foreach (var additionalFile in additionalFiles) { if (Path.GetFileName(additionalFile.Path).ToLowerInvariant() == SettingsFileName) { lock (settingsByFileName) { if (!settingsByFileName.ContainsKey(additionalFile.Path)) { CreateAndAddStyleCopSettingsToCache(additionalFile, failureBehavior, cancellationToken, contextSettingsProvider); } return(settingsByFileName[additionalFile.Path]); } } } return(null); }
private static StyleCopSettings GetCachedStyleCopSettings(AnalyzerOptions options, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken, Func <SourceText, SourceTextValueProvider <StyleCopSettings>, StyleCopSettings> contextSettingsProvider) { return(GetCachedStyleCopSettings(options.AdditionalFiles, failureBehavior, cancellationToken, contextSettingsProvider)); }
#pragma warning disable RS1012 // Start action has no registered actions private static StyleCopSettings GetCachedStyleCopSettings(CompilationStartAnalysisContext context, AnalyzerOptions options, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) #pragma warning restore RS1012 // Start action has no registered actions { return(GetCachedStyleCopSettings( options, failureBehavior, cancellationToken, (sourceText, sourceTextValueProvider) => { StyleCopSettings settings = null; context.TryGetValue(sourceText, sourceTextValueProvider, out settings); return settings; })); }
private static StyleCopSettings GetCachedStyleCopSettings(AnalysisContext context, AnalyzerOptions options, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) { return(GetCachedStyleCopSettings( options, failureBehavior, cancellationToken, (sourceText, sourceTextValueProvider) => { StyleCopSettings settings = null; context.TryGetValue(sourceText, sourceTextValueProvider, out settings); return settings; })); }
#pragma warning disable RS1012 // Start action has no registered actions. internal static StyleCopSettings GetStyleCopSettings(this CompilationStartAnalysisContext context, AnalyzerOptions options, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) #pragma warning restore RS1012 // Start action has no registered actions. { return(GetCachedStyleCopSettings(context, options, failureBehavior, cancellationToken)); }
private static StyleCopSettings GetStyleCopSettings(string path, SourceText text, DeserializationFailureBehavior failureBehavior) { try { var rootValue = JsonReader.Parse(text.ToString()); if (!rootValue.IsJsonObject) { throw new JsonParseException( $"Settings file at '{path}' was missing or empty.", JsonParseException.ErrorType.InvalidOrUnexpectedCharacter, default(TextPosition)); } var settingsObject = rootValue.AsJsonObject["settings"]; if (settingsObject.IsJsonObject) { return(new StyleCopSettings(settingsObject.AsJsonObject)); } else if (settingsObject.IsNull) { throw new InvalidSettingsException("\"settings\" must be a JSON object."); } return(new StyleCopSettings()); } catch (InvalidSettingsException) when(failureBehavior == DeserializationFailureBehavior.ReturnDefaultSettings) { // The settings file is invalid -> return the default settings. } catch (JsonParseException) when(failureBehavior == DeserializationFailureBehavior.ReturnDefaultSettings) { // The settings file is invalid -> return the default settings. } return(new StyleCopSettings()); }
private static StyleCopSettings GetStyleCopSettings(ImmutableArray <AdditionalText> additionalFiles, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) { foreach (var additionalFile in additionalFiles) { if (IsStyleCopSettingsFile(additionalFile.Path)) { SourceText additionalTextContent = additionalFile.GetText(cancellationToken); return(GetStyleCopSettings(additionalFile.Path, additionalTextContent, failureBehavior)); } } return(new StyleCopSettings()); }
private static StyleCopSettings GetStyleCopSettings(ImmutableArray <AdditionalText> additionalFiles, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) { return(GetCachedStyleCopSettings( additionalFiles, failureBehavior, cancellationToken, (sourceText, sourceTextValueProvider) => { SourceText additionalTextContent = sourceText; var root = JsonConvert.DeserializeObject <SettingsFile>(additionalTextContent.ToString()); if (root == null) { throw new JsonException($"Settings file at 'UNKNOWN' was missing or empty."); } return root.Settings; })); }
internal static StyleCopSettings GetStyleCopSettings(this AnalysisContext context, AnalyzerOptions options, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) { string settingsFilePath; SourceText text = TryGetStyleCopSettingsText(options, cancellationToken, out settingsFilePath); if (text == null) { return(new StyleCopSettings()); } if (failureBehavior == DeserializationFailureBehavior.ReturnDefaultSettings) { StyleCopSettings settings; if (!context.TryGetValue(text, SettingsValueProvider, out settings)) { return(new StyleCopSettings()); } return(settings); } return(GetStyleCopSettings(settingsFilePath, text, failureBehavior)); }
internal static StyleCopSettings GetStyleCopSettings(this AnalysisContext context, AnalyzerOptions options, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) { return(GetCachedStyleCopSettings(context, options, failureBehavior, cancellationToken)); }
private static StyleCopSettings GetStyleCopSettings(ImmutableArray<AdditionalText> additionalFiles, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) { try { foreach (var additionalFile in additionalFiles) { if (Path.GetFileName(additionalFile.Path).ToLowerInvariant() == SettingsFileName) { SourceText additionalTextContent = additionalFile.GetText(cancellationToken); var root = JsonConvert.DeserializeObject<SettingsFile>(additionalTextContent.ToString()); return root.Settings; } } } catch (JsonException) when (failureBehavior == DeserializationFailureBehavior.ReturnDefaultSettings) { // The settings file is invalid -> return the default settings. } return new StyleCopSettings(); }
private static BuilderCopSettings GetBuilderCopSettings(ImmutableArray <AdditionalText> additionalFiles, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) { foreach (var additionalFile in additionalFiles) { if (Path.GetFileName(additionalFile.Path).ToLowerInvariant() == SettingsFileName) { SourceText additionalTextContent = additionalFile.GetText(cancellationToken); return(GetBuilderCopSettings(additionalTextContent, failureBehavior)); } } return(new BuilderCopSettings()); }
internal static StyleCopSettings GetStyleCopSettings(this AnalysisContext context, AnalyzerOptions options, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) { var text = TryGetStyleCopSettingsText(options, cancellationToken); if (text == null) { return(new StyleCopSettings()); } if (failureBehavior == DeserializationFailureBehavior.ReturnDefaultSettings) { StyleCopSettings settings; if (!context.TryGetValue(text, SettingsValueProvider, out settings)) { return(new StyleCopSettings()); } return(settings); } return(JsonConvert.DeserializeObject <SettingsFile>(text.ToString()).Settings); }
internal static BuilderCopSettings GetBuilderCopSettings(this CompilationStartAnalysisContext context, AnalyzerOptions options, DeserializationFailureBehavior failureBehavior, CancellationToken cancellationToken) { SourceText text = TryGetBuilderCopSettingsText(options, cancellationToken); if (text == null) { return(new BuilderCopSettings()); } if (failureBehavior == DeserializationFailureBehavior.ReturnDefaultSettings) { BuilderCopSettings settings; if (!context.TryGetValue(text, SettingsValueProvider, out settings)) { return(new BuilderCopSettings()); } return(settings); } return(GetBuilderCopSettings(text, failureBehavior)); }