private string GetVariableNameFeedback() { if (string.IsNullOrEmpty(NewName)) { return(string.Empty); } if (_forbiddenNames.Any(name => name.Equals(NewName, StringComparison.OrdinalIgnoreCase))) { return(string.Format(RubberduckUI.AssignedByValDialog_NewNameAlreadyUsedFormat, NewName)); } if (VariableNameValidator.StartsWithDigit(NewName)) { return(RubberduckUI.AssignedByValDialog_DoesNotStartWithLetter); } if (VariableNameValidator.HasSpecialCharacters(NewName)) { return(RubberduckUI.AssignedByValDialog_InvalidCharacters); } if (VariableNameValidator.IsReservedIdentifier(NewName)) { return(string.Format(RubberduckUI.AssignedByValDialog_ReservedKeywordFormat, NewName)); } if (!VariableNameValidator.IsMeaningfulName(NewName)) { return(string.Format(RubberduckUI.AssignedByValDialog_QuestionableEntryFormat, NewName)); } return(string.Empty); }
protected override IEnumerable <IInspectionResult> DoGetInspectionResults() { var settings = _settings.Load(new CodeInspectionSettings()) ?? new CodeInspectionSettings(); 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) && !VariableNameValidator.IsMeaningfulName(declaration.IdentifierName)); return((from issue in issues let props = issue.DeclarationType.HasFlag(DeclarationType.Module) || issue.DeclarationType.HasFlag(DeclarationType.Project) ? new Dictionary <string, string> { { "DisableFixes", "IgnoreOnceQuickFix" } } : null select new DeclarationInspectionResult(this, string.Format(InspectionsUI.IdentifierNameInspectionResultFormat, RubberduckUI.ResourceManager.GetString("DeclarationType_" + issue.DeclarationType, CultureInfo.CurrentUICulture), issue.IdentifierName), issue, properties: props)) .ToList()); }
private string GetVariableNameFeedback() { if (string.IsNullOrEmpty(NewName)) { return(string.Empty); } if (_isConflictingName(NewName)) { return(string.Format(RubberduckUI.AssignedByValDialog_NewNameAlreadyUsedFormat, NewName)); } if (VariableNameValidator.StartsWithDigit(NewName)) { return(RubberduckUI.AssignedByValDialog_DoesNotStartWithLetter); } if (VariableNameValidator.HasSpecialCharacters(NewName)) { return(RubberduckUI.AssignedByValDialog_InvalidCharacters); } if (VariableNameValidator.IsReservedIdentifier(NewName)) { return(string.Format(RubberduckUI.AssignedByValDialog_ReservedKeywordFormat, NewName)); } if (!VariableNameValidator.IsMeaningfulName(NewName)) { return(string.Format(RubberduckUI.AssignedByValDialog_QuestionableEntryFormat, NewName)); } return(string.Empty); }
private void SetControlsProperties() { var isValid = VariableNameValidator.IsValidName(NewName) && !_forbiddenNames.Any(name => name.Equals(NewName, StringComparison.OrdinalIgnoreCase)); OkButton.Visible = isValid; OkButton.Enabled = isValid; InvalidNameValidationIcon.Visible = !isValid; }
private void SetControlsProperties() { var isValid = VariableNameValidator.IsValidName(NewName); OkButton.Visible = isValid; OkButton.Enabled = isValid; InvalidNameValidationIcon.Visible = !isValid; }
public void Simple() { VariableNameValidator.ValidateSuffix("a2fa"); VariableNameValidator.ValidateSuffix("2"); VariableNameValidator.ValidateSuffix("_"); VariableNameValidator.ValidateSuffix("a"); VariableNameValidator.ValidateSuffix("$"); Assert.Throws <Exception>(() => VariableNameValidator.ValidateSuffix("@")); Assert.Throws <Exception>(() => VariableNameValidator.ValidateSuffix("/")); Assert.Throws <Exception>(() => VariableNameValidator.ValidateSuffix(@"\")); Assert.Throws <Exception>(() => VariableNameValidator.ValidateSuffix("%")); }
protected override IEnumerable <IInspectionResult> DoGetInspectionResults() { var settings = _settings.Load(new CodeInspectionSettings()) ?? new CodeInspectionSettings(); 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) && !VariableNameValidator.IsMeaningfulName(declaration.IdentifierName)); return((from issue in issues select CreateInspectionResult(this, issue)) .ToList()); }
private bool IsValidVariableName(string variableName, IEnumerable <string> forbiddenNames) { return(VariableNameValidator.IsValidName(variableName) && !forbiddenNames.Any(name => name.Equals(variableName, StringComparison.InvariantCultureIgnoreCase))); }
public void DeclarationFinder_FindsAccessibleDeclarations_All() { //Tests that the DeclarationFinder does not return any unexpected declarations //excluding Reserved Identifiers SetupSUT("TestProject"); var allNamesUsedInTests = new List <string>(); List <string> names; foreach (var Key in _tdo.AccessibleNames.Keys) { _tdo.AccessibleNames.TryGetValue(Key, out names); allNamesUsedInTests.AddRange(names); } allNamesUsedInTests.AddRange(_tdo.Components.Select(n => n.Name)); var target = GetTargetForAccessibilityTests(); var accessibleNames = _tdo.Parser.State.DeclarationFinder.GetDeclarationsWithIdentifiersToAvoid(target) .Select(dec => dec.IdentifierName); Assert.IsTrue(accessibleNames.Count() > 0); var unexpectedDeclarations = accessibleNames.Except(allNamesUsedInTests).ToList().Where(n => !VariableNameValidator.IsReservedIdentifier(n)); string failureMessage = string.Empty; if (unexpectedDeclarations.Count() > 0) { failureMessage = unexpectedDeclarations.Count().ToString() + " unexpected declaration(s) found:"; foreach (string identifier in unexpectedDeclarations) { failureMessage = failureMessage + " '" + identifier + "', "; } failureMessage = failureMessage.Substring(0, failureMessage.Length - 2); } Assert.AreEqual(0, unexpectedDeclarations.Count(), failureMessage); }
private bool VariableNameIsValid(string variableName) { return(VariableNameValidator.IsValidName(variableName) && !_forbiddenNames.Any(name => name.Equals(variableName, System.StringComparison.InvariantCultureIgnoreCase))); }
private bool IsValidVariableName(string variableName) { return(VariableNameValidator.IsValidName(variableName) && !IsNameCollision(variableName)); }