boolean (@NotNull Tools tools, final InspectionConfigTreeNode node) { if (myShowOnlyCleanupInspections && !tools.getTool().isCleanupTool()) { return false; } if (mySuitableInspectionsStates != null && mySuitableInspectionsStates != tools.isEnabled()) { return false; } if (myAvailableOnlyForAnalyze && !isAvailableOnlyForAnalyze(tools)) { return false; } if (!mySuitableSeverities.isEmpty()) { boolean suitable = false; for (final ScopeToolState state : tools.getTools()) { if (mySuitableInspectionsStates != null && mySuitableInspectionsStates != state.isEnabled()) { continue; } if (mySuitableSeverities.contains(tools.getDefaultState().getLevel().getSeverity())) { suitable = true; break; } } if (!suitable) { return false; } } if (!mySuitableLanguages.isEmpty()) { String languageId = tools.getDefaultState().getTool().getLanguage(); if (languageId != null) { Language language = Language.findLanguageByID(languageId); if (language instanceof MetaLanguage) { if (!ContainerUtil.exists(((MetaLanguage)language).getMatchingLanguages(), mySuitableLanguages::contains)) return false; } else { if (!mySuitableLanguages.contains(language)) return false; } } else if (!mySuitableLanguages.contains(null)) { return false; } } return !myShowOnlyModifiedInspections || node.isProperSetting(); }