To provide different kinds of documentation support, the plugin needs to provide an implementation of the DocumentationProvider interface and register it in the com.intellij.lang.documentationProvider extension point. A standard base class for such implementations is available in AbstractDocumentationProvider.

The getQuickNavigateInfo() method returns the text to be displayed when the user holds the mouse over an element with Ctrl pressed.

When generating complete documentation via generateDoc(), use DocumentationMarkup to layout contents (see JavaDoc for details).

Additional custom actions can be added to documentation inlays and documentation popup via com.intellij.codeInsight.documentation.DocumentationActionProvider registered in com.intellij.documentationActionProvider extension point. (2020.3)

Example: DocumentationProvider for Properties language plugin