private void RegisterExtensionPoints() { var extensionPointsRepository = ExtensionPointsRepository.Instance; // JZ: SrcMLService Integration extensionPointsRepository.RegisterParserImplementation(new List <string> { ".cs" }, new SrcMLCSharpParser()); extensionPointsRepository.RegisterParserImplementation(new List <string> { ".h", ".cpp", ".cxx", ".c" }, new SrcMLCppParser(srcMLService)); ////extensionPointsRepository.RegisterParserImplementation(new List<string> { ".cs" }, new SrcMLCSharpParser(_srcMLArchive)); ////extensionPointsRepository.RegisterParserImplementation(new List<string> { ".h", ".cpp", ".cxx", ".c" }, new SrcMLCppParser(_srcMLArchive)); // JZ: End of code changes extensionPointsRepository.RegisterParserImplementation(new List <string> { ".xaml" }, new XAMLFileParser()); //extensionPointsRepository.RegisterParserImplementation(new List<string> { ".txt" }, // new TextFileParser()); extensionPointsRepository.RegisterWordSplitterImplementation(new WordSplitter()); extensionPointsRepository.RegisterResultsReordererImplementation(new SortByScoreResultsReorderer()); extensionPointsRepository.RegisterQueryWeightsSupplierImplementation(new QueryWeightsSupplier()); extensionPointsRepository.RegisterQueryRewriterImplementation(new DefaultQueryRewriter()); extensionPointsRepository.RegisterIndexFilterManagerImplementation(new IndexFilterManager()); var sandoOptions = ServiceLocator.Resolve <ISandoOptionsProvider>().GetSandoOptions(); var loggerPath = Path.Combine(sandoOptions.ExtensionPointsPluginDirectoryPath, "ExtensionPointsLogger.log"); var logger = FileLogger.CreateFileLogger("ExtensionPointsLogger", loggerPath); _extensionPointsConfiguration = ExtensionPointsConfigurationFileReader.ReadAndValidate(logger); if (_extensionPointsConfiguration != null) { _extensionPointsConfiguration.PluginDirectoryPath = sandoOptions.ExtensionPointsPluginDirectoryPath; ExtensionPointsConfigurationAnalyzer.FindAndRegisterValidExtensionPoints(_extensionPointsConfiguration, logger); } var csParser = extensionPointsRepository.GetParserImplementation(".cs") as SrcMLCSharpParser; // JZ: SrcMLService Integration ////if(csParser != null) { //// csParser.Archive = _srcMLArchive; ////} // End of code changes var cppParser = extensionPointsRepository.GetParserImplementation(".cpp") as SrcMLCppParser; // JZ: SrcMLService Integration ////if(cppParser != null) { //// cppParser.Archive = _srcMLArchive; ////} // End of code changes }
private void CreateExtensionPointsConfiguration( bool addValidParserConfigurations = false, bool addInvalidParserConfigurations = false, bool addValidWordSplitterConfiguration = false, bool addInvalidWordSplitterConfiguration = false, bool addValidResultsReordererConfiguration = false, bool addInvalidResultsReordererConfiguration = false, bool addValidQueryWeightsSupplierConfiguration = false, bool addInvalidQueryWeightsSupplierConfiguration = false, bool addValidQueryRewriterConfiguration = false, bool addInvalidQueryRewriterConfiguration = false, bool addValidIndexFilterManagerConfiguration = false, bool addInvalidIndexFilterManagerConfiguration = false, bool addInvalidExtensionPoints = false) { extensionPointsConfiguration = new ExtensionPointsConfiguration(); extensionPointsConfiguration.PluginDirectoryPath = pluginDirectory; extensionPointsConfiguration.ParsersConfiguration = new List <ParserExtensionPointsConfiguration>(); if (addValidParserConfigurations) { extensionPointsConfiguration.ParsersConfiguration.AddRange( new List <ParserExtensionPointsConfiguration>() { new ParserExtensionPointsConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestCSharpParser", LibraryFileRelativePath = "TestExtensionPoints.dll", SupportedFileExtensions = new List <string>() { ".cs" }, ProgramElementsConfiguration = new List <BaseExtensionPointConfiguration>() { new BaseExtensionPointConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestElement", LibraryFileRelativePath = "TestExtensionPoints.dll" } } }, new ParserExtensionPointsConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestCppParser", LibraryFileRelativePath = "TestExtensionPoints.dll", SupportedFileExtensions = new List <string>() { ".h", ".cpp", ".cxx" } } }); } if (addInvalidParserConfigurations) { extensionPointsConfiguration.ParsersConfiguration.AddRange( new List <ParserExtensionPointsConfiguration>() { new ParserExtensionPointsConfiguration() { FullClassName = "", LibraryFileRelativePath = "TestExtensionPoints.dll", SupportedFileExtensions = new List <string>() { ".cs" } }, new ParserExtensionPointsConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestCppParser", LibraryFileRelativePath = "", SupportedFileExtensions = new List <string>() { ".h", ".cpp", ".cxx" } }, new ParserExtensionPointsConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestCppParser", LibraryFileRelativePath = "TestExtensionPoints.dll", SupportedFileExtensions = new List <string>() { ".cs" }, ProgramElementsConfiguration = new List <BaseExtensionPointConfiguration>() { new BaseExtensionPointConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestElement", LibraryFileRelativePath = "" } } } }); } if (addValidWordSplitterConfiguration) { extensionPointsConfiguration.WordSplitterConfiguration = new BaseExtensionPointConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestWordSplitter", LibraryFileRelativePath = "TestExtensionPoints.dll" }; } if (addInvalidWordSplitterConfiguration) { extensionPointsConfiguration.WordSplitterConfiguration = new BaseExtensionPointConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestWordSplitter", LibraryFileRelativePath = "" }; } if (addValidResultsReordererConfiguration) { extensionPointsConfiguration.ResultsReordererConfiguration = new BaseExtensionPointConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestResultsReorderer", LibraryFileRelativePath = "TestExtensionPoints.dll" }; } if (addInvalidResultsReordererConfiguration) { extensionPointsConfiguration.ResultsReordererConfiguration = new BaseExtensionPointConfiguration() { FullClassName = "", LibraryFileRelativePath = "TestExtensionPoints.dll" }; } if (addValidQueryWeightsSupplierConfiguration) { extensionPointsConfiguration.QueryWeightsSupplierConfiguration = new BaseExtensionPointConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestQueryWeightsSupplier", LibraryFileRelativePath = "TestExtensionPoints.dll" }; } if (addInvalidQueryWeightsSupplierConfiguration) { extensionPointsConfiguration.QueryWeightsSupplierConfiguration = new BaseExtensionPointConfiguration() { FullClassName = "", LibraryFileRelativePath = "TestExtensionPoints.dll" }; } if (addValidQueryRewriterConfiguration) { extensionPointsConfiguration.QueryRewriterConfiguration = new BaseExtensionPointConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestQueryRewriter", LibraryFileRelativePath = "TestExtensionPoints.dll" }; } if (addInvalidQueryRewriterConfiguration) { extensionPointsConfiguration.QueryRewriterConfiguration = new BaseExtensionPointConfiguration() { FullClassName = "", LibraryFileRelativePath = "TestExtensionPoints.dll" }; } if (addValidIndexFilterManagerConfiguration) { extensionPointsConfiguration.IndexFilterManagerConfiguration = new BaseExtensionPointConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestIndexFilterManager", LibraryFileRelativePath = "TestExtensionPoints.dll" }; } if (addInvalidIndexFilterManagerConfiguration) { extensionPointsConfiguration.IndexFilterManagerConfiguration = new BaseExtensionPointConfiguration() { FullClassName = "", LibraryFileRelativePath = "TestExtensionPoints.dll" }; } if (addInvalidExtensionPoints) { extensionPointsConfiguration.ParsersConfiguration.AddRange( new List <ParserExtensionPointsConfiguration>() { new ParserExtensionPointsConfiguration() { FullClassName = "Sando.NonExistingParser", LibraryFileRelativePath = "TestExtensionPoints.dll", SupportedFileExtensions = new List <string>() { ".cs" } }, new ParserExtensionPointsConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestCppParser", LibraryFileRelativePath = "NonExistingParser.dll", SupportedFileExtensions = new List <string>() { ".h", ".cpp", ".cxx" } }, new ParserExtensionPointsConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestCppParser", LibraryFileRelativePath = "TestExtensionPoints.dll", SupportedFileExtensions = new List <string>() { ".cs" }, ProgramElementsConfiguration = new List <BaseExtensionPointConfiguration>() { new BaseExtensionPointConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestElement", LibraryFileRelativePath = "NonExistingTestElement.dll" } } } }); extensionPointsConfiguration.WordSplitterConfiguration = new BaseExtensionPointConfiguration() { FullClassName = "Sando.TestExtensionPoints.TestWordSplitter", LibraryFileRelativePath = "NonExistingWordSplitter.dll" }; extensionPointsConfiguration.ResultsReordererConfiguration = new BaseExtensionPointConfiguration() { FullClassName = "Sando.TestExtensionPoints.NonExistingResultsReorderer", LibraryFileRelativePath = "TestExtensionPoints.dll" }; extensionPointsConfiguration.QueryWeightsSupplierConfiguration = new BaseExtensionPointConfiguration() { FullClassName = "Sando.TestExtensionPoints.NonExistingQueryWeightsSupplier", LibraryFileRelativePath = "TestExtensionPoints.dll" }; extensionPointsConfiguration.QueryRewriterConfiguration = new BaseExtensionPointConfiguration() { FullClassName = "Sando.TestExtensionPoints.NonExistingQueryRewriter", LibraryFileRelativePath = "TestExtensionPoints.dll" }; extensionPointsConfiguration.IndexFilterManagerConfiguration = new BaseExtensionPointConfiguration() { FullClassName = "Sando.TestExtensionPoints.NonExistingIndexFilterManager", LibraryFileRelativePath = "TestExtensionPoints.dll" }; } }