in resharper/resharper-unity/src/Unity/Core/Psi/Modules/UnityExternalFilesModuleProcessor.cs [561:616]
private void UpdateStatistics(ExternalFiles externalFiles)
{
var usageStatistics = myUsageStatistics.Value;
foreach (var externalFile in externalFiles.AssetFiles)
{
UnityAssetInfoCollector.FileType? fileType = null;
if (externalFile.Path.IsAsset())
fileType = UnityAssetInfoCollector.FileType.Asset;
else if (externalFile.Path.IsPrefab())
fileType = UnityAssetInfoCollector.FileType.Prefab;
else if (externalFile.Path.IsScene())
fileType = UnityAssetInfoCollector.FileType.Scene;
else if (externalFile.Path.IsAnim())
fileType = UnityAssetInfoCollector.FileType.Anim;
else if (externalFile.Path.IsController())
fileType = UnityAssetInfoCollector.FileType.Controller;
if (fileType.HasValue)
{
usageStatistics.AddStatistic(fileType.Value, externalFile.FileSystemData.FileLength,
externalFile.IsUserEditable);
}
}
foreach (var externalFile in externalFiles.MetaFiles)
{
usageStatistics.AddStatistic(UnityAssetInfoCollector.FileType.Meta,
externalFile.FileSystemData.FileLength, externalFile.IsUserEditable);
}
foreach (var externalFile in externalFiles.IndexableFiles)
{
UnityAssetInfoCollector.FileType fileType;
if (ReferenceEquals(externalFile.ProjectFileType, AsmDefProjectFileType.Instance))
fileType = UnityAssetInfoCollector.FileType.AsmDef;
else if (ReferenceEquals(externalFile.ProjectFileType, AsmRefProjectFileType.Instance))
fileType = UnityAssetInfoCollector.FileType.AsmRef;
else if (ReferenceEquals(externalFile.ProjectFileType, InputActionsProjectFileType.Instance))
fileType = UnityAssetInfoCollector.FileType.InputActions;
else
continue;
usageStatistics.AddStatistic(fileType, externalFile.FileSystemData.FileLength, externalFile.IsUserEditable);
}
foreach (var externalFile in externalFiles.KnownBinaryAssetFiles)
{
usageStatistics.AddStatistic(UnityAssetInfoCollector.FileType.KnownBinary,
externalFile.FileSystemData.FileLength, externalFile.IsUserEditable);
}
foreach (var externalFile in externalFiles.ExcludedByNameAssetFiles)
{
usageStatistics.AddStatistic(UnityAssetInfoCollector.FileType.ExcludedByName,
externalFile.FileSystemData.FileLength, externalFile.IsUserEditable);
}
}