public JetTuple <IProjectPsiModuleHandler, IPsiModuleDecorator> OverrideHandler(Lifetime lifetime, IProject project, IProjectPsiModuleHandler handler) { if (project.ProjectProperties.ProjectKind != ProjectKind.REGULAR_PROJECT || project.ProjectFileLocation.IsNullOrEmpty()) { return(null); } ExternalCodeSettingsKey settingsKey = _settingsStore .BindToContextTransient(ContextRange.ApplicationWide) .GetKey <ExternalCodeSettingsKey>(SettingsOptimization.OptimizeDefault); IEnumerable <string> paths = settingsKey .Paths .EnumIndexedValues() .Select(x => x.Value.Trim()) .Distinct(); FileSystemPath[] fileSystemPaths = paths .Select(FileSystemPath.TryParse) .Where(x => !x.IsEmpty) .Select(x => x.ToAbsolutePath(project.Location)) .ToArray(); var projectHandler = new GeneratedFilesProjectHandler( _shellLocks, _documentManager, _projectFileExtensions, _projectFileTypeCoordinator, lifetime, project, handler, _changeManager, _fileSystemTracker, f => new ExternalSourceFileProperties(project, f), project.GetResolveContext(), fileSystemPaths); return(new JetTuple <IProjectPsiModuleHandler, IPsiModuleDecorator>(projectHandler, new GeneratedFilesProjectDecorator(projectHandler))); }
public JetTuple<IProjectPsiModuleHandler, IPsiModuleDecorator> OverrideHandler(Lifetime lifetime, IProject project, IProjectPsiModuleHandler handler) { if (project.ProjectProperties.ProjectKind != ProjectKind.REGULAR_PROJECT || project.ProjectFileLocation.IsNullOrEmpty()) { return null; } ExternalCodeSettingsKey settingsKey = _settingsStore .BindToContextTransient(ContextRange.ApplicationWide) .GetKey<ExternalCodeSettingsKey>(SettingsOptimization.OptimizeDefault); IEnumerable<string> paths = settingsKey .Paths .EnumIndexedValues() .Select(x => x.Value.Trim()) .Distinct(); FileSystemPath[] fileSystemPaths = paths .Select(FileSystemPath.TryParse) .Where(x => !x.IsEmpty) .Select(x => x.ToAbsolutePath(project.Location)) .ToArray(); var projectHandler = new GeneratedFilesProjectHandler( _shellLocks, _documentManager, _projectFileExtensions, _projectFileTypeCoordinator, lifetime, project, handler, _changeManager, _fileSystemTracker, f => new ExternalSourceFileProperties(project, f), project.GetResolveContext(), fileSystemPaths); return new JetTuple<IProjectPsiModuleHandler, IPsiModuleDecorator>(projectHandler, new GeneratedFilesProjectDecorator(projectHandler)); }