| File: ExtractClass\IOmniSharpExtractClassOptionsService.cs | Web Access |
| Project: src\roslyn\src\Features\ExternalAccess\OmniSharp\Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.csproj (Microsoft.CodeAnalysis.ExternalAccess.OmniSharp) |
// 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 System.Collections.Immutable; namespace Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.ExtractClass; internal interface IOmniSharpExtractClassOptionsService { OmniSharpExtractClassOptions? GetExtractClassOptions(Document document, INamedTypeSymbol originalType, ImmutableArray<ISymbol> selectedMembers); } internal sealed class OmniSharpExtractClassOptions { public string FileName { get; } public string TypeName { get; } public bool SameFile { get; } public ImmutableArray<OmniSharpExtractClassMemberAnalysisResult> MemberAnalysisResults { get; } public OmniSharpExtractClassOptions( string fileName, string typeName, bool sameFile, ImmutableArray<OmniSharpExtractClassMemberAnalysisResult> memberAnalysisResults) { FileName = fileName; TypeName = typeName; SameFile = sameFile; MemberAnalysisResults = memberAnalysisResults; } } internal sealed class OmniSharpExtractClassMemberAnalysisResult { /// <summary> /// The member needs to be pulled up. /// </summary> public ISymbol Member { get; } /// <summary> /// Whether to make the member abstract when added to the new class /// </summary> public bool MakeAbstract { get; } public OmniSharpExtractClassMemberAnalysisResult( ISymbol member, bool makeAbstract) { Member = member; MakeAbstract = makeAbstract; } }