Each contributor needs to be able to return a complete list of names to show in the list for a specified project, which will then be filtered by IDEA according to the text typed by the user in the dialog. For each name in that list, the contributor needs to provide a list of NavigationItem instances (typically PsiElements), which specify the destinations to jump to when a specific name is selected from the list.
To provide different kinds of documentation support (tooltips on Ctrl-hover, quick documentation popup etc.), the plugin needs to provide an implementation of the DocumentationProvider interface and register it in the lang.documentationProvider extension point. Since IDEA 10.5, a standard base class for such implementations is available; it's called AbstractDocumentationProvider.
The getQuickNavigateInfo() method returns the text to be displayed when the user holds the mouse over an element with Ctrl pressed.
// to be continued
Additional Minor Features