Beispiel #1
0
        public EncapsulationIdentifiers(string field)
        {
            _targetIdentifier = field;

            DefaultPropertyName = field.CapitalizeFirstLetter();
            DefaultNewFieldName = (field.ToLowerCaseFirstLetter()).IncrementEncapsulationIdentifier();

            if (field.TryMatchHungarianNotationCriteria(out var nonHungarianName))
            {
                if (!VBAIdentifierValidator.TryMatchInvalidIdentifierCriteria(nonHungarianName, DeclarationType.Variable, out _))
                {
                    DefaultPropertyName = nonHungarianName;
                    DefaultNewFieldName = field;
                }
            }
            else if (field.StartsWith("m_"))
            {
                var propertyName = field.Substring(2).CapitalizeFirstLetter();
                if (!VBAIdentifierValidator.TryMatchInvalidIdentifierCriteria(propertyName, DeclarationType.Property, out _))
                {
                    DefaultPropertyName = propertyName;
                    DefaultNewFieldName = field;
                }
            }

            _fieldAndProperty = new KeyValuePair <string, string>(DefaultNewFieldName, DefaultPropertyName);
        }
Beispiel #2
0
        private void SetControlsProperties()
        {
            var isValid = VBAIdentifierValidator.IsValidIdentifier(NewName, DeclarationType.Variable);

            OkButton.Visible = isValid;
            OkButton.Enabled = isValid;
            InvalidNameValidationIcon.Visible = !isValid;
        }
 protected override bool IsResultDeclaration(Declaration declaration, DeclarationFinder finder, string[] whitelistedNames)
 {
     return(!string.IsNullOrEmpty(declaration.IdentifierName) &&
            !IgnoreDeclarationTypes.Contains(declaration.DeclarationType) &&
            !(declaration.Context is VBAParser.LineNumberLabelContext) &&
            (declaration.ParentDeclaration == null ||
             !IgnoreDeclarationTypes.Contains(declaration.ParentDeclaration.DeclarationType) &&
             !finder.FindEventHandlers().Contains(declaration.ParentDeclaration)) &&
            !whitelistedNames.Contains(declaration.IdentifierName) &&
            !VBAIdentifierValidator.IsMeaningfulIdentifier(declaration.IdentifierName));
 }
        protected override IEnumerable <IInspectionResult> DoGetInspectionResults()
        {
            var settings         = _settings.Read();
            var whitelistedNames = settings.WhitelistedIdentifiers.Select(s => s.Identifier).ToArray();

            var handlers = State.DeclarationFinder.FindEventHandlers();

            var issues = UserDeclarations
                         .Where(declaration => !string.IsNullOrEmpty(declaration.IdentifierName) &&
                                !IgnoreDeclarationTypes.Contains(declaration.DeclarationType) &&
                                !(declaration.Context is LineNumberLabelContext) &&
                                (declaration.ParentDeclaration == null ||
                                 !IgnoreDeclarationTypes.Contains(declaration.ParentDeclaration.DeclarationType) &&
                                 !handlers.Contains(declaration.ParentDeclaration)) &&
                                !whitelistedNames.Contains(declaration.IdentifierName) &&
                                !VBAIdentifierValidator.IsMeaningfulIdentifier(declaration.IdentifierName));

            return((from issue in issues select CreateInspectionResult(this, issue))
                   .ToList());
        }
Beispiel #5
0
        private string GetVariableNameFeedback()
        {
            if (string.IsNullOrEmpty(NewName))
            {
                return(string.Empty);
            }

            if (_isConflictingName(NewName))
            {
                return(string.Format(RubberduckUI.AssignedByValDialog_NewNameAlreadyUsedFormat, NewName));
            }

            if (VBAIdentifierValidator.TryMatchInvalidIdentifierCriteria(NewName, DeclarationType.Variable, out var invalidMessage))
            {
                return(invalidMessage);
            }

            if (VBAIdentifierValidator.TryMatchMeaninglessIdentifierCriteria(NewName, out var meaninglessNameMessage))
            {
                return(string.Format(RubberduckUI.AssignedByValDialog_MeaninglessNameFormat, meaninglessNameMessage));
            }

            return(string.Empty);
        }
Beispiel #6
0
 private bool IsValidVariableName(string variableName)
 {
     return(VBAIdentifierValidator.IsValidIdentifier(variableName, DeclarationType.Variable) &&
            !IsNameCollision(variableName));
 }
 public bool IsValidVBAIdentifier(string identifier, out string errorMessage)
 => !VBAIdentifierValidator.TryMatchInvalidIdentifierCriteria(identifier, _declarationType, out errorMessage, _isArray);
        public void UDTMemberIdentifierValidations(string identifier, DeclarationType declarationType, bool isArray, bool expectedResult)
        {
            var result = VBAIdentifierValidator.TryMatchInvalidIdentifierCriteria(identifier, declarationType, out var errorMessage, isArray);

            Assert.AreEqual(expectedResult, result, errorMessage);
        }
 public void VBAIdentifierValidator_IsMeaningfulName(string identifier, bool expected)
 {
     Assert.AreEqual(expected, VBAIdentifierValidator.IsMeaningfulIdentifier(identifier));
 }
 public void VBAIdentifierValidator_IsValidName(string identifier, DeclarationType declarationType, bool expected)
 {
     Assert.AreEqual(expected, VBAIdentifierValidator.IsValidIdentifier(identifier, declarationType));
 }