use of com.android.tools.idea.lint.LintIdeIssueRegistry in project android by JetBrains.
the class UnusedResourcesProcessor method computeUnusedMap.
@NotNull
private Map<Issue, Map<File, List<ProblemData>>> computeUnusedMap() {
Map<Issue, Map<File, List<ProblemData>>> map = Maps.newHashMap();
List<Issue> issues = Lists.newArrayListWithExpectedSize(2);
issues.add(UnusedResourceDetector.ISSUE);
if (myIncludeIds) {
issues.add(UnusedResourceDetector.ISSUE_IDS);
}
AnalysisScope scope = new AnalysisScope(myProject);
boolean unusedWasEnabled = UnusedResourceDetector.ISSUE.isEnabledByDefault();
boolean unusedIdsWasEnabled = UnusedResourceDetector.ISSUE_IDS.isEnabledByDefault();
UnusedResourceDetector.ISSUE.setEnabledByDefault(true);
UnusedResourceDetector.ISSUE_IDS.setEnabledByDefault(myIncludeIds);
try {
LintIdeClient client = LintIdeClient.forBatch(myProject, map, scope, issues);
LintRequest request = new LintIdeRequest(client, myProject, null, Arrays.asList(myModules), false);
request.setScope(Scope.ALL);
LintDriver lint = new LintDriver(new LintIdeIssueRegistry(), client);
lint.analyze(request);
} finally {
UnusedResourceDetector.ISSUE.setEnabledByDefault(unusedWasEnabled);
UnusedResourceDetector.ISSUE_IDS.setEnabledByDefault(unusedIdsWasEnabled);
}
return map;
}
use of com.android.tools.idea.lint.LintIdeIssueRegistry in project android by JetBrains.
the class TemplateTest method assertLintsCleanly.
private static void assertLintsCleanly(@NotNull Project project, @NotNull Severity maxSeverity, @NotNull Set<Issue> ignored) throws Exception {
BuiltinIssueRegistry registry = new LintIdeIssueRegistry();
Map<Issue, Map<File, List<ProblemData>>> map = new HashMap<>();
LintIdeClient client = LintIdeClient.forBatch(project, map, new AnalysisScope(project), registry.getIssues());
LintDriver driver = new LintDriver(registry, client);
List<Module> modules = Arrays.asList(ModuleManager.getInstance(project).getModules());
LintRequest request = new LintIdeRequest(client, project, null, modules, false);
EnumSet<Scope> scope = EnumSet.allOf(Scope.class);
scope.remove(Scope.CLASS_FILE);
scope.remove(Scope.ALL_CLASS_FILES);
scope.remove(Scope.JAVA_LIBRARIES);
request.setScope(scope);
driver.analyze(request);
if (!map.isEmpty()) {
for (Map<File, List<ProblemData>> fileListMap : map.values()) {
for (Map.Entry<File, List<ProblemData>> entry : fileListMap.entrySet()) {
File file = entry.getKey();
List<ProblemData> problems = entry.getValue();
for (ProblemData problem : problems) {
Issue issue = problem.getIssue();
if (ignored.contains(issue)) {
continue;
}
if (issue.getDefaultSeverity().compareTo(maxSeverity) < 0) {
fail("Found lint issue " + issue.getId() + " with severity " + issue.getDefaultSeverity() + " in " + file + " at " + problem.getTextRange() + ": " + problem.getMessage());
}
}
}
}
}
}
Aggregations