Skip to content

Add support for suppressing unused receiver parameter warnings in ImageVector extensions#964

Merged
egorikftp merged 1 commit into
mainfrom
feature/generator_suppress_UnusedReceiverParameter
Apr 29, 2026
Merged

Add support for suppressing unused receiver parameter warnings in ImageVector extensions#964
egorikftp merged 1 commit into
mainfrom
feature/generator_suppress_UnusedReceiverParameter

Conversation

@egorikftp

Copy link
Copy Markdown
Member
Screenshot 2026-04-28 at 19 07 37

📝 Changelog

If this PR introduces user-facing changes, please update the relevant Unreleased section in changelogs:

@egorikftp egorikftp requested review from Goooler and t-regbs April 28, 2026 16:09
@egorikftp egorikftp force-pushed the feature/generator_suppress_UnusedReceiverParameter branch from 151e5be to 0f7f24d Compare April 28, 2026 16:18
@coderabbitai

coderabbitai Bot commented Apr 28, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 2a61b65d-1d27-4949-9968-b343db640483

📥 Commits

Reviewing files that changed from the base of the PR and between 0f7f24d and f57e4a9.

📒 Files selected for processing (54)
  • README.md
  • components/generator/jvm/imagevector/api/imagevector.api
  • components/generator/jvm/imagevector/src/main/kotlin/io/github/composegears/valkyrie/generator/jvm/imagevector/ImageVectorFileSpec.kt
  • components/generator/jvm/imagevector/src/main/kotlin/io/github/composegears/valkyrie/generator/jvm/imagevector/ImageVectorGenerator.kt
  • components/generator/jvm/imagevector/src/main/kotlin/io/github/composegears/valkyrie/generator/jvm/imagevector/spec/BackingPropertySpec.kt
  • components/generator/jvm/imagevector/src/main/kotlin/io/github/composegears/valkyrie/generator/jvm/imagevector/spec/Common.kt
  • components/generator/jvm/imagevector/src/main/kotlin/io/github/composegears/valkyrie/generator/jvm/imagevector/spec/LazyPropertySpec.kt
  • components/generator/jvm/imagevector/src/test/kotlin/io/github/composegears/valkyrie/generator/jvm/imagevector/XmlToImageVectorTest.kt
  • components/generator/jvm/imagevector/src/test/kotlin/io/github/composegears/valkyrie/generator/jvm/imagevector/common/TestImageVectorConfig.kt
  • components/generator/kmp/imagevector/api/imagevector.api
  • components/generator/kmp/imagevector/api/imagevector.klib.api
  • components/generator/kmp/imagevector/src/commonMain/kotlin/io/github/composegears/valkyrie/generator/kmp/imagevector/ImageVectorFileGenerator.kt
  • components/generator/kmp/imagevector/src/commonMain/kotlin/io/github/composegears/valkyrie/generator/kmp/imagevector/ImageVectorGenerator.kt
  • components/generator/kmp/imagevector/src/commonMain/kotlin/io/github/composegears/valkyrie/generator/kmp/imagevector/util/ImageVectorRenderer.kt
  • components/generator/kmp/imagevector/src/jvmTest/kotlin/io/github/composegears/valkyrie/generator/kmp/imagevector/ImageVectorParityJvmTest.kt
  • components/generator/kmp/imagevector/src/jvmTest/kotlin/io/github/composegears/valkyrie/generator/kmp/imagevector/common/TestImageVectorConfig.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/BootstrapLogo.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/BoxLogo.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/FontAwesomeLogo.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/GoogleMaterialLogo.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/LucideLogo.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/PluginIcon.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/RemixLogo.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/Back.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/BatchProcessing.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/Conversion.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/Dark.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/Editor.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/FileImport.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/KtSvg.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/KtXml.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/Light.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/Settings.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/SvgXml.kt
  • sdk/figma/converter/api/converter.api
  • sdk/figma/converter/api/converter.klib.api
  • sdk/figma/converter/src/commonMain/kotlin/io/github/composegears/valkyrie/converter/figma/FigmaConverter.kt
  • sdk/test/sharedTestResources/imagevector/kt/backing/WithoutPath.pack.suppress_receiver.kt
  • sdk/test/sharedTestResources/imagevector/kt/lazy/WithoutPath.pack.suppress_receiver.kt
  • tools/cli/CHANGELOG.md
  • tools/cli/src/main/kotlin/io/github/composegears/valkyrie/cli/command/SvgXmlToImageVectorCommand.kt
  • tools/gradle-plugin/api/gradle-plugin.api
  • tools/gradle-plugin/src/main/kotlin/io/github/composegears/valkyrie/gradle/ImageVectorConfigExtension.kt
  • tools/gradle-plugin/src/main/kotlin/io/github/composegears/valkyrie/gradle/internal/TaskRegistry.kt
  • tools/gradle-plugin/src/main/kotlin/io/github/composegears/valkyrie/gradle/internal/task/GenerateImageVectorsTask.kt
  • tools/idea-plugin/CHANGELOG.md
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/service/PersistentSettings.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/settings/InMemorySettings.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/IconPackConversionViewModel.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/simple/conversion/SimpleConversionViewModel.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/SettingsViewModel.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/model/SettingsAction.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/GeneratorSettingsScreen.kt
  • tools/idea-plugin/src/main/resources/messages/Valkyrie.properties
