mapstruct / mapstruct/mapstruct-idea
Support passing custom annotations to generated code
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 168
- Forks
- 41
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
With the work in PR https://github.com/mapstruct/mapstruct/pull/2792 being done for https://github.com/mapstruct/mapstruct/issues/1574 it would be good to provide some support for the new API in the IntelliJ plugin as well.
Some things that we should do:
- Auto completion support for
AnnotateWith.Element#nameand error whennamedoes not exist in target enum. - Smart auto completion for
AnnotateWith.Element#classes(pick the class type based on the one in the annotation - Auto completion for
AnnotateWith.Element#enumsand error when enum value does not exist - Annotation cannot annotated the generated class / method (it doesn't have the right target element type)
- Error when more than one value type is provided, eg.
shorts()andstrings() - Error when duplicated
AnnotateWith.Element#name(more than one having the same name - Error when value does not match target annotation value type
- Error when using array value, but target value is not an array
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, PR #2792 und Issue #1574 zu lesen, um die neue AnnotateWith API zu verstehen, und untersuche anschließend die bestehende Unterstützung des IntelliJ-Plugins für generierte Annotationen. Als erledigt gilt die Implementierung und Validierung der aufgeführten Vervollständigungs- und Fehlerprüfungen, einschließlich Zielkompatibilität, doppelter Namen, Werttypen und Arrays.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- devtools
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 30/100