示例#1
0
        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));
        }
示例#2
0
        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);
        }
示例#3
0
 private static bool IsNamespaceImportedClass(TypeScriptClass classToMatch, Identifier identifier,
                                              ImportedModule namespaceImport)
 {
     return(IsNamespaceImportedClass(classToMatch.Name, identifier, namespaceImport));
 }