public IPsiSourceFileProperties GetPsiProperties(
            IPsiSourceFileProperties prevProperties,
            IProject project,
            IPsiSourceFileWithLocation sourceFile
            )
        {
            var projectFile = sourceFile.ToProjectFile();

            if (projectFile == null)
            {
                return(prevProperties);
            }

            // Solution can actually be null for invalid files.
            // Access to the component has to be safe because this is a shell component,
            // while IT4TargetFileChecker is a solution component,
            // so accessing it directly can cause an exception
            // if the daemon requests properties for a file after solution has been closed

            // ReSharper disable once ConstantConditionalAccessQualifier
            var checker = sourceFile.GetSolution()?.TryGetComponent <IT4TargetFileChecker>();

            if (checker == null)
            {
                return(prevProperties);
            }
            if (checker.IsPreprocessResult(projectFile))
            {
                return(T4PreprocessResultProjectFileProperties.Instance);
            }
            return(prevProperties);
        }
 public static IStylerOptions FromSettings(
     IContextBoundSettingsStoreLive settings,
     [CanBeNull] ISolution solution,
     [CanBeNull] IProject project,
     [CanBeNull] IPsiSourceFileWithLocation psiSourceFileWithLocation)
 {
     return(FromSettings(
                settings: settings,
                solution: solution,
                projectPath: project?.ProjectFileLocation?.FullPath,
                sourceFilePath: psiSourceFileWithLocation?.Location.FullPath));
 }
Example #3
0
        public IPsiSourceFileProperties GetPsiProperties(
            IPsiSourceFileProperties prevProperties,
            IProject project,
            IPsiSourceFileWithLocation sourceFile
            )
        {
            var projectFile = sourceFile.ToProjectFile();

            if (projectFile == null)
            {
                return(prevProperties);
            }
            var checker = sourceFile.GetSolution().GetComponent <IT4TargetFileChecker>();

            if (checker.IsPreprocessResult(projectFile))
            {
                return(T4PreprocessResultProjectFileProperties.Instance);
            }
            return(prevProperties);
        }