private static void UpdateSchema(string assemblyPath, CompilerMessage[] messages) { var asset = ProjectUtility.GetProjectAsset <TypeFieldSchema>(); if (asset != null) { asset.UpdateSchema(assemblyPath); ProjectUtility.UpdateProjectAsset(asset); } }
public void OnBeginAnalysis(AssemblyDefinition assemblyDefinition) { this.assembly = assemblyDefinition.FullName; if (cache == null) { cache = ProjectUtility.GetProjectAsset <SerializableMemberCache>(); } if (cache != null) { filterData = cache.typeFields.Select(field => (field: field.IsCreated ? field.Value : null, filter: new TypeFilter(field.Value?.GetCustomAttributes <TypeFilterAttribute>()?.ToArray()))) .Where(obj => obj.field != null && obj.field.GetCustomAttribute <HideInInspector>() == null && obj.filter.filterAttributes.Length > 0) .Select(obj => new TypeAnalysisData(obj.field, obj.filter)).ToList(); } updateCacheForAssembly = false; }
public void OnEndAnalysis(AssemblyDefinition assemblyDefinition) { if (cache == null) { cache = ProjectUtility.GetProjectAsset <SerializableMemberCache>(); } if (cache != null) { if (updateCacheForAssembly) { cache.assemblyData[assembly] = new SerializableMemberCache.AssemblyData { types = filterData.Where(fd => !fd.filteredTypes.IsEmpty()).ToDictionary(d => d.FullName, d => d.filteredTypes) }; } else { cache.assemblyData.Remove(assembly); } ProjectUtility.UpdateProjectAsset(cache); } }