public IProjectBinder Get(Project project) { var languages = ProjectToLanguageMapper.GetAllBindingLanguagesForProject(project).ToList(); var isCSharpVBLanguage = languages.Contains(Core.Language.VBNET) || languages.Contains(Core.Language.CSharp); return(isCSharpVBLanguage ? (IProjectBinder) new CSharpVBProjectBinder(serviceProvider, fileSystem, logger) : new CFamilyProjectBinder(serviceProvider, logger, fileSystem)); }
public bool IsBindingRequired(BindingConfiguration binding, Project project) { Debug.Assert(binding != null); Debug.Assert(project != null); var languages = ProjectToLanguageMapper.GetAllBindingLanguagesForProject(project); languages = languages.Where(x => x.Equals(Language.VBNET) || x.Equals(Language.CSharp)); return(languages.Any(l => !IsFullyBoundProject(binding, project, l))); }
public bool DiscoverProjects() { var patternFilteredProjects = this.projectSystem.GetFilteredSolutionProjects(); var pluginAndPatternFilteredProjects = patternFilteredProjects.Where(p => this.host.SupportedPluginLanguages .Any(l => ProjectToLanguageMapper.GetAllBindingLanguagesForProject(p).Contains(l))); this.InternalState.BindingProjects.UnionWith(pluginAndPatternFilteredProjects); this.InformAboutFilteredOutProjects(); return(this.InternalState.BindingProjects.Any()); }
private static void CheckGetAllBindingsLanguages(string projectTypeGuid, params Language[] expectedLanguages) { // Arrange var project = new ProjectMock("any.xxx") { ProjectKind = projectTypeGuid }; // Act var actualLanguage = ProjectToLanguageMapper.GetAllBindingLanguagesForProject(project); // Assert actualLanguage.Should().BeEquivalentTo(expectedLanguages); }
public bool IsBindingRequired(BindingConfiguration binding, Project project) { Debug.Assert(binding != null); Debug.Assert(project != null); var languages = ProjectToLanguageMapper.GetAllBindingLanguagesForProject(project); languages = languages.Where(x => x.Equals(Language.C) || x.Equals(Language.Cpp)); return(languages.Any(language => { var slnLevelBindingConfigFilepath = binding.BuildPathUnderConfigDirectory(language.FileSuffixAndExtension); return !fileSystem.File.Exists(slnLevelBindingConfigFilepath); })); }
internal /* for testing */ static bool IsProjectLevelBindingRequired(Project project) { var languages = ProjectToLanguageMapper.GetAllBindingLanguagesForProject(project); return(languages.Contains(Core.Language.VBNET) || languages.Contains(Core.Language.CSharp)); }