public static void AnalyzeCodeContext(CppCodeContext cppCodeContext)
        {
            IProjectFile projectFile = cppCodeContext.ProjectFile;

            using (TextWriter writer = File.CreateText(CreateAnalyticsFilePath(cppCodeContext.DialogClassName, $"{cppCodeContext.FileName}-cpp.txt")))
            {
                cppCodeContext.DumpFile(writer);
            }
        }
        private static void ProcessCppFile(CppHeaderContext cppHeaderContext, string fileName, string dialogClassName)
        {
            if (CppFileMap.ContainsKey(fileName.ToLower()))
            {
                IProjectFile projectFile = CppFileMap[fileName.ToLower()];

                CppCodeContext cppCodeContext = new CppCodeContext(fileName, dialogClassName);

                cppCodeContext.CppHeaderContext = cppHeaderContext;
                cppHeaderContext.CppCodeContext = cppCodeContext;
                cppCodeContext.WidgetTypeFinder = new WidgetTypeFinder(cppCodeContext, cppHeaderContext);

                CurrentFileContext = cppCodeContext;

                cppCodeContext.ProjectFile = projectFile;

                cppCodeContext.Init();

                CurrentFileContext = cppCodeContext;

                AnalyzeCodeContext(cppCodeContext);

                cppCodeContext.WriteSavedNodes();

                cppCodeContext.ProcessResults();

                cppCodeContext.Finalize();

                cppCodeContext.SaveClassInfo();

                cppCodeContext.WidgetTypeFinder.DoAnalytics();
            }
            else
            {
                LogManager.Self.Log($"Missing Cpp File in map: {fileName}");
            }
        }
 public WidgetTypeFinder(CppCodeContext cppCodeContext, CppHeaderContext cppHeaderContext)
 {
     this.CppCodeContext   = cppCodeContext;
     this.CppHeaderContext = cppHeaderContext;
 }