package com.jetbrains.lang.dart.psi; import com.intellij.codeInsight.highlighting.HighlightUsagesDescriptionLocation; import com.intellij.psi.ElementDescriptionLocation; import com.intellij.psi.ElementDescriptionProvider; import com.intellij.psi.PsiElement; import com.jetbrains.lang.dart.DartComponentType; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Locale; public class DartElementDescriptionProvider implements ElementDescriptionProvider { @Nullable @Override public String getElementDescription(@NotNull final PsiElement element, @NotNull final ElementDescriptionLocation location) { if (!(location instanceof HighlightUsagesDescriptionLocation)) return null; if (element instanceof DartLibraryNameElement) return "library " + ((DartLibraryNameElement)element).getName(); if (element instanceof DartNamedElement) { final String name = ((DartNamedElement)element).getName(); final DartComponentType type = DartComponentType.typeOf(element); if (type != null) { final String typeText = type.toString().toLowerCase(Locale.US); return name != null ? typeText + " " + name : typeText; } } return null; } }