private static UsingDirectiveSyntax GetNewUsingDirectiveSyntax( UsingDirectiveSyntax oldUsingDirective, string newName) { var isGlobalOrExternal = oldUsingDirective.DescendantNodes().OfType <AliasQualifiedNameSyntax>().Any() || oldUsingDirective.DescendantNodes().OfType <ExternAliasDirectiveSyntax>().Any(); if (newName == null || isGlobalOrExternal) { return(oldUsingDirective); } var newUsingDirective = SyntaxFactory.UsingDirective(SyntaxFactory.ParseName(newName)) .WithUsingKeyword(oldUsingDirective.UsingKeyword) .WithSemicolonToken(oldUsingDirective.SemicolonToken); var nameEquals = oldUsingDirective .ChildNodes() .OfType <NameEqualsSyntax>() .FirstOrDefault(); if (nameEquals != null) { newUsingDirective = newUsingDirective.WithAlias(nameEquals); } return(newUsingDirective); }
private static SyntaxToken?GetFirstIdentifierInUsingDirective(UsingDirectiveSyntax usingDirective) { foreach (var identifier in usingDirective.DescendantNodes()) { if (identifier is IdentifierNameSyntax identifierName && ExcludeGlobalKeyword(identifierName)) { return(identifierName.Identifier); } } return(null); }
private static SyntaxToken? GetFirstIdentifierInUsingDirective(UsingDirectiveSyntax usingDirective) { foreach (var identifier in usingDirective.DescendantNodes()) { IdentifierNameSyntax identifierName = identifier as IdentifierNameSyntax; if (identifierName != null && ExcludeGlobalKeyword(identifierName)) { return identifierName.Identifier; } } return null; }
private static bool HasNamespaceAliasQualifier(UsingDirectiveSyntax usingDirective) => usingDirective.DescendantNodes().Any(node => node.IsKind(SyntaxKind.AliasQualifiedName));
/// <summary> /// Check if the name of using directive contains a namespace alias qualifier. /// </summary> /// <param name="usingDirective">The <see cref="UsingDirectiveSyntax"/> that will be checked.</param> /// <returns> /// <see langword="true"/> if the <see cref="UsingDirectiveSyntax"/> contains a namespace alias qualifier; /// otherwise, <see langword="false"/>. /// </returns> internal static bool HasNamespaceAliasQualifier(this UsingDirectiveSyntax usingDirective) => usingDirective.DescendantNodes().Any(node => node.IsKind(SyntaxKind.AliasQualifiedName));
private static SyntaxToken? GetFirstIdentifierInUsingDirective(UsingDirectiveSyntax usingDirective) => usingDirective.DescendantNodes().OfType<IdentifierNameSyntax>().FirstOrDefault(ExcludeGlobalKeyword)?.Identifier;
private static bool IsGlobalOrExternal(UsingDirectiveSyntax node) { return(node.DescendantNodes().OfType <AliasQualifiedNameSyntax>().Any() || node.DescendantNodes().OfType <ExternAliasDirectiveSyntax>().Any()); }
private static SyntaxToken?GetFirstIdentifierInUsingDirective(UsingDirectiveSyntax usingDirective) => usingDirective.DescendantNodes().OfType <IdentifierNameSyntax>().FirstOrDefault(ExcludeGlobalKeyword)?.Identifier;