Backend/ReSharperPlugin/ForTea.ReSharperPlugin/Psi/Resolve/Assemblies/Impl/T4LightWeightAssemblyReferenceResolver.cs (23 lines of code) (raw):
using GammaJul.ForTea.Core.Psi.Resolve.Assemblies.Impl;
using GammaJul.ForTea.Core.Psi.Resolve.Macros.Impl;
using JetBrains.Annotations;
using JetBrains.Application.Parts;
using JetBrains.ProjectModel;
using JetBrains.Util;
namespace JetBrains.ForTea.ReSharperPlugin.Psi.Resolve.Assemblies.Impl
{
[SolutionComponent(Instantiation.DemandAnyThreadSafe)]
public sealed class T4LightWeightAssemblyReferenceResolver : T4BasicLightWeightAssemblyReferenceResolver
{
[NotNull] private T4LightWeightAssemblyResolutionCache Cache { get; }
public T4LightWeightAssemblyReferenceResolver([NotNull] T4LightWeightAssemblyResolutionCache cache) =>
Cache = cache;
public override VirtualFileSystemPath TryResolve(T4ResolvedPath path)
{
VirtualFileSystemPath result = null;
var resolutionData = Cache.TryGetValue(path.SourceFile);
resolutionData?.ResolvedAssemblies.TryGetValue(path.ResolvedPath, out result);
return result;
}
}
}