private static bool IsNamespaceImportedClass(string name, Identifier identifier, ImportedModule namespaceImport) { var firstChild = identifier.Parent.Children.FirstOrDefault(); return(identifier.IdentifierStr.Equals(name) && firstChild != null && firstChild.IdentifierStr.Equals(namespaceImport.As)); }
public static IEnumerable <Usage> FindUsages(this TsProject <TypescriptCompilation> tsProject, ImportedModule first) { var compilations = tsProject.Compiled.Where(c => c.Imports != null && c.Imports.Any(i => i.ImportedModules.Contains(first))).ToList(); List <Usage> positions = new List <Usage>(); foreach (var compilation in compilations) { var potentialUsages = compilation.Ast.RootNode.GetDescendants().OfType <Identifier>() .Where(i => i.IdentifierStr.Equals(first.Name)) .Where(i => !i.GetAncestors().Any(ancestor => ancestor is ImportDeclaration)); positions.AddRange(potentialUsages.Select(usage => new Usage { Compilation = compilation, Node = usage })); } return(positions); }
private static bool IsNamespaceImportedClass(TypeScriptClass classToMatch, Identifier identifier, ImportedModule namespaceImport) { return(IsNamespaceImportedClass(classToMatch.Name, identifier, namespaceImport)); }