Skip to content

Custom ICompilerComponent runs fine in Gradle but IntelliJ editor shows errors #54

@dpkass

Description

@dpkass

I have a custom annotation processor implemented as a Manifold ICompilerComponent that injects helper methods into classes with annotated fields (@Localized).

Setup

  • Processor type: manifold.api.type.ICompilerComponent
  • Registration: META-INF/services/manifold.api.type.ICompilerComponent with FQCN of my component.
  • Gradle:
// build.gradle
dependencies {
  testAnnotationProcessor "systems.manifold:manifold:2025.1.26"
  testAnnotationProcessor "com.tadafur.gov360:annotation-processors:0.0.1-SNAPSHOT"
  testCompileOnly "systems.manifold:manifold:2025.1.26"
  testCompileOnly "com.tadafur.gov360:annotation-processors:0.0.1-SNAPSHOT"
}
// settings.gradle
includeBuild "../annotation-processor"

IDE: IntelliJ IDEA 2025.1
Runtime version: 21.0.6+9-b895.109 aarch64 (JCEF 122.1.9)

  • Manifold IntelliJ plugin installed and enabled
  • -Xplugin:Manifold in Java Compiler → Additional command line parameters (module-specific for test)
  • Annotation processing enabled (automatically by Gradle) in Settings → Build, Execution, Deployment → Compiler → Annotation Processors
  • Processor path contains both manifold-*.jar and my annotation-processors-0.0.1-SNAPSHOT.jar

Full path: /Users/Mac/.gradle/caches/modules-2/files-2.1/systems.manifold/manifold/2025.1.26/b7174e8ff4d4c5b39b2bed817e47ba9cf2372551/manifold-2025.1.26.jar:/Users/Mac/Projects/[sensitive]/libs/annotation-processors/build/libs/annotation-processors-0.0.1-SNAPSHOT.jar:/Users/Mac/.gradle/caches/modules-2/files-2.1/systems.manifold/manifold-rt/2025.1.26/d57b7c7d4582913bb2d6781a53e6f16bded77b9b/manifold-rt-2025.1.26.jar:/Users/Mac/.gradle/caches/modules-2/files-2.1/systems.manifold/manifold-util/2025.1.26/12ef4c31eb68695295bbbd693b1e644294ce8460/manifold-util-2025.1.26.jar

Expected

IntelliJ PSI picks up my annotation processor, and recognizes the methods.

Actual

When editing code, methods injected by my component (e.g., setLocalizedName(Locale, String)) are flagged as unresolved with red text.
However:

  • Running gradle test compiles and executes successfully
  • IntelliJ’s Build → Rebuild Project also succeeds (my component logs appear in build output)
  • The generated methods work correctly at runtime

So the problem is editor resolution only — PSI seems unaware of injected members even though the plugin and compiler component run fine during builds.

What I’ve tried

  • Added both Manifold and my component JAR to test compile classpath (testCompileOnly)
  • Invalidate caches & restart

Question:
Does the IntelliJ Manifold plugin fully support custom ICompilerComponents in the editor PSI model? If so, is there additional configuration needed to make the editor aware of injected members?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions