示例#1
0
        public TypeMapper(string typeName, string resolutionTypeName, IEnumerable <string> usings = null) // TODO: Support usings
        {
            TypeName           = typeName;
            ResolutionTypeName = resolutionTypeName;

            if (usings != null)
            {
                Usings.AddRange(usings);
            }
        }
        public void AddUsings(List <string> usings)
        {
            if (usings == null || !usings.Any())
            {
                return;
            }

            Usings.AddRange(usings);
            Usings = Usings.Where(x => x != null).Distinct().ToList();
        }
示例#3
0
        public void MergeWith(IOutputWriter cache)
        {
            // Remove all crawled items
            cache
            .Projects.ForEach(x => {
                Projects.RemoveAll(y => y.File == x.File);
                Files.RemoveAll(y => y.Project != null && y.Project.File == x.File);
            });
            cache
            .Files.ForEach(x => {
                Files.RemoveAll(y => y.File == x.File);
                Usings.RemoveAll(y => y.File.File == x.File);
                UsingAliases.RemoveAll(y => y.File.File == x.File);
                Namespaces.RemoveAll(y => y.File.File == x.File);
                Classes.RemoveAll(y => y.File.File == x.File);
                Interfaces.RemoveAll(y => y.File.File == x.File);
                Structs.RemoveAll(y => y.File.File == x.File);
                Enums.RemoveAll(y => y.File.File == x.File);
                Fields.RemoveAll(y => y.File.File == x.File);
                Methods.RemoveAll(y => y.File.File == x.File);
                Parameters.RemoveAll(y => y.File.File == x.File);
                Variables.RemoveAll(y => y.File.File == x.File);
            });

            // Write new items
            Projects.AddRange(cache.Projects);
            Files.AddRange(cache.Files);
            Usings.AddRange(cache.Usings);
            UsingAliases.AddRange(cache.UsingAliases);
            Namespaces.AddRange(cache.Namespaces);
            Classes.AddRange(cache.Classes);
            Interfaces.AddRange(cache.Interfaces);
            Structs.AddRange(cache.Structs);
            Enums.AddRange(cache.Enums);
            Fields.AddRange(cache.Fields);
            Methods.AddRange(cache.Methods);
            Parameters.AddRange(cache.Parameters);
            Variables.AddRange(cache.Variables);

            BuildTypeIndex();
        }
示例#4
0
 /// <summary>
 /// Adds the comma-delimited usings to the class.
 /// </summary>
 /// <param name="usings">The comma-delimited list of usings.</param>
 public void AddUsings(params string[] usings) => Usings.AddRange(usings.SelectMany(use => use?.Split(',') ?? Array.Empty <string>()));
 /// <summary>
 /// Creates a new <see cref="UsingDirectiveListInfo"/> with the specified usings added at the end.
 /// </summary>
 /// <param name="usings"></param>
 /// <returns></returns>
 public UsingDirectiveListInfo AddRange(IEnumerable <UsingDirectiveSyntax> usings)
 {
     return(WithUsings(Usings.AddRange(usings)));
 }
示例#6
0
        public TypeDefinition AddUsings(IEnumerable <UsingDirectiveSyntax> usings)
        {
            Must.Assert(usings != null);

            return(WithUsings(Usings.AddRange(usings)));
        }
        // Ports

        public ClassFileGenerator()
        {
            Usings.AddRange(GetDefaultUsings());
        }