コード例 #1
0
        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));
        }
コード例 #2
0
        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)));
        }
コード例 #3
0
        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());
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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));
        }