package org.jetbrains.android.inspections.lint; import com.android.tools.lint.detector.api.Issue; import com.intellij.codeHighlighting.HighlightDisplayLevel; import com.intellij.codeInsight.daemon.HighlightDisplayKey; import com.intellij.codeInspection.InspectionProfile; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Pair; import com.intellij.profile.codeInspection.InspectionProjectProfileManager; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * @author Eugene.Kudelevsky */ public class AndroidLintUtil { @NonNls static final String ATTR_VALUE_VERTICAL = "vertical"; @NonNls static final String ATTR_VALUE_WRAP_CONTENT = "wrap_content"; @NonNls static final String ATTR_LAYOUT_HEIGHT = "layout_height"; @NonNls static final String ATTR_LAYOUT_WIDTH = "layout_width"; @NonNls static final String ATTR_ORIENTATION = "orientation"; private AndroidLintUtil() { } @Nullable public static Pair<AndroidLintInspectionBase, HighlightDisplayLevel> getHighlighLevelAndInspection(@NotNull Project project, @NotNull Issue issue, @NotNull PsiElement context) { final String inspectionShortName = AndroidLintInspectionBase.getInspectionShortNameByIssue(project, issue); if (inspectionShortName == null) { return null; } final HighlightDisplayKey key = HighlightDisplayKey.find(inspectionShortName); if (key == null) { return null; } final InspectionProfile profile = InspectionProjectProfileManager.getInstance(context.getProject()).getInspectionProfile(); if (!profile.isToolEnabled(key, context)) { return null; } final AndroidLintInspectionBase inspection = (AndroidLintInspectionBase)profile.getUnwrappedTool(inspectionShortName, context); if (inspection == null) return null; final HighlightDisplayLevel errorLevel = profile.getErrorLevel(key, context); return Pair.create(inspection, errorLevel != null ? errorLevel : HighlightDisplayLevel.WARNING); } }