public T4FilePsiModule()

in Backend/Core/ForTea.Core/Psi/Modules/T4FilePsiModule.cs [64:108]


    public T4FilePsiModule(
      Lifetime lifetime,
      [NotNull] IProjectFile projectFile,
      [NotNull] ChangeManager changeManager,
      [NotNull] IShellLocks shellLocks,
      [NotNull] IT4Environment t4Environment,
      [CanBeNull] TargetFrameworkId primaryTargetFrameworkId
    )
    {
      Lifetime = lifetime;
      lifetime.AddDispose(this);
      ProjectFile = projectFile;
      Solution = ProjectFile.GetSolution();
      PsiModules = Solution.GetComponent<IPsiModules>();
      PsiServices = Solution.GetComponent<IPsiServices>();
      ChangeManager = changeManager;
      ShellLocks = shellLocks;
      ChangeProvider = new T4WriteOnlyChangeProvider();

      changeManager.ExecuteAfterChange(() =>
      {
        changeManager.RegisterChangeProvider(lifetime, ChangeProvider);
        changeManager.AddDependency(lifetime, PsiModules, source: ChangeProvider);
      });

      TargetFrameworkId = t4Environment.SelectTargetFrameworkId(primaryTargetFrameworkId, projectFile);
      Project = ProjectFile.GetProject().NotNull();
      var resolveContext = Project.IsMiscFilesProject()
        ? UniversalModuleReferenceContext.Instance
        : this.GetResolveContextEx(ProjectFile);
      Assertion.Assert(resolveContext.TargetFramework == TargetFrameworkId, "Failed to select TargetFrameworkId");
      var documentManager = Solution.GetComponent<DocumentManager>();
      SourceFile = CreateSourceFile(ProjectFile, documentManager, resolveContext);
      AssemblyReferenceManager = new T4AssemblyReferenceManager(
        Solution.GetComponent<IAssemblyFactory>(),
        SourceFile,
        ProjectFile,
        resolveContext,
        shellLocks
      );

      Solution.GetComponent<T4DeclaredAssembliesManager>().FileDataChanged.Advise(lifetime, OnFileDataChanged);
      PersistentId = BuildPersistentId(primaryTargetFrameworkId);
      OriginalTargetFrameworkId = primaryTargetFrameworkId;
    }