Example #1
0
 public static SymbolModifiers GetRequiredModifiersOption(
     this AnalyzerOptions options,
     DiagnosticDescriptor rule,
     ISymbol symbol,
     Compilation compilation,
     SymbolModifiers defaultValue,
     CancellationToken cancellationToken)
 => TryGetSyntaxTreeForOption(symbol, out var tree)
     ? options.GetRequiredModifiersOption(rule, tree, compilation, defaultValue, cancellationToken)
     : defaultValue;
        /// <summary>
        /// Returns true if the given symbol has required symbol modifiers based on options:
        ///   1. If user has explicitly configured candidate <see cref="SymbolModifiers"/> in editor config options and
        ///      given symbol has all the required modifiers.
        ///   2. Otherwise, if user has not configured modifiers.
        /// </summary>
        public static bool MatchesConfiguredModifiers(
            this ISymbol symbol,
            AnalyzerOptions options,
            DiagnosticDescriptor rule,
            CancellationToken cancellationToken,
            SymbolModifiers defaultRequiredModifiers = SymbolModifiers.None)
        {
            var requiredModifiers = options.GetRequiredModifiersOption(rule, defaultRequiredModifiers, cancellationToken);

            return(symbol.GetSymbolModifiers().Contains(requiredModifiers));
        }