diff --git a/topics/basics/getting_started/deploying_plugin.md b/topics/basics/getting_started/deploying_plugin.md index b32a7eae9..5a67f6217 100644 --- a/topics/basics/getting_started/deploying_plugin.md +++ b/topics/basics/getting_started/deploying_plugin.md @@ -23,4 +23,4 @@ To deploy a plugin: ![Jar File Location](jar_location.png) -* Restart your IDE so the changes will take effect. \ No newline at end of file +* Restart your IDE so the changes will take effect. diff --git a/topics/basics/indexing_and_psi_stubs/file_based_indexes.md b/topics/basics/indexing_and_psi_stubs/file_based_indexes.md index 445ee345c..5dae13c96 100644 --- a/topics/basics/indexing_and_psi_stubs/file_based_indexes.md +++ b/topics/basics/indexing_and_psi_stubs/file_based_indexes.md @@ -25,7 +25,7 @@ When accessing an index, specify the key you're interested in and get back the l ## Implementing a File-Based Index - > A relatively simple file-based index implementation is the [UI Designer bound forms index](upsource:///plugins/ui-designer/src/com/intellij/uiDesigner/binding/FormClassIndex.java), storing FQN of bound implementation class for [GUI Designer](https://www.jetbrains.com/help/idea/gui-designer-basics.html) `.form` files. + > A relatively simple file-based index implementation is the [UI Designer bound forms index](upsource:///plugins/ui-designer/src/com/intellij/uiDesigner/binding/FormClassIndex.java), storing FQN of bound implementation class for [GUI Designer](https://www.jetbrains.com/help/idea/gui-designer-basics.html) .form files. > {type="tip"} @@ -99,4 +99,4 @@ Generally, the word index should be accessed indirectly by using helper methods ## Additional Index Roots -To add additional files/directories to be indexed, implement [`IndexableSetContributor`](upsource:///platform/indexing-api/src/com/intellij/util/indexing/IndexableSetContributor.java) and register in [`com.intellij.indexedRootsProvider`](https://jb.gg/ipe?extensions=com.intellij.indexedRootsProvider) extension point. \ No newline at end of file +To add additional files/directories to be indexed, implement [`IndexableSetContributor`](upsource:///platform/indexing-api/src/com/intellij/util/indexing/IndexableSetContributor.java) and register in [`com.intellij.indexedRootsProvider`](https://jb.gg/ipe?extensions=com.intellij.indexedRootsProvider) extension point. diff --git a/topics/basics/indexing_and_psi_stubs/stub_indexes.md b/topics/basics/indexing_and_psi_stubs/stub_indexes.md index 436226ae0..318749fab 100644 --- a/topics/basics/indexing_and_psi_stubs/stub_indexes.md +++ b/topics/basics/indexing_and_psi_stubs/stub_indexes.md @@ -25,7 +25,7 @@ You usually don't need to have stubs for things like statements or local variabl The following steps need to be performed only once for each language that supports stubs: * Change the file element type for your language (the element type that you return from `ParserDefinition.getFileNodeType()`) to a class that extends [`IStubFileElementType`](upsource:///platform/core-impl/src/com/intellij/psi/tree/IStubFileElementType.java). -* In your `plugin.xml`, define the `com.intellij.stubElementTypeHolder` extension and specify the interface which contains the `IElementType` constants used by your language's parser as well as `externalIdPrefix` if possible ([example](upsource:///plugins/properties/src/META-INF/plugin.xml)). +* In your plugin.xml, define the `com.intellij.stubElementTypeHolder` extension and specify the interface which contains the `IElementType` constants used by your language's parser as well as `externalIdPrefix` if possible ([example](upsource:///plugins/properties/src/META-INF/plugin.xml)). For each element type that you want to store in the stub tree, you need to perform the following steps: diff --git a/topics/basics/persisting_state_of_components.md b/topics/basics/persisting_state_of_components.md index 027597d66..3bcc16357 100644 --- a/topics/basics/persisting_state_of_components.md +++ b/topics/basics/persisting_state_of_components.md @@ -134,7 +134,7 @@ It has the following fields: The simplest ways of specifying the `@Storage` annotation are as follows: -* `@Storage("yourName.xml")` If a component is project-level — for `.ipr` based projects standard project file is used automatically - no need to specify anything. +* `@Storage("yourName.xml")` If a component is project-level — for .ipr based projects standard project file is used automatically - no need to specify anything. * `@Storage(StoragePathMacros.WORKSPACE_FILE)` for values stored in the workspace file. diff --git a/topics/basics/project_structure.md b/topics/basics/project_structure.md index f5db681d3..117f166af 100644 --- a/topics/basics/project_structure.md +++ b/topics/basics/project_structure.md @@ -30,9 +30,9 @@ A module can depend on other modules of the project. ### Library A _library_ is an archive of compiled code (such as JAR files) on which modules depend. The IntelliJ Platform supports three types of libraries: -* **Module Library**: the library classes are visible only in this module, and the library information is recorded in the module's `.iml` file. -* **Project Library**: the library classes are visible within the project, and the library information is recorded in the project's `.ipr` file or in `.idea/libraries`. -* **Global Library**: the library information is recorded in the `applicationLibraries.xml` file in the `~/.IntelliJIdea/config/options` directory. +* **Module Library**: the library classes are visible only in this module, and the library information is recorded in the module's .iml file. +* **Project Library**: the library classes are visible within the project, and the library information is recorded in the project's .ipr file or in .idea/libraries. +* **Global Library**: the library information is recorded in the applicationLibraries.xml file in the ~/.IntelliJIdea/config/options directory. Global libraries are similar to project libraries but are visible for different projects. For more information about libraries, refer to [Library](https://www.jetbrains.com/help/idea/working-with-libraries.html). diff --git a/topics/basics/run_configurations/run_configuration_management.md b/topics/basics/run_configurations/run_configuration_management.md index 20bd21f53..59fc3bfbd 100644 --- a/topics/basics/run_configurations/run_configuration_management.md +++ b/topics/basics/run_configurations/run_configuration_management.md @@ -88,7 +88,7 @@ If it is, you return a [`RefactoringElementListener`](upsource:///platform/analy ## Creating Configurations from Context Many plugins support automatic creation of run configurations from context so that the user can click, for example, on an application or test class and automatically run it using the correct run configuration type. -To support that, you need to provide an implementation of the [`RunConfigurationProducer`](upsource:///platform/lang-api/src/com/intellij/execution/actions/RunConfigurationProducer.java) interface and to register it as `` in your `plugin.xml`. +To support that, you need to provide an implementation of the [`RunConfigurationProducer`](upsource:///platform/lang-api/src/com/intellij/execution/actions/RunConfigurationProducer.java) interface and to register it as `` in your plugin.xml. This API was redesigned in IntelliJ IDEA 13; the previous [`RuntimeConfigurationProducer`](upsource:///platform/lang-api/src/com/intellij/execution/junit/RuntimeConfigurationProducer.java) is a much more confusing version of the same API. The two main methods that you need to implement are: diff --git a/topics/intro/sdk_style.md b/topics/intro/sdk_style.md index 4c8bddb52..dbc2e1bdd 100644 --- a/topics/intro/sdk_style.md +++ b/topics/intro/sdk_style.md @@ -77,7 +77,7 @@ General Markdown links have the default Markdown link style: If URL contains `%` character, append `{interpolate-variables="false"}`. * Linking to pages within the SDK documentation: `[Page Title](page.md)`{disable-links} links to an SDK doc page (all located under /topics). - Note that the extension is `.md`, _NOT_ `.html`. + Note that the extension is .md, _NOT_ .html. * Linking to specific _sections_ on pages in the SDK documentation. The anchor name will be all lower case, and spaces are replaced with `-`, e.g. `## Page setup` becomes `#page-setup`. Once the anchor (`#`) character of the link is entered, the IDE code completion feature shows the available sections. @@ -257,7 +257,7 @@ A placeholder is useful to keep track of what should be documented, but hasn't y When renaming pages, redirects should be configured so existing links and bookmarks continue working. -Specify the previous path(s) with `.html` extension in `accepts-web-file-names` attribute: +Specify the previous path(s) with .html extension in `accepts-web-file-names` attribute: ```xml .properties configuration files) can be registered via `com.intellij.spring.SpringInspectionsRegistry$AdditionalFilesContributor` #### Configure Spring Support for Other Frameworks Use `com.intellij.spring.facet.SpringConfigurator` to provide "automatic" configuration when Spring facet is added via framework wizard. diff --git a/topics/reference_guide/color_scheme_management.md b/topics/reference_guide/color_scheme_management.md index fe0ce7f03..ac56a8056 100644 --- a/topics/reference_guide/color_scheme_management.md +++ b/topics/reference_guide/color_scheme_management.md @@ -9,7 +9,7 @@ Previously language plug-ins were using fixed default colors incompatible, for e The new implementation allows specifying a dependency on a set of standard text attributes linked to a scheme but not to any specific language. Language-specific attributes still can be set by a scheme designer if needed, but it's optional. -New color schemes have got a new `.icls` (Idea CoLor Scheme) extension to avoid confusion about compatibility problems with older platform versions: +New color schemes have got a new .icls (Idea CoLor Scheme) extension to avoid confusion about compatibility problems with older platform versions: if only standard attributes are set, they will not be used by the version before 12.1, resulting in different highlighting colors. ## Plug-in Developers @@ -41,14 +41,14 @@ The rule is the same: if text attributes can not be found by the `MY_PREDEFINED_ {type="note"} If you are unsure which base key to use, it's better to pick the most generic one, for example, `DefaultLanguageHighlighterColors.IDENTIFIER`. -Remember that using fixed default attributes *will force* a scheme designer to explicitly set up a color for this element. +Remember that using fixed default attributes *will force* a scheme designer to explicitly set up a color for this element. Otherwise, its default colors may visually conflict with a color scheme. If the scheme designer doesn't have a language plug-in, he will not be able to fix this at all. ### Providing Attributes for Specific Schemes A language plug-in may provide default text attributes for "Default" and "Darcula" bundled schemes or basically for any other scheme if the scheme's name is known. -This can be done in `plugin.xml` by adding an `com.intellij.additionalTextAttributes` extension providing the name of the file containing desired text attributes, for example: +This can be done in plugin.xml by adding an `com.intellij.additionalTextAttributes` extension providing the name of the file containing desired text attributes, for example: ```xml @@ -58,8 +58,8 @@ This can be done in `plugin.xml` by adding an `com.intellij.additionalTextAttrib ``` -It tells the IDE that the file `MyLangDefault.xml` must be searched in resources under `colorSchemes`. -Note that the path should *not* start with a backslash and its fully qualified name (in our case `colorSchemes/MyLangDefault.xml`) *MUST BE UNIQUE* to avoid naming collisions between different providers. +It tells the IDE that the file MyLangDefault.xml must be searched in resources under colorSchemes. +Note that the path should *not* start with a backslash and its fully qualified name (in our case colorSchemes/MyLangDefault.xml) *MUST BE UNIQUE* to avoid naming collisions between different providers. Thus adding a language prefix, for example, "MyLang", is highly recommended. The file itself is an extract from a color scheme with required attributes, for example: @@ -82,8 +82,8 @@ The file itself is an extract from a color scheme with required attributes, for ``` -*Note:* When the scheme is copied via "Save as..." all its attributes, including the ones defined in the extension, will be copied to the new scheme. -A scheme designer may need to check that these copied attributes do not conflict with his/her color scheme, although in this case the plug-in is installed, and it should not cause any problems. +*Note:* When the scheme is copied via "Save as..." all its attributes, including the ones defined in the extension, will be copied to the new scheme. +A scheme designer may need to check that these copied attributes do not conflict with his/her color scheme, although in this case, the plug-in is installed, and it should not cause any problems. Anyway, try to stick with a simple key dependency if possible (note that it works well for "Darcula") and provide explicit attributes only if necessary. ## Scheme Designers @@ -91,10 +91,10 @@ Anyway, try to stick with a simple key dependency if possible (note that it work ### A Typical Workflow for a New Scheme Creation * Choose a scheme which will be used as a base, for example, "Default" -* Click "Save As.." and give a name for the new scheme -* First set attributes in *General* section and proceed with *Language Defaults* +* Click "Save As..." and give a name for the new scheme +* First set attributes in the *General* section and proceed with *Language Defaults* * Check all the languages and adjust language-specific text attributes if necessary. - In most cases this may not be needed, but two cases may require an extra action: + In most cases, this may not be needed, but two cases may require an extra action: * There is an obsolete plug-in which does not use the new color scheme management API and therefore does not utilize the attributes set in "Language Defaults". Ideally, a report must be created for the language plug-in so that its author will fix it eventually. @@ -105,6 +105,6 @@ Anyway, try to stick with a simple key dependency if possible (note that it work ### Text Attributes Inheritance For many language text attributes that do not have any values, there will be a line indicating that the attributes are inherited from a specific section/attributes, such as "Keyword (Language Defaults)". -If an element has *any* attributes set, only these attributes are used. +If an element has *any* attributes set, only these attributes are used. All attributes from the base element are ignored. -To *restore* the inheritance, unchecks all the boxes, and click *Apply*. \ No newline at end of file +To *restore* the inheritance, unchecks all the boxes, and click *Apply*. diff --git a/topics/reference_guide/frameworks_and_external_apis/external_builder_api.md b/topics/reference_guide/frameworks_and_external_apis/external_builder_api.md index bf2dc7478..8d7487eb7 100644 --- a/topics/reference_guide/frameworks_and_external_apis/external_builder_api.md +++ b/topics/reference_guide/frameworks_and_external_apis/external_builder_api.md @@ -45,8 +45,8 @@ To pass custom data between the invocation of the same builder between multiple The external builder process uses the standard Java [services](https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html) mechanism to support plugins. There are several service interfaces (e.g. [`BuilderService`](upsource:///jps/jps-builders/src/org/jetbrains/jps/incremental/BuilderService.java) which can be implemented in plugins to extend the builder functionality. -An implementation of a service needs to be registered by creating the `META-INF/services/` file containing the implementation class's qualified name. -E.g. `BuilderService` implementations are registered in `META-INF/services/org.jetbrains.jps.incremental.BuilderService` file. +An implementation of a service needs to be registered by creating the META-INF/services/$service-interface-fqn$ file containing the implementation class's qualified name. +E.g. `BuilderService` implementations are registered in META-INF/services/org.jetbrains.jps.incremental.BuilderService file. These files don't have extensions, so you need to map corresponding patterns to text files in IDE settings. ### Registering a Plugin for External Builder @@ -108,11 +108,11 @@ The log file is located under the directory: /log/build-log ``` -There, both `build-log.log` and `build-log.properties` files can be found. -The `build-log.properties` is a log4j configuration file, where the log level and desired logging categories can be adjusted. +There, both build-log.log and build-log.properties files can be found. +The build-log.properties is a log4j configuration file, where the log level and desired logging categories can be adjusted. This file contains logging from all build sessions, including those from the auto-make. -In IntelliJ Platform versions before version 14.1, log4j configuration was stored in `build-log.xml`. +In IntelliJ Platform versions before version 14.1, log4j configuration was stored in build-log.xml. ### Accessing Project Model and Configuration from External Build @@ -125,4 +125,4 @@ In that case, you need to extend the JPS model (use `JpsOsmorcModuleExtension` a If your compiler isn't involved in the compilation of an existing [`BuildTarget`](upsource:///jps/jps-builders/src/org/jetbrains/jps/builders/BuildTarget.java), you need to create a new implementation of `BuildTarget` and `BuildTargetType`. Also, register an implementation of [`BuildTargetScopeProvider`](upsource:///java/compiler/impl/src/com/intellij/compiler/impl/BuildTargetScopeProvider.java) extension on the IDE side to add required targets to the build scope. -The builder implementation should extend either [`TargetBuilder`](upsource:///jps/jps-builders/src/org/jetbrains/jps/incremental/TargetBuilder.java) or [`ModuleLevelBuilder`](upsource:///jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleLevelBuilder.java) class and should be created using [`BuilderService`](upsource:///jps/jps-builders/src/org/jetbrains/jps/incremental/BuilderService.java) extension. \ No newline at end of file +The builder implementation should extend either [`TargetBuilder`](upsource:///jps/jps-builders/src/org/jetbrains/jps/incremental/TargetBuilder.java) or [`ModuleLevelBuilder`](upsource:///jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleLevelBuilder.java) class and should be created using [`BuilderService`](upsource:///jps/jps-builders/src/org/jetbrains/jps/incremental/BuilderService.java) extension. diff --git a/topics/reference_guide/frameworks_and_external_apis/external_system_integration.md b/topics/reference_guide/frameworks_and_external_apis/external_system_integration.md index 6479b3219..199d8956c 100644 --- a/topics/reference_guide/frameworks_and_external_apis/external_system_integration.md +++ b/topics/reference_guide/frameworks_and_external_apis/external_system_integration.md @@ -6,7 +6,7 @@ This page provides a high-level overview of the *External System* sub-system. There are multiple project management systems ([Apache Maven](https://maven.apache.org/), [Gradle](https://www.gradle.org/), [sbt](https://www.scala-sbt.org/), etc.) and IntelliJ Platform provides a mechanism to support them in IDEs. Most of the project management systems provide a similar set of facilities from the integration point of view: -* build a project from external system config (`pom.xml`, `build.gradle`, etc.) +* build a project from external system config (pom.xml, build.gradle, etc.) * provide a list of available tasks * allow to execute a particular task * and more diff --git a/topics/reference_guide/intellij_artifacts.md b/topics/reference_guide/intellij_artifacts.md index c804907c8..c8568fc10 100644 --- a/topics/reference_guide/intellij_artifacts.md +++ b/topics/reference_guide/intellij_artifacts.md @@ -17,22 +17,22 @@ See the [Maven coordinates](#specify-the-maven-coordinates-for-the-artifact) sec Both the Releases and Snapshots repositories have two types of content: * Binary and source code artifacts for cross-platform, ZIP distributions of IntelliJ Platform-based IDEs, such as IntelliJ IDEA, CLion, Rider, and MPS. - These artifacts are _not intended_ to be accessed directly from a plugin project's `build.gradle` file. + These artifacts are _not intended_ to be accessed directly from a plugin project's build.gradle file. The `gradle-intellij-plugin` will access them as-needed for a plugin project. * Artifacts for individual modules from the IntelliJ Platform. -These may be downloaded, or accessed directly from a `build.gradle` file, as explained below. +These may be downloaded, or accessed directly from a build.gradle file, as explained below. ### Third-Party Dependencies Artifacts for IntelliJ Platform third-party dependencies are hosted at a separate [intellij-dependencies](https://cache-redirector.jetbrains.com/intellij-dependencies) repository. -A link to this repository should be added to `pom.xml`/`build.gradle` files when individual modules from an IntelliJ Platform artifacts repository are used. +A link to this repository should be added to pom.xml/build.gradle files when individual modules from an IntelliJ Platform artifacts repository are used. > Usages of deprecated URL `https://jetbrains.bintray.com/intellij-third-party-dependencies` must be replaced with `https://cache-redirector.jetbrains.com/intellij-dependencies` in build scripts. > {type="warning"} ## Using IntelliJ Platform Module Artifacts -IntelliJ Platform module artifacts are utilized by adding information to a project's `build.gradle` file. +IntelliJ Platform module artifacts are utilized by adding information to a project's build.gradle file. More information about [Gradle support](https://www.jetbrains.com/help/idea/gradle.html) is available in the IntelliJ IDEA Help documentation. To setup dependencies on a module there are two types of information needed: @@ -89,7 +89,7 @@ For example, to specify the `jps-model-serialization` module: * _packaging_ = `jar` ## Gradle Example for an Individual Module from the IntelliJ Platform -This section presents an example of using a Gradle script to incorporate an IntelliJ Platform module and repository in a `build.gradle` file. +This section presents an example of using a Gradle script to incorporate an IntelliJ Platform module and repository in a build.gradle file. The example illustrates declaring the artifact URL, Maven coordinates, and version for the `jps-model-serialization` module artifact. There are two parts to the example: the repository and the dependency sections. diff --git a/topics/reference_guide/project_model/library.md b/topics/reference_guide/project_model/library.md index 288c36ed8..d13136b87 100644 --- a/topics/reference_guide/project_model/library.md +++ b/topics/reference_guide/project_model/library.md @@ -5,9 +5,9 @@ A library is an archive of compiled code (such as JAR files) that modules depend on. The IntelliJ Platform supports three types of libraries: -* **Module Library**: the library classes are visible only in this module and the library information is recorded in the module `.iml` file. -* **Project Library**: the library classes are visible within the project and the library information is recorded under `.idea/libraries` directory or in the project `.ipr` file. -* **Global Library**: the library information is recorded in the `applicationLibraries.xml` file in `/.IntelliJIdea/config/options` directory. Global libraries are similar to project libraries, but are visible for different projects. +* **Module Library**: the library classes are visible only in this module and the library information is recorded in the module .iml file. +* **Project Library**: the library classes are visible within the project and the library information is recorded under `.idea/libraries` directory or in the project .ipr file. +* **Global Library**: the library information is recorded in the applicationLibraries.xml file in $USER_HOME$/.IntelliJIdea/config/options directory. Global libraries are similar to project libraries, but are visible for different projects. For more information about libraries, refer to [Libraries](https://www.jetbrains.com/help/idea/working-with-libraries.html). diff --git a/topics/reference_guide/project_model/project.md b/topics/reference_guide/project_model/project.md index b4b48fc2d..12a773911 100644 --- a/topics/reference_guide/project_model/project.md +++ b/topics/reference_guide/project_model/project.md @@ -7,13 +7,13 @@ The IntelliJ Platform stores the project configuration data in XML files. The list of those files depends on the chosen [project format](https://www.jetbrains.com/help/idea/creating-and-managing-projects.html#project-formats). -For file-based format projects (legacy), the information core to the project itself (e.g., location of the component modules, compiler settings, etc.) is stored in the `$project_name$.ipr` file. -The information about modules the project includes is stored in `$module_name$.iml` files. +For file-based format projects (legacy), the information core to the project itself (e.g., location of the component modules, compiler settings, etc.) is stored in the $project_name$.ipr file. +The information about modules the project includes is stored in $module_name$.iml files. Module files are created for each module. -For directory-based format projects, the project and workspace settings are stored in a number of XML files under the `$project_home_directory$/.idea` directory. -Each XML file is responsible for its own set of settings and can be recognized by its name: `projectCodeStyle.xml`, `encodings.xml`, `vcs.xml` etc. -As for the file-based format projects, `.iml` files describe modules. +For directory-based format projects, the project and workspace settings are stored in a number of XML files under the $project_home_directory$/.idea directory. +Each XML file is responsible for its own set of settings and can be recognized by its name: projectCodeStyle.xml, encodings.xml, vcs.xml etc. +As for the file-based format projects, .iml files describe modules. Note that direct access to project files isn't required to load or save settings. See [Persisting State of Components](persisting_state_of_components.md) for more information. diff --git a/topics/reference_guide/settings_guide.md b/topics/reference_guide/settings_guide.md index 509d4eea3..33fb602f6 100644 --- a/topics/reference_guide/settings_guide.md +++ b/topics/reference_guide/settings_guide.md @@ -12,7 +12,7 @@ Settings can [affect different levels](https://www.jetbrains.com/help/idea/confi This document describes adding custom Settings at the Project and Application (or Global, IDE) levels. ## Extension Points for Settings -Custom Settings implementations are declared in a plugin's configuration (`plugin.xml`) file using one of two Extension Points (EPs), depending on the level of the Settings. +Custom Settings implementations are declared in a plugin's configuration (plugin.xml) file using one of two Extension Points (EPs), depending on the level of the Settings. Many [attributes](#settings-declaration-attributes) are shared between the EP declarations. Application and Project Settings typically provide an implementation based on the [`Configurable`](upsource:///platform/ide-core/src/com/intellij/openapi/options/Configurable.java) interface because they do not have runtime dependencies. diff --git a/topics/reference_guide/ui_themes/themes_metadata.md b/topics/reference_guide/ui_themes/themes_metadata.md index 4e25ce571..1ed27ed9f 100644 --- a/topics/reference_guide/ui_themes/themes_metadata.md +++ b/topics/reference_guide/ui_themes/themes_metadata.md @@ -157,8 +157,8 @@ Examples of Swing keys: {type="note"} Metadata is split up as follows: -- [IntelliJPlatform.themeMetadata.json`](upsource:///platform/platform-resources/src/themes/metadata/IntelliJPlatform.themeMetadata.json) - all keys from IntelliJ Platform and custom UI components -- [JDK.themeMetadata.json`](upsource:///platform/platform-resources/src/themes/metadata/JDK.themeMetadata.json) - all keys from Swing components +- [`IntelliJPlatform.themeMetadata.json`](upsource:///platform/platform-resources/src/themes/metadata/IntelliJPlatform.themeMetadata.json) - all keys from IntelliJ Platform and custom UI components +- [`JDK.themeMetadata.json`](upsource:///platform/platform-resources/src/themes/metadata/JDK.themeMetadata.json) - all keys from Swing components New keys should be added to IntelliJPlatform.themeMetadata.json only (or corresponding "local" *.themeMetadata.json file of the plugin if applicable). diff --git a/topics/reference_guide/work_with_icons_and_images.md b/topics/reference_guide/work_with_icons_and_images.md index 5fd70b28d..454cfd84e 100644 --- a/topics/reference_guide/work_with_icons_and_images.md +++ b/topics/reference_guide/work_with_icons_and_images.md @@ -133,7 +133,7 @@ If the icon graphics are simple enough so that it renders perfectly in every sca > {type="note"} -All icon files must be placed in the same directory following this naming pattern (replace `.png` with `.svg` for SVG icons): +All icon files must be placed in the same directory following this naming pattern (replace .png with .svg for SVG icons): * iconName.png W x H pixels (Will be used on non-Retina devices with default theme) * iconName@2x.png 2\*W x 2\*H pixels (Will be used on Retina devices with default theme) diff --git a/topics/tutorials/action_system/working_with_custom_actions.md b/topics/tutorials/action_system/working_with_custom_actions.md index 90055e15c..0e1f75118 100644 --- a/topics/tutorials/action_system/working_with_custom_actions.md +++ b/topics/tutorials/action_system/working_with_custom_actions.md @@ -76,7 +76,7 @@ The fields of the form are: In this case, `PopupDialogAction` would be available in the **Tools** menu, it would be placed at the top, and would have no shortcuts. -After finishing the **New Action** form and applying the changes, the `` section of the plugin's `plugins.xml` file would contain: +After finishing the **New Action** form and applying the changes, the `` section of the plugin's plugins.xml file would contain: ```xml diff --git a/topics/tutorials/custom_language_support/language_and_filetype.md b/topics/tutorials/custom_language_support/language_and_filetype.md index 6e6addd38..6f063b8f0 100644 --- a/topics/tutorials/custom_language_support/language_and_filetype.md +++ b/topics/tutorials/custom_language_support/language_and_filetype.md @@ -86,7 +86,7 @@ The `SimpleFileTypeFactory` is registered using the `com.intellij.openapi.fileTy Run the plugin by using the Gradle [runIde task](gradle_prerequisites.md#running-a-simple-gradle-based-intellij-platform-plugin). -Create an empty file with the extension `*.simple`, and IntelliJ IDEA automatically associates it with our language. -Note the appearance of the Simple Language file icon next to the `test.simple` file in the **Project Tool Window**, and the editor tab for the file. +Create an empty file with the extension .simple, and IntelliJ IDEA automatically associates it with our language. +Note the appearance of the Simple Language file icon next to the test.simple file in the **Project Tool Window**, and the editor tab for the file. ![File Type Factory](file_type_factory.png){width="800"} diff --git a/topics/tutorials/custom_language_support/lexer_and_parser_definition.md b/topics/tutorials/custom_language_support/lexer_and_parser_definition.md index 4a239f6b5..b35652c88 100644 --- a/topics/tutorials/custom_language_support/lexer_and_parser_definition.md +++ b/topics/tutorials/custom_language_support/lexer_and_parser_definition.md @@ -10,14 +10,14 @@ The easiest way to create a lexer is to use [JFlex](https://jflex.de/). **Reference**: [](implementing_lexer.md) ## Required Project Configuration Change -The previous tutorial step [Grammar and Parser](grammar_and_parser.md), and this page, generate source files in the directory `src/main/gen`. -To include those files, the project's `sourceSets` must be expanded by inserting the following line in the project's `build.gradle` file: +The previous tutorial step [Grammar and Parser](grammar_and_parser.md), and this page, generate source files in the directory src/main/gen. +To include those files, the project's `sourceSets` must be expanded by inserting the following line in the project's build.gradle file: ```groovy sourceSets.main.java.srcDirs 'src/main/gen' ``` -Or the following line in the project's `build.gradle.kts` file: +Or the following line in the project's build.gradle.kts file: ```kotlin sourceSets["main"].java.srcDirs("src/main/gen") ``` @@ -25,14 +25,14 @@ Or the following line in the project's `build.gradle.kts` file: Reload the Gradle project for changes to take effect. ## Define a Lexer -Define a `Simple.flex` file with rules for the Simple Language lexer, as demonstrated in `org.intellij.sdk.language.Simple.flex`. +Define a Simple.flex file with rules for the Simple Language lexer, as demonstrated in `org.intellij.sdk.language.Simple.flex`. ```java ``` {src="simple_language_plugin/src/main/java/org/intellij/sdk/language/Simple.flex"} ## Generate a Lexer Class -Now generate a lexer class via **JFlex Generator** from the context menu on `Simple.flex` file. +Now generate a lexer class via **JFlex Generator** from the context menu on Simple.flex file. The Grammar-Kit plugin uses the JFlex lexer generation. When running for the first time, JFlex prompts for a destination folder to download the JFlex library and skeleton. @@ -71,7 +71,7 @@ The Simple Language parser is defined by subclassing [`ParserDefinition`](upsour ## Register the Parser Definition Registering the parser definition in the plugin.xml file makes it available to the IntelliJ Platform. Use the `com.intellij.lang.parserDefinition` extension point for registration. -For example, see `simple_language_plugin/src/main/resources/META-INF/plugin.xml`. +For example, see simple_language_plugin/src/main/resources/META-INF/plugin.xml. ```xml @@ -84,7 +84,7 @@ For example, see `simple_language_plugin/src/main/resources/META-INF/plugin.xml` Run the plugin by using the Gradle [runIde task](gradle_prerequisites.md#running-a-simple-gradle-based-intellij-platform-plugin). -Create a `test.simple` properties file with the following content: +Create a test.simple properties file with the following content: ```text # You are reading the ".properties" entry. diff --git a/topics/tutorials/custom_language_support/quick_fix.md b/topics/tutorials/custom_language_support/quick_fix.md index 713b27243..987587f23 100644 --- a/topics/tutorials/custom_language_support/quick_fix.md +++ b/topics/tutorials/custom_language_support/quick_fix.md @@ -45,7 +45,7 @@ Choose "Create Property". ![Quick Fix](quick_fix.png){width="800"} -The IDE opens the `test.simple` file and adds `website.url` as a new key. +The IDE opens the test.simple file and adds `website.url` as a new key. Add the new value `jetbrains.com` for the new `website.url` key. ![New Property](new_property.png) diff --git a/topics/tutorials/custom_language_support/reference_contributor.md b/topics/tutorials/custom_language_support/reference_contributor.md index 80d0382ce..8676aa242 100644 --- a/topics/tutorials/custom_language_support/reference_contributor.md +++ b/topics/tutorials/custom_language_support/reference_contributor.md @@ -92,7 +92,7 @@ public class SimpleElementFactory { ## Update Grammar and Regenerate the Parser Now make corresponding changes to the `Simple.bnf` grammar file by replacing the `property` definition with the lines below. Don't forget to regenerate the parser after updating the file! -Right-click on the `Simple.bnf` file and select **Generate Parser Code**. +Right-click on the Simple.bnf file and select **Generate Parser Code**. ```java property ::= (KEY? SEPARATOR VALUE?) | KEY { diff --git a/topics/tutorials/custom_language_support/structure_view_factory.md b/topics/tutorials/custom_language_support/structure_view_factory.md index 01ab8b3da..ee85923b7 100644 --- a/topics/tutorials/custom_language_support/structure_view_factory.md +++ b/topics/tutorials/custom_language_support/structure_view_factory.md @@ -48,7 +48,7 @@ The `SimpleStructureViewFactory` implementation is registered with the IntelliJ ## Run the Project Run the project by using the Gradle [runIde task](gradle_prerequisites.md#running-a-simple-gradle-based-intellij-platform-plugin). -Open the `test.simple` file and choose **View \| Tool Windows \| Structure**. +Open the test.simple file and choose **View \| Tool Windows \| Structure**. The IDE now supports a structure view of the Simple Language: ![Structure View](structure_view.png) diff --git a/topics/tutorials/live_templates/template_support.md b/topics/tutorials/live_templates/template_support.md index 651a51776..1520f8228 100644 --- a/topics/tutorials/live_templates/template_support.md +++ b/topics/tutorials/live_templates/template_support.md @@ -30,7 +30,7 @@ There are many other [predefined functions](https://www.jetbrains.com/idea/help/ ## Export the Live Template Once the Live Template produces the expected result, [export the Live Template](https://www.jetbrains.com/help/idea/sharing-live-templates.html). -The export produces a file called `Markdown.xml` with the following contents: +The export produces a file called Markdown.xml with the following contents: ```xml @@ -63,7 +63,7 @@ Ultimately, a file's extension determines the applicable Markdown context. > {type="note"} -Within the `` elements in the `Markdown.xml` [Live Template definition file](#export-the-live-template), add the following context elements: +Within the `` elements in the Markdown.xml [Live Template definition file](#export-the-live-template), add the following context elements: ```xml diff --git a/topics/tutorials/project_wizard/adding_new_steps.md b/topics/tutorials/project_wizard/adding_new_steps.md index 8e006c0f7..fd7ba85e1 100644 --- a/topics/tutorials/project_wizard/adding_new_steps.md +++ b/topics/tutorials/project_wizard/adding_new_steps.md @@ -11,7 +11,7 @@ See [Creating a Plugin Project](gradle_build_system.md) to know how to do it. ## Register Module Builder Project configuration settings depend on the project's module type. -Register a new `com.intellij.moduleBuilder` extension point in the `plugin.xml` configuration file. +Register a new `com.intellij.moduleBuilder` extension point in the plugin.xml configuration file. ```xml diff --git a/topics/tutorials/project_wizard/module_types.md b/topics/tutorials/project_wizard/module_types.md index 35f63afb0..4f3cbf36f 100644 --- a/topics/tutorials/project_wizard/module_types.md +++ b/topics/tutorials/project_wizard/module_types.md @@ -17,7 +17,7 @@ Create an empty plugin project, see [Creating a Plugin Project](gradle_build_sys {type="note"} ## Register a New Module Type -Add a new `com.intellij.moduleType` implementation with the IntelliJ Platform in the `plugin.xml` configuration file. +Add a new `com.intellij.moduleType` implementation with the IntelliJ Platform in the plugin.xml configuration file. ```xml