symbols-api
Symbol API
com.intellij.model.Symbol (community/platform/core-api/src/com/intellij/model/Symbol.java) is
the platform's generic replacement for "resolve a PsiReference to a PsiElement". A Symbol
represents a semantic element in some model — a language, a framework, a database schema — and
decouples navigation/find-usages/rename/documentation from PSI. A Symbol is not required to be
backed by a PsiElement, and it is incorrect to try to obtain one from a Symbol.
Canonical examples from the docs: a Java local variable (backed by PsiVariable), a compiled class
from JDK stubs (not tied to any project), a Spring bean (created dynamically by framework support,
project-bound but not PSI-backed), a database column (defined by a data source, not PSI-backed and
not project-bound).