|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using Microsoft.CodeAnalysis.CodeGeneration;
using Microsoft.CodeAnalysis.Editing;
namespace Microsoft.CodeAnalysis.CSharp.CodeGeneration;
internal sealed class CSharpCodeGenerationContextInfo : CodeGenerationContextInfo
{
public readonly LanguageVersion LanguageVersion;
public CSharpCodeGenerationContextInfo(CodeGenerationContext context, CSharpCodeGenerationOptions options, CSharpCodeGenerationService service, LanguageVersion languageVersion)
: base(context)
{
Options = options;
Service = service;
LanguageVersion = languageVersion;
}
public new CSharpCodeGenerationOptions Options { get; }
public new CSharpCodeGenerationService Service { get; }
protected override SyntaxGenerator GeneratorImpl
=> Service.LanguageServices.GetRequiredService<SyntaxGenerator>();
protected override CodeGenerationOptions OptionsImpl
=> Options;
protected override ICodeGenerationService ServiceImpl
=> Service;
public new CSharpCodeGenerationContextInfo WithContext(CodeGenerationContext value)
=> (Context == value) ? this : new(value, Options, Service, LanguageVersion);
protected override CodeGenerationContextInfo WithContextImpl(CodeGenerationContext value)
=> WithContext(value);
}
|