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 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. 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. 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. 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 ```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. > 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 ```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 ## Define Code Style Settings Provider
@ -38,7 +38,7 @@ for Simple Language by subclassing [`CodeStyleSettingsProvider`](%gh-ic%/platfor
```java ```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 ## Register the Code Style Settings Provider
@ -57,7 +57,7 @@ Define [`SimpleLanguageCodeStyleSettingsProvider`](%gh-sdk-samples%/simple_langu
```java ```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 ## 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 ```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 ## Register the Commenter

View File

@ -25,7 +25,7 @@ This rudimentary completion contributor always adds "Hello" to the completion va
```java ```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 ## Register the Completion Contributor

View File

@ -27,7 +27,7 @@ See the comments in `FindUsagesProvider` for more information.
```java ```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 ## 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 ```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 ## Register the Folding Builder

View File

@ -30,7 +30,7 @@ Define [`SimpleBlock`](%gh-sdk-samples%/simple_language_plugin/src/main/java/org
```java ```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 ## Define a Formatting Model Builder
@ -51,7 +51,7 @@ Create [`SimpleFormattingModelBuilder`](%gh-sdk-samples%/simple_language_plugin/
```java ```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 ## Register the Formatter

View File

@ -47,7 +47,7 @@ to create [`SimpleChooseByNameContributor`](%gh-sdk-samples%/simple_language_plu
```java ```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 ## Register the Go To Symbol Contributor

View File

@ -24,7 +24,7 @@ in the `org.intellij.sdk.language.psi` package by subclassing `IElementType`.
```java ```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 ## Define an Element Type
@ -32,7 +32,7 @@ Create the [`SimpleElementType`](%gh-sdk-samples%/simple_language_plugin/src/mai
```java ```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 ## Define the Grammar

View File

@ -32,7 +32,7 @@ The [`SimpleLanguage`](%gh-sdk-samples%/simple_language_plugin/src/main/java/org
```java ```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 ## Define an Icon
@ -42,7 +42,7 @@ Please see [](work_with_icons_and_images.md) for details on how to define and us
```java ```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 ## Define a FileType
@ -50,7 +50,7 @@ The [`SimpleFileType`](%gh-sdk-samples%/simple_language_plugin/src/main/java/org
```java ```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 ## Register the FileType

View File

@ -51,7 +51,7 @@ Implement [`SimpleLexerAdapter`](%gh-sdk-samples%/simple_language_plugin/src/mai
```java ```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 ## Define a Root File
@ -59,7 +59,7 @@ The [`SimpleFile`](%gh-sdk-samples%/simple_language_plugin/src/main/java/org/int
```java ```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 ## Define SimpleTokenSets
@ -68,7 +68,7 @@ Define all sets of related token types from `SimpleTypes` in [`SimpleTokenSets`]
```java ```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 ## Define a Parser
@ -77,7 +77,7 @@ To avoid unnecessary classloading when initializing the extension point implemen
```java ```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 ## Register the Parser Definition

View File

@ -25,7 +25,7 @@ For this example, override the `collectNavigationMarkers()` method to collect us
```java ```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>. 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 ```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 ```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 ## 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. 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 ```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 ## Update the Annotator
When a `badProperty` annotation is created, the `badProperty.registerFix()` method in 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 ```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
Run the project by using the Gradle [`runIde`](creating_plugin_project.md#running-a-plugin-with-the-runide-gradle-task) task. 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 ```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). 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 ```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 ## 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 ```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 ## Define a Reference Contributor
@ -136,7 +136,7 @@ Contribute a reference to each usage of a property:
```java ```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 ## Register the Reference Contributor
@ -169,7 +169,7 @@ As long as an element is a `SimpleProperty` it is allowed to be refactored:
```java ```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 ## Register the Refactoring Support Provider

View File

@ -23,7 +23,7 @@ The [`SimpleSpellcheckingStrategy`](%gh-sdk-samples%/simple_language_plugin/src/
```java ```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 ## Register the SimpleSpellcheckingStrategy

View File

@ -26,7 +26,7 @@ The [`SimpleStructureAwareNavbar`](%gh-sdk-samples%/simple_language_plugin/src/m
```java ```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 ## Register the SimpleStructureAwareNavbar

View File

@ -28,7 +28,7 @@ At this point the project will not compile until `SimpleStructureViewModel` is [
```java ```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 ## Define a Structure View Model
@ -37,7 +37,7 @@ It also extends [`StructureViewModelBase`](%gh-ic%/platform/editor-ui-api/src/co
```java ```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 ## Define a Structure View Element
@ -48,7 +48,7 @@ The `SortableTreeElement` represents an item in a smart tree that allows using t
```java ```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 ## Register the Structure View Factory

View File

@ -27,7 +27,7 @@ For the Simple Language, define only one scheme.
```java ```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 ### Define a Syntax Highlighter Factory
@ -37,7 +37,7 @@ subclasses [`SyntaxHighlighterFactory`](%gh-ic%/platform/editor-ui-api/src/com/i
```java ```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 ### Register the Syntax Highlighter Factory
@ -66,7 +66,7 @@ implements [`ColorSettingsPage`](%gh-ic%/platform/platform-api/src/com/intellij/
```java ```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.: It is supported to group related attributes like operators or braces by separating the nodes with `//`, e.g.: