public bool IsAvailable(IUserDataHolder cache) { var methodName = this._myProvider.GetSelectedElement <ICSharpIdentifier>(); var methodDeclaration = MethodDeclarationNavigator.GetByNameIdentifier(methodName); ICSharpParametersOwnerDeclaration paramsOwnerDeclaration = methodDeclaration; IFormalParameterList paramsList = methodDeclaration?.Params; //If unable to resolve by method declaration, try to resolve for ctor. if (paramsOwnerDeclaration == null) { var constructorDeclaration = ConstructorDeclarationNavigator.GetByTypeName(methodName); paramsOwnerDeclaration = constructorDeclaration; paramsList = constructorDeclaration?.Params; } if (paramsOwnerDeclaration == null) { return(false); } if (paramsOwnerDeclaration.ParameterDeclarations.IsEmpty) { return(false); } this.ParametersOwnerDeclaration = paramsOwnerDeclaration; this.FormalParameterList = paramsList; return(true); }
protected virtual void DoPutNewIndents([NotNull] IFormalParameterList parameters) { LowLevelModificationUtil.AddChildBefore(parameters, CreateLineBreakToken()); foreach (var paramDecl in parameters.ParameterDeclarationsEnumerable.Skip(1)) { LowLevelModificationUtil.AddChildBefore(paramDecl, CreateLineBreakToken()); } }
public OnelineMethodArgumentsAction([NotNull] ICSharpParametersOwnerDeclaration parametersOwnerDeclaration, [NotNull] IFormalParameterList paramList) : base(parametersOwnerDeclaration, paramList) { }
protected override void DoPutNewIndents(IFormalParameterList parameters) { // Indentations were removed. We just not put the new ones. }
private void DoCleanupLineBreaks([NotNull] ICSharpParametersOwnerDeclaration parametersOwnerDeclaration, [NotNull] IFormalParameterList parameters) { var nodesToRemove = new List <ITokenNode>(); //Remove line breaks between parenthesis and arguments. for (var node = parametersOwnerDeclaration.LPar; node != null && node != parametersOwnerDeclaration.RPar; node = node.GetNextToken()) { if (IsLineBreak(node)) { nodesToRemove.Add(node); } } nodesToRemove.ForEach(LowLevelModificationUtil.DeleteChild); //Remove all line breaks between arguments. nodesToRemove.Clear(); nodesToRemove.AddRange(parameters.Children().OfType <ITokenNode>().Where(IsLineBreak)); nodesToRemove.ForEach(LowLevelModificationUtil.DeleteChild); }
protected ChopInlineMethodActionBase([NotNull] ICSharpParametersOwnerDeclaration parametersOwnerDeclaration, [NotNull] IFormalParameterList paramList) { this._parametersOwnerDeclaration = parametersOwnerDeclaration; this._paramList = paramList; }