Source:
<code>public AnalysisResults analyzeModule(Module module, Collection<VirtualFile> filesToAnalyze, IssueListener listener) { Project p = module.getProject(); SonarLintConsole console = SonarLintConsole.get(p); SonarLintServerManager core = SonarLintUtils.get(SonarLintServerManager.class); Map<String, String> pluginProps; <START> AnalysisConfigurator analysisConfigurator = module.getComponent(AnalysisConfigurator.class); <END> if (analysisConfigurator != null) { console.debug("Configuring analysis with " + analysisConfigurator.getClass().getName()); pluginProps = analysisConfigurator.configure(module); } else { console.debug("No analysis configurator found"); pluginProps = new HashMap<>(); } ModuleRootManager moduleRootManager = ModuleRootManager.getInstance(module); List<ClientInputFile> inputFiles = getInputFiles(p, moduleRootManager, filesToAnalyze); long start = System.currentTimeMillis(); SonarLintFacade facade = core.getFacadeForAnalysis(module.getProject()); if (facade == null) { console.info("Failed to create SonarLint engine for module '" + module.getName() + "'"); return null; } String what; if (filesToAnalyze.size() == 1) { what = "'" + filesToAnalyze.iterator().next().getName() + "'"; } else { what = Integer.toString(filesToAnalyze.size()) + " files"; } console.info("Analysing " + what + "..."); AnalysisResults result = facade.startAnalysis(inputFiles, listener, pluginProps); console.debug("Done in " + (System.currentTimeMillis() - start) + "ms\n"); return result; }</code><technical_language>configurator a time? In Eclipse configurators additives. get a list of components implementing AnalysisConfigurator</technical_language>

Target:
public AnalysisResults analyzeModule(Module module, Collection<VirtualFile> filesToAnalyze, IssueListener listener) { Project p = module.getProject(); SonarLintConsole console = SonarLintConsole.get(p); SonarLintServerManager core = SonarLintUtils.get(SonarLintServerManager.class); Map<String, String> pluginProps = new HashMap<>(); AnalysisConfigurator[] analysisConfigurators = module.getComponents(AnalysisConfigurator.class); if (analysisConfigurators != null && analysisConfigurators.length > 0) { for (AnalysisConfigurator config : analysisConfigurators) { console.debug("Configuring analysis with " + config.getClass().getName()); pluginProps.putAll(config.configure(module)); } } else { console.debug("No analysis configurator found"); } ModuleRootManager moduleRootManager = ModuleRootManager.getInstance(module); List<ClientInputFile> inputFiles = getInputFiles(p, moduleRootManager, filesToAnalyze); long start = System.currentTimeMillis(); SonarLintFacade facade = core.getFacadeForAnalysis(module.getProject()); if (facade == null) { console.info("Failed to create SonarLint engine for module '" + module.getName() + "'"); return null; } String what; if (filesToAnalyze.size() == 1) { what = "'" + filesToAnalyze.iterator().next().getName() + "'"; } else { what = Integer.toString(filesToAnalyze.size()) + " files"; } console.info("Analysing " + what + "..."); AnalysisResults result = facade.startAnalysis(inputFiles, listener, pluginProps); console.debug("Done in " + (System.currentTimeMillis() - start) + "ms\n"); return result; }