mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-28 01:07:49 +08:00
markdown: table cleanup
This commit is contained in:
parent
6ab54c55b1
commit
cd55ae8e7e
@ -10,14 +10,14 @@ Also, consider posting requests in _#jobs_ channel on [JetBrains Platform Slack]
|
||||
>
|
||||
{type="note"}
|
||||
|
||||
| Name | Contact | Notes |
|
||||
| ------------------ | ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| Joachim Ansorg | [www.plugin-dev.com][ja] | -/- |
|
||||
| Daniel Espendiller | [daniel@espendiller.net][de] | -/- |
|
||||
| Robert Ekendahl | [www.edaphic.studio][re] | Custom Language support |
|
||||
| Alexey Stukalov | [info@cuba-platform.com][ast], [www.haulmont.com][ast2] | Plugins: [CUBA][ast3]. |
|
||||
| Edument | [jonathan@edument.cz][ed], [edument.se][ed2] | Developers of [Comma IDE][ed3] |
|
||||
| Mikhail Bolotov | [mikhail.bolotov@gmail.com][mb] | Plugins: [Cypress Support Pro][cspro], [k6] |
|
||||
| Name | Contact | Notes |
|
||||
|--------------------|---------------------------------------------------------|---------------------------------------------|
|
||||
| Joachim Ansorg | [www.plugin-dev.com][ja] | -/- |
|
||||
| Daniel Espendiller | [daniel@espendiller.net][de] | -/- |
|
||||
| Robert Ekendahl | [www.edaphic.studio][re] | Custom Language support |
|
||||
| Alexey Stukalov | [info@cuba-platform.com][ast], [www.haulmont.com][ast2] | Plugins: [CUBA][ast3]. |
|
||||
| Edument | [jonathan@edument.cz][ed], [edument.se][ed2] | Developers of [Comma IDE][ed3] |
|
||||
| Mikhail Bolotov | [mikhail.bolotov@gmail.com][mb] | Plugins: [Cypress Support Pro][cspro], [k6] |
|
||||
|
||||
[ja]: https://www.plugin-dev.com
|
||||
[de]: mailto:daniel@espendiller.net
|
||||
|
@ -38,13 +38,13 @@
|
||||
|
||||
### Tags
|
||||
|
||||
| Icon | Description | Details |
|
||||
|---|---|---|
|
||||
| ![Deprecated][deprecated] | Deprecated API | Please see code documentation for replacement |
|
||||
| ![Experimental API][experimental] | Experimental API | Implementation annotated with [`@ApiStatus.Experimental`](https://github.com/JetBrains/java-annotations/blob/master/common/src/main/java/org/jetbrains/annotations/ApiStatus.java), API might be altered or removed without prior notice |
|
||||
| ![Internal API][internal] | Internal API | Implementation annotated with [`@ApiStatus.Internal`](https://github.com/JetBrains/java-annotations/blob/master/common/src/main/java/org/jetbrains/annotations/ApiStatus.java), should not be used by 3rd party |
|
||||
| ![Project-Level][project-level] | Project-Level Extension Point/Topic | Can have `Project` as constructor parameter<br/><br/>Extension Point: Declared with `area="IDEA_PROJECT"`<br/>Listener: registered in `<projectListeners>` |
|
||||
| ![Non-Dynamic][non-dynamic] | Non-Dynamic Extension Point | Installation/update of plugin requires IDE restart ([Dynamic Plugins](dynamic_plugins.md)) |
|
||||
| Icon | Description | Details |
|
||||
|-----------------------------------|-------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| ![Deprecated][deprecated] | Deprecated API | Please see code documentation for replacement |
|
||||
| ![Experimental API][experimental] | Experimental API | Implementation annotated with [`@ApiStatus.Experimental`](https://github.com/JetBrains/java-annotations/blob/master/common/src/main/java/org/jetbrains/annotations/ApiStatus.java), API might be altered or removed without prior notice |
|
||||
| ![Internal API][internal] | Internal API | Implementation annotated with [`@ApiStatus.Internal`](https://github.com/JetBrains/java-annotations/blob/master/common/src/main/java/org/jetbrains/annotations/ApiStatus.java), should not be used by 3rd party |
|
||||
| ![Project-Level][project-level] | Project-Level Extension Point/Topic | Can have `Project` as constructor parameter<br/><br/>Extension Point: Declared with `area="IDEA_PROJECT"`<br/>Listener: registered in `<projectListeners>` |
|
||||
| ![Non-Dynamic][non-dynamic] | Non-Dynamic Extension Point | Installation/update of plugin requires IDE restart ([Dynamic Plugins](dynamic_plugins.md)) |
|
||||
|
||||
[experimental]: https://img.shields.io/badge/-Experimental_API-red?style=flat-square
|
||||
[internal]: https://img.shields.io/badge/-Internal_API-darkred?style=flat-square
|
||||
|
@ -10,15 +10,15 @@ Element patterns provide a generic way to specify conditions on objects. Plugin
|
||||
However, plugin authors rarely implement the [`ElementPattern`](upsource:///platform/core-api/src/com/intellij/patterns/ElementPattern.java) interface directly.
|
||||
Instead, we recommend using the high-level pattern classes provided by the IntelliJ Platform:
|
||||
|
||||
| Class | Main Contents | Notable Examples |
|
||||
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Class | Main Contents | Notable Examples |
|
||||
|---------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [`StandardPatterns`](upsource:///platform/core-api/src/com/intellij/patterns/StandardPatterns.java) | Factory for string and char pattern (see below); Logical operations like and, or, not | [`LogbackReferenceContributor`](upsource:///plugins/groovy/src/org/jetbrains/plugins/groovy/ext/logback/LogbackReferenceContributor.kt), [`RegExpCompletionContributor`](upsource:///RegExpSupport/src/org/intellij/lang/regexp/RegExpCompletionContributor.java) |
|
||||
| [`PlatformPatterns`](upsource:///platform/core-api/src/com/intellij/patterns/PlatformPatterns.java) | Factory for PSI-, IElement-, and VirtualFile-patterns | [`FxmlReferencesContributor`](upsource:///plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/FxmlReferencesContributor.java), [`PyDataclassCompletionContributor`](upsource:///python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyDataclassCompletionContributor.kt) |
|
||||
| [`PsiElementPattern`](upsource:///platform/core-api/src/com/intellij/patterns/PsiElementPattern.java) | Patterns for PSI; Checks for children, parents, or neighboring leaves | [`XmlCompletionContributor`](upsource:///xml/impl/src/com/intellij/codeInsight/completion/XmlCompletionContributor.java) |
|
||||
| [`CollectionPattern`](upsource:///platform/core-api/src/com/intellij/patterns/CollectionPattern.java) | Filter and check pattern collections; Mainly used to provide functionality for other high-level pattern classes | [`PsiElementPattern`](upsource:///platform/core-api/src/com/intellij/patterns/PsiElementPattern.java) |
|
||||
| [`TreeElementPattern`](upsource:///platform/core-api/src/com/intellij/patterns/TreeElementPattern.java) | Patterns specifically for checking (PSI) tree structure | [`PyMetaClassCompletionContributor`](upsource:///python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyMetaClassCompletionContributor.java) |
|
||||
| [`StringPattern`](upsource:///platform/core-api/src/com/intellij/patterns/StringPattern.java) | Check if strings match, have a certain length, have a specific beginning or ending, or are one of a collection of strings | [`AbstractGradleCompletionContributor`](upsource:///plugins/gradle/java/src/codeInsight/AbstractGradleCompletionContributor.kt) |
|
||||
| [`CharPattern`](upsource:///platform/core-api/src/com/intellij/patterns/CharPattern.java) | Check if characters are whitespace, digits, or Java identifier parts | [`CompletionUtil`](upsource:///platform/analysis-impl/src/com/intellij/codeInsight/completion/CompletionUtil.java) |
|
||||
| [`PsiElementPattern`](upsource:///platform/core-api/src/com/intellij/patterns/PsiElementPattern.java) | Patterns for PSI; Checks for children, parents, or neighboring leaves | [`XmlCompletionContributor`](upsource:///xml/impl/src/com/intellij/codeInsight/completion/XmlCompletionContributor.java) |
|
||||
| [`CollectionPattern`](upsource:///platform/core-api/src/com/intellij/patterns/CollectionPattern.java) | Filter and check pattern collections; Mainly used to provide functionality for other high-level pattern classes | [`PsiElementPattern`](upsource:///platform/core-api/src/com/intellij/patterns/PsiElementPattern.java) |
|
||||
| [`TreeElementPattern`](upsource:///platform/core-api/src/com/intellij/patterns/TreeElementPattern.java) | Patterns specifically for checking (PSI) tree structure | [`PyMetaClassCompletionContributor`](upsource:///python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyMetaClassCompletionContributor.java) |
|
||||
| [`StringPattern`](upsource:///platform/core-api/src/com/intellij/patterns/StringPattern.java) | Check if strings match, have a certain length, have a specific beginning or ending, or are one of a collection of strings | [`AbstractGradleCompletionContributor`](upsource:///plugins/gradle/java/src/codeInsight/AbstractGradleCompletionContributor.kt) |
|
||||
| [`CharPattern`](upsource:///platform/core-api/src/com/intellij/patterns/CharPattern.java) | Check if characters are whitespace, digits, or Java identifier parts | [`CompletionUtil`](upsource:///platform/analysis-impl/src/com/intellij/codeInsight/completion/CompletionUtil.java) |
|
||||
|
||||
Some built-in languages in the IntelliJ Platform implement their own pattern classes and can provide additional examples:
|
||||
|
||||
|
@ -132,11 +132,11 @@ In contrast, if the `compact` attribute is `false`, an action in the menu appear
|
||||
Some menus like **Tools** have the `compact` attribute set, so there isn't a way to show an action on the tools menu if it is not enabled.
|
||||
|
||||
| Host Menu<br/>`compact` Setting | Action Enabled | Visibility Enabled | Menu Item Visible? | Menu Item Appears Gray? |
|
||||
| :-----: | :------------: | :----------------: | :----------------: | :---------------------: |
|
||||
| T | **F** | T | **F** | N/A |
|
||||
| T | T | T | T | F |
|
||||
| F | **F** | T | **T** | **T** |
|
||||
| F | T | T | T | F |
|
||||
|:-------------------------------:|:--------------:|:------------------:|:------------------:|:-----------------------:|
|
||||
| T | **F** | T | **F** | N/A |
|
||||
| T | T | T | T | F |
|
||||
| F | **F** | T | **T** | **T** |
|
||||
| F | T | T | T | F |
|
||||
|
||||
All other combinations of `compact`, visibility, and enablement produce N/A for gray appearance because the menu item isn't visible.
|
||||
|
||||
|
@ -43,13 +43,13 @@ The following table lists modules that are currently available in all products.
|
||||
>
|
||||
{type="note"}
|
||||
|
||||
| Module for `<depends>` Element<br/>Declaration in <path>plugin.xml</path> File | <br/>Functionality |
|
||||
| ------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
|
||||
| **`com.intellij.modules.platform`** | Messaging, UI Themes, UI Components, Files, Documents, Actions, Components, Services, Extensions, Editors |
|
||||
| `com.intellij.modules.lang` | File Type, Lexer, Parser, Highlighting, References, Code Completion, Find, Rename, Formatter, Code Navigation |
|
||||
| `com.intellij.modules.xml` | XML, XML DOM, XSD/DTD, DOM Model |
|
||||
| `com.intellij.modules.vcs` | VCS Revision Numbers, File Status, Change Lists, File History, Annotations |
|
||||
| `com.intellij.modules.xdebugger` | Debug Session, Stack Frames, Break Points, Source Positions, Memory Views, Tracked Instances |
|
||||
| Module for `<depends>` Element<br/>Declaration in <path>plugin.xml</path> File | <br/>Functionality |
|
||||
|--------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|
|
||||
| **`com.intellij.modules.platform`** | Messaging, UI Themes, UI Components, Files, Documents, Actions, Components, Services, Extensions, Editors |
|
||||
| `com.intellij.modules.lang` | File Type, Lexer, Parser, Highlighting, References, Code Completion, Find, Rename, Formatter, Code Navigation |
|
||||
| `com.intellij.modules.xml` | XML, XML DOM, XSD/DTD, DOM Model |
|
||||
| `com.intellij.modules.vcs` | VCS Revision Numbers, File Status, Change Lists, File History, Annotations |
|
||||
| `com.intellij.modules.xdebugger` | Debug Session, Stack Frames, Break Points, Source Positions, Memory Views, Tracked Instances |
|
||||
|
||||
As of this writing, if a plugin: **A)** is dependent _only_ on one or more of the modules in the table above, **and B)** declares those module dependencies in <path>plugin.xml</path>, then any product developed by JetBrains based on the IntelliJ Platform will load it.
|
||||
|
||||
@ -69,22 +69,22 @@ A plugin project is compatible with PHP functionality if it declares a dependenc
|
||||
|
||||
The following table lists **(1)** modules or built-in plugins that provide specific functionality, and the products currently shipping with them.
|
||||
|
||||
| Module or Plugin for `<depends>` Element<br/>Declaration in <path>plugin.xml</path> File | <br/>Functionality | IntelliJ Platform-Based<br/>Product Compatibility |
|
||||
| ---------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `com.intellij.modules.java` See **(2)** below. <br/>`com.intellij.java` | **Java** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | IntelliJ IDEA, Android Studio |
|
||||
| `com.intellij.modules.androidstudio` | Android SDK Platform, Build Tools, Platform Tools, SDK Tools | Android Studio |
|
||||
| `com.intellij.modules.appcode` | CocoaPods, Core Data Objects, Device & Simulator Support | AppCode |
|
||||
| `com.intellij.modules.cidr.lang` | **C, C++, Objective-C/C++** language PSI Model, Swift/Objective-C Interaction, Inspections, Intentions, Completion, Refactoring, Test Framework | AppCode, CLion |
|
||||
| `com.intellij.modules.cidr.debugger` | Debugger Watches, Evaluations, Breakpoints, Inline Debugging | AppCode, CLion, RubyMine |
|
||||
| `com.intellij.modules.clion` | CMake, Profiler, Embedded Development, Remote Development, Remote Debug, Disassembly | CLion |
|
||||
| `com.intellij.database` | **Database Tools and SQL** language PSI Model, Inspections, Completion, Refactoring, Queries | DataGrip, IntelliJ IDEA Ultimate, AppCode, PhpStorm, PyCharm Professional, RubyMine, CLion, GoLand, Rider, and WebStorm if the Database Tools and SQL plugin is installed. |
|
||||
| `com.intellij.modules.go` | **Go** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | GoLand |
|
||||
| `com.intellij.modules.python` | **Python** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | PyCharm, and other products if the Python plugin is installed. |
|
||||
| `com.intellij.modules.rider` | Connection to **ReSharper** Process in Background | Rider |
|
||||
| `com.intellij.modules.ruby` | **Ruby** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | RubyMine, and IntelliJ IDEA Ultimate if the Ruby plugin is installed. |
|
||||
| `com.intellij.modules.ultimate` | Licensing | All commercial IDEs (IntelliJ IDEA Ultimate, PhpStorm, DataGrip, ...) |
|
||||
| `com.jetbrains.php` | **PHP** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | PhpStorm, and other products if the PHP plugin is installed. |
|
||||
| `JavaScript` | **JavaScript** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | WebStorm, and other products if the JavaScript plugin is installed. |
|
||||
| Module or Plugin for `<depends>` Element<br/>Declaration in <path>plugin.xml</path> File | <br/>Functionality | IntelliJ Platform-Based<br/>Product Compatibility |
|
||||
|------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `com.intellij.modules.java` See **(2)** below. <br/>`com.intellij.java` | **Java** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | IntelliJ IDEA, Android Studio |
|
||||
| `com.intellij.modules.androidstudio` | Android SDK Platform, Build Tools, Platform Tools, SDK Tools | Android Studio |
|
||||
| `com.intellij.modules.appcode` | CocoaPods, Core Data Objects, Device & Simulator Support | AppCode |
|
||||
| `com.intellij.modules.cidr.lang` | **C, C++, Objective-C/C++** language PSI Model, Swift/Objective-C Interaction, Inspections, Intentions, Completion, Refactoring, Test Framework | AppCode, CLion |
|
||||
| `com.intellij.modules.cidr.debugger` | Debugger Watches, Evaluations, Breakpoints, Inline Debugging | AppCode, CLion, RubyMine |
|
||||
| `com.intellij.modules.clion` | CMake, Profiler, Embedded Development, Remote Development, Remote Debug, Disassembly | CLion |
|
||||
| `com.intellij.database` | **Database Tools and SQL** language PSI Model, Inspections, Completion, Refactoring, Queries | DataGrip, IntelliJ IDEA Ultimate, AppCode, PhpStorm, PyCharm Professional, RubyMine, CLion, GoLand, Rider, and WebStorm if the Database Tools and SQL plugin is installed. |
|
||||
| `com.intellij.modules.go` | **Go** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | GoLand |
|
||||
| `com.intellij.modules.python` | **Python** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | PyCharm, and other products if the Python plugin is installed. |
|
||||
| `com.intellij.modules.rider` | Connection to **ReSharper** Process in Background | Rider |
|
||||
| `com.intellij.modules.ruby` | **Ruby** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | RubyMine, and IntelliJ IDEA Ultimate if the Ruby plugin is installed. |
|
||||
| `com.intellij.modules.ultimate` | Licensing | All commercial IDEs (IntelliJ IDEA Ultimate, PhpStorm, DataGrip, ...) |
|
||||
| `com.jetbrains.php` | **PHP** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | PhpStorm, and other products if the PHP plugin is installed. |
|
||||
| `JavaScript` | **JavaScript** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | WebStorm, and other products if the JavaScript plugin is installed. |
|
||||
|
||||
**Notes about Module and Plugin Dependency:**
|
||||
|
||||
|
@ -67,8 +67,8 @@ During plugin installation the IDE reads the plugin JAR/ZIP file, and thereafter
|
||||
What additional information might help a user select a plugin when [browsing the custom plugin repository](https://www.jetbrains.com/help/idea/managing-plugins.html#repos) before installation? The answer depends on the plugins and repository consumers.
|
||||
Here are the candidate elements:
|
||||
|
||||
| Element | Effects & Requirements |
|
||||
|:-------------------------------------------------------------|:----------------------------|
|
||||
| `<name>`<br/>My Plugin Name<br/>`</name>` | By default the name of the plugin JAR/ZIP file is displayed before installation. <br/>Using the `<name>` element displays the name of the plugin. <br/>Contents should match the `<name>` element contents in the plugins's `plugin.xml` file to avoid confusion. |
|
||||
| `<description>`<br/>My plugin is awesome<br/>`</description>` | By default no description for the plugin is displayed before installation. <br/>Using the `<description>` element will cause a description to be displayed before installation. <br/>Contents should match the `<description>` element contents in the plugins's `plugin.xml` file to avoid confusion. <br/>Optionally, an enclosing `<![CDATA[ ]]>` element can be used if the description needs to contain HTML tags. |
|
||||
| `<change-notes>`<br/>Added cool feature<br/>`</change-notes>` | By default no change notes for the plugin are displayed before installation. <br/>Using the `<change-notes>` element will cause a description of changes to be displayed before installation. <br/>Contents should match the `<change-notes>` element contents in the plugin's `plugin.xml` file to avoid confusion. <br/>Optionally, an enclosing `<![CDATA[ ]]>` element can be used if the change notes need to contain HTML tags. |
|
||||
| Element | Effects & Requirements |
|
||||
|:--------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `<name>`<br/>My Plugin Name<br/>`</name>` | By default the name of the plugin JAR/ZIP file is displayed before installation. <br/>Using the `<name>` element displays the name of the plugin. <br/>Contents should match the `<name>` element contents in the plugins's `plugin.xml` file to avoid confusion. |
|
||||
| `<description>`<br/>My plugin is awesome<br/>`</description>` | By default no description for the plugin is displayed before installation. <br/>Using the `<description>` element will cause a description to be displayed before installation. <br/>Contents should match the `<description>` element contents in the plugins's `plugin.xml` file to avoid confusion. <br/>Optionally, an enclosing `<![CDATA[ ]]>` element can be used if the description needs to contain HTML tags. |
|
||||
| `<change-notes>`<br/>Added cool feature<br/>`</change-notes>` | By default no change notes for the plugin are displayed before installation. <br/>Using the `<change-notes>` element will cause a description of changes to be displayed before installation. <br/>Contents should match the `<change-notes>` element contents in the plugin's `plugin.xml` file to avoid confusion. <br/>Optionally, an enclosing `<![CDATA[ ]]>` element can be used if the change notes need to contain HTML tags. |
|
||||
|
@ -47,7 +47,7 @@ To remove stored credentials, pass `null` for the `credentials` parameter.
|
||||
The default storage format depends on the OS.
|
||||
|
||||
| OS | Storage |
|
||||
| ------- | ----------------------------------------------------- |
|
||||
|---------|-------------------------------------------------------|
|
||||
| Windows | File in [KeePass][Windows] format |
|
||||
| macOS | Keychain using [Security Framework][macOS] |
|
||||
| Linux | [Secret Service API][linux] using [libsecret][linux2] |
|
||||
|
@ -49,11 +49,11 @@ See more examples of [visual weight compensation](https://jetbrains.design/intel
|
||||
For basic shapes, use the following sizes.
|
||||
Note the different areas of transparent padding used for each shape:
|
||||
|
||||
| {width="225"} | {:width="225"} |
|
||||
|:---:|:---:|
|
||||
| _Square logo 32px by 32px_ | _Circular logo 36px in diameter_ |
|
||||
| {width="225"} | {:width="225"} |
|
||||
|:---------------------------------------------------------------------------:|:------------------------------------------------------------------------:|
|
||||
| _Square logo 32px by 32px_ | _Circular logo 36px in diameter_ |
|
||||
| {width="225"} | {:width="225"} |
|
||||
| _Horizontal rectangular logo 36px by 26px_ | _Vertical rectangular logo 26px by 36px_ |
|
||||
| _Horizontal rectangular logo 36px by 26px_ | _Vertical rectangular logo 26px by 36px_ |
|
||||
|
||||
|
||||
### Plugin Logo Colors
|
||||
@ -62,17 +62,17 @@ Check the license terms before using the logo.
|
||||
If there is no existing logo, or its use is prohibited, create a custom logo based on the [Action Colors Palette](https://jetbrains.design/intellij/principles/icons/#action-icons) in the IntelliJ Platform UI Guidelines for Icons.
|
||||
|
||||
| {height="200" width="200"} | {:height="200" width="200"} |
|
||||
|:---:|:---:|
|
||||
| _The YouTrack Plugin Logo uses<br/>the YouTrack product logo_ | _The Keymap Plugin Logo uses a color<br/>from the Action Colors Palette_ |
|
||||
|:--------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------:|
|
||||
| _The YouTrack Plugin Logo uses<br/>the YouTrack product logo_ | _The Keymap Plugin Logo uses a color<br/>from the Action Colors Palette_ |
|
||||
|
||||
Ensure a Plugin Logo is visible on both light and dark backgrounds.
|
||||
If one Plugin Logo design does not work on both light and dark backgrounds, create separate light and dark versions of the Plugin Logo.
|
||||
The examples below illustrate how a Plugin Logo design may work well for a light background but not for a dark background.
|
||||
Consequently, a separate Plugin Logo for dark backgrounds is needed.
|
||||
|
||||
| {width="225"} | {:width="225"} | {:width="225"} |
|
||||
|:---:|:---:|:---:|
|
||||
| _The light Plugin Logo design<br/>works well on light UI Theme_ | _The light Plugin Logo design does<br/>not work well on a dark UI Theme_ | _A separate, dark Plugin Logo design<br/>works well on dark UI Theme_ |
|
||||
| {width="225"} | {:width="225"} | {:width="225"} |
|
||||
|:----------------------------------------------------------------:|:------------------------------------------------------------------------:|:---------------------------------------------------------------------:|
|
||||
| _The light Plugin Logo design<br/>works well on light UI Theme_ | _The light Plugin Logo design does<br/>not work well on a dark UI Theme_ | _A separate, dark Plugin Logo design<br/>works well on dark UI Theme_ |
|
||||
|
||||
### Plugin Logo File Format
|
||||
All Plugin Logo images must be in SVG format.
|
||||
|
@ -25,8 +25,8 @@ Instead, configure AppCode plugin projects to use the `intellij.localPath` attri
|
||||
The table below summarizes the `gradle-intellij-plugin` attributes to set in the plugin project's <path>build.gradle</path> file.
|
||||
Click on an entry in the table's *Attribute* column to go to the documentation about that attribute.
|
||||
|
||||
| `gradle-intellij-plugin` Attribute | Attribute Value |
|
||||
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `gradle-intellij-plugin` Attribute | Attribute Value |
|
||||
|------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [`intellij.localPath`][properties] | Path to locally installed target version of AppCode. For example, for macOS:<br/><path>/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/AppCode/ch-0/193.5662.55/AppCode.app/Contents</path>. |
|
||||
| [`runIde.ideDir`][dsl] | Path to locally installed target version of AppCode. For example, for macOS:<br/><path>/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/AppCode/ch-0/193.5662.55/AppCode.app/Contents</path>. |
|
||||
|
||||
|
@ -22,7 +22,7 @@ The table below summarizes the `gradle-intellij-plugin` attributes to set in the
|
||||
Click on an entry in the table's *Attribute* column to go to the documentation about that attribute.
|
||||
|
||||
| `gradle-intellij-plugin` Attribute | Attribute Value |
|
||||
| ---------------------------------------- | ------------------------------------------------------------------------------ |
|
||||
|------------------------------------------|--------------------------------------------------------------------------------|
|
||||
| [`intellij.type`][properties] | `CL` for the product CLion. |
|
||||
| [`intellij.version`][properties] | Set to the targeted CLion version, e.g. `2019.3.1`. |
|
||||
| [`intellij.plugins`][properties] | No specific declaration is needed. |
|
||||
|
@ -22,7 +22,7 @@ Click on an entry in the table's *Attribute* column to go to the documentation a
|
||||
To see how these attributes appear in a similar <path>build.gradle</path> file for PhpStorm, see [Configuring build.gradle using the IntelliJ IDEA Product Attribute](dev_alternate_products.md#configuring-buildgradle-using-the-intellij-idea-product-attribute).
|
||||
|
||||
| `gradle-intellij-plugin` Attribute | Attribute Value |
|
||||
| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
|------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [`intellij.type`][properties] | `IU` for IntelliJ IDEA Ultimate.<br/>(`IC` is incompatible with the required `DatabaseTools` plugin.) |
|
||||
| [`intellij.version`][properties] | `2019.3` Set to the same version as the DataGrip target version, as set by `runIde.ideDir`. |
|
||||
| [`intellij.plugins`][properties] | `plugins 'DatabaseTools'` Dependency on the bundled `DatabaseTools` plugin. |
|
||||
|
@ -41,11 +41,11 @@ To see how these attributes appear in a similar <path>build.gradle</path> file f
|
||||
The Go plugin version is explicitly declared because it isn't bundled with IntelliJ IDEA Ultimate Edition.
|
||||
Select a [version](https://plugins.jetbrains.com/plugin/9568-go/versions) of the Go plugin compatible with the IntelliJ Idea Ultimate version.
|
||||
|
||||
| `gradle-intellij-plugin` Attribute | Attribute Value |
|
||||
| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [`intellij.type`][properties] | `IU` for IntelliJ IDEA Ultimate. The Go plugin isn't compatible with IntelliJ IDEA Community Edition. |
|
||||
| [`intellij.version`][properties] | Set to the same `IU` BRANCH.BUILD as the GoLand target version, e.g. `193.5233.102`. |
|
||||
| [`intellij.plugins`][properties] | `org.jetbrains.plugins.go:193.5233.102.83` for the Go plugin.<br/>See below for Go plugin version information. |
|
||||
| `gradle-intellij-plugin` Attribute | Attribute Value |
|
||||
|------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [`intellij.type`][properties] | `IU` for IntelliJ IDEA Ultimate. The Go plugin isn't compatible with IntelliJ IDEA Community Edition. |
|
||||
| [`intellij.version`][properties] | Set to the same `IU` BRANCH.BUILD as the GoLand target version, e.g. `193.5233.102`. |
|
||||
| [`intellij.plugins`][properties] | `org.jetbrains.plugins.go:193.5233.102.83` for the Go plugin.<br/>See below for Go plugin version information. |
|
||||
| [`runIde.ideDir`][dsl] | Path to locally installed target version of GoLand. For example, on macOS:<br/><path>/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/Goland/ch-0/193.5233.112/GoLand.app/Contents</path>. |
|
||||
|
||||
[properties]: https://github.com/JetBrains/gradle-intellij-plugin/blob/master/README.md#intellij-platform-properties
|
||||
|
@ -58,7 +58,7 @@ Nette is a family of mature and stand-alone components for PHP that create a fra
|
||||
* [Official Nette web site](https://nette.org/en/)
|
||||
|
||||
| Name | Description | Website | GitHub | Plugin |
|
||||
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
|
||||
|-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------|----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
|
||||
| Nette framework helpers | Nette framework helpers make application development in Nette easier. The plugin provides code completion and navigation for Nette components, annotations, and DI service methods in PHP code. It also implements PHP type by `PhpTypeProvider`. | [Nette web](https://nette.org/en) | [intellij-nette](https://github.com/nette-intellij/intellij-nette) | [Nette plugin](https://plugins.jetbrains.com/plugin/7231-nette-framework-helpers) |
|
||||
| Latte | Nette Latte plugin supports Latte language – the safest & truly intuitive templates for PHP. The plugin implements custom language. Partially support PHP like in .php files (code completion, inspections, references to classes, methods, properties, etc.). Supports load config from XML files located in the project. It implements Stub indexes and more around custom language. | [Latte web](https://latte.nette.org/en) | [intellij-latte](https://github.com/nette-intellij/intellij-latte) | [Latte plugin](https://plugins.jetbrains.com/plugin/7457-latte) |
|
||||
| Neon | Nette Neon is commonly used for any structured data, such as settings, language translations, etc. It is very similar to YAML. The plugin implements custom language. Easy implementation for Go to PHP classes and completion for classes. | [Neon web](https://ne-on.org) | [intellij-neon](https://github.com/nette-intellij/intellij-neon) | [Neon plugin](https://plugins.jetbrains.com/plugin/7060-neon-support) |
|
||||
|
@ -24,11 +24,11 @@ The table below summarizes the `gradle-intellij-plugin` attributes to set in the
|
||||
Click on an entry in the table's *Attribute* column to go to the documentation about that attribute.
|
||||
To see how these attributes appear in the <path>build.gradle</path> file for PhpStorm, see [Configuring build.gradle using the IntelliJ IDEA Product Attribute](dev_alternate_products.md#configuring-buildgradle-using-the-intellij-idea-product-attribute).
|
||||
|
||||
| `gradle-intellij-plugin` Attribute | Attribute Value |
|
||||
| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [`intellij.type`][properties] | `IU` for IntelliJ IDEA Ultimate. The required PHP plugin isn't compatible with IntelliJ IDEA Community Edition. |
|
||||
| [`intellij.version`][properties] | Set to the same `IU` BRANCH.BUILD as the PhpStorm target version, e.g. `193.5233.102`. |
|
||||
| [`intellij.plugins`][properties] | `com.jetbrains.php:193.5233.102` for the PHP plugin.<br/>See below for PHP plugin version information. |
|
||||
| `gradle-intellij-plugin` Attribute | Attribute Value |
|
||||
|------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [`intellij.type`][properties] | `IU` for IntelliJ IDEA Ultimate. The required PHP plugin isn't compatible with IntelliJ IDEA Community Edition. |
|
||||
| [`intellij.version`][properties] | Set to the same `IU` BRANCH.BUILD as the PhpStorm target version, e.g. `193.5233.102`. |
|
||||
| [`intellij.plugins`][properties] | `com.jetbrains.php:193.5233.102` for the PHP plugin.<br/>See below for PHP plugin version information. |
|
||||
| [`runIde.ideDir`][dsl] | Path to locally installed target version of PhpStorm. For example, on macOS:<br/><path>/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/PhpStorm/ch-0/193.5233.101/PhpStorm.app/Contents</path>. |
|
||||
|
||||
[properties]: https://github.com/JetBrains/gradle-intellij-plugin/blob/master/README.md#intellij-platform-properties
|
||||
|
@ -16,7 +16,7 @@ The table below summarizes the `gradle-intellij-plugin` attributes to set in the
|
||||
Click on an entry in the table's *Attribute* column to go to the documentation about that attribute.
|
||||
|
||||
| `gradle-intellij-plugin` Attribute | Attribute Value |
|
||||
| ---------------------------------------- | ------------------------------------------------------------------------------ |
|
||||
|------------------------------------------|--------------------------------------------------------------------------------|
|
||||
| [`intellij.type`][properties] | `PY` for PyCharm Professional Edition, or `PC` for PyCharm Community Edition. |
|
||||
| [`intellij.version`][properties] | Set to the targeted `PY` or `PC` version. |
|
||||
| [`intellij.plugins`][properties] | No specific declaration is needed to use `PY` or `PC` APIs. |
|
||||
|
@ -17,11 +17,11 @@ The table below summarizes the `gradle-intellij-plugin` attributes to set in the
|
||||
Click on an entry in the table's *Attribute* column to go to the documentation about that attribute.
|
||||
To see how these attributes appear in a similar <path>build.gradle</path> file for PhpStorm, see [Configuring build.gradle using the IntelliJ IDEA Product Attribute](dev_alternate_products.md#configuring-buildgradle-using-the-intellij-idea-product-attribute).
|
||||
|
||||
| `gradle-intellij-plugin` Attribute | Attribute Value |
|
||||
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [`intellij.type`][properties] | `IU` for IntelliJ IDEA Ultimate. |
|
||||
| [`intellij.version`][properties] | Set to the same `IU` BRANCH.BUILD as the RubyMine target version, e.g. `192.7142.36`. |
|
||||
| [`intellij.plugins`][properties] | `org.jetbrains.plugins.ruby:2019.2.20191029` for the Ruby plugin.<br/>See below for Ruby plugin version information. |
|
||||
| `gradle-intellij-plugin` Attribute | Attribute Value |
|
||||
|------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [`intellij.type`][properties] | `IU` for IntelliJ IDEA Ultimate. |
|
||||
| [`intellij.version`][properties] | Set to the same `IU` BRANCH.BUILD as the RubyMine target version, e.g. `192.7142.36`. |
|
||||
| [`intellij.plugins`][properties] | `org.jetbrains.plugins.ruby:2019.2.20191029` for the Ruby plugin.<br/>See below for Ruby plugin version information. |
|
||||
| [`runIde.ideDir`][dsl] | Path to locally installed target version of RubyMine. For example, on macOS:<br/><path>/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/RubyMine/ch-0/192.7142.37/RubyMine.app/Contents</path>. |
|
||||
|
||||
[properties]: https://github.com/JetBrains/gradle-intellij-plugin/blob/master/README.md#intellij-platform-properties
|
||||
|
@ -21,11 +21,11 @@ The table below summarizes the `gradle-intellij-plugin` attributes to set in the
|
||||
Click on an entry in the table's *Attribute* column to go to the documentation about that attribute.
|
||||
To see how these attributes appear in a similar <path>build.gradle</path> file for PhpStorm, see [Configuring build.gradle using the IntelliJ IDEA Product Attribute](dev_alternate_products.md#configuring-buildgradle-using-the-intellij-idea-product-attribute).
|
||||
|
||||
| `gradle-intellij-plugin` Attribute | Attribute Value |
|
||||
| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [`intellij.type`][properties] | `IU` for IntelliJ IDEA Ultimate.<br/>(`IC` is incompatible with the required `JavaScriptLanguage` plugin) |
|
||||
| [`intellij.version`][properties] | `192.7142.36` Set to the same BRANCH.BUILD as the WebStorm target version. |
|
||||
| [`intellij.plugins`][properties] | Dependency on the `JavaScriptLanguage` plugin. |
|
||||
| `gradle-intellij-plugin` Attribute | Attribute Value |
|
||||
|------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [`intellij.type`][properties] | `IU` for IntelliJ IDEA Ultimate.<br/>(`IC` is incompatible with the required `JavaScriptLanguage` plugin) |
|
||||
| [`intellij.version`][properties] | `192.7142.36` Set to the same BRANCH.BUILD as the WebStorm target version. |
|
||||
| [`intellij.plugins`][properties] | Dependency on the `JavaScriptLanguage` plugin. |
|
||||
| [`runIde.ideDir`][dsl] | Path to locally installed target version of WebStorm. For example, for macOS:<br/><path>/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/WebStorm/ch-0/192.7142.35/WebStorm.app/Contents</path>. |
|
||||
|
||||
[properties]: https://github.com/JetBrains/gradle-intellij-plugin/blob/master/README.md#intellij-platform-properties
|
||||
|
@ -61,7 +61,7 @@ Portions of the module name expressed in `camelCase` format are divided and used
|
||||
The table below shows some example module names and their corresponding groupId and artifactId.
|
||||
|
||||
| Module Name | groupId | artifactId |
|
||||
| ------------------------------- | ------------------------------- | ----------------------- |
|
||||
|---------------------------------|---------------------------------|-------------------------|
|
||||
| intellij.java.compiler.antTasks | com.jetbrains.intellij.java | java-compiler-ant-tasks |
|
||||
| intellij.java.debugger | com.jetbrains.intellij.java | java-debugger |
|
||||
| intellij.platform.util | com.jetbrains.intellij.platform | util |
|
||||
|
@ -24,14 +24,14 @@ The _UI Inspector_ displays that the icon has the internal path `AllIcons.Action
|
||||
Various components used in the IntelliJ Platform expose additional properties.
|
||||
These can be useful to locate the underlying implementation, related Action, etc.
|
||||
|
||||
| Type | Place | Properties |
|
||||
| ----------------------------------------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Type | Place | Properties |
|
||||
|-------------------------------------------------|-----------------------------|--------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [`AnAction`][ActionSystem] | Action Button<br/>Menu Item | `Action` - [`AnAction`][us:AnAction] implementation<br/>`Action ID` - Action `id`<br/>`Action Plugin ID` - contributing plugin |
|
||||
| [`ActionToolbar`][ActionSystem] | Action Toolbar | `Toolbar Group` - Action Group ID<br/>`All Groups` - contained Action Group IDs |
|
||||
| [`DialogWrapper`][DialogWrapper] | Modal Dialog | `dialogWrapperClass` - [`DialogWrapper`][us:DialogWrapper] implementation |
|
||||
| [`GutterMark`][us:GutterMark] | Editor Gutter Icon | `gutter renderer` - [`GutterMark`][us:GutterMark] implementation |
|
||||
| [`IntentionAction`/`QuickFix`][IntentionAction] | Popup Menu in Editor | `intention action`/`quick fix` - [`IntentionAction`][us:IntentionAction] / [`QuickFix`][us:QuickFix] implementation |
|
||||
| [`Tree`][Tree] | Tree | `treeModelClass` - `javax.swing.tree.TreeModel` implementation |
|
||||
| [`ActionToolbar`][ActionSystem] | Action Toolbar | `Toolbar Group` - Action Group ID<br/>`All Groups` - contained Action Group IDs |
|
||||
| [`DialogWrapper`][DialogWrapper] | Modal Dialog | `dialogWrapperClass` - [`DialogWrapper`][us:DialogWrapper] implementation |
|
||||
| [`GutterMark`][us:GutterMark] | Editor Gutter Icon | `gutter renderer` - [`GutterMark`][us:GutterMark] implementation |
|
||||
| [`IntentionAction`/`QuickFix`][IntentionAction] | Popup Menu in Editor | `intention action`/`quick fix` - [`IntentionAction`][us:IntentionAction] / [`QuickFix`][us:QuickFix] implementation |
|
||||
| [`Tree`][Tree] | Tree | `treeModelClass` - `javax.swing.tree.TreeModel` implementation |
|
||||
|
||||
[ActionSystem]: basic_action_system.md
|
||||
[DialogWrapper]: dialog_wrapper.md
|
||||
|
@ -75,9 +75,9 @@ The other attributes are the same as discussed in [Settings EP Attributes](setti
|
||||
|
||||
For the child of a parent, the `id` attribute becomes compound:
|
||||
|
||||
| Attribute | Required | Value |
|
||||
|:--- | :---: |:--- |
|
||||
| `id` | Y | Compound FQN of implementation based on `com.intellij.openapi.options.Configurable` in the form: `XX.YY` where:<br/>`XX` is the parent Settings component FQN-based id.<br/>`YY` is unique to the child among other siblings. |
|
||||
| Attribute | Required | Value |
|
||||
|:----------|:--------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `id` | Y | Compound FQN of implementation based on `com.intellij.openapi.options.Configurable` in the form: `XX.YY` where:<br/>`XX` is the parent Settings component FQN-based id.<br/>`YY` is unique to the child among other siblings. |
|
||||
|
||||
> All children share the parent's `id` as the basis of their own `id`.
|
||||
> All children have an `id` suffix that is unique among their siblings.
|
||||
|
@ -57,18 +57,18 @@ This section provides some additional clarification of those comments.
|
||||
#### Table of Attributes
|
||||
The attributes supported by `com.intellij.applicationConfigurable` and `com.intellij.projectConfigurable` EPs are in the table below:
|
||||
|
||||
| Attribute |Implementation<br/>Basis | Required   | Attribute<br/>Value |
|
||||
| :---------- | :----- | :--------: |:------ |
|
||||
| `instance` | `Configurable` | (1) | FQN of implementation. See [The Configurable Interface](#the-configurable-interface) for more information. |
|
||||
| `provider` | `ConfigurableProvider` | (1) | FQN of implementation. See [The ConfigurableProvider Class](#the-configurableprovider-class) for more information. |
|
||||
| `nonDefaultProject` | `Configurable` | Y | Applicable _only_ to the `com.intellij.projectConfigurable` (project Settings) EP.<br/>`true` = show Settings for all projects _except_ the [default project](https://www.jetbrains.com/help/idea/configure-project-settings.html#new-default-settings).<br/>`false` = show Settings for all projects. |
|
||||
| `displayName` | `Configurable`<br/>`ConfigurableProvider` | (2) | The non-localized Settings name visible to users, which is needed for the Settings dialog left-side menu.<br/>For a _localized_ visible name omit `displayName` and use the `key` and `bundle` attributes. |
|
||||
| `key` and<br/>`bundle` | `Configurable`<br/>`ConfigurableProvider` | (2) | The [localization](localization_guide.md) key and bundle for the Settings name visible to users.<br/>For non-localized visible names omit `key` and `bundle` and use `displayName`. |
|
||||
| `id` | `Configurable`<br/>`ConfigurableProvider` | Y | The unique, FQN identifier for this implementation.<br/>The FQN should be based on the plugin `id` to ensure uniqueness. |
|
||||
| `parentId` | `Configurable`<br/>`ConfigurableProvider` | Y | This attribute is used to create a hierarchy of Settings. This component is declared one of the specified `parentId` component's children. Typically used for placing a Settings panel within the Settings Dialog menu. Acceptable values for `parentId` are given in [Values for Parent ID Attribute](#values-for-parent-id-attribute).<br/>`groupId` is deprecated.(3) |
|
||||
| `groupWeight` | `Configurable`<br/>`ConfigurableProvider` | N | Specifies the weight (stacking order) of this component within the group of a parent configurable component. The default weight is 0, meaning lowest in the order.<br/>If one child in a group or a parent component has non-zero weight, all children will be sorted descending by their weight. If the weights are equal, the components will be sorted ascending by their display name. |
|
||||
| `dynamic` | `Configurable.Composite` | N | This component's children are dynamically calculated by calling the `getConfigurables()` method.<br/>Not recommended because it requires loading additional classes while building a Settings tree. If possible, use XML attributes instead. |
|
||||
| `childrenEPName` | `Configurable` | N | Specifies the FQN name of the Extension Point that will be used to calculate the children of this component. |
|
||||
| Attribute | Implementation<br/>Basis | Required   | Attribute<br/>Value |
|
||||
|:-----------------------|:------------------------------------------|:--------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `instance` | `Configurable` | (1) | FQN of implementation. See [The Configurable Interface](#the-configurable-interface) for more information. |
|
||||
| `provider` | `ConfigurableProvider` | (1) | FQN of implementation. See [The ConfigurableProvider Class](#the-configurableprovider-class) for more information. |
|
||||
| `nonDefaultProject` | `Configurable` | Y | Applicable _only_ to the `com.intellij.projectConfigurable` (project Settings) EP.<br/>`true` = show Settings for all projects _except_ the [default project](https://www.jetbrains.com/help/idea/configure-project-settings.html#new-default-settings).<br/>`false` = show Settings for all projects. |
|
||||
| `displayName` | `Configurable`<br/>`ConfigurableProvider` | (2) | The non-localized Settings name visible to users, which is needed for the Settings dialog left-side menu.<br/>For a _localized_ visible name omit `displayName` and use the `key` and `bundle` attributes. |
|
||||
| `key` and<br/>`bundle` | `Configurable`<br/>`ConfigurableProvider` | (2) | The [localization](localization_guide.md) key and bundle for the Settings name visible to users.<br/>For non-localized visible names omit `key` and `bundle` and use `displayName`. |
|
||||
| `id` | `Configurable`<br/>`ConfigurableProvider` | Y | The unique, FQN identifier for this implementation.<br/>The FQN should be based on the plugin `id` to ensure uniqueness. |
|
||||
| `parentId` | `Configurable`<br/>`ConfigurableProvider` | Y | This attribute is used to create a hierarchy of Settings. This component is declared one of the specified `parentId` component's children. Typically used for placing a Settings panel within the Settings Dialog menu. Acceptable values for `parentId` are given in [Values for Parent ID Attribute](#values-for-parent-id-attribute).<br/>`groupId` is deprecated.(3) |
|
||||
| `groupWeight` | `Configurable`<br/>`ConfigurableProvider` | N | Specifies the weight (stacking order) of this component within the group of a parent configurable component. The default weight is 0, meaning lowest in the order.<br/>If one child in a group or a parent component has non-zero weight, all children will be sorted descending by their weight. If the weights are equal, the components will be sorted ascending by their display name. |
|
||||
| `dynamic` | `Configurable.Composite` | N | This component's children are dynamically calculated by calling the `getConfigurables()` method.<br/>Not recommended because it requires loading additional classes while building a Settings tree. If possible, use XML attributes instead. |
|
||||
| `childrenEPName` | `Configurable` | N | Specifies the FQN name of the Extension Point that will be used to calculate the children of this component. |
|
||||
|
||||
**Attribute Notes:**
|
||||
1) Either `instance` or `provider` must be specified depending on the implementation.
|
||||
@ -79,18 +79,18 @@ The attributes supported by `com.intellij.applicationConfigurable` and `com.inte
|
||||
The table below shows the allowed values for the `parentId` attribute.
|
||||
See the [previous section](#table-of-attributes) for all supported attributes.
|
||||
|
||||
| `parentId` Value | Group | Details |
|
||||
| :--------------- | :---- | :------ |
|
||||
|_default_ | `other` | If neither `parentId` nor `groupId` attribute is set, the component is added to the `other` Settings group. This is undesirable; see `other` group description. |
|
||||
|`appearance` | Appearance & Behavior | This child group contains Settings to personalize IDE appearance, such as: changing themes and font size. Also, it covers Settings to customize behavior such as keymaps, configuring plugins, and system Settings such as password policies, HTTP proxy, updates, and more. |
|
||||
|`build` | Build, Execution, Deployment | Child group containing Settings to configure project integration with different build tools, modify the default compiler Settings, manage server access configurations, customize the debugger behavior, etc. |
|
||||
|`build.tools` | Build Integration | A subgroup of `build`. This subgroup configures project integration with build tools such as Maven, Gradle, or Gant. |
|
||||
|`editor` | Editor | Child group containing Settings to personalize source code appearance, such as fonts, highlighting styles, indents, etc. It also contains Settings to customize the editor's appearance, such as line numbers, caret placement, tabs, source code inspections, setting up templates, and file encodings. | |
|
||||
|`language` | Languages and Frameworks | Child group containing Settings related to specific language frameworks and technologies used in the project. |
|
||||
|`tools` | 3rd Party Settings | Child group containing Settings to configure integration with third-party applications, specify the SSH Terminal connection Settings, manage server certificates and tasks, configure diagrams layout, etc. |
|
||||
|`root` | Super Parent | The invisible parent of all existing groups. Not used except for IDEs built on top of the IntelliJ Platform, or extensive suites of Settings. You should not place settings in this group. |
|
||||
|`other` | Catch-all | The IntelliJ Platform no longer uses this group. Do not use this group. Use the `tools` group instead. |
|
||||
|`project` | Project-related Settings | The IntelliJ Platform no longer uses this group. It was intended to store some project-related settings. Do not use this group. |
|
||||
| `parentId` Value | Group | Details |
|
||||
|:-----------------|:-----------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| _default_ | `other` | If neither `parentId` nor `groupId` attribute is set, the component is added to the `other` Settings group. This is undesirable; see `other` group description. |
|
||||
| `appearance` | Appearance & Behavior | This child group contains Settings to personalize IDE appearance, such as: changing themes and font size. Also, it covers Settings to customize behavior such as keymaps, configuring plugins, and system Settings such as password policies, HTTP proxy, updates, and more. |
|
||||
| `build` | Build, Execution, Deployment | Child group containing Settings to configure project integration with different build tools, modify the default compiler Settings, manage server access configurations, customize the debugger behavior, etc. |
|
||||
| `build.tools` | Build Integration | A subgroup of `build`. This subgroup configures project integration with build tools such as Maven, Gradle, or Gant. |
|
||||
| `editor` | Editor | Child group containing Settings to personalize source code appearance, such as fonts, highlighting styles, indents, etc. It also contains Settings to customize the editor's appearance, such as line numbers, caret placement, tabs, source code inspections, setting up templates, and file encodings. | |
|
||||
| `language` | Languages and Frameworks | Child group containing Settings related to specific language frameworks and technologies used in the project. |
|
||||
| `tools` | 3rd Party Settings | Child group containing Settings to configure integration with third-party applications, specify the SSH Terminal connection Settings, manage server certificates and tasks, configure diagrams layout, etc. |
|
||||
| `root` | Super Parent | The invisible parent of all existing groups. Not used except for IDEs built on top of the IntelliJ Platform, or extensive suites of Settings. You should not place settings in this group. |
|
||||
| `other` | Catch-all | The IntelliJ Platform no longer uses this group. Do not use this group. Use the `tools` group instead. |
|
||||
| `project` | Project-related Settings | The IntelliJ Platform no longer uses this group. It was intended to store some project-related settings. Do not use this group. |
|
||||
|
||||
## Implementations for Settings Extension Points
|
||||
Implementations for `com.intellij.projectConfigurable` and `com.intellij.applicationConfigurable` EPs can have one of two bases:
|
||||
|
@ -197,7 +197,7 @@ The control keys for UI Tabs were expanded from release 2019.1 to 2019.2 of the
|
||||
The 2019.1 release control keys are compatible with release 2019.2 and later versions of the IntelliJ Platform.
|
||||
|
||||
| Release 2019.1 Element | Release 2019.2 Element | Description of Release 2019.2 Element |
|
||||
| -------------------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
||||
|----------------------------|----------------------------|------------------------------------------------------------------------------------------------------------------------|
|
||||
| N/A | **`DefaultTabs`** | Applied to all tabs except `TabbedPane`, _unless_ overridden by a more specific Tab control element. |
|
||||
| **`EditorTabs`** | **`EditorTabs`** | Applied only to Editor tabs. Overrides any `DefaultTab` settings. 192 has many more `property` settings than 191. |
|
||||
| **`ToolWindow.HeaderTab`** | **`ToolWindow.HeaderTab`** | Applied only to Tool Window tabs. Overrides any `DefaultTab` settings. 192 has many more `property` settings than 191. |
|
||||
|
@ -78,7 +78,7 @@ All keys must follow this Naming Pattern:
|
||||
#### Property
|
||||
|
||||
| Word | Use for | Example |
|
||||
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
|
||||
|-------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------|
|
||||
| **`foreground`** | Text color. | `Label.foreground` |
|
||||
| **`background`** | Background color for objects with text. | `Label.background` |
|
||||
| **`<part>Color`** | Objects with a single color (do not have foreground/background). Do not use the word “Color” separately, always use with the “part” word. <br/><br/>_The word “Color” shows that this is a color property. Otherwise, it can be confused with a property of another type._ | `Popup.borderColor` <br/> `Group.separatorColor` |
|
||||
@ -86,7 +86,7 @@ All keys must follow this Naming Pattern:
|
||||
#### State
|
||||
|
||||
| Word | Use for | Example |
|
||||
| --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
|
||||
|-----------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|
|
||||
| ~~**`Active`**~~ | Enabled components, default state. Omit this word. The default state does not need explicit naming. | `Notification.background` |
|
||||
| **`Inactive`** | Enabled components that might be perceived as interactive but are actually not. Example: a tree with visible selection but not in focus. Goes after other state words. | `Tree.inactiveBackground` <br/> `ToolWindow.HeaderTab.hoverInactiveBackground` |
|
||||
| **`Focused`** | The current focused component. | `Button.focusedBorderColor` |
|
||||
@ -102,7 +102,7 @@ A part is an internal element of a component, e.g., an arrow button in a combo b
|
||||
If a part is common among several components, use the same name for it. Notable examples of common parts:
|
||||
|
||||
| Common parts | Use for | Example |
|
||||
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
||||
|----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **`Accelerator`** <br/> **`Shortcut`** | Shortcut foreground. | `Menu.acceleratorForeground` <br/> `Editor.shortcutForeground` |
|
||||
| **`Border`** | A line around a component. | `NavBar.borderColor` |
|
||||
| **`Caret`** | The vertical line that denotes typing place. | `TextField.caretForeground` |
|
||||
@ -134,7 +134,7 @@ Capitalize Object and SubObject. Use lowerCamelCase for property.
|
||||
#### Do Not Use
|
||||
|
||||
| Do not use | Use instead |
|
||||
| ----------------------------------------- | ------------- |
|
||||
|-------------------------------------------|---------------|
|
||||
| `Color` _as a separate word_ | `<Part>Color` |
|
||||
| `Outline` | `borderColor` |
|
||||
| `Text` | `Foreground` |
|
||||
|
@ -94,7 +94,7 @@ In some cases, you can skip dark variants if the original icon looks good under
|
||||
Required icon sizes depend on the usage as listed in the following table:
|
||||
|
||||
| Usage | Icon Size (pixels) |
|
||||
| ---------------------- | ------------------ |
|
||||
|------------------------|--------------------|
|
||||
| Node, Action, Filetype | 16x16 |
|
||||
| Tool window | 13x13 |
|
||||
| Editor gutter | 12x12 |
|
||||
@ -143,8 +143,8 @@ The `IconLoader` class will load the icon that matches the best depending on the
|
||||
|
||||
Here are examples of <path>toolWindowStructure.png</path> icon representations:
|
||||
|
||||
| Theme/Resolution | File name | Image |
|
||||
| ---------------- | -------------------------------------------- | --------------------------------------------------------------------------- |
|
||||
| Theme/Resolution | File name | Image |
|
||||
|------------------|----------------------------------------------|-------------------------------------------------------------------------|
|
||||
| Default | <path>toolWindowStructure.png</path> |  |
|
||||
| Darcula | <path>toolWindowStructure_dark.png</path> |  |
|
||||
| Default + Retina | <path>toolWindowStructure@2x.png</path> |  |
|
||||
|
@ -300,12 +300,12 @@ checkBox("Hide tabs if there is no space", uiSettings::hideTabsIfNeed)
|
||||
|
||||
Sample usages in IntelliJ Platform IDEs:
|
||||
|
||||
| User Interface | Implementation |
|
||||
|----------------|----------------|
|
||||
| <menupath>Settings/Preferences | Editor | Reader Mode</menupath> | [`ReaderModeConfigurable`](upsource:///platform/lang-impl/src/com/intellij/codeInsight/actions/ReaderModeConfigurable.kt) |
|
||||
| <control>New Branch</control> dialog in Git ([Manage Git branches](https://www.jetbrains.com/help/idea/manage-branches.html)) | [`GitNewBranchDialog`](upsource:///plugins/git4idea/src/git4idea/branch/GitNewBranchDialog.kt) |
|
||||
| <menupath>Settings/Preferences | Tools | Diff & Merge</menupath> | [`DiffSettingsConfigurable`](upsource:///platform/diff-impl/src/com/intellij/diff/settings/DiffSettingsConfigurable.kt) |
|
||||
| <menupath>Settings/Preferences | Editor | General | Editor Tabs</menupath> | [`EditorTabsConfigurable`](upsource:///platform/platform-impl/src/com/intellij/application/options/editor/EditorTabsConfigurable.kt) |
|
||||
| User Interface | Implementation |
|
||||
|-------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| <menupath>Settings/Preferences | Editor | Reader Mode</menupath> | [`ReaderModeConfigurable`](upsource:///platform/lang-impl/src/com/intellij/codeInsight/actions/ReaderModeConfigurable.kt) |
|
||||
| <control>New Branch</control> dialog in Git ([Manage Git branches](https://www.jetbrains.com/help/idea/manage-branches.html)) | [`GitNewBranchDialog`](upsource:///plugins/git4idea/src/git4idea/branch/GitNewBranchDialog.kt) |
|
||||
| <menupath>Settings/Preferences | Tools | Diff & Merge</menupath> | [`DiffSettingsConfigurable`](upsource:///platform/diff-impl/src/com/intellij/diff/settings/DiffSettingsConfigurable.kt) |
|
||||
| <menupath>Settings/Preferences | Editor | General | Editor Tabs</menupath> | [`EditorTabsConfigurable`](upsource:///platform/platform-impl/src/com/intellij/application/options/editor/EditorTabsConfigurable.kt) |
|
||||
|
||||
## FAQ
|
||||
|
||||
|
@ -12,12 +12,12 @@ Popups can optionally display a title, are optionally movable and resizable (and
|
||||
The [`JBPopupFactory`](upsource:///platform/platform-api/src/com/intellij/openapi/ui/popup/JBPopupFactory.java) interface allows you to create popups that display different kinds of components, depending on your specific needs.
|
||||
The most commonly used methods are:
|
||||
|
||||
| Method | Description |
|
||||
|--------|-------------|
|
||||
| Method | Description |
|
||||
|---------------------------------|------------------------------------------------------------------------------------------------------------------|
|
||||
| `createComponentPopupBuilder()` | Generic, allows showing any [Swing](https://docs.oracle.com/javase/tutorial/uiswing/start/index.html) component. |
|
||||
| `createPopupChooserBuilder()` | For choosing one or more items from a plain `java.util.List`. |
|
||||
| `createConfirmation()` | For choosing between two options, and performing different actions depending on which option is selected. |
|
||||
| `createActionGroupPopup()` | Show actions from an [Action Group](grouping_action.md) and executes the action selected by the user. |
|
||||
| `createPopupChooserBuilder()` | For choosing one or more items from a plain `java.util.List`. |
|
||||
| `createConfirmation()` | For choosing between two options, and performing different actions depending on which option is selected. |
|
||||
| `createActionGroupPopup()` | Show actions from an [Action Group](grouping_action.md) and executes the action selected by the user. |
|
||||
|
||||
### Action Groups
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user