Conversation
| import kotlinx.serialization.json.jsonObject | ||
| import kotlinx.serialization.json.jsonPrimitive | ||
|
|
||
| class FeatherGlyphMapParser( |
There was a problem hiding this comment.
Added this because Feather’s official feather-icons package gives SVGs, but it does not ship a codepoint map. The react-native-vector-icons/feather package does ship on but as json.
WalkthroughThis pull request adds support for Feather icons across the SDK and IDE plugin. The SDK introduces a new 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Review rate limit: 7/8 reviews remaining, refill in 7 minutes and 30 seconds.Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
tools/idea-plugin/src/test/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/feather/domain/FeatherIconConfigBuilderTest.kt (1)
15-18: ⚡ Quick winStrengthen the ordering check with intentionally unsorted input.
The fixture is already sorted, so the test can still pass even if deterministic sorting regresses. Consider swapping insertion order to make the ordering assertion meaningful.♻️ Suggested test tweak
val icons = buildFeatherIcons( codepoints = mapOf( - "activity" to 61696, "arrow-left" to 61712, + "activity" to 61696, ), )🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@tools/idea-plugin/src/test/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/feather/domain/FeatherIconConfigBuilderTest.kt` around lines 15 - 18, The test's codepoints fixture is currently inserted in sorted order so the ordering assertion cannot detect regressions; update the map used in FeatherIconConfigBuilderTest (the codepoints map) to insert entries in an intentionally unsorted order (e.g., add "arrow-left" before "activity") so the ordering check in the test exercises the deterministic sorting logic in the builder instead of accidentally passing due to already-sorted input.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In
`@tools/idea-plugin/src/test/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/feather/domain/FeatherIconConfigBuilderTest.kt`:
- Around line 15-18: The test's codepoints fixture is currently inserted in
sorted order so the ordering assertion cannot detect regressions; update the map
used in FeatherIconConfigBuilderTest (the codepoints map) to insert entries in
an intentionally unsorted order (e.g., add "arrow-left" before "activity") so
the ordering check in the test exercises the deterministic sorting logic in the
builder instead of accidentally passing due to already-sorted input.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 8ee257a4-c124-418e-97fa-e4a942981f88
📒 Files selected for processing (18)
sdk/compose/icons/api/icons.apisdk/compose/icons/api/icons.klib.apisdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/FeatherLogo.kttools/idea-plugin/CHANGELOG.mdtools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/service/PersistentSettings.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/settings/InMemorySettings.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/WebImportFlow.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/WebImportSelectorScreen.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/feather/FeatherImportScreen.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/feather/data/FeatherGlyphMapParser.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/feather/data/FeatherRepository.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/feather/data/FeatherSvgPathResolver.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/feather/di/FeatherModule.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/feather/domain/FeatherUseCase.kttools/idea-plugin/src/main/resources/messages/Valkyrie.propertiestools/idea-plugin/src/test/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/feather/data/FeatherGlyphMapParserTest.kttools/idea-plugin/src/test/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/feather/data/FeatherSvgPathResolverTest.kttools/idea-plugin/src/test/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/feather/domain/FeatherIconConfigBuilderTest.kt
Screen.Recording.2026-04-30.at.23.23.39.mov
📝 Changelog
If this PR introduces user-facing changes, please update the relevant Unreleased section in changelogs: