InspectionProfileImpl (@NotNull Element rootElement, @NotNull BaseInspectionProfileManager profileManager, @NotNull Project project) { if (Comparing.strEqual(rootElement.getName(), "component")) { //NON-NLS //import right from .idea/inspectProfiles/xxx.xml rootElement = rootElement.getChildren().get(0); } String profileName = getProfileName(rootElement); if (profileName == null) return null; InspectionProfileImpl profile = new InspectionProfileImpl(profileName, InspectionToolRegistrar.getInstance(), profileManager); final Set<String> levels = new HashSet<>(); for (Element inspectElement : rootElement.getChildren("inspection_tool")) { ContainerUtil.addAllNotNull(levels, inspectElement.getAttributeValue("level")); for (Element s : inspectElement.getChildren("scope")) { ContainerUtil.addAllNotNull(levels, s.getAttributeValue("level")); } } levels.removeIf(level -> profileManager.getSeverityRegistrar().getSeverity(level) != null); if (!levels.isEmpty()) { if (!ApplicationManager.getApplication().isUnitTestMode()) { if (Messages.showYesNoDialog(project, AnalysisBundle .message("inspections.settings.undefined.severities.detected.dialog.message", StringUtil.join(levels, ", ")), CommonBundle.message("title.warning"), Messages.getWarningIcon()) == Messages.YES) { for (String level : levels) { final TextAttributes textAttributes = CodeInsightColors.WARNINGS_ATTRIBUTES.getDefaultAttributes(); HighlightInfoType.HighlightInfoTypeImpl info = new HighlightInfoType.HighlightInfoTypeImpl(new HighlightSeverity(level, 50), TextAttributesKey .createTextAttributesKey(level)); profileManager.getSeverityRegistrar() .registerSeverity(new SeverityRegistrar.SeverityBasedTextAttributes(textAttributes.clone(), info), textAttributes.getErrorStripeColor()); } } } else { throw new AssertionError("All of levels must exist in unit-test mode, but actual not exist levels = " + levels); } } profile.readExternal(rootElement); profile.setProjectLevel(false); profile.initInspectionTools(project); return profile; }