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); }
public override bool TryResolveConfiguration(ProjectConfigurationProviderContext context, out ProjectConfiguration configuration) { throw new NotImplementedException(); }
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); }
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); }