public override bool TryResolveConfiguration(ProjectConfigurationProviderContext context, out ProjectConfiguration configuration)
        {
            if (!HasRazorCoreCapability(context))
            {
                configuration = null;
                return(false);
            }

            var    compilationReferences = context.ProjectInstance.GetItems(ReferencePathWithRefAssembliesItemType);
            string mvcReferenceFullPath  = null;

            foreach (var compilationReference in compilationReferences)
            {
                var assemblyFullPath = compilationReference.EvaluatedInclude;
                if (assemblyFullPath.EndsWith(MvcAssemblyFileName, FilePathComparison.Instance))
                {
                    var potentialPathSeparator = assemblyFullPath[assemblyFullPath.Length - MvcAssemblyFileName.Length - 1];
                    if (potentialPathSeparator == '/' || potentialPathSeparator == '\\')
                    {
                        mvcReferenceFullPath = assemblyFullPath;
                        break;
                    }
                }
            }

            if (mvcReferenceFullPath == null)
            {
                configuration = null;
                return(false);
            }

            var version = GetAssemblyVersion(mvcReferenceFullPath);

            if (version == null)
            {
                configuration = null;
                return(false);
            }

            var razorConfiguration = FallbackRazorConfiguration.SelectConfiguration(version);

            configuration = new ProjectConfiguration(razorConfiguration, Array.Empty <OmniSharpHostDocument>(), rootNamespace: null);
            return(true);
        }
Beispiel #2
0
 public override bool TryResolveConfiguration(ProjectConfigurationProviderContext context, out ProjectConfiguration configuration)
 {
     throw new NotImplementedException();
 }
Beispiel #3
0
        public override bool TryResolveConfiguration(ProjectConfigurationProviderContext context, out ProjectConfiguration configuration)
        {
            if (!HasRazorCoreCapability(context))
            {
                configuration = null;
                return(false);
            }

            if (!HasRazorCoreConfigurationCapability(context))
            {
                // Razor project is < 2.1, we don't handle that.
                configuration = null;
                return(false);
            }

            var projectInstance = context.ProjectInstance;

            if (!TryGetConfiguration(projectInstance, out configuration))
            {
                configuration = null;
                return(false);
            }

            return(true);
        }
Beispiel #4
0
        public override bool TryResolveConfiguration(ProjectConfigurationProviderContext context, out ProjectConfiguration configuration)
        {
            if (HasRazorCoreCapability(context))
            {
                configuration = null;
                return(false);
            }

            var compilationReferences = context.ProjectInstance.GetItems(ReferencePathWithRefAssembliesItemType);

            foreach (var compilationReference in compilationReferences)
            {
                var assemblyFullPath = compilationReference.EvaluatedInclude;
                if (assemblyFullPath.EndsWith(SystemWebRazorAssemblyFileName, FilePathComparison.Instance))
                {
                    var potentialPathSeparator = assemblyFullPath[assemblyFullPath.Length - SystemWebRazorAssemblyFileName.Length - 1];
                    if (potentialPathSeparator == '/' || potentialPathSeparator == '\\')
                    {
                        configuration = new ProjectConfiguration(UnsupportedRazorConfiguration.Instance, Array.Empty <OmniSharpHostDocument>(), rootNamespace: null);
                        return(true);
                    }
                }
            }

            configuration = null;
            return(false);
        }