custom language tutorial: show only class bodies on page

This commit is contained in:
Yann Cébron 2023-02-27 12:52:10 +01:00
parent 2f2dfdc14c
commit f6622fa420
20 changed files with 39 additions and 38 deletions

View File

@ -205,6 +205,7 @@ Whole files can be imported on a page using `src` attribute after code fences sp
The advantage is the code can come from the `code_samples` directory, so it will be live code that isn't silently stale.
The disadvantage is the file may contain a large class, too large for the documentation page to be useful.
If possible, use `include-symbol="ClassName"` to show only the class body without any headers and imports.
To include only a specific method, specify `include-symbol="methodName"` additionally.
In any case, please keep code samples concise and avoid any unnecessary "surrounding" code or import statements.

View File

@ -66,7 +66,7 @@ Annotate the `simple:key` literal expression, and differentiate between a well-f
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleAnnotator.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleAnnotator.java" include-symbol="SimpleAnnotator"}
> If the above code is copied at this stage of the tutorial, then remove the line below the comment "** Tutorial step 18.3 …" The quick fix class in that line is not defined until later in the tutorial.
>

View File

@ -27,7 +27,7 @@ for Simple Language by subclassing [`CustomCodeStyleSettings`](%gh-ic%/platform/
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleCodeStyleSettings.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleCodeStyleSettings.java" include-symbol="SimpleCodeStyleSettings"}
## Define Code Style Settings Provider
@ -38,7 +38,7 @@ for Simple Language by subclassing [`CodeStyleSettingsProvider`](%gh-ic%/platfor
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleCodeStyleSettingsProvider.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleCodeStyleSettingsProvider.java" include-symbol="SimpleCodeStyleSettingsProvider"}
## Register the Code Style Settings Provider
@ -57,7 +57,7 @@ Define [`SimpleLanguageCodeStyleSettingsProvider`](%gh-sdk-samples%/simple_langu
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleLanguageCodeStyleSettingsProvider.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleLanguageCodeStyleSettingsProvider.java" include-symbol="SimpleLanguageCodeStyleSettingsProvider"}
## Register the Language Code Style Settings Provider

View File

@ -25,7 +25,7 @@ The [`SimpleCommenter`](%gh-sdk-samples%/simple_language_plugin/src/main/java/or
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleCommenter.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleCommenter.java" include-symbol="SimpleCommenter"}
## Register the Commenter

View File

@ -25,7 +25,7 @@ This rudimentary completion contributor always adds "Hello" to the completion va
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleCompletionContributor.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleCompletionContributor.java" include-symbol="SimpleCompletionContributor"}
## Register the Completion Contributor

View File

@ -27,7 +27,7 @@ See the comments in `FindUsagesProvider` for more information.
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleFindUsagesProvider.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleFindUsagesProvider.java" include-symbol="SimpleFindUsagesProvider"}
## Register the Find Usages Provider

View File

@ -37,7 +37,7 @@ The IntelliJ Platform uses the value to substitute for the key when the code get
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleFoldingBuilder.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleFoldingBuilder.java" include-symbol="SimpleFoldingBuilder"}
## Register the Folding Builder

View File

@ -30,7 +30,7 @@ Define [`SimpleBlock`](%gh-sdk-samples%/simple_language_plugin/src/main/java/org
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleBlock.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleBlock.java" include-symbol="SimpleBlock"}
## Define a Formatting Model Builder
@ -51,7 +51,7 @@ Create [`SimpleFormattingModelBuilder`](%gh-sdk-samples%/simple_language_plugin/
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleFormattingModelBuilder.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleFormattingModelBuilder.java" include-symbol="SimpleFormattingModelBuilder"}
## Register the Formatter

View File

@ -47,7 +47,7 @@ to create [`SimpleChooseByNameContributor`](%gh-sdk-samples%/simple_language_plu
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleChooseByNameContributor.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleChooseByNameContributor.java" include-symbol="SimpleChooseByNameContributor"}
## Register the Go To Symbol Contributor

View File

@ -24,7 +24,7 @@ in the `org.intellij.sdk.language.psi` package by subclassing `IElementType`.
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/SimpleTokenType.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/SimpleTokenType.java" include-symbol="SimpleTokenType"}
## Define an Element Type
@ -32,7 +32,7 @@ Create the [`SimpleElementType`](%gh-sdk-samples%/simple_language_plugin/src/mai
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/SimpleElementType.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/SimpleElementType.java" include-symbol="SimpleElementType"}
## Define the Grammar

View File

@ -32,7 +32,7 @@ The [`SimpleLanguage`](%gh-sdk-samples%/simple_language_plugin/src/main/java/org
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleLanguage.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleLanguage.java" include-symbol="SimpleLanguage"}
## Define an Icon
@ -42,7 +42,7 @@ Please see [](work_with_icons_and_images.md) for details on how to define and us
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleIcons.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleIcons.java" include-symbol="SimpleIcons"}
## Define a FileType
@ -50,7 +50,7 @@ The [`SimpleFileType`](%gh-sdk-samples%/simple_language_plugin/src/main/java/org
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleFileType.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleFileType.java" include-symbol="SimpleFileType"}
## Register the FileType

View File

@ -51,7 +51,7 @@ Implement [`SimpleLexerAdapter`](%gh-sdk-samples%/simple_language_plugin/src/mai
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleLexerAdapter.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleLexerAdapter.java" include-symbol="SimpleLexerAdapter"}
## Define a Root File
@ -59,7 +59,7 @@ The [`SimpleFile`](%gh-sdk-samples%/simple_language_plugin/src/main/java/org/int
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/SimpleFile.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/SimpleFile.java" include-symbol="SimpleFile"}
## Define SimpleTokenSets
@ -68,7 +68,7 @@ Define all sets of related token types from `SimpleTypes` in [`SimpleTokenSets`]
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/SimpleTokenSets.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/SimpleTokenSets.java" include-symbol="SimpleTokenSets"}
## Define a Parser
@ -77,7 +77,7 @@ To avoid unnecessary classloading when initializing the extension point implemen
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleParserDefinition.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleParserDefinition.java" include-symbol="SimpleParserDefinition"}
## Register the Parser Definition

View File

@ -25,7 +25,7 @@ For this example, override the `collectNavigationMarkers()` method to collect us
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleLineMarkerProvider.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleLineMarkerProvider.java" include-symbol="SimpleLineMarkerProvider"}
Extending from [`GutterIconDescriptor`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/daemon/GutterIconDescriptor.java) allows configuring gutter icons to be shown via <ui-path>Settings | Editor | General | Gutter Icons</ui-path>.

View File

@ -87,4 +87,4 @@ This utility will be used later when implementing [code completion](completion_c
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleUtil.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleUtil.java" include-symbol="SimpleUtil"}

View File

@ -26,7 +26,7 @@ A new overload of `createProperty()` creates a new `key`-`value` pair for Simple
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/SimpleElementFactory.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/SimpleElementFactory.java" include-symbol="SimpleElementFactory"}
## Define an Intention Action
The [`SimpleCreatePropertyQuickFix`](%gh-sdk-samples%/simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleCreatePropertyQuickFix.java) creates a property in the file chosen by the user - in this case, a Java file containing a `prefix:key` - and navigate to this property after creation.
@ -35,7 +35,7 @@ For a more in-depth example of an Intention Action, see [`conditional_operator_i
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleCreatePropertyQuickFix.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleCreatePropertyQuickFix.java" include-symbol="SimpleCreatePropertyQuickFix"}
## Update the Annotator
When a `badProperty` annotation is created, the `badProperty.registerFix()` method in
@ -44,7 +44,7 @@ This method call registers the `SimpleCreatePropertyQuickFix` as the Intention A
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleAnnotator.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleAnnotator.java" include-symbol="SimpleAnnotator"}
## Run the Project
Run the project by using the Gradle [`runIde`](creating_plugin_project.md#running-a-plugin-with-the-runide-gradle-task) task.

View File

@ -35,13 +35,13 @@ The [`SimpleNamedElement`](%gh-sdk-samples%/simple_language_plugin/src/main/java
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/SimpleNamedElement.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/SimpleNamedElement.java" include-symbol="SimpleNamedElement"}
The [`SimpleNamedElementImpl`](%gh-sdk-samples%/simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/impl/SimpleNamedElementImpl.java) class implements the `SimpleNamedElement` interface and extends [`ASTWrapperPsiElement`](%gh-ic%/platform/core-impl/src/com/intellij/extapi/psi/ASTWrapperPsiElement.java).
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/impl/SimpleNamedElementImpl.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/impl/SimpleNamedElementImpl.java" include-symbol="SimpleNamedElementImpl"}
## Define Helper Methods for Generated PSI Elements
@ -126,7 +126,7 @@ The latter enables the reference to resolve to more than one element or to resol
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleReference.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleReference.java" include-symbol="SimpleReference"}
## Define a Reference Contributor
@ -136,7 +136,7 @@ Contribute a reference to each usage of a property:
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleReferenceContributor.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleReferenceContributor.java" include-symbol="SimpleReferenceContributor"}
## Register the Reference Contributor
@ -169,7 +169,7 @@ As long as an element is a `SimpleProperty` it is allowed to be refactored:
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleRefactoringSupportProvider.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleRefactoringSupportProvider.java" include-symbol="SimpleRefactoringSupportProvider"}
## Register the Refactoring Support Provider

View File

@ -23,7 +23,7 @@ The [`SimpleSpellcheckingStrategy`](%gh-sdk-samples%/simple_language_plugin/src/
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleSpellcheckingStrategy.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleSpellcheckingStrategy.java" include-symbol="SimpleSpellcheckingStrategy"}
## Register the SimpleSpellcheckingStrategy

View File

@ -26,7 +26,7 @@ The [`SimpleStructureAwareNavbar`](%gh-sdk-samples%/simple_language_plugin/src/m
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleStructureAwareNavbar.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleStructureAwareNavbar.java" include-symbol="SimpleStructureAwareNavbar"}
## Register the SimpleStructureAwareNavbar

View File

@ -28,7 +28,7 @@ At this point the project will not compile until `SimpleStructureViewModel` is [
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleStructureViewFactory.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleStructureViewFactory.java" include-symbol="SimpleStructureViewFactory"}
## Define a Structure View Model
@ -37,7 +37,7 @@ It also extends [`StructureViewModelBase`](%gh-ic%/platform/editor-ui-api/src/co
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleStructureViewModel.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleStructureViewModel.java" include-symbol="SimpleStructureViewModel"}
## Define a Structure View Element
@ -48,7 +48,7 @@ The `SortableTreeElement` represents an item in a smart tree that allows using t
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleStructureViewElement.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleStructureViewElement.java" include-symbol="SimpleStructureViewElement"}
## Register the Structure View Factory

View File

@ -27,7 +27,7 @@ For the Simple Language, define only one scheme.
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleSyntaxHighlighter.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleSyntaxHighlighter.java" include-symbol="SimpleSyntaxHighlighter"}
### Define a Syntax Highlighter Factory
@ -37,7 +37,7 @@ subclasses [`SyntaxHighlighterFactory`](%gh-ic%/platform/editor-ui-api/src/com/i
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleSyntaxHighlighterFactory.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleSyntaxHighlighterFactory.java" include-symbol="SimpleSyntaxHighlighterFactory"}
### Register the Syntax Highlighter Factory
@ -66,7 +66,7 @@ implements [`ColorSettingsPage`](%gh-ic%/platform/platform-api/src/com/intellij/
```java
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleColorSettingsPage.java"}
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleColorSettingsPage.java" include-symbol="SimpleColorSettingsPage"}
It is supported to group related attributes like operators or braces by separating the nodes with `//`, e.g.: