in Source/RiderSourceCodeAccess/Private/RiderPathLocator/Common/RiderPathLocator.cpp [167:189]
TArray<FInstallInfo> FRiderPathLocator::GetInstallInfosFromResourceFile()
{
const TSharedPtr<IPlugin> Plugin = IPluginManager::Get().FindPlugin(TEXT("RiderSourceCodeAccess"));
if(!Plugin.IsValid()) return {};
const FString RiderLocationsFile = FPaths::Combine(Plugin->GetBaseDir(), TEXT("Resources"), TEXT("RiderLocations.txt"));
TArray<FString> RiderLocations;
if(FFileHelper::LoadFileToStringArray(RiderLocations, *RiderLocationsFile) == false) return {};
TArray<FInstallInfo> RiderInstallInfos;
for(const auto& RiderLocation : RiderLocations)
{
const FString Location = RiderLocation.TrimStartAndEnd();
if(Location.StartsWith("#")) continue;
TOptional<FInstallInfo> InstallInfo = GetInstallInfoFromRiderPath(Location, FInstallInfo::EInstallType::Custom);
if(InstallInfo.IsSet())
{
RiderInstallInfos.Add(InstallInfo.GetValue());
}
}
return RiderInstallInfos;
}