diff --git a/topics/appendix/resources/explore_api.md b/topics/appendix/resources/explore_api.md index 34b3cbeed..349cd1f2a 100644 --- a/topics/appendix/resources/explore_api.md +++ b/topics/appendix/resources/explore_api.md @@ -8,8 +8,7 @@ Strategies and tools for exploring the IntelliJ Platform API, navigate extension Strategies and tools for exploring the API. -Sometimes it can be challenging to implement plugin features for the IntelliJ Platform, -especially when you've hit a roadblock, and you're unsure how to move forward. +Sometimes it can be challenging to implement plugin features for the IntelliJ Platform. This usually happens in two situations: - You're trying to implement a feature that you've already seen in the IDE, and now you need to find the appropriate extension point or @@ -59,7 +58,7 @@ There you'll find more EPs, and browsing through this list helps you discover fe or [Go to file](https://www.jetbrains.com/help/idea/discover-intellij-idea.html#navigation-and-search) helps you search for all files containing extension points. -Just use *ExtensionPoints.xml as the search pattern and select the All Places scope. +Use *ExtensionPoints.xml as the search pattern and select the All Places scope. However, if a bundled or third-party plugin exposes EPs for others to implement, these EPs are defined in the plugin.xml files of the plugins and not in the *ExtensionPoints.xml files of the IntelliJ Platform. @@ -67,7 +66,7 @@ One such example is the EPs exposed by the Markdown plugin that adds support for ### Use Advanced Search -Explore the plugin.xml files of bundled or 3rd party plugins. +Explore the plugin.xml files of bundled or third party plugins. If you have the IntelliJ Platform sources available either in your own plugin project or in a separate instance, you can use [Structural Search](https://www.jetbrains.com/help/idea/structural-search-and-replace.html) @@ -139,13 +138,13 @@ If you want to implement a functionality that is similar to an existing IDE feat * If the text is localized, this will identify a bundle file there the text is defined. Copy the key from the bundle file identified by the search. * Use the key text as the target for a search within the IntelliJ Community project. This search locates the implementation or related class, or [plugin configuration file](plugin_configuration_file.md) that uses the text key in an [extension](plugin_extensions.md) declaration. - * If the key is found in the extension declaration in plugin.xml file, find the implementing class attribute value (in most cases it is `implementationClass`) and + * If the key is found in the extension declaration in the plugin.xml file, find the implementing class attribute value (in most cases it is `implementationClass`) and [navigate to a declaration](https://www.jetbrains.com/help/rider/Navigation_and_Search__Go_to_Declaration.html#74fa64b7), or use attribute value as the [target of a class search](https://www.jetbrains.com/help/idea/searching-everywhere.html#Searching_Everywhere.xml) in the IntelliJ Community codebase to find the implementation. * If the text is not localized, the search will most probably find the desired implementation or related class. - In this case, search for the found method/class usages, and repeat this until the actual implementation class is found. + In this case, search for the found method/class usages and repeat this until the actual implementation class is found. ### Refrain from Using Internal Classes @@ -177,7 +176,7 @@ However, it does not display information about [stubs](stub_indexes.md) or [form ### Search the IntelliJ Platform Explorer -The [IntelliJ Platform Explorer](https://plugins.jetbrains.com/intellij-platform-explorer) +The [IntelliJ Platform Explorer](https://jb.gg/ipe) is a search tool for browsing [Extension Points](plugin_extensions.md) (EP) and [Listeners](plugin_listeners.md) inside existing implementations of all open-source IntelliJ Platform plugins published on [JetBrains Marketplace](https://plugins.jetbrains.com). You can navigate directly to the source files to find inspiration when implementing your own extensions and listeners for IntelliJ-based IDEs.