diff --git a/topics/reference_guide/custom_language_support/go_to_class_and_go_to_symbol.md b/topics/reference_guide/custom_language_support/go_to_class_and_go_to_symbol.md index d442dbf14..53f045e26 100644 --- a/topics/reference_guide/custom_language_support/go_to_class_and_go_to_symbol.md +++ b/topics/reference_guide/custom_language_support/go_to_class_and_go_to_symbol.md @@ -1,18 +1,19 @@ [//]: # (title: Go to Class and Go to Symbol) - + -A custom language plugin can provide its own items to be included in the lists shown when the user chooses the _Navigate | Class_ or _Navigate | Symbol_ action. -In order to do so, the plugin must provide implementations for the [`ChooseByNameContributor`](upsource:///platform/lang-api/src/com/intellij/navigation/ChooseByNameContributor.java) interface (separate implementations need to be provided for _Class_ and _Symbol_ respectively), and register them in the `com.intellij.gotoClassContributor` and `com.intellij.gotoSymbolContributor` extension points. +A custom language plugin can provide its items to be included in the lists shown when the user chooses the Navigate | Class or Navigate | Symbol action. - > Please consider implementing [`ChooseByNameContributorEx`](upsource:///platform/lang-impl/src/com/intellij/navigation/ChooseByNameContributorEx.java) for better performance. +Provide implementations of [`ChooseByNameContributor`](upsource:///platform/lang-api/src/com/intellij/navigation/ChooseByNameContributor.java) interface (separate implementations need to be provided for Class and Symbol, respectively), and register them in the `com.intellij.gotoClassContributor` and `com.intellij.gotoSymbolContributor` extension points. + + > Please consider implementing [`ChooseByNameContributorEx`](upsource:///platform/lang-impl/src/com/intellij/navigation/ChooseByNameContributorEx.java) for better performance. > {type="tip"} -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 the IDE according to the text typed by the user in the dialog. +Each contributor must return a complete list of names to show in the list for a specified project, which the IDE will then filter according to the text typed by the user in the dialog. Using [File-based or Stub indices](indexing_and_psi_stubs.md) to obtain matching candidates is highly recommended to improve performance. -For each name in that list, the contributor needs to provide a list of [`NavigationItem`](upsource:///platform/core-api/src/com/intellij/navigation/NavigationItem.java) instances (typically [`PsiElement`](upsource:///platform/core-api/src/com/intellij/psi/PsiElement.java)), which specify the destinations to jump to when a specific name is selected from the list. +For each name in that list, the contributor needs to provide a list of [`NavigationItem`](upsource:///platform/core-api/src/com/intellij/navigation/NavigationItem.java) instances (typically [`PsiElement`](upsource:///platform/core-api/src/com/intellij/psi/PsiElement.java)), which specify the destinations to jump to when a specific item is selected from the list. **Example:** -- [Custom Language Support Tutorial: Go To Symbol Contributor](go_to_symbol_contributor.md) \ No newline at end of file +- [Custom Language Support Tutorial: Go To Symbol Contributor](go_to_symbol_contributor.md)