✅ Files skipped from review due to trivial changes (32)
  • components/generator/jvm/imagevector/src/main/kotlin/io/github/composegears/valkyrie/generator/jvm/imagevector/ImageVectorFileSpec.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/BoxLogo.kt
  • tools/idea-plugin/CHANGELOG.md
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/FontAwesomeLogo.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/Editor.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/Settings.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/BootstrapLogo.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/service/PersistentSettings.kt
  • README.md
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/model/SettingsAction.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/Conversion.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/FileImport.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/LucideLogo.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/PluginIcon.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/KtXml.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/BatchProcessing.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/GoogleMaterialLogo.kt
  • tools/gradle-plugin/api/gradle-plugin.api
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/SvgXml.kt
  • components/generator/jvm/imagevector/src/test/kotlin/io/github/composegears/valkyrie/generator/jvm/imagevector/common/TestImageVectorConfig.kt
  • components/generator/kmp/imagevector/src/jvmTest/kotlin/io/github/composegears/valkyrie/generator/kmp/imagevector/common/TestImageVectorConfig.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/Back.kt
  • components/generator/kmp/imagevector/src/commonMain/kotlin/io/github/composegears/valkyrie/generator/kmp/imagevector/util/ImageVectorRenderer.kt
  • components/generator/jvm/imagevector/src/main/kotlin/io/github/composegears/valkyrie/generator/jvm/imagevector/spec/Common.kt
  • sdk/test/sharedTestResources/imagevector/kt/backing/WithoutPath.pack.suppress_receiver.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/KtSvg.kt
  • tools/cli/CHANGELOG.md
  • tools/gradle-plugin/src/main/kotlin/io/github/composegears/valkyrie/gradle/internal/TaskRegistry.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/RemixLogo.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/Dark.kt
  • tools/idea-plugin/src/main/resources/messages/Valkyrie.properties
  • components/generator/jvm/imagevector/api/imagevector.api
🚧 Files skipped from review as they are similar to previous changes (9)
  • components/generator/jvm/imagevector/src/main/kotlin/io/github/composegears/valkyrie/generator/jvm/imagevector/ImageVectorGenerator.kt
  • sdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/outlined/Light.kt
  • components/generator/jvm/imagevector/src/main/kotlin/io/github/composegears/valkyrie/generator/jvm/imagevector/spec/BackingPropertySpec.kt
  • sdk/figma/converter/src/commonMain/kotlin/io/github/composegears/valkyrie/converter/figma/FigmaConverter.kt
  • components/generator/kmp/imagevector/src/commonMain/kotlin/io/github/composegears/valkyrie/generator/kmp/imagevector/ImageVectorGenerator.kt
  • sdk/test/sharedTestResources/imagevector/kt/lazy/WithoutPath.pack.suppress_receiver.kt
  • tools/gradle-plugin/src/main/kotlin/io/github/composegears/valkyrie/gradle/ImageVectorConfigExtension.kt
  • components/generator/jvm/imagevector/src/test/kotlin/io/github/composegears/valkyrie/generator/jvm/imagevector/XmlToImageVectorTest.kt
  • components/generator/kmp/imagevector/src/commonMain/kotlin/io/github/composegears/valkyrie/generator/kmp/imagevector/ImageVectorFileGenerator.kt

Walkthrough

Introduces a boolean configuration option suppressUnusedReceiverWarning. When enabled, generators emit @Suppress("UnusedReceiverParameter") on generated ImageVector extension properties whose receiver is unused. The flag is threaded through JVM and KMP generators, CLI, Gradle plugin, and IDE plugin settings/UI. Tests, expected output fixtures, README, changelogs, and several SDK icon property getters were updated to reflect the new behavior.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description references issue #959, includes a relevant code screenshot, but the changelog checklist items are not actually checked (marked complete) despite the PR introducing user-facing changes across IntelliJ Plugin, CLI, and Gradle Plugin. Check the three changelog checkboxes in the PR description to confirm the relevant changelog files (IntelliJ Plugin, CLI, Gradle Plugin) have been updated with the new feature.
Docstring Coverage ⚠️ Warning Docstring coverage is 3.57% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The PR title clearly and concisely describes the main change: adding support for suppressing unused receiver parameter warnings in ImageVector extensions, which aligns with the core functionality added throughout the changeset.
Linked Issues check ✅ Passed The PR fully implements the requirement from issue #959: it adds configuration support for generating @Suppress("UnusedReceiverParameter") annotations on ImageVector extension properties across all three tools (Gradle Plugin, CLI, IntelliJ Plugin) and the code generator components.
Out of Scope Changes check ✅ Passed All changes directly support the primary objective of adding suppressUnusedReceiverWarning configuration. The modifications span configuration, generation logic, tests, and tooling—all necessary for implementing this feature end-to-end without unrelated changes.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/generator_suppress_UnusedReceiverParameter

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@egorikftp egorikftp force-pushed the feature/generator_suppress_UnusedReceiverParameter branch from 0f7f24d to f57e4a9 Compare April 28, 2026 16:33
@egorikftp egorikftp merged commit 6c12344 into main Apr 29, 2026
3 checks passed
@egorikftp egorikftp deleted the feature/generator_suppress_UnusedReceiverParameter branch April 29, 2026 12:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Suppress UnusedReceiverParameter for icon pack receivers

2 participants