use of com.android.tools.lint.checks.BuiltinIssueRegistry 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());
}
}
}
}
}
}
use of com.android.tools.lint.checks.BuiltinIssueRegistry in project android by JetBrains.
the class LintInspectionDescriptionLinkHandler method getDescription.
@Override
public String getDescription(@NotNull final String refSuffix, @NotNull final Editor editor) {
final Project project = editor.getProject();
if (project == null) {
LOG.error(editor);
return null;
}
final PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument());
if (file == null) {
return null;
}
Issue issue = new BuiltinIssueRegistry().getIssue(refSuffix);
if (issue != null) {
String html = issue.getExplanation(TextFormat.HTML);
// IntelliJ seems to treat newlines in the HTML as needing to also be converted to <br> (whereas
// Lint includes these for HTML readability but they shouldn't add additional lines since it has
// already added <br> as well) so strip these out
html = html.replace("\n", "");
return html;
}
// TODO: What about custom registries for custom rules, AARs etc?
LOG.warn("No description for inspection '" + refSuffix + "'");
return InspectionsBundle.message("inspection.tool.description.under.construction.text");
}
use of com.android.tools.lint.checks.BuiltinIssueRegistry in project android by JetBrains.
the class IssueIdConverter method getIdSet.
@NotNull
public static ImmutableMap<String, Issue> getIdSet() {
if (ourIssues == null) {
final ImmutableMap.Builder<String, Issue> builder = ImmutableMap.builder();
for (Issue issue : new BuiltinIssueRegistry().getIssues()) {
builder.put(issue.getId(), issue);
}
ourIssues = builder.build();
}
return ourIssues;
}
Aggregations