mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-27 16:57:49 +08:00
GH links: use variables everywhere
This commit is contained in:
parent
030584ff3c
commit
157212ac17
@ -6,7 +6,7 @@
|
||||
|
||||
<tldr>
|
||||
|
||||
**Repository**: [intellij-plugins](https://github.com/JetBrains/intellij-plugins)
|
||||
**Repository**: [intellij-plugins](%gh-ij-plugins%/)
|
||||
|
||||
</tldr>
|
||||
|
||||
|
@ -92,7 +92,7 @@ It's important that you're familiar with
|
||||
source code, as well as other basic features of IntelliJ IDEA.
|
||||
|
||||
Many developers keep the
|
||||
[IntelliJ Community source code](https://github.com/JetBrains/intellij-community)
|
||||
[IntelliJ Community source code](%gh-ic%/README.md)
|
||||
open in a separate IDE project while working on their plugin.
|
||||
Others search the source code of the IntelliJ Platform that is attached by default when using a [Gradle](creating_plugin_project.md)-based project.
|
||||
While both methods work, it should be noted that developing plugins without inspecting the IntelliJ Platform code is nearly impossible,
|
||||
|
@ -31,6 +31,6 @@ The following links represent useful resources for working with the IntelliJ Pla
|
||||
|
||||
* [IntelliJ Platform SDK Documentation](https://github.com/JetBrains/intellij-sdk-docs) & [IntelliJ Platform SDK Code Samples](https://github.com/JetBrains/intellij-sdk-code-samples)
|
||||
* [IntelliJ Platform Plugin Template](https://github.com/JetBrains/intellij-platform-plugin-template)
|
||||
* [IntelliJ Community Edition](https://github.com/JetBrains/intellij-community)
|
||||
* [IntelliJ Community Edition](%gh-ic%/README.md)
|
||||
* [IntelliJ Plugins](https://github.com/JetBrains/intellij-plugins)
|
||||
* [Open Source Plugins on JetBrains Marketplace](https://plugins.jetbrains.com/search?orderBy=name&shouldHaveSource=true)
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- Copyright 2000-2023 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
|
||||
<!-- Copyright 2000-2025 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
|
||||
|
||||
# Contributing to the IntelliJ Platform
|
||||
|
||||
@ -66,7 +66,7 @@ When writing a plugin, you have control over the code and don't need to sign the
|
||||
|
||||
### Submit a Patch
|
||||
|
||||
If you would like to improve the code in the IntelliJ Platform or the core functionality of IntelliJ IDEA, you can submit a pull request to the [IntelliJ IDEA Community Edition repository on GitHub](https://github.com/JetBrains/intellij-community).
|
||||
If you would like to improve the code in the IntelliJ Platform or the core functionality of IntelliJ IDEA, you can submit a pull request to the [IntelliJ IDEA Community Edition repository on GitHub](%gh-ic%/README.md).
|
||||
When preparing the change, please make sure to follow the [](intellij_coding_guidelines.md).
|
||||
A developer will review your contribution and, if it meets the quality criteria and fits well with the rest of the code, you'll be notified about the acceptance of the patch.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
|
||||
<!-- Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
|
||||
|
||||
# Required Experience
|
||||
|
||||
@ -19,7 +19,7 @@ Developing a plugin for the IntelliJ Platform requires knowledge and experience
|
||||
|
||||
Keep in mind that the IntelliJ Platform is a large project, and while we are doing our best to cover as many topics as possible,
|
||||
it is not possible to include every feature and use-case in the documentation.
|
||||
Developing a plugin will sometimes require digging into the [IntelliJ Platform code](https://github.com/JetBrains/intellij-community)
|
||||
Developing a plugin will sometimes require digging into the [IntelliJ Platform code](%gh-ic%/README.md)
|
||||
and analyzing the [example implementations in other plugins](https://jb.gg/ipe).
|
||||
|
||||
> It is highly recommended to get familiar with the [](explore_api.md) section before starting with the plugin implementation.
|
||||
|
@ -9,7 +9,7 @@
|
||||
The <path>plugin.xml</path> configuration file contains all the information about the plugin, which is displayed in the [plugins' settings dialog](https://www.jetbrains.com/help/idea/managing-plugins.html), and all registered extensions, actions, listeners, etc.
|
||||
The sections below describe all the elements in detail.
|
||||
|
||||
The example <path>plugin.xml</path> files can be found in the [IntelliJ SDK Docs Code Samples](https://github.com/JetBrains/intellij-sdk-code-samples) repository.
|
||||
The example <path>plugin.xml</path> files can be found in the [IntelliJ SDK Docs Code Samples](%gh-sdk-samples-master%/README.md) repository.
|
||||
|
||||
## Additional Plugin Configuration Files
|
||||
|
||||
@ -592,7 +592,7 @@ Attributes
|
||||
`order`.
|
||||
<br/>
|
||||
To not clash with other plugins defining extensions with the same identifier,
|
||||
consider prepending the identifier with a prefix related to the plugin [`<id>`](#idea-plugin__id) or
|
||||
consider prepending the identifier with a prefix related to the plugin [`<id>`](#idea-plugin__id) or
|
||||
[`<name>`](#idea-plugin__name), for example, `id="com.example.myplugin.myExtension"`.
|
||||
- `order` _(optional)_<br/>
|
||||
Allows for ordering the extension relative to other instances of the same extension point.
|
||||
@ -616,7 +616,7 @@ Attributes
|
||||
- `mac`
|
||||
- `unix`
|
||||
- `windows`
|
||||
|
||||
|
||||
For example, `os="windows"` registers the extension on Windows only.
|
||||
|
||||
### `extensionPoints`
|
||||
@ -694,12 +694,12 @@ Attributes
|
||||
|
||||
The scope in which the [extension](plugin_extensions.md) is
|
||||
instantiated.
|
||||
|
||||
|
||||
Allowed values:
|
||||
- `IDEA_APPLICATION` _(default)_
|
||||
- `IDEA_PROJECT`
|
||||
- `IDEA_MODULE` (**deprecated**)
|
||||
|
||||
|
||||
**It is strongly recommended not to introduce new project- and module-level extension points.**
|
||||
If an extension point needs to operate on a `Project` or `Module` instance, declare an application-level extension
|
||||
point and pass the instance as a method parameter.
|
||||
@ -742,7 +742,7 @@ Example
|
||||
An extension point which restricts the type provided in a `myClass` attribute to be an instance
|
||||
of `com.example.ParentType`, and the type provided in a `someClass` element to be an instance
|
||||
of `java.lang.Comparable`:
|
||||
|
||||
|
||||
```xml
|
||||
<extensionPoint
|
||||
name="myExtension"
|
||||
@ -755,18 +755,18 @@ Example
|
||||
implements="java.lang.Comparable"/>
|
||||
</extensionPoint>
|
||||
```
|
||||
|
||||
|
||||
When using the above extension point, an implementation could be registered as follows:
|
||||
|
||||
|
||||
```xml
|
||||
<myExtension ...
|
||||
myClass="com.example.MyCustomType">
|
||||
<someClass>com.example.MyComparable</someClass>
|
||||
</myExtension>
|
||||
```
|
||||
|
||||
|
||||
where:
|
||||
|
||||
|
||||
- `com.example.MyCustomType` must be a subtype of `com.example.ParentType`
|
||||
- `com.example.MyComparable` must be a subtype of `java.lang.Comparable`
|
||||
|
||||
@ -1492,7 +1492,7 @@ Children
|
||||
Example
|
||||
:
|
||||
Given a plugin descriptor:
|
||||
|
||||
|
||||
```xml
|
||||
<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<id>com.example.myplugin</id>
|
||||
@ -1501,18 +1501,18 @@ Example
|
||||
...
|
||||
</idea-plugin>
|
||||
```
|
||||
|
||||
|
||||
and <path>/META-INF/another-plugin.xml</path>:
|
||||
|
||||
|
||||
```xml
|
||||
<idea-plugin>
|
||||
<extensions>...</extensions>
|
||||
<actions>...</actions>
|
||||
</idea-plugin>
|
||||
```
|
||||
|
||||
|
||||
The effective plugin descriptor loaded to memory will contain the following elements:
|
||||
|
||||
|
||||
```xml
|
||||
<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<id>com.example.myplugin</id>
|
||||
|
@ -1,10 +1,10 @@
|
||||
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
|
||||
<!-- Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
|
||||
|
||||
# Code Samples
|
||||
|
||||
<link-summary>Accessing SDK Docs code samples.</link-summary>
|
||||
|
||||
This guide comes with a number of sample plugins available from dedicated [intellij-sdk-code-samples](https://github.com/JetBrains/intellij-sdk-code-samples) GitHub repository.
|
||||
This guide comes with a number of sample plugins available from dedicated [intellij-sdk-code-samples](%gh-sdk-samples-master%/) GitHub repository.
|
||||
|
||||
Please see <path>README.md</path> which lists all available code samples with a short description.
|
||||
|
||||
@ -23,7 +23,7 @@ Make sure plugins _Git_, _Gradle_, and _Plugin DevKit_ are enabled.
|
||||
|
||||
<include from="snippets.topic" element-id="pluginDevKitAvailability"/>
|
||||
|
||||
Clone the [intellij-sdk-code-samples](https://github.com/JetBrains/intellij-sdk-code-samples) GitHub repository via <control>Git | Clone...</control>.
|
||||
Clone the [intellij-sdk-code-samples](%gh-sdk-samples-master%/) GitHub repository via <control>Git | Clone...</control>.
|
||||
After successful cloning, the IDE suggests opening the project.
|
||||
|
||||
Select the code sample(s) to import via the [Gradle tool window](https://www.jetbrains.com/help/idea/gradle.html#link_gradle_project).
|
||||
|
@ -458,7 +458,7 @@ Extension Point List
|
||||
{#august-20}
|
||||
|
||||
README added to Code Samples
|
||||
: All code samples used in this guide now come with <path>README</path>, making it easier to browse them. They can be conveniently accessed via a [separate GitHub repository](https://github.com/JetBrains/intellij-sdk-code-samples).
|
||||
: All code samples used in this guide now come with <path>README</path>, making it easier to browse them. They can be conveniently accessed via a [separate GitHub repository](%gh-sdk-samples-master%/).
|
||||
|
||||
### June
|
||||
{#june-20}
|
||||
|
@ -46,7 +46,7 @@ See the [](plugins_quick_start.md) for more details.
|
||||
The IntelliJ Platform is Open Source, under the [Apache License](%gh-ic%/LICENSE.txt), and [hosted on GitHub](https://github.com/JetBrains/intellij-community).
|
||||
|
||||
While this guide refers to the IntelliJ Platform as a separate entity, there is no "IntelliJ Platform" GitHub repository.
|
||||
Instead, the platform is considered to be an almost complete overlap with the [IntelliJ IDEA Community Edition](idea.md), which is a free and Open Source version of IntelliJ IDEA Ultimate (the GitHub repository linked above is the [JetBrains/intellij-community](https://github.com/JetBrains/intellij-community) repository).
|
||||
Instead, the platform is considered to be an almost complete overlap with the [IntelliJ IDEA Community Edition](idea.md), which is a free and Open Source version of IntelliJ IDEA Ultimate (the GitHub repository linked above is the [JetBrains/intellij-community](%gh-ic%/README.md) repository).
|
||||
Please note: starting with the 2021.1 release, some plugins bundled with IntelliJ IDEA Community Edition are not open-source.
|
||||
|
||||
The version of the IntelliJ Platform is defined by the version of the corresponding IntelliJ IDEA Community Edition release.
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
|
||||
<!-- Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
|
||||
|
||||
# Android Studio Plugin Development
|
||||
|
||||
@ -170,7 +170,7 @@ See [](android_plugin_extension_point_list.md).
|
||||
* Discussion of extending Android Lint - [How to Register AndroidLintInspectionBase in IntelliJIdea Plugin](https://intellij-support.jetbrains.com/hc/en-us/community/posts/360005018559-How-to-register-AndroidLintInspectionBase-in-IntellijIdea-Plugin)
|
||||
* Grzegorz Matyszczak's article [How I Automated Creating Files for a New Screen with My Own Android Studio Plugin](https://proandroiddev.com/how-i-automated-creating-files-for-a-new-screen-with-my-own-android-studio-plugin-5d54b14ba6fa)
|
||||
* Marcos Holgado's article series [Write an Android Studio Plugin (Part 1)](https://proandroiddev.com/write-an-android-studio-plugin-part-1-creating-a-basic-plugin-af956c4f8b50)
|
||||
* [Android Plugin README](https://github.com/JetBrains/android#contents)
|
||||
* [Android Plugin README](%gh-ij-android%/README.md)
|
||||
|
||||
## Open Source Plugins for Android Studio
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
|
||||
<!-- Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
|
||||
|
||||
# Custom Language Support
|
||||
|
||||
@ -12,7 +12,7 @@ a plugin must implement only the language-specific part.
|
||||
## Reference
|
||||
|
||||
This part of the documentation explains the main concepts of the *Language API* and guides you through the sequence of steps that are usually required to develop a custom language plugin.
|
||||
You can obtain additional information about the *Language API* from the Javadoc comments for the *Language API* classes and from the Properties language support source code, which is part of the [IntelliJ IDEA Community Edition](https://github.com/JetBrains/intellij-community) source code.
|
||||
You can obtain additional information about the *Language API* from the Javadoc comments for the *Language API* classes and from the Properties language support source code, which is part of the [IntelliJ IDEA Community Edition](%gh-ic%/README.md) source code.
|
||||
|
||||
## Tutorial
|
||||
|
||||
|
@ -848,7 +848,7 @@ If you want to listen to changes in additional documents, use the methods `addWa
|
||||
|
||||
The following bundled open-source plugins make (heavy) use of DOM:
|
||||
|
||||
- [Android](https://github.com/JetBrains/android)
|
||||
- [Android](%gh-ij-android%/README.md)
|
||||
- [Ant](%gh-ic%/plugins/ant)
|
||||
- [Plugin DevKit](%gh-ic%/plugins/devkit/devkit-core)
|
||||
- [Maven](%gh-ic%/plugins/maven)
|
||||
|
@ -49,7 +49,7 @@ The IntelliJ Platform provides NLS context annotations, including:
|
||||
[`@GutterName`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/daemon/GutterName.java),
|
||||
[`@TooltipTitle`](%gh-ic%/platform/platform-api/src/com/intellij/ide/TooltipTitle.java)
|
||||
|
||||
To find all available annotations, search for `@NlsContext` usages in the [intellij-community](https://github.com/JetBrains/intellij-community) source code.
|
||||
To find all available annotations, search for `@NlsContext` usages in the [intellij-community](%gh-ic%/README.md) source code.
|
||||
|
||||
If the provided set of NLS context annotations are not sufficient, create custom annotations.
|
||||
|
||||
|
@ -80,7 +80,7 @@ The most important methods are:
|
||||
- `setupUI()` — defines the UI components for the step. Step UI is built with [](kotlin_ui_dsl_version_2.md)
|
||||
- `setupProject()` — applies the parameters provided in UI to the generated project
|
||||
|
||||
See the example implementations in the [`intellij-community`](https://github.com/JetBrains/intellij-community).
|
||||
See the example implementations in the [`intellij-community`](%gh-ic%/README.md) repository.
|
||||
|
||||
Steps build a tree structure (read the rest of this section for details), as some steps can be displayed depending on previously selected options.
|
||||
`setupUI()` and `setupProject()` of steps building the tree are applied in the order from root to leaf.
|
||||
@ -160,7 +160,7 @@ It is often required to populate a created project with initial assets like:
|
||||
This can be achieved by creating a step extending [`AssetsNewProjectWizardStep`](%gh-ic%/java/idea-ui/src/com/intellij/ide/projectWizard/generators/AssetsNewProjectWizardStep.kt).
|
||||
It allows for adding directories, static assets, assets generated from [Freemarker templates](https://freemarker.apache.org/docs/dgui_quickstart_template.html), and granting them proper file permissions.
|
||||
|
||||
See example implementations in the [`intellij-community`](https://github.com/JetBrains/intellij-community) repository.
|
||||
See example implementations in the [`intellij-community`](%gh-ic%/README.md) repository.
|
||||
|
||||
### Steps Forking the Wizard Flow
|
||||
|
||||
|
@ -33,7 +33,7 @@ It illustrates the components for a custom inspection plugin:
|
||||
* Writing an HTML [description](#inspection-description) of the inspection for display in the inspection preferences panel.
|
||||
* Creating a [test](#inspection-test) for the implemented inspection and quick fix.
|
||||
|
||||
Although the code sample illustrates implementations of these components, it is often useful to see examples of inspections implemented in the [IntelliJ Community](https://github.com/JetBrains/intellij-community) code base.
|
||||
Although the code sample illustrates implementations of these components, it is often useful to see examples of inspections implemented in the [IntelliJ Community](%gh-ic%/README.md) code base.
|
||||
To identify a given inspection's implementation classes, try to find an inspection [by name](explore_api.md#search-for-symbol-names) or [by UI texts](explore_api.md#search-by-ui-text).
|
||||
Consider also searching for existing implementations in [IntelliJ Platform Explorer](https://jb.gg/ipe?extensions=com.intellij.localInspection).
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user