public IEnumerable <IPsiModuleReference> GetReferences(IModuleReferenceResolveContext _) { var references = new PsiModuleReferenceAccumulator(TargetFrameworkId); var moduleReferences = AssemblyReferenceManager .AssemblyReferences .Concat(AssemblyReferenceManager.ProjectReferences) .SelectNotNull(assembly => PsiModules.GetPrimaryPsiModule(assembly, TargetFrameworkId)) .Select(it => new PsiModuleReference(it)); references.AddRange(moduleReferences); return(references.GetReferences()); }
private void InvalidateReferencingModules(IPsiModule psiModule) { using (CompilationContextCookie.GetOrCreate(psiModule.GetContextFromModule())) { var resolveContext = CompilationContextCookie.GetContext(); foreach (var psiModuleReference in PsiModules.GetReverseModuleReferences(psiModule, resolveContext)) { if (myPsiModules.TryGetValue(psiModuleReference.Module, out var moduleSymbols)) { moduleSymbols.Invalidate(); } } } }
public IEnumerable <IProject> GetProjectDependencies(IT4File file) { file.AssertContainsNoIncludeContext(); var sourceFile = file.LogicalPsiSourceFile.NotNull(); var projectFile = sourceFile.ToProjectFile().NotNull(); var psiModule = sourceFile.PsiModule; var resolveContext = projectFile.SelectResolveContext(); using (CompilationContextCookie.GetOrCreate(resolveContext)) { return(PsiModules .GetModuleReferences(psiModule) .Select(it => it.Module) .OfType <IProjectPsiModule>() .Select(it => it.Project) .AsList()); } }
private void InvalidateReferencingModules(IPsiModule psiModule) { if (PsiModulesCaches.IsEmpty()) { return; } // todo: reuse FcsProjectProvider references using (CompilationContextCookie.GetOrCreate(psiModule.GetContextFromModule())) { var resolveContext = CompilationContextCookie.GetContext(); foreach (var psiModuleReference in PsiModules.GetReverseModuleReferences(psiModule, resolveContext)) { if (PsiModulesCaches.TryGetValue(psiModuleReference.Module, out var moduleSymbols)) { moduleSymbols.Invalidate(); } } } }
public InjectedHlslInitialFilesProvider(PsiModules psiModules) { myPsiModules = psiModules; }
public ShaderlabCppInitialFilesProvider(PsiModules psiModules) { myPsiModules = psiModules; }