Skip to content

Add PhpStorm/IntelliJ Platform 2026.1.2+ support and release 0.8.0#120

Open
DenisStetsenko wants to merge 2 commits into
inxilpro:mainfrom
DenisStetsenko:support-platform-2026.1
Open

Add PhpStorm/IntelliJ Platform 2026.1.2+ support and release 0.8.0#120
DenisStetsenko wants to merge 2 commits into
inxilpro:mainfrom
DenisStetsenko:support-platform-2026.1

Conversation

@DenisStetsenko

Copy link
Copy Markdown

Summary

Adds support for PhpStorm / IntelliJ Platform 2026.1.2+ and bundles a few improvements as 0.8.0.

Compatibility & build

  • Remove the upper compatibility bound; build against 2026.1 (since-build stays 251)
  • Gradle 8.13 → 9.0.0, IntelliJ Platform plugin 2.6.0 → 2.16.0, Kotlin 2.1.21 → 2.3.20
  • Add the bundled JSON module dependency (extracted from the platform in 2024.3+)
  • Run release / UI-test CI on Java 21

Robustness

  • Dumb-mode guards in the package.json / script detectors and auto-enable
  • Tie the package.json VFS listener to project disposal; run on smart mode
  • Cache x-target id lookups via CachedValuesManager
  • Mark the alpinePlugin extension point dynamic; nullable init() override

Features

  • Quick documentation for Alpine directives
  • Inspection flagging the deprecated x-spread directive
  • Settings panel rewritten with Kotlin UI DSL v2

Verification

  • verifyPlugin: Compatible on 2025.1, 2025.2, 2025.3, 2026.1, 2026.2
  • Qodana: 0 problems; sandbox runIde loads cleanly

Note

This overlaps with #118 — it incorporates that PR's robustness fixes and the three features, but not its commons-lang3 → JsContext refactor or test suite, and it uses a newer build toolchain. Happy to reconcile with #118 however you prefer.

DenisStetsenko and others added 2 commits June 2, 2026 16:57
Compatibility & build:
- Remove the upper compatibility bound; build against 2026.1 (since-build stays 251)
- Bump Gradle 8.13 -> 9.0.0, IntelliJ Platform plugin 2.6.0 -> 2.16.0, Kotlin 2.1.21 -> 2.3.20
- Add bundled JSON module dependency (extracted from the platform in 2024.3+)
- Verify against the recommended IDE set (Compatible on 2025.1 through 2026.2)

Robustness (from inxilpro#118):
- Guard package.json / script detectors and auto-enable against dumb mode
- Tie the package.json VFS listener to project disposal and run on smart mode
- Cache x-target id lookups via CachedValuesManager
- Mark the alpinePlugin extension point dynamic; nullable init() override

Features (from inxilpro#118):
- Quick documentation for Alpine directives
- Inspection flagging the deprecated x-spread directive
- Rewrite the settings panel using Kotlin UI DSL v2

CI & docs:
- Run release and UI-test workflows on Java 21
- Fix stale Gradle task names in CLAUDE.md (verifyPlugin, qodanaScan)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Detection performance:
- Scan the project once for all plugins instead of once per plugin: the
  detection contract is now batch-based (detect returns the set of matched
  plugins) and the registry detects all not-yet-enabled candidates in a
  single pass
- Locate candidate files via the IDE text index (PsiSearchHelper) and read
  only those files once, instead of reading every project file
- Exclude node_modules from detection scope (shared DetectionScopes helper),
  which also avoids false positives from nested dependency package.json files

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@DenisStetsenko

Copy link
Copy Markdown
Author

Hello, @inxilpro 👋

Would you mind sharing the roadmap for this plugin, as it feels a bit abandoned right now?
I did my best and updated it so it works with the latest version of PHPStorm.
Please let me know if there's anything I can help with to keep it up to date.

Thanks!

@bananer

bananer commented Jun 25, 2026

Copy link
Copy Markdown

This seems like a ton of changes mashed together into two commits. Would you consider splitting this up into many smaller PRs to make it easier to review? Maybe start with just "Remove the upper compatibility bound", which might be the lowest hanging fruit?

@DenisStetsenko

Copy link
Copy Markdown
Author

This seems like a ton of changes mashed together into two commits. Would you consider splitting this up into many smaller PRs to make it easier to review? Maybe start with just "Remove the upper compatibility bound", which might be the lowest hanging fruit?

Good call. Happy to split it up.
Here I made the first one, just the upper compatibility bound fix, as you suggested.

PS. Quick bit of context on why it landed as one chunk: the previously released version had some serious performance issues (heavy indexing/freezes on larger projects), and several of these changes work together to fix that, so I bundled them to keep the fix coherent.

But you're right that it's hard to review as-is....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants