/** * Populate properties with everything required for the SonarLint analysis in issues mode. * * @param monitor * @param properties * @return */ public Properties configureAnalysis( final IProgressMonitor monitor, List<SonarLintProperty> extraProps) { Properties properties = new Properties(); IProject project = request.getProject(); final File baseDir = project.getLocation().toFile(); IPath projectSpecificWorkDir = project.getWorkingLocation(SonarLintCorePlugin.PLUGIN_ID); // Preview mode by default properties.setProperty( SonarLintProperties.ANALYSIS_MODE, SonarLintProperties.ANALYSIS_MODE_ISSUES); // Configuration by configurators (common and language specific) configure(project, this.request.getOnlyOnFiles(), properties, monitor); // Append workspace and project properties for (SonarLintProperty sonarProperty : extraProps) { properties.put(sonarProperty.getName(), sonarProperty.getValue()); } if (this.request.getOnlyOnFiles() != null) { Collection<String> paths = new ArrayList<>(this.request.getOnlyOnFiles().size()); for (IFile file : this.request.getOnlyOnFiles()) { MarkerUtils.deleteIssuesMarkers(file); paths.add(file.getProjectRelativePath().toString()); } ProjectConfigurator.setPropertyList(properties, "sonar.tests", paths); ProjectConfigurator.setPropertyList(properties, "sonar.sources", paths); } else { MarkerUtils.deleteIssuesMarkers(project); } properties.setProperty(SonarLintProperties.PROJECT_BASEDIR, baseDir.toString()); properties.setProperty(SonarLintProperties.WORK_DIR, projectSpecificWorkDir.toString()); return properties; }
/** * Returns the directory that should store completions. * * @param p * @return */ private File getCompletionsCacheDir(IProject p) { IPath path = p.getWorkingLocation(PydevPlugin.getPluginID()); if (path == null) { // this can happen if the project was removed. return null; } File file = new File(path.toOSString()); return file; }
private static File propertyFile(IProject project) { return new File( project.getWorkingLocation(Activator.getPluginId()).toFile(), "GitProjectData.properties"); //$NON-NLS-1$ }