Incorporate tutorials into main structure; feature Gradle plugin as recommended workflow (IJSDK-213)

This commit is contained in:
Dmitry Jemerov 2018-03-16 11:49:59 +01:00
parent cebe53e61a
commit 90a4a0fca8
7 changed files with 105 additions and 117 deletions

View File

@ -14,14 +14,18 @@
* [Introduction](basics.md)
* [Types of Plugins](basics/types_of_plugins.md)
* [Getting Started](basics/getting_started.md)
* [Setting Up a Development Environment](basics/getting_started/setting_up_environment.md)
* [Check Out And Build Community Edition](basics/checkout_and_build_community.md)
* [Creating a Plugin Project](basics/getting_started/creating_plugin_project.md)
* [Build Number Ranges](basics/getting_started/build_number_ranges.md)
* [Creating an Action](basics/getting_started/creating_an_action.md)
* [Running and Debugging a Plugin](basics/getting_started/running_and_debugging_a_plugin.md)
* [Deploying a Plugin](basics/getting_started/deploying_plugin.md)
* [Publishing a Plugin](basics/getting_started/publishing_plugin.md)
* [Using Gradle](tutorials/build_system.md)
* [Getting Started with Gradle](tutorials/build_system/prerequisites.md)
* [Creating an Action](basics/getting_started/creating_an_action.md)
* [Publishing Your Plugin](tutorials/build_system/deployment.md)
* [Using DevKit](basics/getting_started/using_dev_kit.md)
* [Setting Up a Development Environment](basics/getting_started/setting_up_environment.md)
* [Check Out And Build Community Edition](basics/checkout_and_build_community.md)
* [Creating a Plugin Project](basics/getting_started/creating_plugin_project.md)
* [Creating an Action](basics/getting_started/creating_an_action.md)
* [Running and Debugging a Plugin](basics/getting_started/running_and_debugging_a_plugin.md)
* [Deploying a Plugin](basics/getting_started/deploying_plugin.md)
* [Publishing a Plugin](basics/getting_started/publishing_plugin.md)
* [Plugin Structure](basics/plugin_structure.md)
* [Plugin Content](basics/plugin_structure/plugin_content.md)
* [Plugin Class Loaders](basics/plugin_structure/plugin_class_loaders.md)
@ -31,10 +35,7 @@
* [Plugin Services](basics/plugin_structure/plugin_services.md)
* [Plugin Configuration File](basics/plugin_structure/plugin_configuration_file.md)
* [Plugin Dependencies](basics/plugin_structure/plugin_dependencies.md)
* Required Technologies
* Kotlin
* Gradle
* Primer for the non-JVM Developer
* [Kotlin for Plugin Developers](tutorials/kotlin.md)
* [Troubleshooting](basics/settings_caches_logs.md)
* [Plugin Development FAQ](faq.md)
@ -56,6 +57,9 @@
* [Icons and Images](reference_guide/work_with_icons_and_images.md)
* [Color Scheme Management](reference_guide/color_scheme_management.md)
* [Actions](basics/action_system.md)
* [Actions Tutorial](tutorials/action_system.md)
* [1. Registering an Action](tutorials/action_system/working_with_custom_actions.md)
* [2. Grouping Actions](tutorials/action_system/grouping_action.md)
* Settings
* [Persisting State of Components](basics/persisting_state_of_components.md)
* [Files](basics/architectural_overview/files.md)
@ -64,9 +68,14 @@
* [Documents](basics/architectural_overview/documents.md)
* [Editors](reference_guide/editors.md)
* [Multiple Carets](reference_guide/multiple_carets.md)
* [Editor Basics](tutorials/editor_basics.md)
* [1. Working With Text](tutorials/editor_basics/working_with_text.md)
* [2. Editor Coordinates System. Positions And Offsets](tutorials/editor_basics/coordinates_system.md)
* [3. Handling Editor Events](tutorials/editor_basics/editor_events.md)
* [Run Configurations](basics/run_configurations.md)
* [Run Configuration Management](basics/run_configurations/run_configuration_management.md)
* [Execution](basics/run_configurations/run_configuration_execution.md)
* [Run Configurations Tutorial](tutorials/run_configurations.md)
* [Version Control Systems](reference_guide/vcs_integration_for_plugins.md)
* Diff
* Local History
@ -78,7 +87,10 @@
* [Introduction](basics/project_structure.md)
* [Project](reference_guide/project_model/project.md)
* [Project Wizard](reference_guide/project_wizard.md)
* Frameworks
* [Project Wizard Tutorial](tutorials/project_wizard.md)
* [Adding New Steps to Project Wizard](tutorials/project_wizard/adding_new_steps.md)
* [Supporting Module Types](tutorials/project_wizard/module_types.md)
* [Frameworks](tutorials/framework.md)
* [Module](reference_guide/project_model/module.md)
* [SDK](reference_guide/project_model/sdk.md)
* [Library](reference_guide/project_model/library.md)
@ -108,19 +120,22 @@
* Editing
* Code Completion
* Templates
* Live Templates
* [Live Templates](tutorials/live_templates.md)
* [1. Adding Live Template Support](tutorials/live_templates/template_support.md)
* File Templates
* Surround Templates
* QuickDoc
* Intentions
* [Intentions](tutorials/code_intentions.md)
* Analysing
* Annotator
* Inspections
* [Inspections](tutorials/code_inspections.md)
* Profiles
* Scopes
* Suppressing Highlights
* Structural Search
* Refactoring
* Project View
* [Modifying Project View Structure](tutorials/tree_structure_view.md)
* Unit Testing
## Part VI - Testing
@ -153,6 +168,36 @@
* To do Explorer
* Parameter Info
* Parameter Hints
* [Custom Language Support Tutorial](tutorials/custom_language_support_tutorial.md)
* [1. Prerequisites](tutorials/custom_language_support/prerequisites.md)
* [2. Language and File Type](tutorials/custom_language_support/language_and_filetype.md)
* [3. Grammar and Parser](tutorials/custom_language_support/grammar_and_parser.md)
* [4. Lexer and Parser Definition](tutorials/custom_language_support/lexer_and_parser_definition.md)
* [5. Syntax Highlighter and Color Settings Page](tutorials/custom_language_support/syntax_highlighter_and_color_settings_page.md)
* [6. PSI Helpers and Utilities](tutorials/custom_language_support/psi_helper_and_utilities.md)
* [7. Annotator](tutorials/custom_language_support/annotator.md)
* [8. Line Marker Provider](tutorials/custom_language_support/line_marker_provider.md)
* [9. Completion Contributor](tutorials/custom_language_support/completion_contributor.md)
* [10. Reference Contributor](tutorials/custom_language_support/reference_contributor.md)
* [11. Find Usages Provider](tutorials/custom_language_support/find_usages_provider.md)
* [12. Folding Builder](tutorials/custom_language_support/folding_builder.md)
* [13. Go To Symbol Contributor](tutorials/custom_language_support/go_to_symbol_contributor.md)
* [14. Structure View Factory](tutorials/custom_language_support/structure_view_factory.md)
* [15. Formatter](tutorials/custom_language_support/formatter.md)
* [16. Code Style Settings](tutorials/custom_language_support/code_style_settings.md)
* [17. Commenter](tutorials/custom_language_support/commenter.md)
* [18. Quick Fix](tutorials/custom_language_support/quick_fix.md)
* [Testing a Custom Language Plugin](tutorials/writing_tests_for_plugins.md)
* [1. Tests Prerequisites](tutorials/writing_tests_for_plugins/tests_prerequisites.md)
* [2. Parsing Test](tutorials/writing_tests_for_plugins/parsing_test.md)
* [3. Completion Test](tutorials/writing_tests_for_plugins/completion_test.md)
* [4. Annotator Test](tutorials/writing_tests_for_plugins/annotator_test.md)
* [5. Formatter Test](tutorials/writing_tests_for_plugins/formatter_test.md)
* [6. Rename Test](tutorials/writing_tests_for_plugins/rename_test.md)
* [7. Folding Test](tutorials/writing_tests_for_plugins/folding_test.md)
* [8. Find Usages Test](tutorials/writing_tests_for_plugins/find_usages_test.md)
* [9. Commenter Test](tutorials/writing_tests_for_plugins/commenter_test.md)
* [10. Reference Test](tutorials/writing_tests_for_plugins/reference_test.md)
* Injected Languages
* Project Model
* Build System
@ -161,6 +206,7 @@
## Part VIII - Product Specific
* [Compatibility with Multiple Products](basics/getting_started/plugin_compatibility.md)
* [Build Number Ranges](basics/getting_started/build_number_ranges.md)
* [IntelliJ IDEA](products/idea.md)
* [Tomcat Integration](reference_guide/tomcat_integration.md)
* [Spring API](reference_guide/frameworks_and_external_apis/spring_api.md)
@ -189,61 +235,8 @@
* [Plugin Developers List](plugin_repository/api/plugin_developers.md)
* [Custom Release Channels](plugin_repository/custom_channels.md)
## Appendix I - Tutorials
* [Tutorials](tutorials.md)
* [Gradle Support](tutorials/build_system.md)
* [1. Prerequisites](tutorials/build_system/prerequisites.md)
* [2. Deployment](tutorials/build_system/deployment.md)
* [Custom Language Support](tutorials/custom_language_support_tutorial.md)
* [1. Prerequisites](tutorials/custom_language_support/prerequisites.md)
* [2. Language and File Type](tutorials/custom_language_support/language_and_filetype.md)
* [3. Grammar and Parser](tutorials/custom_language_support/grammar_and_parser.md)
* [4. Lexer and Parser Definition](tutorials/custom_language_support/lexer_and_parser_definition.md)
* [5. Syntax Highlighter and Color Settings Page](tutorials/custom_language_support/syntax_highlighter_and_color_settings_page.md)
* [6. PSI Helpers and Utilities](tutorials/custom_language_support/psi_helper_and_utilities.md)
* [7. Annotator](tutorials/custom_language_support/annotator.md)
* [8. Line Marker Provider](tutorials/custom_language_support/line_marker_provider.md)
* [9. Completion Contributor](tutorials/custom_language_support/completion_contributor.md)
* [10. Reference Contributor](tutorials/custom_language_support/reference_contributor.md)
* [11. Find Usages Provider](tutorials/custom_language_support/find_usages_provider.md)
* [12. Folding Builder](tutorials/custom_language_support/folding_builder.md)
* [13. Go To Symbol Contributor](tutorials/custom_language_support/go_to_symbol_contributor.md)
* [14. Structure View Factory](tutorials/custom_language_support/structure_view_factory.md)
* [15. Formatter](tutorials/custom_language_support/formatter.md)
* [16. Code Style Settings](tutorials/custom_language_support/code_style_settings.md)
* [17. Commenter](tutorials/custom_language_support/commenter.md)
* [18. Quick Fix](tutorials/custom_language_support/quick_fix.md)
* [Writing Tests For Plugins](tutorials/writing_tests_for_plugins.md)
* [1. Tests Prerequisites](tutorials/writing_tests_for_plugins/tests_prerequisites.md)
* [2. Parsing Test](tutorials/writing_tests_for_plugins/parsing_test.md)
* [3. Completion Test](tutorials/writing_tests_for_plugins/completion_test.md)
* [4. Annotator Test](tutorials/writing_tests_for_plugins/annotator_test.md)
* [5. Formatter Test](tutorials/writing_tests_for_plugins/formatter_test.md)
* [6. Rename Test](tutorials/writing_tests_for_plugins/rename_test.md)
* [7. Folding Test](tutorials/writing_tests_for_plugins/folding_test.md)
* [8. Find Usages Test](tutorials/writing_tests_for_plugins/find_usages_test.md)
* [9. Commenter Test](tutorials/writing_tests_for_plugins/commenter_test.md)
* [10. Reference Test](tutorials/writing_tests_for_plugins/reference_test.md)
* [Action System](tutorials/action_system.md)
* [1. Registering an Action](tutorials/action_system/working_with_custom_actions.md)
* [2. Grouping Actions](tutorials/action_system/grouping_action.md)
* [Editor Basics](tutorials/editor_basics.md)
* [1. Working With Text](tutorials/editor_basics/working_with_text.md)
* [2. Editor Coordinates System. Positions And Offsets](tutorials/editor_basics/coordinates_system.md)
* [3. Handling Editor Events](tutorials/editor_basics/editor_events.md)
* [Project Wizard](tutorials/project_wizard.md)
* [Adding New Steps to Project Wizard](tutorials/project_wizard/adding_new_steps.md)
* [Supporting Module Types](tutorials/project_wizard/module_types.md)
* [Code Inspections](tutorials/code_inspections.md)
* [Code Intentions](tutorials/code_intentions.md)
* [Live Templates](tutorials/live_templates.md)
* [1. Adding Live Template Support](tutorials/live_templates/template_support.md)\
* [Run Configurations](tutorials/run_configurations.md)
* [Supporting Frameworks](tutorials/framework.md)
* [Tree Structure View](tutorials/tree_structure_view.md)
* [Kotlin for Plugin Developers](tutorials/kotlin.md)
## Appendix I - Resources
## Appendix II - Resources
* [Introduction](resources.md)
* [IntelliJ Community Edition on GitHub](https://github.com/JetBrains/intellij-community)
* [IntelliJ Plugins](https://github.com/JetBrains/intellij-plugins)
@ -255,7 +248,7 @@
* [Community SDK Forum](https://intellij-support.jetbrains.com/hc/en-us/community/topics/200366979-IntelliJ-IDEA-Open-API-and-Plugin-Development)
* [Kotlin Reference](https://kotlinlang.org)
## Appendix III - Breaking API Changes
## Appendix II - Breaking API Changes
* [Breaking API Changes](reference_guide/api_changes_list.md)
* [2018.*](reference_guide/api_changes/api_changes_list_2018.md)

View File

@ -4,13 +4,20 @@ title: Creating Your First Plugin
This documentation section will help you get started with developing plugins for the *IntelliJ Platform*. You can use either [IntelliJ IDEA Community Edition](https://www.jetbrains.com/idea/download/) or [IntelliJ IDEA Ultimate](https://www.jetbrains.com/idea/download/) as your IDE. Both include the complete set of plugin development tools. To become more familiar with *IntelliJ IDEA*, please refer to the [IntelliJ IDEA Web Help](https://www.jetbrains.com/idea/help/).
There are two possible workflows for building IntelliJ IDEA plugins. The recommended workflow for new projects is
to [use Gradle](/tutorials/build_system.md). For existing projects, the old workflow [using Plugin DevKit](basics/getting_started/using_dev_kit.md) is still supported.
In this section:
* [Setting Up a Development Environment](getting_started/setting_up_environment.md)
* [Creating a Plugin Project](getting_started/creating_plugin_project.md)
* [Build Number Ranges](getting_started/build_number_ranges.md)
* [Creating an Action](getting_started/creating_an_action.md)
* [Running and Debugging a Plugin](getting_started/running_and_debugging_a_plugin.md)
* [Deploying a Plugin](getting_started/deploying_plugin.md)
* [Plugin Compatibility with IntelliJ Platform Products](getting_started/plugin_compatibility.md)
* [Publishing a plugin to plugin repository](getting_started/publishing_plugin.md)
* [Developing plugins using Gradle](/tutorials/build_system.md)
* [Getting Started with Gradle](/tutorials/build_system/prerequisites.md)
* [Creating an Action](getting_started/creating_an_action.md)
* [Publishing Your Plugin](/tutorials/build_system/deployment.md)
* [Developing plugins using DevKit](getting_started/using_dev_kit.md)
* [Setting Up a Development Environment](getting_started/setting_up_environment.md)
* [Check Out And Build Community Edition](basics/checkout_and_build_community.md)
* [Creating a Plugin Project](getting_started/creating_plugin_project.md)
* [Creating an Action](getting_started/creating_an_action.md)
* [Running and Debugging a Plugin](getting_started/running_and_debugging_a_plugin.md)
* [Deploying a Plugin](getting_started/deploying_plugin.md)
* [Publishing a plugin to plugin repository](getting_started/publishing_plugin.md)

View File

@ -0,0 +1,16 @@
---
title: Using DevKit
---
Plugin DevKit is an IntelliJ plugin that provides support for developing IntelliJ plugins using IntelliJ IDEA's
own build system. It provides its own SDK type and a set of actions for building plugins within the IDE.
In this section:
* [Setting Up a Development Environment](getting_started/setting_up_environment.md)
* [Check Out And Build Community Edition](basics/checkout_and_build_community.md)
* [Creating a Plugin Project](getting_started/creating_plugin_project.md)
* [Creating an Action](getting_started/creating_an_action.md)
* [Running and Debugging a Plugin](getting_started/running_and_debugging_a_plugin.md)
* [Deploying a Plugin](getting_started/deploying_plugin.md)
* [Publishing a plugin to plugin repository](getting_started/publishing_plugin.md)

View File

@ -48,14 +48,10 @@ This guide is split into several parts, similar to a text book. Each part builds
Documents the API for the [Plugin Repository](https://plugins.jetbrains.com) service that JetBrains maintains and is used to host plugins. It is not necessary to know this API in order to publish plugins - plugins can be uploaded manually, or via the Gradle IntelliJ Plugin.
* [**Appendix I - Tutorials**](/tutorials.md)
Provides tutorials and links to working sample code to demonstrate various features and functionality related to the _IntelliJ Platform_.
* [**Appendix II - Resources**](/resources.md)
* [**Appendix I - Resources**](/resources.md)
Links to useful resources, such as the IntelliJ Community Edition source code, the Plugin Development forum and the Plugin Developers Gitter room.
* [**Appendix III - Breaking API Changes**](reference_guide/api_changes_list.md)
* [**Appendix II - Breaking API Changes**](reference_guide/api_changes_list.md)
Provides a list of backwards-incompatible API changes in each major release of the IntelliJ Platform.

View File

@ -1,29 +0,0 @@
---
title: Tutorials
---
This section contains a set of step-by-step tutorials which some aspects of work with *IntelliJ Platform*.
To set up the development environment and get started please refer to the
[Basics](basics.md) section.
A more detailed explanation of the API components can be found in the
[Architecture Reference Guide](reference_guide.md).
**List of Tutorials:**
* [Custom Language Support](tutorials/custom_language_support_tutorial.md)
* [Writing Tests For Plugins](tutorials/writing_tests_for_plugins.md)
* [Action System](tutorials/action_system.md)
* [Editor Basics](tutorials/editor_basics.md)
* [Project Wizard](tutorials/project_wizard.md)
* [Code Inspections](tutorials/code_inspections.md)
* [Run Configurations](tutorials/run_configurations.md)
* [Supporting Frameworks](tutorials/framework.md)
* [Tree Structure View](tutorials/tree_structure_view.md)
* [Kotlin for Plugin Developers](tutorials/kotlin.md)
* [Gradle Build System](tutorials/build_system.md)
* [Code Inspections](tutorials/code_inspections.md)
* [Code Intentions](tutorials/code_intentions.md)
* [Live Templates](tutorials/live_templates.md)

View File

@ -2,9 +2,14 @@
title: Building plugins with Gradle
---
When building a plugin on the IntelliJ Platform SDK, occasionally major version upgrades may cause breaking API changes. In order to prevent this from occurring unexpectedly, we recommend using Gradle with the [gradle-intellij-plugin](https://github.com/JetBrains/gradle-intellij-plugin). This Gradle plugin allows you to build plugins for the IntelliJ Platform on a specific version of the IntelliJ Platform SDK.
The [gradle-intellij-plugin](https://github.com/JetBrains/gradle-intellij-plugin) Gradle plugin is the recommended
solution for building IntelliJ plugins. The plugin takes care of the dependencies of your plugin project - both the
base IDE and the other plugins that your plugin may depend on. It also provides tasks to run the IDE with your plugin
and to publish your plugin to the JetBrains plugins repository. To make sure that your plugin is not affected by API changes
which may happen between major releases of the platform, you can easily build your plugin against many versions
of the base IDE.
Additionally, it codifies a reproducible build process for compiling a plugin, running it inside your IDE, and finally publishing it on the plugin repo. The following tutorial refers to materials that can be found in the included [gradle_plugin_demo](https://github.com/JetBrains/intellij-sdk-docs/tree/master/code_samples/gradle_plugin_demo) project. Below are a series of guides to configure Gradle support.
The following tutorial refers to materials that can be found in the included [gradle_plugin_demo](https://github.com/JetBrains/intellij-sdk-docs/tree/master/code_samples/gradle_plugin_demo) project. Below are a series of guides to configure Gradle support.
* [1. Getting Started](build_system/prerequisites.md)
* [2. Deploying a plugin](build_system/deployment.md)

View File

@ -1,5 +1,5 @@
---
title: Deploying plugins with Gradle
title: Publishing plugins with Gradle
---
Once you have configured Gradle support, you can automatically build and deploy your plugin to the JetBrains [Plugin Repository](http://plugins.jetbrains.com). To do so, you will need to have already published the plugin to the plugin repository. For detailed information, please see the guide to [publishing a plugin](http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/publishing_plugin.html).