Пример #1
0
        public override Analyzer CreateAnalyzer(ISyntaxFacts syntaxFacts, ParseOptions options)
        {
            var version  = options.LanguageVersion();
            var features =
                (version >= LanguageVersion.CSharp7 ? Feature.SourcePattern | Feature.IsTypePattern | Feature.CaseGuard : 0) |
                (version >= LanguageVersion.CSharp8 ? Feature.SwitchExpression : 0) |
                (version >= LanguageVersion.CSharp9 ? Feature.RelationalPattern | Feature.OrPattern | Feature.AndPattern | Feature.TypePattern : 0);

            return(new CSharpAnalyzer(syntaxFacts, features));
        }
        public void ReplaceGetMethodWithProperty(
            DocumentOptionSet documentOptions,
            ParseOptions parseOptions,
            SyntaxEditor editor,
            SemanticModel semanticModel,
            GetAndSetMethods getAndSetMethods,
            string propertyName, bool nameChanged)
        {
            if (getAndSetMethods.GetMethodDeclaration is not MethodDeclarationSyntax getMethodDeclaration)
            {
                return;
            }

            var languageVersion = parseOptions.LanguageVersion();
            var newProperty     = ConvertMethodsToProperty(
                documentOptions, languageVersion,
                semanticModel, editor.Generator,
                getAndSetMethods, propertyName, nameChanged);

            editor.ReplaceNode(getMethodDeclaration, newProperty);
        }
Пример #3
0
 protected override bool SupportsNonTrailingNamedArguments(ParseOptions options)
 => options.LanguageVersion() >= LanguageVersion.CSharp7_2;
Пример #4
0
 protected override bool IsSupported(SyntaxKind assignmentKind, ParseOptions options)
 => assignmentKind != SyntaxKind.CoalesceExpression ||
 options.LanguageVersion() >= LanguageVersion.CSharp8;
Пример #5
0
 // We need to be at least on c# 11 to support using !! with records.
 protected override bool SupportsRecords(ParseOptions options)
 => options.LanguageVersion().IsCSharp11OrAbove();
Пример #6
0
 public static bool SupportsIsNotPattern(ParseOptions options)
 => options.LanguageVersion() >= LanguageVersion.CSharp9;