void (@NotNull PresentationData data) { ApplicationManager.getApplication().runReadAction(() -> { if (!validate()) { return; } final PsiElement value = extractPsiFromValue(); LOG.assertTrue(value.isValid()); int flags = getIconableFlags(); Icon icon = null; boolean deprecated = false; try { icon = value.getIcon(flags); } catch (IndexNotReadyException ignored) { } try { deprecated = isDeprecated(); } catch (IndexNotReadyException ignored) { } final Icon tagIcon; final ColoredText tagText; if (!TagManager.isEnabled()) { tagIcon = getBookmarkIcon(myProject, value); tagText = null; } else { var tagIconAndText = TagManager.getTagIconAndText(value); tagIcon = tagIconAndText.icon(); tagText = tagIconAndText.coloredText(); } data.setIcon(withIconMarker(icon, tagIcon)); data.setPresentableText(myName); if (deprecated) { data.setAttributesKey(CodeInsightColors.DEPRECATED_ATTRIBUTES); } if (tagText != null) { var fragments = tagText.fragments(); for (ColoredText.Fragment fragment : fragments) { data.getColoredText().add(new ColoredFragment(fragment.fragmentText(), fragment.fragmentAttributes())); } if (!fragments.isEmpty()) { data.getColoredText().add(new ColoredFragment(myName, getSimpleTextAttributes(data))); } } updateImpl(data); data.setIcon(patchIcon(myProject, data.getIcon(true), getVirtualFile())); CompoundProjectViewNodeDecorator.get(myProject).decorate(this, data); updateTimestamp(); }); }