Skip to content

Latest commit

 

History

History
149 lines (121 loc) · 9.18 KB

File metadata and controls

149 lines (121 loc) · 9.18 KB

IDE and Language Support Reference

This page distinguishes package compatibility from language-feature support. The installed language plugins are authoritative; Bracket Pair Guides does not maintain a separate language allowlist.

Platform compatibility

The plugin requires com.intellij.modules.platform and com.intellij.modules.lang. Its generated descriptor has since-build="241" and no product-specific dependency or upper build limit. Standalone IntelliJ Platform products based on build 241 or newer can load the plugin when those two modules are present.

Load compatibility does not establish language support. An IDE can satisfy the module dependencies while its primary language remains unsupported by the matching rule below.

Current IDE matrix

The 0.0.1 ZIP was checked on 2026-08-12 with Plugin Verifier 1.409 against the official distributions below. Compatible means the package has no binary API, missing-dependency, or plugin-structure problem in that product. It does not by itself prove that the product's primary language exposes a matcher this plugin can use.

Product Distribution checked Package Primary-language result
IntelliJ IDEA 2026.2.1, IU-262.9437.185 Compatible Java and Kotlin matchers confirmed; Java, Kotlin, Kotlin script, and JSON also have repository regressions
Android Studio Quail 2 / 2026.1.2.10, AI-261.25134.95.2612.15822958 Compatible Bundled Java and Kotlin matchers confirmed
PyCharm 2026.2.1, PY-262.9437.214 Compatible Python matcher confirmed
WebStorm 2026.2.1, WS-262.9437.145 Compatible JavaScript matcher confirmed; TypeScript is in its derived language family
GoLand 2026.2.1, GO-262.9437.195 Compatible Go matcher confirmed
RubyMine 2026.2.1, RM-262.9437.192 Compatible Ruby, ERB, and RBS matchers confirmed
RustRover 2026.2.1, RR-262.9437.161 Compatible Rust matcher confirmed
DataGrip 2026.2.3, DB-262.9437.163 Compatible SQL matcher confirmed
PhpStorm 2026.2.1, PS-262.9437.196 Compatible PHP's legacy file-type matcher is supported; matcher-backed JavaScript, TypeScript, JSON, and other regions use their token-language matchers
CLion 2026.2.1, CL-262.9437.136 Compatible Default CLion Nova C/C++ is not currently supported: it uses the ReSharper-based engine and exposes no compatible C/C++ language matcher; other matcher-backed regions can still work
Rider 2026.2.0.2, RD-262.8665.400 Compatible C# and ReSharper C++ are not currently supported: no ReSharper backend integration is included; IntelliJ-side matcher-backed regions can still work
DataSpell 2026.1.3, DS-261.26222.84 Compatible Python matcher confirmed, but DataSpell is being retired as a standalone product and 2026.1 is its final release line
MPS 2026.1, MPS-261.25134.779 Not claimed MPS uses projectional model editors rather than the standard text-editor token pipeline; Plugin Verifier 1.409 also could not parse this distribution's module-less product metadata

The pre-release 0.0.1 package reported two deprecated-API warnings generated by Kotlin's compatibility bridge for DynamicPluginListener. Version 0.0.2 removes that bridge; Plugin Verifier reports no deprecated or internal API usage. The regular release matrix checks IntelliJ Platform builds 241, 242, 243, 251, 252, 253, 261, and 262.

The primary-language result was determined from the matcher registration shipped inside the named distribution. It is capability evidence, not a claim that every language construct or bundled secondary language has received an end-to-end UI test.

Products not advertised as supported

  • Aqua and AppCode are discontinued. AppCode's final release predates the minimum 241 platform build; Aqua was not included in the current-product verification set.
  • Writerside is no longer available as a target IntelliJ Platform product.
  • JetBrains Gateway and JetBrains Client are remote-development containers, not standalone code-editor targets for this release.
  • Third-party IntelliJ Platform products may satisfy the module dependencies, but they have not been verified and are not claimed as supported.

Runtime capability rule

Recognition asks the platform for the effective matcher of each editor-highlighter token with BraceMatchingUtil.getBraceMatcher(...). The platform resolves matchers in this order:

  1. the token language's com.intellij.lang.braceMatcher;
  2. the host file type's legacy com.intellij.braceMatcher;
  3. an associated token-language file type or the host file type's language matcher;
  4. the platform default matcher.

The platform default matcher is treated as unsupported. Matchers resolved by the first three steps are used directly, including the TEXT matcher for plain text and official UserFileType syntax-table bracket tokens.

There is no raw-character scanner or product-specific backend. Layered files can therefore be partially supported: an embedded language region can use its own matcher even when its host template language has different rules. The token language is also part of the pairing group, so one pair cannot start in a host language and close in an embedded language.

A completed background pass that finds no compatible IntelliJ brace matcher shows a file-level warning in every IDE product. The warning is not shown for empty files, user-disabled matcher families, or layered files where at least one enabled matcher-backed region is available. Closing the warning suppresses it for that file type in the current project.

In Rider and CLion, the same warning also links to the Rider/CLion ReSharper backend support request so affected users can register demand with a reaction. Warnings in other products link to this language-support reference.

The platform matcher supplies token classification, pair compatibility, occurrence-specific structural-brace classification, and any contextual callbacks. Bracket Pair Guides still owns the full-document pairing stack, malformed-input recovery, indexes, and guide geometry. Its result is therefore based on the installed language rules but is not claimed to be identical to IntelliJ's boundary highlighter.

Support boundaries

Language or file kind Support
Java, Kotlin, Kotlin script, and JSON Covered by repository runtime regressions and the installed matcher
Other installed languages Supported when the platform resolves either a language or legacy file-type matcher
Derived and embedded languages Supported for tokens that resolve an inherited, embedded-language, or applicable file-type matcher
Platform custom file types Syntax-table bracket tokens are supported through the platform TEXT matcher
Raw plain text Standard bracket tokens are supported through the host TEXT matcher; arbitrary characters are not scanned
Languages with only the legacy file-type matcher Supported through the platform's file-type matcher resolution, including PHP
Pair spanning host and embedded token languages Unsupported; token-language isolation prevents cross-language pairing
Indentation-only blocks Unsupported; indentation and scope models are not brace pairs
Context-dependent angle brackets Supported only when the installed matcher classifies them in that context
ReSharper-only Rider/CLion Nova language engines Unsupported; the plugin has no ReSharper backend integration

The Languages list in Settings is the runtime source of truth. Bracket Pair Guides automatically discovers installed language matchers and language-backed legacy file-type matchers, with no product-specific integration. Installing, removing, or updating a language plugin can therefore change the available families and exact bracket pairs.

Verification boundary

Repository tests exercise language and legacy file-type matcher discovery, contextual and structural matching, token-language isolation, unsupported tokens, language-family settings, and representative Java, Kotlin, Kotlin script, JSON, XML, plain-text, and custom-file-type inputs. Plugin Verifier checks binary compatibility and IntelliJ API usage; it does not launch the editor or exercise every installed language plugin.

Run the relevant checks described in Contributing after changing the supported IDE range, dependencies, plugin descriptor, or IntelliJ APIs.

Related JetBrains documentation: