Esempio n. 1
0
        static void Main(string[] args)
        {
#if DEBUG
            var sourceFile = new FileInfo("ClassTest.cs");
#else
            if (args.Length == 0)
            {
                Console.WriteLine("Usage: ClassCounter <path to source.cs>");
                return;
            }

            var sourceFile = new FileInfo(args[0].Trim(new char[] { '<', '>' }));
#endif

            if (sourceFile.Exists)
            {
                var cs      = new CSharpSourceFile(sourceFile.FullName);
                var classes = cs.GetClasses();
                Console.WriteLine(string.Format(
                                      "File contains {0} classes and structs:",
                                      classes.Length)
                                  );
                Array.ForEach(classes, Console.WriteLine);
            }
            else
            {
                Console.WriteLine("Sorry, file not found.");
            }
            Console.ReadKey();
        }
Esempio n. 2
0
 private static void AddObjects(IEnumerable <ApiObject> objects, string directory)
 {
     foreach (var obj in objects)
     {
         var objectClass = CSharpSourceFile.FromObject(obj);
         sourcesManager.AddToSourceGroup(Path.Combine(directory, obj.Name.Split('_')[0].ToBeautifiedName()), objectClass);
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Add given Visual C# source file to given code project.
        /// </summary>
        /// <param name="sourceFile">
        /// CSharpSourceFile representing Visual C# source file to add.
        /// </param>
        /// <param name="codeProject">
        /// Code project to add Visual C# source file to.
        /// </param>
        static void AddSourceFile(CSharpSourceFile sourceFile,
                                  CodeProject codeProject)
        {
            sourceFile.Load();

            Analyzer.Core.Environment.AddSourceCode(codeProject,
                                                    sourceFile.FilePath, null);
        }
Esempio n. 4
0
        private static void AddCrossMethodEnums(IEnumerable <CSharpEnum> enums, string directory)
        {
            foreach (var e in enums)
            {
                var enumSourceFile = new CSharpSourceFile
                {
                    Name = e.Name,
                    Enum = e
                };

                sourcesManager.AddToSourceGroup(Path.Combine(directory), enumSourceFile);
            }
        }
Esempio n. 5
0
        private static void AddMethods(IEnumerable <ApiMethod> methods, string interfacesDirectory, string methodsDirectory)
        {
            var methodGroups = methods.GroupBy(m => m.Category);

            foreach (var methodGroup in methodGroups)
            {
                var methodsInterface = CSharpSourceFile.FromMethods(methodGroup.ToArray(), asInterface: true);
                var methodsClass     = CSharpSourceFile.FromMethods(methodGroup.ToArray(), asInterface: false);

                sourcesManager.AddToSourceGroup(interfacesDirectory, methodsInterface);
                sourcesManager.AddToSourceGroup(methodsDirectory, methodsClass);
            }
        }
Esempio n. 6
0
        public void AddToSourceGroup(string groupName, CSharpSourceFile sourceFile)
        {
            if (sourceFile == null)
            {
                return;
            }

            if (!SourceGroups.ContainsKey(groupName))
            {
                SourceGroups.Add(groupName, new List <CSharpSourceFile>());
            }

            SourceGroups[groupName].Add(sourceFile);
        }
Esempio n. 7
0
        private static Task WriteSourceFile(CSharpSourceFile sourceFile, string directory)
        {
            if (string.IsNullOrWhiteSpace(sourceFile.Name))
            {
                throw new Exception("No file name");
            }

            var sourceCode   = sourceFile.GetSourceCode();
            var genDirectory = $@"{ParentDirectory}\{directory}";

            if (!Directory.Exists(genDirectory))
            {
                Directory.CreateDirectory(genDirectory);
            }

            var sourceFileName = sourceFile.Name.EndsWith(".cs") ? sourceFile.Name : sourceFile.Name + ".cs";

            return(File.WriteAllTextAsync($@"{genDirectory}\{sourceFileName}", sourceCode));
        }