HighlightInfoType (@NotNull ProblemHighlightType highlightType, @NotNull HighlightSeverity severity, @NotNull SeverityRegistrar severityRegistrar) { return switch (highlightType) { case GENERIC_ERROR_OR_WARNING -> severityRegistrar.getHighlightInfoTypeBySeverity(severity); case LIKE_DEPRECATED -> new HighlightInfoType.HighlightInfoTypeImpl(severity, HighlightInfoType.DEPRECATED.getAttributesKey()); case LIKE_MARKED_FOR_REMOVAL -> new HighlightInfoType.HighlightInfoTypeImpl(severity, HighlightInfoType.MARKED_FOR_REMOVAL.getAttributesKey()); case LIKE_UNKNOWN_SYMBOL -> { if (severity == HighlightSeverity.ERROR) { yield new HighlightInfoType.HighlightInfoTypeImpl(severity, HighlightInfoType.WRONG_REF.getAttributesKey()); } if (severity == HighlightSeverity.WARNING) { yield new HighlightInfoType.HighlightInfoTypeImpl(severity, CodeInsightColors.WEAK_WARNING_ATTRIBUTES); } yield severityRegistrar.getHighlightInfoTypeBySeverity(severity); } case LIKE_UNUSED_SYMBOL -> new HighlightInfoType.HighlightInfoTypeImpl(severity, HighlightInfoType.UNUSED_SYMBOL.getAttributesKey()); case INFO -> HighlightInfoType.INFO; case WEAK_WARNING -> HighlightInfoType.WEAK_WARNING; case WARNING -> HighlightInfoType.WARNING; case ERROR -> HighlightInfoType.WRONG_REF; case GENERIC_ERROR -> HighlightInfoType.ERROR; case INFORMATION -> HighlightInfoType.INFORMATION; case POSSIBLE_PROBLEM -> HighlightInfoType.POSSIBLE_PROBLEM; }; }