public AddConstructorParametersCodeAction( Document document, CodeGenerationContextInfo info, ConstructorCandidate constructorCandidate, ISymbol containingType, ImmutableArray <IParameterSymbol> missingParameters, bool useSubMenuName) { _document = document; _info = info; _constructorCandidate = constructorCandidate; _containingType = containingType; _missingParameters = missingParameters; _useSubMenuName = useSubMenuName; }
static AddConstructorParametersCodeAction GetOptionalContructorParametersCodeAction(Document document, CodeGenerationContextInfo info, ConstructorCandidate constructorCandidate, INamedTypeSymbol containingType, bool useSubMenuName) { var missingOptionalParameters = constructorCandidate.MissingParameters.SelectAsArray( p => CodeGenerationSymbolFactory.CreateParameterSymbol( attributes: default,
private static AddConstructorParameterResult CreateCodeActions(Document document, CodeGenerationContextInfo info, State state) { using var _0 = ArrayBuilder <AddConstructorParametersCodeAction> .GetInstance(out var requiredParametersActions); using var _1 = ArrayBuilder <AddConstructorParametersCodeAction> .GetInstance(out var optionalParametersActions); var containingType = state.ContainingType; var useSubMenu = state.ConstructorCandidates.Length > 1; foreach (var constructorCandidate in state.ConstructorCandidates) { if (CanHaveRequiredParameters(constructorCandidate.Constructor.Parameters)) { requiredParametersActions.Add(new AddConstructorParametersCodeAction( document, info, constructorCandidate, containingType, constructorCandidate.MissingParameters, useSubMenuName: useSubMenu)); } optionalParametersActions.Add(GetOptionalContructorParametersCodeAction( document, info, constructorCandidate, containingType, useSubMenuName: useSubMenu)); } return(new AddConstructorParameterResult(requiredParametersActions.ToImmutable(), optionalParametersActions.ToImmutable(), useSubMenu));