void (EditorEx editor) { editor.putUserData(DebuggerCopyPastePreprocessor.REMOVE_NEWLINES_ON_PASTE, true); RemoteTransferUIManager.forbidBeControlizationInLux(editor, "debugger"); // TODO(GTW-6142): Remove after RDCT-543 is done prepareEditor(editor); if (showMultiline) { setExpandable(editor); } foldNewLines(editor); editor.getFilteredDocumentMarkupModel().addMarkupModelListener(((EditorImpl)editor).getDisposable(), new MarkupModelListener() { private final AtomicInteger errors = new AtomicInteger(); @Override public void afterAdded(@NotNull RangeHighlighterEx highlighter) { processHighlighter(highlighter, true); } @Override public void afterRemoved(@NotNull RangeHighlighterEx highlighter) { processHighlighter(highlighter, false); } void processHighlighter(@NotNull RangeHighlighterEx highlighter, boolean add) { HighlightInfo info = HighlightInfo.fromRangeHighlighter(highlighter); if (info != null && HighlightSeverity.ERROR.equals(info.getSeverity())) { int value = errors.addAndGet(add ? 1 : -1); if (value == 0 || value == 1) { EdtInvocationManager.invokeLaterIfNeeded(() -> { if (UIUtil.isShowing(myComboBox)) { myComboBox.putClientProperty("JComponent.outline", value > 0 ? "error" : null); myComboBox.repaint(); } }); } } } }); }