String (@NlsContexts.Label String text, int highlightStartOffset, int highlightEndOffset, boolean isDisabled, boolean strikeout, boolean isDisabledBeforeHighlight, Color background) { List<String> split = StringUtil.split(text, ",", false); StringBuilder plainLine = new StringBuilder(); final List<Integer> startOffsets = new ArrayList<>(); final List<Integer> endOffsets = new ArrayList<>(); TextRange highlightRange = highlightStartOffset >=0 && highlightEndOffset >= highlightStartOffset ? new TextRange(highlightStartOffset, highlightEndOffset) : null; for (int j = 0; j < split.size(); j++) { String line = split.get(j); int startOffset = plainLine.length(); startOffsets.add(startOffset); plainLine.append(line); int endOffset = plainLine.length(); endOffsets.add(endOffset); if (highlightRange != null && highlightRange.intersects(new TextRange(startOffset, endOffset))) { result.current = j; } } ParameterInfoControllerBase.SignatureItem item = new ParameterInfoControllerBase.SignatureItem(plainLine.toString(), strikeout, isDisabled, startOffsets, endOffsets); result.signatures.add(item); final String resultedText = myPanels[i].setup(text, myEscapeFunction, highlightStartOffset, highlightEndOffset, isDisabled, strikeout, isDisabledBeforeHighlight, background); if (!mySimpleDesignMode) { myPanels[i].setBorder(isLastParameterOwner() || isSingleParameterInfo() ? EMPTY_BORDER : BOTTOM_BORDER); } return resultedText; }