carueda / tscfg

Boilerplate-free, type-safe access to configuration properties in Java and Scala
Apache License 2.0
106 stars 18 forks source link

Proper schema syntax #51

Open carueda opened 5 years ago

carueda commented 5 years ago

The use of the Lightbend/Typesafe Config library itself for purposes of parsing the input used to generate the wrapper has a number of limitations and counter-intuitive effects, in concrete when doing the automatic type detection from given values (NOTE: explicit types are not an issue). See for example #41, #50, #46.

This is not a fault of that library but rather a consequence of using it to infer the types. In particular, note that Lightbend/Typesafe Config:

The proposal here is to define a proper syntax/language more appropriate for schema definition purposes and, along with that, implement/use a corresponding parsing mechanism. Although tscfg is not yet v1, perhaps consider forcing the new proper syntax as the default in some stable version, while also adding an option to indicate the particular input language.

Reactions/comments welcome.

pambrose commented 5 years ago

Antlr (https://www.antlr.org) makes writing that sort of thing really easy.

carueda commented 5 years ago

Thanks for the suggestion. When the times comes, https://github.com/lihaoyi/fastparse/ would actually be my first option as I have other Scala projects already using it and it's simply great.

carueda commented 2 years ago

Just to note that I've been having a great experience with cats-parse in some other project where I successfully migrated from fastparse, which, unfortunately seems like it is not going to be updated to Scala 3 any time soon.