示例#1
0
        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);
        }
示例#2
0
        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.
 }
示例#5
0
        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);
        }
示例#6
0
 protected ChopInlineMethodActionBase([NotNull] ICSharpParametersOwnerDeclaration parametersOwnerDeclaration, [NotNull] IFormalParameterList paramList)
 {
     this._parametersOwnerDeclaration = parametersOwnerDeclaration;
     this._paramList = paramList;
 }