private static CppHeaderContext ProcessHeaderFile(string fileName, string dialogClassName) { if (HeaderFileMap.ContainsKey(fileName.ToLower())) { IProjectFile projectFile = HeaderFileMap[fileName.ToLower()]; CppHeaderContext cppHeaderContext = new CppHeaderContext(projectFile.Name, dialogClassName); CurrentFileContext = cppHeaderContext; cppHeaderContext.ProjectFile = projectFile; cppHeaderContext.Init(); CurrentFileContext = cppHeaderContext; AnalyzeHeaderContext(cppHeaderContext); cppHeaderContext.WriteSavedNodes(); cppHeaderContext.ProcessResults(); cppHeaderContext.Finalize(); return(cppHeaderContext); } else { LogManager.Self.Log($"Missing Header File in map: {fileName}"); return(null); } }
public static void DoAnalytics(Lifetime lifetime) { var solutionStateTracker = SolutionStateTracker.Instance; /* * solutionStateTracker?.SolutionName.Change.Advise_HasNew(lifetime, () => * { * }); */ try { PenradCppFiles.Clear(); PenradHeaderFiles.Clear(); CppFileMap.Clear(); HeaderFileMap.Clear(); CppResultsManager.Self.Clear(); var solution = solutionStateTracker?.Solution; if (solution == null) { return; } List <IProject> projects = solution.GetProjectsByName("penrad").ToList(); if (projects.Count == 1) { PenradProject = projects.First(); MapProjectFiles(); ParsePenradDialogs(); CppResultsManager.Self.WriteResults(); WidgetTypeFinder.WriteAnalytics(); //CppParseTreeNodeFactory.Self.DumpTreeSchema(); //CodeGenerator.Self.GenerateCode(); } } catch (Exception ex) { LogManager.Self.Log($"Excpetion {ex.Message}"); } }
private static void MapProjectFiles() { List <IProjectFile> projectFiles = PenradProject.GetAllProjectFiles().ToList(); foreach (IProjectFile projectFile in projectFiles) { string ext = Path.GetExtension(projectFile.Name).ToLower(); switch (ext) { case ".cpp": CppFileMap.Add(projectFile.Name.ToLower(), projectFile); break; case ".h": HeaderFileMap.Add(projectFile.Name.ToLower(), projectFile); break; } } }