eclipse-vertx / eclipse-vertx/vertx-codegen

GenIgnore with more fine-grained language control through "features"

Aperta
#121 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
111
Fork
89
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Having used vertx with the [Ceylon programming language](https://ceylon-lang.org/) for a while, I have noticed that `@GenIgnore` [source](https://github.com/vert-x3/vertx-codegen/blob/master/src/main/java/io/vertx/codegen/annotations/GenIgnore.java) has blocked access to interesting features for reasons that don't seem to apply to the Ceylon language.

For example methods returning `Map` or `X509Certificate` are out of reach while I believe they could be used perfectly well in Ceylon. And #40 lists `byte[]` as another case.

At the most coarse level one could simply choose to ignore `@GenIgnore` when generating bindings for specific languages. Alternatively we could perhaps add a (defaulted) parameter to the annotation indicating a feature required from the target language for the declaration to be included. This would give more fine-grained control over which constructs are exposed in which languages. For example the config file for the Ceylon language could indicate that it supports "MAP" and "CERTIFICATE" features (just to give the idea). Perhaps a better-named annotation could be introduced for this and deprecate the original one.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia dalla sorgente dell’annotazione GenIgnore in src/main/java/io/vertx/codegen/annotations/GenIgnore.java e rivedi l’issue #40 per il caso correlato di byte[]. La proposta presenta diversi design possibili, quindi stabilisci prima quale approccio vogliono i maintainer; il lavoro sarebbe completato con un meccanismo concordato e implementato per il controllo delle funzionalità specifico per linguaggio.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
devtools
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.