public void SaveClassInfo() { string classInfoPath = CppParseManager.CreateAnalyticsFilePath(this.DialogClassName, $"ClassMap.json"); if (CppResultsManager.Self.ClassMap.ContainsKey(this.DialogClassName)) { CppClassResult cppClassResult = CppResultsManager.Self.ClassMap[this.DialogClassName]; string jsonData = JsonConvert.SerializeObject(cppClassResult, Formatting.Indented); File.WriteAllText(classInfoPath, jsonData); CppResultsManager.Self.ClassMap.Remove(this.DialogClassName); } }
public CppClassResult AddClassResult(CppFileContextBase cppFileContext, PenWebClassSpecifier penWebClassSpecifier) { CppClassResult cppClassResult = null; if (!this.ClassMap.ContainsKey(penWebClassSpecifier.ClassName)) { cppClassResult = new CppClassResult(penWebClassSpecifier.ClassName, penWebClassSpecifier.BaseClass); this.ClassMap.Add(penWebClassSpecifier.ClassName, cppClassResult); return(cppClassResult); } else { return(this.ClassMap[penWebClassSpecifier.ClassName]); } }
public void AddVariableReference(CppFileContextBase cppFileContext, PenWebQualifiedReference penWebQualifiedReference, string fileName) { if (this.ClassMap.ContainsKey(penWebQualifiedReference.OwningClass)) { CppClassResult cppClassResult = this.ClassMap[penWebQualifiedReference.OwningClass]; CppVariableReference cppVariableReference = cppClassResult.AddVariableReference(penWebQualifiedReference.ItemName, fileName, penWebQualifiedReference.Location.StartLine); } else { if (this.MissingRefClassNames.ContainsKey(penWebQualifiedReference.OwningClass)) { this.MissingRefClassNames[penWebQualifiedReference.OwningClass]++; } else { this.MissingRefClassNames.Add(penWebQualifiedReference.OwningClass, 1); } LogManager.Self.Log($"Unknown TypeName: {penWebQualifiedReference.OwningClass}"); } }
public void AddVariableDefinition(CppFileContextBase cppFileContext, PenWebDeclaration penWebDeclaration, string fileName) { CppTypeResult cppTypeResult = null; if (this.TypeMap.ContainsKey(penWebDeclaration.TypeName)) { cppTypeResult = this.TypeMap[penWebDeclaration.TypeName]; } else { cppTypeResult = new CppTypeResult(penWebDeclaration.TypeName); this.TypeMap.Add(penWebDeclaration.TypeName, cppTypeResult); } CppVariableDefinition cppVariableDefinition = cppTypeResult.AddDefinition(penWebDeclaration.VariableName, penWebDeclaration.OwningClass, fileName, penWebDeclaration.Location.StartLine); if (this.ClassMap.ContainsKey(penWebDeclaration.OwningClass)) { CppClassResult cppClassResult = this.ClassMap[penWebDeclaration.OwningClass]; cppClassResult.AddVariableDefinition(cppVariableDefinition); } else { if (this.MissingDefClassNames.ContainsKey(penWebDeclaration.OwningClass)) { this.MissingDefClassNames[penWebDeclaration.OwningClass]++; } else { this.MissingDefClassNames.Add(penWebDeclaration.OwningClass, 1); } LogManager.Self.Log($"Unknown class: {penWebDeclaration.OwningClass}"); } }